@proteinjs/reflection-build 1.4.5 → 1.4.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/{test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/LICENSE → LICENSE} +5 -6
- package/dist/src/runWatch.js +3 -30
- package/dist/src/runWatch.js.map +1 -1
- package/dist/src/watch.d.ts +1 -1
- package/dist/src/watch.js +39 -28
- package/dist/src/watch.js.map +1 -1
- package/dist/test/examples/source-repository/a/generated/index.js +1 -1
- package/dist/test/examples/source-repository/a/generated/index.js.map +1 -1
- package/dist/test/examples/source-repository/b/generated/index.js +1 -1
- package/dist/test/examples/source-repository/b/generated/index.js.map +1 -1
- package/package.json +5 -4
- package/src/runWatch.ts +3 -8
- package/src/watch.ts +44 -35
- package/test/examples/source-repository/a/dist/generated/index.js +1 -1
- package/test/examples/source-repository/a/dist/generated/index.js.map +1 -1
- package/test/examples/source-repository/a/generated/index.ts +38 -33
- package/test/examples/source-repository/a/node_modules/.package-lock.json +6 -63
- package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/CHANGELOG.md +22 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/dist/src/PackageUtil.js +102 -20
- package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/dist/src/PackageUtil.js.map +1 -1
- package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/package.json +4 -3
- package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/src/PackageUtil.ts +88 -2
- package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/test/PackageUtil.symlinkDependencies.test.ts +254 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/tsconfig.json +1 -1
- package/test/examples/source-repository/a/package-lock.json +8 -12
- package/test/examples/source-repository/a/package.json +3 -3
- package/test/examples/source-repository/b/dist/generated/index.js +1 -1
- package/test/examples/source-repository/b/dist/generated/index.js.map +1 -1
- package/test/examples/source-repository/b/generated/index.ts +10 -11
- package/test/examples/source-repository/b/node_modules/.package-lock.json +4 -61
- package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/CHANGELOG.md +22 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/src/PackageUtil.js +102 -20
- package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/src/PackageUtil.js.map +1 -1
- package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/package.json +4 -3
- package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/src/PackageUtil.ts +88 -2
- package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/test/PackageUtil.symlinkDependencies.test.ts +254 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/tsconfig.json +1 -1
- package/test/examples/source-repository/b/package-lock.json +6 -10
- package/test/examples/source-repository/b/package.json +3 -3
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/.eslintrc.js +0 -20
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/.prettierignore +0 -4
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/.prettierrc +0 -8
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/CHANGELOG.md +0 -58
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/index.d.ts +0 -5
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/index.js +0 -18
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/index.js.map +0 -1
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/FlattenedSourceGraph.d.ts +0 -19
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/FlattenedSourceGraph.js +0 -555
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/FlattenedSourceGraph.js.map +0 -1
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/Loadable.d.ts +0 -3
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/Loadable.js +0 -5
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/Loadable.js.map +0 -1
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/SourceRepository.d.ts +0 -45
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/SourceRepository.js +0 -176
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/SourceRepository.js.map +0 -1
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/SourceRepositoryFilter.d.ts +0 -11
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/SourceRepositoryFilter.js +0 -9
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/SourceRepositoryFilter.js.map +0 -1
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/sourceGraphTypes.d.ts +0 -13
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/sourceGraphTypes.js +0 -19
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/sourceGraphTypes.js.map +0 -1
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/types.d.ts +0 -221
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/types.js +0 -234
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/types.js.map +0 -1
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/index.ts +0 -5
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/package.json +0 -42
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/src/FlattenedSourceGraph.ts +0 -702
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/src/Loadable.ts +0 -2
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/src/SourceRepository.ts +0 -250
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/src/SourceRepositoryFilter.ts +0 -15
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/src/sourceGraphTypes.ts +0 -14
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/src/types.ts +0 -236
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/tsconfig.json +0 -19
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/types/@dagrejs/graphlib.d.ts +0 -1
- package/test/examples/source-repository/a/node_modules/bindings/LICENSE.md +0 -22
- package/test/examples/source-repository/a/node_modules/bindings/README.md +0 -98
- package/test/examples/source-repository/a/node_modules/bindings/bindings.js +0 -221
- package/test/examples/source-repository/a/node_modules/bindings/package.json +0 -28
- package/test/examples/source-repository/a/node_modules/file-uri-to-path/.travis.yml +0 -30
- package/test/examples/source-repository/a/node_modules/file-uri-to-path/History.md +0 -21
- package/test/examples/source-repository/a/node_modules/file-uri-to-path/LICENSE +0 -20
- package/test/examples/source-repository/a/node_modules/file-uri-to-path/README.md +0 -74
- package/test/examples/source-repository/a/node_modules/file-uri-to-path/index.d.ts +0 -2
- package/test/examples/source-repository/a/node_modules/file-uri-to-path/index.js +0 -66
- package/test/examples/source-repository/a/node_modules/file-uri-to-path/package.json +0 -32
- package/test/examples/source-repository/a/node_modules/file-uri-to-path/test/test.js +0 -24
- package/test/examples/source-repository/a/node_modules/file-uri-to-path/test/tests.json +0 -13
- package/test/examples/source-repository/a/node_modules/fsevents/LICENSE +0 -22
- package/test/examples/source-repository/a/node_modules/fsevents/README.md +0 -89
- package/test/examples/source-repository/a/node_modules/fsevents/fsevents.d.ts +0 -46
- package/test/examples/source-repository/a/node_modules/fsevents/fsevents.js +0 -83
- package/test/examples/source-repository/a/node_modules/fsevents/fsevents.node +0 -0
- package/test/examples/source-repository/a/node_modules/fsevents/package.json +0 -62
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/.travis.yml +0 -103
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/ISSUE_TEMPLATE.md +0 -8
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/Readme.md +0 -78
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/binding.gyp +0 -21
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/build/.target.mk +0 -53
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/build/Makefile +0 -352
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/build/Release/.deps/Release/.node.d +0 -1
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/build/Release/.deps/Release/obj.target/fse/fsevents.o.d.raw +0 -79
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/build/Release/.node +0 -0
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/build/binding.Makefile +0 -6
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/build/fse.target.mk +0 -191
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/build/gyp-mac-tool +0 -766
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/fsevents.cc +0 -88
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/fsevents.js +0 -106
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/install.js +0 -13
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/package.json +0 -34
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/src/async.cc +0 -43
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/src/constants.cc +0 -110
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/src/methods.cc +0 -44
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/src/storage.cc +0 -27
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/src/thread.cc +0 -71
- package/test/examples/source-repository/a/node_modules/nan/CHANGELOG.md +0 -557
- package/test/examples/source-repository/a/node_modules/nan/CMakeLists.txt +0 -138
- package/test/examples/source-repository/a/node_modules/nan/LICENSE.md +0 -9
- package/test/examples/source-repository/a/node_modules/nan/README.md +0 -456
- package/test/examples/source-repository/a/node_modules/nan/doc/asyncworker.md +0 -146
- package/test/examples/source-repository/a/node_modules/nan/doc/buffers.md +0 -54
- package/test/examples/source-repository/a/node_modules/nan/doc/callback.md +0 -76
- package/test/examples/source-repository/a/node_modules/nan/doc/converters.md +0 -41
- package/test/examples/source-repository/a/node_modules/nan/doc/errors.md +0 -226
- package/test/examples/source-repository/a/node_modules/nan/doc/json.md +0 -62
- package/test/examples/source-repository/a/node_modules/nan/doc/maybe_types.md +0 -583
- package/test/examples/source-repository/a/node_modules/nan/doc/methods.md +0 -672
- package/test/examples/source-repository/a/node_modules/nan/doc/new.md +0 -147
- package/test/examples/source-repository/a/node_modules/nan/doc/node_misc.md +0 -123
- package/test/examples/source-repository/a/node_modules/nan/doc/object_wrappers.md +0 -263
- package/test/examples/source-repository/a/node_modules/nan/doc/persistent.md +0 -296
- package/test/examples/source-repository/a/node_modules/nan/doc/scopes.md +0 -73
- package/test/examples/source-repository/a/node_modules/nan/doc/script.md +0 -58
- package/test/examples/source-repository/a/node_modules/nan/doc/string_bytes.md +0 -62
- package/test/examples/source-repository/a/node_modules/nan/doc/v8_internals.md +0 -199
- package/test/examples/source-repository/a/node_modules/nan/doc/v8_misc.md +0 -85
- package/test/examples/source-repository/a/node_modules/nan/include_dirs.js +0 -1
- package/test/examples/source-repository/a/node_modules/nan/nan.h +0 -2958
- package/test/examples/source-repository/a/node_modules/nan/nan_callbacks.h +0 -92
- package/test/examples/source-repository/a/node_modules/nan/nan_callbacks_12_inl.h +0 -520
- package/test/examples/source-repository/a/node_modules/nan/nan_callbacks_pre_12_inl.h +0 -520
- package/test/examples/source-repository/a/node_modules/nan/nan_converters.h +0 -72
- package/test/examples/source-repository/a/node_modules/nan/nan_converters_43_inl.h +0 -68
- package/test/examples/source-repository/a/node_modules/nan/nan_converters_pre_43_inl.h +0 -42
- package/test/examples/source-repository/a/node_modules/nan/nan_define_own_property_helper.h +0 -29
- package/test/examples/source-repository/a/node_modules/nan/nan_implementation_12_inl.h +0 -430
- package/test/examples/source-repository/a/node_modules/nan/nan_implementation_pre_12_inl.h +0 -263
- package/test/examples/source-repository/a/node_modules/nan/nan_json.h +0 -166
- package/test/examples/source-repository/a/node_modules/nan/nan_maybe_43_inl.h +0 -356
- package/test/examples/source-repository/a/node_modules/nan/nan_maybe_pre_43_inl.h +0 -268
- package/test/examples/source-repository/a/node_modules/nan/nan_new.h +0 -340
- package/test/examples/source-repository/a/node_modules/nan/nan_object_wrap.h +0 -156
- package/test/examples/source-repository/a/node_modules/nan/nan_persistent_12_inl.h +0 -132
- package/test/examples/source-repository/a/node_modules/nan/nan_persistent_pre_12_inl.h +0 -242
- package/test/examples/source-repository/a/node_modules/nan/nan_private.h +0 -73
- package/test/examples/source-repository/a/node_modules/nan/nan_scriptorigin.h +0 -76
- package/test/examples/source-repository/a/node_modules/nan/nan_string_bytes.h +0 -305
- package/test/examples/source-repository/a/node_modules/nan/nan_typedarray_contents.h +0 -96
- package/test/examples/source-repository/a/node_modules/nan/nan_weak.h +0 -437
- package/test/examples/source-repository/a/node_modules/nan/package.json +0 -38
- package/test/examples/source-repository/a/node_modules/nan/tools/1to2.js +0 -412
- package/test/examples/source-repository/a/node_modules/nan/tools/README.md +0 -14
- package/test/examples/source-repository/a/node_modules/nan/tools/package.json +0 -19
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/.eslintrc.js +0 -20
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/.prettierignore +0 -4
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/.prettierrc +0 -8
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/CHANGELOG.md +0 -58
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/index.d.ts +0 -5
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/index.js +0 -18
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/index.js.map +0 -1
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/FlattenedSourceGraph.d.ts +0 -19
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/FlattenedSourceGraph.js +0 -555
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/FlattenedSourceGraph.js.map +0 -1
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/Loadable.d.ts +0 -3
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/Loadable.js +0 -5
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/Loadable.js.map +0 -1
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/SourceRepository.d.ts +0 -45
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/SourceRepository.js +0 -176
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/SourceRepository.js.map +0 -1
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/SourceRepositoryFilter.d.ts +0 -11
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/SourceRepositoryFilter.js +0 -9
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/SourceRepositoryFilter.js.map +0 -1
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/sourceGraphTypes.d.ts +0 -13
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/sourceGraphTypes.js +0 -19
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/sourceGraphTypes.js.map +0 -1
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/types.d.ts +0 -221
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/types.js +0 -234
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/types.js.map +0 -1
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/index.ts +0 -5
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/package.json +0 -42
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/src/FlattenedSourceGraph.ts +0 -702
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/src/Loadable.ts +0 -2
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/src/SourceRepository.ts +0 -250
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/src/SourceRepositoryFilter.ts +0 -15
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/src/sourceGraphTypes.ts +0 -14
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/src/types.ts +0 -236
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/tsconfig.json +0 -19
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/types/@dagrejs/graphlib.d.ts +0 -1
- package/test/examples/source-repository/b/node_modules/bindings/LICENSE.md +0 -22
- package/test/examples/source-repository/b/node_modules/bindings/README.md +0 -98
- package/test/examples/source-repository/b/node_modules/bindings/bindings.js +0 -221
- package/test/examples/source-repository/b/node_modules/bindings/package.json +0 -28
- package/test/examples/source-repository/b/node_modules/file-uri-to-path/.travis.yml +0 -30
- package/test/examples/source-repository/b/node_modules/file-uri-to-path/History.md +0 -21
- package/test/examples/source-repository/b/node_modules/file-uri-to-path/LICENSE +0 -20
- package/test/examples/source-repository/b/node_modules/file-uri-to-path/README.md +0 -74
- package/test/examples/source-repository/b/node_modules/file-uri-to-path/index.d.ts +0 -2
- package/test/examples/source-repository/b/node_modules/file-uri-to-path/index.js +0 -66
- package/test/examples/source-repository/b/node_modules/file-uri-to-path/package.json +0 -32
- package/test/examples/source-repository/b/node_modules/file-uri-to-path/test/test.js +0 -24
- package/test/examples/source-repository/b/node_modules/file-uri-to-path/test/tests.json +0 -13
- package/test/examples/source-repository/b/node_modules/fsevents/LICENSE +0 -22
- package/test/examples/source-repository/b/node_modules/fsevents/README.md +0 -89
- package/test/examples/source-repository/b/node_modules/fsevents/fsevents.d.ts +0 -46
- package/test/examples/source-repository/b/node_modules/fsevents/fsevents.js +0 -83
- package/test/examples/source-repository/b/node_modules/fsevents/fsevents.node +0 -0
- package/test/examples/source-repository/b/node_modules/fsevents/package.json +0 -62
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/.travis.yml +0 -103
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/ISSUE_TEMPLATE.md +0 -8
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/LICENSE +0 -22
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/Readme.md +0 -78
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/binding.gyp +0 -21
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/build/.target.mk +0 -53
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/build/Makefile +0 -352
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/build/Release/.deps/Release/.node.d +0 -1
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/build/Release/.deps/Release/obj.target/fse/fsevents.o.d.raw +0 -79
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/build/Release/.node +0 -0
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/build/binding.Makefile +0 -6
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/build/fse.target.mk +0 -191
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/build/gyp-mac-tool +0 -766
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/fsevents.cc +0 -88
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/fsevents.js +0 -106
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/install.js +0 -13
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/package.json +0 -34
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/src/async.cc +0 -43
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/src/constants.cc +0 -110
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/src/methods.cc +0 -44
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/src/storage.cc +0 -27
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/src/thread.cc +0 -71
- package/test/examples/source-repository/b/node_modules/nan/CHANGELOG.md +0 -557
- package/test/examples/source-repository/b/node_modules/nan/CMakeLists.txt +0 -138
- package/test/examples/source-repository/b/node_modules/nan/LICENSE.md +0 -9
- package/test/examples/source-repository/b/node_modules/nan/README.md +0 -456
- package/test/examples/source-repository/b/node_modules/nan/doc/asyncworker.md +0 -146
- package/test/examples/source-repository/b/node_modules/nan/doc/buffers.md +0 -54
- package/test/examples/source-repository/b/node_modules/nan/doc/callback.md +0 -76
- package/test/examples/source-repository/b/node_modules/nan/doc/converters.md +0 -41
- package/test/examples/source-repository/b/node_modules/nan/doc/errors.md +0 -226
- package/test/examples/source-repository/b/node_modules/nan/doc/json.md +0 -62
- package/test/examples/source-repository/b/node_modules/nan/doc/maybe_types.md +0 -583
- package/test/examples/source-repository/b/node_modules/nan/doc/methods.md +0 -672
- package/test/examples/source-repository/b/node_modules/nan/doc/new.md +0 -147
- package/test/examples/source-repository/b/node_modules/nan/doc/node_misc.md +0 -123
- package/test/examples/source-repository/b/node_modules/nan/doc/object_wrappers.md +0 -263
- package/test/examples/source-repository/b/node_modules/nan/doc/persistent.md +0 -296
- package/test/examples/source-repository/b/node_modules/nan/doc/scopes.md +0 -73
- package/test/examples/source-repository/b/node_modules/nan/doc/script.md +0 -58
- package/test/examples/source-repository/b/node_modules/nan/doc/string_bytes.md +0 -62
- package/test/examples/source-repository/b/node_modules/nan/doc/v8_internals.md +0 -199
- package/test/examples/source-repository/b/node_modules/nan/doc/v8_misc.md +0 -85
- package/test/examples/source-repository/b/node_modules/nan/include_dirs.js +0 -1
- package/test/examples/source-repository/b/node_modules/nan/nan.h +0 -2958
- package/test/examples/source-repository/b/node_modules/nan/nan_callbacks.h +0 -92
- package/test/examples/source-repository/b/node_modules/nan/nan_callbacks_12_inl.h +0 -520
- package/test/examples/source-repository/b/node_modules/nan/nan_callbacks_pre_12_inl.h +0 -520
- package/test/examples/source-repository/b/node_modules/nan/nan_converters.h +0 -72
- package/test/examples/source-repository/b/node_modules/nan/nan_converters_43_inl.h +0 -68
- package/test/examples/source-repository/b/node_modules/nan/nan_converters_pre_43_inl.h +0 -42
- package/test/examples/source-repository/b/node_modules/nan/nan_define_own_property_helper.h +0 -29
- package/test/examples/source-repository/b/node_modules/nan/nan_implementation_12_inl.h +0 -430
- package/test/examples/source-repository/b/node_modules/nan/nan_implementation_pre_12_inl.h +0 -263
- package/test/examples/source-repository/b/node_modules/nan/nan_json.h +0 -166
- package/test/examples/source-repository/b/node_modules/nan/nan_maybe_43_inl.h +0 -356
- package/test/examples/source-repository/b/node_modules/nan/nan_maybe_pre_43_inl.h +0 -268
- package/test/examples/source-repository/b/node_modules/nan/nan_new.h +0 -340
- package/test/examples/source-repository/b/node_modules/nan/nan_object_wrap.h +0 -156
- package/test/examples/source-repository/b/node_modules/nan/nan_persistent_12_inl.h +0 -132
- package/test/examples/source-repository/b/node_modules/nan/nan_persistent_pre_12_inl.h +0 -242
- package/test/examples/source-repository/b/node_modules/nan/nan_private.h +0 -73
- package/test/examples/source-repository/b/node_modules/nan/nan_scriptorigin.h +0 -76
- package/test/examples/source-repository/b/node_modules/nan/nan_string_bytes.h +0 -305
- package/test/examples/source-repository/b/node_modules/nan/nan_typedarray_contents.h +0 -96
- package/test/examples/source-repository/b/node_modules/nan/nan_weak.h +0 -437
- package/test/examples/source-repository/b/node_modules/nan/package.json +0 -38
- package/test/examples/source-repository/b/node_modules/nan/tools/1to2.js +0 -412
- package/test/examples/source-repository/b/node_modules/nan/tools/README.md +0 -14
- package/test/examples/source-repository/b/node_modules/nan/tools/package.json +0 -19
- /package/test/examples/source-repository/a/node_modules/@proteinjs/{reflection → util-node}/jest.config.js +0 -0
- /package/test/examples/source-repository/b/node_modules/@proteinjs/{reflection → util-node}/jest.config.js +0 -0
package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/src/PackageUtil.js
CHANGED
|
@@ -74,6 +74,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
74
74
|
exports.PackageUtil = void 0;
|
|
75
75
|
var typescript_1 = __importDefault(require("typescript"));
|
|
76
76
|
var path = __importStar(require("path"));
|
|
77
|
+
var fs = __importStar(require("fs/promises"));
|
|
77
78
|
var util_1 = require("@proteinjs/util");
|
|
78
79
|
var cmd_1 = require("./cmd");
|
|
79
80
|
var Fs_1 = require("./Fs");
|
|
@@ -463,10 +464,10 @@ var PackageUtil = /** @class */ (function () {
|
|
|
463
464
|
_a.label = 3;
|
|
464
465
|
case 3:
|
|
465
466
|
linkDependencies = function (dependencies) { return __awaiter(_this, void 0, void 0, function () {
|
|
466
|
-
var _a, _b, _c, _i, dependencyPackageName, dependencyPath, symlinkPath, symlinkParent;
|
|
467
|
-
var
|
|
468
|
-
return __generator(this, function (
|
|
469
|
-
switch (
|
|
467
|
+
var _a, _b, _c, _i, dependencyPackageName, dependencyPath, symlinkPath, symlinkParent, e_1, relativeDependencyPath, depPackageJson, _d, _e, bin, binEntries, binName, bareName, dotBinDir, _f, binEntries_1, _g, name_3, relPath, binFilePath, shimPath, e_2, shimTargetAbsolute, shimRelative;
|
|
468
|
+
var _h;
|
|
469
|
+
return __generator(this, function (_j) {
|
|
470
|
+
switch (_j.label) {
|
|
470
471
|
case 0:
|
|
471
472
|
if (!dependencies) {
|
|
472
473
|
return [2 /*return*/];
|
|
@@ -476,42 +477,123 @@ var PackageUtil = /** @class */ (function () {
|
|
|
476
477
|
for (_c in _a)
|
|
477
478
|
_b.push(_c);
|
|
478
479
|
_i = 0;
|
|
479
|
-
|
|
480
|
+
_j.label = 1;
|
|
480
481
|
case 1:
|
|
481
|
-
if (!(_i < _b.length)) return [3 /*break*/,
|
|
482
|
+
if (!(_i < _b.length)) return [3 /*break*/, 26];
|
|
482
483
|
_c = _b[_i];
|
|
483
|
-
if (!(_c in _a)) return [3 /*break*/,
|
|
484
|
+
if (!(_c in _a)) return [3 /*break*/, 25];
|
|
484
485
|
dependencyPackageName = _c;
|
|
485
|
-
dependencyPath = ((
|
|
486
|
+
dependencyPath = ((_h = localPackageMap[dependencyPackageName]) === null || _h === void 0 ? void 0 : _h.filePath)
|
|
486
487
|
? path.dirname(localPackageMap[dependencyPackageName].filePath)
|
|
487
488
|
: null;
|
|
488
489
|
if (!dependencyPath) {
|
|
489
|
-
return [3 /*break*/,
|
|
490
|
+
return [3 /*break*/, 25];
|
|
490
491
|
}
|
|
491
492
|
symlinkPath = path.join(nodeModulesPath, dependencyPackageName);
|
|
492
493
|
symlinkParent = path.dirname(symlinkPath);
|
|
493
494
|
return [4 /*yield*/, Fs_1.Fs.exists(symlinkParent)];
|
|
494
495
|
case 2:
|
|
495
|
-
if (!!(
|
|
496
|
+
if (!!(_j.sent())) return [3 /*break*/, 4];
|
|
496
497
|
return [4 /*yield*/, Fs_1.Fs.createFolder(symlinkParent)];
|
|
497
498
|
case 3:
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
case 4:
|
|
499
|
+
_j.sent();
|
|
500
|
+
_j.label = 4;
|
|
501
|
+
case 4:
|
|
502
|
+
_j.trys.push([4, 7, , 8]);
|
|
503
|
+
return [4 /*yield*/, fs.lstat(symlinkPath)];
|
|
501
504
|
case 5:
|
|
502
|
-
|
|
505
|
+
_j.sent();
|
|
506
|
+
// Existing entry (symlink, file, or directory) — remove it.
|
|
507
|
+
// `deleteFolder` (fs-extra `remove`) handles all three.
|
|
503
508
|
return [4 /*yield*/, Fs_1.Fs.deleteFolder(symlinkPath)];
|
|
504
509
|
case 6:
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
510
|
+
// Existing entry (symlink, file, or directory) — remove it.
|
|
511
|
+
// `deleteFolder` (fs-extra `remove`) handles all three.
|
|
512
|
+
_j.sent();
|
|
513
|
+
return [3 /*break*/, 8];
|
|
514
|
+
case 7:
|
|
515
|
+
e_1 = _j.sent();
|
|
516
|
+
if (e_1.code !== 'ENOENT') {
|
|
517
|
+
throw e_1;
|
|
518
|
+
}
|
|
519
|
+
return [3 /*break*/, 8];
|
|
508
520
|
case 8:
|
|
509
|
-
|
|
510
|
-
|
|
521
|
+
relativeDependencyPath = path.relative(symlinkParent, dependencyPath);
|
|
522
|
+
return [4 /*yield*/, (0, cmd_1.cmd)('ln', ['-s', relativeDependencyPath, symlinkPath], { cwd: packageDir })];
|
|
511
523
|
case 9:
|
|
524
|
+
_j.sent();
|
|
525
|
+
_e = (_d = JSON).parse;
|
|
526
|
+
return [4 /*yield*/, Fs_1.Fs.readFile(localPackageMap[dependencyPackageName].filePath)];
|
|
527
|
+
case 10:
|
|
528
|
+
depPackageJson = _e.apply(_d, [_j.sent()]);
|
|
529
|
+
bin = depPackageJson.bin;
|
|
530
|
+
binEntries = [];
|
|
531
|
+
if (bin && typeof bin === 'object') {
|
|
532
|
+
for (binName in bin) {
|
|
533
|
+
binEntries.push({ name: binName, relPath: bin[binName] });
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
else if (bin && typeof bin === 'string') {
|
|
537
|
+
bareName = dependencyPackageName.includes('/')
|
|
538
|
+
? dependencyPackageName.split('/').pop()
|
|
539
|
+
: dependencyPackageName;
|
|
540
|
+
binEntries.push({ name: bareName, relPath: bin });
|
|
541
|
+
}
|
|
542
|
+
if (!(binEntries.length > 0)) return [3 /*break*/, 25];
|
|
543
|
+
dotBinDir = path.join(nodeModulesPath, '.bin');
|
|
544
|
+
return [4 /*yield*/, Fs_1.Fs.exists(dotBinDir)];
|
|
545
|
+
case 11:
|
|
546
|
+
if (!!(_j.sent())) return [3 /*break*/, 13];
|
|
547
|
+
return [4 /*yield*/, Fs_1.Fs.createFolder(dotBinDir)];
|
|
548
|
+
case 12:
|
|
549
|
+
_j.sent();
|
|
550
|
+
_j.label = 13;
|
|
551
|
+
case 13:
|
|
552
|
+
_f = 0, binEntries_1 = binEntries;
|
|
553
|
+
_j.label = 14;
|
|
554
|
+
case 14:
|
|
555
|
+
if (!(_f < binEntries_1.length)) return [3 /*break*/, 25];
|
|
556
|
+
_g = binEntries_1[_f], name_3 = _g.name, relPath = _g.relPath;
|
|
557
|
+
binFilePath = path.resolve(dependencyPath, relPath);
|
|
558
|
+
return [4 /*yield*/, Fs_1.Fs.exists(binFilePath)];
|
|
559
|
+
case 15:
|
|
560
|
+
if (!_j.sent()) return [3 /*break*/, 17];
|
|
561
|
+
return [4 /*yield*/, fs.chmod(binFilePath, 493)];
|
|
562
|
+
case 16:
|
|
563
|
+
_j.sent();
|
|
564
|
+
_j.label = 17;
|
|
565
|
+
case 17:
|
|
566
|
+
shimPath = path.join(dotBinDir, name_3);
|
|
567
|
+
_j.label = 18;
|
|
568
|
+
case 18:
|
|
569
|
+
_j.trys.push([18, 21, , 22]);
|
|
570
|
+
return [4 /*yield*/, fs.lstat(shimPath)];
|
|
571
|
+
case 19:
|
|
572
|
+
_j.sent();
|
|
573
|
+
return [4 /*yield*/, Fs_1.Fs.deleteFolder(shimPath)];
|
|
574
|
+
case 20:
|
|
575
|
+
_j.sent();
|
|
576
|
+
return [3 /*break*/, 22];
|
|
577
|
+
case 21:
|
|
578
|
+
e_2 = _j.sent();
|
|
579
|
+
if (e_2.code !== 'ENOENT') {
|
|
580
|
+
throw e_2;
|
|
581
|
+
}
|
|
582
|
+
return [3 /*break*/, 22];
|
|
583
|
+
case 22:
|
|
584
|
+
shimTargetAbsolute = path.join(nodeModulesPath, dependencyPackageName, relPath);
|
|
585
|
+
shimRelative = path.relative(dotBinDir, shimTargetAbsolute);
|
|
586
|
+
return [4 /*yield*/, (0, cmd_1.cmd)('ln', ['-s', shimRelative, shimPath], { cwd: packageDir })];
|
|
587
|
+
case 23:
|
|
588
|
+
_j.sent();
|
|
589
|
+
_j.label = 24;
|
|
590
|
+
case 24:
|
|
591
|
+
_f++;
|
|
592
|
+
return [3 /*break*/, 14];
|
|
593
|
+
case 25:
|
|
512
594
|
_i++;
|
|
513
595
|
return [3 /*break*/, 1];
|
|
514
|
-
case
|
|
596
|
+
case 26: return [2 /*return*/];
|
|
515
597
|
}
|
|
516
598
|
});
|
|
517
599
|
}); };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PackageUtil.js","sourceRoot":"","sources":["../../src/PackageUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAC5B,yCAA6B;AAC7B,wCAAyD;AACzD,6BAA4B;AAC5B,2BAA0B;AA+B1B;IAAA;IA2UA,CAAC;IA1UC;;;;;OAKG;IACU,2BAAe,GAA5B,UAA6B,QAAmB,EAAE,OAAgB;;;;;;8BAClC,EAAR,qBAAQ;;;6BAAR,CAAA,sBAAQ,CAAA;wBAAnB,OAAO;wBACR,SAA6C,OAAO,KAAhD,EAAE,OAAO,GAAgC,OAAO,QAAvC,EAAE,YAAY,GAAkB,OAAO,aAAzB,EAAE,WAAW,GAAK,OAAO,YAAZ,CAAa;wBACvD,oBAAoB,GAAG,OAAO,YAAY,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;wBACjF,mBAAmB,GAAG,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;wBAC/E,IAAI,GAAG;4BACX,GAAG;4BACH,UAAG,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAE;4BAC9E,UAAG,MAAI,SAAG,OAAO,CAAC,CAAC,CAAC,WAAI,OAAO,CAAE,CAAC,CAAC,CAAC,EAAE,CAAE;yBACzC,CAAC;wBACE,OAAO,SAAA,CAAC;wBACZ,IAAI,OAAO,EAAE;4BACX,OAAO,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;yBAC5B;wBACM,qBAAM,IAAA,SAAG,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,EAAA;4BAAtC,sBAAO,SAA+B,EAAC;;wBAbnB,IAAQ,CAAA;;;;;;KAe/B;IAED;;;;;OAKG;IACU,6BAAiB,GAA9B,UAA+B,YAAsB,EAAE,OAAgB;;;;;;wBAC/D,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACzC,IAAI,GAAG,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;wBAE5C,IAAI,OAAO,EAAE;4BACX,OAAO,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;yBAC5B;wBACM,qBAAM,IAAA,SAAG,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,EAAA;4BAAtC,sBAAO,SAA+B,EAAC;;;;KACxC;IAEY,4BAAgB,GAA7B,UAA8B,IAAY,EAAE,OAAgB;;;;;;wBACpD,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;wBAE3B,IAAI,OAAO,EAAE;4BACX,OAAO,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;yBAC5B;wBACM,qBAAM,IAAA,SAAG,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,EAAA;4BAAtC,sBAAO,SAA+B,EAAC;;;;KACxC;IAED;;;OAGG;IACU,sBAAU,GAAvB,UAAwB,GAAW;;;;;;wBAC3B,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;wBAEnB,IAAI,GAAG,EAAE;4BACP,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;yBACxB;wBACM,qBAAM,IAAA,SAAG,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,EAAA;4BAAtC,sBAAO,SAA+B,EAAC;;;;KACxC;IAED;;;;OAIG;IACI,0CAA8B,GAArC,UAAsC,MAA0E;QAG9G,wDAAwD;QACxD,IAAM,YAAY,GAAmC,EAAE,CAAC;QAExD,0CAA0C;QAC1C,IAAM,OAAO,GAAG,oBAAE,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE;YACnD,MAAM,EAAE,oBAAE,CAAC,YAAY,CAAC,GAAG;YAC3B,MAAM,EAAE,oBAAE,CAAC,UAAU,CAAC,QAAQ;YAC9B,WAAW,EAAE,IAAI;YACjB,mBAAmB,EAAE,IAAI;SAC1B,CAAC,CAAC;QAEH,2DAA2D;QAC3D,IAAM,eAAe,GAAyB,UAAC,QAAQ,EAAE,IAAI;YAC3D,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBAC9B,IAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC;gBACxE,YAAY,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;aACjC;QACH,CAAC,CAAC;QAEF,oCAAoC;QACpC,IAAI,MAAM,CAAC,6BAA6B,EAAE;YACxC,IAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YACzE,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;SACvC;aAAM;YACL,KAAyB,UAAkB,EAAlB,KAAA,MAAM,CAAC,WAAW,EAAlB,cAAkB,EAAlB,IAAkB,EAAE;gBAAxC,IAAM,UAAU,SAAA;gBACnB,IAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBACrD,IAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;gBAC1E,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;aACvC;SACF;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAEc,6BAAiB,GAAhC,UAAiC,MAAqB;QACpD,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACvD,gCAAgC;YAChC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAC,UAAU;gBACpC,IAAI,UAAU,CAAC,IAAI,EAAE;oBACb,IAAA,KAAsB,UAAU,CAAC,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,KAAM,CAAC,EAApF,IAAI,UAAA,EAAE,SAAS,eAAqE,CAAC;oBAC7F,IAAM,OAAO,GAAG,oBAAE,CAAC,4BAA4B,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;oBAC9E,OAAO,CAAC,KAAK,CAAC,UAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,eAAK,IAAI,GAAG,CAAC,cAAI,SAAS,GAAG,CAAC,gBAAM,OAAO,CAAE,CAAC,CAAC;iBACzF;qBAAM;oBACL,OAAO,CAAC,KAAK,CAAC,oBAAE,CAAC,4BAA4B,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;iBAC9E;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED;;;;;;OAMG;IACU,8BAAkB,GAA/B,UAAgC,GAAW,EAAE,kBAAiC;QAAjC,mCAAA,EAAA,uBAAiC;;;;;;wBACtE,UAAU,GAA4C,EAAE,CAAC;wBAC7C,qBAAM,OAAE,CAAC,wBAAwB,CAAC,GAAG,EAAE,iBAAiB;gCACxE,oBAAoB;gCACpB,YAAY;+BACT,kBAAkB,QACrB,EAAA;;wBAJI,SAAS,GAAG,SAIhB;8BAC8B,EAAT,uBAAS;;;6BAAT,CAAA,uBAAS,CAAA;wBAArB,QAAQ;wBACG,KAAA,CAAA,KAAA,IAAI,CAAA,CAAC,KAAK,CAAA;wBAAC,qBAAM,OAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAA;;wBAApD,WAAW,GAAG,cAAW,SAA2B,EAAC;wBACrD,SAAO,WAAW,CAAC,MAAM,CAAC,CAAC;wBACjC,UAAU,CAAC,MAAI,CAAC,GAAG;4BACjB,IAAI,QAAA;4BACJ,QAAQ,UAAA;4BACR,WAAW,aAAA;yBACZ,CAAC;wBACI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;wBACpC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;wBACV,qBAAM,WAAW,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAA;;wBAA3E,wBAAwB,GAAG,SAAgD;6BAC7E,wBAAwB,EAAxB,yBAAwB;wBACpB,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;wBAChC,KAAA,CAAA,KAAA,IAAI,CAAA,CAAC,KAAK,CAAA;wBAAC,qBAAM,OAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAA;;wBAA7E,oBAAoB,GAAG,cAAW,SAA2C,EAAC;wBAC9E,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;wBAC1C,qBAAM,OAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,EAAA;;6BAAxC,CAAC,SAAuC,CAAC,EAAzC,wBAAyC;wBAChE,KAAA,CAAA,KAAA,IAAI,CAAA,CAAC,KAAK,CAAA;wBAAC,qBAAM,OAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAA;;wBAApD,KAAA,cAAW,SAAyC,EAAC,CAAA;;;wBACrD,KAAA,SAAS,CAAA;;;wBAFP,kBAAkB,KAEX;wBACb,UAAU,CAAC,MAAI,CAAC,CAAC,SAAS,GAAG;4BAC3B,IAAI,EAAE,aAAa;4BACnB,eAAe,EAAE,oBAAoB;4BACrC,SAAS,EAAE,kBAAkB;yBAC9B,CAAC;;;wBAtBiB,IAAS,CAAA;;6BA0BhC,sBAAO,UAAU,EAAC;;;;KACnB;IAED;;;;OAIG;IACkB,+BAAmB,GAAxC,UAAyC,GAAW;;;;;;wBAC5C,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;wBAC/C,qBAAM,OAAE,CAAC,MAAM,CAAC,WAAW,CAAC,EAAA;;wBAAhC,IAAI,SAA4B,EAAE;4BAChC,sBAAO,WAAW,EAAC;yBACpB;wBAEK,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBACpC,IAAI,SAAS,KAAK,GAAG,EAAE;4BACrB,sBAAO,SAAS,EAAC;yBAClB;wBAED,sBAAO,WAAW,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAC;;;;KACnD;IAED;;;;;;;;;;OAUG;IACU,qCAAyB,GAAtC,UAAuC,UAA2B;;;;gBAC1D,KAAK,GAAG,IAAI,YAAK,EAAE,CAAC;gBAC1B,WAAoD,EAAzB,KAAA,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAzB,cAAyB,EAAzB,IAAyB,EAAE;oBAA3C,YAAY;oBACf,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;oBACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;wBAC/B,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;qBAC5B;oBAED,WAAW,CAAC,eAAe,CAAC,WAAW,EAAE,YAAY,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;oBACtG,WAAW,CAAC,eAAe,CAAC,WAAW,EAAE,YAAY,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;iBAC1G;gBAED,sBAAO,KAAK,EAAC;;;KACd;IAEc,2BAAe,GAA9B,UACE,iBAAyB,EACzB,YAAiB,EACjB,KAAU,EACV,UAA2B;QAE3B,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO;SACR;QAED,KAAoC,UAAyB,EAAzB,KAAA,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAzB,cAAyB,EAAzB,IAAyB,EAAE;YAA1D,IAAM,qBAAqB,SAAA;YAC9B,IAAM,wBAAwB,GAAG,YAAY,CAAC,qBAAqB,CAAW,CAAC;YAC/E,IACE,CAAC,CACC,wBAAwB,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC5C,wBAAwB,CAAC,UAAU,CAAC,GAAG,CAAC;gBACxC,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,CACpC,EACD;gBACA,SAAS;aACV;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE;gBACzC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;aACtC;YAED,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;SACzD;IACH,CAAC;IAEY,oBAAQ,GAArB,UAAsB,UAAkB;;;;4BAC9B,qBAAM,OAAE,CAAC,wBAAwB,CAAC,UAAU,EAAE,mBAAmB,CAAC,EAAA;4BAA1E,sBAAO,CAAC,SAAkE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAC;;;;KACxF;IAED;;;;OAIG;IACI,8BAAkB,GAAzB,UAA0B,sBAA2B;QACnD,OAAO,sBAAe,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,OAAO,EAAE,CAAC;IACnE,CAAC;IAEc,oCAAwB,GAAvC,UAAwC,UAA2B;QACjE,IAAM,qBAAqB,GAA0C,EAAE,CAAC;QACxE,KAA0B,UAAuB,EAAvB,KAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAvB,cAAuB,EAAvB,IAAuB,EAAE;YAA9C,IAAM,WAAW,SAAA;YACpB,IAAM,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;YAC7C,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;gBAC3B,SAAS;aACV;YAED,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACvD,qBAAqB,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;aACzD;YAED,qBAAqB,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACtE;QAED,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACU,gCAAoB,GAAjC,UAAkC,aAAqB;;;;;4BAClC,qBAAM,WAAW,CAAC,kBAAkB,CAAC,aAAa,CAAC,EAAA;;wBAAhE,UAAU,GAAG,SAAmD;wBACjD,qBAAM,WAAW,CAAC,yBAAyB,CAAC,UAAU,CAAC,EAAA;;wBAAtE,YAAY,GAAG,SAAuD;wBACtE,kBAAkB,GAAG,WAAW,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,MAAM,CAC5E,UAAC,WAAW,IAAK,OAAA,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,EAAzB,CAAyB,CAC3C,CAAC;wBACI,qBAAqB,GAAG,WAAW,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;wBAC/E,sBAAO;gCACL,UAAU,YAAA;gCACV,YAAY,cAAA;gCACZ,kBAAkB,oBAAA;gCAClB,qBAAqB,uBAAA;6BACtB,EAAC;;;;KACH;IAED;;;;;OAKG;IACU,+BAAmB,GAAhC,UAAiC,YAA0B,EAAE,eAAgC;;;;;;;wBACrF,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;wBACjD,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;wBAC3D,qBAAM,OAAE,CAAC,MAAM,CAAC,eAAe,CAAC,EAAA;;6BAAlC,CAAC,CAAC,SAAgC,CAAC,EAAnC,wBAAmC;wBACrC,qBAAM,OAAE,CAAC,YAAY,CAAC,eAAe,CAAC,EAAA;;wBAAtC,SAAsC,CAAC;;;wBAGnC,gBAAgB,GAAG,UAAO,YAAgD;;;;;;wCAC9E,IAAI,CAAC,YAAY,EAAE;4CACjB,sBAAO;yCACR;6CAEmC,YAAY;;;;;;;;;;;wCACxC,cAAc,GAAG,CAAA,MAAA,eAAe,CAAC,qBAAqB,CAAC,0CAAE,QAAQ;4CACrE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC;4CAC/D,CAAC,CAAC,IAAI,CAAC;wCACT,IAAI,CAAC,cAAc,EAAE;4CACnB,wBAAS;yCACV;wCAEK,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;wCAChE,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;wCAC1C,qBAAM,OAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAA;;6CAAhC,CAAC,CAAC,SAA8B,CAAC,EAAjC,wBAAiC;wCACnC,qBAAM,OAAE,CAAC,YAAY,CAAC,aAAa,CAAC,EAAA;;wCAApC,SAAoC,CAAC;;4CAEnC,qBAAM,OAAE,CAAC,MAAM,CAAC,WAAW,CAAC,EAAA;;6CAA5B,SAA4B,EAA5B,wBAA4B;wCAC9B,qBAAM,OAAE,CAAC,YAAY,CAAC,WAAW,CAAC,EAAA;;wCAAlC,SAAkC,CAAC;;4CAGrC,qBAAM,IAAA,SAAG,EAAC,IAAI,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAA;;wCAAzE,SAAyE,CAAC;;;;;;;;6BAE7E,CAAC;wBAEF,qBAAM,gBAAgB,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,EAAA;;wBAA7D,SAA6D,CAAC;wBAC9D,qBAAM,gBAAgB,CAAC,YAAY,CAAC,WAAW,CAAC,eAAe,CAAC,EAAA;;wBAAhE,SAAgE,CAAC;;;;;KAClE;IACH,kBAAC;AAAD,CAAC,AA3UD,IA2UC;AA3UY,kCAAW"}
|
|
1
|
+
{"version":3,"file":"PackageUtil.js","sourceRoot":"","sources":["../../src/PackageUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@proteinjs/util-node",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.1",
|
|
4
4
|
"description": "Util libs for node",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -20,7 +20,8 @@
|
|
|
20
20
|
"scripts": {
|
|
21
21
|
"clean": "rm -rf dist/ node_modules/",
|
|
22
22
|
"build": "tsc",
|
|
23
|
-
"watch": "tsc -w -p ."
|
|
23
|
+
"watch": "tsc -w -p .",
|
|
24
|
+
"test": "jest --passWithNoTests"
|
|
24
25
|
},
|
|
25
26
|
"dependencies": {
|
|
26
27
|
"@dagrejs/graphlib": "2.1.4",
|
|
@@ -42,5 +43,5 @@
|
|
|
42
43
|
"jest": "^29.6.4",
|
|
43
44
|
"ts-jest": "^29.1.1"
|
|
44
45
|
},
|
|
45
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "d05f0a962e993acae4c4667ec1fe890d13b55710"
|
|
46
47
|
}
|
package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/src/PackageUtil.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import ts from 'typescript';
|
|
2
2
|
import * as path from 'path';
|
|
3
|
+
import * as fs from 'fs/promises';
|
|
3
4
|
import { Graph, GraphAlgorithms } from '@proteinjs/util';
|
|
4
5
|
import { cmd } from './cmd';
|
|
5
6
|
import { Fs } from './Fs';
|
|
@@ -353,11 +354,96 @@ export class PackageUtil {
|
|
|
353
354
|
if (!(await Fs.exists(symlinkParent))) {
|
|
354
355
|
await Fs.createFolder(symlinkParent);
|
|
355
356
|
}
|
|
356
|
-
|
|
357
|
+
// Clear out any existing entry at symlinkPath before creating the
|
|
358
|
+
// new symlink. Use `fs.lstat` rather than `Fs.exists` because
|
|
359
|
+
// `Fs.exists` is `fs.stat`-backed — which FOLLOWS symlinks and
|
|
360
|
+
// throws on a broken target, making broken symlinks invisible
|
|
361
|
+
// here. That's a real failure mode: if a prior run produced a
|
|
362
|
+
// symlink to a path that no longer exists (e.g. after the tree
|
|
363
|
+
// was moved, mounted elsewhere, or retargeted by tooling), the
|
|
364
|
+
// broken link survives the `Fs.exists` check, the delete is
|
|
365
|
+
// skipped, and `ln -s` then fails with "File exists".
|
|
366
|
+
try {
|
|
367
|
+
await fs.lstat(symlinkPath);
|
|
368
|
+
// Existing entry (symlink, file, or directory) — remove it.
|
|
369
|
+
// `deleteFolder` (fs-extra `remove`) handles all three.
|
|
357
370
|
await Fs.deleteFolder(symlinkPath);
|
|
371
|
+
} catch (e: any) {
|
|
372
|
+
if (e.code !== 'ENOENT') {
|
|
373
|
+
throw e;
|
|
374
|
+
}
|
|
375
|
+
// Nothing there — nothing to clean up.
|
|
358
376
|
}
|
|
359
377
|
|
|
360
|
-
|
|
378
|
+
// Use a RELATIVE link target so the workspace is portable across
|
|
379
|
+
// mount points (a developer's laptop, CI containers, a remote
|
|
380
|
+
// sandbox, etc.) without having to re-run `symlink-workspace` just
|
|
381
|
+
// because the absolute root path changed. `ln -s TARGET LINK`
|
|
382
|
+
// resolves TARGET relative to the directory containing the link —
|
|
383
|
+
// i.e. `symlinkParent` — so we compute the relative path from there.
|
|
384
|
+
const relativeDependencyPath = path.relative(symlinkParent, dependencyPath);
|
|
385
|
+
await cmd('ln', ['-s', relativeDependencyPath, symlinkPath], { cwd: packageDir });
|
|
386
|
+
|
|
387
|
+
// Create `.bin/<name>` shims for every bin the dependency declares.
|
|
388
|
+
//
|
|
389
|
+
// This is normally npm's job: `npm install` creates shims at
|
|
390
|
+
// `node_modules/.bin/<name>` pointing into the installed package so
|
|
391
|
+
// lifecycle scripts like `npm run watch` (where npm prepends
|
|
392
|
+
// `./node_modules/.bin` to PATH) can find them. `symlink-workspace`
|
|
393
|
+
// bypasses `npm install`, so without this loop the shims only exist
|
|
394
|
+
// if the user happened to run `npm install` at some point and they
|
|
395
|
+
// survive. They don't survive a broken-symlink sweep, a fresh
|
|
396
|
+
// checkout, or a move to a new host — so we create them ourselves.
|
|
397
|
+
//
|
|
398
|
+
// Also chmod +x the bin target: tsc output doesn't preserve the
|
|
399
|
+
// execute bit that `npm install` sets from the published tarball.
|
|
400
|
+
const depPackageJson = JSON.parse(await Fs.readFile(localPackageMap[dependencyPackageName].filePath));
|
|
401
|
+
const bin = depPackageJson.bin;
|
|
402
|
+
const binEntries: Array<{ name: string; relPath: string }> = [];
|
|
403
|
+
if (bin && typeof bin === 'object') {
|
|
404
|
+
for (const binName in bin) {
|
|
405
|
+
binEntries.push({ name: binName, relPath: bin[binName] });
|
|
406
|
+
}
|
|
407
|
+
} else if (bin && typeof bin === 'string') {
|
|
408
|
+
// Shorthand: `"bin": "./path"` — the exposed name is the
|
|
409
|
+
// package's bare name (scope stripped). Matches npm behavior.
|
|
410
|
+
const bareName = dependencyPackageName.includes('/')
|
|
411
|
+
? dependencyPackageName.split('/').pop()!
|
|
412
|
+
: dependencyPackageName;
|
|
413
|
+
binEntries.push({ name: bareName, relPath: bin });
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
if (binEntries.length > 0) {
|
|
417
|
+
const dotBinDir = path.join(nodeModulesPath, '.bin');
|
|
418
|
+
if (!(await Fs.exists(dotBinDir))) {
|
|
419
|
+
await Fs.createFolder(dotBinDir);
|
|
420
|
+
}
|
|
421
|
+
for (const { name, relPath } of binEntries) {
|
|
422
|
+
const binFilePath = path.resolve(dependencyPath, relPath);
|
|
423
|
+
if (await Fs.exists(binFilePath)) {
|
|
424
|
+
await fs.chmod(binFilePath, 0o755);
|
|
425
|
+
}
|
|
426
|
+
const shimPath = path.join(dotBinDir, name);
|
|
427
|
+
// Same lstat-based cleanup as for the dep symlink — broken
|
|
428
|
+
// shims from a prior run in a different environment would
|
|
429
|
+
// otherwise make `ln -s` fail with "File exists".
|
|
430
|
+
try {
|
|
431
|
+
await fs.lstat(shimPath);
|
|
432
|
+
await Fs.deleteFolder(shimPath);
|
|
433
|
+
} catch (e: any) {
|
|
434
|
+
if (e.code !== 'ENOENT') {
|
|
435
|
+
throw e;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
// Relative target: from `node_modules/.bin` into the dep
|
|
439
|
+
// directory. Goes through the dep's symlinked node_modules
|
|
440
|
+
// entry (not into the source tree) so the shim continues to
|
|
441
|
+
// resolve correctly after the workspace is relocated.
|
|
442
|
+
const shimTargetAbsolute = path.join(nodeModulesPath, dependencyPackageName, relPath);
|
|
443
|
+
const shimRelative = path.relative(dotBinDir, shimTargetAbsolute);
|
|
444
|
+
await cmd('ln', ['-s', shimRelative, shimPath], { cwd: packageDir });
|
|
445
|
+
}
|
|
446
|
+
}
|
|
361
447
|
}
|
|
362
448
|
};
|
|
363
449
|
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
import * as fs from 'fs/promises';
|
|
3
|
+
import * as os from 'os';
|
|
4
|
+
import { PackageUtil, LocalPackage, LocalPackageMap } from '../src/PackageUtil';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Regression tests for PackageUtil.symlinkDependencies.
|
|
8
|
+
*
|
|
9
|
+
* The important property: the symlinks it creates must use RELATIVE targets
|
|
10
|
+
* so the workspace is portable across mount points. If absolute paths slip
|
|
11
|
+
* back in, a symlinked workspace breaks whenever its root directory moves
|
|
12
|
+
* (developer laptop vs CI container vs sandbox vs coworker's checkout), and
|
|
13
|
+
* every environment change requires re-running `symlink-workspace`.
|
|
14
|
+
*/
|
|
15
|
+
describe('PackageUtil.symlinkDependencies — relative link targets', () => {
|
|
16
|
+
let workspaceRoot: string;
|
|
17
|
+
|
|
18
|
+
beforeEach(async () => {
|
|
19
|
+
workspaceRoot = await fs.mkdtemp(path.join(os.tmpdir(), 'symlink-rel-'));
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
afterEach(async () => {
|
|
23
|
+
if (workspaceRoot) {
|
|
24
|
+
await fs.rm(workspaceRoot, { recursive: true, force: true }).catch(() => {
|
|
25
|
+
/* ignore — directory may have already been moved */
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Create a package.json on disk and return the `LocalPackage` record that
|
|
32
|
+
* `symlinkDependencies` expects.
|
|
33
|
+
*/
|
|
34
|
+
const writePackage = async (
|
|
35
|
+
relPath: string,
|
|
36
|
+
name: string,
|
|
37
|
+
deps: Record<string, string> = {}
|
|
38
|
+
): Promise<LocalPackage> => {
|
|
39
|
+
const dir = path.join(workspaceRoot, relPath);
|
|
40
|
+
await fs.mkdir(dir, { recursive: true });
|
|
41
|
+
const pkgPath = path.join(dir, 'package.json');
|
|
42
|
+
const packageJson = { name, version: '1.0.0', dependencies: deps };
|
|
43
|
+
await fs.writeFile(pkgPath, JSON.stringify(packageJson, null, 2));
|
|
44
|
+
return { name, filePath: pkgPath, packageJson };
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
test('created symlink target is relative, not absolute', async () => {
|
|
48
|
+
const depPkg = await writePackage('packages/dep', '@scope/dep');
|
|
49
|
+
const consumerPkg = await writePackage('packages/consumer', '@scope/consumer', {
|
|
50
|
+
'@scope/dep': '^1.0.0',
|
|
51
|
+
});
|
|
52
|
+
const packageMap: LocalPackageMap = {
|
|
53
|
+
'@scope/dep': depPkg,
|
|
54
|
+
'@scope/consumer': consumerPkg,
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
await PackageUtil.symlinkDependencies(consumerPkg, packageMap);
|
|
58
|
+
|
|
59
|
+
const symlinkPath = path.join(workspaceRoot, 'packages/consumer/node_modules/@scope/dep');
|
|
60
|
+
const linkTarget = await fs.readlink(symlinkPath);
|
|
61
|
+
|
|
62
|
+
expect(path.isAbsolute(linkTarget)).toBe(false);
|
|
63
|
+
// From .../packages/consumer/node_modules/@scope up to .../packages, then down to dep.
|
|
64
|
+
expect(linkTarget).toBe(path.join('..', '..', '..', 'dep'));
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
test('symlink still resolves after the workspace is moved to a new root', async () => {
|
|
68
|
+
const depPkg = await writePackage('packages/dep', '@scope/dep');
|
|
69
|
+
const consumerPkg = await writePackage('packages/consumer', '@scope/consumer', {
|
|
70
|
+
'@scope/dep': '^1.0.0',
|
|
71
|
+
});
|
|
72
|
+
const packageMap: LocalPackageMap = {
|
|
73
|
+
'@scope/dep': depPkg,
|
|
74
|
+
'@scope/consumer': consumerPkg,
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
// Drop a marker file inside the dep package so we can verify the symlink
|
|
78
|
+
// resolves into it by path after the move.
|
|
79
|
+
const markerRelativePath = path.join('packages/consumer/node_modules/@scope/dep/marker.txt');
|
|
80
|
+
await fs.writeFile(path.join(workspaceRoot, 'packages/dep/marker.txt'), 'hello');
|
|
81
|
+
|
|
82
|
+
await PackageUtil.symlinkDependencies(consumerPkg, packageMap);
|
|
83
|
+
|
|
84
|
+
// Move the entire workspace to a new absolute path. If the symlink target
|
|
85
|
+
// were absolute (pointing at the old workspaceRoot), every resolution
|
|
86
|
+
// through it would now fail. With a relative target it continues to work.
|
|
87
|
+
const movedRoot = workspaceRoot + '-moved';
|
|
88
|
+
await fs.rename(workspaceRoot, movedRoot);
|
|
89
|
+
const prevRoot = workspaceRoot;
|
|
90
|
+
workspaceRoot = movedRoot; // redirect afterEach cleanup at the new location
|
|
91
|
+
|
|
92
|
+
const markerThroughSymlink = path.join(movedRoot, markerRelativePath);
|
|
93
|
+
const content = await fs.readFile(markerThroughSymlink, 'utf8');
|
|
94
|
+
expect(content).toBe('hello');
|
|
95
|
+
|
|
96
|
+
// Sanity check: confirm the old absolute path really is gone, so we know
|
|
97
|
+
// the move happened and we're not accidentally resolving through the
|
|
98
|
+
// original location via some leftover absolute link.
|
|
99
|
+
await expect(fs.stat(prevRoot)).rejects.toThrow();
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
test('replaces a pre-existing BROKEN symlink (prior run pointed at a now-missing path)', async () => {
|
|
103
|
+
// Regression test for the Fs.exists-vs-broken-symlink bug.
|
|
104
|
+
//
|
|
105
|
+
// `Fs.exists` is stat-backed: it follows symlinks and throws on a
|
|
106
|
+
// broken target, so broken symlinks read as "doesn't exist". If
|
|
107
|
+
// symlinkDependencies relied on Fs.exists alone to decide whether to
|
|
108
|
+
// pre-delete, a broken symlink from a prior run (e.g. a sandbox with
|
|
109
|
+
// a different mount point, a cross-machine checkout, a moved tree)
|
|
110
|
+
// would survive the pre-delete step and cause `ln -s` to fail with
|
|
111
|
+
// "File exists".
|
|
112
|
+
const depPkg = await writePackage('packages/dep', '@scope/dep');
|
|
113
|
+
const consumerPkg = await writePackage('packages/consumer', '@scope/consumer', {
|
|
114
|
+
'@scope/dep': '^1.0.0',
|
|
115
|
+
});
|
|
116
|
+
const packageMap: LocalPackageMap = {
|
|
117
|
+
'@scope/dep': depPkg,
|
|
118
|
+
'@scope/consumer': consumerPkg,
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
// Manually plant a broken symlink where the dep link would go,
|
|
122
|
+
// simulating the "ran symlink-workspace in a different environment
|
|
123
|
+
// earlier" state.
|
|
124
|
+
const symlinkDir = path.join(workspaceRoot, 'packages/consumer/node_modules/@scope');
|
|
125
|
+
await fs.mkdir(symlinkDir, { recursive: true });
|
|
126
|
+
const symlinkPath = path.join(symlinkDir, 'dep');
|
|
127
|
+
await fs.symlink('/nonexistent/absolute/path/that/cannot/resolve', symlinkPath);
|
|
128
|
+
|
|
129
|
+
// Confirm the broken state before we invoke symlinkDependencies.
|
|
130
|
+
await expect(fs.stat(symlinkPath)).rejects.toMatchObject({ code: 'ENOENT' });
|
|
131
|
+
// lstat succeeds because it doesn't follow the link.
|
|
132
|
+
const brokenStat = await fs.lstat(symlinkPath);
|
|
133
|
+
expect(brokenStat.isSymbolicLink()).toBe(true);
|
|
134
|
+
|
|
135
|
+
// This must NOT throw "File exists" — it should overwrite the broken link.
|
|
136
|
+
await PackageUtil.symlinkDependencies(consumerPkg, packageMap);
|
|
137
|
+
|
|
138
|
+
// Fresh symlink with a relative target.
|
|
139
|
+
const newTarget = await fs.readlink(symlinkPath);
|
|
140
|
+
expect(path.isAbsolute(newTarget)).toBe(false);
|
|
141
|
+
expect(newTarget).toBe(path.join('..', '..', '..', 'dep'));
|
|
142
|
+
|
|
143
|
+
// And it resolves — the dep directory exists.
|
|
144
|
+
const resolvedStat = await fs.stat(symlinkPath);
|
|
145
|
+
expect(resolvedStat.isDirectory()).toBe(true);
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
test('creates node_modules/.bin shims for deps that declare a `bin` field (object form)', async () => {
|
|
149
|
+
// Regression test for the missing-.bin-shim bug. `npm install`
|
|
150
|
+
// normally writes `node_modules/.bin/<name>` shims for every `bin` a
|
|
151
|
+
// dependency declares, and npm prepends `./node_modules/.bin` to PATH
|
|
152
|
+
// when running lifecycle scripts. If `symlink-workspace` doesn't
|
|
153
|
+
// create these shims itself, running `npm run watch` in a consumer
|
|
154
|
+
// package fails with `command not found` as soon as the shim from a
|
|
155
|
+
// prior `npm install` gets cleaned up (or the tree is freshly cloned).
|
|
156
|
+
const toolPkg = await writePackage('packages/tool', '@scope/tool');
|
|
157
|
+
// Populate a bin script in the tool's dist so the shim has something
|
|
158
|
+
// to resolve to.
|
|
159
|
+
const runBuildPath = path.join(workspaceRoot, 'packages/tool/dist/bin/run-build.js');
|
|
160
|
+
const runWatchPath = path.join(workspaceRoot, 'packages/tool/dist/bin/run-watch.js');
|
|
161
|
+
await fs.mkdir(path.dirname(runBuildPath), { recursive: true });
|
|
162
|
+
await fs.writeFile(runBuildPath, '#!/usr/bin/env node\nconsole.log("build");\n');
|
|
163
|
+
await fs.writeFile(runWatchPath, '#!/usr/bin/env node\nconsole.log("watch");\n');
|
|
164
|
+
// Re-write the tool's package.json with a `bin` entry.
|
|
165
|
+
toolPkg.packageJson.bin = {
|
|
166
|
+
'tool-build': 'dist/bin/run-build.js',
|
|
167
|
+
'tool-watch': 'dist/bin/run-watch.js',
|
|
168
|
+
};
|
|
169
|
+
await fs.writeFile(toolPkg.filePath, JSON.stringify(toolPkg.packageJson, null, 2));
|
|
170
|
+
|
|
171
|
+
const consumerPkg = await writePackage('packages/consumer', 'consumer', {
|
|
172
|
+
'@scope/tool': '^1.0.0',
|
|
173
|
+
});
|
|
174
|
+
const packageMap: LocalPackageMap = {
|
|
175
|
+
'@scope/tool': toolPkg,
|
|
176
|
+
consumer: consumerPkg,
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
await PackageUtil.symlinkDependencies(consumerPkg, packageMap);
|
|
180
|
+
|
|
181
|
+
const binDir = path.join(workspaceRoot, 'packages/consumer/node_modules/.bin');
|
|
182
|
+
const buildShim = path.join(binDir, 'tool-build');
|
|
183
|
+
const watchShim = path.join(binDir, 'tool-watch');
|
|
184
|
+
|
|
185
|
+
// Both shims exist as symlinks.
|
|
186
|
+
expect((await fs.lstat(buildShim)).isSymbolicLink()).toBe(true);
|
|
187
|
+
expect((await fs.lstat(watchShim)).isSymbolicLink()).toBe(true);
|
|
188
|
+
|
|
189
|
+
// Shim targets are relative.
|
|
190
|
+
const buildTarget = await fs.readlink(buildShim);
|
|
191
|
+
const watchTarget = await fs.readlink(watchShim);
|
|
192
|
+
expect(path.isAbsolute(buildTarget)).toBe(false);
|
|
193
|
+
expect(path.isAbsolute(watchTarget)).toBe(false);
|
|
194
|
+
|
|
195
|
+
// Shims resolve end-to-end — readFile through the shim returns the
|
|
196
|
+
// actual script contents, which means the whole chain
|
|
197
|
+
// (`.bin/name` → `../@scope/tool/dist/bin/...`) is intact.
|
|
198
|
+
const buildScript = await fs.readFile(buildShim, 'utf8');
|
|
199
|
+
const watchScript = await fs.readFile(watchShim, 'utf8');
|
|
200
|
+
expect(buildScript).toContain('console.log("build")');
|
|
201
|
+
expect(watchScript).toContain('console.log("watch")');
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
test('creates `.bin` shim for bin-as-string shorthand using the bare package name', async () => {
|
|
205
|
+
const toolPkg = await writePackage('packages/tool', '@scope/only-tool');
|
|
206
|
+
const onlyScriptPath = path.join(workspaceRoot, 'packages/tool/bin.js');
|
|
207
|
+
await fs.writeFile(onlyScriptPath, '#!/usr/bin/env node\nconsole.log("only");\n');
|
|
208
|
+
toolPkg.packageJson.bin = './bin.js';
|
|
209
|
+
await fs.writeFile(toolPkg.filePath, JSON.stringify(toolPkg.packageJson, null, 2));
|
|
210
|
+
|
|
211
|
+
const consumerPkg = await writePackage('packages/consumer', 'consumer', {
|
|
212
|
+
'@scope/only-tool': '^1.0.0',
|
|
213
|
+
});
|
|
214
|
+
const packageMap: LocalPackageMap = {
|
|
215
|
+
'@scope/only-tool': toolPkg,
|
|
216
|
+
consumer: consumerPkg,
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
await PackageUtil.symlinkDependencies(consumerPkg, packageMap);
|
|
220
|
+
|
|
221
|
+
// Bare name — scope stripped — just like npm.
|
|
222
|
+
const shim = path.join(workspaceRoot, 'packages/consumer/node_modules/.bin/only-tool');
|
|
223
|
+
expect((await fs.lstat(shim)).isSymbolicLink()).toBe(true);
|
|
224
|
+
const content = await fs.readFile(shim, 'utf8');
|
|
225
|
+
expect(content).toContain('console.log("only")');
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
test('handles scoped and unscoped dependencies uniformly', async () => {
|
|
229
|
+
const scopedDep = await writePackage('packages/scoped', '@scope/foo');
|
|
230
|
+
const unscopedDep = await writePackage('packages/unscoped', 'bar');
|
|
231
|
+
const consumerPkg = await writePackage('packages/consumer', 'consumer', {
|
|
232
|
+
'@scope/foo': '^1.0.0',
|
|
233
|
+
bar: '^1.0.0',
|
|
234
|
+
});
|
|
235
|
+
const packageMap: LocalPackageMap = {
|
|
236
|
+
'@scope/foo': scopedDep,
|
|
237
|
+
bar: unscopedDep,
|
|
238
|
+
consumer: consumerPkg,
|
|
239
|
+
};
|
|
240
|
+
|
|
241
|
+
await PackageUtil.symlinkDependencies(consumerPkg, packageMap);
|
|
242
|
+
|
|
243
|
+
const scopedLink = await fs.readlink(path.join(workspaceRoot, 'packages/consumer/node_modules/@scope/foo'));
|
|
244
|
+
const unscopedLink = await fs.readlink(path.join(workspaceRoot, 'packages/consumer/node_modules/bar'));
|
|
245
|
+
|
|
246
|
+
expect(path.isAbsolute(scopedLink)).toBe(false);
|
|
247
|
+
expect(path.isAbsolute(unscopedLink)).toBe(false);
|
|
248
|
+
|
|
249
|
+
// Scoped packages are nested one level deeper under node_modules/@scope,
|
|
250
|
+
// so the relative target has one extra `..`.
|
|
251
|
+
expect(scopedLink).toBe(path.join('..', '..', '..', 'scoped'));
|
|
252
|
+
expect(unscopedLink).toBe(path.join('..', '..', 'unscoped'));
|
|
253
|
+
});
|
|
254
|
+
});
|