From 5151afa123a9635d2f4de9555f8843460b284a11 Mon Sep 17 00:00:00 2001 From: Luca Casonato Date: Mon, 17 May 2021 09:44:38 +0200 Subject: fix: static import permissions in dynamic imports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bartek IwaƄczuk --- cli/tests/dynamic_import/permissions_blob_local.ts | 4 ++++ cli/tests/dynamic_import/permissions_blob_local.ts.out | 5 +++++ cli/tests/dynamic_import/permissions_blob_remote.ts | 4 ++++ cli/tests/dynamic_import/permissions_blob_remote.ts.out | 5 +++++ cli/tests/dynamic_import/permissions_data_local.ts | 3 +++ cli/tests/dynamic_import/permissions_data_local.ts.out | 5 +++++ cli/tests/dynamic_import/permissions_data_remote.ts | 3 +++ cli/tests/dynamic_import/permissions_data_remote.ts.out | 5 +++++ cli/tests/dynamic_import/permissions_remote_remote.ts | 3 +++ cli/tests/dynamic_import/permissions_remote_remote.ts.out | 5 +++++ cli/tests/dynamic_import/static_remote.ts | 2 ++ 11 files changed, 44 insertions(+) create mode 100644 cli/tests/dynamic_import/permissions_blob_local.ts create mode 100644 cli/tests/dynamic_import/permissions_blob_local.ts.out create mode 100644 cli/tests/dynamic_import/permissions_blob_remote.ts create mode 100644 cli/tests/dynamic_import/permissions_blob_remote.ts.out create mode 100644 cli/tests/dynamic_import/permissions_data_local.ts create mode 100644 cli/tests/dynamic_import/permissions_data_local.ts.out create mode 100644 cli/tests/dynamic_import/permissions_data_remote.ts create mode 100644 cli/tests/dynamic_import/permissions_data_remote.ts.out create mode 100644 cli/tests/dynamic_import/permissions_remote_remote.ts create mode 100644 cli/tests/dynamic_import/permissions_remote_remote.ts.out create mode 100644 cli/tests/dynamic_import/static_remote.ts (limited to 'cli/tests/dynamic_import') diff --git a/cli/tests/dynamic_import/permissions_blob_local.ts b/cli/tests/dynamic_import/permissions_blob_local.ts new file mode 100644 index 000000000..571c72ca3 --- /dev/null +++ b/cli/tests/dynamic_import/permissions_blob_local.ts @@ -0,0 +1,4 @@ +// This file doesn't really exist, but it doesn't matter, a "PermissionsDenied" error should be thrown. +const code = `import "file:///local_file.ts";`; +const blob = new Blob([code]); +await import(URL.createObjectURL(blob)); diff --git a/cli/tests/dynamic_import/permissions_blob_local.ts.out b/cli/tests/dynamic_import/permissions_blob_local.ts.out new file mode 100644 index 000000000..d533d4903 --- /dev/null +++ b/cli/tests/dynamic_import/permissions_blob_local.ts.out @@ -0,0 +1,5 @@ +error: Uncaught (in promise) TypeError: Requires read access to "/local_file.ts", run again with the --allow-read flag + at blob:null/[WILDCARD]:1:0 +await import(URL.createObjectURL(blob)); +^ + at async file:///[WILDCARD]/cli/tests/dynamic_import/permissions_blob_local.ts:4:1 diff --git a/cli/tests/dynamic_import/permissions_blob_remote.ts b/cli/tests/dynamic_import/permissions_blob_remote.ts new file mode 100644 index 000000000..1e2c8c21a --- /dev/null +++ b/cli/tests/dynamic_import/permissions_blob_remote.ts @@ -0,0 +1,4 @@ +// This file doesn't really exist, but it doesn't matter, a "PermissionsDenied" error should be thrown. +const code = `import "https://example.com/some/file.ts";`; +const blob = new Blob([code]); +await import(URL.createObjectURL(blob)); diff --git a/cli/tests/dynamic_import/permissions_blob_remote.ts.out b/cli/tests/dynamic_import/permissions_blob_remote.ts.out new file mode 100644 index 000000000..7992e0855 --- /dev/null +++ b/cli/tests/dynamic_import/permissions_blob_remote.ts.out @@ -0,0 +1,5 @@ +error: Uncaught (in promise) TypeError: Requires net access to "example.com", run again with the --allow-net flag + at blob:null/[WILDCARD]:1:0 +await import(URL.createObjectURL(blob)); +^ + at async file:///[WILDCARD]/cli/tests/dynamic_import/permissions_blob_remote.ts:4:1 diff --git a/cli/tests/dynamic_import/permissions_data_local.ts b/cli/tests/dynamic_import/permissions_data_local.ts new file mode 100644 index 000000000..04b3432eb --- /dev/null +++ b/cli/tests/dynamic_import/permissions_data_local.ts @@ -0,0 +1,3 @@ +// This file doesn't really exist, but it doesn't matter, a "PermissionsDenied" error should be thrown. +const code = `import "file:///local_file.ts";`; +await import(`data:application/javascript;base64,${btoa(code)}`); diff --git a/cli/tests/dynamic_import/permissions_data_local.ts.out b/cli/tests/dynamic_import/permissions_data_local.ts.out new file mode 100644 index 000000000..0b3ac7779 --- /dev/null +++ b/cli/tests/dynamic_import/permissions_data_local.ts.out @@ -0,0 +1,5 @@ +error: Uncaught (in promise) TypeError: Requires read access to "/local_file.ts", run again with the --allow-read flag + at data:application/javascript;base64,aW1wb3J0ICJmaWxlOi8vL2xvY2FsX2ZpbGUudHMiOw==:1:0 +await import(`data:application/javascript;base64,${btoa(code)}`); +^ + at async file:///[WILDCARD]/cli/tests/dynamic_import/permissions_data_local.ts:3:1 diff --git a/cli/tests/dynamic_import/permissions_data_remote.ts b/cli/tests/dynamic_import/permissions_data_remote.ts new file mode 100644 index 000000000..b0a9540c3 --- /dev/null +++ b/cli/tests/dynamic_import/permissions_data_remote.ts @@ -0,0 +1,3 @@ +// This file doesn't really exist, but it doesn't matter, a "PermissionsDenied" error should be thrown. +const code = `import "https://example.com/some/file.ts";`; +await import(`data:application/javascript;base64,${btoa(code)}`); diff --git a/cli/tests/dynamic_import/permissions_data_remote.ts.out b/cli/tests/dynamic_import/permissions_data_remote.ts.out new file mode 100644 index 000000000..6bb137091 --- /dev/null +++ b/cli/tests/dynamic_import/permissions_data_remote.ts.out @@ -0,0 +1,5 @@ +error: Uncaught (in promise) TypeError: Requires net access to "example.com", run again with the --allow-net flag + at data:application/javascript;base64,aW1wb3J0ICJodHRwczovL2V4YW1wbGUuY29tL3NvbWUvZmlsZS50cyI7:1:0 +await import(`data:application/javascript;base64,${btoa(code)}`); +^ + at async file:///[WILDCARD]/cli/tests/dynamic_import/permissions_data_remote.ts:3:1 diff --git a/cli/tests/dynamic_import/permissions_remote_remote.ts b/cli/tests/dynamic_import/permissions_remote_remote.ts new file mode 100644 index 000000000..99de3f46f --- /dev/null +++ b/cli/tests/dynamic_import/permissions_remote_remote.ts @@ -0,0 +1,3 @@ +await import( + "http://localhost:4545/cli/tests/dynamic_import/static_remote.ts" +); diff --git a/cli/tests/dynamic_import/permissions_remote_remote.ts.out b/cli/tests/dynamic_import/permissions_remote_remote.ts.out new file mode 100644 index 000000000..ae8113899 --- /dev/null +++ b/cli/tests/dynamic_import/permissions_remote_remote.ts.out @@ -0,0 +1,5 @@ +error: Uncaught (in promise) TypeError: Requires net access to "example.com", run again with the --allow-net flag + at http://localhost:4545/cli/tests/dynamic_import/static_remote.ts:2:0 +await import( +^ + at async file:///[WILDCARD]/cli/tests/dynamic_import/permissions_remote_remote.ts:1:1 diff --git a/cli/tests/dynamic_import/static_remote.ts b/cli/tests/dynamic_import/static_remote.ts new file mode 100644 index 000000000..2d6e820fd --- /dev/null +++ b/cli/tests/dynamic_import/static_remote.ts @@ -0,0 +1,2 @@ +// This file doesn't really exist, but it doesn't matter, a "PermissionsDenied" error should be thrown. +import "https://example.com/some/file.ts"; -- cgit v1.2.3