@adviser/cement 0.2.4 → 0.2.6
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/{chunk-WZMCPT2R.js → chunk-BEOYQN5I.js} +2 -2
- package/{chunk-X4Z6DNDD.js → chunk-LK3TUJH3.js} +10 -5
- package/chunk-LK3TUJH3.js.map +1 -0
- package/index.cjs +256 -19
- package/index.cjs.map +1 -1
- package/index.d.cts +140 -10
- package/index.d.ts +140 -10
- package/index.js +243 -16
- package/index.js.map +1 -1
- package/node/index.cjs.map +1 -1
- package/node/index.js +1 -1
- package/package.json +10 -7
- package/utils/index.cjs +3 -1
- package/utils/index.cjs.map +1 -1
- package/utils/index.js +3 -1
- package/utils/index.js.map +1 -1
- package/web/index.cjs.map +1 -1
- package/web/index.js +2 -2
- package/chunk-X4Z6DNDD.js.map +0 -1
- /package/{chunk-WZMCPT2R.js.map → chunk-BEOYQN5I.js.map} +0 -0
@@ -2,7 +2,7 @@ import {
|
|
2
2
|
BaseSysAbstraction,
|
3
3
|
WrapperSysAbstraction,
|
4
4
|
envFactory
|
5
|
-
} from "./chunk-
|
5
|
+
} from "./chunk-LK3TUJH3.js";
|
6
6
|
|
7
7
|
// src/web/web_sys_abstraction.ts
|
8
8
|
var WebFileService = class {
|
@@ -80,4 +80,4 @@ function WebSysAbstraction(param) {
|
|
80
80
|
export {
|
81
81
|
WebSysAbstraction
|
82
82
|
};
|
83
|
-
//# sourceMappingURL=chunk-
|
83
|
+
//# sourceMappingURL=chunk-BEOYQN5I.js.map
|
@@ -93,12 +93,17 @@ var ResolveSeq = class {
|
|
93
93
|
if (!item) {
|
94
94
|
return;
|
95
95
|
}
|
96
|
-
item.fn(this.ctx).then((value) => item.future.resolve(value)).catch((e) => item.future.reject(e)).finally(() =>
|
96
|
+
item.fn(this.ctx).then((value) => item.future.resolve(value)).catch((e) => item.future.reject(e)).finally(() => {
|
97
|
+
this._seqFutures.shift();
|
98
|
+
this._step(this._seqFutures[0]);
|
99
|
+
});
|
97
100
|
}
|
98
|
-
async add(fn) {
|
101
|
+
async add(fn, id) {
|
99
102
|
const future = new Future();
|
100
|
-
this._seqFutures.push({ future, fn });
|
101
|
-
|
103
|
+
this._seqFutures.push({ future, fn, id });
|
104
|
+
if (this._seqFutures.length === 1) {
|
105
|
+
this._step(this._seqFutures[0]);
|
106
|
+
}
|
102
107
|
return future.asPromise();
|
103
108
|
}
|
104
109
|
};
|
@@ -579,4 +584,4 @@ export {
|
|
579
584
|
envFactory,
|
580
585
|
EnvImpl
|
581
586
|
};
|
582
|
-
//# sourceMappingURL=chunk-
|
587
|
+
//# sourceMappingURL=chunk-LK3TUJH3.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../src/sys_abstraction.ts","../../src/time.ts","../../src/future.ts","../../src/resolve-once.ts","../../src/sys_env.ts","../../src/base_sys_abstraction.ts"],"sourcesContent":["import { FileService } from \"./file_service\";\nimport { Env } from \"./sys_env\";\nimport { Time } from \"./time\";\n\nexport enum TimeMode {\n REAL = \"real\",\n CONST = \"const\",\n STEP = \"step\",\n}\n\nexport enum RandomMode {\n CONST = \"const\",\n STEP = \"step\",\n RANDOM = \"random\",\n}\n\nexport enum IDMode {\n UUID = \"uuid\",\n CONST = \"const\",\n STEP = \"step\",\n}\n\nexport function String2TimeMode(s?: string): TimeMode {\n switch (s?.toLowerCase()) {\n case \"real\":\n return TimeMode.REAL;\n case \"const\":\n return TimeMode.CONST;\n case \"step\":\n return TimeMode.STEP;\n default:\n return TimeMode.REAL;\n }\n}\n\nexport type VoidFunc = () => void | Promise<void>;\n\nexport interface SystemService {\n Env(): Env;\n Args(): string[];\n OnExit(hdl: VoidFunc): VoidFunc;\n Exit(code: number): void;\n}\n\nexport interface SysAbstraction {\n Time(): Time;\n Stdout(): WritableStream<Uint8Array>;\n Stderr(): WritableStream<Uint8Array>;\n NextId(): string;\n Random0ToValue(value: number): number;\n System(): SystemService;\n FileSystem(): FileService;\n}\n","export abstract class Time {\n abstract Now(): Date;\n abstract Sleep(duration: Duration): Promise<void>;\n TimeSince(start: Date): Duration {\n const now = this.Now();\n return now.getTime() - start.getTime();\n }\n}\n\nexport type Duration = number;\n\nexport enum TimeUnits {\n Microsecond = 1,\n // eslint-disable-next-line @typescript-eslint/prefer-literal-enum-member\n Second = 1000 * Microsecond,\n // eslint-disable-next-line @typescript-eslint/prefer-literal-enum-member\n Minute = 60 * Second,\n // eslint-disable-next-line @typescript-eslint/prefer-literal-enum-member\n Hour = 60 * Minute,\n}\n","export class Future<T> {\n readonly #promise: Promise<T>;\n #resolveFn: (value: T) => void = () => {\n throw new Error(\"This Promise is not working as expected.\");\n };\n #rejectFn: (reason: unknown) => void = () => {\n throw new Error(\"This Promise is not working as expected.\");\n };\n\n constructor() {\n this.#promise = new Promise<T>((resolve, reject) => {\n this.#resolveFn = resolve;\n this.#rejectFn = reject;\n });\n }\n\n async asPromise(): Promise<T> {\n return this.#promise;\n }\n\n resolve(value: T) {\n this.#resolveFn(value);\n }\n reject(reason: unknown) {\n this.#rejectFn(reason);\n }\n}\n","import { Future } from \"./future\";\n\ninterface ResolveSeqItem<T, C> {\n readonly future: Future<T>;\n readonly fn: (c: C) => Promise<T>;\n readonly id?: number;\n}\n\nexport class ResolveSeq<T, C = void> {\n readonly ctx: C;\n constructor(ctx?: C) {\n this.ctx = ctx as C;\n }\n reset() {\n /* noop */\n }\n async _step(item?: ResolveSeqItem<T, C> | undefined) {\n if (!item) {\n // done\n return;\n }\n item\n .fn(this.ctx)\n .then((value) => item.future.resolve(value))\n .catch((e) => item.future.reject(e as Error))\n .finally(() => {\n this._seqFutures.shift();\n this._step(this._seqFutures[0]);\n });\n }\n readonly _seqFutures: ResolveSeqItem<T, C>[] = [];\n async add(fn: (c: C) => Promise<T>, id?: number): Promise<T> {\n const future = new Future<T>();\n this._seqFutures.push({ future, fn, id });\n if (this._seqFutures.length === 1) {\n this._step(this._seqFutures[0]);\n }\n return future.asPromise();\n }\n}\n\nexport class ResolveOnce<T, CTX = void> {\n _onceDone = false;\n readonly _onceFutures: Future<T>[] = [];\n _onceOk = false;\n _onceValue?: T;\n _onceError?: Error;\n _isPromise = false;\n\n readonly ctx: CTX;\n\n constructor(ctx?: CTX) {\n this.ctx = ctx as CTX;\n }\n\n get ready() {\n return this._onceDone;\n }\n\n reset() {\n this._onceDone = false;\n this._onceOk = false;\n this._onceValue = undefined;\n this._onceError = undefined;\n this._onceFutures.length = 0;\n }\n\n // T extends Option<infer U> ? U : T\n once<R>(fn: (c: CTX) => R): R {\n if (this._onceDone) {\n if (this._onceError) {\n if (this._isPromise) {\n return Promise.reject(this._onceError) as unknown as R;\n } else {\n throw this._onceError;\n }\n }\n if (this._onceOk) {\n if (this._isPromise) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return Promise.resolve(this._onceValue!) as unknown as R;\n } else {\n return this._onceValue as unknown as R;\n }\n }\n throw new Error(\"ResolveOnce.once impossible\");\n }\n const future = new Future<T>();\n this._onceFutures.push(future);\n if (this._onceFutures.length === 1) {\n const okFn = (value: T) => {\n this._onceValue = value;\n this._onceOk = true;\n this._onceDone = true;\n if (this._isPromise) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this._onceFutures.forEach((f) => f.resolve(this._onceValue!));\n }\n this._onceFutures.length = 0;\n };\n const catchFn = (e: Error) => {\n this._onceError = e as Error;\n this._onceOk = false;\n this._onceValue = undefined;\n this._onceDone = true;\n if (this._isPromise) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this._onceFutures.forEach((f) => f.reject(this._onceError!));\n }\n this._onceFutures.length = 0;\n };\n try {\n const ret = fn(this.ctx);\n if (typeof (ret as Promise<T>).then === \"function\") {\n this._isPromise = true;\n (ret as Promise<T>).then(okFn).catch(catchFn);\n } else {\n okFn(ret as unknown as T);\n }\n } catch (e) {\n catchFn(e as Error);\n }\n }\n if (this._isPromise) {\n return future.asPromise() as unknown as R;\n } else {\n // abit funky but i don't want to impl the return just once\n return this.once(fn);\n }\n }\n}\n\nexport class Keyed<T extends { reset: () => void }, K = string> {\n private readonly _map = new Map<K, T>();\n\n readonly factory: (key: K) => T;\n constructor(factory: (key: K) => T) {\n this.factory = factory;\n }\n\n async asyncGet(key: () => Promise<K>): Promise<T> {\n return this.get(await key());\n }\n\n get(key: K | (() => K)): T {\n if (typeof key === \"function\") {\n key = (key as () => K)();\n }\n let keyed = this._map.get(key);\n if (!keyed) {\n keyed = this.factory(key);\n this._map.set(key, keyed);\n }\n return keyed;\n }\n\n reset() {\n this._map.forEach((keyed) => keyed.reset());\n this._map.clear();\n }\n}\n\nexport class KeyedResolvOnce<T, K = string> extends Keyed<ResolveOnce<T, K>, K> {\n constructor() {\n super((key) => new ResolveOnce<T, K>(key));\n }\n}\n\nexport class KeyedResolvSeq<T, K = string> extends Keyed<ResolveSeq<T, K>, K> {\n constructor() {\n super((key) => new ResolveSeq<T, K>(key));\n }\n}\n","import { ResolveOnce } from \"./resolve-once\";\n\nexport interface EnvMap {\n get(key: string): string | undefined;\n set(key: string, value?: string): void;\n delete(key: string): void;\n keys(): string[];\n}\nexport interface EnvActions extends EnvMap {\n active(): boolean;\n register(env: Env): Env;\n}\n\nclass NodeEnvActions implements EnvActions {\n readonly #node = globalThis as unknown as { process: { env: Record<string, string> } };\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor, @typescript-eslint/no-unused-vars\n constructor(opts: Partial<EnvFactoryOpts>) {\n // do nothing\n }\n\n register(env: Env): Env {\n return env;\n }\n\n active(): boolean {\n return typeof this.#node === \"object\" && typeof this.#node.process === \"object\" && typeof this.#node.process.env === \"object\";\n }\n readonly _env = this.active() ? this.#node.process.env : {};\n keys(): string[] {\n return Object.keys(this._env);\n }\n get(key: string): string | undefined {\n return this._env[key];\n }\n set(key: string, value?: string): void {\n if (value) {\n this._env[key] = value;\n }\n }\n delete(key: string): void {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._env[key];\n }\n}\n\nclass DenoEnvActions implements EnvActions {\n readonly #deno = globalThis as unknown as { Deno: { env: Map<string, string> } };\n\n get _env(): Map<string, string> {\n return this.#deno.Deno.env;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor, @typescript-eslint/no-unused-vars\n constructor(opts: Partial<EnvFactoryOpts>) {\n // do nothing\n }\n\n register(env: Env): Env {\n return env;\n }\n active(): boolean {\n return typeof this.#deno === \"object\" && typeof this.#deno.Deno === \"object\" && typeof this.#deno.Deno.env === \"object\";\n }\n keys(): string[] {\n return Array.from(this._env.keys());\n }\n get(key: string): string | undefined {\n return this._env.get(key);\n }\n set(key: string, value?: string): void {\n if (value) {\n this._env.set(key, value);\n }\n }\n delete(key: string): void {\n this._env.delete(key);\n }\n}\n\nexport class BrowserEnvActions implements EnvActions {\n readonly env = new Map<string, string>();\n readonly opts: Partial<EnvFactoryOpts>;\n constructor(opts: Partial<EnvFactoryOpts>) {\n this.opts = opts;\n }\n\n get(key: string): string | undefined {\n return this.env.get(key);\n }\n set(key: string, value?: string): void {\n if (value) {\n this.env.set(key, value);\n }\n }\n delete(key: string): void {\n this.env.delete(key);\n }\n keys(): string[] {\n return Array.from(this.env.keys());\n }\n active(): boolean {\n return true; // that should work on every runtime\n }\n\n register(env: Env): Env {\n const sym = Symbol.for(this.opts.symbol || \"CP_ENV\");\n const browser = globalThis as unknown as Record<symbol, Env>;\n browser[sym] = env;\n return env;\n }\n}\n\ninterface EnvFactoryOpts {\n readonly symbol: string; // default \"CP_ENV\" used by BrowserEnvActions\n readonly presetEnv: Map<string, string>;\n}\n\ntype OnSetFn = (key: string, value?: string) => void;\nexport interface OnSetItem {\n readonly filter: Set<string>;\n readonly fn: OnSetFn;\n}\n\nexport interface Env extends EnvMap {\n onSet(fn: OnSetFn, ...filter: string[]): void;\n}\n\nconst _envFactory = new ResolveOnce<Env>();\nexport function envFactory(opts: Partial<Omit<EnvFactoryOpts, \"action\">> = {}): Env {\n return _envFactory.once(() => {\n const found = [new NodeEnvActions(opts), new DenoEnvActions(opts), new BrowserEnvActions(opts)].find((env) => env.active());\n if (!found) {\n throw new Error(\"SysContainer:envFactory: no env available\");\n }\n const ret = new EnvImpl(found, opts);\n found.register(ret);\n return ret;\n });\n}\n\nexport class EnvImpl implements Env {\n readonly _map: EnvMap;\n constructor(map: EnvMap, opts: Partial<EnvFactoryOpts> = {}) {\n this._map = map;\n this._updatePresets(opts.presetEnv);\n }\n _updatePresets(presetEnv?: Map<string, string>): void {\n if (!presetEnv) {\n return;\n }\n for (const [key, value] of presetEnv) {\n this._map.set(key, value);\n }\n }\n _applyOnSet(onSet: OnSetItem[], key?: string, value?: string): void {\n onSet.forEach((item) => {\n let keys: string[] = [];\n if (key) {\n keys = [key];\n } else {\n keys = this._map.keys();\n }\n keys\n .filter((k) => {\n if (item.filter.size === 0) {\n return true;\n }\n if (item.filter.has(k)) {\n return true;\n }\n return false;\n })\n .forEach((k) => {\n let v;\n if (!key && !value) {\n // init\n v = this._map.get(k);\n } else if (key && !value) {\n // del\n v = undefined;\n } else {\n // set\n v = value;\n }\n item.fn(k, v);\n });\n });\n }\n readonly _onSet: OnSetItem[] = [];\n keys(): string[] {\n return this._map.keys();\n }\n // filter is not set all sets passed\n onSet(fn: OnSetFn, ...filter: string[]): void {\n const item: OnSetItem = { filter: new Set(filter), fn };\n this._onSet.push(item);\n this._applyOnSet([item]);\n }\n get(key: string): string | undefined {\n return this._map.get(key);\n }\n set(key: string, value?: string): void {\n if (!value) {\n return;\n }\n this._map.set(key, value);\n this._applyOnSet(this._onSet, key, value);\n }\n delete(key: string): void {\n this._map.delete(key);\n this._applyOnSet(this._onSet, key);\n }\n}\n\n// export const envImpl = new EnvImpl();\n","import { FileService } from \"./file_service\";\nimport { TimeMode, RandomMode, IDMode, SystemService, VoidFunc, SysAbstraction } from \"./sys_abstraction\";\nimport { Time } from \"./time\";\n\nexport class SysTime extends Time {\n Now(): Date {\n return new Date();\n }\n Sleep(duration: number): Promise<void> {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve();\n }, duration);\n });\n }\n}\n\nexport class ConstTime extends Time {\n Now(): Date {\n return new Date(2021, 1, 1, 0, 0, 0, 0);\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Sleep(duration: number): Promise<void> {\n return Promise.resolve();\n }\n}\n\nexport class StepTime extends Time {\n _step: Date;\n constructor() {\n super();\n this._step = new ConstTime().Now();\n }\n Now() {\n if (this._step.getTime() === 0) {\n this._step = new ConstTime().Now();\n return this._step;\n }\n this._step = new Date(this._step.getTime() + 1000);\n return this._step;\n }\n Sleep(duration: number): Promise<void> {\n this._step = new Date(this._step.getTime() + duration);\n return Promise.resolve();\n }\n}\n\nexport function TimeFactory(timeMode: TimeMode): Time {\n switch (timeMode) {\n case TimeMode.REAL:\n return new SysTime();\n case TimeMode.CONST:\n return new ConstTime();\n case TimeMode.STEP:\n return new StepTime();\n }\n return new SysTime();\n}\n\nexport class RandomService {\n readonly _mode: RandomMode;\n _step = 0;\n constructor(mode: RandomMode) {\n this._mode = mode;\n }\n Random0ToValue(value: number): number {\n switch (this._mode) {\n case RandomMode.CONST:\n return 0.5 * value;\n case RandomMode.STEP:\n this._step += 0.0001;\n return this._step * value;\n case RandomMode.RANDOM:\n return Math.random() * value;\n default:\n throw new Error(\"Unknown RandomMode\");\n }\n }\n}\n\nexport class IdService {\n readonly _mode: IDMode;\n _step = 0;\n constructor(mode?: IDMode) {\n if (!mode) {\n mode = IDMode.UUID;\n }\n this._mode = mode;\n }\n NextId(): string {\n switch (this._mode) {\n case IDMode.UUID:\n return crypto.randomUUID();\n case IDMode.CONST:\n return \"VeryUniqueID\";\n case IDMode.STEP:\n return `STEPId-${this._step++}`;\n default:\n throw new Error(\"Unknown IDMode\");\n }\n }\n}\n\nexport interface BaseSysAbstractionParams {\n readonly FileSystem: FileService;\n readonly SystemService: SystemService;\n}\n\nexport interface ExitHandler {\n readonly hdl: VoidFunc;\n readonly id: string;\n}\n\nexport interface ExitService {\n injectExitHandlers(hdls: ExitHandler[]): void;\n exit(code: number): void;\n}\n\nconst decoder = new TextDecoder();\nexport class BaseSysAbstraction {\n readonly _time = new SysTime();\n readonly _stdout = new WritableStream({\n write(chunk) {\n return new Promise((resolve) => {\n const decoded = decoder.decode(chunk);\n // eslint-disable-next-line no-console\n console.log(decoded.trimEnd());\n resolve();\n });\n },\n });\n readonly _stderr = new WritableStream({\n write(chunk) {\n return new Promise((resolve) => {\n const decoded = decoder.decode(chunk);\n // eslint-disable-next-line no-console\n console.error(decoded.trimEnd());\n resolve();\n });\n },\n });\n\n readonly _idService = new IdService();\n readonly _randomService = new RandomService(RandomMode.RANDOM);\n readonly _fileSystem: FileService;\n readonly _systemService: SystemService;\n\n constructor(params: BaseSysAbstractionParams) {\n this._fileSystem = params.FileSystem;\n this._systemService = params.SystemService;\n }\n}\n\nexport interface WrapperSysAbstractionParams {\n readonly TimeMode?: TimeMode;\n readonly IdMode?: IDMode;\n readonly Stdout?: WritableStream<Uint8Array>;\n readonly Stderr?: WritableStream<Uint8Array>;\n readonly RandomMode?: RandomMode;\n readonly FileSystem?: FileService;\n readonly SystemService?: SystemService;\n}\n\nexport class WrapperSysAbstraction implements SysAbstraction {\n readonly _time: Time;\n readonly _stdout: WritableStream<Uint8Array>;\n readonly _stderr: WritableStream<Uint8Array>;\n readonly _idService: IdService;\n readonly _randomService: RandomService;\n readonly _fileSystem: FileService;\n readonly _systemService: SystemService;\n constructor(base: BaseSysAbstraction, params?: WrapperSysAbstractionParams) {\n this._time = base._time;\n this._stdout = base._stdout;\n this._stderr = base._stderr;\n this._idService = base._idService;\n this._randomService = base._randomService;\n this._fileSystem = base._fileSystem;\n this._systemService = base._systemService;\n if (params) {\n if (params.TimeMode) {\n this._time = TimeFactory(params.TimeMode);\n }\n if (params.Stdout) {\n this._stdout = params.Stdout;\n }\n if (params.Stderr) {\n this._stderr = params.Stderr;\n }\n if (params.IdMode) {\n this._idService = new IdService(params.IdMode);\n }\n if (params.RandomMode) {\n this._randomService = new RandomService(params.RandomMode);\n }\n if (params.FileSystem) {\n this._fileSystem = params.FileSystem;\n }\n if (params.SystemService) {\n this._systemService = params.SystemService;\n }\n }\n }\n Time(): Time {\n return this._time;\n }\n NextId(): string {\n return this._idService.NextId();\n }\n Random0ToValue(value: number): number {\n return this._randomService.Random0ToValue(value);\n }\n Stdout(): WritableStream {\n return this._stdout;\n }\n Stderr(): WritableStream {\n return this._stderr;\n }\n\n System(): SystemService {\n return this._systemService;\n }\n FileSystem(): FileService {\n return this._fileSystem;\n }\n}\n// export const BaseSysAbstraction = new BaseSysAbstractionImpl()\n"],"mappings":"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","names":["TimeMode","RandomMode","IDMode","TimeUnits"]}
|
package/index.cjs
CHANGED
@@ -75,6 +75,7 @@ var __yieldStar = (value) => {
|
|
75
75
|
var src_exports = {};
|
76
76
|
__export(src_exports, {
|
77
77
|
BrowserEnvActions: () => BrowserEnvActions,
|
78
|
+
BuildURI: () => BuildURI,
|
78
79
|
EnvImpl: () => EnvImpl,
|
79
80
|
Future: () => Future,
|
80
81
|
IDMode: () => IDMode,
|
@@ -102,9 +103,13 @@ __export(src_exports, {
|
|
102
103
|
Time: () => Time,
|
103
104
|
TimeMode: () => TimeMode,
|
104
105
|
TimeUnits: () => TimeUnits,
|
106
|
+
URI: () => URI,
|
107
|
+
asyncLogValue: () => asyncLogValue,
|
105
108
|
envFactory: () => envFactory,
|
106
109
|
logValue: () => logValue,
|
107
|
-
removeSelfRef: () => removeSelfRef
|
110
|
+
removeSelfRef: () => removeSelfRef,
|
111
|
+
runtimeFn: () => runtimeFn,
|
112
|
+
toCryptoRuntime: () => toCryptoRuntime
|
108
113
|
});
|
109
114
|
module.exports = __toCommonJS(src_exports);
|
110
115
|
|
@@ -137,6 +142,9 @@ function removeSelfRef() {
|
|
137
142
|
return value;
|
138
143
|
};
|
139
144
|
}
|
145
|
+
function asyncLogValue(val) {
|
146
|
+
throw new Error("Not implemented");
|
147
|
+
}
|
140
148
|
function logValue(val) {
|
141
149
|
switch (typeof val) {
|
142
150
|
case "function":
|
@@ -441,12 +449,17 @@ var ResolveSeq = class {
|
|
441
449
|
if (!item) {
|
442
450
|
return;
|
443
451
|
}
|
444
|
-
item.fn(this.ctx).then((value) => item.future.resolve(value)).catch((e) => item.future.reject(e)).finally(() =>
|
452
|
+
item.fn(this.ctx).then((value) => item.future.resolve(value)).catch((e) => item.future.reject(e)).finally(() => {
|
453
|
+
this._seqFutures.shift();
|
454
|
+
this._step(this._seqFutures[0]);
|
455
|
+
});
|
445
456
|
}
|
446
|
-
async add(fn) {
|
457
|
+
async add(fn, id) {
|
447
458
|
const future = new Future();
|
448
|
-
this._seqFutures.push({ future, fn });
|
449
|
-
|
459
|
+
this._seqFutures.push({ future, fn, id });
|
460
|
+
if (this._seqFutures.length === 1) {
|
461
|
+
this._step(this._seqFutures[0]);
|
462
|
+
}
|
450
463
|
return future.asPromise();
|
451
464
|
}
|
452
465
|
};
|
@@ -922,6 +935,30 @@ var LogWriter = class {
|
|
922
935
|
});
|
923
936
|
}
|
924
937
|
};
|
938
|
+
function getLen(value) {
|
939
|
+
if (Array.isArray(value)) {
|
940
|
+
return logValue(() => value.length);
|
941
|
+
} else if (typeof value === "string") {
|
942
|
+
return logValue(() => value.length);
|
943
|
+
} else if (typeof value === "object" && value !== null) {
|
944
|
+
if (typeof value.size === "number") {
|
945
|
+
return logValue(() => value.size);
|
946
|
+
} else if (typeof value.length === "number") {
|
947
|
+
return logValue(() => value.length);
|
948
|
+
}
|
949
|
+
return logValue(() => Object.keys(value).length);
|
950
|
+
}
|
951
|
+
return logValue(() => -1);
|
952
|
+
}
|
953
|
+
function hash(value) {
|
954
|
+
return "not implemented";
|
955
|
+
}
|
956
|
+
function toLogValue(lop) {
|
957
|
+
if (lop && typeof lop.then === "function") {
|
958
|
+
throw new Error("async logValue Not implemented");
|
959
|
+
}
|
960
|
+
return lop;
|
961
|
+
}
|
925
962
|
var LoggerImpl = class _LoggerImpl {
|
926
963
|
// readonly _id: string = "logger-" + Math.random().toString(36)
|
927
964
|
constructor(params) {
|
@@ -1031,15 +1068,11 @@ var LoggerImpl = class _LoggerImpl {
|
|
1031
1068
|
return this;
|
1032
1069
|
}
|
1033
1070
|
Len(value, key = "len") {
|
1034
|
-
|
1035
|
-
|
1036
|
-
|
1037
|
-
|
1038
|
-
|
1039
|
-
this._attributes[key] = logValue(() => Object.keys(value).length);
|
1040
|
-
} else {
|
1041
|
-
this.Int(key, -1);
|
1042
|
-
}
|
1071
|
+
this._attributes[key] = getLen(value);
|
1072
|
+
return this;
|
1073
|
+
}
|
1074
|
+
Hash(value, key = "hash") {
|
1075
|
+
this._attributes[key] = asyncLogValue(async () => `${getLen(value).value()}:${await hash(value)}`);
|
1043
1076
|
return this;
|
1044
1077
|
}
|
1045
1078
|
Url(url, key = "url") {
|
@@ -1097,7 +1130,7 @@ var LoggerImpl = class _LoggerImpl {
|
|
1097
1130
|
if (typeof msg === "string" && !msg.trim().length) {
|
1098
1131
|
delete attr["msg"];
|
1099
1132
|
}
|
1100
|
-
if (((_a = attr["ts"]) == null ? void 0 : _a.value()) === "ETERNITY") {
|
1133
|
+
if (((_a = toLogValue(attr["ts"])) == null ? void 0 : _a.value()) === "ETERNITY") {
|
1101
1134
|
this.Timestamp.call({
|
1102
1135
|
_sys: this._sys,
|
1103
1136
|
_attributes: attr
|
@@ -1108,7 +1141,10 @@ var LoggerImpl = class _LoggerImpl {
|
|
1108
1141
|
Msg(...args) {
|
1109
1142
|
const fnError = this._resetAttributes(() => {
|
1110
1143
|
var _a, _b;
|
1111
|
-
const doWrite = this._levelHandler.isEnabled(
|
1144
|
+
const doWrite = this._levelHandler.isEnabled(
|
1145
|
+
(_a = toLogValue(this._attributes["level"])) == null ? void 0 : _a.value(),
|
1146
|
+
(_b = toLogValue(this._attributes["module"])) == null ? void 0 : _b.value()
|
1147
|
+
);
|
1112
1148
|
let fnRet = () => this._produceError(__spreadValues({}, this._attributes), ...args);
|
1113
1149
|
if (doWrite) {
|
1114
1150
|
const str = fnRet();
|
@@ -1155,6 +1191,10 @@ var WithLoggerBuilder = class {
|
|
1155
1191
|
this._li.Len(value, key);
|
1156
1192
|
return this;
|
1157
1193
|
}
|
1194
|
+
Hash(value, key) {
|
1195
|
+
this._li.Hash(value, key);
|
1196
|
+
return this;
|
1197
|
+
}
|
1158
1198
|
Ref(key, action) {
|
1159
1199
|
this._li.Ref(key, action);
|
1160
1200
|
return this;
|
@@ -1244,7 +1284,9 @@ var LogWriter2 = class {
|
|
1244
1284
|
releaseLock() {
|
1245
1285
|
}
|
1246
1286
|
write(chunk) {
|
1247
|
-
|
1287
|
+
if (chunk) {
|
1288
|
+
this._bufferArr.push(chunk);
|
1289
|
+
}
|
1248
1290
|
return Promise.resolve(void 0);
|
1249
1291
|
}
|
1250
1292
|
};
|
@@ -1305,7 +1347,9 @@ function MockLogger(params) {
|
|
1305
1347
|
sys: params == null ? void 0 : params.sys,
|
1306
1348
|
levelHandler: new LevelHandlerImpl()
|
1307
1349
|
}).With().Module(modNames[0]).Logger();
|
1308
|
-
!(params == null ? void 0 : params.disableDebug)
|
1350
|
+
if (!(params == null ? void 0 : params.disableDebug)) {
|
1351
|
+
logger.SetDebug(...modNames);
|
1352
|
+
}
|
1309
1353
|
return {
|
1310
1354
|
logCollector: lc,
|
1311
1355
|
logger
|
@@ -1433,9 +1477,198 @@ var None = class extends Option {
|
|
1433
1477
|
throw new Error("None.unwrap");
|
1434
1478
|
}
|
1435
1479
|
};
|
1480
|
+
|
1481
|
+
// src/runtime.ts
|
1482
|
+
function isSet(value, ref = globalThis) {
|
1483
|
+
const [head, ...tail] = value.split(".");
|
1484
|
+
if (["object", "function"].includes(typeof ref) && ref && ["object", "function"].includes(typeof ref[head]) && ref[head]) {
|
1485
|
+
if (tail.length <= 1) {
|
1486
|
+
return true;
|
1487
|
+
}
|
1488
|
+
return isSet(tail.join("."), ref[head]);
|
1489
|
+
}
|
1490
|
+
return false;
|
1491
|
+
}
|
1492
|
+
function runtimeFn() {
|
1493
|
+
const isNodeIsh = isSet("process.versions.node");
|
1494
|
+
const isDeno = isSet("Deno");
|
1495
|
+
return {
|
1496
|
+
isNodeIsh,
|
1497
|
+
isBrowser: !(isNodeIsh || isDeno),
|
1498
|
+
isDeno,
|
1499
|
+
isReactNative: false
|
1500
|
+
};
|
1501
|
+
}
|
1502
|
+
|
1503
|
+
// src/uri.ts
|
1504
|
+
function falsy2undef(value) {
|
1505
|
+
return value === void 0 || value === null ? void 0 : value;
|
1506
|
+
}
|
1507
|
+
function ensureURLWithDefaultProto(url, defaultProtocol) {
|
1508
|
+
if (!url) {
|
1509
|
+
return new URL(`${defaultProtocol}//`);
|
1510
|
+
}
|
1511
|
+
if (typeof url === "string") {
|
1512
|
+
try {
|
1513
|
+
return new URL(url);
|
1514
|
+
} catch (e) {
|
1515
|
+
return new URL(`${defaultProtocol}//${url}`);
|
1516
|
+
}
|
1517
|
+
} else {
|
1518
|
+
return url;
|
1519
|
+
}
|
1520
|
+
}
|
1521
|
+
var BuildURI = class {
|
1522
|
+
constructor(url) {
|
1523
|
+
this._url = url;
|
1524
|
+
}
|
1525
|
+
hostname(h) {
|
1526
|
+
this._url.hostname = h;
|
1527
|
+
return this;
|
1528
|
+
}
|
1529
|
+
password(p) {
|
1530
|
+
this._url.password = p;
|
1531
|
+
return this;
|
1532
|
+
}
|
1533
|
+
port(p) {
|
1534
|
+
this._url.port = p;
|
1535
|
+
return this;
|
1536
|
+
}
|
1537
|
+
username(u) {
|
1538
|
+
this._url.username = u;
|
1539
|
+
return this;
|
1540
|
+
}
|
1541
|
+
search(s) {
|
1542
|
+
this._url.search = s;
|
1543
|
+
return this;
|
1544
|
+
}
|
1545
|
+
protocol(p) {
|
1546
|
+
this._url.protocol = p;
|
1547
|
+
return this;
|
1548
|
+
}
|
1549
|
+
pathname(p) {
|
1550
|
+
this._url.pathname = p;
|
1551
|
+
return this;
|
1552
|
+
}
|
1553
|
+
hash(h) {
|
1554
|
+
this._url.hash = h;
|
1555
|
+
return this;
|
1556
|
+
}
|
1557
|
+
host(h) {
|
1558
|
+
this._url.host = h;
|
1559
|
+
return this;
|
1560
|
+
}
|
1561
|
+
delParam(key) {
|
1562
|
+
this._url.searchParams.delete(key);
|
1563
|
+
return this;
|
1564
|
+
}
|
1565
|
+
setParam(key, str) {
|
1566
|
+
this._url.searchParams.set(key, str);
|
1567
|
+
return this;
|
1568
|
+
}
|
1569
|
+
toString() {
|
1570
|
+
return this._url.toString();
|
1571
|
+
}
|
1572
|
+
build() {
|
1573
|
+
return URI.from(this._url);
|
1574
|
+
}
|
1575
|
+
};
|
1576
|
+
var URI = class _URI {
|
1577
|
+
// if no protocol is provided, default to file:
|
1578
|
+
static from(strURLUri, defaultProtocol = "file:") {
|
1579
|
+
switch (typeof falsy2undef(strURLUri)) {
|
1580
|
+
case "undefined":
|
1581
|
+
return new _URI(new URL(`${defaultProtocol}//`));
|
1582
|
+
case "string":
|
1583
|
+
return new _URI(ensureURLWithDefaultProto(strURLUri, defaultProtocol));
|
1584
|
+
case "object":
|
1585
|
+
if (strURLUri instanceof _URI) {
|
1586
|
+
return new _URI(new URL(strURLUri._url.toString()));
|
1587
|
+
} else if (strURLUri instanceof URL) {
|
1588
|
+
return new _URI(new URL(strURLUri.toString()));
|
1589
|
+
}
|
1590
|
+
throw new Error(`unknown object type: ${strURLUri}`);
|
1591
|
+
default:
|
1592
|
+
throw new Error(`Invalid argument: ${typeof strURLUri}`);
|
1593
|
+
}
|
1594
|
+
}
|
1595
|
+
constructor(url) {
|
1596
|
+
this._url = url;
|
1597
|
+
}
|
1598
|
+
build() {
|
1599
|
+
return new BuildURI(this.asURL());
|
1600
|
+
}
|
1601
|
+
get hostname() {
|
1602
|
+
return this._url.hostname;
|
1603
|
+
}
|
1604
|
+
get password() {
|
1605
|
+
return this._url.password;
|
1606
|
+
}
|
1607
|
+
get port() {
|
1608
|
+
return this._url.port;
|
1609
|
+
}
|
1610
|
+
get username() {
|
1611
|
+
return this._url.username;
|
1612
|
+
}
|
1613
|
+
get search() {
|
1614
|
+
return this._url.search;
|
1615
|
+
}
|
1616
|
+
get protocol() {
|
1617
|
+
return this._url.protocol;
|
1618
|
+
}
|
1619
|
+
get pathname() {
|
1620
|
+
return this._url.toString().replace(/^.*:\/\//, "").replace(/\?.*$/, "");
|
1621
|
+
}
|
1622
|
+
get hash() {
|
1623
|
+
return this._url.hash;
|
1624
|
+
}
|
1625
|
+
get host() {
|
1626
|
+
return this._url.host;
|
1627
|
+
}
|
1628
|
+
hasParam(key) {
|
1629
|
+
return this._url.searchParams.has(key);
|
1630
|
+
}
|
1631
|
+
getParam(key) {
|
1632
|
+
return falsy2undef(this._url.searchParams.get(key));
|
1633
|
+
}
|
1634
|
+
clone() {
|
1635
|
+
return new _URI(this.asURL());
|
1636
|
+
}
|
1637
|
+
asURL() {
|
1638
|
+
const url = new URL(this._url.toString());
|
1639
|
+
url.searchParams.sort();
|
1640
|
+
return url;
|
1641
|
+
}
|
1642
|
+
toString() {
|
1643
|
+
return this._url.toString();
|
1644
|
+
}
|
1645
|
+
};
|
1646
|
+
|
1647
|
+
// src/crypto.ts
|
1648
|
+
function randomBytes(size) {
|
1649
|
+
const bytes = new Uint8Array(size);
|
1650
|
+
if (size > 0) {
|
1651
|
+
crypto.getRandomValues(bytes);
|
1652
|
+
}
|
1653
|
+
return bytes;
|
1654
|
+
}
|
1655
|
+
function digestSHA256(data) {
|
1656
|
+
return Promise.resolve(crypto.subtle.digest("SHA-256", data));
|
1657
|
+
}
|
1658
|
+
function toCryptoRuntime(cryptoOpts = {}) {
|
1659
|
+
const runtime = {
|
1660
|
+
importKey: cryptoOpts.importKey || crypto.subtle.importKey.bind(crypto.subtle),
|
1661
|
+
encrypt: cryptoOpts.encrypt || crypto.subtle.encrypt.bind(crypto.subtle),
|
1662
|
+
decrypt: cryptoOpts.decrypt || crypto.subtle.decrypt.bind(crypto.subtle),
|
1663
|
+
randomBytes: cryptoOpts.randomBytes || randomBytes,
|
1664
|
+
digestSHA256: cryptoOpts.digestSHA256 || digestSHA256
|
1665
|
+
};
|
1666
|
+
return runtime;
|
1667
|
+
}
|
1436
1668
|
// Annotate the CommonJS export names for ESM import in node:
|
1437
1669
|
0 && (module.exports = {
|
1438
1670
|
BrowserEnvActions,
|
1671
|
+
BuildURI,
|
1439
1672
|
EnvImpl,
|
1440
1673
|
Future,
|
1441
1674
|
IDMode,
|
@@ -1463,8 +1696,12 @@ var None = class extends Option {
|
|
1463
1696
|
Time,
|
1464
1697
|
TimeMode,
|
1465
1698
|
TimeUnits,
|
1699
|
+
URI,
|
1700
|
+
asyncLogValue,
|
1466
1701
|
envFactory,
|
1467
1702
|
logValue,
|
1468
|
-
removeSelfRef
|
1703
|
+
removeSelfRef,
|
1704
|
+
runtimeFn,
|
1705
|
+
toCryptoRuntime
|
1469
1706
|
});
|
1470
1707
|
//# sourceMappingURL=index.cjs.map
|