@adviser/cement 0.3.2 → 0.3.4

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.
Files changed (96) hide show
  1. package/{base-sys-abstraction-CR_Z-Ceg.d.ts → base-sys-abstraction-B-PcaG0B.d.ts} +1 -1
  2. package/{base-sys-abstraction-DWtPI7Kg.d.cts → base-sys-abstraction-CLlfCI2Q.d.cts} +1 -1
  3. package/cf/index.cjs +100 -273
  4. package/cf/index.cjs.map +1 -1
  5. package/cf/index.d.cts +3 -16
  6. package/cf/index.d.ts +3 -16
  7. package/cf/index.js +39 -6
  8. package/cf/index.js.map +1 -1
  9. package/{chunk-R2EEZNZN.js → chunk-5GJADB3C.js} +8 -6
  10. package/{chunk-R2EEZNZN.js.map → chunk-5GJADB3C.js.map} +1 -1
  11. package/chunk-MFC4AD5O.js +88 -0
  12. package/chunk-MFC4AD5O.js.map +1 -0
  13. package/{chunk-DZPKZQIT.js → chunk-OQ4NGEJR.js} +58 -502
  14. package/chunk-OQ4NGEJR.js.map +1 -0
  15. package/deno/index.cjs +86 -165
  16. package/deno/index.cjs.map +1 -1
  17. package/deno/index.d.cts +3 -23
  18. package/deno/index.d.ts +3 -23
  19. package/deno/index.js +174 -8
  20. package/deno/index.js.map +1 -1
  21. package/{index-BfZxTAe_.d.cts → index-CI2cJ0-W.d.cts} +1 -1
  22. package/{index-CfSl8Gmj.d.ts → index-ChpAZoUE.d.ts} +1 -1
  23. package/index.cjs +102 -265
  24. package/index.cjs.map +1 -1
  25. package/index.d.cts +5 -5
  26. package/index.d.ts +5 -5
  27. package/index.js +7 -6
  28. package/index.js.map +1 -1
  29. package/node/index.cjs +55 -134
  30. package/node/index.cjs.map +1 -1
  31. package/node/index.d.cts +3 -16
  32. package/node/index.d.ts +3 -16
  33. package/node/index.js +179 -8
  34. package/node/index.js.map +1 -1
  35. package/package.json +1 -1
  36. package/src/cf/cf-env-actions.ts +53 -0
  37. package/src/cf/cf-sys-abstraction.ts +1 -45
  38. package/src/deno/deno-env-actions.ts +57 -0
  39. package/src/deno/deno-sys-abstraction.ts +1 -57
  40. package/src/jsr.json +1 -1
  41. package/src/node/node-env-actions.ts +45 -0
  42. package/src/node/node-sys-abstraction.ts +1 -45
  43. package/src/sys-env.ts +4 -4
  44. package/src/web/web-env-actions.ts +41 -0
  45. package/src/web/web-sys-abstraction.ts +1 -41
  46. package/{sys-abstraction-GNnBj2sz.d.cts → sys-abstraction-Coxu8BjZ.d.cts} +1 -1
  47. package/{sys-abstraction-GNnBj2sz.d.ts → sys-abstraction-Coxu8BjZ.d.ts} +1 -1
  48. package/test/index.cjs +72 -235
  49. package/test/index.cjs.map +1 -1
  50. package/test/index.d.cts +2 -2
  51. package/test/index.d.ts +2 -2
  52. package/test/index.js +3 -2
  53. package/ts/cf/cf-env-actions.d.ts +16 -0
  54. package/ts/cf/cf-env-actions.d.ts.map +1 -0
  55. package/ts/cf/cf-env-actions.js +51 -0
  56. package/ts/cf/cf-env-actions.js.map +1 -0
  57. package/ts/cf/cf-sys-abstraction.d.ts +1 -14
  58. package/ts/cf/cf-sys-abstraction.d.ts.map +1 -1
  59. package/ts/cf/cf-sys-abstraction.js +0 -42
  60. package/ts/cf/cf-sys-abstraction.js.map +1 -1
  61. package/ts/crypto.test.js +8 -1
  62. package/ts/crypto.test.js.map +1 -1
  63. package/ts/deno/deno-env-actions.d.ts +23 -0
  64. package/ts/deno/deno-env-actions.d.ts.map +1 -0
  65. package/ts/deno/deno-env-actions.js +46 -0
  66. package/ts/deno/deno-env-actions.js.map +1 -0
  67. package/ts/deno/deno-sys-abstraction.d.ts +1 -22
  68. package/ts/deno/deno-sys-abstraction.d.ts.map +1 -1
  69. package/ts/deno/deno-sys-abstraction.js +0 -45
  70. package/ts/deno/deno-sys-abstraction.js.map +1 -1
  71. package/ts/node/node-env-actions.d.ts +15 -0
  72. package/ts/node/node-env-actions.d.ts.map +1 -0
  73. package/ts/node/node-env-actions.js +44 -0
  74. package/ts/node/node-env-actions.js.map +1 -0
  75. package/ts/node/node-sys-abstraction.d.ts +1 -14
  76. package/ts/node/node-sys-abstraction.d.ts.map +1 -1
  77. package/ts/node/node-sys-abstraction.js +0 -43
  78. package/ts/node/node-sys-abstraction.js.map +1 -1
  79. package/ts/sys-env.js +4 -4
  80. package/ts/sys-env.js.map +1 -1
  81. package/ts/sys-env.test.js +2 -2
  82. package/ts/sys-env.test.js.map +1 -1
  83. package/ts/web/web-env-actions.d.ts +14 -0
  84. package/ts/web/web-env-actions.d.ts.map +1 -0
  85. package/ts/web/web-env-actions.js +35 -0
  86. package/ts/web/web-env-actions.js.map +1 -0
  87. package/ts/web/web-sys-abstraction.d.ts +0 -13
  88. package/ts/web/web-sys-abstraction.d.ts.map +1 -1
  89. package/ts/web/web-sys-abstraction.js +0 -34
  90. package/ts/web/web-sys-abstraction.js.map +1 -1
  91. package/web/index.cjs +63 -238
  92. package/web/index.cjs.map +1 -1
  93. package/web/index.d.cts +3 -15
  94. package/web/index.d.ts +3 -15
  95. package/web/index.js +2 -3
  96. package/chunk-DZPKZQIT.js.map +0 -1
