@adviser/cement 0.2.11 → 0.2.13
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_sys_abstraction-uF0nL2K3.d.ts → base_sys_abstraction-CJqRmTui.d.ts} +1 -1
- package/{base_sys_abstraction-B_h8JSlV.d.cts → base_sys_abstraction-nsNTl07w.d.cts} +1 -1
- package/{chunk-LK3TUJH3.js → chunk-O4F5AURC.js} +1 -1
- package/chunk-O4F5AURC.js.map +1 -0
- package/{chunk-BEOYQN5I.js → chunk-XJF7FQUN.js} +2 -2
- package/index.cjs +188 -179
- package/index.cjs.map +1 -1
- package/index.d.cts +10 -8
- package/index.d.ts +10 -8
- package/index.js +189 -180
- package/index.js.map +1 -1
- package/node/index.cjs.map +1 -1
- package/node/index.d.cts +2 -2
- package/node/index.d.ts +2 -2
- package/node/index.js +1 -1
- package/package.json +1 -1
- package/{sys_abstraction-C1-BRiiP.d.cts → sys_abstraction-CmSCeK7b.d.cts} +2 -2
- package/{sys_abstraction-C1-BRiiP.d.ts → sys_abstraction-CmSCeK7b.d.ts} +2 -2
- package/web/index.cjs.map +1 -1
- package/web/index.d.cts +2 -2
- package/web/index.d.ts +2 -2
- package/web/index.js +2 -2
- package/chunk-LK3TUJH3.js.map +0 -1
- /package/{chunk-BEOYQN5I.js.map → chunk-XJF7FQUN.js.map} +0 -0
@@ -1,4 +1,4 @@
|
|
1
|
-
import { V as VoidFunc, T as TimeMode, I as IDMode, R as RandomMode, F as FileService, b as SystemService } from './sys_abstraction-
|
1
|
+
import { V as VoidFunc, T as TimeMode, I as IDMode, R as RandomMode, F as FileService, b as SystemService } from './sys_abstraction-CmSCeK7b.js';
|
2
2
|
|
3
3
|
interface ExitHandler {
|
4
4
|
readonly hdl: VoidFunc;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { V as VoidFunc, T as TimeMode, I as IDMode, R as RandomMode, F as FileService, b as SystemService } from './sys_abstraction-
|
1
|
+
import { V as VoidFunc, T as TimeMode, I as IDMode, R as RandomMode, F as FileService, b as SystemService } from './sys_abstraction-CmSCeK7b.cjs';
|
2
2
|
|
3
3
|
interface ExitHandler {
|
4
4
|
readonly hdl: VoidFunc;
|
@@ -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\nexport interface 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<EnvFactoryOpts> = {}): 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"]}
|
@@ -2,7 +2,7 @@ import {
|
|
2
2
|
BaseSysAbstraction,
|
3
3
|
WrapperSysAbstraction,
|
4
4
|
envFactory
|
5
|
-
} from "./chunk-
|
5
|
+
} from "./chunk-O4F5AURC.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-XJF7FQUN.js.map
|
package/index.cjs
CHANGED
@@ -106,7 +106,7 @@ __export(src_exports, {
|
|
106
106
|
URI: () => URI,
|
107
107
|
asyncLogValue: () => asyncLogValue,
|
108
108
|
envFactory: () => envFactory,
|
109
|
-
|
109
|
+
isURL: () => isURL,
|
110
110
|
logValue: () => logValue,
|
111
111
|
removeSelfRef: () => removeSelfRef,
|
112
112
|
runtimeFn: () => runtimeFn,
|
@@ -829,6 +829,186 @@ function WebSysAbstraction(param) {
|
|
829
829
|
return new WrapperSysAbstraction(my, param);
|
830
830
|
}
|
831
831
|
|
832
|
+
// src/uri.ts
|
833
|
+
function falsy2undef(value) {
|
834
|
+
return value === void 0 || value === null ? void 0 : value;
|
835
|
+
}
|
836
|
+
function ensureURLWithDefaultProto(url, defaultProtocol) {
|
837
|
+
if (!url) {
|
838
|
+
return new URL(`${defaultProtocol}//`);
|
839
|
+
}
|
840
|
+
if (typeof url === "string") {
|
841
|
+
try {
|
842
|
+
return new URL(url);
|
843
|
+
} catch (e) {
|
844
|
+
return new URL(`${defaultProtocol}//${url}`);
|
845
|
+
}
|
846
|
+
} else {
|
847
|
+
return url;
|
848
|
+
}
|
849
|
+
}
|
850
|
+
function isURL(value) {
|
851
|
+
return value instanceof URL || !!value && typeof value.searchParams === "object" && typeof value.searchParams.sort === "function" && typeof value.hash === "string";
|
852
|
+
}
|
853
|
+
function from(fac, strURLUri, defaultProtocol) {
|
854
|
+
switch (typeof falsy2undef(strURLUri)) {
|
855
|
+
case "undefined":
|
856
|
+
return fac(new URL(`${defaultProtocol}//`));
|
857
|
+
case "string":
|
858
|
+
return fac(ensureURLWithDefaultProto(strURLUri, defaultProtocol));
|
859
|
+
case "object":
|
860
|
+
if (BuildURI.is(strURLUri)) {
|
861
|
+
return fac(new URL(strURLUri._url.toString()));
|
862
|
+
} else if (URI.is(strURLUri)) {
|
863
|
+
return fac(new URL(strURLUri._url.toString()));
|
864
|
+
} else if (isURL(strURLUri)) {
|
865
|
+
return fac(new URL(strURLUri.toString()));
|
866
|
+
}
|
867
|
+
throw new Error(`unknown object type: ${strURLUri}`);
|
868
|
+
default:
|
869
|
+
throw new Error(`Invalid argument: ${typeof strURLUri}`);
|
870
|
+
}
|
871
|
+
}
|
872
|
+
var BuildURI = class _BuildURI {
|
873
|
+
constructor(url) {
|
874
|
+
this._url = url;
|
875
|
+
}
|
876
|
+
static is(value) {
|
877
|
+
return value instanceof _BuildURI || !!value && typeof value.delParam === "function" && typeof value.setParam === "function";
|
878
|
+
}
|
879
|
+
static from(strURLUri, defaultProtocol = "file:") {
|
880
|
+
return from((url) => new _BuildURI(url), strURLUri, defaultProtocol);
|
881
|
+
}
|
882
|
+
hostname(h) {
|
883
|
+
this._url.hostname = h;
|
884
|
+
return this;
|
885
|
+
}
|
886
|
+
password(p) {
|
887
|
+
this._url.password = p;
|
888
|
+
return this;
|
889
|
+
}
|
890
|
+
port(p) {
|
891
|
+
this._url.port = p;
|
892
|
+
return this;
|
893
|
+
}
|
894
|
+
username(u) {
|
895
|
+
this._url.username = u;
|
896
|
+
return this;
|
897
|
+
}
|
898
|
+
search(s) {
|
899
|
+
this._url.search = s;
|
900
|
+
return this;
|
901
|
+
}
|
902
|
+
protocol(p) {
|
903
|
+
this._url.protocol = p;
|
904
|
+
return this;
|
905
|
+
}
|
906
|
+
pathname(p) {
|
907
|
+
this._url.pathname = p;
|
908
|
+
return this;
|
909
|
+
}
|
910
|
+
hash(h) {
|
911
|
+
this._url.hash = h;
|
912
|
+
return this;
|
913
|
+
}
|
914
|
+
host(h) {
|
915
|
+
this._url.host = h;
|
916
|
+
return this;
|
917
|
+
}
|
918
|
+
delParam(key) {
|
919
|
+
this._url.searchParams.delete(key);
|
920
|
+
return this;
|
921
|
+
}
|
922
|
+
defParam(key, str) {
|
923
|
+
if (!this._url.searchParams.has(key)) {
|
924
|
+
this._url.searchParams.set(key, str);
|
925
|
+
}
|
926
|
+
return this;
|
927
|
+
}
|
928
|
+
setParam(key, str) {
|
929
|
+
this._url.searchParams.set(key, str);
|
930
|
+
return this;
|
931
|
+
}
|
932
|
+
toString() {
|
933
|
+
this._url.searchParams.sort();
|
934
|
+
return this._url.toString();
|
935
|
+
}
|
936
|
+
URI() {
|
937
|
+
return URI.from(this._url);
|
938
|
+
}
|
939
|
+
};
|
940
|
+
var URI = class _URI {
|
941
|
+
// if no protocol is provided, default to file:
|
942
|
+
static merge(into, from2, defaultProtocol = "file:") {
|
943
|
+
const intoUrl = _URI.from(into, defaultProtocol);
|
944
|
+
const fromUrl = _URI.from(from2, defaultProtocol);
|
945
|
+
for (const [key, value] of fromUrl._url.searchParams) {
|
946
|
+
if (!intoUrl._url.searchParams.has(key)) {
|
947
|
+
intoUrl._url.searchParams.set(key, value);
|
948
|
+
}
|
949
|
+
}
|
950
|
+
return intoUrl;
|
951
|
+
}
|
952
|
+
static is(value) {
|
953
|
+
return value instanceof _URI || !!value && typeof value.asURL === "function" && typeof value.getParam === "function" && typeof value.hasParam === "function";
|
954
|
+
}
|
955
|
+
// if no protocol is provided, default to file:
|
956
|
+
static from(strURLUri, defaultProtocol = "file:") {
|
957
|
+
return from((url) => new _URI(url), strURLUri, defaultProtocol);
|
958
|
+
}
|
959
|
+
constructor(url) {
|
960
|
+
this._url = url;
|
961
|
+
}
|
962
|
+
build() {
|
963
|
+
return BuildURI.from(this.asURL());
|
964
|
+
}
|
965
|
+
get hostname() {
|
966
|
+
return this._url.hostname;
|
967
|
+
}
|
968
|
+
get password() {
|
969
|
+
return this._url.password;
|
970
|
+
}
|
971
|
+
get port() {
|
972
|
+
return this._url.port;
|
973
|
+
}
|
974
|
+
get username() {
|
975
|
+
return this._url.username;
|
976
|
+
}
|
977
|
+
get search() {
|
978
|
+
return this._url.search;
|
979
|
+
}
|
980
|
+
get protocol() {
|
981
|
+
return this._url.protocol;
|
982
|
+
}
|
983
|
+
get pathname() {
|
984
|
+
return this._url.toString().replace(/^.*:\/\//, "").replace(/\?.*$/, "");
|
985
|
+
}
|
986
|
+
get hash() {
|
987
|
+
return this._url.hash;
|
988
|
+
}
|
989
|
+
get host() {
|
990
|
+
return this._url.host;
|
991
|
+
}
|
992
|
+
hasParam(key) {
|
993
|
+
return this._url.searchParams.has(key);
|
994
|
+
}
|
995
|
+
getParam(key) {
|
996
|
+
return falsy2undef(this._url.searchParams.get(key));
|
997
|
+
}
|
998
|
+
clone() {
|
999
|
+
return new _URI(this.asURL());
|
1000
|
+
}
|
1001
|
+
asURL() {
|
1002
|
+
const url = new URL(this._url.toString());
|
1003
|
+
url.searchParams.sort();
|
1004
|
+
return url;
|
1005
|
+
}
|
1006
|
+
toString() {
|
1007
|
+
this._url.searchParams.sort();
|
1008
|
+
return this._url.toString();
|
1009
|
+
}
|
1010
|
+
};
|
1011
|
+
|
832
1012
|
// src/logger_impl.ts
|
833
1013
|
var encoder = new TextEncoder();
|
834
1014
|
var LevelHandlerImpl = class {
|
@@ -1086,7 +1266,7 @@ var LoggerImpl = class _LoggerImpl {
|
|
1086
1266
|
return this;
|
1087
1267
|
}
|
1088
1268
|
Url(url, key = "url") {
|
1089
|
-
this.Ref(key, () => url.toString());
|
1269
|
+
this.Ref(key, () => URI.from(url).toString());
|
1090
1270
|
return this;
|
1091
1271
|
}
|
1092
1272
|
Str(key, value) {
|
@@ -1500,188 +1680,17 @@ function isSet(value, ref = globalThis) {
|
|
1500
1680
|
return false;
|
1501
1681
|
}
|
1502
1682
|
function runtimeFn() {
|
1503
|
-
const
|
1504
|
-
const
|
1683
|
+
const isReactNative = isSet("navigator.product") && globalThis.navigator.product === "ReactNative";
|
1684
|
+
const isNodeIsh = isSet("process.versions.node") && !isReactNative;
|
1685
|
+
const isDeno = isSet("Deno") && !isReactNative;
|
1505
1686
|
return {
|
1506
1687
|
isNodeIsh,
|
1507
|
-
isBrowser: !(isNodeIsh || isDeno),
|
1688
|
+
isBrowser: !(isNodeIsh || isDeno) && !isReactNative,
|
1508
1689
|
isDeno,
|
1509
|
-
isReactNative
|
1690
|
+
isReactNative
|
1510
1691
|
};
|
1511
1692
|
}
|
1512
1693
|
|
1513
|
-
// src/uri.ts
|
1514
|
-
function falsy2undef(value) {
|
1515
|
-
return value === void 0 || value === null ? void 0 : value;
|
1516
|
-
}
|
1517
|
-
function ensureURLWithDefaultProto(url, defaultProtocol) {
|
1518
|
-
if (!url) {
|
1519
|
-
return new URL(`${defaultProtocol}//`);
|
1520
|
-
}
|
1521
|
-
if (typeof url === "string") {
|
1522
|
-
try {
|
1523
|
-
return new URL(url);
|
1524
|
-
} catch (e) {
|
1525
|
-
return new URL(`${defaultProtocol}//${url}`);
|
1526
|
-
}
|
1527
|
-
} else {
|
1528
|
-
return url;
|
1529
|
-
}
|
1530
|
-
}
|
1531
|
-
function from(fac, strURLUri, defaultProtocol) {
|
1532
|
-
switch (typeof falsy2undef(strURLUri)) {
|
1533
|
-
case "undefined":
|
1534
|
-
return fac(new URL(`${defaultProtocol}//`));
|
1535
|
-
case "string":
|
1536
|
-
return fac(ensureURLWithDefaultProto(strURLUri, defaultProtocol));
|
1537
|
-
case "object":
|
1538
|
-
if (strURLUri instanceof URI) {
|
1539
|
-
return fac(new URL(strURLUri._url.toString()));
|
1540
|
-
} else if (strURLUri instanceof URL) {
|
1541
|
-
return fac(new URL(strURLUri.toString()));
|
1542
|
-
}
|
1543
|
-
throw new Error(`unknown object type: ${strURLUri}`);
|
1544
|
-
default:
|
1545
|
-
throw new Error(`Invalid argument: ${typeof strURLUri}`);
|
1546
|
-
}
|
1547
|
-
}
|
1548
|
-
var BuildURI = class _BuildURI {
|
1549
|
-
constructor(url) {
|
1550
|
-
this._url = url;
|
1551
|
-
}
|
1552
|
-
static from(strURLUri, defaultProtocol = "file:") {
|
1553
|
-
return from((url) => new _BuildURI(url), strURLUri, defaultProtocol);
|
1554
|
-
}
|
1555
|
-
hostname(h) {
|
1556
|
-
this._url.hostname = h;
|
1557
|
-
return this;
|
1558
|
-
}
|
1559
|
-
password(p) {
|
1560
|
-
this._url.password = p;
|
1561
|
-
return this;
|
1562
|
-
}
|
1563
|
-
port(p) {
|
1564
|
-
this._url.port = p;
|
1565
|
-
return this;
|
1566
|
-
}
|
1567
|
-
username(u) {
|
1568
|
-
this._url.username = u;
|
1569
|
-
return this;
|
1570
|
-
}
|
1571
|
-
search(s) {
|
1572
|
-
this._url.search = s;
|
1573
|
-
return this;
|
1574
|
-
}
|
1575
|
-
protocol(p) {
|
1576
|
-
this._url.protocol = p;
|
1577
|
-
return this;
|
1578
|
-
}
|
1579
|
-
pathname(p) {
|
1580
|
-
this._url.pathname = p;
|
1581
|
-
return this;
|
1582
|
-
}
|
1583
|
-
hash(h) {
|
1584
|
-
this._url.hash = h;
|
1585
|
-
return this;
|
1586
|
-
}
|
1587
|
-
host(h) {
|
1588
|
-
this._url.host = h;
|
1589
|
-
return this;
|
1590
|
-
}
|
1591
|
-
delParam(key) {
|
1592
|
-
this._url.searchParams.delete(key);
|
1593
|
-
return this;
|
1594
|
-
}
|
1595
|
-
defParam(key, str) {
|
1596
|
-
if (!this._url.searchParams.has(key)) {
|
1597
|
-
this._url.searchParams.set(key, str);
|
1598
|
-
}
|
1599
|
-
return this;
|
1600
|
-
}
|
1601
|
-
setParam(key, str) {
|
1602
|
-
this._url.searchParams.set(key, str);
|
1603
|
-
return this;
|
1604
|
-
}
|
1605
|
-
toString() {
|
1606
|
-
this._url.searchParams.sort();
|
1607
|
-
return this._url.toString();
|
1608
|
-
}
|
1609
|
-
URI() {
|
1610
|
-
return URI.from(this._url);
|
1611
|
-
}
|
1612
|
-
};
|
1613
|
-
function isURI(value) {
|
1614
|
-
return value instanceof URI || !!value && typeof value.asURL === "function" || false;
|
1615
|
-
}
|
1616
|
-
var URI = class _URI {
|
1617
|
-
// if no protocol is provided, default to file:
|
1618
|
-
static merge(into, from2, defaultProtocol = "file:") {
|
1619
|
-
const intoUrl = _URI.from(into, defaultProtocol);
|
1620
|
-
const fromUrl = _URI.from(from2, defaultProtocol);
|
1621
|
-
for (const [key, value] of fromUrl._url.searchParams) {
|
1622
|
-
if (!intoUrl._url.searchParams.has(key)) {
|
1623
|
-
intoUrl._url.searchParams.set(key, value);
|
1624
|
-
}
|
1625
|
-
}
|
1626
|
-
return intoUrl;
|
1627
|
-
}
|
1628
|
-
// if no protocol is provided, default to file:
|
1629
|
-
static from(strURLUri, defaultProtocol = "file:") {
|
1630
|
-
return from((url) => new _URI(url), strURLUri, defaultProtocol);
|
1631
|
-
}
|
1632
|
-
constructor(url) {
|
1633
|
-
this._url = url;
|
1634
|
-
}
|
1635
|
-
build() {
|
1636
|
-
return BuildURI.from(this.asURL());
|
1637
|
-
}
|
1638
|
-
get hostname() {
|
1639
|
-
return this._url.hostname;
|
1640
|
-
}
|
1641
|
-
get password() {
|
1642
|
-
return this._url.password;
|
1643
|
-
}
|
1644
|
-
get port() {
|
1645
|
-
return this._url.port;
|
1646
|
-
}
|
1647
|
-
get username() {
|
1648
|
-
return this._url.username;
|
1649
|
-
}
|
1650
|
-
get search() {
|
1651
|
-
return this._url.search;
|
1652
|
-
}
|
1653
|
-
get protocol() {
|
1654
|
-
return this._url.protocol;
|
1655
|
-
}
|
1656
|
-
get pathname() {
|
1657
|
-
return this._url.toString().replace(/^.*:\/\//, "").replace(/\?.*$/, "");
|
1658
|
-
}
|
1659
|
-
get hash() {
|
1660
|
-
return this._url.hash;
|
1661
|
-
}
|
1662
|
-
get host() {
|
1663
|
-
return this._url.host;
|
1664
|
-
}
|
1665
|
-
hasParam(key) {
|
1666
|
-
return this._url.searchParams.has(key);
|
1667
|
-
}
|
1668
|
-
getParam(key) {
|
1669
|
-
return falsy2undef(this._url.searchParams.get(key));
|
1670
|
-
}
|
1671
|
-
clone() {
|
1672
|
-
return new _URI(this.asURL());
|
1673
|
-
}
|
1674
|
-
asURL() {
|
1675
|
-
const url = new URL(this._url.toString());
|
1676
|
-
url.searchParams.sort();
|
1677
|
-
return url;
|
1678
|
-
}
|
1679
|
-
toString() {
|
1680
|
-
this._url.searchParams.sort();
|
1681
|
-
return this._url.toString();
|
1682
|
-
}
|
1683
|
-
};
|
1684
|
-
|
1685
1694
|
// src/crypto.ts
|
1686
1695
|
function randomBytes(size) {
|
1687
1696
|
const bytes = new Uint8Array(size);
|
@@ -1737,7 +1746,7 @@ function toCryptoRuntime(cryptoOpts = {}) {
|
|
1737
1746
|
URI,
|
1738
1747
|
asyncLogValue,
|
1739
1748
|
envFactory,
|
1740
|
-
|
1749
|
+
isURL,
|
1741
1750
|
logValue,
|
1742
1751
|
removeSelfRef,
|
1743
1752
|
runtimeFn,
|