@adviser/cement 0.3.1 → 0.3.2
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-CR_Z-Ceg.d.ts +84 -0
- package/base-sys-abstraction-DWtPI7Kg.d.cts +84 -0
- package/cf/index.cjs +929 -0
- package/cf/index.cjs.map +1 -0
- package/cf/index.d.cts +26 -0
- package/cf/index.d.ts +26 -0
- package/cf/index.js +12 -0
- package/cf/index.js.map +1 -0
- package/{chunk-3RHIVQAA.js → chunk-A7OPSHUV.js} +6 -94
- package/chunk-A7OPSHUV.js.map +1 -0
- package/chunk-DZPKZQIT.js +1182 -0
- package/chunk-DZPKZQIT.js.map +1 -0
- package/chunk-HFP74WLI.js +96 -0
- package/chunk-HFP74WLI.js.map +1 -0
- package/chunk-R2EEZNZN.js +1742 -0
- package/chunk-R2EEZNZN.js.map +1 -0
- package/deno/index.cjs +940 -0
- package/deno/index.cjs.map +1 -0
- package/deno/index.d.cts +59 -0
- package/deno/index.d.ts +59 -0
- package/deno/index.js +16 -0
- package/deno/index.js.map +1 -0
- package/index-BfZxTAe_.d.cts +318 -0
- package/index-CfSl8Gmj.d.ts +318 -0
- package/index.cjs +393 -143
- package/index.cjs.map +1 -1
- package/index.d.cts +7 -317
- package/index.d.ts +7 -317
- package/index.js +34 -1729
- package/index.js.map +1 -1
- package/node/index.cjs +265 -217
- package/node/index.cjs.map +1 -1
- package/node/index.d.cts +16 -21
- package/node/index.d.ts +16 -21
- package/node/index.js +8 -352
- package/node/index.js.map +1 -1
- package/package.json +18 -11
- package/src/cf/cf-sys-abstraction.ts +78 -0
- package/src/cf/index.ts +1 -0
- package/src/{node → deno}/deno-file-service.ts +2 -2
- package/src/{node → deno}/deno-sys-abstraction.ts +64 -7
- package/src/deno/index.ts +2 -0
- package/src/index.ts +1 -2
- package/src/jsr.json +1 -1
- package/src/logger-impl.ts +2 -2
- package/src/logger.ts +10 -3
- package/src/node/index.ts +0 -1
- package/src/node/node-sys-abstraction.ts +45 -1
- package/src/runtime.ts +13 -3
- package/src/sys-env.ts +19 -113
- package/src/test/index.ts +2 -0
- package/src/web/web-sys-abstraction.ts +42 -2
- package/sys-abstraction-GNnBj2sz.d.cts +102 -0
- package/sys-abstraction-GNnBj2sz.d.ts +102 -0
- package/test/index.cjs +2681 -0
- package/test/index.cjs.map +1 -0
- package/test/index.d.cts +3 -0
- package/test/index.d.ts +3 -0
- package/test/index.js +14 -0
- package/test/index.js.map +1 -0
- package/ts/base-sys-abstraction.test.js +8 -2
- package/ts/base-sys-abstraction.test.js.map +1 -1
- package/ts/cf/cf-sys-abstraction.d.ts +24 -0
- package/ts/cf/cf-sys-abstraction.d.ts.map +1 -0
- package/ts/cf/cf-sys-abstraction.js +72 -0
- package/ts/cf/cf-sys-abstraction.js.map +1 -0
- package/ts/cf/index.d.ts +2 -0
- package/ts/cf/index.d.ts.map +1 -0
- package/ts/cf/index.js +2 -0
- package/ts/cf/index.js.map +1 -0
- package/ts/crypto.test.js +1 -1
- package/ts/crypto.test.js.map +1 -1
- package/ts/{node → deno}/deno-file-service.d.ts.map +1 -1
- package/ts/{node → deno}/deno-file-service.js +1 -1
- package/ts/{node → deno}/deno-file-service.js.map +1 -1
- package/ts/deno/deno-sys-abstraction.d.ts +43 -0
- package/ts/deno/deno-sys-abstraction.d.ts.map +1 -0
- package/ts/{node → deno}/deno-sys-abstraction.js +46 -2
- package/ts/deno/deno-sys-abstraction.js.map +1 -0
- package/ts/deno/index.d.ts +3 -0
- package/ts/deno/index.d.ts.map +1 -0
- package/ts/deno/index.js +3 -0
- package/ts/deno/index.js.map +1 -0
- package/ts/index.d.ts +1 -2
- package/ts/index.d.ts.map +1 -1
- package/ts/index.js +1 -2
- package/ts/index.js.map +1 -1
- package/ts/logger-impl.js +2 -2
- package/ts/logger-impl.js.map +1 -1
- package/ts/logger.d.ts.map +1 -1
- package/ts/logger.js +9 -3
- package/ts/logger.js.map +1 -1
- package/ts/logger.test.js +9 -9
- package/ts/logger.test.js.map +1 -1
- package/ts/node/index.d.ts +0 -1
- package/ts/node/index.d.ts.map +1 -1
- package/ts/node/index.js +0 -1
- package/ts/node/index.js.map +1 -1
- package/ts/node/node-sys-abstraction.d.ts +14 -1
- package/ts/node/node-sys-abstraction.d.ts.map +1 -1
- package/ts/node/node-sys-abstraction.js +43 -0
- package/ts/node/node-sys-abstraction.js.map +1 -1
- package/ts/runtime.d.ts +1 -0
- package/ts/runtime.d.ts.map +1 -1
- package/ts/runtime.js +10 -3
- package/ts/runtime.js.map +1 -1
- package/ts/sys-env.d.ts +0 -11
- package/ts/sys-env.d.ts.map +1 -1
- package/ts/sys-env.js +19 -104
- package/ts/sys-env.js.map +1 -1
- package/ts/sys-env.test.js +16 -3
- package/ts/sys-env.test.js.map +1 -1
- package/ts/test/index.d.ts +3 -0
- package/ts/test/index.d.ts.map +1 -0
- package/ts/test/index.js +3 -0
- package/ts/test/index.js.map +1 -0
- package/ts/test/test-exit-handler.js +1 -1
- package/ts/web/web-sys-abstraction.d.ts +27 -0
- package/ts/web/web-sys-abstraction.d.ts.map +1 -1
- package/ts/web/web-sys-abstraction.js +35 -1
- package/ts/web/web-sys-abstraction.js.map +1 -1
- package/utils/index.js +6 -4
- package/web/index.cjs +389 -67
- package/web/index.cjs.map +1 -1
- package/web/index.d.cts +28 -2
- package/web/index.d.ts +28 -2
- package/web/index.js +5 -2
- package/base-sys-abstraction-BPFyK8XL.d.ts +0 -195
- package/base-sys-abstraction-KYXfUGd6.d.cts +0 -195
- package/chunk-3RHIVQAA.js.map +0 -1
- package/chunk-PSPOGR2I.js +0 -627
- package/chunk-PSPOGR2I.js.map +0 -1
- package/chunk-STUPETPE.js +0 -87
- package/chunk-STUPETPE.js.map +0 -1
- package/ts/node/deno-sys-abstraction.d.ts +0 -22
- package/ts/node/deno-sys-abstraction.d.ts.map +0 -1
- package/ts/node/deno-sys-abstraction.js.map +0 -1
- /package/ts/{node → deno}/deno-file-service.d.ts +0 -0
package/deno/index.cjs
ADDED
@@ -0,0 +1,940 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __create = Object.create;
|
3
|
+
var __defProp = Object.defineProperty;
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
8
|
+
var __typeError = (msg) => {
|
9
|
+
throw TypeError(msg);
|
10
|
+
};
|
11
|
+
var __export = (target, all) => {
|
12
|
+
for (var name in all)
|
13
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
14
|
+
};
|
15
|
+
var __copyProps = (to, from, except, desc) => {
|
16
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
17
|
+
for (let key of __getOwnPropNames(from))
|
18
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
19
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
20
|
+
}
|
21
|
+
return to;
|
22
|
+
};
|
23
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
24
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
25
|
+
// file that has been converted to a CommonJS file using a Babel-
|
26
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
27
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
28
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
29
|
+
mod
|
30
|
+
));
|
31
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
32
|
+
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
33
|
+
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
34
|
+
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
35
|
+
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
36
|
+
|
37
|
+
// src/deno/index.ts
|
38
|
+
var deno_exports = {};
|
39
|
+
__export(deno_exports, {
|
40
|
+
DenoEnvActions: () => DenoEnvActions,
|
41
|
+
DenoExitServiceImpl: () => DenoExitServiceImpl,
|
42
|
+
DenoFileService: () => DenoFileService,
|
43
|
+
DenoSysAbstraction: () => DenoSysAbstraction,
|
44
|
+
DenoSystemService: () => DenoSystemService
|
45
|
+
});
|
46
|
+
module.exports = __toCommonJS(deno_exports);
|
47
|
+
|
48
|
+
// src/time.ts
|
49
|
+
var Time = class {
|
50
|
+
TimeSince(start) {
|
51
|
+
const now = this.Now();
|
52
|
+
return now.getTime() - start.getTime();
|
53
|
+
}
|
54
|
+
};
|
55
|
+
|
56
|
+
// src/base-sys-abstraction.ts
|
57
|
+
var SysTime = class extends Time {
|
58
|
+
Now() {
|
59
|
+
return /* @__PURE__ */ new Date();
|
60
|
+
}
|
61
|
+
Sleep(duration) {
|
62
|
+
return new Promise((resolve2) => {
|
63
|
+
setTimeout(() => {
|
64
|
+
resolve2();
|
65
|
+
}, duration);
|
66
|
+
});
|
67
|
+
}
|
68
|
+
};
|
69
|
+
var ConstTime = class extends Time {
|
70
|
+
Now() {
|
71
|
+
return new Date(2021, 1, 1, 0, 0, 0, 0);
|
72
|
+
}
|
73
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
74
|
+
Sleep(duration) {
|
75
|
+
return Promise.resolve();
|
76
|
+
}
|
77
|
+
};
|
78
|
+
var StepTime = class extends Time {
|
79
|
+
constructor() {
|
80
|
+
super();
|
81
|
+
this._step = new ConstTime().Now();
|
82
|
+
this._start = this._step;
|
83
|
+
}
|
84
|
+
Now(steps = 1) {
|
85
|
+
for (let i = 0; steps > 0 && i < steps; i++) {
|
86
|
+
this._step = new Date(this._step.getTime() + 1e3);
|
87
|
+
}
|
88
|
+
if (steps < 1) {
|
89
|
+
this._step = new Date(this._start.getTime() + steps * -1e3);
|
90
|
+
}
|
91
|
+
return this._step;
|
92
|
+
}
|
93
|
+
Sleep(duration) {
|
94
|
+
this._step = new Date(this._step.getTime() + duration);
|
95
|
+
return Promise.resolve();
|
96
|
+
}
|
97
|
+
};
|
98
|
+
function TimeFactory(timeMode) {
|
99
|
+
switch (timeMode) {
|
100
|
+
case "real" /* REAL */:
|
101
|
+
return new SysTime();
|
102
|
+
case "const" /* CONST */:
|
103
|
+
return new ConstTime();
|
104
|
+
case "step" /* STEP */:
|
105
|
+
return new StepTime();
|
106
|
+
}
|
107
|
+
return new SysTime();
|
108
|
+
}
|
109
|
+
var RandomService = class {
|
110
|
+
constructor(mode) {
|
111
|
+
this._step = 0;
|
112
|
+
this._mode = mode;
|
113
|
+
}
|
114
|
+
Random0ToValue(value) {
|
115
|
+
switch (this._mode) {
|
116
|
+
case "const" /* CONST */:
|
117
|
+
return 0.5 * value;
|
118
|
+
case "step" /* STEP */:
|
119
|
+
this._step += 1e-4;
|
120
|
+
return this._step * value;
|
121
|
+
case "random" /* RANDOM */:
|
122
|
+
return Math.random() * value;
|
123
|
+
default:
|
124
|
+
throw new Error("Unknown RandomMode");
|
125
|
+
}
|
126
|
+
}
|
127
|
+
};
|
128
|
+
var IdService = class {
|
129
|
+
constructor(mode) {
|
130
|
+
this._step = 0;
|
131
|
+
if (!mode) {
|
132
|
+
mode = "uuid" /* UUID */;
|
133
|
+
}
|
134
|
+
this._mode = mode;
|
135
|
+
}
|
136
|
+
NextId() {
|
137
|
+
switch (this._mode) {
|
138
|
+
case "uuid" /* UUID */:
|
139
|
+
return crypto.randomUUID();
|
140
|
+
case "const" /* CONST */:
|
141
|
+
return "VeryUniqueID";
|
142
|
+
case "step" /* STEP */:
|
143
|
+
return `STEPId-${this._step++}`;
|
144
|
+
default:
|
145
|
+
throw new Error("Unknown IDMode");
|
146
|
+
}
|
147
|
+
}
|
148
|
+
};
|
149
|
+
function consumeReadableStream(reader, writeFn) {
|
150
|
+
reader.read().then(({ done, value }) => {
|
151
|
+
if (done) {
|
152
|
+
return;
|
153
|
+
}
|
154
|
+
writeFn(value).then(() => {
|
155
|
+
consumeReadableStream(reader, writeFn);
|
156
|
+
}).catch((e) => {
|
157
|
+
console.error("consumeReadableStream:writeFn", e);
|
158
|
+
});
|
159
|
+
}).catch((e) => {
|
160
|
+
console.error("consumeReadableStream:read", e);
|
161
|
+
});
|
162
|
+
}
|
163
|
+
function CFWriteableStream(writeFn) {
|
164
|
+
const ts = new TransformStream();
|
165
|
+
consumeReadableStream(ts.readable.getReader(), writeFn);
|
166
|
+
return ts.writable;
|
167
|
+
}
|
168
|
+
var BaseSysAbstraction = class {
|
169
|
+
constructor(params) {
|
170
|
+
this._time = new SysTime();
|
171
|
+
this._idService = new IdService();
|
172
|
+
this._randomService = new RandomService("random" /* RANDOM */);
|
173
|
+
this._fileSystem = params.FileSystem;
|
174
|
+
this._systemService = params.SystemService;
|
175
|
+
this._txtEnDe = params.TxtEnDecoder;
|
176
|
+
const decoder2 = this._txtEnDe;
|
177
|
+
this._stdout = CFWriteableStream(async (chunk) => {
|
178
|
+
const decoded = decoder2.decode(chunk);
|
179
|
+
console.log(decoded.trimEnd());
|
180
|
+
});
|
181
|
+
this._stderr = CFWriteableStream(async (chunk) => {
|
182
|
+
const decoded = decoder2.decode(chunk);
|
183
|
+
console.error(decoded.trimEnd());
|
184
|
+
});
|
185
|
+
}
|
186
|
+
};
|
187
|
+
var WrapperSysAbstraction = class {
|
188
|
+
constructor(base, params) {
|
189
|
+
this._time = base._time;
|
190
|
+
this._stdout = base._stdout;
|
191
|
+
this._stderr = base._stderr;
|
192
|
+
this._idService = base._idService;
|
193
|
+
this._randomService = base._randomService;
|
194
|
+
this._fileSystem = base._fileSystem;
|
195
|
+
this._systemService = base._systemService;
|
196
|
+
if (params) {
|
197
|
+
if (params.TimeMode) {
|
198
|
+
this._time = TimeFactory(params.TimeMode);
|
199
|
+
}
|
200
|
+
if (params.Stdout) {
|
201
|
+
this._stdout = params.Stdout;
|
202
|
+
}
|
203
|
+
if (params.Stderr) {
|
204
|
+
this._stderr = params.Stderr;
|
205
|
+
}
|
206
|
+
if (params.IdMode) {
|
207
|
+
this._idService = new IdService(params.IdMode);
|
208
|
+
}
|
209
|
+
if (params.RandomMode) {
|
210
|
+
this._randomService = new RandomService(params.RandomMode);
|
211
|
+
}
|
212
|
+
if (params.FileSystem) {
|
213
|
+
this._fileSystem = params.FileSystem;
|
214
|
+
}
|
215
|
+
if (params.SystemService) {
|
216
|
+
this._systemService = params.SystemService;
|
217
|
+
}
|
218
|
+
}
|
219
|
+
}
|
220
|
+
Time() {
|
221
|
+
return this._time;
|
222
|
+
}
|
223
|
+
NextId() {
|
224
|
+
return this._idService.NextId();
|
225
|
+
}
|
226
|
+
Random0ToValue(value) {
|
227
|
+
return this._randomService.Random0ToValue(value);
|
228
|
+
}
|
229
|
+
Stdout() {
|
230
|
+
return this._stdout;
|
231
|
+
}
|
232
|
+
Stderr() {
|
233
|
+
return this._stderr;
|
234
|
+
}
|
235
|
+
System() {
|
236
|
+
return this._systemService;
|
237
|
+
}
|
238
|
+
FileSystem() {
|
239
|
+
return this._fileSystem;
|
240
|
+
}
|
241
|
+
};
|
242
|
+
|
243
|
+
// src/future.ts
|
244
|
+
var _promise, _resolveFn, _rejectFn;
|
245
|
+
var Future = class {
|
246
|
+
constructor() {
|
247
|
+
__privateAdd(this, _promise);
|
248
|
+
__privateAdd(this, _resolveFn, () => {
|
249
|
+
throw new Error("This Promise is not working as expected.");
|
250
|
+
});
|
251
|
+
__privateAdd(this, _rejectFn, () => {
|
252
|
+
throw new Error("This Promise is not working as expected.");
|
253
|
+
});
|
254
|
+
__privateSet(this, _promise, new Promise((resolve2, reject) => {
|
255
|
+
__privateSet(this, _resolveFn, resolve2);
|
256
|
+
__privateSet(this, _rejectFn, reject);
|
257
|
+
}));
|
258
|
+
}
|
259
|
+
async asPromise() {
|
260
|
+
return __privateGet(this, _promise);
|
261
|
+
}
|
262
|
+
resolve(value) {
|
263
|
+
__privateGet(this, _resolveFn).call(this, value);
|
264
|
+
}
|
265
|
+
reject(reason) {
|
266
|
+
__privateGet(this, _rejectFn).call(this, reason);
|
267
|
+
}
|
268
|
+
};
|
269
|
+
_promise = new WeakMap();
|
270
|
+
_resolveFn = new WeakMap();
|
271
|
+
_rejectFn = new WeakMap();
|
272
|
+
|
273
|
+
// src/resolve-once.ts
|
274
|
+
var ResolveOnce = class {
|
275
|
+
constructor(ctx) {
|
276
|
+
this._onceDone = false;
|
277
|
+
this._onceFutures = [];
|
278
|
+
this._onceOk = false;
|
279
|
+
this._isPromise = false;
|
280
|
+
this.ctx = ctx;
|
281
|
+
}
|
282
|
+
get ready() {
|
283
|
+
return this._onceDone;
|
284
|
+
}
|
285
|
+
reset() {
|
286
|
+
this._onceDone = false;
|
287
|
+
this._onceOk = false;
|
288
|
+
this._onceValue = void 0;
|
289
|
+
this._onceError = void 0;
|
290
|
+
this._onceFutures.length = 0;
|
291
|
+
}
|
292
|
+
// T extends Option<infer U> ? U : T
|
293
|
+
once(fn) {
|
294
|
+
if (this._onceDone) {
|
295
|
+
if (this._onceError) {
|
296
|
+
if (this._isPromise) {
|
297
|
+
return Promise.reject(this._onceError);
|
298
|
+
} else {
|
299
|
+
throw this._onceError;
|
300
|
+
}
|
301
|
+
}
|
302
|
+
if (this._onceOk) {
|
303
|
+
if (this._isPromise) {
|
304
|
+
return Promise.resolve(this._onceValue);
|
305
|
+
} else {
|
306
|
+
return this._onceValue;
|
307
|
+
}
|
308
|
+
}
|
309
|
+
throw new Error("ResolveOnce.once impossible");
|
310
|
+
}
|
311
|
+
const future = new Future();
|
312
|
+
this._onceFutures.push(future);
|
313
|
+
if (this._onceFutures.length === 1) {
|
314
|
+
const okFn = (value) => {
|
315
|
+
this._onceValue = value;
|
316
|
+
this._onceOk = true;
|
317
|
+
this._onceDone = true;
|
318
|
+
if (this._isPromise) {
|
319
|
+
this._onceFutures.forEach((f) => f.resolve(this._onceValue));
|
320
|
+
}
|
321
|
+
this._onceFutures.length = 0;
|
322
|
+
};
|
323
|
+
const catchFn = (e) => {
|
324
|
+
this._onceError = e;
|
325
|
+
this._onceOk = false;
|
326
|
+
this._onceValue = void 0;
|
327
|
+
this._onceDone = true;
|
328
|
+
if (this._isPromise) {
|
329
|
+
this._onceFutures.forEach((f) => f.reject(this._onceError));
|
330
|
+
}
|
331
|
+
this._onceFutures.length = 0;
|
332
|
+
};
|
333
|
+
try {
|
334
|
+
const ret = fn(this.ctx);
|
335
|
+
if (typeof ret.then === "function") {
|
336
|
+
this._isPromise = true;
|
337
|
+
ret.then(okFn).catch(catchFn);
|
338
|
+
} else {
|
339
|
+
okFn(ret);
|
340
|
+
}
|
341
|
+
} catch (e) {
|
342
|
+
catchFn(e);
|
343
|
+
}
|
344
|
+
}
|
345
|
+
if (this._isPromise) {
|
346
|
+
return future.asPromise();
|
347
|
+
} else {
|
348
|
+
return this.once(fn);
|
349
|
+
}
|
350
|
+
}
|
351
|
+
};
|
352
|
+
var Keyed = class {
|
353
|
+
constructor(factory) {
|
354
|
+
this._map = /* @__PURE__ */ new Map();
|
355
|
+
this.factory = factory;
|
356
|
+
}
|
357
|
+
async asyncGet(key) {
|
358
|
+
return this.get(await key());
|
359
|
+
}
|
360
|
+
get(key) {
|
361
|
+
if (typeof key === "function") {
|
362
|
+
key = key();
|
363
|
+
}
|
364
|
+
let keyed = this._map.get(key);
|
365
|
+
if (!keyed) {
|
366
|
+
keyed = this.factory(key);
|
367
|
+
this._map.set(key, keyed);
|
368
|
+
}
|
369
|
+
return keyed;
|
370
|
+
}
|
371
|
+
unget(key) {
|
372
|
+
const keyed = this._map.get(key);
|
373
|
+
keyed == null ? void 0 : keyed.reset();
|
374
|
+
this._map.delete(key);
|
375
|
+
}
|
376
|
+
reset() {
|
377
|
+
this._map.forEach((keyed) => keyed.reset());
|
378
|
+
this._map.clear();
|
379
|
+
}
|
380
|
+
};
|
381
|
+
var KeyedResolvOnce = class extends Keyed {
|
382
|
+
constructor() {
|
383
|
+
super((key) => new ResolveOnce(key));
|
384
|
+
}
|
385
|
+
};
|
386
|
+
|
387
|
+
// src/runtime.ts
|
388
|
+
function isSet(value, ref = globalThis) {
|
389
|
+
const [head, ...tail] = value.split(".");
|
390
|
+
if (["object", "function"].includes(typeof ref) && ref && ["object", "function"].includes(typeof ref[head]) && ref[head]) {
|
391
|
+
if (tail.length <= 1) {
|
392
|
+
return true;
|
393
|
+
}
|
394
|
+
return isSet(tail.join("."), ref[head]);
|
395
|
+
}
|
396
|
+
return false;
|
397
|
+
}
|
398
|
+
function runtimeFn() {
|
399
|
+
const gt = globalThis;
|
400
|
+
let isReactNative = isSet("navigator.product") && typeof gt["navigator"] === "object" && gt["navigator"]["product"] === "ReactNative";
|
401
|
+
let isNodeIsh = false;
|
402
|
+
if (!isSet("Deno")) {
|
403
|
+
isNodeIsh = isSet("process.versions.node") && !isReactNative;
|
404
|
+
}
|
405
|
+
let isDeno = isSet("Deno");
|
406
|
+
const isCFWorker = isSet("caches.default") && isSet("WebSocketPair");
|
407
|
+
if (isCFWorker) {
|
408
|
+
isDeno = false;
|
409
|
+
isNodeIsh = false;
|
410
|
+
isReactNative = false;
|
411
|
+
}
|
412
|
+
return {
|
413
|
+
isNodeIsh,
|
414
|
+
isBrowser: !(isNodeIsh || isDeno || isCFWorker || isReactNative),
|
415
|
+
isDeno,
|
416
|
+
isReactNative,
|
417
|
+
isCFWorker
|
418
|
+
};
|
419
|
+
}
|
420
|
+
|
421
|
+
// src/node/node-file-service.ts
|
422
|
+
var import_node_path = __toESM(require("path"), 1);
|
423
|
+
var import_node_fs = __toESM(require("fs"), 1);
|
424
|
+
var import_node_process = __toESM(require("process"), 1);
|
425
|
+
|
426
|
+
// src/txt-en-decoder.ts
|
427
|
+
var encoder = new TextEncoder();
|
428
|
+
var decoder = new TextDecoder();
|
429
|
+
var Utf8EnDecoder = class {
|
430
|
+
encode(str) {
|
431
|
+
return encoder.encode(str);
|
432
|
+
}
|
433
|
+
decode(data) {
|
434
|
+
return decoder.decode(data);
|
435
|
+
}
|
436
|
+
};
|
437
|
+
var utf8EnDecoder = new Utf8EnDecoder();
|
438
|
+
function Utf8EnDecoderSingleton() {
|
439
|
+
return utf8EnDecoder;
|
440
|
+
}
|
441
|
+
|
442
|
+
// src/node/node-sys-abstraction.ts
|
443
|
+
var import_node_process2 = __toESM(require("process"), 1);
|
444
|
+
var once = new ResolveOnce();
|
445
|
+
var _node;
|
446
|
+
var _NodeEnvActions = class _NodeEnvActions {
|
447
|
+
constructor(opts) {
|
448
|
+
__privateAdd(this, _node, globalThis);
|
449
|
+
this._env = this.active() ? __privateGet(this, _node).process.env : {};
|
450
|
+
this.opts = opts;
|
451
|
+
}
|
452
|
+
static new(opts) {
|
453
|
+
return once.once(() => new _NodeEnvActions(opts));
|
454
|
+
}
|
455
|
+
register(env) {
|
456
|
+
for (const key of env.keys()) {
|
457
|
+
this._env[key] = env.get(key) || "";
|
458
|
+
}
|
459
|
+
return env;
|
460
|
+
}
|
461
|
+
active() {
|
462
|
+
return runtimeFn().isNodeIsh;
|
463
|
+
}
|
464
|
+
keys() {
|
465
|
+
return Object.keys(this._env);
|
466
|
+
}
|
467
|
+
get(key) {
|
468
|
+
return this._env[key];
|
469
|
+
}
|
470
|
+
set(key, value) {
|
471
|
+
if (value) {
|
472
|
+
this._env[key] = value;
|
473
|
+
}
|
474
|
+
}
|
475
|
+
delete(key) {
|
476
|
+
delete this._env[key];
|
477
|
+
}
|
478
|
+
};
|
479
|
+
_node = new WeakMap();
|
480
|
+
var NodeEnvActions = _NodeEnvActions;
|
481
|
+
var NodeExitServiceImpl = class {
|
482
|
+
constructor() {
|
483
|
+
this._exitHandlers = [];
|
484
|
+
this.invoked = false;
|
485
|
+
this._handleExit = async () => {
|
486
|
+
if (this.invoked) {
|
487
|
+
return;
|
488
|
+
}
|
489
|
+
this.invoked = true;
|
490
|
+
for (const h of this._exitHandlers) {
|
491
|
+
try {
|
492
|
+
const ret = h.hdl();
|
493
|
+
if (typeof ret.then === "function") {
|
494
|
+
await ret;
|
495
|
+
}
|
496
|
+
} finally {
|
497
|
+
}
|
498
|
+
}
|
499
|
+
};
|
500
|
+
import_node_process2.default.on("unhandledRejection", (reason, p) => {
|
501
|
+
this.exit(19);
|
502
|
+
});
|
503
|
+
import_node_process2.default.on("uncaughtException", (error) => {
|
504
|
+
this.exit(18);
|
505
|
+
});
|
506
|
+
import_node_process2.default.on("close", () => {
|
507
|
+
this.exit(0);
|
508
|
+
});
|
509
|
+
import_node_process2.default.on("exit", () => {
|
510
|
+
this.exit(0);
|
511
|
+
});
|
512
|
+
import_node_process2.default.on("SIGQUIT", () => {
|
513
|
+
this.exit(3);
|
514
|
+
});
|
515
|
+
import_node_process2.default.on("SIGINT", () => {
|
516
|
+
this.exit(2);
|
517
|
+
});
|
518
|
+
import_node_process2.default.on("SIGTERM", () => {
|
519
|
+
this.exit(9);
|
520
|
+
});
|
521
|
+
}
|
522
|
+
injectExitHandlers(hdls) {
|
523
|
+
this._exitHandlers = hdls;
|
524
|
+
}
|
525
|
+
exit(code) {
|
526
|
+
this._handleExit().then(() => {
|
527
|
+
import_node_process2.default.exit(code);
|
528
|
+
}).catch((err) => {
|
529
|
+
console.error("ExitService: failed to handle exit", err);
|
530
|
+
import_node_process2.default.exit(code);
|
531
|
+
});
|
532
|
+
}
|
533
|
+
};
|
534
|
+
var _NodeSystemService = class _NodeSystemService {
|
535
|
+
constructor() {
|
536
|
+
this._exitService = new NodeExitServiceImpl();
|
537
|
+
this._exitService.injectExitHandlers(_NodeSystemService._exitHandlers);
|
538
|
+
}
|
539
|
+
Env() {
|
540
|
+
return envFactory();
|
541
|
+
}
|
542
|
+
Args() {
|
543
|
+
return import_node_process2.default.argv;
|
544
|
+
}
|
545
|
+
OnExit(hdl) {
|
546
|
+
const id = crypto.randomUUID();
|
547
|
+
_NodeSystemService._exitHandlers.push({ hdl, id });
|
548
|
+
return () => {
|
549
|
+
const idx = _NodeSystemService._exitHandlers.findIndex((h) => h.id === id);
|
550
|
+
if (idx >= 0) {
|
551
|
+
_NodeSystemService._exitHandlers.splice(idx, 1);
|
552
|
+
}
|
553
|
+
};
|
554
|
+
}
|
555
|
+
Exit(code) {
|
556
|
+
this._exitService.exit(code);
|
557
|
+
}
|
558
|
+
};
|
559
|
+
_NodeSystemService._exitHandlers = [];
|
560
|
+
var NodeSystemService = _NodeSystemService;
|
561
|
+
|
562
|
+
// src/web/web-sys-abstraction.ts
|
563
|
+
var once2 = new ResolveOnce();
|
564
|
+
var BrowserEnvActions = class _BrowserEnvActions {
|
565
|
+
constructor(opts) {
|
566
|
+
this.env = /* @__PURE__ */ new Map();
|
567
|
+
this.opts = opts;
|
568
|
+
}
|
569
|
+
static new(opts) {
|
570
|
+
return once2.once(() => new _BrowserEnvActions(opts));
|
571
|
+
}
|
572
|
+
get(key) {
|
573
|
+
return this.env.get(key);
|
574
|
+
}
|
575
|
+
set(key, value) {
|
576
|
+
if (value) {
|
577
|
+
this.env.set(key, value);
|
578
|
+
}
|
579
|
+
}
|
580
|
+
delete(key) {
|
581
|
+
this.env.delete(key);
|
582
|
+
}
|
583
|
+
keys() {
|
584
|
+
return Array.from(this.env.keys());
|
585
|
+
}
|
586
|
+
active() {
|
587
|
+
return true;
|
588
|
+
}
|
589
|
+
register(env) {
|
590
|
+
const sym = Symbol.for(this.opts.symbol || "CP_ENV");
|
591
|
+
const browser = globalThis;
|
592
|
+
browser[sym] = env;
|
593
|
+
return env;
|
594
|
+
}
|
595
|
+
};
|
596
|
+
|
597
|
+
// src/cf/cf-sys-abstraction.ts
|
598
|
+
var once3 = new ResolveOnce();
|
599
|
+
var CFEnvActions = class _CFEnvActions {
|
600
|
+
static new(opts) {
|
601
|
+
return once3.once(() => new _CFEnvActions(opts));
|
602
|
+
}
|
603
|
+
static inject(o) {
|
604
|
+
var _a;
|
605
|
+
const env = _CFEnvActions.new({});
|
606
|
+
for (const key in o) {
|
607
|
+
const value = o[key];
|
608
|
+
if (typeof value === "string") {
|
609
|
+
(_a = env.env) == null ? void 0 : _a.set(key, value);
|
610
|
+
}
|
611
|
+
}
|
612
|
+
}
|
613
|
+
constructor(env) {
|
614
|
+
this.cfEnv = new Map(Object.entries(env.presetEnv || {}));
|
615
|
+
}
|
616
|
+
active() {
|
617
|
+
return runtimeFn().isCFWorker;
|
618
|
+
}
|
619
|
+
register(env) {
|
620
|
+
this.env = env;
|
621
|
+
return env;
|
622
|
+
}
|
623
|
+
get(key) {
|
624
|
+
return this.cfEnv.get(key);
|
625
|
+
}
|
626
|
+
set(key, value) {
|
627
|
+
if (value) {
|
628
|
+
this.cfEnv.set(key, value);
|
629
|
+
}
|
630
|
+
}
|
631
|
+
delete(key) {
|
632
|
+
this.cfEnv.delete(key);
|
633
|
+
}
|
634
|
+
keys() {
|
635
|
+
return Array.from(this.cfEnv.keys());
|
636
|
+
}
|
637
|
+
};
|
638
|
+
|
639
|
+
// src/sys-env.ts
|
640
|
+
var envActions = [
|
641
|
+
{ id: "cf", fn: (opts) => CFEnvActions.new(opts) },
|
642
|
+
{ id: "node", fn: (opts) => NodeEnvActions.new(opts) },
|
643
|
+
{ id: "deno", fn: (opts) => DenoEnvActions.new(opts) },
|
644
|
+
{ id: "browser", fn: (opts) => BrowserEnvActions.new(opts) }
|
645
|
+
];
|
646
|
+
var _envFactories = new KeyedResolvOnce();
|
647
|
+
function envFactory(opts = {}) {
|
648
|
+
const found = envActions.find((fi) => fi.fn(opts).active());
|
649
|
+
if (!found) {
|
650
|
+
throw new Error("SysContainer:envFactory: no env available");
|
651
|
+
}
|
652
|
+
return _envFactories.get(found.id).once(() => {
|
653
|
+
const action = found.fn(opts);
|
654
|
+
const ret = new EnvImpl2(action, opts);
|
655
|
+
action.register(ret);
|
656
|
+
return ret;
|
657
|
+
});
|
658
|
+
}
|
659
|
+
var EnvImpl2 = class {
|
660
|
+
constructor(map, opts = {}) {
|
661
|
+
this._onSet = [];
|
662
|
+
this._map = map;
|
663
|
+
this._updatePresets(opts.presetEnv);
|
664
|
+
}
|
665
|
+
_updatePresets(presetEnv) {
|
666
|
+
if (!presetEnv) {
|
667
|
+
return;
|
668
|
+
}
|
669
|
+
for (const [key, value] of presetEnv) {
|
670
|
+
this._map.set(key, value);
|
671
|
+
}
|
672
|
+
}
|
673
|
+
_applyOnSet(onSet, key, value) {
|
674
|
+
onSet.forEach((item) => {
|
675
|
+
let keys = [];
|
676
|
+
if (key) {
|
677
|
+
keys = [key];
|
678
|
+
} else {
|
679
|
+
keys = this._map.keys();
|
680
|
+
}
|
681
|
+
keys.filter((k) => {
|
682
|
+
if (item.filter.size === 0) {
|
683
|
+
return true;
|
684
|
+
}
|
685
|
+
if (item.filter.has(k)) {
|
686
|
+
return true;
|
687
|
+
}
|
688
|
+
return false;
|
689
|
+
}).forEach((k) => {
|
690
|
+
let v;
|
691
|
+
if (!key && !value) {
|
692
|
+
v = this._map.get(k);
|
693
|
+
} else if (key && !value) {
|
694
|
+
v = void 0;
|
695
|
+
} else {
|
696
|
+
v = value;
|
697
|
+
}
|
698
|
+
item.fn(k, v);
|
699
|
+
});
|
700
|
+
});
|
701
|
+
}
|
702
|
+
keys() {
|
703
|
+
return this._map.keys();
|
704
|
+
}
|
705
|
+
// filter is not set all sets passed
|
706
|
+
onSet(fn, ...filter) {
|
707
|
+
const item = { filter: new Set(filter), fn };
|
708
|
+
this._onSet.push(item);
|
709
|
+
this._applyOnSet([item]);
|
710
|
+
}
|
711
|
+
get(key) {
|
712
|
+
return this._map.get(key);
|
713
|
+
}
|
714
|
+
set(key, value) {
|
715
|
+
if (!value) {
|
716
|
+
return;
|
717
|
+
}
|
718
|
+
this._map.set(key, value);
|
719
|
+
this._applyOnSet(this._onSet, key, value);
|
720
|
+
}
|
721
|
+
delete(key) {
|
722
|
+
this._map.delete(key);
|
723
|
+
this._applyOnSet(this._onSet, key);
|
724
|
+
}
|
725
|
+
};
|
726
|
+
|
727
|
+
// src/deno/deno-file-service.ts
|
728
|
+
var path2 = __toESM(require("path"), 1);
|
729
|
+
var Deno = globalThis.Deno;
|
730
|
+
var DenoFileService = class {
|
731
|
+
constructor(baseDir = Deno.cwd(), txtEnde = Utf8EnDecoderSingleton()) {
|
732
|
+
this.baseDir = this.abs(baseDir);
|
733
|
+
this.txtEnde = txtEnde;
|
734
|
+
}
|
735
|
+
// nodeImport(fname: string): string {
|
736
|
+
// // console.log('nodeImport:'+ fname);
|
737
|
+
// if (path.isAbsolute(fname)) {
|
738
|
+
// return fname;
|
739
|
+
// } else {
|
740
|
+
// return "./" + path.normalize(fname);
|
741
|
+
// }
|
742
|
+
// }
|
743
|
+
async readFileString(fname) {
|
744
|
+
return this.txtEnde.decode(await Deno.readFile(fname));
|
745
|
+
}
|
746
|
+
dirname(fname) {
|
747
|
+
return path2.dirname(fname);
|
748
|
+
}
|
749
|
+
basename(fname) {
|
750
|
+
return path2.basename(fname);
|
751
|
+
}
|
752
|
+
join(...paths) {
|
753
|
+
return path2.join(...paths);
|
754
|
+
}
|
755
|
+
relative(from, to) {
|
756
|
+
if (to === void 0) {
|
757
|
+
to = from;
|
758
|
+
from = Deno.cwd();
|
759
|
+
}
|
760
|
+
const ret = path2.relative(from, to);
|
761
|
+
return ret;
|
762
|
+
}
|
763
|
+
abs(fname) {
|
764
|
+
if (path2.isAbsolute(fname)) {
|
765
|
+
return fname;
|
766
|
+
} else {
|
767
|
+
const cwd = Deno.cwd();
|
768
|
+
return path2.resolve(cwd, fname);
|
769
|
+
}
|
770
|
+
}
|
771
|
+
isAbsolute(fname) {
|
772
|
+
return path2.isAbsolute(fname);
|
773
|
+
}
|
774
|
+
async writeFileString(fname, content, ende = Utf8EnDecoderSingleton()) {
|
775
|
+
const o = await this.create(fname);
|
776
|
+
const wr = o.stream.getWriter();
|
777
|
+
await wr.write(ende.encode(content));
|
778
|
+
await wr.close();
|
779
|
+
}
|
780
|
+
async create(fname) {
|
781
|
+
let oName = fname;
|
782
|
+
if (!path2.isAbsolute(fname)) {
|
783
|
+
oName = this.abs(fname);
|
784
|
+
}
|
785
|
+
const base = path2.dirname(oName);
|
786
|
+
await Deno.mkdir(base, { recursive: true });
|
787
|
+
const out = await Deno.open(oName, {
|
788
|
+
write: true,
|
789
|
+
create: true,
|
790
|
+
truncate: true
|
791
|
+
});
|
792
|
+
return {
|
793
|
+
name: oName,
|
794
|
+
stream: out
|
795
|
+
};
|
796
|
+
}
|
797
|
+
};
|
798
|
+
|
799
|
+
// src/deno/deno-sys-abstraction.ts
|
800
|
+
var Deno2 = globalThis.Deno;
|
801
|
+
var once4 = new ResolveOnce();
|
802
|
+
var _deno;
|
803
|
+
var _DenoEnvActions = class _DenoEnvActions {
|
804
|
+
constructor(opts) {
|
805
|
+
__privateAdd(this, _deno, globalThis);
|
806
|
+
this.opts = opts;
|
807
|
+
}
|
808
|
+
static new(opts) {
|
809
|
+
return once4.once(() => new _DenoEnvActions(opts));
|
810
|
+
}
|
811
|
+
get _env() {
|
812
|
+
return __privateGet(this, _deno).Deno.env;
|
813
|
+
}
|
814
|
+
register(env) {
|
815
|
+
for (const key of env.keys()) {
|
816
|
+
this._env.set(key, env.get(key) || "");
|
817
|
+
}
|
818
|
+
return env;
|
819
|
+
}
|
820
|
+
active() {
|
821
|
+
return runtimeFn().isDeno;
|
822
|
+
}
|
823
|
+
keys() {
|
824
|
+
return Object.keys(this._env.toObject());
|
825
|
+
}
|
826
|
+
get(key) {
|
827
|
+
return this._env.get(key);
|
828
|
+
}
|
829
|
+
set(key, value) {
|
830
|
+
if (value) {
|
831
|
+
this._env.set(key, value);
|
832
|
+
}
|
833
|
+
}
|
834
|
+
delete(key) {
|
835
|
+
this._env.delete(key);
|
836
|
+
}
|
837
|
+
};
|
838
|
+
_deno = new WeakMap();
|
839
|
+
var DenoEnvActions = _DenoEnvActions;
|
840
|
+
var DenoExitServiceImpl = class {
|
841
|
+
constructor() {
|
842
|
+
this._exitHandlers = [];
|
843
|
+
this.invoked = false;
|
844
|
+
this._handleExit = async () => {
|
845
|
+
if (this.invoked) {
|
846
|
+
return;
|
847
|
+
}
|
848
|
+
this.invoked = true;
|
849
|
+
for (const h of this._exitHandlers) {
|
850
|
+
try {
|
851
|
+
const ret = h.hdl();
|
852
|
+
if (typeof ret.then === "function") {
|
853
|
+
await ret;
|
854
|
+
}
|
855
|
+
} finally {
|
856
|
+
}
|
857
|
+
}
|
858
|
+
};
|
859
|
+
globalThis.addEventListener("unhandledrejection", (e) => {
|
860
|
+
e.preventDefault();
|
861
|
+
this.exit(19);
|
862
|
+
});
|
863
|
+
globalThis.addEventListener("error", () => {
|
864
|
+
this.exit(19);
|
865
|
+
});
|
866
|
+
globalThis.addEventListener("uncaughtException", () => {
|
867
|
+
this.exit(19);
|
868
|
+
});
|
869
|
+
globalThis.addEventListener("unload", () => {
|
870
|
+
this.exit(0);
|
871
|
+
});
|
872
|
+
Deno2.addSignalListener("SIGQUIT", () => {
|
873
|
+
this.exit(3);
|
874
|
+
});
|
875
|
+
Deno2.addSignalListener("SIGINT", () => {
|
876
|
+
this.exit(2);
|
877
|
+
});
|
878
|
+
Deno2.addSignalListener("SIGTERM", () => {
|
879
|
+
this.exit(9);
|
880
|
+
});
|
881
|
+
}
|
882
|
+
injectExitHandlers(hdls) {
|
883
|
+
this._exitHandlers = hdls;
|
884
|
+
}
|
885
|
+
exit(code) {
|
886
|
+
this._handleExit().then(() => {
|
887
|
+
Deno2.exit(code);
|
888
|
+
}).catch((err) => {
|
889
|
+
console.error("ExitService: failed to handle exit", err);
|
890
|
+
Deno2.exit(code);
|
891
|
+
});
|
892
|
+
}
|
893
|
+
};
|
894
|
+
var _DenoSystemService = class _DenoSystemService {
|
895
|
+
constructor() {
|
896
|
+
this._exitService = new DenoExitServiceImpl();
|
897
|
+
this._exitService.injectExitHandlers(_DenoSystemService._exitHandlers);
|
898
|
+
}
|
899
|
+
Env() {
|
900
|
+
return envFactory();
|
901
|
+
}
|
902
|
+
Args() {
|
903
|
+
return Deno2.args;
|
904
|
+
}
|
905
|
+
OnExit(hdl) {
|
906
|
+
const id = crypto.randomUUID();
|
907
|
+
_DenoSystemService._exitHandlers.push({ hdl, id });
|
908
|
+
return () => {
|
909
|
+
const idx = _DenoSystemService._exitHandlers.findIndex((h) => h.id === id);
|
910
|
+
if (idx >= 0) {
|
911
|
+
_DenoSystemService._exitHandlers.splice(idx, 1);
|
912
|
+
}
|
913
|
+
};
|
914
|
+
}
|
915
|
+
Exit(code) {
|
916
|
+
this._exitService.exit(code);
|
917
|
+
}
|
918
|
+
};
|
919
|
+
_DenoSystemService._exitHandlers = [];
|
920
|
+
var DenoSystemService = _DenoSystemService;
|
921
|
+
var my = void 0;
|
922
|
+
function DenoSysAbstraction(param) {
|
923
|
+
if (!my) {
|
924
|
+
my = new BaseSysAbstraction({
|
925
|
+
TxtEnDecoder: (param == null ? void 0 : param.TxtEnDecoder) || Utf8EnDecoderSingleton(),
|
926
|
+
FileSystem: new DenoFileService(),
|
927
|
+
SystemService: new DenoSystemService()
|
928
|
+
});
|
929
|
+
}
|
930
|
+
return new WrapperSysAbstraction(my, param);
|
931
|
+
}
|
932
|
+
// Annotate the CommonJS export names for ESM import in node:
|
933
|
+
0 && (module.exports = {
|
934
|
+
DenoEnvActions,
|
935
|
+
DenoExitServiceImpl,
|
936
|
+
DenoFileService,
|
937
|
+
DenoSysAbstraction,
|
938
|
+
DenoSystemService
|
939
|
+
});
|
940
|
+
//# sourceMappingURL=index.cjs.map
|