@proteinjs/reflection-build 1.3.0 → 1.4.1
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/dist/src/build.js +6 -5
- package/dist/src/build.js.map +1 -1
- package/dist/src/codegen/writeGeneratedIndex.d.ts +8 -5
- package/dist/src/codegen/writeGeneratedIndex.js +35 -12
- package/dist/src/codegen/writeGeneratedIndex.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 +4 -5
- package/src/build.ts +13 -6
- package/src/codegen/writeGeneratedIndex.ts +42 -8
- package/test/examples/source-repository/a/dist/build.js +6 -5
- package/test/examples/source-repository/a/dist/build.js.map +1 -1
- package/test/examples/source-repository/a/dist/codegen/writeGeneratedIndex.d.ts +8 -5
- package/test/examples/source-repository/a/dist/codegen/writeGeneratedIndex.js +35 -12
- package/test/examples/source-repository/a/dist/codegen/writeGeneratedIndex.js.map +1 -1
- 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 +33 -38
- package/test/examples/source-repository/a/node_modules/.package-lock.json +59 -6
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/.eslintrc.js +20 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/.prettierignore +4 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/.prettierrc +8 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/CHANGELOG.md +58 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/index.d.ts +5 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/index.js +18 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/index.js.map +1 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/FlattenedSourceGraph.d.ts +19 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/FlattenedSourceGraph.js +555 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/FlattenedSourceGraph.js.map +1 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/Loadable.d.ts +3 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/Loadable.js +5 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/Loadable.js.map +1 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/SourceRepository.d.ts +45 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/SourceRepository.js +176 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/SourceRepository.js.map +1 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/SourceRepositoryFilter.d.ts +11 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/SourceRepositoryFilter.js +9 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/SourceRepositoryFilter.js.map +1 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/sourceGraphTypes.d.ts +13 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/sourceGraphTypes.js +19 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/sourceGraphTypes.js.map +1 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/types.d.ts +221 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/types.js +234 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/dist/src/types.js.map +1 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/index.ts +5 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/jest.config.js +9 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/package.json +42 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/src/FlattenedSourceGraph.ts +702 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/src/Loadable.ts +2 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/src/SourceRepository.ts +250 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/src/SourceRepositoryFilter.ts +15 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/src/sourceGraphTypes.ts +14 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/src/types.ts +236 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/tsconfig.json +19 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/types/@dagrejs/graphlib.d.ts +1 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/CHANGELOG.md +11 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/dist/src/PackageUtil.d.ts +4 -4
- package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/dist/src/PackageUtil.js +8 -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 +2 -2
- package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/src/PackageUtil.ts +4 -8
- package/test/examples/source-repository/a/node_modules/bindings/LICENSE.md +22 -0
- package/test/examples/source-repository/a/node_modules/bindings/README.md +98 -0
- package/test/examples/source-repository/a/node_modules/bindings/bindings.js +221 -0
- package/test/examples/source-repository/a/node_modules/bindings/package.json +28 -0
- package/test/examples/source-repository/a/node_modules/file-uri-to-path/.travis.yml +30 -0
- package/test/examples/source-repository/a/node_modules/file-uri-to-path/History.md +21 -0
- package/test/examples/source-repository/a/node_modules/file-uri-to-path/LICENSE +20 -0
- package/test/examples/source-repository/a/node_modules/file-uri-to-path/README.md +74 -0
- package/test/examples/source-repository/a/node_modules/file-uri-to-path/index.d.ts +2 -0
- package/test/examples/source-repository/a/node_modules/file-uri-to-path/index.js +66 -0
- package/test/examples/source-repository/a/node_modules/file-uri-to-path/package.json +32 -0
- package/test/examples/source-repository/a/node_modules/file-uri-to-path/test/test.js +24 -0
- package/test/examples/source-repository/a/node_modules/file-uri-to-path/test/tests.json +13 -0
- package/test/examples/source-repository/a/node_modules/fsevents/LICENSE +22 -0
- package/test/examples/source-repository/a/node_modules/fsevents/README.md +89 -0
- package/test/examples/source-repository/a/node_modules/fsevents/fsevents.d.ts +46 -0
- package/test/examples/source-repository/a/node_modules/fsevents/fsevents.js +83 -0
- package/test/examples/source-repository/a/node_modules/fsevents/fsevents.node +0 -0
- package/test/examples/source-repository/a/node_modules/fsevents/package.json +62 -0
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/.travis.yml +103 -0
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/ISSUE_TEMPLATE.md +8 -0
- package/{LICENSE → test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/LICENSE} +6 -5
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/Readme.md +78 -0
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/binding.gyp +21 -0
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/build/.target.mk +53 -0
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/build/Makefile +352 -0
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/build/Release/.deps/Release/.node.d +1 -0
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/build/Release/.deps/Release/obj.target/fse/fsevents.o.d.raw +75 -0
- 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 +6 -0
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/build/fse.target.mk +188 -0
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/build/gyp-mac-tool +772 -0
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/fsevents.cc +88 -0
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/fsevents.js +106 -0
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/install.js +13 -0
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/package.json +34 -0
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/src/async.cc +43 -0
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/src/constants.cc +110 -0
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/src/methods.cc +44 -0
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/src/storage.cc +27 -0
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/src/thread.cc +71 -0
- package/test/examples/source-repository/a/node_modules/nan/CHANGELOG.md +557 -0
- package/test/examples/source-repository/a/node_modules/nan/CMakeLists.txt +138 -0
- package/test/examples/source-repository/a/node_modules/nan/LICENSE.md +9 -0
- package/test/examples/source-repository/a/node_modules/nan/README.md +456 -0
- package/test/examples/source-repository/a/node_modules/nan/doc/asyncworker.md +146 -0
- package/test/examples/source-repository/a/node_modules/nan/doc/buffers.md +54 -0
- package/test/examples/source-repository/a/node_modules/nan/doc/callback.md +76 -0
- package/test/examples/source-repository/a/node_modules/nan/doc/converters.md +41 -0
- package/test/examples/source-repository/a/node_modules/nan/doc/errors.md +226 -0
- package/test/examples/source-repository/a/node_modules/nan/doc/json.md +62 -0
- package/test/examples/source-repository/a/node_modules/nan/doc/maybe_types.md +583 -0
- package/test/examples/source-repository/a/node_modules/nan/doc/methods.md +672 -0
- package/test/examples/source-repository/a/node_modules/nan/doc/new.md +147 -0
- package/test/examples/source-repository/a/node_modules/nan/doc/node_misc.md +123 -0
- package/test/examples/source-repository/a/node_modules/nan/doc/object_wrappers.md +263 -0
- package/test/examples/source-repository/a/node_modules/nan/doc/persistent.md +296 -0
- package/test/examples/source-repository/a/node_modules/nan/doc/scopes.md +73 -0
- package/test/examples/source-repository/a/node_modules/nan/doc/script.md +58 -0
- package/test/examples/source-repository/a/node_modules/nan/doc/string_bytes.md +62 -0
- package/test/examples/source-repository/a/node_modules/nan/doc/v8_internals.md +199 -0
- package/test/examples/source-repository/a/node_modules/nan/doc/v8_misc.md +85 -0
- package/test/examples/source-repository/a/node_modules/nan/include_dirs.js +1 -0
- package/test/examples/source-repository/a/node_modules/nan/nan.h +2958 -0
- package/test/examples/source-repository/a/node_modules/nan/nan_callbacks.h +92 -0
- package/test/examples/source-repository/a/node_modules/nan/nan_callbacks_12_inl.h +520 -0
- package/test/examples/source-repository/a/node_modules/nan/nan_callbacks_pre_12_inl.h +520 -0
- package/test/examples/source-repository/a/node_modules/nan/nan_converters.h +72 -0
- package/test/examples/source-repository/a/node_modules/nan/nan_converters_43_inl.h +68 -0
- package/test/examples/source-repository/a/node_modules/nan/nan_converters_pre_43_inl.h +42 -0
- package/test/examples/source-repository/a/node_modules/nan/nan_define_own_property_helper.h +29 -0
- package/test/examples/source-repository/a/node_modules/nan/nan_implementation_12_inl.h +430 -0
- package/test/examples/source-repository/a/node_modules/nan/nan_implementation_pre_12_inl.h +263 -0
- package/test/examples/source-repository/a/node_modules/nan/nan_json.h +166 -0
- package/test/examples/source-repository/a/node_modules/nan/nan_maybe_43_inl.h +356 -0
- package/test/examples/source-repository/a/node_modules/nan/nan_maybe_pre_43_inl.h +268 -0
- package/test/examples/source-repository/a/node_modules/nan/nan_new.h +340 -0
- package/test/examples/source-repository/a/node_modules/nan/nan_object_wrap.h +156 -0
- package/test/examples/source-repository/a/node_modules/nan/nan_persistent_12_inl.h +132 -0
- package/test/examples/source-repository/a/node_modules/nan/nan_persistent_pre_12_inl.h +242 -0
- package/test/examples/source-repository/a/node_modules/nan/nan_private.h +73 -0
- package/test/examples/source-repository/a/node_modules/nan/nan_scriptorigin.h +76 -0
- package/test/examples/source-repository/a/node_modules/nan/nan_string_bytes.h +305 -0
- package/test/examples/source-repository/a/node_modules/nan/nan_typedarray_contents.h +96 -0
- package/test/examples/source-repository/a/node_modules/nan/nan_weak.h +437 -0
- package/test/examples/source-repository/a/node_modules/nan/package.json +38 -0
- package/test/examples/source-repository/a/node_modules/nan/tools/1to2.js +412 -0
- package/test/examples/source-repository/a/node_modules/nan/tools/README.md +14 -0
- package/test/examples/source-repository/a/node_modules/nan/tools/package.json +19 -0
- package/test/examples/source-repository/a/package-lock.json +8 -8
- package/test/examples/source-repository/a/package.json +3 -3
- package/test/examples/source-repository/b/dist/build.js +6 -5
- package/test/examples/source-repository/b/dist/build.js.map +1 -1
- package/test/examples/source-repository/b/dist/codegen/writeGeneratedIndex.d.ts +8 -5
- package/test/examples/source-repository/b/dist/codegen/writeGeneratedIndex.js +35 -12
- package/test/examples/source-repository/b/dist/codegen/writeGeneratedIndex.js.map +1 -1
- 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 +11 -10
- package/test/examples/source-repository/b/node_modules/.package-lock.json +57 -4
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/.eslintrc.js +20 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/.prettierignore +4 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/.prettierrc +8 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/CHANGELOG.md +58 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/index.d.ts +5 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/index.js +18 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/index.js.map +1 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/FlattenedSourceGraph.d.ts +19 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/FlattenedSourceGraph.js +555 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/FlattenedSourceGraph.js.map +1 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/Loadable.d.ts +3 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/Loadable.js +5 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/Loadable.js.map +1 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/SourceRepository.d.ts +45 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/SourceRepository.js +176 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/SourceRepository.js.map +1 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/SourceRepositoryFilter.d.ts +11 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/SourceRepositoryFilter.js +9 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/SourceRepositoryFilter.js.map +1 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/sourceGraphTypes.d.ts +13 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/sourceGraphTypes.js +19 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/sourceGraphTypes.js.map +1 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/types.d.ts +221 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/types.js +234 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/dist/src/types.js.map +1 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/index.ts +5 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/jest.config.js +9 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/package.json +42 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/src/FlattenedSourceGraph.ts +702 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/src/Loadable.ts +2 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/src/SourceRepository.ts +250 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/src/SourceRepositoryFilter.ts +15 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/src/sourceGraphTypes.ts +14 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/src/types.ts +236 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/tsconfig.json +19 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/types/@dagrejs/graphlib.d.ts +1 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/CHANGELOG.md +11 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/src/PackageUtil.d.ts +4 -4
- package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/src/PackageUtil.js +8 -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 +2 -2
- package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/src/PackageUtil.ts +4 -8
- package/test/examples/source-repository/b/node_modules/bindings/LICENSE.md +22 -0
- package/test/examples/source-repository/b/node_modules/bindings/README.md +98 -0
- package/test/examples/source-repository/b/node_modules/bindings/bindings.js +221 -0
- package/test/examples/source-repository/b/node_modules/bindings/package.json +28 -0
- package/test/examples/source-repository/b/node_modules/file-uri-to-path/.travis.yml +30 -0
- package/test/examples/source-repository/b/node_modules/file-uri-to-path/History.md +21 -0
- package/test/examples/source-repository/b/node_modules/file-uri-to-path/LICENSE +20 -0
- package/test/examples/source-repository/b/node_modules/file-uri-to-path/README.md +74 -0
- package/test/examples/source-repository/b/node_modules/file-uri-to-path/index.d.ts +2 -0
- package/test/examples/source-repository/b/node_modules/file-uri-to-path/index.js +66 -0
- package/test/examples/source-repository/b/node_modules/file-uri-to-path/package.json +32 -0
- package/test/examples/source-repository/b/node_modules/file-uri-to-path/test/test.js +24 -0
- package/test/examples/source-repository/b/node_modules/file-uri-to-path/test/tests.json +13 -0
- package/test/examples/source-repository/b/node_modules/fsevents/LICENSE +22 -0
- package/test/examples/source-repository/b/node_modules/fsevents/README.md +89 -0
- package/test/examples/source-repository/b/node_modules/fsevents/fsevents.d.ts +46 -0
- package/test/examples/source-repository/b/node_modules/fsevents/fsevents.js +83 -0
- package/test/examples/source-repository/b/node_modules/fsevents/fsevents.node +0 -0
- package/test/examples/source-repository/b/node_modules/fsevents/package.json +62 -0
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/.travis.yml +103 -0
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/ISSUE_TEMPLATE.md +8 -0
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/LICENSE +22 -0
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/Readme.md +78 -0
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/binding.gyp +21 -0
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/build/.target.mk +53 -0
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/build/Makefile +352 -0
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/build/Release/.deps/Release/.node.d +1 -0
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/build/Release/.deps/Release/obj.target/fse/fsevents.o.d.raw +75 -0
- 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 +6 -0
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/build/fse.target.mk +188 -0
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/build/gyp-mac-tool +772 -0
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/fsevents.cc +88 -0
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/fsevents.js +106 -0
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/install.js +13 -0
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/package.json +34 -0
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/src/async.cc +43 -0
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/src/constants.cc +110 -0
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/src/methods.cc +44 -0
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/src/storage.cc +27 -0
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/src/thread.cc +71 -0
- package/test/examples/source-repository/b/node_modules/nan/CHANGELOG.md +557 -0
- package/test/examples/source-repository/b/node_modules/nan/CMakeLists.txt +138 -0
- package/test/examples/source-repository/b/node_modules/nan/LICENSE.md +9 -0
- package/test/examples/source-repository/b/node_modules/nan/README.md +456 -0
- package/test/examples/source-repository/b/node_modules/nan/doc/asyncworker.md +146 -0
- package/test/examples/source-repository/b/node_modules/nan/doc/buffers.md +54 -0
- package/test/examples/source-repository/b/node_modules/nan/doc/callback.md +76 -0
- package/test/examples/source-repository/b/node_modules/nan/doc/converters.md +41 -0
- package/test/examples/source-repository/b/node_modules/nan/doc/errors.md +226 -0
- package/test/examples/source-repository/b/node_modules/nan/doc/json.md +62 -0
- package/test/examples/source-repository/b/node_modules/nan/doc/maybe_types.md +583 -0
- package/test/examples/source-repository/b/node_modules/nan/doc/methods.md +672 -0
- package/test/examples/source-repository/b/node_modules/nan/doc/new.md +147 -0
- package/test/examples/source-repository/b/node_modules/nan/doc/node_misc.md +123 -0
- package/test/examples/source-repository/b/node_modules/nan/doc/object_wrappers.md +263 -0
- package/test/examples/source-repository/b/node_modules/nan/doc/persistent.md +296 -0
- package/test/examples/source-repository/b/node_modules/nan/doc/scopes.md +73 -0
- package/test/examples/source-repository/b/node_modules/nan/doc/script.md +58 -0
- package/test/examples/source-repository/b/node_modules/nan/doc/string_bytes.md +62 -0
- package/test/examples/source-repository/b/node_modules/nan/doc/v8_internals.md +199 -0
- package/test/examples/source-repository/b/node_modules/nan/doc/v8_misc.md +85 -0
- package/test/examples/source-repository/b/node_modules/nan/include_dirs.js +1 -0
- package/test/examples/source-repository/b/node_modules/nan/nan.h +2958 -0
- package/test/examples/source-repository/b/node_modules/nan/nan_callbacks.h +92 -0
- package/test/examples/source-repository/b/node_modules/nan/nan_callbacks_12_inl.h +520 -0
- package/test/examples/source-repository/b/node_modules/nan/nan_callbacks_pre_12_inl.h +520 -0
- package/test/examples/source-repository/b/node_modules/nan/nan_converters.h +72 -0
- package/test/examples/source-repository/b/node_modules/nan/nan_converters_43_inl.h +68 -0
- package/test/examples/source-repository/b/node_modules/nan/nan_converters_pre_43_inl.h +42 -0
- package/test/examples/source-repository/b/node_modules/nan/nan_define_own_property_helper.h +29 -0
- package/test/examples/source-repository/b/node_modules/nan/nan_implementation_12_inl.h +430 -0
- package/test/examples/source-repository/b/node_modules/nan/nan_implementation_pre_12_inl.h +263 -0
- package/test/examples/source-repository/b/node_modules/nan/nan_json.h +166 -0
- package/test/examples/source-repository/b/node_modules/nan/nan_maybe_43_inl.h +356 -0
- package/test/examples/source-repository/b/node_modules/nan/nan_maybe_pre_43_inl.h +268 -0
- package/test/examples/source-repository/b/node_modules/nan/nan_new.h +340 -0
- package/test/examples/source-repository/b/node_modules/nan/nan_object_wrap.h +156 -0
- package/test/examples/source-repository/b/node_modules/nan/nan_persistent_12_inl.h +132 -0
- package/test/examples/source-repository/b/node_modules/nan/nan_persistent_pre_12_inl.h +242 -0
- package/test/examples/source-repository/b/node_modules/nan/nan_private.h +73 -0
- package/test/examples/source-repository/b/node_modules/nan/nan_scriptorigin.h +76 -0
- package/test/examples/source-repository/b/node_modules/nan/nan_string_bytes.h +305 -0
- package/test/examples/source-repository/b/node_modules/nan/nan_typedarray_contents.h +96 -0
- package/test/examples/source-repository/b/node_modules/nan/nan_weak.h +437 -0
- package/test/examples/source-repository/b/node_modules/nan/package.json +38 -0
- package/test/examples/source-repository/b/node_modules/nan/tools/1to2.js +412 -0
- package/test/examples/source-repository/b/node_modules/nan/tools/README.md +14 -0
- package/test/examples/source-repository/b/node_modules/nan/tools/package.json +19 -0
- package/test/examples/source-repository/b/package-lock.json +6 -6
- package/test/examples/source-repository/b/package.json +3 -3
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/*
|
|
2
|
+
** © 2014 by Philipp Dunkel <pip@pipobscure.com>
|
|
3
|
+
** Licensed under MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
#include "nan.h"
|
|
7
|
+
#include "uv.h"
|
|
8
|
+
#include "v8.h"
|
|
9
|
+
#include "CoreFoundation/CoreFoundation.h"
|
|
10
|
+
#include "CoreServices/CoreServices.h"
|
|
11
|
+
#include <iostream>
|
|
12
|
+
#include <vector>
|
|
13
|
+
|
|
14
|
+
#include "src/storage.cc"
|
|
15
|
+
namespace fse {
|
|
16
|
+
class FSEvents : public Nan::ObjectWrap {
|
|
17
|
+
public:
|
|
18
|
+
explicit FSEvents(const char *path);
|
|
19
|
+
~FSEvents();
|
|
20
|
+
|
|
21
|
+
uv_mutex_t mutex;
|
|
22
|
+
|
|
23
|
+
// async.cc
|
|
24
|
+
uv_async_t async;
|
|
25
|
+
void asyncStart();
|
|
26
|
+
void asyncTrigger();
|
|
27
|
+
void asyncStop();
|
|
28
|
+
|
|
29
|
+
// thread.cc
|
|
30
|
+
uv_thread_t thread;
|
|
31
|
+
CFRunLoopRef threadloop;
|
|
32
|
+
void threadStart();
|
|
33
|
+
static void threadRun(void *ctx);
|
|
34
|
+
void threadStop();
|
|
35
|
+
|
|
36
|
+
// methods.cc - internal
|
|
37
|
+
Nan::AsyncResource async_resource;
|
|
38
|
+
void emitEvent(const char *path, UInt32 flags, UInt64 id);
|
|
39
|
+
|
|
40
|
+
// Common
|
|
41
|
+
CFArrayRef paths;
|
|
42
|
+
std::vector<fse_event*> events;
|
|
43
|
+
static void Initialize(v8::Local<v8::Object> exports);
|
|
44
|
+
|
|
45
|
+
// methods.cc - exposed
|
|
46
|
+
static NAN_METHOD(New);
|
|
47
|
+
static NAN_METHOD(Stop);
|
|
48
|
+
static NAN_METHOD(Start);
|
|
49
|
+
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
using namespace fse;
|
|
54
|
+
|
|
55
|
+
FSEvents::FSEvents(const char *path)
|
|
56
|
+
: async_resource("fsevents:FSEvents") {
|
|
57
|
+
CFStringRef dirs[] = { CFStringCreateWithCString(NULL, path, kCFStringEncodingUTF8) };
|
|
58
|
+
paths = CFArrayCreate(NULL, (const void **)&dirs, 1, NULL);
|
|
59
|
+
threadloop = NULL;
|
|
60
|
+
if (uv_mutex_init(&mutex)) abort();
|
|
61
|
+
}
|
|
62
|
+
FSEvents::~FSEvents() {
|
|
63
|
+
CFRelease(paths);
|
|
64
|
+
uv_mutex_destroy(&mutex);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
#ifndef kFSEventStreamEventFlagItemCreated
|
|
68
|
+
#define kFSEventStreamEventFlagItemCreated 0x00000010
|
|
69
|
+
#endif
|
|
70
|
+
|
|
71
|
+
#include "src/async.cc"
|
|
72
|
+
#include "src/thread.cc"
|
|
73
|
+
#include "src/constants.cc"
|
|
74
|
+
#include "src/methods.cc"
|
|
75
|
+
|
|
76
|
+
void FSEvents::Initialize(v8::Local<v8::Object> exports) {
|
|
77
|
+
v8::Isolate* isolate = exports->GetIsolate();
|
|
78
|
+
v8::Local<v8::Context> context = isolate->GetCurrentContext();
|
|
79
|
+
v8::Local<v8::FunctionTemplate> tpl = Nan::New<v8::FunctionTemplate>(FSEvents::New);
|
|
80
|
+
tpl->SetClassName(Nan::New<v8::String>("FSEvents").ToLocalChecked());
|
|
81
|
+
tpl->InstanceTemplate()->SetInternalFieldCount(1);
|
|
82
|
+
Nan::SetPrototypeTemplate(tpl, "start", Nan::New<v8::FunctionTemplate>(FSEvents::Start));
|
|
83
|
+
Nan::SetPrototypeTemplate(tpl, "stop", Nan::New<v8::FunctionTemplate>(FSEvents::Stop));
|
|
84
|
+
Nan::Set(exports, Nan::New<v8::String>("Constants").ToLocalChecked(), Constants());
|
|
85
|
+
Nan::Set(exports, Nan::New<v8::String>("FSEvents").ToLocalChecked(), tpl->GetFunction(context).ToLocalChecked());
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
NODE_MODULE(fse, FSEvents::Initialize)
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/*
|
|
2
|
+
** © 2014 by Philipp Dunkel <pip@pipobscure.com>
|
|
3
|
+
** Licensed under MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/* jshint node:true */
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
if (process.platform !== 'darwin')
|
|
10
|
+
throw new Error('Module \'fsevents\' is not compatible with platform \'' + process.platform + '\'');
|
|
11
|
+
|
|
12
|
+
var Native = require("bindings")("fse");
|
|
13
|
+
|
|
14
|
+
var EventEmitter = require('events').EventEmitter;
|
|
15
|
+
var fs = require('fs');
|
|
16
|
+
var inherits = require('util').inherits;
|
|
17
|
+
|
|
18
|
+
function FSEvents(path, handler) {
|
|
19
|
+
EventEmitter.call(this);
|
|
20
|
+
|
|
21
|
+
Object.defineProperty(this, '_impl', {
|
|
22
|
+
value: new Native.FSEvents(String(path || ''), handler),
|
|
23
|
+
enumerable: false,
|
|
24
|
+
writable: false
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
inherits(FSEvents, EventEmitter);
|
|
29
|
+
proxies(FSEvents, Native.FSEvents);
|
|
30
|
+
|
|
31
|
+
module.exports = watch;
|
|
32
|
+
module.exports.getInfo = getInfo;
|
|
33
|
+
module.exports.FSEvents = Native.FSEvents;
|
|
34
|
+
module.exports.Constants = Native.Constants;
|
|
35
|
+
|
|
36
|
+
var defer = global.setImmediate || process.nextTick;
|
|
37
|
+
|
|
38
|
+
function watch(path) {
|
|
39
|
+
var fse = new FSEvents(String(path || ''), handler);
|
|
40
|
+
EventEmitter.call(fse);
|
|
41
|
+
return fse;
|
|
42
|
+
|
|
43
|
+
function handler(path, flags, id) {
|
|
44
|
+
defer(function() {
|
|
45
|
+
fse.emit('fsevent', path, flags, id);
|
|
46
|
+
var info = getInfo(path, flags);
|
|
47
|
+
info.id = id;
|
|
48
|
+
if (info.event === 'moved') {
|
|
49
|
+
fs.stat(info.path, function(err, stat) {
|
|
50
|
+
info.event = (err || !stat) ? 'moved-out' : 'moved-in';
|
|
51
|
+
fse.emit('change', path, info);
|
|
52
|
+
fse.emit(info.event, path, info);
|
|
53
|
+
});
|
|
54
|
+
} else {
|
|
55
|
+
fse.emit('change', path, info);
|
|
56
|
+
fse.emit(info.event, path, info);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function proxies(ctor, target) {
|
|
63
|
+
Object.keys(target.prototype).filter(function(key) {
|
|
64
|
+
return typeof target.prototype[key] === 'function';
|
|
65
|
+
}).forEach(function(key) {
|
|
66
|
+
ctor.prototype[key] = function() {
|
|
67
|
+
this._impl[key].apply(this._impl, arguments);
|
|
68
|
+
return this;
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function getFileType(flags) {
|
|
74
|
+
if (Native.Constants.kFSEventStreamEventFlagItemIsFile & flags) return 'file';
|
|
75
|
+
if (Native.Constants.kFSEventStreamEventFlagItemIsDir & flags) return 'directory';
|
|
76
|
+
if (Native.Constants.kFSEventStreamEventFlagItemIsSymlink & flags) return 'symlink';
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function getEventType(flags) {
|
|
80
|
+
if (Native.Constants.kFSEventStreamEventFlagItemRemoved & flags) return 'deleted';
|
|
81
|
+
if (Native.Constants.kFSEventStreamEventFlagItemRenamed & flags) return 'moved';
|
|
82
|
+
if (Native.Constants.kFSEventStreamEventFlagItemCreated & flags) return 'created';
|
|
83
|
+
if (Native.Constants.kFSEventStreamEventFlagItemModified & flags) return 'modified';
|
|
84
|
+
if (Native.Constants.kFSEventStreamEventFlagRootChanged & flags) return 'root-changed';
|
|
85
|
+
|
|
86
|
+
return 'unknown';
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function getFileChanges(flags) {
|
|
90
|
+
return {
|
|
91
|
+
inode: !! (Native.Constants.kFSEventStreamEventFlagItemInodeMetaMod & flags),
|
|
92
|
+
finder: !! (Native.Constants.kFSEventStreamEventFlagItemFinderInfoMod & flags),
|
|
93
|
+
access: !! (Native.Constants.kFSEventStreamEventFlagItemChangeOwner & flags),
|
|
94
|
+
xattrs: !! (Native.Constants.kFSEventStreamEventFlagItemXattrMod & flags)
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
function getInfo(path, flags) {
|
|
99
|
+
return {
|
|
100
|
+
path: path,
|
|
101
|
+
event: getEventType(flags),
|
|
102
|
+
type: getFileType(flags),
|
|
103
|
+
changes: getFileChanges(flags),
|
|
104
|
+
flags: flags
|
|
105
|
+
};
|
|
106
|
+
}
|
package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/install.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const { spawn } = require('child_process');
|
|
2
|
+
|
|
3
|
+
const rebuildIfDarwin = () => {
|
|
4
|
+
if (process.platform !== 'darwin') {
|
|
5
|
+
console.log();
|
|
6
|
+
console.log(`Skipping 'fsevents' build as platform ${process.platform} is not supported`);
|
|
7
|
+
process.exit(0);
|
|
8
|
+
} else {
|
|
9
|
+
spawn('node-gyp', ['rebuild'], { stdio: 'inherit' });
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
rebuildIfDarwin();
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "fsevents",
|
|
3
|
+
"version": "1.2.13",
|
|
4
|
+
"description": "Native Access to Mac OS-X FSEvents",
|
|
5
|
+
"main": "fsevents.js",
|
|
6
|
+
"dependencies": {
|
|
7
|
+
"bindings": "^1.5.0",
|
|
8
|
+
"nan": "^2.12.1"
|
|
9
|
+
},
|
|
10
|
+
"os": [
|
|
11
|
+
"darwin"
|
|
12
|
+
],
|
|
13
|
+
"engines": {
|
|
14
|
+
"node": ">= 4.0"
|
|
15
|
+
},
|
|
16
|
+
"scripts": {
|
|
17
|
+
"test": "node ./test/fsevents.js && node ./test/function.js 2> /dev/null",
|
|
18
|
+
"install": "node install.js"
|
|
19
|
+
},
|
|
20
|
+
"repository": {
|
|
21
|
+
"type": "git",
|
|
22
|
+
"url": "https://github.com/strongloop/fsevents.git"
|
|
23
|
+
},
|
|
24
|
+
"keywords": [
|
|
25
|
+
"fsevents",
|
|
26
|
+
"mac"
|
|
27
|
+
],
|
|
28
|
+
"author": "Philipp Dunkel <pip@pipobscure.com>",
|
|
29
|
+
"license": "MIT",
|
|
30
|
+
"bugs": {
|
|
31
|
+
"url": "https://github.com/strongloop/fsevents/issues"
|
|
32
|
+
},
|
|
33
|
+
"homepage": "https://github.com/strongloop/fsevents"
|
|
34
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/*
|
|
2
|
+
** © 2014 by Philipp Dunkel <pip@pipobscure.com>
|
|
3
|
+
** Licensed under MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
void async_propagate(uv_async_t *async) {
|
|
8
|
+
if (!async->data) return;
|
|
9
|
+
FSEvents *fse = (FSEvents *)async->data;
|
|
10
|
+
CFIndex idx, cnt;
|
|
11
|
+
fse_event *event;
|
|
12
|
+
char pathbuf[1024];
|
|
13
|
+
const char *pathptr = NULL;
|
|
14
|
+
uv_mutex_lock(&fse->mutex);
|
|
15
|
+
cnt = fse->events.size();
|
|
16
|
+
for (idx=0; idx<cnt; idx++) {
|
|
17
|
+
event = fse->events.at(idx);
|
|
18
|
+
if (event == NULL) continue;
|
|
19
|
+
pathptr = CFStringGetCStringPtr(event->path, kCFStringEncodingUTF8);
|
|
20
|
+
if (!pathptr) CFStringGetCString(event->path, pathbuf, 1024, kCFStringEncodingUTF8);
|
|
21
|
+
fse->emitEvent(pathptr ? pathptr : pathbuf, event->flags, event->id);
|
|
22
|
+
delete event;
|
|
23
|
+
}
|
|
24
|
+
if (cnt>0) fse->events.clear();
|
|
25
|
+
uv_mutex_unlock(&fse->mutex);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
void FSEvents::asyncStart() {
|
|
29
|
+
if (async.data == this) return;
|
|
30
|
+
async.data = this;
|
|
31
|
+
uv_async_init(uv_default_loop(), &async, (uv_async_cb) async_propagate);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
void FSEvents::asyncTrigger() {
|
|
35
|
+
if (async.data != this) return;
|
|
36
|
+
uv_async_send(&async);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
void FSEvents::asyncStop() {
|
|
40
|
+
if (async.data != this) return;
|
|
41
|
+
async.data = NULL;
|
|
42
|
+
uv_close((uv_handle_t *) &async, NULL);
|
|
43
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/*
|
|
2
|
+
** © 2014 by Philipp Dunkel <pip@pipobscure.com>
|
|
3
|
+
** Licensed under MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
// constants from https://developer.apple.com/library/mac/documentation/Darwin/Reference/FSEvents_Ref/index.html#//apple_ref/doc/constant_group/FSEventStreamEventFlags
|
|
7
|
+
#ifndef kFSEventStreamEventFlagNone
|
|
8
|
+
#define kFSEventStreamEventFlagNone 0x00000000
|
|
9
|
+
#endif
|
|
10
|
+
|
|
11
|
+
#ifndef kFSEventStreamEventFlagMustScanSubDirs
|
|
12
|
+
#define kFSEventStreamEventFlagMustScanSubDirs 0x00000001
|
|
13
|
+
#endif
|
|
14
|
+
|
|
15
|
+
#ifndef kFSEventStreamEventFlagUserDropped
|
|
16
|
+
#define kFSEventStreamEventFlagUserDropped 0x00000002
|
|
17
|
+
#endif
|
|
18
|
+
|
|
19
|
+
#ifndef kFSEventStreamEventFlagKernelDropped
|
|
20
|
+
#define kFSEventStreamEventFlagKernelDropped 0x00000004
|
|
21
|
+
#endif
|
|
22
|
+
|
|
23
|
+
#ifndef kFSEventStreamEventFlagEventIdsWrapped
|
|
24
|
+
#define kFSEventStreamEventFlagEventIdsWrapped 0x00000008
|
|
25
|
+
#endif
|
|
26
|
+
|
|
27
|
+
#ifndef kFSEventStreamEventFlagHistoryDone
|
|
28
|
+
#define kFSEventStreamEventFlagHistoryDone 0x00000010
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
#ifndef kFSEventStreamEventFlagRootChanged
|
|
32
|
+
#define kFSEventStreamEventFlagRootChanged 0x00000020
|
|
33
|
+
#endif
|
|
34
|
+
|
|
35
|
+
#ifndef kFSEventStreamEventFlagMount
|
|
36
|
+
#define kFSEventStreamEventFlagMount 0x00000040
|
|
37
|
+
#endif
|
|
38
|
+
|
|
39
|
+
#ifndef kFSEventStreamEventFlagUnmount
|
|
40
|
+
#define kFSEventStreamEventFlagUnmount 0x00000080
|
|
41
|
+
#endif
|
|
42
|
+
|
|
43
|
+
#ifndef kFSEventStreamEventFlagItemCreated
|
|
44
|
+
#define kFSEventStreamEventFlagItemCreated 0x00000100
|
|
45
|
+
#endif
|
|
46
|
+
|
|
47
|
+
#ifndef kFSEventStreamEventFlagItemRemoved
|
|
48
|
+
#define kFSEventStreamEventFlagItemRemoved 0x00000200
|
|
49
|
+
#endif
|
|
50
|
+
|
|
51
|
+
#ifndef kFSEventStreamEventFlagItemInodeMetaMod
|
|
52
|
+
#define kFSEventStreamEventFlagItemInodeMetaMod 0x00000400
|
|
53
|
+
#endif
|
|
54
|
+
|
|
55
|
+
#ifndef kFSEventStreamEventFlagItemRenamed
|
|
56
|
+
#define kFSEventStreamEventFlagItemRenamed 0x00000800
|
|
57
|
+
#endif
|
|
58
|
+
|
|
59
|
+
#ifndef kFSEventStreamEventFlagItemModified
|
|
60
|
+
#define kFSEventStreamEventFlagItemModified 0x00001000
|
|
61
|
+
#endif
|
|
62
|
+
|
|
63
|
+
#ifndef kFSEventStreamEventFlagItemFinderInfoMod
|
|
64
|
+
#define kFSEventStreamEventFlagItemFinderInfoMod 0x00002000
|
|
65
|
+
#endif
|
|
66
|
+
|
|
67
|
+
#ifndef kFSEventStreamEventFlagItemChangeOwner
|
|
68
|
+
#define kFSEventStreamEventFlagItemChangeOwner 0x00004000
|
|
69
|
+
#endif
|
|
70
|
+
|
|
71
|
+
#ifndef kFSEventStreamEventFlagItemXattrMod
|
|
72
|
+
#define kFSEventStreamEventFlagItemXattrMod 0x00008000
|
|
73
|
+
#endif
|
|
74
|
+
|
|
75
|
+
#ifndef kFSEventStreamEventFlagItemIsFile
|
|
76
|
+
#define kFSEventStreamEventFlagItemIsFile 0x00010000
|
|
77
|
+
#endif
|
|
78
|
+
|
|
79
|
+
#ifndef kFSEventStreamEventFlagItemIsDir
|
|
80
|
+
#define kFSEventStreamEventFlagItemIsDir 0x00020000
|
|
81
|
+
#endif
|
|
82
|
+
|
|
83
|
+
#ifndef kFSEventStreamEventFlagItemIsSymlink
|
|
84
|
+
#define kFSEventStreamEventFlagItemIsSymlink 0x00040000
|
|
85
|
+
#endif
|
|
86
|
+
|
|
87
|
+
static v8::Local<v8::Object> Constants() {
|
|
88
|
+
v8::Local<v8::Object> object = Nan::New<v8::Object>();
|
|
89
|
+
Nan::Set(object, Nan::New<v8::String>("kFSEventStreamEventFlagNone").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagNone));
|
|
90
|
+
Nan::Set(object, Nan::New<v8::String>("kFSEventStreamEventFlagMustScanSubDirs").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagMustScanSubDirs));
|
|
91
|
+
Nan::Set(object, Nan::New<v8::String>("kFSEventStreamEventFlagUserDropped").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagUserDropped));
|
|
92
|
+
Nan::Set(object, Nan::New<v8::String>("kFSEventStreamEventFlagKernelDropped").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagKernelDropped));
|
|
93
|
+
Nan::Set(object, Nan::New<v8::String>("kFSEventStreamEventFlagEventIdsWrapped").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagEventIdsWrapped));
|
|
94
|
+
Nan::Set(object, Nan::New<v8::String>("kFSEventStreamEventFlagHistoryDone").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagHistoryDone));
|
|
95
|
+
Nan::Set(object, Nan::New<v8::String>("kFSEventStreamEventFlagRootChanged").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagRootChanged));
|
|
96
|
+
Nan::Set(object, Nan::New<v8::String>("kFSEventStreamEventFlagMount").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagMount));
|
|
97
|
+
Nan::Set(object, Nan::New<v8::String>("kFSEventStreamEventFlagUnmount").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagUnmount));
|
|
98
|
+
Nan::Set(object, Nan::New<v8::String>("kFSEventStreamEventFlagItemCreated").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagItemCreated));
|
|
99
|
+
Nan::Set(object, Nan::New<v8::String>("kFSEventStreamEventFlagItemRemoved").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagItemRemoved));
|
|
100
|
+
Nan::Set(object, Nan::New<v8::String>("kFSEventStreamEventFlagItemInodeMetaMod").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagItemInodeMetaMod));
|
|
101
|
+
Nan::Set(object, Nan::New<v8::String>("kFSEventStreamEventFlagItemRenamed").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagItemRenamed));
|
|
102
|
+
Nan::Set(object, Nan::New<v8::String>("kFSEventStreamEventFlagItemModified").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagItemModified));
|
|
103
|
+
Nan::Set(object, Nan::New<v8::String>("kFSEventStreamEventFlagItemFinderInfoMod").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagItemFinderInfoMod));
|
|
104
|
+
Nan::Set(object, Nan::New<v8::String>("kFSEventStreamEventFlagItemChangeOwner").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagItemChangeOwner));
|
|
105
|
+
Nan::Set(object, Nan::New<v8::String>("kFSEventStreamEventFlagItemXattrMod").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagItemXattrMod));
|
|
106
|
+
Nan::Set(object, Nan::New<v8::String>("kFSEventStreamEventFlagItemIsFile").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagItemIsFile));
|
|
107
|
+
Nan::Set(object, Nan::New<v8::String>("kFSEventStreamEventFlagItemIsDir").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagItemIsDir));
|
|
108
|
+
Nan::Set(object, Nan::New<v8::String>("kFSEventStreamEventFlagItemIsSymlink").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagItemIsSymlink));
|
|
109
|
+
return object;
|
|
110
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/*
|
|
2
|
+
** © 2014 by Philipp Dunkel <pip@pipobscure.com>
|
|
3
|
+
** Licensed under MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
void FSEvents::emitEvent(const char *path, UInt32 flags, UInt64 id) {
|
|
7
|
+
Nan::HandleScope handle_scope;
|
|
8
|
+
v8::Local<v8::Object> object = handle();
|
|
9
|
+
v8::Local<v8::Value> key = Nan::New<v8::String>("handler").ToLocalChecked();
|
|
10
|
+
Nan::Callback handler(Nan::To<v8::Function>(Nan::Get(object, key).ToLocalChecked()).ToLocalChecked());
|
|
11
|
+
v8::Local<v8::Value> argv[] = {
|
|
12
|
+
Nan::New<v8::String>(path).ToLocalChecked(),
|
|
13
|
+
Nan::New<v8::Number>(flags),
|
|
14
|
+
Nan::New<v8::Number>(id)
|
|
15
|
+
};
|
|
16
|
+
handler.Call(3, argv, &async_resource);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
NAN_METHOD(FSEvents::New) {
|
|
20
|
+
Nan::Utf8String path(info[0]);
|
|
21
|
+
|
|
22
|
+
FSEvents *fse = new FSEvents(*path);
|
|
23
|
+
fse->Wrap(info.This());
|
|
24
|
+
Nan::Set(info.This(), Nan::New<v8::String>("handler").ToLocalChecked(), info[1]);
|
|
25
|
+
|
|
26
|
+
info.GetReturnValue().Set(info.This());
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
NAN_METHOD(FSEvents::Stop) {
|
|
30
|
+
FSEvents* fse = Nan::ObjectWrap::Unwrap<FSEvents>(info.This());
|
|
31
|
+
|
|
32
|
+
fse->threadStop();
|
|
33
|
+
fse->asyncStop();
|
|
34
|
+
|
|
35
|
+
info.GetReturnValue().Set(info.This());
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
NAN_METHOD(FSEvents::Start) {
|
|
39
|
+
FSEvents* fse = Nan::ObjectWrap::Unwrap<FSEvents>(info.This());
|
|
40
|
+
fse->asyncStart();
|
|
41
|
+
fse->threadStart();
|
|
42
|
+
|
|
43
|
+
info.GetReturnValue().Set(info.This());
|
|
44
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*
|
|
2
|
+
** © 2014 by Philipp Dunkel <pip@pipobscure.com>
|
|
3
|
+
** Licensed under MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
struct fse_event {
|
|
7
|
+
UInt64 id;
|
|
8
|
+
UInt32 flags;
|
|
9
|
+
CFStringRef path;
|
|
10
|
+
|
|
11
|
+
fse_event(CFStringRef eventPath, UInt32 eventFlag, UInt64 eventId) {
|
|
12
|
+
this->path = eventPath;
|
|
13
|
+
this->flags = eventFlag;
|
|
14
|
+
this->id = eventId;
|
|
15
|
+
if (this->path != NULL)
|
|
16
|
+
CFRetain(this->path);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
~fse_event() {
|
|
20
|
+
if (this->path != NULL)
|
|
21
|
+
CFRelease(this->path);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
private:
|
|
25
|
+
fse_event(const fse_event&);
|
|
26
|
+
void operator=(const fse_event&);
|
|
27
|
+
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/*
|
|
2
|
+
** © 2014 by Philipp Dunkel <pip@pipobscure.com>
|
|
3
|
+
** Licensed under MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
// constants from https://developer.apple.com/library/mac/documentation/Darwin/Reference/FSEvents_Ref/index.html#//apple_ref/doc/constant_group/FSEventStreamCreateFlags
|
|
7
|
+
#ifndef kFSEventStreamCreateFlagNone
|
|
8
|
+
#define kFSEventStreamCreateFlagNone 0x00000000
|
|
9
|
+
#endif
|
|
10
|
+
|
|
11
|
+
#ifndef kFSEventStreamCreateFlagUseCFTypes
|
|
12
|
+
#define kFSEventStreamCreateFlagUseCFTypes 0x00000001
|
|
13
|
+
#endif
|
|
14
|
+
|
|
15
|
+
#ifndef kFSEventStreamCreateFlagNoDefer
|
|
16
|
+
#define kFSEventStreamCreateFlagNoDefer 0x00000002
|
|
17
|
+
#endif
|
|
18
|
+
|
|
19
|
+
#ifndef kFSEventStreamCreateFlagWatchRoot
|
|
20
|
+
#define kFSEventStreamCreateFlagWatchRoot 0x00000004
|
|
21
|
+
#endif
|
|
22
|
+
|
|
23
|
+
#ifndef kFSEventStreamCreateFlagIgnoreSelf
|
|
24
|
+
#define kFSEventStreamCreateFlagIgnoreSelf 0x00000008
|
|
25
|
+
#endif
|
|
26
|
+
|
|
27
|
+
#ifndef kFSEventStreamCreateFlagFileEvents
|
|
28
|
+
#define kFSEventStreamCreateFlagFileEvents 0x00000010
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
void FSEvents::threadStart() {
|
|
32
|
+
if (threadloop) return;
|
|
33
|
+
if (uv_thread_create(&thread, &FSEvents::threadRun, this)) abort();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
void HandleStreamEvents(ConstFSEventStreamRef stream, void *ctx, size_t numEvents, void *eventPaths, const FSEventStreamEventFlags eventFlags[], const FSEventStreamEventId eventIds[]) {
|
|
37
|
+
FSEvents * fse = (FSEvents *)ctx;
|
|
38
|
+
size_t idx;
|
|
39
|
+
uv_mutex_lock(&fse->mutex);
|
|
40
|
+
for (idx=0; idx < numEvents; idx++) {
|
|
41
|
+
fse_event *event = new fse_event(
|
|
42
|
+
(CFStringRef)CFArrayGetValueAtIndex((CFArrayRef)eventPaths, idx),
|
|
43
|
+
eventFlags[idx],
|
|
44
|
+
eventIds[idx]
|
|
45
|
+
);
|
|
46
|
+
fse->events.push_back(event);
|
|
47
|
+
}
|
|
48
|
+
fse->asyncTrigger();
|
|
49
|
+
uv_mutex_unlock(&fse->mutex);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
void FSEvents::threadRun(void *ctx) {
|
|
53
|
+
FSEvents *fse = (FSEvents*)ctx;
|
|
54
|
+
FSEventStreamContext context = { 0, ctx, NULL, NULL, NULL };
|
|
55
|
+
fse->threadloop = CFRunLoopGetCurrent();
|
|
56
|
+
FSEventStreamRef stream = FSEventStreamCreate(NULL, &HandleStreamEvents, &context, fse->paths, kFSEventStreamEventIdSinceNow, (CFAbsoluteTime) 0.1, kFSEventStreamCreateFlagNone | kFSEventStreamCreateFlagWatchRoot | kFSEventStreamCreateFlagFileEvents | kFSEventStreamCreateFlagUseCFTypes);
|
|
57
|
+
FSEventStreamScheduleWithRunLoop(stream, fse->threadloop, kCFRunLoopDefaultMode);
|
|
58
|
+
FSEventStreamStart(stream);
|
|
59
|
+
CFRunLoopRun();
|
|
60
|
+
FSEventStreamStop(stream);
|
|
61
|
+
FSEventStreamUnscheduleFromRunLoop(stream, fse->threadloop, kCFRunLoopDefaultMode);
|
|
62
|
+
FSEventStreamInvalidate(stream);
|
|
63
|
+
FSEventStreamRelease(stream);
|
|
64
|
+
fse->threadloop = NULL;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
void FSEvents::threadStop() {
|
|
68
|
+
if (!threadloop) return;
|
|
69
|
+
CFRunLoopStop(threadloop);
|
|
70
|
+
if (uv_thread_join(&thread)) abort();
|
|
71
|
+
}
|