package/index.d.cts CHANGED
@@ -1,10 +1,10 @@
1
- import { d as SysAbstraction, T as Time } from './sys-abstraction-GNnBj2sz.cjs';
2
- export { D as Duration, c as Env, E as EnvActions, h as EnvFactoryFn, b as EnvFactoryOpts, a as EnvImpl, g as EnvMap, F as FileService, I as IDMode, N as NamedWritableStream, O as OnSetItem, R as RandomMode, f as String2TimeMode, S as SystemService, e as TimeMode, j as TimeUnits, V as VoidFunc, i as envFactory, r as registerEnvAction } from './sys-abstraction-GNnBj2sz.cjs';
3
- import { L as LogFormatter, a as LogSerializable, b as LevelHandler, c as Logger, d as Level, R as Result, F as FnSerialized, H as HttpType, C as CoerceURI, W as WithLogger, A as AsError, O as Option, e as Future } from './index-BfZxTAe_.cjs';
4
- export { G as BuildURI, B as HostURIObject, I as IsLogger, K as KeysParam, k as Lengthed, p as LogCollector, f as LogValue, h as LogValueArg, i as LogValueState, o as LogWriteStream, n as LoggerInterface, q as MockLogger, M as MockLoggerReturn, x as MsgFn, E as MutableURL, N as None, P as PathURIObject, s as ResultError, r as ResultOK, S as Serialized, m as SizeOrLength, j as Sized, v as Some, Q as URI, U as URIInterface, z as URIObject, w as WithoutOption, t as WithoutResult, g as asyncLogValue, u as exception2Result, J as hasHostPartProtocols, D as isURL, y as key, l as logValue } from './index-BfZxTAe_.cjs';
1
+ import { a as SysAbstraction, T as Time } from './sys-abstraction-Coxu8BjZ.cjs';
2
+ export { D as Duration, E as Env, e as EnvActions, g as EnvFactoryFn, f as EnvFactoryOpts, i as EnvImpl, d as EnvMap, F as FileService, I as IDMode, N as NamedWritableStream, O as OnSetItem, R as RandomMode, c as String2TimeMode, S as SystemService, b as TimeMode, j as TimeUnits, V as VoidFunc, h as envFactory, r as registerEnvAction } from './sys-abstraction-Coxu8BjZ.cjs';
3
+ import { L as LogFormatter, a as LogSerializable, b as LevelHandler, c as Logger, d as Level, R as Result, F as FnSerialized, H as HttpType, C as CoerceURI, W as WithLogger, A as AsError, O as Option, e as Future } from './index-CI2cJ0-W.cjs';
4
+ export { G as BuildURI, B as HostURIObject, I as IsLogger, K as KeysParam, k as Lengthed, p as LogCollector, f as LogValue, h as LogValueArg, i as LogValueState, o as LogWriteStream, n as LoggerInterface, q as MockLogger, M as MockLoggerReturn, x as MsgFn, E as MutableURL, N as None, P as PathURIObject, s as ResultError, r as ResultOK, S as Serialized, m as SizeOrLength, j as Sized, v as Some, Q as URI, U as URIInterface, z as URIObject, w as WithoutOption, t as WithoutResult, g as asyncLogValue, u as exception2Result, J as hasHostPartProtocols, D as isURL, y as key, l as logValue } from './index-CI2cJ0-W.cjs';
5
5
  import { T as TxtEnDecoder } from './txt-en-decoder-CZYJUju2.cjs';
6
6
  export { U as Utf8EnDecoder, a as Utf8EnDecoderSingleton } from './txt-en-decoder-CZYJUju2.cjs';
7
- export { c as BaseSysAbstraction, B as BaseSysAbstractionParams, C as ConstTime, a as ExitHandler, E as ExitService, I as IdService, R as RandomService, b as StepTime, S as SysTime, T as TimeFactory, d as WrapperSysAbstraction, W as WrapperSysAbstractionParams } from './base-sys-abstraction-DWtPI7Kg.cjs';
7
+ export { c as BaseSysAbstraction, B as BaseSysAbstractionParams, C as ConstTime, a as ExitHandler, E as ExitService, I as IdService, R as RandomService, b as StepTime, S as SysTime, T as TimeFactory, d as WrapperSysAbstraction, W as WrapperSysAbstractionParams } from './base-sys-abstraction-CLlfCI2Q.cjs';
8
8
  export { i as utils } from './index-Q3phXzYr.cjs';
9
9
 
