diff options
| author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2023-01-10 14:35:44 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-10 14:35:44 +0100 |
| commit | 636352e0ca1e611c7673f2ab68538e1ddb2dc5b7 (patch) | |
| tree | c250c7a74917cef683999e06283ea9f7182f372c /cli/tests/testdata | |
| parent | 45768f0e832e54d61ddb5a62d62239aef0e597b5 (diff) | |
fix(npm): allow to read package.json if permissions are granted (#17209)
This commit changes signature of "deno_core::ModuleLoader::resolve" to pass
an enum indicating whether or not we're resolving a specifier for dynamic import.
Additionally "CliModuleLoader" was changes to store both "parent permissions" (or
"root permissions") as well as "dynamic permissions" that allow to check for permissions
in top-level module load an dynamic imports.
Then all code paths that have anything to do with Node/npm compat are now checking
for permissions which are passed from module loader instance associated with given
worker.
Diffstat (limited to 'cli/tests/testdata')
6 files changed, 26 insertions, 0 deletions
diff --git a/cli/tests/testdata/npm/permissions_outside_package/foo/config.js b/cli/tests/testdata/npm/permissions_outside_package/foo/config.js new file mode 100644 index 000000000..e667790d2 --- /dev/null +++ b/cli/tests/testdata/npm/permissions_outside_package/foo/config.js @@ -0,0 +1,4 @@ +module.exports = { + "name": "foobar", + "version": "0.0.1", +}; diff --git a/cli/tests/testdata/npm/permissions_outside_package/foo/package.json b/cli/tests/testdata/npm/permissions_outside_package/foo/package.json new file mode 100644 index 000000000..cc049e6ce --- /dev/null +++ b/cli/tests/testdata/npm/permissions_outside_package/foo/package.json @@ -0,0 +1,4 @@ +{ + "name": "foobar", + "version": "0.0.1" +} diff --git a/cli/tests/testdata/npm/permissions_outside_package/main.out b/cli/tests/testdata/npm/permissions_outside_package/main.out new file mode 100644 index 000000000..4edf66ae9 --- /dev/null +++ b/cli/tests/testdata/npm/permissions_outside_package/main.out @@ -0,0 +1,3 @@ +Download http://localhost:4545/npm/registry/@denotest/permissions-outside-package +Download http://localhost:4545/npm/registry/@denotest/permissions-outside-package/1.0.0.tgz +{ name: "foobar", version: "0.0.1" } diff --git a/cli/tests/testdata/npm/permissions_outside_package/main.ts b/cli/tests/testdata/npm/permissions_outside_package/main.ts new file mode 100644 index 000000000..b0b82b626 --- /dev/null +++ b/cli/tests/testdata/npm/permissions_outside_package/main.ts @@ -0,0 +1,5 @@ +import { loadConfigFile } from "npm:@denotest/permissions-outside-package"; + +const fileName = `${Deno.cwd()}/npm/permissions_outside_package/foo/config.js`; +const config = loadConfigFile(fileName); +console.log(config); diff --git a/cli/tests/testdata/npm/registry/@denotest/permissions-outside-package/1.0.0/index.js b/cli/tests/testdata/npm/registry/@denotest/permissions-outside-package/1.0.0/index.js new file mode 100644 index 000000000..ec854713f --- /dev/null +++ b/cli/tests/testdata/npm/registry/@denotest/permissions-outside-package/1.0.0/index.js @@ -0,0 +1,5 @@ +function loadConfigFile(fileName) { + return require(fileName); +} + +module.exports.loadConfigFile = loadConfigFile;
\ No newline at end of file diff --git a/cli/tests/testdata/npm/registry/@denotest/permissions-outside-package/1.0.0/package.json b/cli/tests/testdata/npm/registry/@denotest/permissions-outside-package/1.0.0/package.json new file mode 100644 index 000000000..447a119e4 --- /dev/null +++ b/cli/tests/testdata/npm/registry/@denotest/permissions-outside-package/1.0.0/package.json @@ -0,0 +1,5 @@ +{ + "name": "@denotest/permissions-outside-package", + "version": "1.0.0", + "main": "./index.js" +} |
