@adviser/cement 0.4.7 → 0.4.8
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/base-basic-sys-abstraction.test.d.ts +2 -0
- package/base-basic-sys-abstraction.test.d.ts.map +1 -0
- package/base-basic-sys-abstraction.test.js +88 -0
- package/base-basic-sys-abstraction.test.js.map +1 -0
- package/{base-sys-abstraction-h0dB3nZ5.d.ts → base-sys-abstraction.d.ts} +23 -22
- package/base-sys-abstraction.d.ts.map +1 -0
- package/base-sys-abstraction.js +193 -0
- package/base-sys-abstraction.js.map +1 -0
- package/bin2text.d.ts +3 -0
- package/bin2text.d.ts.map +1 -0
- package/bin2text.js +43 -0
- package/bin2text.js.map +1 -0
- package/bin2text.test.d.ts +2 -0
- package/bin2text.test.d.ts.map +1 -0
- package/bin2text.test.js +51 -0
- package/bin2text.test.js.map +1 -0
- package/cf/cf-basic-sys-abstraction.d.ts +14 -0
- package/cf/cf-basic-sys-abstraction.d.ts.map +1 -0
- package/cf/cf-basic-sys-abstraction.js +67 -0
- package/cf/cf-basic-sys-abstraction.js.map +1 -0
- package/cf/cf-env-actions.d.ts +16 -0
- package/cf/cf-env-actions.d.ts.map +1 -0
- package/cf/cf-env-actions.js +53 -0
- package/cf/cf-env-actions.js.map +1 -0
- package/cf/index.d.ts +3 -30
- package/cf/index.d.ts.map +1 -0
- package/cf/index.js +2 -11
- package/cf/index.js.map +1 -1
- package/cf-test-main.d.ts +5 -0
- package/cf-test-main.d.ts.map +1 -0
- package/cf-test-main.js +12 -0
- package/cf-test-main.js.map +1 -0
- package/coerce-binary.d.ts +6 -0
- package/coerce-binary.d.ts.map +1 -0
- package/coerce-binary.js +32 -0
- package/coerce-binary.js.map +1 -0
- package/coerce-binary.test.d.ts +2 -0
- package/coerce-binary.test.d.ts.map +1 -0
- package/coerce-binary.test.js +39 -0
- package/coerce-binary.test.js.map +1 -0
- package/crypto.d.ts +76 -0
- package/crypto.d.ts.map +1 -0
- package/crypto.js +22 -0
- package/crypto.js.map +1 -0
- package/crypto.test.d.ts +2 -0
- package/crypto.test.d.ts.map +1 -0
- package/crypto.test.js +21 -0
- package/crypto.test.js.map +1 -0
- package/deno/deno-basic-sys-abstraction.d.ts +14 -0
- package/deno/deno-basic-sys-abstraction.d.ts.map +1 -0
- package/deno/deno-basic-sys-abstraction.js +35 -0
- package/deno/deno-basic-sys-abstraction.js.map +1 -0
- package/deno/deno-env-actions.d.ts +23 -0
- package/deno/deno-env-actions.d.ts.map +1 -0
- package/deno/deno-env-actions.js +40 -0
- package/deno/deno-env-actions.js.map +1 -0
- package/deno/deno-file-service.d.ts +17 -0
- package/deno/deno-file-service.d.ts.map +1 -0
- package/deno/deno-file-service.js +67 -0
- package/deno/deno-file-service.js.map +1 -0
- package/deno/deno-sys-abstraction.d.ts +19 -0
- package/deno/deno-sys-abstraction.d.ts.map +1 -0
- package/deno/deno-sys-abstraction.js +96 -0
- package/deno/deno-sys-abstraction.js.map +1 -0
- package/deno/index.d.ts +3 -37
- package/deno/index.d.ts.map +1 -0
- package/deno/index.js +2 -179
- package/deno/index.js.map +1 -1
- package/file-service.d.ts +17 -0
- package/file-service.d.ts.map +1 -0
- package/file-service.js +2 -0
- package/file-service.js.map +1 -0
- package/future.d.ts +8 -0
- package/future.d.ts.map +1 -0
- package/future.js +25 -0
- package/future.js.map +1 -0
- package/future.test.d.ts +2 -0
- package/future.test.d.ts.map +1 -0
- package/future.test.js +32 -0
- package/future.test.js.map +1 -0
- package/http_header.d.ts +29 -0
- package/http_header.d.ts.map +1 -0
- package/http_header.js +157 -0
- package/http_header.js.map +1 -0
- package/http_header.test.d.ts +2 -0
- package/http_header.test.d.ts.map +1 -0
- package/http_header.test.js +96 -0
- package/http_header.test.js.map +1 -0
- package/index.d.ts +29 -396
- package/index.d.ts.map +1 -0
- package/index.js +28 -609
- package/index.js.map +1 -1
- package/is-promise.d.ts +4 -0
- package/is-promise.d.ts.map +1 -0
- package/is-promise.js +10 -0
- package/is-promise.js.map +1 -0
- package/is-promise.test.d.ts +2 -0
- package/is-promise.test.d.ts.map +1 -0
- package/is-promise.test.js +48 -0
- package/is-promise.test.js.map +1 -0
- package/json-en-decoder.d.ts +12 -0
- package/json-en-decoder.d.ts.map +1 -0
- package/json-en-decoder.js +42 -0
- package/json-en-decoder.js.map +1 -0
- package/json-en-decoder.test.d.ts +2 -0
- package/json-en-decoder.test.d.ts.map +1 -0
- package/json-en-decoder.test.js +18 -0
- package/json-en-decoder.test.js.map +1 -0
- package/log-level-impl.d.ts +17 -0
- package/log-level-impl.d.ts.map +1 -0
- package/log-level-impl.js +75 -0
- package/log-level-impl.js.map +1 -0
- package/log-writer-impl.d.ts +11 -0
- package/log-writer-impl.d.ts.map +1 -0
- package/log-writer-impl.js +52 -0
- package/log-writer-impl.js.map +1 -0
- package/logger-impl.d.ts +75 -0
- package/logger-impl.d.ts.map +1 -0
- package/logger-impl.js +505 -0
- package/logger-impl.js.map +1 -0
- package/logger.d.ts +97 -0
- package/logger.d.ts.map +1 -0
- package/logger.js +150 -0
- package/logger.js.map +1 -0
- package/logger.test.d.ts +2 -0
- package/logger.test.d.ts.map +1 -0
- package/logger.test.js +1577 -0
- package/logger.test.js.map +1 -0
- package/lru-map-set.d.ts +33 -0
- package/lru-map-set.d.ts.map +1 -0
- package/lru-map-set.js +116 -0
- package/lru-map-set.js.map +1 -0
- package/lru-map-set.test.d.ts +2 -0
- package/lru-map-set.test.d.ts.map +1 -0
- package/lru-map-set.test.js +81 -0
- package/lru-map-set.test.js.map +1 -0
- package/node/index.d.ts +4 -45
- package/node/index.d.ts.map +1 -0
- package/node/index.js +3 -222
- package/node/index.js.map +1 -1
- package/node/mock-file-service.d.ts +11 -0
- package/node/mock-file-service.d.ts.map +1 -0
- package/node/mock-file-service.js +31 -0
- package/node/mock-file-service.js.map +1 -0
- package/node/mock-file-service.test.d.ts +2 -0
- package/node/mock-file-service.test.d.ts.map +1 -0
- package/node/mock-file-service.test.js +31 -0
- package/node/mock-file-service.test.js.map +1 -0
- package/node/node-basic-sys-abstraction.d.ts +25 -0
- package/node/node-basic-sys-abstraction.d.ts.map +1 -0
- package/node/node-basic-sys-abstraction.js +45 -0
- package/node/node-basic-sys-abstraction.js.map +1 -0
- package/node/node-env-actions.d.ts +15 -0
- package/node/node-env-actions.d.ts.map +1 -0
- package/node/node-env-actions.js +38 -0
- package/node/node-env-actions.js.map +1 -0
- package/node/node-file-service.d.ts +16 -0
- package/node/node-file-service.d.ts.map +1 -0
- package/node/node-file-service.js +72 -0
- package/node/node-file-service.js.map +1 -0
- package/node/node-sys-abstraction.d.ts +19 -0
- package/node/node-sys-abstraction.d.ts.map +1 -0
- package/node/node-sys-abstraction.js +95 -0
- package/node/node-sys-abstraction.js.map +1 -0
- package/node/node-sys-abstraction.test.d.ts +2 -0
- package/node/node-sys-abstraction.test.d.ts.map +1 -0
- package/node/node-sys-abstraction.test.js +83 -0
- package/node/node-sys-abstraction.test.js.map +1 -0
- package/option.d.ts +26 -0
- package/option.d.ts.map +1 -0
- package/option.js +54 -0
- package/option.js.map +1 -0
- package/package.json +4 -10
- package/path-ops.d.ts +7 -0
- package/path-ops.d.ts.map +1 -0
- package/path-ops.js +35 -0
- package/path-ops.js.map +1 -0
- package/path-ops.test.d.ts +2 -0
- package/path-ops.test.d.ts.map +1 -0
- package/path-ops.test.js +39 -0
- package/path-ops.test.js.map +1 -0
- package/resolve-once.d.ts +59 -0
- package/resolve-once.d.ts.map +1 -0
- package/resolve-once.js +212 -0
- package/resolve-once.js.map +1 -0
- package/resolve-once.test.d.ts +2 -0
- package/resolve-once.test.d.ts.map +1 -0
- package/resolve-once.test.js +392 -0
- package/resolve-once.test.js.map +1 -0
- package/result.d.ts +34 -0
- package/result.d.ts.map +1 -0
- package/result.js +94 -0
- package/result.js.map +1 -0
- package/result.test.d.ts +2 -0
- package/result.test.d.ts.map +1 -0
- package/result.test.js +83 -0
- package/result.test.js.map +1 -0
- package/runtime.d.ts +9 -0
- package/runtime.d.ts.map +1 -0
- package/runtime.js +33 -0
- package/runtime.js.map +1 -0
- package/src/jsr.json +1 -1
- package/src/uri.ts +62 -37
- package/sys-abstraction.d.ts +43 -0
- package/sys-abstraction.d.ts.map +1 -0
- package/sys-abstraction.js +28 -0
- package/sys-abstraction.js.map +1 -0
- package/sys-env.d.ts +46 -0
- package/sys-env.d.ts.map +1 -0
- package/sys-env.js +161 -0
- package/sys-env.js.map +1 -0
- package/sys-env.test.d.ts +2 -0
- package/sys-env.test.d.ts.map +1 -0
- package/sys-env.test.js +170 -0
- package/sys-env.test.js.map +1 -0
- package/test/index.d.ts +3 -4
- package/test/index.d.ts.map +1 -0
- package/test/index.js +2 -13
- package/test/index.js.map +1 -1
- package/test/log-write-stream.d.ts +27 -0
- package/test/log-write-stream.d.ts.map +1 -0
- package/test/log-write-stream.js +78 -0
- package/test/log-write-stream.js.map +1 -0
- package/test/mock-logger.d.ts +14 -0
- package/test/mock-logger.d.ts.map +1 -0
- package/test/mock-logger.js +29 -0
- package/test/mock-logger.js.map +1 -0
- package/test/mock-logger.test.d.ts +2 -0
- package/test/mock-logger.test.d.ts.map +1 -0
- package/test/mock-logger.test.js +63 -0
- package/test/mock-logger.test.js.map +1 -0
- package/test/test-exit-handler.d.ts +2 -0
- package/test/test-exit-handler.d.ts.map +1 -0
- package/test/test-exit-handler.js +61 -0
- package/test/test-exit-handler.js.map +1 -0
- package/time.d.ts +14 -0
- package/time.d.ts.map +1 -0
- package/time.js +13 -0
- package/time.js.map +1 -0
- package/tracer.d.ts +59 -0
- package/tracer.d.ts.map +1 -0
- package/tracer.js +174 -0
- package/tracer.js.map +1 -0
- package/tracer.test.d.ts +2 -0
- package/tracer.test.d.ts.map +1 -0
- package/tracer.test.js +304 -0
- package/tracer.test.js.map +1 -0
- package/ts/smoke/smoke.js +1 -1
- package/ts/smoke/smoke.js.map +1 -1
- package/ts/src/base-sys-abstraction.js +20 -8
- package/ts/src/base-sys-abstraction.js.map +1 -1
- package/ts/src/cf/cf-basic-sys-abstraction.js +3 -3
- package/ts/src/cf/cf-basic-sys-abstraction.js.map +1 -1
- package/ts/src/cf/cf-env-actions.js +3 -1
- package/ts/src/cf/cf-env-actions.js.map +1 -1
- package/ts/src/coerce-binary.js +1 -1
- package/ts/src/coerce-binary.js.map +1 -1
- package/ts/src/deno/deno-basic-sys-abstraction.js +3 -3
- package/ts/src/deno/deno-basic-sys-abstraction.js.map +1 -1
- package/ts/src/deno/deno-env-actions.js +3 -9
- package/ts/src/deno/deno-env-actions.js.map +1 -1
- package/ts/src/deno/deno-file-service.js +2 -0
- package/ts/src/deno/deno-file-service.js.map +1 -1
- package/ts/src/deno/deno-sys-abstraction.js +21 -21
- package/ts/src/deno/deno-sys-abstraction.js.map +1 -1
- package/ts/src/future.js +13 -26
- package/ts/src/future.js.map +1 -1
- package/ts/src/http_header.js +2 -3
- package/ts/src/http_header.js.map +1 -1
- package/ts/src/json-en-decoder.js +3 -2
- package/ts/src/json-en-decoder.js.map +1 -1
- package/ts/src/log-level-impl.js +4 -6
- package/ts/src/log-level-impl.js.map +1 -1
- package/ts/src/log-writer-impl.js +9 -5
- package/ts/src/log-writer-impl.js.map +1 -1
- package/ts/src/logger-impl.js +15 -5
- package/ts/src/logger-impl.js.map +1 -1
- package/ts/src/logger.js +3 -3
- package/ts/src/logger.js.map +1 -1
- package/ts/src/logger.test.js +7 -19
- package/ts/src/logger.test.js.map +1 -1
- package/ts/src/lru-map-set.js +3 -1
- package/ts/src/lru-map-set.js.map +1 -1
- package/ts/src/node/mock-file-service.js +1 -4
- package/ts/src/node/mock-file-service.js.map +1 -1
- package/ts/src/node/node-basic-sys-abstraction.js +4 -3
- package/ts/src/node/node-basic-sys-abstraction.js.map +1 -1
- package/ts/src/node/node-env-actions.js +3 -9
- package/ts/src/node/node-env-actions.js.map +1 -1
- package/ts/src/node/node-file-service.js +1 -0
- package/ts/src/node/node-file-service.js.map +1 -1
- package/ts/src/node/node-sys-abstraction.js +21 -21
- package/ts/src/node/node-sys-abstraction.js.map +1 -1
- package/ts/src/option.js +1 -0
- package/ts/src/option.js.map +1 -1
- package/ts/src/path-ops.js +21 -30
- package/ts/src/path-ops.js.map +1 -1
- package/ts/src/resolve-once.js +17 -13
- package/ts/src/resolve-once.js.map +1 -1
- package/ts/src/result.js +2 -0
- package/ts/src/result.js.map +1 -1
- package/ts/src/sys-abstraction.js +1 -1
- package/ts/src/sys-abstraction.js.map +1 -1
- package/ts/src/sys-env.js +2 -1
- package/ts/src/sys-env.js.map +1 -1
- package/ts/src/sys-env.test.js +6 -19
- package/ts/src/sys-env.test.js.map +1 -1
- package/ts/src/test/log-write-stream.js +10 -6
- package/ts/src/test/log-write-stream.js.map +1 -1
- package/ts/src/test/mock-logger.js +6 -6
- package/ts/src/test/mock-logger.js.map +1 -1
- package/ts/src/test/test-exit-handler.js +1 -2
- package/ts/src/test/test-exit-handler.js.map +1 -1
- package/ts/src/tracer.js +10 -3
- package/ts/src/tracer.js.map +1 -1
- package/ts/src/tracer.test.js +5 -9
- package/ts/src/tracer.test.js.map +1 -1
- package/ts/src/txt-en-decoder.js +2 -4
- package/ts/src/txt-en-decoder.js.map +1 -1
- package/ts/src/types.js +2 -6
- package/ts/src/types.js.map +1 -1
- package/ts/src/uri.d.ts +4 -0
- package/ts/src/uri.d.ts.map +1 -1
- package/ts/src/uri.js +54 -34
- package/ts/src/uri.js.map +1 -1
- package/ts/src/uri.test.js +27 -0
- package/ts/src/uri.test.js.map +1 -1
- package/ts/src/utils/console-write-stream.js +8 -5
- package/ts/src/utils/console-write-stream.js.map +1 -1
- package/ts/src/utils/fanout-write-stream.js +4 -1
- package/ts/src/utils/fanout-write-stream.js.map +1 -1
- package/ts/src/utils/rebuffer.test.js +1 -1
- package/ts/src/utils/rebuffer.test.js.map +1 -1
- package/ts/src/utils/relative-path.js +1 -0
- package/ts/src/utils/relative-path.js.map +1 -1
- package/ts/src/utils/stream-map.test.js +1 -1
- package/ts/src/utils/stream-map.test.js.map +1 -1
- package/ts/src/web/web-basic-sys-abstraction.js +3 -3
- package/ts/src/web/web-basic-sys-abstraction.js.map +1 -1
- package/ts/src/web/web-env-actions.js +2 -1
- package/ts/src/web/web-env-actions.js.map +1 -1
- package/txt-en-decoder.d.ts +11 -0
- package/txt-en-decoder.d.ts.map +1 -0
- package/txt-en-decoder.js +37 -0
- package/txt-en-decoder.js.map +1 -0
- package/txt-en-decoder.test.d.ts +2 -0
- package/txt-en-decoder.test.d.ts.map +1 -0
- package/txt-en-decoder.test.js +48 -0
- package/txt-en-decoder.test.js.map +1 -0
- package/types.d.ts +16 -0
- package/types.d.ts.map +1 -0
- package/types.js +11 -0
- package/types.js.map +1 -0
- package/uri.d.ts +137 -0
- package/uri.d.ts.map +1 -0
- package/uri.js +567 -0
- package/uri.js.map +1 -0
- package/uri.test.d.ts +2 -0
- package/uri.test.d.ts.map +1 -0
- package/uri.test.js +633 -0
- package/uri.test.js.map +1 -0
- package/utils/coerce-uint8.d.ts +8 -0
- package/utils/coerce-uint8.d.ts.map +1 -0
- package/utils/coerce-uint8.js +34 -0
- package/utils/coerce-uint8.js.map +1 -0
- package/utils/console-write-stream.d.ts +21 -0
- package/utils/console-write-stream.d.ts.map +1 -0
- package/utils/console-write-stream.js +66 -0
- package/utils/console-write-stream.js.map +1 -0
- package/utils/fanout-write-stream.d.ts +12 -0
- package/utils/fanout-write-stream.d.ts.map +1 -0
- package/utils/fanout-write-stream.js +27 -0
- package/utils/fanout-write-stream.js.map +1 -0
- package/utils/get-params-result.d.ts +8 -0
- package/utils/get-params-result.d.ts.map +1 -0
- package/utils/get-params-result.js +45 -0
- package/utils/get-params-result.js.map +1 -0
- package/utils/index.d.ts +12 -3
- package/utils/index.d.ts.map +1 -0
- package/utils/index.js +11 -50
- package/utils/index.js.map +1 -1
- package/utils/rebuffer.d.ts +3 -0
- package/utils/rebuffer.d.ts.map +1 -0
- package/utils/rebuffer.js +66 -0
- package/utils/rebuffer.js.map +1 -0
- package/utils/rebuffer.test.d.ts +2 -0
- package/utils/rebuffer.test.d.ts.map +1 -0
- package/utils/rebuffer.test.js +77 -0
- package/utils/rebuffer.test.js.map +1 -0
- package/utils/relative-path.d.ts +18 -0
- package/utils/relative-path.d.ts.map +1 -0
- package/utils/relative-path.js +148 -0
- package/utils/relative-path.js.map +1 -0
- package/utils/relative-path.test.d.ts +2 -0
- package/utils/relative-path.test.d.ts.map +1 -0
- package/utils/relative-path.test.js +187 -0
- package/utils/relative-path.test.js.map +1 -0
- package/utils/sorted-objec.test.d.ts +2 -0
- package/utils/sorted-objec.test.d.ts.map +1 -0
- package/utils/sorted-objec.test.js +20 -0
- package/utils/sorted-objec.test.js.map +1 -0
- package/utils/sorted-object.d.ts +4 -0
- package/utils/sorted-object.d.ts.map +1 -0
- package/utils/sorted-object.js +16 -0
- package/utils/sorted-object.js.map +1 -0
- package/utils/stream-map.d.ts +9 -0
- package/utils/stream-map.d.ts.map +1 -0
- package/utils/stream-map.js +63 -0
- package/utils/stream-map.js.map +1 -0
- package/utils/stream-map.test.d.ts +2 -0
- package/utils/stream-map.test.d.ts.map +1 -0
- package/utils/stream-map.test.js +87 -0
- package/utils/stream-map.test.js.map +1 -0
- package/utils/stream-test-helper.d.ts +17 -0
- package/utils/stream-test-helper.d.ts.map +1 -0
- package/utils/stream-test-helper.js +45 -0
- package/utils/stream-test-helper.js.map +1 -0
- package/utils/stream2string.d.ts +3 -0
- package/utils/stream2string.d.ts.map +1 -0
- package/utils/stream2string.js +48 -0
- package/utils/stream2string.js.map +1 -0
- package/utils/stream2string.test.d.ts +2 -0
- package/utils/stream2string.test.d.ts.map +1 -0
- package/utils/stream2string.test.js +29 -0
- package/utils/stream2string.test.js.map +1 -0
- package/utils/string2stream.d.ts +4 -0
- package/utils/string2stream.d.ts.map +1 -0
- package/utils/string2stream.js +13 -0
- package/utils/string2stream.js.map +1 -0
- package/utils/string2stream.test.d.ts +2 -0
- package/utils/string2stream.test.d.ts.map +1 -0
- package/utils/string2stream.test.js +6 -0
- package/utils/string2stream.test.js.map +1 -0
- package/utils/stripper.d.ts +3 -0
- package/utils/stripper.d.ts.map +1 -0
- package/utils/stripper.js +59 -0
- package/utils/stripper.js.map +1 -0
- package/utils/stripper.test.d.ts +2 -0
- package/utils/stripper.test.d.ts.map +1 -0
- package/utils/stripper.test.js +128 -0
- package/utils/stripper.test.js.map +1 -0
- package/utils/uint8array-equal.d.ts +2 -0
- package/utils/uint8array-equal.d.ts.map +1 -0
- package/utils/uint8array-equal.js +12 -0
- package/utils/uint8array-equal.js.map +1 -0
- package/version.d.ts +2 -0
- package/version.d.ts.map +1 -0
- package/version.js +4 -0
- package/version.js.map +1 -0
- package/web/index.d.ts +2 -7
- package/web/index.d.ts.map +1 -0
- package/web/index.js +1 -7
- package/web/index.js.map +1 -1
- package/web/web-basic-sys-abstraction.d.ts +4 -0
- package/web/web-basic-sys-abstraction.d.ts.map +1 -0
- package/web/web-basic-sys-abstraction.js +45 -0
- package/web/web-basic-sys-abstraction.js.map +1 -0
- package/web/web-env-actions.d.ts +14 -0
- package/web/web-env-actions.d.ts.map +1 -0
- package/web/web-env-actions.js +36 -0
- package/web/web-env-actions.js.map +1 -0
- package/base-sys-abstraction-DgTynXGV.d.cts +0 -95
- package/cf/index.cjs +0 -1110
- package/cf/index.cjs.map +0 -1
- package/cf/index.d.cts +0 -30
- package/chunk-2DWEYXJH.js +0 -1681
- package/chunk-2DWEYXJH.js.map +0 -1
- package/chunk-FOALXQST.js +0 -89
- package/chunk-FOALXQST.js.map +0 -1
- package/chunk-FURW5CDL.js +0 -792
- package/chunk-FURW5CDL.js.map +0 -1
- package/chunk-NJMNJYN2.js +0 -270
- package/chunk-NJMNJYN2.js.map +0 -1
- package/chunk-NTOGMD33.js +0 -684
- package/chunk-NTOGMD33.js.map +0 -1
- package/deno/index.cjs +0 -1280
- package/deno/index.cjs.map +0 -1
- package/deno/index.d.cts +0 -37
- package/get-params-result-4xHM5s4_.d.cts +0 -71
- package/get-params-result-4xHM5s4_.d.ts +0 -71
- package/index-CMLb7JSe.d.ts +0 -97
- package/index-DH243CLH.d.cts +0 -297
- package/index-LQOsS7gM.d.cts +0 -97
- package/index-RMC1sv15.d.ts +0 -297
- package/index.cjs +0 -4009
- package/index.cjs.map +0 -1
- package/index.d.cts +0 -396
- package/metafile-cjs.json +0 -1
- package/metafile-esm.json +0 -1
- package/node/index.cjs +0 -1335
- package/node/index.cjs.map +0 -1
- package/node/index.d.cts +0 -45
- package/stripper-BpBUUZ9p.d.cts +0 -4
- package/stripper-BpBUUZ9p.d.ts +0 -4
- package/sys-abstraction-CeAxxg9H.d.ts +0 -117
- package/sys-abstraction-DDAwGTnk.d.cts +0 -117
- package/test/index.cjs +0 -2994
- package/test/index.cjs.map +0 -1
- package/test/index.d.cts +0 -4
- package/utils/index.cjs +0 -778
- package/utils/index.cjs.map +0 -1
- package/utils/index.d.cts +0 -3
- package/web/index.cjs +0 -1153
- package/web/index.cjs.map +0 -1
- package/web/index.d.cts +0 -7
package/node/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/node/node-file-service.ts","../../../src/node/node-sys-abstraction.ts","../../../src/node/mock-file-service.ts"],"sourcesContent":["import path from \"node:path\";\nimport fs from \"node:fs\";\nimport process from \"node:process\";\nimport { FileService, NamedWritableStream } from \"../file-service.js\";\nimport { TxtEnDecoder, TxtEnDecoderSingleton } from \"../txt-en-decoder.js\";\n\nexport class NodeFileService implements FileService {\n readonly baseDir: string;\n constructor(baseDir: string = process.cwd()) {\n this.baseDir = this.abs(baseDir);\n }\n\n // nodeImport(fname: string): string {\n // // console.log('nodeImport:'+ fname);\n // if (path.isAbsolute(fname)) {\n // return fname;\n // } else {\n // return \"./\" + path.normalize(fname);\n // }\n // }\n\n readFileString(fname: string): Promise<string> {\n return fs.promises.readFile(fname, { encoding: \"utf-8\" });\n }\n\n dirname(fname: string): string {\n return path.dirname(fname);\n }\n basename(fname: string): string {\n return path.basename(fname);\n }\n\n join(...paths: string[]): string {\n return path.join(...paths);\n }\n\n relative(from: string, to?: string): string {\n if (to === undefined) {\n to = from;\n from = process.cwd();\n }\n const ret = path.relative(from, to);\n // console.log('relative:'+ from + \" -> \" + to + \"= \" + ret);\n return ret;\n }\n\n abs(fname: string): string {\n if (path.isAbsolute(fname)) {\n return fname;\n } else {\n const cwd = process.cwd();\n return path.resolve(cwd, fname);\n }\n }\n\n isAbsolute(fname: string): boolean {\n return path.isAbsolute(fname);\n }\n\n async writeFileString(fname: string, content: string, ende: TxtEnDecoder = TxtEnDecoderSingleton()): Promise<void> {\n const o = await this.create(fname);\n const wr = o.stream.getWriter();\n await wr.write(ende.encode(content));\n await wr.close();\n }\n\n async create(fname: string): Promise<NamedWritableStream> {\n let oName = fname;\n if (!path.isAbsolute(fname)) {\n oName = this.abs(fname);\n }\n\n const base = path.dirname(oName);\n await fs.promises.mkdir(base, { recursive: true });\n const out = fs.createWriteStream(oName);\n return {\n name: oName,\n stream: new WritableStream<Uint8Array>({\n write(chunk): void {\n out.write(chunk);\n },\n close(): void {\n out.close();\n },\n abort(): void {\n throw new Error(\"not implemented\");\n },\n }),\n };\n }\n}\n","import { RuntimeSysAbstraction, SystemService, VoidFunc } from \"../sys-abstraction.js\";\nimport {\n BaseSysAbstraction,\n ExitHandler,\n ExitService,\n WrapperBasicSysAbstractionParams,\n WrapperRuntimeSysAbstraction,\n} from \"../base-sys-abstraction.js\";\nimport { NodeFileService } from \"./node-file-service.js\";\nimport { TxtEnDecoderSingleton } from \"../txt-en-decoder.js\";\nimport process from \"node:process\";\nimport { ResolveOnce } from \"../resolve-once.js\";\nimport { NodeBasicSysAbstraction } from \"./node-basic-sys-abstraction.js\";\n\nexport class NodeExitServiceImpl implements ExitService {\n constructor() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n process.on(\"unhandledRejection\", (reason: string, p: Promise<unknown>) => {\n this.exit(19);\n });\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n process.on(\"uncaughtException\", (error: Error) => {\n this.exit(18);\n });\n process.on(\"close\", () => {\n this.exit(0);\n });\n process.on(\"exit\", () => {\n this.exit(0);\n });\n process.on(\"SIGQUIT\", () => {\n this.exit(3);\n });\n process.on(\"SIGINT\", () => {\n this.exit(2);\n });\n process.on(\"SIGTERM\", () => {\n this.exit(9);\n });\n }\n _exitHandlers: ExitHandler[] = [];\n injectExitHandlers(hdls: ExitHandler[]): void {\n // console.log(\"ExitService: injecting exit handlers\", hdls)\n this._exitHandlers = hdls;\n }\n invoked = false;\n readonly _handleExit = async (): Promise<void> => {\n if (this.invoked) {\n // console.error(\"ExitService: already invoked\");\n return;\n }\n this.invoked = true;\n for (const h of this._exitHandlers) {\n try {\n // console.log(`ExitService: calling handler ${h.id}`)\n const ret = h.hdl();\n // console.log(`ExitService: called handler ${h.id}`, ret)\n if (typeof (ret as Promise<void>).then === \"function\") {\n await ret;\n }\n } finally {\n // ignore\n }\n }\n };\n\n exit(code: number): void {\n // console.log(\"ExitService: exit called\", code)\n this._handleExit()\n .then(() => {\n process.exit(code);\n })\n .catch((err) => {\n // eslint-disable-next-line no-console\n console.error(\"ExitService: failed to handle exit\", err);\n process.exit(code);\n });\n }\n}\n\nexport class NodeSystemService implements SystemService {\n static readonly _exitHandlers: ExitHandler[] = [];\n readonly _exitService: ExitService = new NodeExitServiceImpl();\n constructor() {\n this._exitService.injectExitHandlers(NodeSystemService._exitHandlers);\n }\n\n OnExit(hdl: VoidFunc): VoidFunc {\n const id = crypto.randomUUID();\n NodeSystemService._exitHandlers.push({ hdl, id });\n return () => {\n const idx = NodeSystemService._exitHandlers.findIndex((h) => h.id === id);\n if (idx >= 0) {\n NodeSystemService._exitHandlers.splice(idx, 1);\n }\n };\n }\n\n Exit(code: number): void {\n this._exitService.exit(code);\n }\n}\n\nconst baseSysAbstraction = new ResolveOnce<BaseSysAbstraction>();\nexport function NodeSysAbstraction(param?: WrapperBasicSysAbstractionParams): RuntimeSysAbstraction {\n const my = baseSysAbstraction.once(\n () =>\n new BaseSysAbstraction({\n TxtEnDecoder: param?.TxtEnDecoder || TxtEnDecoderSingleton(),\n FileSystem: new NodeFileService(),\n SystemService: new NodeSystemService(),\n }),\n );\n return new WrapperRuntimeSysAbstraction(my, {\n basicRuntimeService: NodeBasicSysAbstraction(param),\n ...param,\n });\n}\n","import { NamedWritableStream } from \"../file-service.js\";\nimport { NodeFileService } from \"./node-file-service.js\";\n\nexport interface FileCollector {\n readonly name: string;\n content: string;\n}\n\nexport class MockFileService extends NodeFileService {\n readonly files = {} as Record<string, FileCollector>;\n\n // override abs(fname: string): string {\n // return this.join(\"/mock/\", fname);\n // }\n\n override create(fname: string): Promise<NamedWritableStream> {\n let oName = fname;\n if (!this.isAbsolute(fname)) {\n oName = this.abs(fname);\n }\n\n const fc = {\n name: oName,\n content: \"\",\n };\n this.files[oName] = fc;\n this.files[fname] = fc;\n const decoder = new TextDecoder();\n\n return Promise.resolve({\n name: oName,\n stream: new WritableStream<Uint8Array>({\n write(chunk): void {\n fc.content = fc.content + decoder.decode(chunk);\n },\n close(): void {\n // do nothing\n },\n abort(): void {\n throw new Error(\"not implemented\");\n },\n }),\n });\n }\n}\n"],"mappings":"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","names":["process","process"]}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/node/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC"}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { NamedWritableStream } from "../file-service.js";
|
2
|
+
import { NodeFileService } from "./node-file-service.js";
|
3
|
+
export interface FileCollector {
|
4
|
+
readonly name: string;
|
5
|
+
content: string;
|
6
|
+
}
|
7
|
+
export declare class MockFileService extends NodeFileService {
|
8
|
+
readonly files: Record<string, FileCollector>;
|
9
|
+
create(fname: string): Promise<NamedWritableStream>;
|
10
|
+
}
|
11
|
+
//# sourceMappingURL=mock-file-service.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"mock-file-service.d.ts","sourceRoot":"","sources":["../../../../src/node/mock-file-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,eAAgB,SAAQ,eAAe;IAClD,QAAQ,CAAC,KAAK,EAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAM5C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;CA6B7D"}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import { NodeFileService } from "./node-file-service.js";
|
2
|
+
export class MockFileService extends NodeFileService {
|
3
|
+
files = {};
|
4
|
+
create(fname) {
|
5
|
+
let oName = fname;
|
6
|
+
if (!this.isAbsolute(fname)) {
|
7
|
+
oName = this.abs(fname);
|
8
|
+
}
|
9
|
+
const fc = {
|
10
|
+
name: oName,
|
11
|
+
content: "",
|
12
|
+
};
|
13
|
+
this.files[oName] = fc;
|
14
|
+
this.files[fname] = fc;
|
15
|
+
const decoder = new TextDecoder();
|
16
|
+
return Promise.resolve({
|
17
|
+
name: oName,
|
18
|
+
stream: new WritableStream({
|
19
|
+
write(chunk) {
|
20
|
+
fc.content = fc.content + decoder.decode(chunk);
|
21
|
+
},
|
22
|
+
close() {
|
23
|
+
},
|
24
|
+
abort() {
|
25
|
+
throw new Error("not implemented");
|
26
|
+
},
|
27
|
+
}),
|
28
|
+
});
|
29
|
+
}
|
30
|
+
}
|
31
|
+
//# sourceMappingURL=mock-file-service.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"mock-file-service.js","sourceRoot":"","sources":["../../../../src/node/mock-file-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAOzD,MAAM,OAAO,eAAgB,SAAQ,eAAe;IACzC,KAAK,GAAG,EAAmC,CAAC;IAM5C,MAAM,CAAC,KAAa;QAC3B,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,EAAE,GAAG;YACT,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,EAAE;SACZ,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAElC,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,IAAI,cAAc,CAAa;gBACrC,KAAK,CAAC,KAAK;oBACT,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAClD,CAAC;gBACD,KAAK;gBAEL,CAAC;gBACD,KAAK;oBACH,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBACrC,CAAC;aACF,CAAC;SACH,CAAC,CAAC;IACL,CAAC;CACF"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"mock-file-service.test.d.ts","sourceRoot":"","sources":["../../../../src/node/mock-file-service.test.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import { runtimeFn } from "@adviser/cement";
|
2
|
+
describe("MockFileService", () => {
|
3
|
+
if (runtimeFn().isNodeIsh || runtimeFn().isDeno) {
|
4
|
+
let MFS;
|
5
|
+
beforeAll(async () => {
|
6
|
+
const { MockFileService } = await import("./mock-file-service.js");
|
7
|
+
MFS = new MockFileService();
|
8
|
+
});
|
9
|
+
it("writeFileString", async () => {
|
10
|
+
const f = MFS;
|
11
|
+
const absFname = f.abs("test");
|
12
|
+
await f.writeFileString("test", "hello");
|
13
|
+
expect(f.files).toEqual({
|
14
|
+
[absFname]: {
|
15
|
+
content: "hello",
|
16
|
+
name: absFname,
|
17
|
+
},
|
18
|
+
test: {
|
19
|
+
name: absFname,
|
20
|
+
content: "hello",
|
21
|
+
},
|
22
|
+
});
|
23
|
+
});
|
24
|
+
}
|
25
|
+
else {
|
26
|
+
it.skip("nothing in browser", () => {
|
27
|
+
expect(1).toEqual(1);
|
28
|
+
});
|
29
|
+
}
|
30
|
+
});
|
31
|
+
//# sourceMappingURL=mock-file-service.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"mock-file-service.test.js","sourceRoot":"","sources":["../../../../src/node/mock-file-service.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAI,SAAS,EAAE,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC;QAChD,IAAI,GAAoB,CAAC;QACzB,SAAS,CAAC,KAAK,IAAI,EAAE;YACnB,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;YACnE,GAAG,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;YAC/B,MAAM,CAAC,GAAG,GAAG,CAAC;YACd,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/B,MAAM,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACzC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;gBACtB,CAAC,QAAQ,CAAC,EAAE;oBACV,OAAO,EAAE,OAAO;oBAChB,IAAI,EAAE,QAAQ;iBACf;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,OAAO;iBACjB;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;YACjC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import { WrapperBasicSysAbstractionParams } from "../base-sys-abstraction.js";
|
2
|
+
import { BasicRuntimeService, BasicSysAbstraction } from "../sys-abstraction.js";
|
3
|
+
import { Env } from "../sys-env.js";
|
4
|
+
import { TxtEnDecoder } from "../txt-en-decoder.js";
|
5
|
+
export declare class NodeRuntimeService implements BasicRuntimeService {
|
6
|
+
readonly _txtEnDe: TxtEnDecoder;
|
7
|
+
readonly _gthis: {
|
8
|
+
process: {
|
9
|
+
argv: string[];
|
10
|
+
stdout: {
|
11
|
+
write(chunk: Uint8Array): void;
|
12
|
+
};
|
13
|
+
stderr: {
|
14
|
+
write(chunk: Uint8Array): void;
|
15
|
+
};
|
16
|
+
};
|
17
|
+
};
|
18
|
+
constructor(ende: TxtEnDecoder);
|
19
|
+
Env(): Env;
|
20
|
+
Args(): string[];
|
21
|
+
Stdout(): WritableStream<Uint8Array>;
|
22
|
+
Stderr(): WritableStream<Uint8Array>;
|
23
|
+
}
|
24
|
+
export declare function NodeBasicSysAbstraction(param?: WrapperBasicSysAbstractionParams): BasicSysAbstraction;
|
25
|
+
//# sourceMappingURL=node-basic-sys-abstraction.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"node-basic-sys-abstraction.d.ts","sourceRoot":"","sources":["../../../../src/node/node-basic-sys-abstraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAEnI,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,GAAG,EAAc,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAyB,MAAM,sBAAsB,CAAC;AAE3E,qBAAa,kBAAmB,YAAW,mBAAmB;IAC5D,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE;QACf,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,EAAE,CAAC;YACf,MAAM,EAAE;gBACN,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;aAChC,CAAC;YACF,MAAM,EAAE;gBACN,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;aAChC,CAAC;SACH,CAAC;KACH,CAAC;gBACU,IAAI,EAAE,YAAY;IAI9B,GAAG,IAAI,GAAG;IAIV,IAAI,IAAI,MAAM,EAAE;IAIhB,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC;IAOpC,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC;CAOrC;AAGD,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,EAAE,gCAAgC,GAAG,mBAAmB,CAUrG"}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
import { BaseBasicSysAbstraction, WrapperBasicSysAbstraction } from "../base-sys-abstraction.js";
|
2
|
+
import { ResolveOnce } from "../resolve-once.js";
|
3
|
+
import { envFactory } from "../sys-env.js";
|
4
|
+
import { TxtEnDecoderSingleton } from "../txt-en-decoder.js";
|
5
|
+
export class NodeRuntimeService {
|
6
|
+
_txtEnDe;
|
7
|
+
_gthis;
|
8
|
+
constructor(ende) {
|
9
|
+
this._txtEnDe = ende;
|
10
|
+
this._gthis = globalThis;
|
11
|
+
}
|
12
|
+
Env() {
|
13
|
+
return envFactory();
|
14
|
+
}
|
15
|
+
Args() {
|
16
|
+
return this._gthis.process.argv;
|
17
|
+
}
|
18
|
+
Stdout() {
|
19
|
+
return new WritableStream({
|
20
|
+
write: (chunk) => {
|
21
|
+
this._gthis.process.stdout.write(chunk);
|
22
|
+
},
|
23
|
+
});
|
24
|
+
}
|
25
|
+
Stderr() {
|
26
|
+
return new WritableStream({
|
27
|
+
write: (chunk) => {
|
28
|
+
this._gthis.process.stderr.write(chunk);
|
29
|
+
},
|
30
|
+
});
|
31
|
+
}
|
32
|
+
}
|
33
|
+
const baseSysAbstraction = new ResolveOnce();
|
34
|
+
export function NodeBasicSysAbstraction(param) {
|
35
|
+
const my = baseSysAbstraction.once(() => {
|
36
|
+
return new BaseBasicSysAbstraction({
|
37
|
+
TxtEnDecoder: param?.TxtEnDecoder || TxtEnDecoderSingleton(),
|
38
|
+
});
|
39
|
+
});
|
40
|
+
return new WrapperBasicSysAbstraction(my, {
|
41
|
+
basicRuntimeService: new NodeRuntimeService(param?.TxtEnDecoder ?? my._txtEnDe),
|
42
|
+
...param,
|
43
|
+
});
|
44
|
+
}
|
45
|
+
//# sourceMappingURL=node-basic-sys-abstraction.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"node-basic-sys-abstraction.js","sourceRoot":"","sources":["../../../../src/node/node-basic-sys-abstraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAoC,MAAM,4BAA4B,CAAC;AACnI,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAO,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAgB,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE3E,MAAM,OAAO,kBAAkB;IACpB,QAAQ,CAAe;IACvB,MAAM,CAUb;IACF,YAAY,IAAkB;QAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,UAAqD,CAAC;IACtE,CAAC;IACD,GAAG;QACD,OAAO,UAAU,EAAE,CAAC;IACtB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,cAAc,CAAC;YACxB,KAAK,EAAE,CAAC,KAAiB,EAAQ,EAAE;gBACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IACD,MAAM;QACJ,OAAO,IAAI,cAAc,CAAa;YACpC,KAAK,EAAE,CAAC,KAAiB,EAAQ,EAAE;gBACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,kBAAkB,GAAG,IAAI,WAAW,EAA2B,CAAC;AACtE,MAAM,UAAU,uBAAuB,CAAC,KAAwC;IAC9E,MAAM,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE;QACtC,OAAO,IAAI,uBAAuB,CAAC;YACjC,YAAY,EAAE,KAAK,EAAE,YAAY,IAAI,qBAAqB,EAAE;SAC7D,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,0BAA0B,CAAC,EAAE,EAAE;QACxC,mBAAmB,EAAE,IAAI,kBAAkB,CAAC,KAAK,EAAE,YAAY,IAAI,EAAE,CAAC,QAAQ,CAAC;QAC/E,GAAG,KAAK;KACT,CAAC,CAAC;AACL,CAAC"}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { Env, EnvActions, EnvFactoryOpts } from "../sys-env.js";
|
2
|
+
export declare class NodeEnvActions implements EnvActions {
|
3
|
+
#private;
|
4
|
+
static new(opts: Partial<EnvFactoryOpts>): EnvActions;
|
5
|
+
readonly opts: Partial<EnvFactoryOpts>;
|
6
|
+
private constructor();
|
7
|
+
register(env: Env): Env;
|
8
|
+
active(): boolean;
|
9
|
+
readonly _env: Record<string, string>;
|
10
|
+
keys(): string[];
|
11
|
+
get(key: string): string | undefined;
|
12
|
+
set(key: string, value?: string): void;
|
13
|
+
delete(key: string): void;
|
14
|
+
}
|
15
|
+
//# sourceMappingURL=node-env-actions.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"node-env-actions.d.ts","sourceRoot":"","sources":["../../../../src/node/node-env-actions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGhE,qBAAa,cAAe,YAAW,UAAU;;IAG/C,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,UAAU;IAIrD,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACvC,OAAO;IAIP,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;IAOvB,MAAM,IAAI,OAAO;IAIjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAA+C;IACpF,IAAI,IAAI,MAAM,EAAE;IAGhB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAGpC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAKtC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAI1B"}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import { ResolveOnce } from "../resolve-once.js";
|
2
|
+
import { runtimeFn } from "../runtime.js";
|
3
|
+
const once = new ResolveOnce();
|
4
|
+
export class NodeEnvActions {
|
5
|
+
#node = globalThis;
|
6
|
+
static new(opts) {
|
7
|
+
return once.once(() => new NodeEnvActions(opts));
|
8
|
+
}
|
9
|
+
opts;
|
10
|
+
constructor(opts) {
|
11
|
+
this.opts = opts;
|
12
|
+
}
|
13
|
+
register(env) {
|
14
|
+
for (const key of env.keys()) {
|
15
|
+
this._env[key] = env.get(key) || "";
|
16
|
+
}
|
17
|
+
return env;
|
18
|
+
}
|
19
|
+
active() {
|
20
|
+
return runtimeFn().isNodeIsh;
|
21
|
+
}
|
22
|
+
_env = this.active() ? this.#node.process.env : {};
|
23
|
+
keys() {
|
24
|
+
return Object.keys(this._env);
|
25
|
+
}
|
26
|
+
get(key) {
|
27
|
+
return this._env[key];
|
28
|
+
}
|
29
|
+
set(key, value) {
|
30
|
+
if (value) {
|
31
|
+
this._env[key] = value;
|
32
|
+
}
|
33
|
+
}
|
34
|
+
delete(key) {
|
35
|
+
delete this._env[key];
|
36
|
+
}
|
37
|
+
}
|
38
|
+
//# sourceMappingURL=node-env-actions.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"node-env-actions.js","sourceRoot":"","sources":["../../../../src/node/node-env-actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,MAAM,IAAI,GAAG,IAAI,WAAW,EAAkB,CAAC;AAC/C,MAAM,OAAO,cAAc;IAChB,KAAK,GAAG,UAAqE,CAAC;IAEvF,MAAM,CAAC,GAAG,CAAC,IAA6B;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;IAEQ,IAAI,CAA0B;IACvC,YAAoB,IAA6B;QAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,QAAQ,CAAC,GAAQ;QACf,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACtC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM;QACJ,OAAO,SAAS,EAAE,CAAC,SAAS,CAAC;IAE/B,CAAC;IACQ,IAAI,GAA2B,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACpF,IAAI;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IACD,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IACD,GAAG,CAAC,GAAW,EAAE,KAAc;QAC7B,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IACD,MAAM,CAAC,GAAW;QAEhB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;CACF"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { FileService, NamedWritableStream } from "../file-service.js";
|
2
|
+
import { TxtEnDecoder } from "../txt-en-decoder.js";
|
3
|
+
export declare class NodeFileService implements FileService {
|
4
|
+
readonly baseDir: string;
|
5
|
+
constructor(baseDir?: string);
|
6
|
+
readFileString(fname: string): Promise<string>;
|
7
|
+
dirname(fname: string): string;
|
8
|
+
basename(fname: string): string;
|
9
|
+
join(...paths: string[]): string;
|
10
|
+
relative(from: string, to?: string): string;
|
11
|
+
abs(fname: string): string;
|
12
|
+
isAbsolute(fname: string): boolean;
|
13
|
+
writeFileString(fname: string, content: string, ende?: TxtEnDecoder): Promise<void>;
|
14
|
+
create(fname: string): Promise<NamedWritableStream>;
|
15
|
+
}
|
16
|
+
//# sourceMappingURL=node-file-service.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"node-file-service.d.ts","sourceRoot":"","sources":["../../../../src/node/node-file-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAyB,MAAM,sBAAsB,CAAC;AAE3E,qBAAa,eAAgB,YAAW,WAAW;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBACb,OAAO,GAAE,MAAsB;IAa3C,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI9C,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAG9B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI/B,IAAI,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAIhC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAU3C,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAS1B,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI5B,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,YAAsC,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5G,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAwB1D"}
|
@@ -0,0 +1,72 @@
|
|
1
|
+
import path from "node:path";
|
2
|
+
import fs from "node:fs";
|
3
|
+
import process from "node:process";
|
4
|
+
import { TxtEnDecoderSingleton } from "../txt-en-decoder.js";
|
5
|
+
export class NodeFileService {
|
6
|
+
baseDir;
|
7
|
+
constructor(baseDir = process.cwd()) {
|
8
|
+
this.baseDir = this.abs(baseDir);
|
9
|
+
}
|
10
|
+
readFileString(fname) {
|
11
|
+
return fs.promises.readFile(fname, { encoding: "utf-8" });
|
12
|
+
}
|
13
|
+
dirname(fname) {
|
14
|
+
return path.dirname(fname);
|
15
|
+
}
|
16
|
+
basename(fname) {
|
17
|
+
return path.basename(fname);
|
18
|
+
}
|
19
|
+
join(...paths) {
|
20
|
+
return path.join(...paths);
|
21
|
+
}
|
22
|
+
relative(from, to) {
|
23
|
+
if (to === undefined) {
|
24
|
+
to = from;
|
25
|
+
from = process.cwd();
|
26
|
+
}
|
27
|
+
const ret = path.relative(from, to);
|
28
|
+
return ret;
|
29
|
+
}
|
30
|
+
abs(fname) {
|
31
|
+
if (path.isAbsolute(fname)) {
|
32
|
+
return fname;
|
33
|
+
}
|
34
|
+
else {
|
35
|
+
const cwd = process.cwd();
|
36
|
+
return path.resolve(cwd, fname);
|
37
|
+
}
|
38
|
+
}
|
39
|
+
isAbsolute(fname) {
|
40
|
+
return path.isAbsolute(fname);
|
41
|
+
}
|
42
|
+
async writeFileString(fname, content, ende = TxtEnDecoderSingleton()) {
|
43
|
+
const o = await this.create(fname);
|
44
|
+
const wr = o.stream.getWriter();
|
45
|
+
await wr.write(ende.encode(content));
|
46
|
+
await wr.close();
|
47
|
+
}
|
48
|
+
async create(fname) {
|
49
|
+
let oName = fname;
|
50
|
+
if (!path.isAbsolute(fname)) {
|
51
|
+
oName = this.abs(fname);
|
52
|
+
}
|
53
|
+
const base = path.dirname(oName);
|
54
|
+
await fs.promises.mkdir(base, { recursive: true });
|
55
|
+
const out = fs.createWriteStream(oName);
|
56
|
+
return {
|
57
|
+
name: oName,
|
58
|
+
stream: new WritableStream({
|
59
|
+
write(chunk) {
|
60
|
+
out.write(chunk);
|
61
|
+
},
|
62
|
+
close() {
|
63
|
+
out.close();
|
64
|
+
},
|
65
|
+
abort() {
|
66
|
+
throw new Error("not implemented");
|
67
|
+
},
|
68
|
+
}),
|
69
|
+
};
|
70
|
+
}
|
71
|
+
}
|
72
|
+
//# sourceMappingURL=node-file-service.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"node-file-service.js","sourceRoot":"","sources":["../../../../src/node/node-file-service.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { RuntimeSysAbstraction, SystemService, VoidFunc } from "../sys-abstraction.js";
|
2
|
+
import { ExitHandler, ExitService, WrapperBasicSysAbstractionParams } from "../base-sys-abstraction.js";
|
3
|
+
export declare class NodeExitServiceImpl implements ExitService {
|
4
|
+
constructor();
|
5
|
+
_exitHandlers: ExitHandler[];
|
6
|
+
injectExitHandlers(hdls: ExitHandler[]): void;
|
7
|
+
invoked: boolean;
|
8
|
+
readonly _handleExit: () => Promise<void>;
|
9
|
+
exit(code: number): void;
|
10
|
+
}
|
11
|
+
export declare class NodeSystemService implements SystemService {
|
12
|
+
static readonly _exitHandlers: ExitHandler[];
|
13
|
+
readonly _exitService: ExitService;
|
14
|
+
constructor();
|
15
|
+
OnExit(hdl: VoidFunc): VoidFunc;
|
16
|
+
Exit(code: number): void;
|
17
|
+
}
|
18
|
+
export declare function NodeSysAbstraction(param?: WrapperBasicSysAbstractionParams): RuntimeSysAbstraction;
|
19
|
+
//# sourceMappingURL=node-sys-abstraction.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"node-sys-abstraction.d.ts","sourceRoot":"","sources":["../../../../src/node/node-sys-abstraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAEL,WAAW,EACX,WAAW,EACX,gCAAgC,EAEjC,MAAM,4BAA4B,CAAC;AAOpC,qBAAa,mBAAoB,YAAW,WAAW;;IA0BrD,aAAa,EAAE,WAAW,EAAE,CAAM;IAClC,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI;IAI7C,OAAO,UAAS;IAChB,QAAQ,CAAC,WAAW,QAAa,OAAO,CAAC,IAAI,CAAC,CAkB5C;IAEF,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAYzB;AAED,qBAAa,iBAAkB,YAAW,aAAa;IACrD,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,EAAE,CAAM;IAClD,QAAQ,CAAC,YAAY,EAAE,WAAW,CAA6B;;IAK/D,MAAM,CAAC,GAAG,EAAE,QAAQ,GAAG,QAAQ;IAW/B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAGzB;AAGD,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,gCAAgC,GAAG,qBAAqB,CAalG"}
|
@@ -0,0 +1,95 @@
|
|
1
|
+
import { BaseSysAbstraction, WrapperRuntimeSysAbstraction, } from "../base-sys-abstraction.js";
|
2
|
+
import { NodeFileService } from "./node-file-service.js";
|
3
|
+
import { TxtEnDecoderSingleton } from "../txt-en-decoder.js";
|
4
|
+
import process from "node:process";
|
5
|
+
import { ResolveOnce } from "../resolve-once.js";
|
6
|
+
import { NodeBasicSysAbstraction } from "./node-basic-sys-abstraction.js";
|
7
|
+
export class NodeExitServiceImpl {
|
8
|
+
constructor() {
|
9
|
+
process.on("unhandledRejection", (reason, p) => {
|
10
|
+
this.exit(19);
|
11
|
+
});
|
12
|
+
process.on("uncaughtException", (error) => {
|
13
|
+
this.exit(18);
|
14
|
+
});
|
15
|
+
process.on("close", () => {
|
16
|
+
this.exit(0);
|
17
|
+
});
|
18
|
+
process.on("exit", () => {
|
19
|
+
this.exit(0);
|
20
|
+
});
|
21
|
+
process.on("SIGQUIT", () => {
|
22
|
+
this.exit(3);
|
23
|
+
});
|
24
|
+
process.on("SIGINT", () => {
|
25
|
+
this.exit(2);
|
26
|
+
});
|
27
|
+
process.on("SIGTERM", () => {
|
28
|
+
this.exit(9);
|
29
|
+
});
|
30
|
+
}
|
31
|
+
_exitHandlers = [];
|
32
|
+
injectExitHandlers(hdls) {
|
33
|
+
this._exitHandlers = hdls;
|
34
|
+
}
|
35
|
+
invoked = false;
|
36
|
+
_handleExit = async () => {
|
37
|
+
if (this.invoked) {
|
38
|
+
return;
|
39
|
+
}
|
40
|
+
this.invoked = true;
|
41
|
+
for (const h of this._exitHandlers) {
|
42
|
+
try {
|
43
|
+
const ret = h.hdl();
|
44
|
+
if (typeof ret.then === "function") {
|
45
|
+
await ret;
|
46
|
+
}
|
47
|
+
}
|
48
|
+
finally {
|
49
|
+
}
|
50
|
+
}
|
51
|
+
};
|
52
|
+
exit(code) {
|
53
|
+
this._handleExit()
|
54
|
+
.then(() => {
|
55
|
+
process.exit(code);
|
56
|
+
})
|
57
|
+
.catch((err) => {
|
58
|
+
console.error("ExitService: failed to handle exit", err);
|
59
|
+
process.exit(code);
|
60
|
+
});
|
61
|
+
}
|
62
|
+
}
|
63
|
+
export class NodeSystemService {
|
64
|
+
static _exitHandlers = [];
|
65
|
+
_exitService = new NodeExitServiceImpl();
|
66
|
+
constructor() {
|
67
|
+
this._exitService.injectExitHandlers(NodeSystemService._exitHandlers);
|
68
|
+
}
|
69
|
+
OnExit(hdl) {
|
70
|
+
const id = crypto.randomUUID();
|
71
|
+
NodeSystemService._exitHandlers.push({ hdl, id });
|
72
|
+
return () => {
|
73
|
+
const idx = NodeSystemService._exitHandlers.findIndex((h) => h.id === id);
|
74
|
+
if (idx >= 0) {
|
75
|
+
NodeSystemService._exitHandlers.splice(idx, 1);
|
76
|
+
}
|
77
|
+
};
|
78
|
+
}
|
79
|
+
Exit(code) {
|
80
|
+
this._exitService.exit(code);
|
81
|
+
}
|
82
|
+
}
|
83
|
+
const baseSysAbstraction = new ResolveOnce();
|
84
|
+
export function NodeSysAbstraction(param) {
|
85
|
+
const my = baseSysAbstraction.once(() => new BaseSysAbstraction({
|
86
|
+
TxtEnDecoder: param?.TxtEnDecoder || TxtEnDecoderSingleton(),
|
87
|
+
FileSystem: new NodeFileService(),
|
88
|
+
SystemService: new NodeSystemService(),
|
89
|
+
}));
|
90
|
+
return new WrapperRuntimeSysAbstraction(my, {
|
91
|
+
basicRuntimeService: NodeBasicSysAbstraction(param),
|
92
|
+
...param,
|
93
|
+
});
|
94
|
+
}
|
95
|
+
//# sourceMappingURL=node-sys-abstraction.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"node-sys-abstraction.js","sourceRoot":"","sources":["../../../../src/node/node-sys-abstraction.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"node-sys-abstraction.test.d.ts","sourceRoot":"","sources":["../../../../src/node/node-sys-abstraction.test.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,83 @@
|
|
1
|
+
import { runtimeFn } from "@adviser/cement";
|
2
|
+
function exitHandler(errCode, larg, done) {
|
3
|
+
return (err, stdout, stderr) => {
|
4
|
+
if (err) {
|
5
|
+
expect(err.code).toBe(errCode);
|
6
|
+
}
|
7
|
+
if (stdout) {
|
8
|
+
const res = stdout
|
9
|
+
.toString()
|
10
|
+
.split("\n")
|
11
|
+
.filter((line) => line.trim())
|
12
|
+
.map((line) => {
|
13
|
+
const out = JSON.parse(line);
|
14
|
+
return out;
|
15
|
+
})
|
16
|
+
.map((obj) => {
|
17
|
+
delete obj.pid;
|
18
|
+
return obj;
|
19
|
+
});
|
20
|
+
expect(res).toEqual([
|
21
|
+
{
|
22
|
+
larg: larg,
|
23
|
+
},
|
24
|
+
{
|
25
|
+
larg: larg,
|
26
|
+
msg: "Called OnExit 1",
|
27
|
+
},
|
28
|
+
{
|
29
|
+
larg: larg,
|
30
|
+
msg: "Called OnExit 2",
|
31
|
+
},
|
32
|
+
]);
|
33
|
+
done();
|
34
|
+
}
|
35
|
+
if (stderr) {
|
36
|
+
expect(stderr).toEqual({});
|
37
|
+
}
|
38
|
+
};
|
39
|
+
}
|
40
|
+
describe(`${runtimeFn().isDeno ? "deno" : "node"}_sys`, () => {
|
41
|
+
if (runtimeFn().isNodeIsh || runtimeFn().isDeno) {
|
42
|
+
let fnExec;
|
43
|
+
let execHandler = "tsx src/test/test-exit-handler.ts";
|
44
|
+
beforeAll(async () => {
|
45
|
+
const { exec } = await import("node:child_process");
|
46
|
+
fnExec = exec;
|
47
|
+
if (runtimeFn().isDeno) {
|
48
|
+
execHandler = "deno run --allow-net --allow-read --allow-run --unstable-sloppy-imports src/test/test-exit-handler.ts";
|
49
|
+
}
|
50
|
+
});
|
51
|
+
it("just-exit", () => {
|
52
|
+
return new Promise((done) => {
|
53
|
+
fnExec(`${execHandler} exit24`, exitHandler(24, "exit24", done));
|
54
|
+
});
|
55
|
+
});
|
56
|
+
it("throw", () => {
|
57
|
+
return new Promise((done) => {
|
58
|
+
fnExec(`${execHandler} throw`, exitHandler(19, "throw", done));
|
59
|
+
});
|
60
|
+
});
|
61
|
+
it("via sigint", () => {
|
62
|
+
return new Promise((done) => {
|
63
|
+
fnExec(`${execHandler} sigint`, exitHandler(2, "sigint", done));
|
64
|
+
});
|
65
|
+
});
|
66
|
+
it("via sigterm", () => {
|
67
|
+
return new Promise((done) => {
|
68
|
+
fnExec(`${execHandler} sigterm`, exitHandler(9, "sigterm", done));
|
69
|
+
});
|
70
|
+
});
|
71
|
+
it("via sigquit", () => {
|
72
|
+
return new Promise((done) => {
|
73
|
+
fnExec(`${execHandler} sigquit`, exitHandler(3, "sigquit", done));
|
74
|
+
});
|
75
|
+
});
|
76
|
+
}
|
77
|
+
else {
|
78
|
+
it.skip("nothing in browser", () => {
|
79
|
+
expect(true).toBe(true);
|
80
|
+
});
|
81
|
+
}
|
82
|
+
});
|
83
|
+
//# sourceMappingURL=node-sys-abstraction.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"node-sys-abstraction.test.js","sourceRoot":"","sources":["../../../../src/node/node-sys-abstraction.test.ts"],"names":[],"mappings":"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"}
|
package/option.d.ts
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
export declare abstract class Option<T> {
|
2
|
+
static Some<T>(t: T): Option<T>;
|
3
|
+
static None<T>(): Option<T>;
|
4
|
+
static Is<T>(t: unknown): t is Option<T>;
|
5
|
+
static From<T>(t?: T): Option<T>;
|
6
|
+
IsNone(): boolean;
|
7
|
+
IsSome(): boolean;
|
8
|
+
Unwrap(): T;
|
9
|
+
abstract is_none(): boolean;
|
10
|
+
abstract is_some(): boolean;
|
11
|
+
abstract unwrap(): T;
|
12
|
+
}
|
13
|
+
export declare class Some<T> extends Option<T> {
|
14
|
+
private _t;
|
15
|
+
constructor(_t: T);
|
16
|
+
is_none(): boolean;
|
17
|
+
is_some(): boolean;
|
18
|
+
unwrap(): T;
|
19
|
+
}
|
20
|
+
export declare class None<T> extends Option<T> {
|
21
|
+
is_none(): boolean;
|
22
|
+
is_some(): boolean;
|
23
|
+
unwrap(): T;
|
24
|
+
}
|
25
|
+
export type WithoutOption<T> = T extends Option<infer U> ? U : T;
|
26
|
+
//# sourceMappingURL=option.d.ts.map
|
package/option.d.ts.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"option.d.ts","sourceRoot":"","sources":["../../../src/option.ts"],"names":[],"mappings":"AAAA,8BAAsB,MAAM,CAAC,CAAC;IAC5B,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IAI/B,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;IAI3B,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;IAIxC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IAOhC,MAAM,IAAI,OAAO;IAIjB,MAAM,IAAI,OAAO;IAGjB,MAAM,IAAI,CAAC;IAIX,QAAQ,CAAC,OAAO,IAAI,OAAO;IAC3B,QAAQ,CAAC,OAAO,IAAI,OAAO;IAC3B,QAAQ,CAAC,MAAM,IAAI,CAAC;CACrB;AAED,qBAAa,IAAI,CAAC,CAAC,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,CAAI;gBACF,EAAE,EAAE,CAAC;IAKjB,OAAO,IAAI,OAAO;IAGlB,OAAO,IAAI,OAAO;IAGlB,MAAM,IAAI,CAAC;CAGZ;AAED,qBAAa,IAAI,CAAC,CAAC,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IACpC,OAAO,IAAI,OAAO;IAGlB,OAAO,IAAI,OAAO;IAGlB,MAAM,IAAI,CAAC;CAGZ;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC"}
|