10
10
  declare class LogWriterStream {
package/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import { d as SysAbstraction, T as Time } from './sys-abstraction-GNnBj2sz.js';
2
- export { D as Duration, c as Env, E as EnvActions, h as EnvFactoryFn, b as EnvFactoryOpts, a as EnvImpl, g as EnvMap, F as FileService, I as IDMode, N as NamedWritableStream, O as OnSetItem, R as RandomMode, f as String2TimeMode, S as SystemService, e as TimeMode, j as TimeUnits, V as VoidFunc, i as envFactory, r as registerEnvAction } from './sys-abstraction-GNnBj2sz.js';
3
- import { L as LogFormatter, a as LogSerializable, b as LevelHandler, c as Logger, d as Level, R as Result, F as FnSerialized, H as HttpType, C as CoerceURI, W as WithLogger, A as AsError, O as Option, e as Future } from './index-CfSl8Gmj.js';
4
- export { G as BuildURI, B as HostURIObject, I as IsLogger, K as KeysParam, k as Lengthed, p as LogCollector, f as LogValue, h as LogValueArg, i as LogValueState, o as LogWriteStream, n as LoggerInterface, q as MockLogger, M as MockLoggerReturn, x as MsgFn, E as MutableURL, N as None, P as PathURIObject, s as ResultError, r as ResultOK, S as Serialized, m as SizeOrLength, j as Sized, v as Some, Q as URI, U as URIInterface, z as URIObject, w as WithoutOption, t as WithoutResult, g as asyncLogValue, u as exception2Result, J as hasHostPartProtocols, D as isURL, y as key, l as logValue } from './index-CfSl8Gmj.js';
1
+ import { a as SysAbstraction, T as Time } from './sys-abstraction-Coxu8BjZ.js';
2
+ export { D as Duration, E as Env, e as EnvActions, g as EnvFactoryFn, f as EnvFactoryOpts, i as EnvImpl, d as EnvMap, F as FileService, I as IDMode, N as NamedWritableStream, O as OnSetItem, R as RandomMode, c as String2TimeMode, S as SystemService, b as TimeMode, j as TimeUnits, V as VoidFunc, h as envFactory, r as registerEnvAction } from './sys-abstraction-Coxu8BjZ.js';
3
+ import { L as LogFormatter, a as LogSerializable, b as LevelHandler, c as Logger, d as Level, R as Result, F as FnSerialized, H as HttpType, C as CoerceURI, W as WithLogger, A as AsError, O as Option, e as Future } from './index-ChpAZoUE.js';
4
+ export { G as BuildURI, B as HostURIObject, I as IsLogger, K as KeysParam, k as Lengthed, p as LogCollector, f as LogValue, h as LogValueArg, i as LogValueState, o as LogWriteStream, n as LoggerInterface, q as MockLogger, M as MockLoggerReturn, x as MsgFn, E as MutableURL, N as None, P as PathURIObject, s as ResultError, r as ResultOK, S as Serialized, m as SizeOrLength, j as Sized, v as Some, Q as URI, U as URIInterface, z as URIObject, w as WithoutOption, t as WithoutResult, g as asyncLogValue, u as exception2Result, J as hasHostPartProtocols, D as isURL, y as key, l as logValue } from './index-ChpAZoUE.js';
5
5
  import { T as TxtEnDecoder } from './txt-en-decoder-CZYJUju2.js';
6
6
  export { U as Utf8EnDecoder, a as Utf8EnDecoderSingleton } from './txt-en-decoder-CZYJUju2.js';
7
- export { c as BaseSysAbstraction, B as BaseSysAbstractionParams, C as ConstTime, a as ExitHandler, E as ExitService, I as IdService, R as RandomService, b as StepTime, S as SysTime, T as TimeFactory, d as WrapperSysAbstraction, W as WrapperSysAbstractionParams } from './base-sys-abstraction-CR_Z-Ceg.js';
7
+ export { c as BaseSysAbstraction, B as BaseSysAbstractionParams, C as ConstTime, a as ExitHandler, E as ExitService, I as IdService, R as RandomService, b as StepTime, S as SysTime, T as TimeFactory, d as WrapperSysAbstraction, W as WrapperSysAbstractionParams } from './base-sys-abstraction-B-PcaG0B.js';
8
8
  export { i as utils } from './index-tIGZMHTc.js';
9
9
 
10
10
  declare class LogWriterStream {
package/index.js CHANGED
@@ -27,7 +27,12 @@ import {
27
27
  isURL,
28
28
  key,
29
29
  logValue
30
- } from "./chunk-R2EEZNZN.js";
30
+ } from "./chunk-5GJADB3C.js";
31
+ import {
32
+ utils_exports
33
+ } from "./chunk-A7OPSHUV.js";
34
+ import "./chunk-HFP74WLI.js";
35
+ import "./chunk-MFC4AD5O.js";
31
36
  import {
32
37
  BaseSysAbstraction,
33
38
  ConstTime,
@@ -53,11 +58,7 @@ import {
53
58
  envFactory,
54
59
  registerEnvAction,
55
60
  runtimeFn
56
- } from "./chunk-DZPKZQIT.js";
57
- import {
58
- utils_exports
59
- } from "./chunk-A7OPSHUV.js";
60
- import "./chunk-HFP74WLI.js";
61
+ } from "./chunk-OQ4NGEJR.js";
61
62
  import {
62
63
  Utf8EnDecoder,
63
64
  Utf8EnDecoderSingleton
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tracer.ts","../../src/crypto.ts","../../src/version.ts","../../src/http_header.ts"],"sourcesContent":["import type { MarkWritable } from \"ts-essentials\";\nimport { Time } from \"./time.js\";\nimport { Logger } from \"./logger.js\";\n\nexport type TraceCtx = {\n readonly spanId: string;\n readonly time: Time;\n readonly parent: TraceNode;\n readonly metrics: Map<string, Metric<unknown>>;\n readonly logger?: Logger;\n} & Record<string, unknown>;\n\nexport type CleanCtx = {\n readonly spanId: string;\n} & Record<string, unknown>;\n\nexport type TraceCtxParam = {\n readonly spanId: string;\n} & Partial<{\n readonly time: Time;\n readonly parent: TraceNode;\n readonly logger: Logger;\n}> &\n Record<string, unknown>;\n\nexport class Metric<T> {\n value?: T;\n readonly path: string;\n\n constructor(path: string) {\n this.path = path;\n }\n\n set(value: T): void {\n this.value = value;\n }\n\n add<R extends number | ArrayLike<T>>(value: R): void {\n if (typeof value === \"number\") {\n if (this.value === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.value = 0 as any;\n }\n (this.value as number) = ((this.value as number) + value) as number;\n } else if (Array.isArray(value)) {\n if (!Array.isArray(this.value)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.value = [] as any;\n }\n (this.value as T[]).push(...value);\n } else {\n throw new Error(\"add only support number or array\");\n }\n }\n}\n\nexport type MetricMap = Map<string, Metric<unknown>>;\n\nexport class Metrics {\n readonly tracenode: TraceNode;\n private readonly map: MetricMap;\n\n readonly spanRefs: MetricMap = new Map<string, Metric<unknown>>();\n constructor(tracenode: TraceNode) {\n this.tracenode = tracenode;\n this.map = tracenode.ctx.metrics;\n }\n\n toJSON(): Record<string, unknown> {\n const obj: Record<string, unknown> = {};\n for (const [key, value] of this.map) {\n obj[key] = value.value;\n }\n return obj;\n }\n\n get<T>(ipath: string): Metric<T> {\n const path = ipath.replace(/[/]+/g, \"/\").trim();\n if (path.startsWith(\"/\")) {\n if (path.slice(1).length === 0) {\n throw new Error(`Metrics path must contain value /:${path}`);\n }\n let metric = this.map.get(path);\n if (!metric) {\n metric = new Metric<T>(path);\n this.map.set(path, metric);\n }\n this.spanRefs.set(path, metric);\n return metric as Metric<T>;\n } else if (path.includes(\"/\")) {\n throw new Error(`Metrics path must start with /:${path}`);\n }\n const rootPath = this.tracenode.getRootPath();\n return this.get(`${rootPath}/${path}`);\n }\n}\n\nexport interface Invokaction {\n readonly result: \"success\" | \"error\";\n readonly start: number;\n readonly end: number;\n readonly metrics?: Metrics;\n}\n\nexport type TraceNodeMap = Map<string, TraceNode>;\n\nexport class TraceNode {\n readonly childs: TraceNodeMap = new Map<string, TraceNode>();\n\n readonly invokations: Invokaction[] = [];\n\n readonly spanId: string;\n readonly ctx: TraceCtx;\n readonly metrics: Metrics;\n\n static root(time: Time, logger?: Logger): TraceNode {\n return new TraceNode({\n spanId: \"root\",\n time,\n logger,\n metrics: new Map(),\n parent: undefined as unknown as TraceNode,\n });\n }\n\n constructor(ctx: TraceCtx) {\n this.spanId = ctx.spanId;\n this.ctx = ctx;\n this.metrics = new Metrics(this);\n }\n\n getRootPath(rpath: string[] = []): string {\n if (!this.ctx.parent) {\n return \"/\" + rpath.reverse().join(\"/\");\n }\n return this.ctx.parent.getRootPath(rpath.concat(this.ctx.spanId));\n }\n\n invokes(): { ctx: CleanCtx; invokations: Invokaction[] } {\n const cleanCtx = { ...this.ctx } as CleanCtx;\n delete cleanCtx.parent;\n delete cleanCtx.time;\n delete cleanCtx.logger;\n delete cleanCtx.metrics;\n const spanRefs = this.metrics.toJSON.call({ map: this.metrics.spanRefs });\n const metricsRefs = Object.keys(spanRefs).length > 0 ? { metricRefs: spanRefs } : {};\n return {\n ctx: cleanCtx as CleanCtx,\n invokations: this.invokations,\n ...metricsRefs,\n };\n }\n\n ctxWith(spanId: string, logger?: Logger): TraceCtxParam {\n const ctx = {\n ...this.ctx,\n spanId,\n };\n if (logger) {\n ctx.logger = logger;\n }\n return ctx;\n }\n\n // <V extends () => Promise<T> | T, T>(id: string, fn: V): ReturnType<V>\n span<V extends (trace: TraceNode) => Promise<T> | T, T>(inSpanId: string | TraceCtxParam, fn: V): ReturnType<V> {\n let ctx: TraceCtx;\n if (typeof inSpanId === \"string\") {\n ctx = {\n ...this.ctx,\n spanId: inSpanId,\n parent: this,\n };\n } else {\n ctx = {\n ...this.ctx,\n ...inSpanId,\n parent: this,\n };\n }\n if (ctx.logger) {\n ctx = {\n ...ctx,\n ...ctx.logger.Attributes(),\n };\n }\n const spanId = ctx.spanId;\n let spanTrace = this.childs.get(spanId);\n if (!spanTrace) {\n spanTrace = new TraceNode(ctx);\n this.childs.set(spanId.toString(), spanTrace);\n }\n const invokation: MarkWritable<MarkWritable<Invokaction, \"end\">, \"result\"> = {\n start: this.ctx.time.Now().getTime(),\n end: 0,\n result: \"success\",\n };\n spanTrace.invokations.push(invokation);\n try {\n const possiblePromise = fn(spanTrace);\n if (possiblePromise instanceof Promise) {\n return possiblePromise\n .then((v) => {\n return v;\n })\n .catch((e) => {\n invokation.result = \"error\";\n throw e;\n })\n .finally(() => {\n invokation.end = this.ctx.time.Now().getTime();\n }) as ReturnType<V>;\n }\n invokation.end = this.ctx.time.Now().getTime();\n return possiblePromise as ReturnType<V>;\n } catch (e) {\n invokation.result = \"error\";\n invokation.end = this.ctx.time.Now().getTime();\n throw e;\n }\n }\n}\n","export interface CTJsonWebKey {\n alg?: string;\n crv?: string;\n d?: string;\n dp?: string;\n dq?: string;\n e?: string;\n ext?: boolean;\n k?: string;\n key_ops?: string[];\n kty?: string;\n n?: string;\n oth?: RsaOtherPrimesInfo[];\n p?: string;\n q?: string;\n qi?: string;\n use?: string;\n x?: string;\n y?: string;\n}\n\nexport type CTKeyFormat = \"jwk\" | \"pkcs8\" | \"raw\" | \"spki\";\nexport type CTKeyUsage = \"decrypt\" | \"deriveBits\" | \"deriveKey\" | \"encrypt\" | \"sign\" | \"unwrapKey\" | \"verify\" | \"wrapKey\";\n\nexport interface CTAlgorithm {\n name: string;\n}\nexport type CTAlgorithmIdentifier = CTAlgorithm | string;\n\nexport interface CTRsaHashedImportParams extends CTAlgorithm {\n hash: CTAlgorithmIdentifier;\n}\n\nexport type CTNamedCurve = string;\nexport interface CTEcKeyImportParams extends CTAlgorithm {\n namedCurve: CTNamedCurve;\n}\n\nexport interface CTHmacImportParams extends CTAlgorithm {\n hash: CTAlgorithmIdentifier;\n length?: number;\n}\n\nexport interface CTAesKeyAlgorithm extends CTAlgorithm {\n length: number;\n}\n\nexport type CTKeyType = \"private\" | \"public\" | \"secret\";\n\nexport interface CTCryptoKey {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/algorithm) */\n readonly algorithm: CTAlgorithm;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/extractable) */\n readonly extractable: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/type) */\n readonly type: CTKeyType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/usages) */\n readonly usages: CTKeyUsage[];\n}\n\ninterface CTArrayBufferTypes {\n ArrayBuffer: ArrayBuffer;\n}\ntype CTArrayBufferLike = CTArrayBufferTypes[keyof CTArrayBufferTypes];\n\nexport interface CTArrayBufferView {\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n buffer: CTArrayBufferLike;\n\n /**\n * The length in bytes of the array.\n */\n byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n byteOffset: number;\n}\n\nexport type CTBufferSource = CTArrayBufferView | ArrayBuffer | Uint8Array;\n\nexport interface CryptoRuntime {\n importKey(\n format: CTKeyFormat,\n keyData: CTJsonWebKey | CTBufferSource,\n algorithm: CTAlgorithmIdentifier | CTRsaHashedImportParams | CTEcKeyImportParams | CTHmacImportParams | CTAesKeyAlgorithm,\n extractable: boolean,\n keyUsages: CTKeyUsage[],\n ): Promise<CTCryptoKey>;\n exportKey(format: CTKeyFormat, key: CTCryptoKey): Promise<CTJsonWebKey | ArrayBuffer>;\n\n //(format: \"raw\", key: ArrayBuffer, algo: string, extractable: boolean, usages: string[]) => Promise<CryptoKey>;\n decrypt(algo: { name: string; iv: Uint8Array; tagLength: number }, key: CTCryptoKey, data: Uint8Array): Promise<ArrayBuffer>;\n encrypt(algo: { name: string; iv: Uint8Array; tagLength: number }, key: CTCryptoKey, data: Uint8Array): Promise<ArrayBuffer>;\n digestSHA256(data: Uint8Array): Promise<ArrayBuffer>;\n randomBytes(size: number): Uint8Array;\n}\n\nfunction randomBytes(size: number): Uint8Array {\n const bytes = new Uint8Array(size);\n if (size > 0) {\n crypto.getRandomValues(bytes);\n }\n return bytes;\n}\n\nfunction digestSHA256(data: Uint8Array): Promise<ArrayBuffer> {\n return Promise.resolve(crypto.subtle.digest(\"SHA-256\", data));\n}\n\nexport function toCryptoRuntime(cryptoOpts: Partial<CryptoRuntime> = {}): CryptoRuntime {\n const runtime = {\n importKey: cryptoOpts.importKey || crypto.subtle.importKey.bind(crypto.subtle),\n exportKey: cryptoOpts.exportKey || crypto.subtle.exportKey.bind(crypto.subtle),\n encrypt: cryptoOpts.encrypt || crypto.subtle.encrypt.bind(crypto.subtle),\n decrypt: cryptoOpts.decrypt || crypto.subtle.decrypt.bind(crypto.subtle),\n randomBytes: cryptoOpts.randomBytes || randomBytes,\n digestSHA256: cryptoOpts.digestSHA256 || digestSHA256,\n };\n // console.log(\"cryptoOpts\", cryptoOpts, opts)\n return runtime;\n}\n","export const VERSION = Object.keys({\n __packageVersion__: \"xxxx\",\n})[0] as string;\n","export class HeadersImpl extends Headers {\n readonly _headers: Map<string, string>;\n\n constructor(init: Map<string, string>) {\n super();\n this._headers = init;\n }\n\n override [Symbol.iterator](): IterableIterator<[string, string]> {\n return this.entries();\n }\n\n override entries(): IterableIterator<[string, string]> {\n return this._headers.entries();\n }\n override keys(): IterableIterator<string> {\n return this._headers.keys();\n }\n override values(): IterableIterator<string> {\n return this._headers.values();\n }\n\n override append(key: string, value: string | string[] | undefined): HeadersImpl {\n const values = this._headers.get(key);\n if (typeof value === \"undefined\") {\n value = \"\";\n }\n if (Array.isArray(value)) {\n this._headers.set(key, [values, ...value].filter((i) => i).join(\", \"));\n } else {\n this._headers.set(key, [values, value].filter((i) => i).join(\", \"));\n }\n return this;\n }\n}\n\nexport class HttpHeader {\n readonly _headers: Map<string, string[]> = new Map<string, string[]>();\n\n static from(headers?: HeadersInit | NodeJS.Dict<string | string[]> | Headers | HttpHeader): HttpHeader {\n if (headers instanceof HttpHeader) {\n return headers.Clone();\n }\n const h = new HttpHeader();\n if (headers) {\n if (Array.isArray(headers)) {\n for (const [k, v] of headers) {\n if (v) {\n h.Add(k, v);\n }\n }\n } else if (headers instanceof Headers) {\n for (const [k, v] of headers.entries()) {\n if (v) {\n h.Add(\n k,\n v.split(\",\").map((v) => v.trim()),\n );\n }\n }\n } else {\n for (const k in headers) {\n const v = (headers as Record<string, string | string[]>)[k];\n (Array.isArray(v) ? v : [v]).forEach((v) => {\n h.Add(k, v);\n });\n }\n }\n }\n return h;\n }\n\n _asStringString(): Map<string, string> {\n const ret = new Map<string, string>();\n for (const [key, values] of this._headers) {\n ret.set(key, values.join(\", \"));\n }\n return ret;\n }\n\n _key(key: string): string {\n return key.toLowerCase();\n }\n Values(key: string): string[] {\n const values = this._headers.get(this._key(key));\n return values || [];\n }\n Get(key: string): string | undefined {\n const values = this._headers.get(this._key(key));\n if (values === undefined || values.length === 0) {\n return undefined;\n }\n return values[0];\n }\n Set(key: string, valueOr: string | string[]): HttpHeader {\n const value = Array.isArray(valueOr) ? valueOr : [valueOr];\n this._headers.set(this._key(key), value);\n return this;\n }\n Add(key: string, value: string | string[] | undefined): HttpHeader {\n if (typeof value === \"undefined\") {\n return this;\n }\n const vs = Array.isArray(value) ? value : [value];\n const values = this._headers.get(this._key(key));\n if (values === undefined) {\n this._headers.set(this._key(key), vs);\n } else {\n values.push(...vs);\n }\n return this;\n }\n Del(ey: string): HttpHeader {\n this._headers.delete(this._key(ey));\n return this;\n }\n Items(): [string, string[]][] {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return Array.from(this._headers).filter(([_, vs]) => vs.length > 0);\n }\n SortItems(): [string, string[]][] {\n return this.Items().sort(([[a]], [[b]]) => a.localeCompare(b));\n }\n Clone(): HttpHeader {\n const clone = new HttpHeader();\n for (const [key, values] of this._headers.entries()) {\n clone._headers.set(key, values.slice());\n }\n return clone;\n }\n AsRecordStringStringArray(): Record<string, string[]> {\n const obj: Record<string, string[]> = {};\n for (const [key, values] of this._headers.entries()) {\n obj[key] = [...values];\n }\n return obj;\n }\n AsRecordStringString(): Record<string, string> {\n const obj: Record<string, string> = {};\n for (const [key, values] of this._headers.entries()) {\n obj[key] = values.join(\", \");\n }\n return obj;\n }\n AsHeaderInit(): HeadersInit {\n const obj: HeadersInit = {};\n for (const [key, values] of this._headers.entries()) {\n obj[key] = values[0];\n }\n return obj;\n }\n AsHeaders(): Headers {\n return new HeadersImpl(this._asStringString());\n }\n Merge(other?: HttpHeader): HttpHeader {\n const ret = this.Clone();\n if (other) {\n for (const [key, values] of other.Items()) {\n ret.Add(key, values);\n }\n }\n return ret;\n }\n}\n"],"mappings":"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","names":["key","key","v"]}
1
+ {"version":3,"sources":["../../src/tracer.ts","../../src/crypto.ts","../../src/version.ts","../../src/http_header.ts"],"sourcesContent":["import type { MarkWritable } from \"ts-essentials\";\nimport { Time } from \"./time.js\";\nimport { Logger } from \"./logger.js\";\n\nexport type TraceCtx = {\n readonly spanId: string;\n readonly time: Time;\n readonly parent: TraceNode;\n readonly metrics: Map<string, Metric<unknown>>;\n readonly logger?: Logger;\n} & Record<string, unknown>;\n\nexport type CleanCtx = {\n readonly spanId: string;\n} & Record<string, unknown>;\n\nexport type TraceCtxParam = {\n readonly spanId: string;\n} & Partial<{\n readonly time: Time;\n readonly parent: TraceNode;\n readonly logger: Logger;\n}> &\n Record<string, unknown>;\n\nexport class Metric<T> {\n value?: T;\n readonly path: string;\n\n constructor(path: string) {\n this.path = path;\n }\n\n set(value: T): void {\n this.value = value;\n }\n\n add<R extends number | ArrayLike<T>>(value: R): void {\n if (typeof value === \"number\") {\n if (this.value === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.value = 0 as any;\n }\n (this.value as number) = ((this.value as number) + value) as number;\n } else if (Array.isArray(value)) {\n if (!Array.isArray(this.value)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.value = [] as any;\n }\n (this.value as T[]).push(...value);\n } else {\n throw new Error(\"add only support number or array\");\n }\n }\n}\n\nexport type MetricMap = Map<string, Metric<unknown>>;\n\nexport class Metrics {\n readonly tracenode: TraceNode;\n private readonly map: MetricMap;\n\n readonly spanRefs: MetricMap = new Map<string, Metric<unknown>>();\n constructor(tracenode: TraceNode) {\n this.tracenode = tracenode;\n this.map = tracenode.ctx.metrics;\n }\n\n toJSON(): Record<string, unknown> {\n const obj: Record<string, unknown> = {};\n for (const [key, value] of this.map) {\n obj[key] = value.value;\n }\n return obj;\n }\n\n get<T>(ipath: string): Metric<T> {\n const path = ipath.replace(/[/]+/g, \"/\").trim();\n if (path.startsWith(\"/\")) {\n if (path.slice(1).length === 0) {\n throw new Error(`Metrics path must contain value /:${path}`);\n }\n let metric = this.map.get(path);\n if (!metric) {\n metric = new Metric<T>(path);\n this.map.set(path, metric);\n }\n this.spanRefs.set(path, metric);\n return metric as Metric<T>;\n } else if (path.includes(\"/\")) {\n throw new Error(`Metrics path must start with /:${path}`);\n }\n const rootPath = this.tracenode.getRootPath();\n return this.get(`${rootPath}/${path}`);\n }\n}\n\nexport interface Invokaction {\n readonly result: \"success\" | \"error\";\n readonly start: number;\n readonly end: number;\n readonly metrics?: Metrics;\n}\n\nexport type TraceNodeMap = Map<string, TraceNode>;\n\nexport class TraceNode {\n readonly childs: TraceNodeMap = new Map<string, TraceNode>();\n\n readonly invokations: Invokaction[] = [];\n\n readonly spanId: string;\n readonly ctx: TraceCtx;\n readonly metrics: Metrics;\n\n static root(time: Time, logger?: Logger): TraceNode {\n return new TraceNode({\n spanId: \"root\",\n time,\n logger,\n metrics: new Map(),\n parent: undefined as unknown as TraceNode,\n });\n }\n\n constructor(ctx: TraceCtx) {\n this.spanId = ctx.spanId;\n this.ctx = ctx;\n this.metrics = new Metrics(this);\n }\n\n getRootPath(rpath: string[] = []): string {\n if (!this.ctx.parent) {\n return \"/\" + rpath.reverse().join(\"/\");\n }\n return this.ctx.parent.getRootPath(rpath.concat(this.ctx.spanId));\n }\n\n invokes(): { ctx: CleanCtx; invokations: Invokaction[] } {\n const cleanCtx = { ...this.ctx } as CleanCtx;\n delete cleanCtx.parent;\n delete cleanCtx.time;\n delete cleanCtx.logger;\n delete cleanCtx.metrics;\n const spanRefs = this.metrics.toJSON.call({ map: this.metrics.spanRefs });\n const metricsRefs = Object.keys(spanRefs).length > 0 ? { metricRefs: spanRefs } : {};\n return {\n ctx: cleanCtx as CleanCtx,\n invokations: this.invokations,\n ...metricsRefs,\n };\n }\n\n ctxWith(spanId: string, logger?: Logger): TraceCtxParam {\n const ctx = {\n ...this.ctx,\n spanId,\n };\n if (logger) {\n ctx.logger = logger;\n }\n return ctx;\n }\n\n // <V extends () => Promise<T> | T, T>(id: string, fn: V): ReturnType<V>\n span<V extends (trace: TraceNode) => Promise<T> | T, T>(inSpanId: string | TraceCtxParam, fn: V): ReturnType<V> {\n let ctx: TraceCtx;\n if (typeof inSpanId === \"string\") {\n ctx = {\n ...this.ctx,\n spanId: inSpanId,\n parent: this,\n };\n } else {\n ctx = {\n ...this.ctx,\n ...inSpanId,\n parent: this,\n };\n }\n if (ctx.logger) {\n ctx = {\n ...ctx,\n ...ctx.logger.Attributes(),\n };\n }\n const spanId = ctx.spanId;\n let spanTrace = this.childs.get(spanId);\n if (!spanTrace) {\n spanTrace = new TraceNode(ctx);\n this.childs.set(spanId.toString(), spanTrace);\n }\n const invokation: MarkWritable<MarkWritable<Invokaction, \"end\">, \"result\"> = {\n start: this.ctx.time.Now().getTime(),\n end: 0,\n result: \"success\",\n };\n spanTrace.invokations.push(invokation);\n try {\n const possiblePromise = fn(spanTrace);\n if (possiblePromise instanceof Promise) {\n return possiblePromise\n .then((v) => {\n return v;\n })\n .catch((e) => {\n invokation.result = \"error\";\n throw e;\n })\n .finally(() => {\n invokation.end = this.ctx.time.Now().getTime();\n }) as ReturnType<V>;\n }\n invokation.end = this.ctx.time.Now().getTime();\n return possiblePromise as ReturnType<V>;\n } catch (e) {\n invokation.result = \"error\";\n invokation.end = this.ctx.time.Now().getTime();\n throw e;\n }\n }\n}\n","export interface CTJsonWebKey {\n alg?: string;\n crv?: string;\n d?: string;\n dp?: string;\n dq?: string;\n e?: string;\n ext?: boolean;\n k?: string;\n key_ops?: string[];\n kty?: string;\n n?: string;\n oth?: RsaOtherPrimesInfo[];\n p?: string;\n q?: string;\n qi?: string;\n use?: string;\n x?: string;\n y?: string;\n}\n\nexport type CTKeyFormat = \"jwk\" | \"pkcs8\" | \"raw\" | \"spki\";\nexport type CTKeyUsage = \"decrypt\" | \"deriveBits\" | \"deriveKey\" | \"encrypt\" | \"sign\" | \"unwrapKey\" | \"verify\" | \"wrapKey\";\n\nexport interface CTAlgorithm {\n name: string;\n}\nexport type CTAlgorithmIdentifier = CTAlgorithm | string;\n\nexport interface CTRsaHashedImportParams extends CTAlgorithm {\n hash: CTAlgorithmIdentifier;\n}\n\nexport type CTNamedCurve = string;\nexport interface CTEcKeyImportParams extends CTAlgorithm {\n namedCurve: CTNamedCurve;\n}\n\nexport interface CTHmacImportParams extends CTAlgorithm {\n hash: CTAlgorithmIdentifier;\n length?: number;\n}\n\nexport interface CTAesKeyAlgorithm extends CTAlgorithm {\n length: number;\n}\n\nexport type CTKeyType = \"private\" | \"public\" | \"secret\";\n\nexport interface CTCryptoKey {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/algorithm) */\n readonly algorithm: CTAlgorithm;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/extractable) */\n readonly extractable: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/type) */\n readonly type: CTKeyType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/usages) */\n readonly usages: CTKeyUsage[];\n}\n\ninterface CTArrayBufferTypes {\n ArrayBuffer: ArrayBuffer;\n}\ntype CTArrayBufferLike = CTArrayBufferTypes[keyof CTArrayBufferTypes];\n\nexport interface CTArrayBufferView {\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n buffer: CTArrayBufferLike;\n\n /**\n * The length in bytes of the array.\n */\n byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n byteOffset: number;\n}\n\nexport type CTBufferSource = CTArrayBufferView | ArrayBuffer | Uint8Array;\n\nexport interface CryptoRuntime {\n importKey(\n format: CTKeyFormat,\n keyData: CTJsonWebKey | CTBufferSource,\n algorithm: CTAlgorithmIdentifier | CTRsaHashedImportParams | CTEcKeyImportParams | CTHmacImportParams | CTAesKeyAlgorithm,\n extractable: boolean,\n keyUsages: CTKeyUsage[],\n ): Promise<CTCryptoKey>;\n exportKey(format: CTKeyFormat, key: CTCryptoKey): Promise<CTJsonWebKey | ArrayBuffer>;\n\n //(format: \"raw\", key: ArrayBuffer, algo: string, extractable: boolean, usages: string[]) => Promise<CryptoKey>;\n decrypt(algo: { name: string; iv: Uint8Array; tagLength: number }, key: CTCryptoKey, data: Uint8Array): Promise<ArrayBuffer>;\n encrypt(algo: { name: string; iv: Uint8Array; tagLength: number }, key: CTCryptoKey, data: Uint8Array): Promise<ArrayBuffer>;\n digestSHA256(data: Uint8Array): Promise<ArrayBuffer>;\n randomBytes(size: number): Uint8Array;\n}\n\nfunction randomBytes(size: number): Uint8Array {\n const bytes = new Uint8Array(size);\n if (size > 0) {\n crypto.getRandomValues(bytes);\n }\n return bytes;\n}\n\nfunction digestSHA256(data: Uint8Array): Promise<ArrayBuffer> {\n return Promise.resolve(crypto.subtle.digest(\"SHA-256\", data));\n}\n\nexport function toCryptoRuntime(cryptoOpts: Partial<CryptoRuntime> = {}): CryptoRuntime {\n const runtime = {\n importKey: cryptoOpts.importKey || crypto.subtle.importKey.bind(crypto.subtle),\n exportKey: cryptoOpts.exportKey || crypto.subtle.exportKey.bind(crypto.subtle),\n encrypt: cryptoOpts.encrypt || crypto.subtle.encrypt.bind(crypto.subtle),\n decrypt: cryptoOpts.decrypt || crypto.subtle.decrypt.bind(crypto.subtle),\n randomBytes: cryptoOpts.randomBytes || randomBytes,\n digestSHA256: cryptoOpts.digestSHA256 || digestSHA256,\n };\n // console.log(\"cryptoOpts\", cryptoOpts, opts)\n return runtime;\n}\n","export const VERSION = Object.keys({\n __packageVersion__: \"xxxx\",\n})[0] as string;\n","export class HeadersImpl extends Headers {\n readonly _headers: Map<string, string>;\n\n constructor(init: Map<string, string>) {\n super();\n this._headers = init;\n }\n\n override [Symbol.iterator](): IterableIterator<[string, string]> {\n return this.entries();\n }\n\n override entries(): IterableIterator<[string, string]> {\n return this._headers.entries();\n }\n override keys(): IterableIterator<string> {\n return this._headers.keys();\n }\n override values(): IterableIterator<string> {\n return this._headers.values();\n }\n\n override append(key: string, value: string | string[] | undefined): HeadersImpl {\n const values = this._headers.get(key);\n if (typeof value === \"undefined\") {\n value = \"\";\n }\n if (Array.isArray(value)) {\n this._headers.set(key, [values, ...value].filter((i) => i).join(\", \"));\n } else {\n this._headers.set(key, [values, value].filter((i) => i).join(\", \"));\n }\n return this;\n }\n}\n\nexport class HttpHeader {\n readonly _headers: Map<string, string[]> = new Map<string, string[]>();\n\n static from(headers?: HeadersInit | NodeJS.Dict<string | string[]> | Headers | HttpHeader): HttpHeader {\n if (headers instanceof HttpHeader) {\n return headers.Clone();\n }\n const h = new HttpHeader();\n if (headers) {\n if (Array.isArray(headers)) {\n for (const [k, v] of headers) {\n if (v) {\n h.Add(k, v);\n }\n }\n } else if (headers instanceof Headers) {\n for (const [k, v] of headers.entries()) {\n if (v) {\n h.Add(\n k,\n v.split(\",\").map((v) => v.trim()),\n );\n }\n }\n } else {\n for (const k in headers) {\n const v = (headers as Record<string, string | string[]>)[k];\n (Array.isArray(v) ? v : [v]).forEach((v) => {\n h.Add(k, v);\n });\n }\n }\n }\n return h;\n }\n\n _asStringString(): Map<string, string> {\n const ret = new Map<string, string>();\n for (const [key, values] of this._headers) {\n ret.set(key, values.join(\", \"));\n }\n return ret;\n }\n\n _key(key: string): string {\n return key.toLowerCase();\n }\n Values(key: string): string[] {\n const values = this._headers.get(this._key(key));\n return values || [];\n }\n Get(key: string): string | undefined {\n const values = this._headers.get(this._key(key));\n if (values === undefined || values.length === 0) {\n return undefined;\n }\n return values[0];\n }\n Set(key: string, valueOr: string | string[]): HttpHeader {\n const value = Array.isArray(valueOr) ? valueOr : [valueOr];\n this._headers.set(this._key(key), value);\n return this;\n }\n Add(key: string, value: string | string[] | undefined): HttpHeader {\n if (typeof value === \"undefined\") {\n return this;\n }\n const vs = Array.isArray(value) ? value : [value];\n const values = this._headers.get(this._key(key));\n if (values === undefined) {\n this._headers.set(this._key(key), vs);\n } else {\n values.push(...vs);\n }\n return this;\n }\n Del(ey: string): HttpHeader {\n this._headers.delete(this._key(ey));\n return this;\n }\n Items(): [string, string[]][] {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return Array.from(this._headers).filter(([_, vs]) => vs.length > 0);\n }\n SortItems(): [string, string[]][] {\n return this.Items().sort(([[a]], [[b]]) => a.localeCompare(b));\n }\n Clone(): HttpHeader {\n const clone = new HttpHeader();\n for (const [key, values] of this._headers.entries()) {\n clone._headers.set(key, values.slice());\n }\n return clone;\n }\n AsRecordStringStringArray(): Record<string, string[]> {\n const obj: Record<string, string[]> = {};\n for (const [key, values] of this._headers.entries()) {\n obj[key] = [...values];\n }\n return obj;\n }\n AsRecordStringString(): Record<string, string> {\n const obj: Record<string, string> = {};\n for (const [key, values] of this._headers.entries()) {\n obj[key] = values.join(\", \");\n }\n return obj;\n }\n AsHeaderInit(): HeadersInit {\n const obj: HeadersInit = {};\n for (const [key, values] of this._headers.entries()) {\n obj[key] = values[0];\n }\n return obj;\n }\n AsHeaders(): Headers {\n return new HeadersImpl(this._asStringString());\n }\n Merge(other?: HttpHeader): HttpHeader {\n const ret = this.Clone();\n if (other) {\n for (const [key, values] of other.Items()) {\n ret.Add(key, values);\n }\n }\n return ret;\n }\n}\n"],"mappings":"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","names":["key","key","v"]}
package/node/index.cjs CHANGED
@@ -38,7 +38,6 @@ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "
38
38
  var node_exports = {};
