summaryrefslogtreecommitdiff
path: root/tests/registry/npm/@denotest
diff options
context:
space:
mode:
Diffstat (limited to 'tests/registry/npm/@denotest')
-rw-r--r--tests/registry/npm/@denotest/CAPITALS/1.0.0/index.js1
-rw-r--r--tests/registry/npm/@denotest/CAPITALS/1.0.0/package.json4
-rw-r--r--tests/registry/npm/@denotest/MixedCase/1.0.0/index.js2
-rw-r--r--tests/registry/npm/@denotest/MixedCase/1.0.0/package.json7
-rw-r--r--tests/registry/npm/@denotest/bin/0.5.0/cli.mjs5
-rw-r--r--tests/registry/npm/@denotest/bin/0.5.0/package.json5
-rw-r--r--tests/registry/npm/@denotest/bin/0.6.0/cli-cjs.js5
-rw-r--r--tests/registry/npm/@denotest/bin/0.6.0/cli.mjs5
-rw-r--r--tests/registry/npm/@denotest/bin/0.6.0/package.json4
-rw-r--r--tests/registry/npm/@denotest/bin/1.0.0/cli-cjs.js5
-rw-r--r--tests/registry/npm/@denotest/bin/1.0.0/cli-no-ext5
-rw-r--r--tests/registry/npm/@denotest/bin/1.0.0/cli.mjs5
-rw-r--r--tests/registry/npm/@denotest/bin/1.0.0/package.json9
-rw-r--r--tests/registry/npm/@denotest/binary-package-linux/1.0.0/index.js1
-rw-r--r--tests/registry/npm/@denotest/binary-package-linux/1.0.0/package.json8
-rw-r--r--tests/registry/npm/@denotest/binary-package-mac/1.0.0/index.js1
-rw-r--r--tests/registry/npm/@denotest/binary-package-mac/1.0.0/package.json8
-rw-r--r--tests/registry/npm/@denotest/binary-package-windows/1.0.0/index.js1
-rw-r--r--tests/registry/npm/@denotest/binary-package-windows/1.0.0/package.json8
-rw-r--r--tests/registry/npm/@denotest/binary-package/1.0.0/index.js13
-rw-r--r--tests/registry/npm/@denotest/binary-package/1.0.0/package.json10
-rw-r--r--tests/registry/npm/@denotest/breaking-change-between-versions/1.0.0/index.d.ts1
-rw-r--r--tests/registry/npm/@denotest/breaking-change-between-versions/1.0.0/index.js3
-rw-r--r--tests/registry/npm/@denotest/breaking-change-between-versions/1.0.0/package.json6
-rw-r--r--tests/registry/npm/@denotest/breaking-change-between-versions/2.0.0/index.d.ts1
-rw-r--r--tests/registry/npm/@denotest/breaking-change-between-versions/2.0.0/index.js3
-rw-r--r--tests/registry/npm/@denotest/breaking-change-between-versions/2.0.0/package.json6
-rw-r--r--tests/registry/npm/@denotest/builtin-module-module/1.0.0/index.js7
-rw-r--r--tests/registry/npm/@denotest/builtin-module-module/1.0.0/package.json5
-rw-r--r--tests/registry/npm/@denotest/check-error/1.0.0/index.d.ts10
-rw-r--r--tests/registry/npm/@denotest/check-error/1.0.0/index.js6
-rw-r--r--tests/registry/npm/@denotest/check-error/1.0.0/other_dir.d.ts1
-rw-r--r--tests/registry/npm/@denotest/check-error/1.0.0/other_dir/index.js1
-rw-r--r--tests/registry/npm/@denotest/check-error/1.0.0/package.json5
-rw-r--r--tests/registry/npm/@denotest/check-error/1.0.0/sub_dir/index.d.ts1
-rw-r--r--tests/registry/npm/@denotest/check-error/1.0.0/sub_dir/index.js1
-rw-r--r--tests/registry/npm/@denotest/check-error/1.0.0/sub_dir/lib.d.ts1
-rw-r--r--tests/registry/npm/@denotest/child-process-fork/1.0.0/forked_path.js3
-rw-r--r--tests/registry/npm/@denotest/child-process-fork/1.0.0/index.js20
-rw-r--r--tests/registry/npm/@denotest/child-process-fork/1.0.0/package.json4
-rw-r--r--tests/registry/npm/@denotest/cjs-default-export/1.0.0/index.d.ts6
-rw-r--r--tests/registry/npm/@denotest/cjs-default-export/1.0.0/index.js17
-rw-r--r--tests/registry/npm/@denotest/cjs-default-export/1.0.0/package.json5
-rw-r--r--tests/registry/npm/@denotest/cjs-internal-types-default-export/1.0.0/add.d.ts3
-rw-r--r--tests/registry/npm/@denotest/cjs-internal-types-default-export/1.0.0/index.d.ts1
-rw-r--r--tests/registry/npm/@denotest/cjs-internal-types-default-export/1.0.0/index.js1
-rw-r--r--tests/registry/npm/@denotest/cjs-internal-types-default-export/1.0.0/package.json4
-rw-r--r--tests/registry/npm/@denotest/cjs-invalid-name-exports/1.0.0/index.js6
-rw-r--r--tests/registry/npm/@denotest/cjs-invalid-name-exports/1.0.0/package.json4
-rw-r--r--tests/registry/npm/@denotest/cjs-local-global-decls/1.0.0/index.js3
-rw-r--r--tests/registry/npm/@denotest/cjs-local-global-decls/1.0.0/other.js2
-rw-r--r--tests/registry/npm/@denotest/cjs-local-global-decls/1.0.0/package.json4
-rw-r--r--tests/registry/npm/@denotest/cjs-module-export-assignment-number/1.0.0/index.d.ts2
-rw-r--r--tests/registry/npm/@denotest/cjs-module-export-assignment-number/1.0.0/index.js1
-rw-r--r--tests/registry/npm/@denotest/cjs-module-export-assignment-number/1.0.0/package.json5
-rw-r--r--tests/registry/npm/@denotest/cjs-module-export-assignment/1.0.0/index.d.ts5
-rw-r--r--tests/registry/npm/@denotest/cjs-module-export-assignment/1.0.0/index.js5
-rw-r--r--tests/registry/npm/@denotest/cjs-module-export-assignment/1.0.0/package.json5
-rw-r--r--tests/registry/npm/@denotest/cjs-pkg-imports/1.0.0/index.js7
-rw-r--r--tests/registry/npm/@denotest/cjs-pkg-imports/1.0.0/number.js1
-rw-r--r--tests/registry/npm/@denotest/cjs-pkg-imports/1.0.0/package.json13
-rw-r--r--tests/registry/npm/@denotest/cjs-pkg-imports/1.0.0/sub/dist/crypto.js1
-rw-r--r--tests/registry/npm/@denotest/cjs-pkg-imports/1.0.0/sub/dist/crypto.mjs1
-rw-r--r--tests/registry/npm/@denotest/cjs-reexport-collision/1.0.0/index.js19
-rw-r--r--tests/registry/npm/@denotest/cjs-reexport-collision/1.0.0/other_file.js10
-rw-r--r--tests/registry/npm/@denotest/cjs-reexport-collision/1.0.0/package.json5
-rw-r--r--tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/esm/my_es_module.js1
-rw-r--r--tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/esm/package.json3
-rw-r--r--tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/esm_mjs.mjs1
-rw-r--r--tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/index.js1
-rw-r--r--tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/package.json4
-rw-r--r--tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/require_mjs.js1
-rw-r--r--tests/registry/npm/@denotest/cjs-this-in-exports/1.0.0/index.js8
-rw-r--r--tests/registry/npm/@denotest/cjs-this-in-exports/1.0.0/package.json5
-rw-r--r--tests/registry/npm/@denotest/cjs-with-file-stem/1.0.0/index.js5
-rw-r--r--tests/registry/npm/@denotest/cjs-with-file-stem/1.0.0/other.service.js4
-rw-r--r--tests/registry/npm/@denotest/cjs-with-file-stem/1.0.0/package.json4
-rw-r--r--tests/registry/npm/@denotest/cjs-with-file-stem/1.0.0/tslib.js3
-rw-r--r--tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/cjs/index.cjs3
-rw-r--r--tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/esm/client/bar.js3
-rw-r--r--tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/esm/client/foo.js3
-rw-r--r--tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/esm/client/index.js3
-rw-r--r--tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/esm/client/m.js3
-rw-r--r--tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/esm/index.js3
-rw-r--r--tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/foo.js3
-rw-r--r--tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/package.json16
-rw-r--r--tests/registry/npm/@denotest/conditional-exports/1.0.0/cjs/index.cjs3
-rw-r--r--tests/registry/npm/@denotest/conditional-exports/1.0.0/esm/client/bar.js3
-rw-r--r--tests/registry/npm/@denotest/conditional-exports/1.0.0/esm/client/foo.js3
-rw-r--r--tests/registry/npm/@denotest/conditional-exports/1.0.0/esm/client/index.js3
-rw-r--r--tests/registry/npm/@denotest/conditional-exports/1.0.0/esm/client/m.js3
-rw-r--r--tests/registry/npm/@denotest/conditional-exports/1.0.0/esm/index.js3
-rw-r--r--tests/registry/npm/@denotest/conditional-exports/1.0.0/foo.js3
-rw-r--r--tests/registry/npm/@denotest/conditional-exports/1.0.0/package.json21
-rw-r--r--tests/registry/npm/@denotest/create-require/1.0.0/index.js33
-rw-r--r--tests/registry/npm/@denotest/create-require/1.0.0/package.json6
-rw-r--r--tests/registry/npm/@denotest/css-export/1.0.0/dist/index.css1
-rw-r--r--tests/registry/npm/@denotest/css-export/1.0.0/package.json9
-rw-r--r--tests/registry/npm/@denotest/d-ext/1.0.0/index.d.ts1
-rw-r--r--tests/registry/npm/@denotest/d-ext/1.0.0/index.js1
-rw-r--r--tests/registry/npm/@denotest/d-ext/1.0.0/package.json5
-rw-r--r--tests/registry/npm/@denotest/d-ext/1.0.0/types.d.ts1
-rw-r--r--tests/registry/npm/@denotest/different-nested-dep-child/1.0.0/index.js1
-rw-r--r--tests/registry/npm/@denotest/different-nested-dep-child/1.0.0/package.json5
-rw-r--r--tests/registry/npm/@denotest/different-nested-dep-child/2.0.0/index.js1
-rw-r--r--tests/registry/npm/@denotest/different-nested-dep-child/2.0.0/package.json5
-rw-r--r--tests/registry/npm/@denotest/different-nested-dep/1.0.0/index.js2
-rw-r--r--tests/registry/npm/@denotest/different-nested-dep/1.0.0/package.json8
-rw-r--r--tests/registry/npm/@denotest/dual-cjs-esm-dep-missing/1.0.0/index.cjs3
-rw-r--r--tests/registry/npm/@denotest/dual-cjs-esm-dep-missing/1.0.0/index.d.ts1
-rw-r--r--tests/registry/npm/@denotest/dual-cjs-esm-dep-missing/1.0.0/index.mjs3
-rw-r--r--tests/registry/npm/@denotest/dual-cjs-esm-dep-missing/1.0.0/package.json7
-rw-r--r--tests/registry/npm/@denotest/dual-cjs-esm-dep/1.0.0/index.cjs3
-rw-r--r--tests/registry/npm/@denotest/dual-cjs-esm-dep/1.0.0/index.d.ts1
-rw-r--r--tests/registry/npm/@denotest/dual-cjs-esm-dep/1.0.0/index.mjs3
-rw-r--r--tests/registry/npm/@denotest/dual-cjs-esm-dep/1.0.0/package.json10
-rw-r--r--tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/cjs/main.cjs10
-rw-r--r--tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/cjs/package.json3
-rw-r--r--tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/main.cjs3
-rw-r--r--tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/main.d.cts1
-rw-r--r--tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/main.d.mts1
-rw-r--r--tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/main.mjs3
-rw-r--r--tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/package.json7
-rw-r--r--tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/subpath/main.cjs3
-rw-r--r--tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/subpath/main.mjs3
-rw-r--r--tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/subpath/package.json5
-rw-r--r--tests/registry/npm/@denotest/dynamic-import/1.0.0/index.js3
-rw-r--r--tests/registry/npm/@denotest/dynamic-import/1.0.0/package.json5
-rw-r--r--tests/registry/npm/@denotest/env-var-re-export/1.0.0/dev.cjs5
-rw-r--r--tests/registry/npm/@denotest/env-var-re-export/1.0.0/index.cjs5
-rw-r--r--tests/registry/npm/@denotest/env-var-re-export/1.0.0/package.json5
-rw-r--r--tests/registry/npm/@denotest/env-var-re-export/1.0.0/prod.cjs5
-rw-r--r--tests/registry/npm/@denotest/esm-basic/1.0.0/main.d.mts3
-rw-r--r--tests/registry/npm/@denotest/esm-basic/1.0.0/main.mjs11
-rw-r--r--tests/registry/npm/@denotest/esm-basic/1.0.0/other.mjs3
-rw-r--r--tests/registry/npm/@denotest/esm-basic/1.0.0/package.json7
-rw-r--r--tests/registry/npm/@denotest/esm-import-cjs-default/1.0.0/index.mjs17
-rw-r--r--tests/registry/npm/@denotest/esm-import-cjs-default/1.0.0/local.cjs9
-rw-r--r--tests/registry/npm/@denotest/esm-import-cjs-default/1.0.0/package.json8
-rw-r--r--tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.cjs0
-rw-r--r--tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.d.cts1
-rw-r--r--tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.d.mts1
-rw-r--r--tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.d.ts1
-rw-r--r--tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.js0
-rw-r--r--tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.mjs0
-rw-r--r--tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/package.json13
-rw-r--r--tests/registry/npm/@denotest/globals/1.0.0/index.d.ts21
-rw-r--r--tests/registry/npm/@denotest/globals/1.0.0/index.js25
-rw-r--r--tests/registry/npm/@denotest/globals/1.0.0/package.json5
-rw-r--r--tests/registry/npm/@denotest/imports-package-json/1.0.0/hi.js1
-rw-r--r--tests/registry/npm/@denotest/imports-package-json/1.0.0/import_not_defined.js3
-rw-r--r--tests/registry/npm/@denotest/imports-package-json/1.0.0/main.js13
-rw-r--r--tests/registry/npm/@denotest/imports-package-json/1.0.0/package.json21
-rw-r--r--tests/registry/npm/@denotest/imports-package-json/1.0.0/sub_path/bye.js1
-rw-r--r--tests/registry/npm/@denotest/imports-package-json/1.0.0/sub_path/import_not_defined.js4
-rw-r--r--tests/registry/npm/@denotest/imports-package-json/1.0.0/sub_path/main.js3
-rw-r--r--tests/registry/npm/@denotest/imports-package-json/1.0.0/sub_path/package.json6
-rw-r--r--tests/registry/npm/@denotest/monaco-editor/1.0.0/main.js4
-rw-r--r--tests/registry/npm/@denotest/monaco-editor/1.0.0/main.types.d.ts1
-rw-r--r--tests/registry/npm/@denotest/monaco-editor/1.0.0/package.json6
-rw-r--r--tests/registry/npm/@denotest/no-types-cjs/1.0.0/main.js6
-rw-r--r--tests/registry/npm/@denotest/no-types-cjs/1.0.0/package.json5
-rw-r--r--tests/registry/npm/@denotest/no-types-in-conditional-exports/1.0.0/lib/foo-esm.js3
-rw-r--r--tests/registry/npm/@denotest/no-types-in-conditional-exports/1.0.0/lib/foo.js3
-rw-r--r--tests/registry/npm/@denotest/no-types-in-conditional-exports/1.0.0/package.json14
-rw-r--r--tests/registry/npm/@denotest/non-existent-dep-version/1.0.0/index.js1
-rw-r--r--tests/registry/npm/@denotest/non-existent-dep-version/1.0.0/package.json7
-rw-r--r--tests/registry/npm/@denotest/non-existent-dep/1.0.0/index.js1
-rw-r--r--tests/registry/npm/@denotest/non-existent-dep/1.0.0/package.json7
-rw-r--r--tests/registry/npm/@denotest/peer-dep-test-child/1.0.0/index.js1
-rw-r--r--tests/registry/npm/@denotest/peer-dep-test-child/1.0.0/package.json8
-rw-r--r--tests/registry/npm/@denotest/peer-dep-test-child/2.0.0/index.js1
-rw-r--r--tests/registry/npm/@denotest/peer-dep-test-child/2.0.0/package.json8
-rw-r--r--tests/registry/npm/@denotest/peer-dep-test-grandchild/1.0.0/dist/index.js1
-rw-r--r--tests/registry/npm/@denotest/peer-dep-test-grandchild/1.0.0/index.js1
-rw-r--r--tests/registry/npm/@denotest/peer-dep-test-grandchild/1.0.0/package.json7
-rw-r--r--tests/registry/npm/@denotest/peer-dep-test-peer/1.0.0/index.js1
-rw-r--r--tests/registry/npm/@denotest/peer-dep-test-peer/1.0.0/package.json4
-rw-r--r--tests/registry/npm/@denotest/peer-dep-test-peer/2.0.0/index.js1
-rw-r--r--tests/registry/npm/@denotest/peer-dep-test-peer/2.0.0/package.json4
-rw-r--r--tests/registry/npm/@denotest/permissions-outside-package/1.0.0/index.js5
-rw-r--r--tests/registry/npm/@denotest/permissions-outside-package/1.0.0/package.json5
-rw-r--r--tests/registry/npm/@denotest/require-added-nm-folder/1.0.0/index.js3
-rw-r--r--tests/registry/npm/@denotest/require-added-nm-folder/1.0.0/package.json4
-rw-r--r--tests/registry/npm/@denotest/require-resolve/1.0.0/index.cjs3
-rw-r--r--tests/registry/npm/@denotest/require-resolve/1.0.0/package.json5
-rw-r--r--tests/registry/npm/@denotest/reserved-word-exports/1.0.0/index.cjs68
-rw-r--r--tests/registry/npm/@denotest/reserved-word-exports/1.0.0/package.json5
-rw-r--r--tests/registry/npm/@denotest/special-chars-in-bin-name/1.0.0/main.mjs5
-rw-r--r--tests/registry/npm/@denotest/special-chars-in-bin-name/1.0.0/package.json10
-rw-r--r--tests/registry/npm/@denotest/sub-folders/1.0.0/folder_index_js/index.d.ts1
-rw-r--r--tests/registry/npm/@denotest/sub-folders/1.0.0/folder_index_js/index.js3
-rw-r--r--tests/registry/npm/@denotest/sub-folders/1.0.0/folder_no_index/random_name.js1
-rw-r--r--tests/registry/npm/@denotest/sub-folders/1.0.0/main.mjs3
-rw-r--r--tests/registry/npm/@denotest/sub-folders/1.0.0/package.json6
-rw-r--r--tests/registry/npm/@denotest/types-ambient/1.0.0/index.d.ts10
-rw-r--r--tests/registry/npm/@denotest/types-ambient/1.0.0/index.js3
-rw-r--r--tests/registry/npm/@denotest/types-ambient/1.0.0/package.json5
-rw-r--r--tests/registry/npm/@denotest/types-entry-value-not-exists/1.0.0/dist/main.d.ts1
-rw-r--r--tests/registry/npm/@denotest/types-entry-value-not-exists/1.0.0/dist/main.js1
-rw-r--r--tests/registry/npm/@denotest/types-entry-value-not-exists/1.0.0/package.json13
-rw-r--r--tests/registry/npm/@denotest/types-exports-import-types/1.0.0/dist/main.d.ts1
-rw-r--r--tests/registry/npm/@denotest/types-exports-import-types/1.0.0/dist/main.mjs3
-rw-r--r--tests/registry/npm/@denotest/types-exports-import-types/1.0.0/package.json10
-rw-r--r--tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/client.d.ts1
-rw-r--r--tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/dist/client.mjs3
-rw-r--r--tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/dist/entry-a.d.ts1
-rw-r--r--tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/dist/entry-a.js3
-rw-r--r--tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/dist/entry-b.d.ts1
-rw-r--r--tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/dist/entry-b.js3
-rw-r--r--tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/entry-import.d.ts1
-rw-r--r--tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/entry-import.js0
-rw-r--r--tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/entry-js-only.js0
-rw-r--r--tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/entry-types.d.ts1
-rw-r--r--tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/package.json26
-rw-r--r--tests/registry/npm/@denotest/types-no-types-entry/1.0.0/dist/main.d.ts1
-rw-r--r--tests/registry/npm/@denotest/types-no-types-entry/1.0.0/dist/main.js1
-rw-r--r--tests/registry/npm/@denotest/types-no-types-entry/1.0.0/package.json8
-rw-r--r--tests/registry/npm/@denotest/types-pkg-json-import/1.0.0/hooks/src/index.d.ts4
-rw-r--r--tests/registry/npm/@denotest/types-pkg-json-import/1.0.0/package.json14
-rw-r--r--tests/registry/npm/@denotest/types-pkg-json-import/1.0.0/src/index.d.ts76
-rw-r--r--tests/registry/npm/@denotest/types/1.0.0/index.d.ts4
-rw-r--r--tests/registry/npm/@denotest/types/1.0.0/package.json5
-rw-r--r--tests/registry/npm/@denotest/types_imported/1.0.0/index.d.ts4
-rw-r--r--tests/registry/npm/@denotest/types_imported/1.0.0/package.json5
-rw-r--r--tests/registry/npm/@denotest/types_imported/1.0.0/subpath.d.ts4
-rw-r--r--tests/registry/npm/@denotest/typescript-file/1.0.0/index.ts4
-rw-r--r--tests/registry/npm/@denotest/typescript-file/1.0.0/package.json5
228 files changed, 1250 insertions, 0 deletions
diff --git a/tests/registry/npm/@denotest/CAPITALS/1.0.0/index.js b/tests/registry/npm/@denotest/CAPITALS/1.0.0/index.js
new file mode 100644
index 000000000..f4e8d9d29
--- /dev/null
+++ b/tests/registry/npm/@denotest/CAPITALS/1.0.0/index.js
@@ -0,0 +1 @@
+module.exports = 5;
diff --git a/tests/registry/npm/@denotest/CAPITALS/1.0.0/package.json b/tests/registry/npm/@denotest/CAPITALS/1.0.0/package.json
new file mode 100644
index 000000000..e897d0023
--- /dev/null
+++ b/tests/registry/npm/@denotest/CAPITALS/1.0.0/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "@denotest/CAPITALS",
+ "version": "1.0.0"
+}
diff --git a/tests/registry/npm/@denotest/MixedCase/1.0.0/index.js b/tests/registry/npm/@denotest/MixedCase/1.0.0/index.js
new file mode 100644
index 000000000..fe1cfe547
--- /dev/null
+++ b/tests/registry/npm/@denotest/MixedCase/1.0.0/index.js
@@ -0,0 +1,2 @@
+const value = require("@denotest/CAPITALS");
+module.exports = value;
diff --git a/tests/registry/npm/@denotest/MixedCase/1.0.0/package.json b/tests/registry/npm/@denotest/MixedCase/1.0.0/package.json
new file mode 100644
index 000000000..2a36cb357
--- /dev/null
+++ b/tests/registry/npm/@denotest/MixedCase/1.0.0/package.json
@@ -0,0 +1,7 @@
+{
+ "name": "@denotest/MixedCase",
+ "version": "1.0.0",
+ "dependencies": {
+ "@denotest/CAPITALS": "^1"
+ }
+}
diff --git a/tests/registry/npm/@denotest/bin/0.5.0/cli.mjs b/tests/registry/npm/@denotest/bin/0.5.0/cli.mjs
new file mode 100644
index 000000000..0ae8e9190
--- /dev/null
+++ b/tests/registry/npm/@denotest/bin/0.5.0/cli.mjs
@@ -0,0 +1,5 @@
+import process from "node:process";
+
+for (const arg of process.argv.slice(2)) {
+ console.log(arg);
+}
diff --git a/tests/registry/npm/@denotest/bin/0.5.0/package.json b/tests/registry/npm/@denotest/bin/0.5.0/package.json
new file mode 100644
index 000000000..1b077a52e
--- /dev/null
+++ b/tests/registry/npm/@denotest/bin/0.5.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/bin",
+ "version": "0.5.0",
+ "bin": "./cli.mjs"
+}
diff --git a/tests/registry/npm/@denotest/bin/0.6.0/cli-cjs.js b/tests/registry/npm/@denotest/bin/0.6.0/cli-cjs.js
new file mode 100644
index 000000000..7b6ba2724
--- /dev/null
+++ b/tests/registry/npm/@denotest/bin/0.6.0/cli-cjs.js
@@ -0,0 +1,5 @@
+const process = require("process");
+
+for (const arg of process.argv.slice(2)) {
+ console.log(arg);
+}
diff --git a/tests/registry/npm/@denotest/bin/0.6.0/cli.mjs b/tests/registry/npm/@denotest/bin/0.6.0/cli.mjs
new file mode 100644
index 000000000..0ae8e9190
--- /dev/null
+++ b/tests/registry/npm/@denotest/bin/0.6.0/cli.mjs
@@ -0,0 +1,5 @@
+import process from "node:process";
+
+for (const arg of process.argv.slice(2)) {
+ console.log(arg);
+}
diff --git a/tests/registry/npm/@denotest/bin/0.6.0/package.json b/tests/registry/npm/@denotest/bin/0.6.0/package.json
new file mode 100644
index 000000000..a9ff2d946
--- /dev/null
+++ b/tests/registry/npm/@denotest/bin/0.6.0/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "@denotest/bin",
+ "version": "0.6.0"
+}
diff --git a/tests/registry/npm/@denotest/bin/1.0.0/cli-cjs.js b/tests/registry/npm/@denotest/bin/1.0.0/cli-cjs.js
new file mode 100644
index 000000000..7b6ba2724
--- /dev/null
+++ b/tests/registry/npm/@denotest/bin/1.0.0/cli-cjs.js
@@ -0,0 +1,5 @@
+const process = require("process");
+
+for (const arg of process.argv.slice(2)) {
+ console.log(arg);
+}
diff --git a/tests/registry/npm/@denotest/bin/1.0.0/cli-no-ext b/tests/registry/npm/@denotest/bin/1.0.0/cli-no-ext
new file mode 100644
index 000000000..7b6ba2724
--- /dev/null
+++ b/tests/registry/npm/@denotest/bin/1.0.0/cli-no-ext
@@ -0,0 +1,5 @@
+const process = require("process");
+
+for (const arg of process.argv.slice(2)) {
+ console.log(arg);
+}
diff --git a/tests/registry/npm/@denotest/bin/1.0.0/cli.mjs b/tests/registry/npm/@denotest/bin/1.0.0/cli.mjs
new file mode 100644
index 000000000..0ae8e9190
--- /dev/null
+++ b/tests/registry/npm/@denotest/bin/1.0.0/cli.mjs
@@ -0,0 +1,5 @@
+import process from "node:process";
+
+for (const arg of process.argv.slice(2)) {
+ console.log(arg);
+}
diff --git a/tests/registry/npm/@denotest/bin/1.0.0/package.json b/tests/registry/npm/@denotest/bin/1.0.0/package.json
new file mode 100644
index 000000000..27118c21a
--- /dev/null
+++ b/tests/registry/npm/@denotest/bin/1.0.0/package.json
@@ -0,0 +1,9 @@
+{
+ "name": "@denotest/bin",
+ "version": "1.0.0",
+ "bin": {
+ "cli-esm": "./cli.mjs",
+ "cli-no-ext": "./cli-no-ext",
+ "cli-cjs": "./cli-cjs.js"
+ }
+}
diff --git a/tests/registry/npm/@denotest/binary-package-linux/1.0.0/index.js b/tests/registry/npm/@denotest/binary-package-linux/1.0.0/index.js
new file mode 100644
index 000000000..03ecfc377
--- /dev/null
+++ b/tests/registry/npm/@denotest/binary-package-linux/1.0.0/index.js
@@ -0,0 +1 @@
+console.log("Hello from binary package on linux"); \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/binary-package-linux/1.0.0/package.json b/tests/registry/npm/@denotest/binary-package-linux/1.0.0/package.json
new file mode 100644
index 000000000..3b450e0d9
--- /dev/null
+++ b/tests/registry/npm/@denotest/binary-package-linux/1.0.0/package.json
@@ -0,0 +1,8 @@
+{
+ "name": "@denotest/binary-package-linux",
+ "version": "1.0.0",
+ "main": "index.js",
+ "os": [
+ "linux"
+ ]
+}
diff --git a/tests/registry/npm/@denotest/binary-package-mac/1.0.0/index.js b/tests/registry/npm/@denotest/binary-package-mac/1.0.0/index.js
new file mode 100644
index 000000000..ac8c91f50
--- /dev/null
+++ b/tests/registry/npm/@denotest/binary-package-mac/1.0.0/index.js
@@ -0,0 +1 @@
+console.log("Hello from binary package on mac"); \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/binary-package-mac/1.0.0/package.json b/tests/registry/npm/@denotest/binary-package-mac/1.0.0/package.json
new file mode 100644
index 000000000..02916e65b
--- /dev/null
+++ b/tests/registry/npm/@denotest/binary-package-mac/1.0.0/package.json
@@ -0,0 +1,8 @@
+{
+ "name": "@denotest/binary-package-linux",
+ "version": "1.0.0",
+ "main": "index.js",
+ "os": [
+ "darwin"
+ ]
+}
diff --git a/tests/registry/npm/@denotest/binary-package-windows/1.0.0/index.js b/tests/registry/npm/@denotest/binary-package-windows/1.0.0/index.js
new file mode 100644
index 000000000..57344ca00
--- /dev/null
+++ b/tests/registry/npm/@denotest/binary-package-windows/1.0.0/index.js
@@ -0,0 +1 @@
+console.log("Hello from binary package on windows"); \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/binary-package-windows/1.0.0/package.json b/tests/registry/npm/@denotest/binary-package-windows/1.0.0/package.json
new file mode 100644
index 000000000..1c0af637d
--- /dev/null
+++ b/tests/registry/npm/@denotest/binary-package-windows/1.0.0/package.json
@@ -0,0 +1,8 @@
+{
+ "name": "@denotest/binary-package-windows",
+ "version": "1.0.0",
+ "main": "index.js",
+ "os": [
+ "win32"
+ ]
+}
diff --git a/tests/registry/npm/@denotest/binary-package/1.0.0/index.js b/tests/registry/npm/@denotest/binary-package/1.0.0/index.js
new file mode 100644
index 000000000..5870118e7
--- /dev/null
+++ b/tests/registry/npm/@denotest/binary-package/1.0.0/index.js
@@ -0,0 +1,13 @@
+const packageByOs = {
+ "darwin": "@denotest/binary-package-mac",
+ "linux": "@denotest/binary-package-linux",
+ "win32": "@denotest/binary-package-windows",
+}
+
+const selectedPackage = packageByOs[process.platform];
+
+if (!selectedPackage) {
+ throw new Error("trying to run on unsupported platform");
+}
+
+require(selectedPackage); \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/binary-package/1.0.0/package.json b/tests/registry/npm/@denotest/binary-package/1.0.0/package.json
new file mode 100644
index 000000000..dc8859bb4
--- /dev/null
+++ b/tests/registry/npm/@denotest/binary-package/1.0.0/package.json
@@ -0,0 +1,10 @@
+{
+ "name": "@denotest/binary-package",
+ "version": "1.0.0",
+ "main": "index.js",
+ "optionalDependencies": {
+ "@denotest/binary-package-linux": "1.0.0",
+ "@denotest/binary-package-mac": "1.0.0",
+ "@denotest/binary-package-windows": "1.0.0"
+ }
+}
diff --git a/tests/registry/npm/@denotest/breaking-change-between-versions/1.0.0/index.d.ts b/tests/registry/npm/@denotest/breaking-change-between-versions/1.0.0/index.d.ts
new file mode 100644
index 000000000..06dfef10d
--- /dev/null
+++ b/tests/registry/npm/@denotest/breaking-change-between-versions/1.0.0/index.d.ts
@@ -0,0 +1 @@
+export function oldName(): 1; \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/breaking-change-between-versions/1.0.0/index.js b/tests/registry/npm/@denotest/breaking-change-between-versions/1.0.0/index.js
new file mode 100644
index 000000000..1aca4250b
--- /dev/null
+++ b/tests/registry/npm/@denotest/breaking-change-between-versions/1.0.0/index.js
@@ -0,0 +1,3 @@
+export function newName() {
+ return 1;
+}
diff --git a/tests/registry/npm/@denotest/breaking-change-between-versions/1.0.0/package.json b/tests/registry/npm/@denotest/breaking-change-between-versions/1.0.0/package.json
new file mode 100644
index 000000000..6eabea3af
--- /dev/null
+++ b/tests/registry/npm/@denotest/breaking-change-between-versions/1.0.0/package.json
@@ -0,0 +1,6 @@
+{
+ "name": "@denotest/breaking-change-between-versions",
+ "version": "1.0.0",
+ "type": "module",
+ "main": "index.js"
+}
diff --git a/tests/registry/npm/@denotest/breaking-change-between-versions/2.0.0/index.d.ts b/tests/registry/npm/@denotest/breaking-change-between-versions/2.0.0/index.d.ts
new file mode 100644
index 000000000..9a96451a5
--- /dev/null
+++ b/tests/registry/npm/@denotest/breaking-change-between-versions/2.0.0/index.d.ts
@@ -0,0 +1 @@
+export function newName(): 2; \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/breaking-change-between-versions/2.0.0/index.js b/tests/registry/npm/@denotest/breaking-change-between-versions/2.0.0/index.js
new file mode 100644
index 000000000..57626060d
--- /dev/null
+++ b/tests/registry/npm/@denotest/breaking-change-between-versions/2.0.0/index.js
@@ -0,0 +1,3 @@
+export function newName() {
+ return 2;
+}
diff --git a/tests/registry/npm/@denotest/breaking-change-between-versions/2.0.0/package.json b/tests/registry/npm/@denotest/breaking-change-between-versions/2.0.0/package.json
new file mode 100644
index 000000000..ecd5970a4
--- /dev/null
+++ b/tests/registry/npm/@denotest/breaking-change-between-versions/2.0.0/package.json
@@ -0,0 +1,6 @@
+{
+ "name": "@denotest/breaking-change-between-versions",
+ "version": "2.0.0",
+ "type": "module",
+ "main": "index.js"
+}
diff --git a/tests/registry/npm/@denotest/builtin-module-module/1.0.0/index.js b/tests/registry/npm/@denotest/builtin-module-module/1.0.0/index.js
new file mode 100644
index 000000000..140f5ef21
--- /dev/null
+++ b/tests/registry/npm/@denotest/builtin-module-module/1.0.0/index.js
@@ -0,0 +1,7 @@
+import m1 from "node:module";
+import m2 from "module";
+
+console.log(typeof m1.Module);
+console.log(typeof m2.Module);
+console.log(typeof m1);
+console.log(m1 === m1.Module);
diff --git a/tests/registry/npm/@denotest/builtin-module-module/1.0.0/package.json b/tests/registry/npm/@denotest/builtin-module-module/1.0.0/package.json
new file mode 100644
index 000000000..5167f18a3
--- /dev/null
+++ b/tests/registry/npm/@denotest/builtin-module-module/1.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/builtin-module-module",
+ "version": "1.0.0",
+ "type": "module"
+}
diff --git a/tests/registry/npm/@denotest/check-error/1.0.0/index.d.ts b/tests/registry/npm/@denotest/check-error/1.0.0/index.d.ts
new file mode 100644
index 000000000..bfb0483c2
--- /dev/null
+++ b/tests/registry/npm/@denotest/check-error/1.0.0/index.d.ts
@@ -0,0 +1,10 @@
+// intentional type checking errors
+export class Class1 extends Class2 {
+}
+
+export class Class2 extends Class1 {
+}
+
+// these should be fine though
+export { subDir } from "./sub_dir";
+export { otherDir } from "./other_dir";
diff --git a/tests/registry/npm/@denotest/check-error/1.0.0/index.js b/tests/registry/npm/@denotest/check-error/1.0.0/index.js
new file mode 100644
index 000000000..7eb6b784d
--- /dev/null
+++ b/tests/registry/npm/@denotest/check-error/1.0.0/index.js
@@ -0,0 +1,6 @@
+module.exports = {
+ Class1: class {
+ },
+ Class2: class {
+ },
+};
diff --git a/tests/registry/npm/@denotest/check-error/1.0.0/other_dir.d.ts b/tests/registry/npm/@denotest/check-error/1.0.0/other_dir.d.ts
new file mode 100644
index 000000000..e7254c16c
--- /dev/null
+++ b/tests/registry/npm/@denotest/check-error/1.0.0/other_dir.d.ts
@@ -0,0 +1 @@
+export const otherDir: 2;
diff --git a/tests/registry/npm/@denotest/check-error/1.0.0/other_dir/index.js b/tests/registry/npm/@denotest/check-error/1.0.0/other_dir/index.js
new file mode 100644
index 000000000..56259f22d
--- /dev/null
+++ b/tests/registry/npm/@denotest/check-error/1.0.0/other_dir/index.js
@@ -0,0 +1 @@
+module.exports.otherDir = 2;
diff --git a/tests/registry/npm/@denotest/check-error/1.0.0/package.json b/tests/registry/npm/@denotest/check-error/1.0.0/package.json
new file mode 100644
index 000000000..295920a8f
--- /dev/null
+++ b/tests/registry/npm/@denotest/check-error/1.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/check-error",
+ "version": "1.0.0",
+ "types": "./index.d.ts"
+}
diff --git a/tests/registry/npm/@denotest/check-error/1.0.0/sub_dir/index.d.ts b/tests/registry/npm/@denotest/check-error/1.0.0/sub_dir/index.d.ts
new file mode 100644
index 000000000..f41a696fd
--- /dev/null
+++ b/tests/registry/npm/@denotest/check-error/1.0.0/sub_dir/index.d.ts
@@ -0,0 +1 @@
+export * from './lib';
diff --git a/tests/registry/npm/@denotest/check-error/1.0.0/sub_dir/index.js b/tests/registry/npm/@denotest/check-error/1.0.0/sub_dir/index.js
new file mode 100644
index 000000000..3dfac4c23
--- /dev/null
+++ b/tests/registry/npm/@denotest/check-error/1.0.0/sub_dir/index.js
@@ -0,0 +1 @@
+module.exports.subDir = 1;
diff --git a/tests/registry/npm/@denotest/check-error/1.0.0/sub_dir/lib.d.ts b/tests/registry/npm/@denotest/check-error/1.0.0/sub_dir/lib.d.ts
new file mode 100644
index 000000000..e5834b52b
--- /dev/null
+++ b/tests/registry/npm/@denotest/check-error/1.0.0/sub_dir/lib.d.ts
@@ -0,0 +1 @@
+export const subDir: 1;
diff --git a/tests/registry/npm/@denotest/child-process-fork/1.0.0/forked_path.js b/tests/registry/npm/@denotest/child-process-fork/1.0.0/forked_path.js
new file mode 100644
index 000000000..aaa106315
--- /dev/null
+++ b/tests/registry/npm/@denotest/child-process-fork/1.0.0/forked_path.js
@@ -0,0 +1,3 @@
+const chalk = require("chalk");
+
+console.log(typeof chalk.green);
diff --git a/tests/registry/npm/@denotest/child-process-fork/1.0.0/index.js b/tests/registry/npm/@denotest/child-process-fork/1.0.0/index.js
new file mode 100644
index 000000000..0482be404
--- /dev/null
+++ b/tests/registry/npm/@denotest/child-process-fork/1.0.0/index.js
@@ -0,0 +1,20 @@
+const path = require("path");
+
+function childProcessFork(path) {
+ const command = new Deno.Command(Deno.execPath(), {
+ args: ["run", "-A", path],
+ env: {
+ "DENO_DONT_USE_INTERNAL_NODE_COMPAT_STATE": Deno[Deno.internal].core.ops.op_npm_process_state(),
+ }
+ });
+ const child = command.spawn();
+ child.status.then(() => {
+ console.log("Done.");
+ });
+}
+
+module.exports = {
+ run() {
+ childProcessFork(path.join(__dirname, "forked_path.js"));
+ }
+};
diff --git a/tests/registry/npm/@denotest/child-process-fork/1.0.0/package.json b/tests/registry/npm/@denotest/child-process-fork/1.0.0/package.json
new file mode 100644
index 000000000..9ab14e3f7
--- /dev/null
+++ b/tests/registry/npm/@denotest/child-process-fork/1.0.0/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "@denotest/child-process-fork",
+ "version": "1.0.0"
+}
diff --git a/tests/registry/npm/@denotest/cjs-default-export/1.0.0/index.d.ts b/tests/registry/npm/@denotest/cjs-default-export/1.0.0/index.d.ts
new file mode 100644
index 000000000..90fdfe5f6
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-default-export/1.0.0/index.d.ts
@@ -0,0 +1,6 @@
+export default function (): number;
+export declare function named(): number;
+declare class MyClass {
+ static someStaticMethod(): string;
+}
+export { MyClass };
diff --git a/tests/registry/npm/@denotest/cjs-default-export/1.0.0/index.js b/tests/registry/npm/@denotest/cjs-default-export/1.0.0/index.js
new file mode 100644
index 000000000..ec4ece6b3
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-default-export/1.0.0/index.js
@@ -0,0 +1,17 @@
+Object.defineProperty(module.exports, "__esModule", {
+ value: true
+});
+module.exports["default"] = function() {
+ return 1;
+};
+module.exports["named"] = function() {
+ return 2;
+};
+
+class MyClass {
+ static someStaticMethod() {
+ return "static method";
+ }
+}
+
+module.exports.MyClass = MyClass;
diff --git a/tests/registry/npm/@denotest/cjs-default-export/1.0.0/package.json b/tests/registry/npm/@denotest/cjs-default-export/1.0.0/package.json
new file mode 100644
index 000000000..8da28b919
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-default-export/1.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/cjs-default-export",
+ "version": "1.0.0",
+ "types": "./index.d.ts"
+}
diff --git a/tests/registry/npm/@denotest/cjs-internal-types-default-export/1.0.0/add.d.ts b/tests/registry/npm/@denotest/cjs-internal-types-default-export/1.0.0/add.d.ts
new file mode 100644
index 000000000..0b38dc4fc
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-internal-types-default-export/1.0.0/add.d.ts
@@ -0,0 +1,3 @@
+const _default: (a: number, b: number) => number;
+
+export default _default;
diff --git a/tests/registry/npm/@denotest/cjs-internal-types-default-export/1.0.0/index.d.ts b/tests/registry/npm/@denotest/cjs-internal-types-default-export/1.0.0/index.d.ts
new file mode 100644
index 000000000..bfde9725e
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-internal-types-default-export/1.0.0/index.d.ts
@@ -0,0 +1 @@
+export { default as add } from './add'; \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/cjs-internal-types-default-export/1.0.0/index.js b/tests/registry/npm/@denotest/cjs-internal-types-default-export/1.0.0/index.js
new file mode 100644
index 000000000..62c45aa26
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-internal-types-default-export/1.0.0/index.js
@@ -0,0 +1 @@
+module.exports.add = (a, b) => a + b;
diff --git a/tests/registry/npm/@denotest/cjs-internal-types-default-export/1.0.0/package.json b/tests/registry/npm/@denotest/cjs-internal-types-default-export/1.0.0/package.json
new file mode 100644
index 000000000..57b3b9e4a
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-internal-types-default-export/1.0.0/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "@denotest/cjs-internal-types-default-export",
+ "version": "1.0.0"
+}
diff --git a/tests/registry/npm/@denotest/cjs-invalid-name-exports/1.0.0/index.js b/tests/registry/npm/@denotest/cjs-invalid-name-exports/1.0.0/index.js
new file mode 100644
index 000000000..75c3f2e8a
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-invalid-name-exports/1.0.0/index.js
@@ -0,0 +1,6 @@
+exports['wow "double quotes"'] = "double quotes"
+exports["another 'case'"] = 'example'
+exports["a \\ b"] = 'a \\ b'
+const a = 'name variable'
+exports[a] = "a";
+exports['foo - bar'] = 'foo - bar'
diff --git a/tests/registry/npm/@denotest/cjs-invalid-name-exports/1.0.0/package.json b/tests/registry/npm/@denotest/cjs-invalid-name-exports/1.0.0/package.json
new file mode 100644
index 000000000..fd715eeae
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-invalid-name-exports/1.0.0/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "@denotest/cjs-invalid-name-exports",
+ "version": "1.0.0"
+}
diff --git a/tests/registry/npm/@denotest/cjs-local-global-decls/1.0.0/index.js b/tests/registry/npm/@denotest/cjs-local-global-decls/1.0.0/index.js
new file mode 100644
index 000000000..5aa546d91
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-local-global-decls/1.0.0/index.js
@@ -0,0 +1,3 @@
+// package that has all the locals defined
+const Buffer = 1, clearImmediate = 1, clearInterval = 1, clearTimeout = 1, console = 1, global = 1, process = 1, setImmediate = 1, setInterval = 1, setTimeout = 1, globalThis = 1;
+require("./other.js");
diff --git a/tests/registry/npm/@denotest/cjs-local-global-decls/1.0.0/other.js b/tests/registry/npm/@denotest/cjs-local-global-decls/1.0.0/other.js
new file mode 100644
index 000000000..810d852b0
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-local-global-decls/1.0.0/other.js
@@ -0,0 +1,2 @@
+const console = new global.console.Console({ stdout: process.stdout });
+console.log("Loaded.");
diff --git a/tests/registry/npm/@denotest/cjs-local-global-decls/1.0.0/package.json b/tests/registry/npm/@denotest/cjs-local-global-decls/1.0.0/package.json
new file mode 100644
index 000000000..1048fe76d
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-local-global-decls/1.0.0/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "@denotest/cjs-local-global-decls",
+ "version": "1.0.0"
+}
diff --git a/tests/registry/npm/@denotest/cjs-module-export-assignment-number/1.0.0/index.d.ts b/tests/registry/npm/@denotest/cjs-module-export-assignment-number/1.0.0/index.d.ts
new file mode 100644
index 000000000..0e1e0337d
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-module-export-assignment-number/1.0.0/index.d.ts
@@ -0,0 +1,2 @@
+declare const value = 5;
+export = value;
diff --git a/tests/registry/npm/@denotest/cjs-module-export-assignment-number/1.0.0/index.js b/tests/registry/npm/@denotest/cjs-module-export-assignment-number/1.0.0/index.js
new file mode 100644
index 000000000..f4e8d9d29
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-module-export-assignment-number/1.0.0/index.js
@@ -0,0 +1 @@
+module.exports = 5;
diff --git a/tests/registry/npm/@denotest/cjs-module-export-assignment-number/1.0.0/package.json b/tests/registry/npm/@denotest/cjs-module-export-assignment-number/1.0.0/package.json
new file mode 100644
index 000000000..4b2e3a294
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-module-export-assignment-number/1.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/cjs-module-export-assignment-number",
+ "version": "1.0.0",
+ "types": "./index.d.ts"
+}
diff --git a/tests/registry/npm/@denotest/cjs-module-export-assignment/1.0.0/index.d.ts b/tests/registry/npm/@denotest/cjs-module-export-assignment/1.0.0/index.d.ts
new file mode 100644
index 000000000..a7b50005e
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-module-export-assignment/1.0.0/index.d.ts
@@ -0,0 +1,5 @@
+declare module ThisModule {
+ function func(): 5;
+}
+
+export = ThisModule;
diff --git a/tests/registry/npm/@denotest/cjs-module-export-assignment/1.0.0/index.js b/tests/registry/npm/@denotest/cjs-module-export-assignment/1.0.0/index.js
new file mode 100644
index 000000000..4c0285825
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-module-export-assignment/1.0.0/index.js
@@ -0,0 +1,5 @@
+module.exports = {
+ func() {
+ return 5;
+ },
+};
diff --git a/tests/registry/npm/@denotest/cjs-module-export-assignment/1.0.0/package.json b/tests/registry/npm/@denotest/cjs-module-export-assignment/1.0.0/package.json
new file mode 100644
index 000000000..b8d3bbd2b
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-module-export-assignment/1.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/cjs-module-export-assignment",
+ "version": "1.0.0",
+ "types": "./index.d.ts"
+}
diff --git a/tests/registry/npm/@denotest/cjs-pkg-imports/1.0.0/index.js b/tests/registry/npm/@denotest/cjs-pkg-imports/1.0.0/index.js
new file mode 100644
index 000000000..0f8665277
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-pkg-imports/1.0.0/index.js
@@ -0,0 +1,7 @@
+const crypto = require("#crypto");
+const number = require("#number");
+
+module.exports = {
+ crypto,
+ number,
+};
diff --git a/tests/registry/npm/@denotest/cjs-pkg-imports/1.0.0/number.js b/tests/registry/npm/@denotest/cjs-pkg-imports/1.0.0/number.js
new file mode 100644
index 000000000..f4e8d9d29
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-pkg-imports/1.0.0/number.js
@@ -0,0 +1 @@
+module.exports = 5;
diff --git a/tests/registry/npm/@denotest/cjs-pkg-imports/1.0.0/package.json b/tests/registry/npm/@denotest/cjs-pkg-imports/1.0.0/package.json
new file mode 100644
index 000000000..a9281c88f
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-pkg-imports/1.0.0/package.json
@@ -0,0 +1,13 @@
+{
+ "name": "@denotest/cjs-pkg-imports",
+ "version": "1.0.0",
+ "imports": {
+ "#crypto": {
+ "node": "./sub/dist/crypto.js",
+ "default": "./sub/dist/crypto.mjs"
+ },
+ "#number": {
+ "node": "./number.js"
+ }
+ }
+} \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/cjs-pkg-imports/1.0.0/sub/dist/crypto.js b/tests/registry/npm/@denotest/cjs-pkg-imports/1.0.0/sub/dist/crypto.js
new file mode 100644
index 000000000..70ffd5e5b
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-pkg-imports/1.0.0/sub/dist/crypto.js
@@ -0,0 +1 @@
+module.exports = require('node:crypto').webcrypto;
diff --git a/tests/registry/npm/@denotest/cjs-pkg-imports/1.0.0/sub/dist/crypto.mjs b/tests/registry/npm/@denotest/cjs-pkg-imports/1.0.0/sub/dist/crypto.mjs
new file mode 100644
index 000000000..fe98f1154
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-pkg-imports/1.0.0/sub/dist/crypto.mjs
@@ -0,0 +1 @@
+export default crypto;
diff --git a/tests/registry/npm/@denotest/cjs-reexport-collision/1.0.0/index.js b/tests/registry/npm/@denotest/cjs-reexport-collision/1.0.0/index.js
new file mode 100644
index 000000000..0c20973d9
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-reexport-collision/1.0.0/index.js
@@ -0,0 +1,19 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+// collision will occur with __esModule in other_file.js
+Object.defineProperty(exports, "__esModule", { value: true });
+const other_file_1 = __importDefault(require("./other_file"));
+__exportStar(require("./other_file"), exports);
+exports.default = other_file_1.default;
diff --git a/tests/registry/npm/@denotest/cjs-reexport-collision/1.0.0/other_file.js b/tests/registry/npm/@denotest/cjs-reexport-collision/1.0.0/other_file.js
new file mode 100644
index 000000000..3d8f7e812
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-reexport-collision/1.0.0/other_file.js
@@ -0,0 +1,10 @@
+"use strict";
+class Hello {
+ sayHello() {
+ console.log("Hi.");
+ }
+}
+// conflict will be with __esModule
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.hello = new Hello();
+exports.default = new Hello();
diff --git a/tests/registry/npm/@denotest/cjs-reexport-collision/1.0.0/package.json b/tests/registry/npm/@denotest/cjs-reexport-collision/1.0.0/package.json
new file mode 100644
index 000000000..7befb31aa
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-reexport-collision/1.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/cjs-reexport-collision",
+ "version": "1.0.0",
+ "main": "./index.js"
+}
diff --git a/tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/esm/my_es_module.js b/tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/esm/my_es_module.js
new file mode 100644
index 000000000..0613f1911
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/esm/my_es_module.js
@@ -0,0 +1 @@
+export class Test {}
diff --git a/tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/esm/package.json b/tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/esm/package.json
new file mode 100644
index 000000000..3dbc1ca59
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/esm/package.json
@@ -0,0 +1,3 @@
+{
+ "type": "module"
+}
diff --git a/tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/esm_mjs.mjs b/tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/esm_mjs.mjs
new file mode 100644
index 000000000..0613f1911
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/esm_mjs.mjs
@@ -0,0 +1 @@
+export class Test {}
diff --git a/tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/index.js b/tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/index.js
new file mode 100644
index 000000000..ba630f93b
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/index.js
@@ -0,0 +1 @@
+module.exports.Test = require("./esm/my_es_module.js");
diff --git a/tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/package.json b/tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/package.json
new file mode 100644
index 000000000..08cd025f1
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "@denotest/cjs-require-esm-error",
+ "version": "1.0.0"
+}
diff --git a/tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/require_mjs.js b/tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/require_mjs.js
new file mode 100644
index 000000000..ba58e1a80
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-require-esm-error/1.0.0/require_mjs.js
@@ -0,0 +1 @@
+module.exports.Test = require("./esm_mjs.mjs");
diff --git a/tests/registry/npm/@denotest/cjs-this-in-exports/1.0.0/index.js b/tests/registry/npm/@denotest/cjs-this-in-exports/1.0.0/index.js
new file mode 100644
index 000000000..21a9d7d7e
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-this-in-exports/1.0.0/index.js
@@ -0,0 +1,8 @@
+module.exports = {
+ getValue() {
+ return this.otherMethod();
+ },
+ otherMethod() {
+ return 1;
+ },
+};
diff --git a/tests/registry/npm/@denotest/cjs-this-in-exports/1.0.0/package.json b/tests/registry/npm/@denotest/cjs-this-in-exports/1.0.0/package.json
new file mode 100644
index 000000000..729b8c34e
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-this-in-exports/1.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/cjs-this-in-exports",
+ "version": "1.0.0",
+ "main": "./index.js"
+}
diff --git a/tests/registry/npm/@denotest/cjs-with-file-stem/1.0.0/index.js b/tests/registry/npm/@denotest/cjs-with-file-stem/1.0.0/index.js
new file mode 100644
index 000000000..f7164182a
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-with-file-stem/1.0.0/index.js
@@ -0,0 +1,5 @@
+"use strict";
+console.log("hello");
+Object.defineProperty(exports, "__esModule", { value: true });
+const tslib_1 = require("./tslib.js");
+tslib_1.__exportStar(require("./other.service"), exports);
diff --git a/tests/registry/npm/@denotest/cjs-with-file-stem/1.0.0/other.service.js b/tests/registry/npm/@denotest/cjs-with-file-stem/1.0.0/other.service.js
new file mode 100644
index 000000000..ba702a9af
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-with-file-stem/1.0.0/other.service.js
@@ -0,0 +1,4 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.foo = void 0;
+console.log("world"); \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/cjs-with-file-stem/1.0.0/package.json b/tests/registry/npm/@denotest/cjs-with-file-stem/1.0.0/package.json
new file mode 100644
index 000000000..c72a8ae5a
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-with-file-stem/1.0.0/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "@denotest/cjs-with-file-stem",
+ "version": "1.0.0"
+}
diff --git a/tests/registry/npm/@denotest/cjs-with-file-stem/1.0.0/tslib.js b/tests/registry/npm/@denotest/cjs-with-file-stem/1.0.0/tslib.js
new file mode 100644
index 000000000..e5c2d6bc0
--- /dev/null
+++ b/tests/registry/npm/@denotest/cjs-with-file-stem/1.0.0/tslib.js
@@ -0,0 +1,3 @@
+module.exports = {
+ __exportStar: function(mod) {}
+}; \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/cjs/index.cjs b/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/cjs/index.cjs
new file mode 100644
index 000000000..16895e48c
--- /dev/null
+++ b/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/cjs/index.cjs
@@ -0,0 +1,3 @@
+module.exports = {
+ hello: "from cjs"
+}; \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/esm/client/bar.js b/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/esm/client/bar.js
new file mode 100644
index 000000000..1474f5d29
--- /dev/null
+++ b/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/esm/client/bar.js
@@ -0,0 +1,3 @@
+export default {
+ hello: "from esm client bar",
+}
diff --git a/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/esm/client/foo.js b/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/esm/client/foo.js
new file mode 100644
index 000000000..bb5284b15
--- /dev/null
+++ b/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/esm/client/foo.js
@@ -0,0 +1,3 @@
+export default {
+ hello: "from esm client foo",
+}
diff --git a/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/esm/client/index.js b/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/esm/client/index.js
new file mode 100644
index 000000000..dc1ec197d
--- /dev/null
+++ b/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/esm/client/index.js
@@ -0,0 +1,3 @@
+export default {
+ hello: "from esm client",
+}
diff --git a/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/esm/client/m.js b/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/esm/client/m.js
new file mode 100644
index 000000000..fec6807ac
--- /dev/null
+++ b/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/esm/client/m.js
@@ -0,0 +1,3 @@
+export default {
+ hello: "from esm client m",
+}
diff --git a/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/esm/index.js b/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/esm/index.js
new file mode 100644
index 000000000..38dae7d93
--- /dev/null
+++ b/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/esm/index.js
@@ -0,0 +1,3 @@
+export default {
+ hello: "from esm",
+} \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/foo.js b/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/foo.js
new file mode 100644
index 000000000..6060c8a67
--- /dev/null
+++ b/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/foo.js
@@ -0,0 +1,3 @@
+export default {
+ hello: "from foo",
+}
diff --git a/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/package.json b/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/package.json
new file mode 100644
index 000000000..3576e48f8
--- /dev/null
+++ b/tests/registry/npm/@denotest/conditional-exports-strict/1.0.0/package.json
@@ -0,0 +1,16 @@
+{
+ "name": "@denotest/conditional-exports-strict",
+ "version": "1.0.0",
+ "type": "module",
+ "exports": {
+ ".": {
+ "types": "./types/src/index.d.ts",
+ "require": "./cjs/index.cjs",
+ "import": "./esm/index.js"
+ },
+ "./client": {
+ "types": "./types/src/client/index.d.ts",
+ "import": "./esm/client/index.js"
+ }
+ }
+}
diff --git a/tests/registry/npm/@denotest/conditional-exports/1.0.0/cjs/index.cjs b/tests/registry/npm/@denotest/conditional-exports/1.0.0/cjs/index.cjs
new file mode 100644
index 000000000..16895e48c
--- /dev/null
+++ b/tests/registry/npm/@denotest/conditional-exports/1.0.0/cjs/index.cjs
@@ -0,0 +1,3 @@
+module.exports = {
+ hello: "from cjs"
+}; \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/conditional-exports/1.0.0/esm/client/bar.js b/tests/registry/npm/@denotest/conditional-exports/1.0.0/esm/client/bar.js
new file mode 100644
index 000000000..1474f5d29
--- /dev/null
+++ b/tests/registry/npm/@denotest/conditional-exports/1.0.0/esm/client/bar.js
@@ -0,0 +1,3 @@
+export default {
+ hello: "from esm client bar",
+}
diff --git a/tests/registry/npm/@denotest/conditional-exports/1.0.0/esm/client/foo.js b/tests/registry/npm/@denotest/conditional-exports/1.0.0/esm/client/foo.js
new file mode 100644
index 000000000..bb5284b15
--- /dev/null
+++ b/tests/registry/npm/@denotest/conditional-exports/1.0.0/esm/client/foo.js
@@ -0,0 +1,3 @@
+export default {
+ hello: "from esm client foo",
+}
diff --git a/tests/registry/npm/@denotest/conditional-exports/1.0.0/esm/client/index.js b/tests/registry/npm/@denotest/conditional-exports/1.0.0/esm/client/index.js
new file mode 100644
index 000000000..dc1ec197d
--- /dev/null
+++ b/tests/registry/npm/@denotest/conditional-exports/1.0.0/esm/client/index.js
@@ -0,0 +1,3 @@
+export default {
+ hello: "from esm client",
+}
diff --git a/tests/registry/npm/@denotest/conditional-exports/1.0.0/esm/client/m.js b/tests/registry/npm/@denotest/conditional-exports/1.0.0/esm/client/m.js
new file mode 100644
index 000000000..fec6807ac
--- /dev/null
+++ b/tests/registry/npm/@denotest/conditional-exports/1.0.0/esm/client/m.js
@@ -0,0 +1,3 @@
+export default {
+ hello: "from esm client m",
+}
diff --git a/tests/registry/npm/@denotest/conditional-exports/1.0.0/esm/index.js b/tests/registry/npm/@denotest/conditional-exports/1.0.0/esm/index.js
new file mode 100644
index 000000000..38dae7d93
--- /dev/null
+++ b/tests/registry/npm/@denotest/conditional-exports/1.0.0/esm/index.js
@@ -0,0 +1,3 @@
+export default {
+ hello: "from esm",
+} \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/conditional-exports/1.0.0/foo.js b/tests/registry/npm/@denotest/conditional-exports/1.0.0/foo.js
new file mode 100644
index 000000000..6060c8a67
--- /dev/null
+++ b/tests/registry/npm/@denotest/conditional-exports/1.0.0/foo.js
@@ -0,0 +1,3 @@
+export default {
+ hello: "from foo",
+}
diff --git a/tests/registry/npm/@denotest/conditional-exports/1.0.0/package.json b/tests/registry/npm/@denotest/conditional-exports/1.0.0/package.json
new file mode 100644
index 000000000..5a2536aa0
--- /dev/null
+++ b/tests/registry/npm/@denotest/conditional-exports/1.0.0/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "@denotest/conditional-exports",
+ "version": "1.0.0",
+ "type": "module",
+ "exports": {
+ ".": {
+ "types": "./types/src/index.d.ts",
+ "require": "./cjs/index.cjs",
+ "import": "./esm/index.js"
+ },
+ "./client": {
+ "types": "./types/src/client/index.d.ts",
+ "import": "./esm/client/index.js"
+ },
+ "./client/*": {
+ "types": "./types/src/client/*.d.ts",
+ "import": "./esm/client/*.js"
+ },
+ "./*": "./*"
+ }
+}
diff --git a/tests/registry/npm/@denotest/create-require/1.0.0/index.js b/tests/registry/npm/@denotest/create-require/1.0.0/index.js
new file mode 100644
index 000000000..2ab564366
--- /dev/null
+++ b/tests/registry/npm/@denotest/create-require/1.0.0/index.js
@@ -0,0 +1,33 @@
+import { createRequire } from "module";
+
+console.log(typeof createRequire(import.meta.url));
+console.log(typeof createRequire(new URL(import.meta.url)));
+console.log(typeof createRequire("/"));
+console.log(typeof createRequire("/foo"));
+console.log(typeof createRequire("/foo/"));
+console.log(typeof createRequire("c:\\foo"));
+try {
+ createRequire("https://example.com/");
+} catch (e) {
+ console.log(e.message);
+}
+try {
+ createRequire(new URL("https://example.com/"));
+} catch (e) {
+ console.log(e.message);
+}
+try {
+ createRequire(1);
+} catch (e) {
+ console.log(e.message);
+}
+try {
+ createRequire("foo");
+} catch (e) {
+ console.log(e.message);
+}
+try {
+ createRequire("./foo");
+} catch (e) {
+ console.log(e.message);
+}
diff --git a/tests/registry/npm/@denotest/create-require/1.0.0/package.json b/tests/registry/npm/@denotest/create-require/1.0.0/package.json
new file mode 100644
index 000000000..00539643e
--- /dev/null
+++ b/tests/registry/npm/@denotest/create-require/1.0.0/package.json
@@ -0,0 +1,6 @@
+{
+ "name": "@denotest/create-require",
+ "version": "1.0.0",
+ "type": "module",
+ "main": "index.js"
+}
diff --git a/tests/registry/npm/@denotest/css-export/1.0.0/dist/index.css b/tests/registry/npm/@denotest/css-export/1.0.0/dist/index.css
new file mode 100644
index 000000000..2d91681f8
--- /dev/null
+++ b/tests/registry/npm/@denotest/css-export/1.0.0/dist/index.css
@@ -0,0 +1 @@
+body {} \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/css-export/1.0.0/package.json b/tests/registry/npm/@denotest/css-export/1.0.0/package.json
new file mode 100644
index 000000000..f7a76aec9
--- /dev/null
+++ b/tests/registry/npm/@denotest/css-export/1.0.0/package.json
@@ -0,0 +1,9 @@
+{
+ "name": "@denotest/css-export",
+ "version": "1.0.0",
+ "type": "module",
+ "exports": {
+ ".": "./index.js",
+ "./dist/*": "./dist/*"
+ }
+} \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/d-ext/1.0.0/index.d.ts b/tests/registry/npm/@denotest/d-ext/1.0.0/index.d.ts
new file mode 100644
index 000000000..47326c0f6
--- /dev/null
+++ b/tests/registry/npm/@denotest/d-ext/1.0.0/index.d.ts
@@ -0,0 +1 @@
+export const test: typeof import("./types.d").value;
diff --git a/tests/registry/npm/@denotest/d-ext/1.0.0/index.js b/tests/registry/npm/@denotest/d-ext/1.0.0/index.js
new file mode 100644
index 000000000..62b353f3d
--- /dev/null
+++ b/tests/registry/npm/@denotest/d-ext/1.0.0/index.js
@@ -0,0 +1 @@
+module.exports.test = 5;
diff --git a/tests/registry/npm/@denotest/d-ext/1.0.0/package.json b/tests/registry/npm/@denotest/d-ext/1.0.0/package.json
new file mode 100644
index 000000000..a0702a56b
--- /dev/null
+++ b/tests/registry/npm/@denotest/d-ext/1.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "d-ext",
+ "version": "1.0.0",
+ "main": "./index.js"
+} \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/d-ext/1.0.0/types.d.ts b/tests/registry/npm/@denotest/d-ext/1.0.0/types.d.ts
new file mode 100644
index 000000000..dedc54b03
--- /dev/null
+++ b/tests/registry/npm/@denotest/d-ext/1.0.0/types.d.ts
@@ -0,0 +1 @@
+export const value: 5;
diff --git a/tests/registry/npm/@denotest/different-nested-dep-child/1.0.0/index.js b/tests/registry/npm/@denotest/different-nested-dep-child/1.0.0/index.js
new file mode 100644
index 000000000..aef22247d
--- /dev/null
+++ b/tests/registry/npm/@denotest/different-nested-dep-child/1.0.0/index.js
@@ -0,0 +1 @@
+export default 1;
diff --git a/tests/registry/npm/@denotest/different-nested-dep-child/1.0.0/package.json b/tests/registry/npm/@denotest/different-nested-dep-child/1.0.0/package.json
new file mode 100644
index 000000000..ca58520a4
--- /dev/null
+++ b/tests/registry/npm/@denotest/different-nested-dep-child/1.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/different-nested-dep-child",
+ "type": "module",
+ "version": "1.0.0"
+}
diff --git a/tests/registry/npm/@denotest/different-nested-dep-child/2.0.0/index.js b/tests/registry/npm/@denotest/different-nested-dep-child/2.0.0/index.js
new file mode 100644
index 000000000..842e368a0
--- /dev/null
+++ b/tests/registry/npm/@denotest/different-nested-dep-child/2.0.0/index.js
@@ -0,0 +1 @@
+export default 2;
diff --git a/tests/registry/npm/@denotest/different-nested-dep-child/2.0.0/package.json b/tests/registry/npm/@denotest/different-nested-dep-child/2.0.0/package.json
new file mode 100644
index 000000000..9d2e56975
--- /dev/null
+++ b/tests/registry/npm/@denotest/different-nested-dep-child/2.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/different-nested-dep-child",
+ "type": "module",
+ "version": "2.0.0"
+}
diff --git a/tests/registry/npm/@denotest/different-nested-dep/1.0.0/index.js b/tests/registry/npm/@denotest/different-nested-dep/1.0.0/index.js
new file mode 100644
index 000000000..dee5330b7
--- /dev/null
+++ b/tests/registry/npm/@denotest/different-nested-dep/1.0.0/index.js
@@ -0,0 +1,2 @@
+import version from "@denotest/different-nested-dep-child";
+export default version;
diff --git a/tests/registry/npm/@denotest/different-nested-dep/1.0.0/package.json b/tests/registry/npm/@denotest/different-nested-dep/1.0.0/package.json
new file mode 100644
index 000000000..879a4e012
--- /dev/null
+++ b/tests/registry/npm/@denotest/different-nested-dep/1.0.0/package.json
@@ -0,0 +1,8 @@
+{
+ "name": "@denotest/different-nested-dep",
+ "version": "1.0.0",
+ "type": "module",
+ "dependencies": {
+ "@denotest/different-nested-dep-child": "1.0.0"
+ }
+}
diff --git a/tests/registry/npm/@denotest/dual-cjs-esm-dep-missing/1.0.0/index.cjs b/tests/registry/npm/@denotest/dual-cjs-esm-dep-missing/1.0.0/index.cjs
new file mode 100644
index 000000000..6d9b2bfc6
--- /dev/null
+++ b/tests/registry/npm/@denotest/dual-cjs-esm-dep-missing/1.0.0/index.cjs
@@ -0,0 +1,3 @@
+import { getKind } from "@denotest/dual-cjs-esm";
+
+export { getKind };
diff --git a/tests/registry/npm/@denotest/dual-cjs-esm-dep-missing/1.0.0/index.d.ts b/tests/registry/npm/@denotest/dual-cjs-esm-dep-missing/1.0.0/index.d.ts
new file mode 100644
index 000000000..4628c2774
--- /dev/null
+++ b/tests/registry/npm/@denotest/dual-cjs-esm-dep-missing/1.0.0/index.d.ts
@@ -0,0 +1 @@
+export function getKind(): "esm" | "cjs"; \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/dual-cjs-esm-dep-missing/1.0.0/index.mjs b/tests/registry/npm/@denotest/dual-cjs-esm-dep-missing/1.0.0/index.mjs
new file mode 100644
index 000000000..6d9b2bfc6
--- /dev/null
+++ b/tests/registry/npm/@denotest/dual-cjs-esm-dep-missing/1.0.0/index.mjs
@@ -0,0 +1,3 @@
+import { getKind } from "@denotest/dual-cjs-esm";
+
+export { getKind };
diff --git a/tests/registry/npm/@denotest/dual-cjs-esm-dep-missing/1.0.0/package.json b/tests/registry/npm/@denotest/dual-cjs-esm-dep-missing/1.0.0/package.json
new file mode 100644
index 000000000..d17fd887b
--- /dev/null
+++ b/tests/registry/npm/@denotest/dual-cjs-esm-dep-missing/1.0.0/package.json
@@ -0,0 +1,7 @@
+{
+ "name": "@denotest/dual-cjs-esm-dep-missing",
+ "version": "1.0.0",
+ "type": "module",
+ "main": "./index.cjs",
+ "module": "./index.mjs"
+}
diff --git a/tests/registry/npm/@denotest/dual-cjs-esm-dep/1.0.0/index.cjs b/tests/registry/npm/@denotest/dual-cjs-esm-dep/1.0.0/index.cjs
new file mode 100644
index 000000000..6d9b2bfc6
--- /dev/null
+++ b/tests/registry/npm/@denotest/dual-cjs-esm-dep/1.0.0/index.cjs
@@ -0,0 +1,3 @@
+import { getKind } from "@denotest/dual-cjs-esm";
+
+export { getKind };
diff --git a/tests/registry/npm/@denotest/dual-cjs-esm-dep/1.0.0/index.d.ts b/tests/registry/npm/@denotest/dual-cjs-esm-dep/1.0.0/index.d.ts
new file mode 100644
index 000000000..4628c2774
--- /dev/null
+++ b/tests/registry/npm/@denotest/dual-cjs-esm-dep/1.0.0/index.d.ts
@@ -0,0 +1 @@
+export function getKind(): "esm" | "cjs"; \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/dual-cjs-esm-dep/1.0.0/index.mjs b/tests/registry/npm/@denotest/dual-cjs-esm-dep/1.0.0/index.mjs
new file mode 100644
index 000000000..6d9b2bfc6
--- /dev/null
+++ b/tests/registry/npm/@denotest/dual-cjs-esm-dep/1.0.0/index.mjs
@@ -0,0 +1,3 @@
+import { getKind } from "@denotest/dual-cjs-esm";
+
+export { getKind };
diff --git a/tests/registry/npm/@denotest/dual-cjs-esm-dep/1.0.0/package.json b/tests/registry/npm/@denotest/dual-cjs-esm-dep/1.0.0/package.json
new file mode 100644
index 000000000..80c69f87a
--- /dev/null
+++ b/tests/registry/npm/@denotest/dual-cjs-esm-dep/1.0.0/package.json
@@ -0,0 +1,10 @@
+{
+ "name": "@denotest/dual-cjs-esm-dep",
+ "version": "1.0.0",
+ "type": "module",
+ "main": "./index.cjs",
+ "module": "./index.mjs",
+ "dependencies": {
+ "@denotest/dual-cjs-esm": "*"
+ }
+}
diff --git a/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/cjs/main.cjs b/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/cjs/main.cjs
new file mode 100644
index 000000000..51d32ff89
--- /dev/null
+++ b/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/cjs/main.cjs
@@ -0,0 +1,10 @@
+const root = require("../");
+const subPath = require("../subpath");
+
+module.exports.getKind = function() {
+ return root.getKind();
+};
+
+module.exports.getSubPathKind = function() {
+ return subPath.getSubPathKind();
+};
diff --git a/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/cjs/package.json b/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/cjs/package.json
new file mode 100644
index 000000000..73847e365
--- /dev/null
+++ b/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/cjs/package.json
@@ -0,0 +1,3 @@
+{
+ "main": "./main.cjs"
+} \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/main.cjs b/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/main.cjs
new file mode 100644
index 000000000..990605527
--- /dev/null
+++ b/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/main.cjs
@@ -0,0 +1,3 @@
+exports.getKind = function() {
+ return "cjs";
+};
diff --git a/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/main.d.cts b/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/main.d.cts
new file mode 100644
index 000000000..f969ba996
--- /dev/null
+++ b/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/main.d.cts
@@ -0,0 +1 @@
+export function getKind(): string;
diff --git a/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/main.d.mts b/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/main.d.mts
new file mode 100644
index 000000000..f969ba996
--- /dev/null
+++ b/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/main.d.mts
@@ -0,0 +1 @@
+export function getKind(): string;
diff --git a/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/main.mjs b/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/main.mjs
new file mode 100644
index 000000000..b48b9a3a6
--- /dev/null
+++ b/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/main.mjs
@@ -0,0 +1,3 @@
+export function getKind() {
+ return "esm";
+}
diff --git a/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/package.json b/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/package.json
new file mode 100644
index 000000000..18b72e97a
--- /dev/null
+++ b/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/package.json
@@ -0,0 +1,7 @@
+{
+ "name": "@denotest/dual-cjs-esm",
+ "version": "1.0.0",
+ "type": "module",
+ "main": "./main.cjs",
+ "module": "./main.mjs"
+}
diff --git a/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/subpath/main.cjs b/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/subpath/main.cjs
new file mode 100644
index 000000000..18a22e6f1
--- /dev/null
+++ b/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/subpath/main.cjs
@@ -0,0 +1,3 @@
+exports.getSubPathKind = function() {
+ return "cjs";
+};
diff --git a/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/subpath/main.mjs b/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/subpath/main.mjs
new file mode 100644
index 000000000..47e8cd516
--- /dev/null
+++ b/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/subpath/main.mjs
@@ -0,0 +1,3 @@
+export function getSubPathKind() {
+ return "esm";
+}
diff --git a/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/subpath/package.json b/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/subpath/package.json
new file mode 100644
index 000000000..149ce36a3
--- /dev/null
+++ b/tests/registry/npm/@denotest/dual-cjs-esm/1.0.0/subpath/package.json
@@ -0,0 +1,5 @@
+{
+ "type": "module",
+ "main": "./main.cjs",
+ "module": "./main.mjs"
+} \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/dynamic-import/1.0.0/index.js b/tests/registry/npm/@denotest/dynamic-import/1.0.0/index.js
new file mode 100644
index 000000000..4dc3831f9
--- /dev/null
+++ b/tests/registry/npm/@denotest/dynamic-import/1.0.0/index.js
@@ -0,0 +1,3 @@
+export function dynamicImport(url) {
+ return import(url);
+}
diff --git a/tests/registry/npm/@denotest/dynamic-import/1.0.0/package.json b/tests/registry/npm/@denotest/dynamic-import/1.0.0/package.json
new file mode 100644
index 000000000..fa970177c
--- /dev/null
+++ b/tests/registry/npm/@denotest/dynamic-import/1.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/dynamic-import",
+ "type": "module",
+ "version": "1.0.0"
+}
diff --git a/tests/registry/npm/@denotest/env-var-re-export/1.0.0/dev.cjs b/tests/registry/npm/@denotest/env-var-re-export/1.0.0/dev.cjs
new file mode 100644
index 000000000..cf7b90970
--- /dev/null
+++ b/tests/registry/npm/@denotest/env-var-re-export/1.0.0/dev.cjs
@@ -0,0 +1,5 @@
+module.exports = {
+ getEnv() {
+ return "dev";
+ },
+};
diff --git a/tests/registry/npm/@denotest/env-var-re-export/1.0.0/index.cjs b/tests/registry/npm/@denotest/env-var-re-export/1.0.0/index.cjs
new file mode 100644
index 000000000..6258d7c05
--- /dev/null
+++ b/tests/registry/npm/@denotest/env-var-re-export/1.0.0/index.cjs
@@ -0,0 +1,5 @@
+if (process.env.NODE_ENV === 'production') {
+ module.exports = require('./prod.cjs');
+} else {
+ module.exports = require('./dev.cjs');
+}
diff --git a/tests/registry/npm/@denotest/env-var-re-export/1.0.0/package.json b/tests/registry/npm/@denotest/env-var-re-export/1.0.0/package.json
new file mode 100644
index 000000000..84f87be0d
--- /dev/null
+++ b/tests/registry/npm/@denotest/env-var-re-export/1.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/env-var-re-export",
+ "version": "1.0.0",
+ "main": "./index.cjs"
+}
diff --git a/tests/registry/npm/@denotest/env-var-re-export/1.0.0/prod.cjs b/tests/registry/npm/@denotest/env-var-re-export/1.0.0/prod.cjs
new file mode 100644
index 000000000..a84c76543
--- /dev/null
+++ b/tests/registry/npm/@denotest/env-var-re-export/1.0.0/prod.cjs
@@ -0,0 +1,5 @@
+module.exports = {
+ getEnv() {
+ return "prod";
+ },
+};
diff --git a/tests/registry/npm/@denotest/esm-basic/1.0.0/main.d.mts b/tests/registry/npm/@denotest/esm-basic/1.0.0/main.d.mts
new file mode 100644
index 000000000..29da1e6d7
--- /dev/null
+++ b/tests/registry/npm/@denotest/esm-basic/1.0.0/main.d.mts
@@ -0,0 +1,3 @@
+export declare function setValue(val: number): void;
+export declare function getValue(): number;
+export declare const url: string;
diff --git a/tests/registry/npm/@denotest/esm-basic/1.0.0/main.mjs b/tests/registry/npm/@denotest/esm-basic/1.0.0/main.mjs
new file mode 100644
index 000000000..0a44f7585
--- /dev/null
+++ b/tests/registry/npm/@denotest/esm-basic/1.0.0/main.mjs
@@ -0,0 +1,11 @@
+let value = 0;
+
+export function setValue(newValue) {
+ value = newValue;
+}
+
+export function getValue() {
+ return value;
+}
+
+export const url = import.meta.url;
diff --git a/tests/registry/npm/@denotest/esm-basic/1.0.0/other.mjs b/tests/registry/npm/@denotest/esm-basic/1.0.0/other.mjs
new file mode 100644
index 000000000..00ed99da4
--- /dev/null
+++ b/tests/registry/npm/@denotest/esm-basic/1.0.0/other.mjs
@@ -0,0 +1,3 @@
+export function hello() {
+ return "hello, world!";
+} \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/esm-basic/1.0.0/package.json b/tests/registry/npm/@denotest/esm-basic/1.0.0/package.json
new file mode 100644
index 000000000..757ac2db9
--- /dev/null
+++ b/tests/registry/npm/@denotest/esm-basic/1.0.0/package.json
@@ -0,0 +1,7 @@
+{
+ "name": "@denotest/esm-basic",
+ "version": "1.0.0",
+ "type": "module",
+ "main": "main.mjs",
+ "types": "main.d.mts"
+}
diff --git a/tests/registry/npm/@denotest/esm-import-cjs-default/1.0.0/index.mjs b/tests/registry/npm/@denotest/esm-import-cjs-default/1.0.0/index.mjs
new file mode 100644
index 000000000..11e545ae5
--- /dev/null
+++ b/tests/registry/npm/@denotest/esm-import-cjs-default/1.0.0/index.mjs
@@ -0,0 +1,17 @@
+import defaultImport, { MyClass } from "@denotest/cjs-default-export";
+import * as namespaceImport from "@denotest/cjs-default-export";
+import localDefaultImport from "./local.cjs";
+import * as localNamespaceImport from "./local.cjs";
+
+console.log("Node esm importing node cjs");
+console.log("===========================");
+console.log(defaultImport);
+console.log(localDefaultImport);
+console.log(namespaceImport);
+console.log(localNamespaceImport);
+console.log("===========================");
+console.log(MyClass.someStaticMethod());
+
+export default function() {
+ return defaultImport.default() * 5;
+}
diff --git a/tests/registry/npm/@denotest/esm-import-cjs-default/1.0.0/local.cjs b/tests/registry/npm/@denotest/esm-import-cjs-default/1.0.0/local.cjs
new file mode 100644
index 000000000..8d2772dc6
--- /dev/null
+++ b/tests/registry/npm/@denotest/esm-import-cjs-default/1.0.0/local.cjs
@@ -0,0 +1,9 @@
+Object.defineProperty(module.exports, "__esModule", {
+ value: true
+});
+module.exports["default"] = function() {
+ return 3;
+};
+module.exports["named"] = function() {
+ return 4;
+};
diff --git a/tests/registry/npm/@denotest/esm-import-cjs-default/1.0.0/package.json b/tests/registry/npm/@denotest/esm-import-cjs-default/1.0.0/package.json
new file mode 100644
index 000000000..f757a08fb
--- /dev/null
+++ b/tests/registry/npm/@denotest/esm-import-cjs-default/1.0.0/package.json
@@ -0,0 +1,8 @@
+{
+ "name": "@denotest/esm-import-cjs-default",
+ "version": "1.0.0",
+ "main": "index.mjs",
+ "dependencies": {
+ "@denotest/cjs-default-export": "^1.0.0"
+ }
+}
diff --git a/tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.cjs b/tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.cjs
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.cjs
diff --git a/tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.d.cts b/tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.d.cts
new file mode 100644
index 000000000..43a5ebe9b
--- /dev/null
+++ b/tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.d.cts
@@ -0,0 +1 @@
+export type Value = "cts";
diff --git a/tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.d.mts b/tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.d.mts
new file mode 100644
index 000000000..b762ebd4a
--- /dev/null
+++ b/tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.d.mts
@@ -0,0 +1 @@
+export type Value = "mts";
diff --git a/tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.d.ts b/tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.d.ts
new file mode 100644
index 000000000..1d1cd270b
--- /dev/null
+++ b/tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.d.ts
@@ -0,0 +1 @@
+export type Value = "dts";
diff --git a/tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.js b/tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.js
diff --git a/tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.mjs b/tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.mjs
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/main.mjs
diff --git a/tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/package.json b/tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/package.json
new file mode 100644
index 000000000..1884b65e4
--- /dev/null
+++ b/tests/registry/npm/@denotest/file-dts-dmts-dcts/1.0.0/package.json
@@ -0,0 +1,13 @@
+{
+ "name": "@denotest/dts-and-dmts-same-file",
+ "version": "1.0.0",
+ "exports": {
+ ".": {
+ "import": "./main.mjs",
+ "require": "./main.js"
+ },
+ "./mjs": "./main.mjs",
+ "./cjs": "./main.cjs",
+ "./js": "./main.js"
+ }
+} \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/globals/1.0.0/index.d.ts b/tests/registry/npm/@denotest/globals/1.0.0/index.d.ts
new file mode 100644
index 000000000..1bbb82047
--- /dev/null
+++ b/tests/registry/npm/@denotest/globals/1.0.0/index.d.ts
@@ -0,0 +1,21 @@
+declare const tempGlobalThis: typeof globalThis;
+declare const tempGlobal: typeof global;
+declare const tempProcess: typeof process;
+export {
+ tempGlobalThis as globalThis,
+ tempGlobal as global,
+ tempProcess as process,
+};
+
+type AssertTrue<T extends true> = never;
+type _TestHasProcessGlobal = AssertTrue<
+ typeof globalThis extends { process: any } ? true : false
+>;
+
+export function deleteSetTimeout(): void;
+export function getSetTimeout(): typeof setTimeout;
+
+export function checkProcessGlobal(): void;
+export function checkWindowGlobal(): void;
+
+export function getFoo(): string; \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/globals/1.0.0/index.js b/tests/registry/npm/@denotest/globals/1.0.0/index.js
new file mode 100644
index 000000000..b946bbd2a
--- /dev/null
+++ b/tests/registry/npm/@denotest/globals/1.0.0/index.js
@@ -0,0 +1,25 @@
+exports.globalThis = globalThis;
+exports.global = global;
+exports.process = process;
+
+exports.deleteSetTimeout = function () {
+ delete globalThis.setTimeout;
+};
+
+exports.getSetTimeout = function () {
+ return globalThis.setTimeout;
+};
+
+exports.checkProcessGlobal = function () {
+ console.log("process" in globalThis);
+ console.log(Object.getOwnPropertyDescriptor(globalThis, "process") !== undefined);
+};
+
+exports.checkWindowGlobal = function () {
+ console.log("window" in globalThis);
+ console.log(Object.getOwnPropertyDescriptor(globalThis, "window") !== undefined);
+}
+
+exports.getFoo = function () {
+ return globalThis.foo;
+} \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/globals/1.0.0/package.json b/tests/registry/npm/@denotest/globals/1.0.0/package.json
new file mode 100644
index 000000000..1ce42ded4
--- /dev/null
+++ b/tests/registry/npm/@denotest/globals/1.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/globals",
+ "version": "1.0.0",
+ "types": "index.d.ts"
+}
diff --git a/tests/registry/npm/@denotest/imports-package-json/1.0.0/hi.js b/tests/registry/npm/@denotest/imports-package-json/1.0.0/hi.js
new file mode 100644
index 000000000..407090812
--- /dev/null
+++ b/tests/registry/npm/@denotest/imports-package-json/1.0.0/hi.js
@@ -0,0 +1 @@
+export default "hi";
diff --git a/tests/registry/npm/@denotest/imports-package-json/1.0.0/import_not_defined.js b/tests/registry/npm/@denotest/imports-package-json/1.0.0/import_not_defined.js
new file mode 100644
index 000000000..07864fd2c
--- /dev/null
+++ b/tests/registry/npm/@denotest/imports-package-json/1.0.0/import_not_defined.js
@@ -0,0 +1,3 @@
+import notDefined from "#not-defined";
+
+export default notDefined;
diff --git a/tests/registry/npm/@denotest/imports-package-json/1.0.0/main.js b/tests/registry/npm/@denotest/imports-package-json/1.0.0/main.js
new file mode 100644
index 000000000..9e7c247b7
--- /dev/null
+++ b/tests/registry/npm/@denotest/imports-package-json/1.0.0/main.js
@@ -0,0 +1,13 @@
+import hi from "#hi";
+import bye from "./sub_path/main.js";
+import fs from "#fs";
+import path from "#path";
+import fs2 from "#fs2";
+
+export default {
+ hi,
+ bye,
+ fs,
+ path,
+ fs2,
+};
diff --git a/tests/registry/npm/@denotest/imports-package-json/1.0.0/package.json b/tests/registry/npm/@denotest/imports-package-json/1.0.0/package.json
new file mode 100644
index 000000000..2c294e680
--- /dev/null
+++ b/tests/registry/npm/@denotest/imports-package-json/1.0.0/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "imports-package-json",
+ "type": "module",
+ "version": "1.0.0",
+ "description": "",
+ "license": "ISC",
+ "author": "",
+ "exports": {
+ ".": "./main.js",
+ "./import-not-defined": "./import_not_defined.js",
+ "./sub-path-import-not-defined": "./sub_path/import_not_defined.js"
+ },
+ "imports": {
+ "#hi": "./hi.js",
+ "#fs": "fs",
+ "#path": "node:path",
+ "#fs2": {
+ "node": "fs"
+ }
+ }
+}
diff --git a/tests/registry/npm/@denotest/imports-package-json/1.0.0/sub_path/bye.js b/tests/registry/npm/@denotest/imports-package-json/1.0.0/sub_path/bye.js
new file mode 100644
index 000000000..6fc719e48
--- /dev/null
+++ b/tests/registry/npm/@denotest/imports-package-json/1.0.0/sub_path/bye.js
@@ -0,0 +1 @@
+export default "bye";
diff --git a/tests/registry/npm/@denotest/imports-package-json/1.0.0/sub_path/import_not_defined.js b/tests/registry/npm/@denotest/imports-package-json/1.0.0/sub_path/import_not_defined.js
new file mode 100644
index 000000000..ffaa2b1ad
--- /dev/null
+++ b/tests/registry/npm/@denotest/imports-package-json/1.0.0/sub_path/import_not_defined.js
@@ -0,0 +1,4 @@
+// this won't be defined in the closest package.json and will fail
+import hi from "#hi";
+
+export default hi;
diff --git a/tests/registry/npm/@denotest/imports-package-json/1.0.0/sub_path/main.js b/tests/registry/npm/@denotest/imports-package-json/1.0.0/sub_path/main.js
new file mode 100644
index 000000000..260ca79ae
--- /dev/null
+++ b/tests/registry/npm/@denotest/imports-package-json/1.0.0/sub_path/main.js
@@ -0,0 +1,3 @@
+import bye from "#bye";
+
+export default bye;
diff --git a/tests/registry/npm/@denotest/imports-package-json/1.0.0/sub_path/package.json b/tests/registry/npm/@denotest/imports-package-json/1.0.0/sub_path/package.json
new file mode 100644
index 000000000..3f2c2bbd8
--- /dev/null
+++ b/tests/registry/npm/@denotest/imports-package-json/1.0.0/sub_path/package.json
@@ -0,0 +1,6 @@
+{
+ "type": "module",
+ "imports": {
+ "#bye": "./bye.js"
+ }
+}
diff --git a/tests/registry/npm/@denotest/monaco-editor/1.0.0/main.js b/tests/registry/npm/@denotest/monaco-editor/1.0.0/main.js
new file mode 100644
index 000000000..403806c6b
--- /dev/null
+++ b/tests/registry/npm/@denotest/monaco-editor/1.0.0/main.js
@@ -0,0 +1,4 @@
+// The monaco-editor package uses an entry in the package.json
+// where it has no "type": "module" and then only specifies a
+// "module": "./main.js"-like entry that points at an ESM file.
+export class Editor {} \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/monaco-editor/1.0.0/main.types.d.ts b/tests/registry/npm/@denotest/monaco-editor/1.0.0/main.types.d.ts
new file mode 100644
index 000000000..d978fa159
--- /dev/null
+++ b/tests/registry/npm/@denotest/monaco-editor/1.0.0/main.types.d.ts
@@ -0,0 +1 @@
+export class Editor {}
diff --git a/tests/registry/npm/@denotest/monaco-editor/1.0.0/package.json b/tests/registry/npm/@denotest/monaco-editor/1.0.0/package.json
new file mode 100644
index 000000000..eb0428b49
--- /dev/null
+++ b/tests/registry/npm/@denotest/monaco-editor/1.0.0/package.json
@@ -0,0 +1,6 @@
+{
+ "name": "@denotest/monaco-editor",
+ "version": "1.0.0",
+ "module": "./main.js",
+ "types": "./main.types.d.ts"
+}
diff --git a/tests/registry/npm/@denotest/no-types-cjs/1.0.0/main.js b/tests/registry/npm/@denotest/no-types-cjs/1.0.0/main.js
new file mode 100644
index 000000000..bb6cbdb02
--- /dev/null
+++ b/tests/registry/npm/@denotest/no-types-cjs/1.0.0/main.js
@@ -0,0 +1,6 @@
+/**
+ * @return {number}
+ */
+ module.exports = function () {
+ return 5;
+};
diff --git a/tests/registry/npm/@denotest/no-types-cjs/1.0.0/package.json b/tests/registry/npm/@denotest/no-types-cjs/1.0.0/package.json
new file mode 100644
index 000000000..60b8a0285
--- /dev/null
+++ b/tests/registry/npm/@denotest/no-types-cjs/1.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/no-types-cjs",
+ "version": "1.0.0",
+ "main": "./main.js"
+}
diff --git a/tests/registry/npm/@denotest/no-types-in-conditional-exports/1.0.0/lib/foo-esm.js b/tests/registry/npm/@denotest/no-types-in-conditional-exports/1.0.0/lib/foo-esm.js
new file mode 100644
index 000000000..0ead93520
--- /dev/null
+++ b/tests/registry/npm/@denotest/no-types-in-conditional-exports/1.0.0/lib/foo-esm.js
@@ -0,0 +1,3 @@
+export default {
+ "foo": "bar"
+}; \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/no-types-in-conditional-exports/1.0.0/lib/foo.js b/tests/registry/npm/@denotest/no-types-in-conditional-exports/1.0.0/lib/foo.js
new file mode 100644
index 000000000..dca03a472
--- /dev/null
+++ b/tests/registry/npm/@denotest/no-types-in-conditional-exports/1.0.0/lib/foo.js
@@ -0,0 +1,3 @@
+module.exports = {
+ "foo": "bar"
+}; \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/no-types-in-conditional-exports/1.0.0/package.json b/tests/registry/npm/@denotest/no-types-in-conditional-exports/1.0.0/package.json
new file mode 100644
index 000000000..524394480
--- /dev/null
+++ b/tests/registry/npm/@denotest/no-types-in-conditional-exports/1.0.0/package.json
@@ -0,0 +1,14 @@
+{
+ "name": "@denotest/no-types-in-conditional-exports",
+ "version": "1.0.0",
+ "main": "./lib/foo.js",
+ "module": "./lib/foo-esm.js",
+ "exports": {
+ ".": {
+ "require": "./lib/foo.js",
+ "import": "./lib/foo-esm.js"
+ },
+ "./*": "./*"
+ },
+ "type": "module"
+}
diff --git a/tests/registry/npm/@denotest/non-existent-dep-version/1.0.0/index.js b/tests/registry/npm/@denotest/non-existent-dep-version/1.0.0/index.js
new file mode 100644
index 000000000..f4e8d9d29
--- /dev/null
+++ b/tests/registry/npm/@denotest/non-existent-dep-version/1.0.0/index.js
@@ -0,0 +1 @@
+module.exports = 5;
diff --git a/tests/registry/npm/@denotest/non-existent-dep-version/1.0.0/package.json b/tests/registry/npm/@denotest/non-existent-dep-version/1.0.0/package.json
new file mode 100644
index 000000000..0533da432
--- /dev/null
+++ b/tests/registry/npm/@denotest/non-existent-dep-version/1.0.0/package.json
@@ -0,0 +1,7 @@
+{
+ "name": "@denotest/non-existent-dep-version",
+ "version": "1.0.0",
+ "dependencies": {
+ "@denotest/esm-basic": "=99.99.99"
+ }
+}
diff --git a/tests/registry/npm/@denotest/non-existent-dep/1.0.0/index.js b/tests/registry/npm/@denotest/non-existent-dep/1.0.0/index.js
new file mode 100644
index 000000000..f4e8d9d29
--- /dev/null
+++ b/tests/registry/npm/@denotest/non-existent-dep/1.0.0/index.js
@@ -0,0 +1 @@
+module.exports = 5;
diff --git a/tests/registry/npm/@denotest/non-existent-dep/1.0.0/package.json b/tests/registry/npm/@denotest/non-existent-dep/1.0.0/package.json
new file mode 100644
index 000000000..4d5f8c5a2
--- /dev/null
+++ b/tests/registry/npm/@denotest/non-existent-dep/1.0.0/package.json
@@ -0,0 +1,7 @@
+{
+ "name": "@denotest/non-existent-dep",
+ "version": "1.0.0",
+ "dependencies": {
+ "@denotest/non-existent": "1.0"
+ }
+}
diff --git a/tests/registry/npm/@denotest/peer-dep-test-child/1.0.0/index.js b/tests/registry/npm/@denotest/peer-dep-test-child/1.0.0/index.js
new file mode 100644
index 000000000..636ec3c35
--- /dev/null
+++ b/tests/registry/npm/@denotest/peer-dep-test-child/1.0.0/index.js
@@ -0,0 +1 @@
+module.exports = require("@denotest/peer-dep-test-grandchild");
diff --git a/tests/registry/npm/@denotest/peer-dep-test-child/1.0.0/package.json b/tests/registry/npm/@denotest/peer-dep-test-child/1.0.0/package.json
new file mode 100644
index 000000000..32eb49851
--- /dev/null
+++ b/tests/registry/npm/@denotest/peer-dep-test-child/1.0.0/package.json
@@ -0,0 +1,8 @@
+{
+ "name": "@denotest/peer-dep-test-child",
+ "version": "1.0.0",
+ "dependencies": {
+ "@denotest/peer-dep-test-grandchild": "*",
+ "@denotest/peer-dep-test-peer": "^1"
+ }
+}
diff --git a/tests/registry/npm/@denotest/peer-dep-test-child/2.0.0/index.js b/tests/registry/npm/@denotest/peer-dep-test-child/2.0.0/index.js
new file mode 100644
index 000000000..636ec3c35
--- /dev/null
+++ b/tests/registry/npm/@denotest/peer-dep-test-child/2.0.0/index.js
@@ -0,0 +1 @@
+module.exports = require("@denotest/peer-dep-test-grandchild");
diff --git a/tests/registry/npm/@denotest/peer-dep-test-child/2.0.0/package.json b/tests/registry/npm/@denotest/peer-dep-test-child/2.0.0/package.json
new file mode 100644
index 000000000..3c82c01f9
--- /dev/null
+++ b/tests/registry/npm/@denotest/peer-dep-test-child/2.0.0/package.json
@@ -0,0 +1,8 @@
+{
+ "name": "@denotest/peer-dep-test-child",
+ "version": "2.0.0",
+ "dependencies": {
+ "@denotest/peer-dep-test-grandchild": "*",
+ "@denotest/peer-dep-test-peer": "^2"
+ }
+}
diff --git a/tests/registry/npm/@denotest/peer-dep-test-grandchild/1.0.0/dist/index.js b/tests/registry/npm/@denotest/peer-dep-test-grandchild/1.0.0/dist/index.js
new file mode 100644
index 000000000..9a0d9730b
--- /dev/null
+++ b/tests/registry/npm/@denotest/peer-dep-test-grandchild/1.0.0/dist/index.js
@@ -0,0 +1 @@
+module.exports = require("@denotest/peer-dep-test-peer");
diff --git a/tests/registry/npm/@denotest/peer-dep-test-grandchild/1.0.0/index.js b/tests/registry/npm/@denotest/peer-dep-test-grandchild/1.0.0/index.js
new file mode 100644
index 000000000..7d44863df
--- /dev/null
+++ b/tests/registry/npm/@denotest/peer-dep-test-grandchild/1.0.0/index.js
@@ -0,0 +1 @@
+module.exports = require("./dist/index");
diff --git a/tests/registry/npm/@denotest/peer-dep-test-grandchild/1.0.0/package.json b/tests/registry/npm/@denotest/peer-dep-test-grandchild/1.0.0/package.json
new file mode 100644
index 000000000..845ef414d
--- /dev/null
+++ b/tests/registry/npm/@denotest/peer-dep-test-grandchild/1.0.0/package.json
@@ -0,0 +1,7 @@
+{
+ "name": "@denotest/peer-dep-test-child-2",
+ "version": "1.0.0",
+ "peerDependencies": {
+ "@denotest/peer-dep-test-peer": "*"
+ }
+}
diff --git a/tests/registry/npm/@denotest/peer-dep-test-peer/1.0.0/index.js b/tests/registry/npm/@denotest/peer-dep-test-peer/1.0.0/index.js
new file mode 100644
index 000000000..bd816eaba
--- /dev/null
+++ b/tests/registry/npm/@denotest/peer-dep-test-peer/1.0.0/index.js
@@ -0,0 +1 @@
+module.exports = 1;
diff --git a/tests/registry/npm/@denotest/peer-dep-test-peer/1.0.0/package.json b/tests/registry/npm/@denotest/peer-dep-test-peer/1.0.0/package.json
new file mode 100644
index 000000000..cedb3609e
--- /dev/null
+++ b/tests/registry/npm/@denotest/peer-dep-test-peer/1.0.0/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "@denotest/peer-dep-test-peer",
+ "version": "1.0.0"
+}
diff --git a/tests/registry/npm/@denotest/peer-dep-test-peer/2.0.0/index.js b/tests/registry/npm/@denotest/peer-dep-test-peer/2.0.0/index.js
new file mode 100644
index 000000000..4bbffde10
--- /dev/null
+++ b/tests/registry/npm/@denotest/peer-dep-test-peer/2.0.0/index.js
@@ -0,0 +1 @@
+module.exports = 2;
diff --git a/tests/registry/npm/@denotest/peer-dep-test-peer/2.0.0/package.json b/tests/registry/npm/@denotest/peer-dep-test-peer/2.0.0/package.json
new file mode 100644
index 000000000..90c24f875
--- /dev/null
+++ b/tests/registry/npm/@denotest/peer-dep-test-peer/2.0.0/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "@denotest/peer-dep-test-peer",
+ "version": "2.0.0"
+}
diff --git a/tests/registry/npm/@denotest/permissions-outside-package/1.0.0/index.js b/tests/registry/npm/@denotest/permissions-outside-package/1.0.0/index.js
new file mode 100644
index 000000000..ec854713f
--- /dev/null
+++ b/tests/registry/npm/@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/tests/registry/npm/@denotest/permissions-outside-package/1.0.0/package.json b/tests/registry/npm/@denotest/permissions-outside-package/1.0.0/package.json
new file mode 100644
index 000000000..447a119e4
--- /dev/null
+++ b/tests/registry/npm/@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"
+}
diff --git a/tests/registry/npm/@denotest/require-added-nm-folder/1.0.0/index.js b/tests/registry/npm/@denotest/require-added-nm-folder/1.0.0/index.js
new file mode 100644
index 000000000..8c8c4a0fa
--- /dev/null
+++ b/tests/registry/npm/@denotest/require-added-nm-folder/1.0.0/index.js
@@ -0,0 +1,3 @@
+exports.getValue = () => {
+ return require(".other-package").get();
+};
diff --git a/tests/registry/npm/@denotest/require-added-nm-folder/1.0.0/package.json b/tests/registry/npm/@denotest/require-added-nm-folder/1.0.0/package.json
new file mode 100644
index 000000000..718f1eb8c
--- /dev/null
+++ b/tests/registry/npm/@denotest/require-added-nm-folder/1.0.0/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "@denotest/require-added-nm-folder",
+ "version": "1.0.0"
+}
diff --git a/tests/registry/npm/@denotest/require-resolve/1.0.0/index.cjs b/tests/registry/npm/@denotest/require-resolve/1.0.0/index.cjs
new file mode 100644
index 000000000..b76925077
--- /dev/null
+++ b/tests/registry/npm/@denotest/require-resolve/1.0.0/index.cjs
@@ -0,0 +1,3 @@
+exports.resolve = (...args) => {
+ return require.resolve(...args);
+};
diff --git a/tests/registry/npm/@denotest/require-resolve/1.0.0/package.json b/tests/registry/npm/@denotest/require-resolve/1.0.0/package.json
new file mode 100644
index 000000000..03631e993
--- /dev/null
+++ b/tests/registry/npm/@denotest/require-resolve/1.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/require-resolve",
+ "version": "1.0.0",
+ "main": "index.cjs"
+ }
diff --git a/tests/registry/npm/@denotest/reserved-word-exports/1.0.0/index.cjs b/tests/registry/npm/@denotest/reserved-word-exports/1.0.0/index.cjs
new file mode 100644
index 000000000..73f00fad4
--- /dev/null
+++ b/tests/registry/npm/@denotest/reserved-word-exports/1.0.0/index.cjs
@@ -0,0 +1,68 @@
+exports["abstract"] = "abstract";
+exports["arguments"] = "arguments";
+exports["async"] = "async";
+exports["await"] = "await";
+exports["boolean"] = "boolean";
+exports["break"] = "break";
+exports["byte"] = "byte";
+exports["case"] = "case";
+exports["catch"] = "catch";
+exports["char"] = "char";
+exports["class"] = "class";
+exports["const"] = "const";
+exports["continue"] = "continue";
+exports["debugger"] = "debugger";
+exports["default"] = "default";
+exports["delete"] = "delete";
+exports["do"] = "do";
+exports["double"] = "double";
+exports["else"] = "else";
+exports["enum"] = "enum";
+exports["eval"] = "eval";
+exports["export"] = "export";
+exports["extends"] = "extends";
+exports["false"] = "false";
+exports["final"] = "final";
+exports["finally"] = "finally";
+exports["float"] = "float";
+exports["for"] = "for";
+exports["function"] = "function";
+exports["get"] = "get";
+exports["goto"] = "goto";
+exports["if"] = "if";
+exports["implements"] = "implements";
+exports["import"] = "import";
+exports["in"] = "in";
+exports["instanceof"] = "instanceof";
+exports["int"] = "int";
+exports["interface"] = "interface";
+exports["let"] = "let";
+exports["long"] = "long";
+exports["mod"] = "mod";
+exports["native"] = "native";
+exports["new"] = "new";
+exports["null"] = "null";
+exports["package"] = "package";
+exports["private"] = "private";
+exports["protected"] = "protected";
+exports["public"] = "public";
+exports["return"] = "return";
+exports["set"] = "set";
+exports["short"] = "short";
+exports["static"] = "static";
+exports["super"] = "super";
+exports["switch"] = "switch";
+exports["synchronized"] = "synchronized";
+exports["this"] = "this";
+exports["throw"] = "throw";
+exports["throws"] = "throws";
+exports["transient"] = "transient";
+exports["true"] = "true";
+exports["try"] = "try";
+exports["typeof"] = "typeof";
+exports["var"] = "var";
+exports["void"] = "void";
+exports["volatile"] = "volatile";
+exports["while"] = "while";
+exports["with"] = "with";
+exports["yield"] = "yield";
diff --git a/tests/registry/npm/@denotest/reserved-word-exports/1.0.0/package.json b/tests/registry/npm/@denotest/reserved-word-exports/1.0.0/package.json
new file mode 100644
index 000000000..215b561d3
--- /dev/null
+++ b/tests/registry/npm/@denotest/reserved-word-exports/1.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/reserved-word-exports",
+ "version": "1.0.0",
+ "main": "index.cjs"
+ }
diff --git a/tests/registry/npm/@denotest/special-chars-in-bin-name/1.0.0/main.mjs b/tests/registry/npm/@denotest/special-chars-in-bin-name/1.0.0/main.mjs
new file mode 100644
index 000000000..0ae8e9190
--- /dev/null
+++ b/tests/registry/npm/@denotest/special-chars-in-bin-name/1.0.0/main.mjs
@@ -0,0 +1,5 @@
+import process from "node:process";
+
+for (const arg of process.argv.slice(2)) {
+ console.log(arg);
+}
diff --git a/tests/registry/npm/@denotest/special-chars-in-bin-name/1.0.0/package.json b/tests/registry/npm/@denotest/special-chars-in-bin-name/1.0.0/package.json
new file mode 100644
index 000000000..2dce473b5
--- /dev/null
+++ b/tests/registry/npm/@denotest/special-chars-in-bin-name/1.0.0/package.json
@@ -0,0 +1,10 @@
+{
+ "name": "@denotest/special-chars-in-bin-name",
+ "version": "1.0.0",
+ "type": "module",
+ "main": "main.mjs",
+ "bin": {
+ "\\foo\"": "main.mjs"
+ }
+ }
+ \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/sub-folders/1.0.0/folder_index_js/index.d.ts b/tests/registry/npm/@denotest/sub-folders/1.0.0/folder_index_js/index.d.ts
new file mode 100644
index 000000000..c3ec6ac2e
--- /dev/null
+++ b/tests/registry/npm/@denotest/sub-folders/1.0.0/folder_index_js/index.d.ts
@@ -0,0 +1 @@
+export function add(a, b): number;
diff --git a/tests/registry/npm/@denotest/sub-folders/1.0.0/folder_index_js/index.js b/tests/registry/npm/@denotest/sub-folders/1.0.0/folder_index_js/index.js
new file mode 100644
index 000000000..71a2da49a
--- /dev/null
+++ b/tests/registry/npm/@denotest/sub-folders/1.0.0/folder_index_js/index.js
@@ -0,0 +1,3 @@
+export function add(a, b) {
+ return a + b;
+}
diff --git a/tests/registry/npm/@denotest/sub-folders/1.0.0/folder_no_index/random_name.js b/tests/registry/npm/@denotest/sub-folders/1.0.0/folder_no_index/random_name.js
new file mode 100644
index 000000000..f4e8d9d29
--- /dev/null
+++ b/tests/registry/npm/@denotest/sub-folders/1.0.0/folder_no_index/random_name.js
@@ -0,0 +1 @@
+module.exports = 5;
diff --git a/tests/registry/npm/@denotest/sub-folders/1.0.0/main.mjs b/tests/registry/npm/@denotest/sub-folders/1.0.0/main.mjs
new file mode 100644
index 000000000..358b4b09e
--- /dev/null
+++ b/tests/registry/npm/@denotest/sub-folders/1.0.0/main.mjs
@@ -0,0 +1,3 @@
+export function getValue() {
+ return 5;
+}
diff --git a/tests/registry/npm/@denotest/sub-folders/1.0.0/package.json b/tests/registry/npm/@denotest/sub-folders/1.0.0/package.json
new file mode 100644
index 000000000..1402e346c
--- /dev/null
+++ b/tests/registry/npm/@denotest/sub-folders/1.0.0/package.json
@@ -0,0 +1,6 @@
+{
+ "name": "@denotest/sub-folders",
+ "version": "1.0.0",
+ "type": "module",
+ "main": "main.mjs"
+}
diff --git a/tests/registry/npm/@denotest/types-ambient/1.0.0/index.d.ts b/tests/registry/npm/@denotest/types-ambient/1.0.0/index.d.ts
new file mode 100644
index 000000000..fc2199884
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-ambient/1.0.0/index.d.ts
@@ -0,0 +1,10 @@
+// Some packages do this. It's really not ideal because instead of allowing
+// the package to be resolved at any specifier, it instead expects the package
+// to be resolved via a "@denotest/types-ambient" specifier. To make this work,
+// we've currently modified the typescript compiler to check for any "<package-name>"
+// ambient modules when resolving an npm specifier at "npm:<package-name>"
+declare module "@denotest/types-ambient" {
+ class Test {
+ prop: number;
+ }
+}
diff --git a/tests/registry/npm/@denotest/types-ambient/1.0.0/index.js b/tests/registry/npm/@denotest/types-ambient/1.0.0/index.js
new file mode 100644
index 000000000..47ff7adb2
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-ambient/1.0.0/index.js
@@ -0,0 +1,3 @@
+export class Test {
+ prop = 5;
+}
diff --git a/tests/registry/npm/@denotest/types-ambient/1.0.0/package.json b/tests/registry/npm/@denotest/types-ambient/1.0.0/package.json
new file mode 100644
index 000000000..ef927cbe3
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-ambient/1.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/types-ambient",
+ "version": "1.0.0",
+ "types": "./index.d.ts"
+}
diff --git a/tests/registry/npm/@denotest/types-entry-value-not-exists/1.0.0/dist/main.d.ts b/tests/registry/npm/@denotest/types-entry-value-not-exists/1.0.0/dist/main.d.ts
new file mode 100644
index 000000000..2341a14f0
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-entry-value-not-exists/1.0.0/dist/main.d.ts
@@ -0,0 +1 @@
+export function getValue(): 5;
diff --git a/tests/registry/npm/@denotest/types-entry-value-not-exists/1.0.0/dist/main.js b/tests/registry/npm/@denotest/types-entry-value-not-exists/1.0.0/dist/main.js
new file mode 100644
index 000000000..d0c5dbc70
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-entry-value-not-exists/1.0.0/dist/main.js
@@ -0,0 +1 @@
+module.exports.getValue = () => 5;
diff --git a/tests/registry/npm/@denotest/types-entry-value-not-exists/1.0.0/package.json b/tests/registry/npm/@denotest/types-entry-value-not-exists/1.0.0/package.json
new file mode 100644
index 000000000..5eb859c4e
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-entry-value-not-exists/1.0.0/package.json
@@ -0,0 +1,13 @@
+{
+ "name": "@denotest/types-entry-value-not-exists",
+ "version": "1.0.0",
+ "main": "./dist/main.js",
+ "types": "./index.d.ts",
+ "exports": {
+ ".": {
+ "types": "./dist/main.d.ts",
+ "node": "./dist/main.js",
+ "require": "./dist/main.js"
+ }
+ }
+}
diff --git a/tests/registry/npm/@denotest/types-exports-import-types/1.0.0/dist/main.d.ts b/tests/registry/npm/@denotest/types-exports-import-types/1.0.0/dist/main.d.ts
new file mode 100644
index 000000000..2341a14f0
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-exports-import-types/1.0.0/dist/main.d.ts
@@ -0,0 +1 @@
+export function getValue(): 5;
diff --git a/tests/registry/npm/@denotest/types-exports-import-types/1.0.0/dist/main.mjs b/tests/registry/npm/@denotest/types-exports-import-types/1.0.0/dist/main.mjs
new file mode 100644
index 000000000..358b4b09e
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-exports-import-types/1.0.0/dist/main.mjs
@@ -0,0 +1,3 @@
+export function getValue() {
+ return 5;
+}
diff --git a/tests/registry/npm/@denotest/types-exports-import-types/1.0.0/package.json b/tests/registry/npm/@denotest/types-exports-import-types/1.0.0/package.json
new file mode 100644
index 000000000..202a2c784
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-exports-import-types/1.0.0/package.json
@@ -0,0 +1,10 @@
+{
+ "name": "@denotest/types-exports-import-types",
+ "version": "1.0.0",
+ "exports": {
+ "node": {
+ "types": "./dist/main.d.ts",
+ "import": "./dist/main.mjs"
+ }
+ }
+}
diff --git a/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/client.d.ts b/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/client.d.ts
new file mode 100644
index 000000000..2d156f5bb
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/client.d.ts
@@ -0,0 +1 @@
+export function getClient(): 5;
diff --git a/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/dist/client.mjs b/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/dist/client.mjs
new file mode 100644
index 000000000..938238d95
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/dist/client.mjs
@@ -0,0 +1,3 @@
+export function getClient() {
+ return 5;
+}
diff --git a/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/dist/entry-a.d.ts b/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/dist/entry-a.d.ts
new file mode 100644
index 000000000..f49faf22f
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/dist/entry-a.d.ts
@@ -0,0 +1 @@
+export function entryA(): 12;
diff --git a/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/dist/entry-a.js b/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/dist/entry-a.js
new file mode 100644
index 000000000..84f1f2c94
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/dist/entry-a.js
@@ -0,0 +1,3 @@
+export function entryA() {
+ return 12;
+}
diff --git a/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/dist/entry-b.d.ts b/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/dist/entry-b.d.ts
new file mode 100644
index 000000000..382d1995e
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/dist/entry-b.d.ts
@@ -0,0 +1 @@
+export function entryB(): "b";
diff --git a/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/dist/entry-b.js b/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/dist/entry-b.js
new file mode 100644
index 000000000..162d4f190
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/dist/entry-b.js
@@ -0,0 +1,3 @@
+export function entryB() {
+ return "b";
+}
diff --git a/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/entry-import.d.ts b/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/entry-import.d.ts
new file mode 100644
index 000000000..253279e6c
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/entry-import.d.ts
@@ -0,0 +1 @@
+export function entryImport(): "import";
diff --git a/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/entry-import.js b/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/entry-import.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/entry-import.js
diff --git a/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/entry-js-only.js b/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/entry-js-only.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/entry-js-only.js
diff --git a/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/entry-types.d.ts b/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/entry-types.d.ts
new file mode 100644
index 000000000..bd1ff702f
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/entry-types.d.ts
@@ -0,0 +1 @@
+export function entryTypes(): "types";
diff --git a/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/package.json b/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/package.json
new file mode 100644
index 000000000..cc43cf2ed
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-exports-subpaths/1.0.0/package.json
@@ -0,0 +1,26 @@
+{
+ "name": "@denotest/types-exports-subpaths",
+ "version": "1.0.0",
+ "exports": {
+ "./client": {
+ "types": {
+ "default": "./client.d.ts"
+ },
+ "import": "./dist/client.mjs"
+ },
+ "./entry-import": {
+ "import": "./entry-import.d.ts",
+ "types": "./entry-types.d.ts"
+ },
+ "./entry-types-last-no-declaration-before": {
+ "import": "./entry-js-only.js",
+ "types": "./entry-types.d.ts"
+ },
+ "./entry-a": {
+ "import": "./dist/entry-a.js"
+ },
+ "./nested/entry-b": {
+ "import": "./dist/entry-b.js"
+ }
+ }
+}
diff --git a/tests/registry/npm/@denotest/types-no-types-entry/1.0.0/dist/main.d.ts b/tests/registry/npm/@denotest/types-no-types-entry/1.0.0/dist/main.d.ts
new file mode 100644
index 000000000..8942f08dd
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-no-types-entry/1.0.0/dist/main.d.ts
@@ -0,0 +1 @@
+export { getValue } from "@denotest/types-entry-value-not-exists";
diff --git a/tests/registry/npm/@denotest/types-no-types-entry/1.0.0/dist/main.js b/tests/registry/npm/@denotest/types-no-types-entry/1.0.0/dist/main.js
new file mode 100644
index 000000000..63c7ef0ce
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-no-types-entry/1.0.0/dist/main.js
@@ -0,0 +1 @@
+module.exports.getValue = require("@denotest/types-entry-value-not-exists").getValue;
diff --git a/tests/registry/npm/@denotest/types-no-types-entry/1.0.0/package.json b/tests/registry/npm/@denotest/types-no-types-entry/1.0.0/package.json
new file mode 100644
index 000000000..6abccec98
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-no-types-entry/1.0.0/package.json
@@ -0,0 +1,8 @@
+{
+ "name": "@denotest/types-no-types-entry",
+ "version": "1.0.0",
+ "main": "./dist/main.js",
+ "dependencies": {
+ "@denotest/types-entry-value-not-exists": "^1.0"
+ }
+}
diff --git a/tests/registry/npm/@denotest/types-pkg-json-import/1.0.0/hooks/src/index.d.ts b/tests/registry/npm/@denotest/types-pkg-json-import/1.0.0/hooks/src/index.d.ts
new file mode 100644
index 000000000..a0fe33a3d
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-pkg-json-import/1.0.0/hooks/src/index.d.ts
@@ -0,0 +1,4 @@
+// this directory import was not working (it should resolve via the package.json)
+import { PreactContext } from '../..';
+
+export declare function useContext<T>(context: PreactContext<T>): T;
diff --git a/tests/registry/npm/@denotest/types-pkg-json-import/1.0.0/package.json b/tests/registry/npm/@denotest/types-pkg-json-import/1.0.0/package.json
new file mode 100644
index 000000000..3f9792f22
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-pkg-json-import/1.0.0/package.json
@@ -0,0 +1,14 @@
+{
+ "name": "@denotest/types-directory-import",
+ "version": "1.0.0",
+ "exports": {
+ ".": {
+ "types": "./src/index.d.ts",
+ "import": "./dist/preact.mjs"
+ },
+ "./hooks": {
+ "types": "./hooks/src/index.d.ts",
+ "import": "./hooks/dist/hooks.mjs"
+ }
+ }
+} \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/types-pkg-json-import/1.0.0/src/index.d.ts b/tests/registry/npm/@denotest/types-pkg-json-import/1.0.0/src/index.d.ts
new file mode 100644
index 000000000..94e6b2572
--- /dev/null
+++ b/tests/registry/npm/@denotest/types-pkg-json-import/1.0.0/src/index.d.ts
@@ -0,0 +1,76 @@
+export as namespace preact;
+
+export interface VNode<P = {}> {
+ type: any | string;
+ props: P & { children: ComponentChildren };
+ key: Key;
+ /**
+ * ref is not guaranteed by React.ReactElement, for compatibility reasons
+ * with popular react libs we define it as optional too
+ */
+ ref?: Ref<any> | null;
+ /**
+ * The time this `vnode` started rendering. Will only be set when
+ * the devtools are attached.
+ * Default value: `0`
+ */
+ startTime?: number;
+ /**
+ * The time that the rendering of this `vnode` was completed. Will only be
+ * set when the devtools are attached.
+ * Default value: `-1`
+ */
+ endTime?: number;
+}
+
+export type Key = string | number | any;
+
+export type RefObject<T> = { current: T | null };
+export type RefCallback<T> = (instance: T | null) => void;
+export type Ref<T> = RefObject<T> | RefCallback<T> | null;
+
+export type ComponentChild =
+ | VNode<any>
+ | object
+ | string
+ | number
+ | bigint
+ | boolean
+ | null
+ | undefined;
+export type ComponentChildren = ComponentChild[] | ComponentChild;
+
+export interface FunctionComponent<P = {}> {
+ (props: any, context?: any): VNode<any> | null;
+ displayName?: string;
+ defaultProps?: Partial<P> | undefined;
+}
+export interface FunctionalComponent<P = {}> extends FunctionComponent<P> {}
+
+//
+// Context
+// -----------------------------------
+export interface Consumer<T>
+ extends FunctionComponent<{
+ children: (value: T) => ComponentChildren;
+ }> {}
+export interface PreactConsumer<T> extends Consumer<T> {}
+
+export interface Provider<T>
+ extends FunctionComponent<{
+ value: T;
+ children?: ComponentChildren;
+ }> {}
+export interface PreactProvider<T> extends Provider<T> {}
+export type ContextType<C extends Context<any>> = C extends Context<infer T>
+ ? T
+ : never;
+
+export interface Context<T> {
+ Consumer: Consumer<T>;
+ Provider: Provider<T>;
+ displayName?: string;
+}
+export interface PreactContext<T> extends Context<T> {}
+
+export function createContext<T>(defaultValue: T): Context<T>;
diff --git a/tests/registry/npm/@denotest/types/1.0.0/index.d.ts b/tests/registry/npm/@denotest/types/1.0.0/index.d.ts
new file mode 100644
index 000000000..afe876c4d
--- /dev/null
+++ b/tests/registry/npm/@denotest/types/1.0.0/index.d.ts
@@ -0,0 +1,4 @@
+export interface Fizzbuzz {
+ fizz: string;
+ buzz: string;
+} \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/types/1.0.0/package.json b/tests/registry/npm/@denotest/types/1.0.0/package.json
new file mode 100644
index 000000000..ef927cbe3
--- /dev/null
+++ b/tests/registry/npm/@denotest/types/1.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/types-ambient",
+ "version": "1.0.0",
+ "types": "./index.d.ts"
+}
diff --git a/tests/registry/npm/@denotest/types_imported/1.0.0/index.d.ts b/tests/registry/npm/@denotest/types_imported/1.0.0/index.d.ts
new file mode 100644
index 000000000..559cdb2ec
--- /dev/null
+++ b/tests/registry/npm/@denotest/types_imported/1.0.0/index.d.ts
@@ -0,0 +1,4 @@
+export interface SomeInterface {
+ prop: string;
+ prop2: number;
+} \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/types_imported/1.0.0/package.json b/tests/registry/npm/@denotest/types_imported/1.0.0/package.json
new file mode 100644
index 000000000..ef927cbe3
--- /dev/null
+++ b/tests/registry/npm/@denotest/types_imported/1.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/types-ambient",
+ "version": "1.0.0",
+ "types": "./index.d.ts"
+}
diff --git a/tests/registry/npm/@denotest/types_imported/1.0.0/subpath.d.ts b/tests/registry/npm/@denotest/types_imported/1.0.0/subpath.d.ts
new file mode 100644
index 000000000..883cf037a
--- /dev/null
+++ b/tests/registry/npm/@denotest/types_imported/1.0.0/subpath.d.ts
@@ -0,0 +1,4 @@
+export interface Foobar {
+ foo: string;
+ bar: string;
+} \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/typescript-file/1.0.0/index.ts b/tests/registry/npm/@denotest/typescript-file/1.0.0/index.ts
new file mode 100644
index 000000000..44b441a1e
--- /dev/null
+++ b/tests/registry/npm/@denotest/typescript-file/1.0.0/index.ts
@@ -0,0 +1,4 @@
+// this should not work because we don't support typescript files in npm packages
+export function getValue(): 5 {
+ return 5;
+} \ No newline at end of file
diff --git a/tests/registry/npm/@denotest/typescript-file/1.0.0/package.json b/tests/registry/npm/@denotest/typescript-file/1.0.0/package.json
new file mode 100644
index 000000000..e899f4100
--- /dev/null
+++ b/tests/registry/npm/@denotest/typescript-file/1.0.0/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "@denotest/typescript-file",
+ "version": "1.0.0",
+ "main": "./index.ts"
+}