39
39
  __export(node_exports, {
40
40
  MockFileService: () => MockFileService,
41
- NodeEnvActions: () => NodeEnvActions,
42
41
  NodeExitServiceImpl: () => NodeExitServiceImpl,
43
42
  NodeFileService: () => NodeFileService,
44
43
  NodeSysAbstraction: () => NodeSysAbstraction,
@@ -156,9 +155,9 @@ var SysTime = class extends Time {
156
155
  return /* @__PURE__ */ new Date();
157
156
  }
158
157
  Sleep(duration) {
159
- return new Promise((resolve2) => {
158
+ return new Promise((resolve) => {
160
159
  setTimeout(() => {
161
- resolve2();
160
+ resolve();
162
161
  }, duration);
163
162
  });
164
163
  }
@@ -348,8 +347,8 @@ var Future = class {
348
347
  __privateAdd(this, _rejectFn, () => {
349
348
  throw new Error("This Promise is not working as expected.");
350
349
  });
351
- __privateSet(this, _promise, new Promise((resolve2, reject) => {
352
- __privateSet(this, _resolveFn, resolve2);
350
+ __privateSet(this, _promise, new Promise((resolve, reject) => {
351
+ __privateSet(this, _resolveFn, resolve);
353
352
  __privateSet(this, _rejectFn, reject);
354
353
  }));
355
354
  }
@@ -515,12 +514,7 @@ function runtimeFn() {
515
514
  };
516
515
  }
517
516
 
518
- // src/deno/deno-file-service.ts
519
- var path2 = __toESM(require("path"), 1);
520
- var Deno = globalThis.Deno;
521
-
522
- // src/deno/deno-sys-abstraction.ts
523
- var Deno2 = globalThis.Deno;
517
+ // src/deno/deno-env-actions.ts
524
518
  var once = new ResolveOnce();
525
519
  var _deno;
526
520
  var _DenoEnvActions = class _DenoEnvActions {
@@ -560,97 +554,55 @@ var _DenoEnvActions = class _DenoEnvActions {
560
554
  };
561
555
  _deno = new WeakMap();
562
556
  var DenoEnvActions = _DenoEnvActions;
563
- var DenoExitServiceImpl = class {
564
- constructor() {
565
- this._exitHandlers = [];
566
- this.invoked = false;
567
- this._handleExit = async () => {
568
- if (this.invoked) {
569
- return;
570
- }
571
- this.invoked = true;
572
- for (const h of this._exitHandlers) {
573
- try {
574
- const ret = h.hdl();
575
- if (typeof ret.then === "function") {
576
- await ret;
577
- }
578
- } finally {
579
- }
580
- }
581
- };
582
- globalThis.addEventListener("unhandledrejection", (e) => {
583
- e.preventDefault();
584
- this.exit(19);
585
- });
586
- globalThis.addEventListener("error", () => {
587
- this.exit(19);
588
- });
589
- globalThis.addEventListener("uncaughtException", () => {
590
- this.exit(19);
591
- });
592
- globalThis.addEventListener("unload", () => {
593
- this.exit(0);
594
- });
595
- Deno2.addSignalListener("SIGQUIT", () => {
596
- this.exit(3);
597
- });
598
- Deno2.addSignalListener("SIGINT", () => {
599
- this.exit(2);
600
- });
601
- Deno2.addSignalListener("SIGTERM", () => {
602
- this.exit(9);
603
- });
557
+
558
+ // src/node/node-env-actions.ts
559
+ var once2 = new ResolveOnce();
560
+ var _node;
561
+ var _NodeEnvActions = class _NodeEnvActions {
562
+ constructor(opts) {
563
+ __privateAdd(this, _node, globalThis);
564
+ this._env = this.active() ? __privateGet(this, _node).process.env : {};
565
+ this.opts = opts;
604
566
  }
605
- injectExitHandlers(hdls) {
606
- this._exitHandlers = hdls;
567
+ static new(opts) {
568
+ return once2.once(() => new _NodeEnvActions(opts));
607
569
  }
608
- exit(code) {
609
- this._handleExit().then(() => {
610
- Deno2.exit(code);
611
- }).catch((err) => {
612
- console.error("ExitService: failed to handle exit", err);
613
- Deno2.exit(code);
614
- });
570
+ register(env) {
571
+ for (const key of env.keys()) {
572
+ this._env[key] = env.get(key) || "";
573
+ }
574
+ return env;
615
575
  }
616
- };
617
- var _DenoSystemService = class _DenoSystemService {
618
- constructor() {
619
- this._exitService = new DenoExitServiceImpl();
620
- this._exitService.injectExitHandlers(_DenoSystemService._exitHandlers);
576
+ active() {
577
+ return runtimeFn().isNodeIsh;
621
578
  }
622
- Env() {
623
- return envFactory();
579
+ keys() {
580
+ return Object.keys(this._env);
624
581
  }
625
- Args() {
626
- return Deno2.args;
582
+ get(key) {
583
+ return this._env[key];
627
584
  }
628
- OnExit(hdl) {
629
- const id = crypto.randomUUID();
630
- _DenoSystemService._exitHandlers.push({ hdl, id });
631
- return () => {
632
- const idx = _DenoSystemService._exitHandlers.findIndex((h) => h.id === id);
633
- if (idx >= 0) {
634
- _DenoSystemService._exitHandlers.splice(idx, 1);
635
- }
636
- };
585
+ set(key, value) {
586
+ if (value) {
587
+ this._env[key] = value;
588
+ }
637
589
  }
638
- Exit(code) {
639
- this._exitService.exit(code);
590
+ delete(key) {
591
+ delete this._env[key];
640
592
  }
641
593
  };
642
- _DenoSystemService._exitHandlers = [];
643
- var DenoSystemService = _DenoSystemService;
594
+ _node = new WeakMap();
595
+ var NodeEnvActions = _NodeEnvActions;
644
596
 
645
- // src/web/web-sys-abstraction.ts
646
- var once2 = new ResolveOnce();
597
+ // src/web/web-env-actions.ts
598
+ var once3 = new ResolveOnce();
647
599
  var BrowserEnvActions = class _BrowserEnvActions {
648
600
  constructor(opts) {
649
601
  this.env = /* @__PURE__ */ new Map();
650
602
  this.opts = opts;
651
603
  }
652
604
  static new(opts) {
653
- return once2.once(() => new _BrowserEnvActions(opts));
605
+ return once3.once(() => new _BrowserEnvActions(opts));
654
606
  }
655
607
  get(key) {
656
608
  return this.env.get(key);
@@ -677,30 +629,37 @@ var BrowserEnvActions = class _BrowserEnvActions {
677
629
  }
678
630
  };
679
631
 
680
- // src/cf/cf-sys-abstraction.ts
681
- var once3 = new ResolveOnce();
632
+ // src/cf/cf-env-actions.ts
633
+ var once4 = new ResolveOnce();
682
634
  var CFEnvActions = class _CFEnvActions {
635
+ constructor(env) {
636
+ this.injectOnRegister = {};
637
+ this.cfEnv = new Map(Object.entries(env.presetEnv || {}));
638
+ }
683
639
  static new(opts) {
684
- return once3.once(() => new _CFEnvActions(opts));
640
+ return once4.once(() => new _CFEnvActions(opts));
685
641
  }
686
642
  static inject(o) {
687
- var _a;
688
643
  const env = _CFEnvActions.new({});
689
644
  for (const key in o) {
690
645
  const value = o[key];
691
646
  if (typeof value === "string") {
692
- (_a = env.env) == null ? void 0 : _a.set(key, value);
647
+ if (env.env) {
648
+ env.env.set(key, value);
649
+ } else {
650
+ env.injectOnRegister[key] = value;
651
+ }
693
652
  }
694
653
  }
695
654
  }
696
- constructor(env) {
697
- this.cfEnv = new Map(Object.entries(env.presetEnv || {}));
698
- }
699
655
  active() {
700
656
  return runtimeFn().isCFWorker;
701
657
  }
702
658
  register(env) {
703
659
  this.env = env;
660
+ for (const key in this.injectOnRegister) {
661
+ env.set(key, this.injectOnRegister[key]);
662
+ }
704
663
  return env;
705
664
  }
706
665
  get(key) {
@@ -734,12 +693,12 @@ function envFactory(opts = {}) {
734
693
  }
735
694
  return _envFactories.get(found.id).once(() => {
736
695
  const action = found.fn(opts);
737
- const ret = new EnvImpl2(action, opts);
696
+ const ret = new EnvImpl(action, opts);
738
697
  action.register(ret);
739
698
  return ret;
740
699
  });
741
700
  }
742
- var EnvImpl2 = class {
701
+ var EnvImpl = class {
743
702
  constructor(map, opts = {}) {
744
703
  this._onSet = [];
745
704
  this._map = map;
@@ -809,43 +768,6 @@ var EnvImpl2 = class {
809
768
 
810
769
  // src/node/node-sys-abstraction.ts
811
770
  var import_node_process2 = __toESM(require("process"), 1);
812
- var once4 = new ResolveOnce();
813
- var _node;
814
- var _NodeEnvActions = class _NodeEnvActions {
815
- constructor(opts) {
816
- __privateAdd(this, _node, globalThis);
817
- this._env = this.active() ? __privateGet(this, _node).process.env : {};
818
- this.opts = opts;
819
- }
820
- static new(opts) {
821
- return once4.once(() => new _NodeEnvActions(opts));
822
- }
823
- register(env) {
824
- for (const key of env.keys()) {
825
- this._env[key] = env.get(key) || "";
826
- }
827
- return env;
828
- }
829
- active() {
830
- return runtimeFn().isNodeIsh;
831
- }
832
- keys() {
833
- return Object.keys(this._env);
834
- }
835
- get(key) {
836
- return this._env[key];
837
- }
838
- set(key, value) {
839
- if (value) {
840
- this._env[key] = value;
841
- }
842
- }
843
- delete(key) {
844
- delete this._env[key];
845
- }
846
- };
847
- _node = new WeakMap();
848
- var NodeEnvActions = _NodeEnvActions;
849
771
  var NodeExitServiceImpl = class {
850
772
  constructor() {
851
773
  this._exitHandlers = [];
@@ -977,7 +899,6 @@ var MockFileService = class extends NodeFileService {
977
899
  // Annotate the CommonJS export names for ESM import in node:
978
900
  0 && (module.exports = {
979
901
  MockFileService,
980
- NodeEnvActions,
981
902
  NodeExitServiceImpl,
982
903
  NodeFileService,
983
904
  NodeSysAbstraction,