@adviser/cement 0.3.20 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/base-sys-abstraction-DgTynXGV.d.cts +95 -0
  2. package/base-sys-abstraction-h0dB3nZ5.d.ts +95 -0
  3. package/cf/index.cjs +232 -283
  4. package/cf/index.cjs.map +1 -1
  5. package/cf/index.d.cts +10 -8
  6. package/cf/index.d.ts +10 -8
  7. package/cf/index.js +6 -41
  8. package/cf/index.js.map +1 -1
  9. package/{chunk-PHS255C5.js → chunk-FOALXQST.js} +1 -68
  10. package/chunk-FOALXQST.js.map +1 -0
  11. package/{chunk-UEER5ZC2.js → chunk-NPMIRK4R.js} +8 -22
  12. package/chunk-NPMIRK4R.js.map +1 -0
  13. package/{chunk-23MCJYE6.js → chunk-X3IV2RYT.js} +422 -602
  14. package/chunk-X3IV2RYT.js.map +1 -0
  15. package/chunk-YKGCONBX.js +677 -0
  16. package/chunk-YKGCONBX.js.map +1 -0
  17. package/{chunk-55W4AK2Z.js → chunk-YVACAIUX.js} +5 -5
  18. package/deno/index.cjs +257 -241
  19. package/deno/index.cjs.map +1 -1
  20. package/deno/index.d.cts +3 -5
  21. package/deno/index.d.ts +3 -5
  22. package/deno/index.js +14 -16
  23. package/deno/index.js.map +1 -1
  24. package/{index-BhmvYS_t.d.ts → index-N0bkrgSt.d.ts} +2 -2
  25. package/{index-DoK1OTgQ.d.cts → index-TtYD7HhB.d.cts} +2 -2
  26. package/index.cjs +1935 -1806
  27. package/index.cjs.map +1 -1
  28. package/index.d.cts +15 -8
  29. package/index.d.ts +15 -8
  30. package/index.js +58 -16
  31. package/index.js.map +1 -1
  32. package/metafile-cjs.json +1 -1
  33. package/metafile-esm.json +1 -1
  34. package/node/index.cjs +499 -474
  35. package/node/index.cjs.map +1 -1
  36. package/node/index.d.cts +3 -5
  37. package/node/index.d.ts +3 -5
  38. package/node/index.js +14 -16
  39. package/node/index.js.map +1 -1
  40. package/package.json +5 -5
  41. package/src/base-sys-abstraction.ts +106 -116
  42. package/src/cf/cf-basic-sys-abstraction.ts +79 -0
  43. package/src/cf/index.ts +1 -1
  44. package/src/cf-test-main.ts +10 -1
  45. package/src/coerce-binary.ts +39 -0
  46. package/src/deno/deno-basic-sys-abstraction.ts +39 -0
  47. package/src/deno/deno-file-service.ts +1 -1
  48. package/src/deno/deno-sys-abstraction.ts +19 -22
  49. package/src/index.ts +1 -0
  50. package/src/jsr.json +1 -1
  51. package/src/log-writer-impl.ts +6 -0
  52. package/src/logger-impl.ts +18 -20
  53. package/src/node/node-basic-sys-abstraction.ts +59 -0
  54. package/src/node/node-sys-abstraction.ts +19 -22
  55. package/src/sys-abstraction.ts +12 -6
  56. package/src/test/mock-logger.ts +2 -2
  57. package/src/txt-en-decoder.ts +3 -3
  58. package/src/web/index.ts +1 -1
  59. package/src/web/web-basic-sys-abstraction.ts +105 -0
  60. package/{sys-abstraction-B0x6IE7r.d.ts → sys-abstraction-CeAxxg9H.d.ts} +11 -7
  61. package/{sys-abstraction-BTs3Vzy4.d.cts → sys-abstraction-DDAwGTnk.d.cts} +11 -7
  62. package/test/index.cjs +1146 -1085
  63. package/test/index.cjs.map +1 -1
  64. package/test/index.d.cts +2 -2
  65. package/test/index.d.ts +2 -2
  66. package/test/index.js +4 -5
  67. package/ts/smoke/smoke.js +7 -8
  68. package/ts/smoke/smoke.js.map +1 -1
  69. package/ts/src/base-basic-sys-abstraction.test.d.ts +2 -0
  70. package/ts/src/base-basic-sys-abstraction.test.d.ts.map +1 -0
  71. package/ts/src/{base-sys-abstraction.test.js → base-basic-sys-abstraction.test.js} +9 -9
  72. package/ts/src/base-basic-sys-abstraction.test.js.map +1 -0
  73. package/ts/src/base-sys-abstraction.d.ts +33 -21
  74. package/ts/src/base-sys-abstraction.d.ts.map +1 -1
  75. package/ts/src/base-sys-abstraction.js +54 -67
  76. package/ts/src/base-sys-abstraction.js.map +1 -1
  77. package/ts/src/cf/cf-basic-sys-abstraction.d.ts +14 -0
  78. package/ts/src/cf/cf-basic-sys-abstraction.d.ts.map +1 -0
  79. package/ts/src/cf/cf-basic-sys-abstraction.js +67 -0
  80. package/ts/src/cf/cf-basic-sys-abstraction.js.map +1 -0
  81. package/ts/src/cf/index.d.ts +1 -1
  82. package/ts/src/cf/index.d.ts.map +1 -1
  83. package/ts/src/cf/index.js +1 -1
  84. package/ts/src/cf/index.js.map +1 -1
  85. package/ts/src/cf-test-main.d.ts.map +1 -1
  86. package/ts/src/cf-test-main.js +7 -1
  87. package/ts/src/cf-test-main.js.map +1 -1
  88. package/ts/src/coerce-binary.d.ts +6 -0
  89. package/ts/src/coerce-binary.d.ts.map +1 -0
  90. package/ts/src/coerce-binary.js +32 -0
  91. package/ts/src/coerce-binary.js.map +1 -0
  92. package/ts/src/coerce-binary.test.d.ts +2 -0
  93. package/ts/src/coerce-binary.test.d.ts.map +1 -0
  94. package/ts/src/coerce-binary.test.js +39 -0
  95. package/ts/src/coerce-binary.test.js.map +1 -0
  96. package/ts/src/deno/deno-basic-sys-abstraction.d.ts +14 -0
  97. package/ts/src/deno/deno-basic-sys-abstraction.d.ts.map +1 -0
  98. package/ts/src/deno/deno-basic-sys-abstraction.js +35 -0
  99. package/ts/src/deno/deno-basic-sys-abstraction.js.map +1 -0
  100. package/ts/src/deno/deno-file-service.d.ts +1 -1
  101. package/ts/src/deno/deno-file-service.d.ts.map +1 -1
  102. package/ts/src/deno/deno-sys-abstraction.d.ts +3 -6
  103. package/ts/src/deno/deno-sys-abstraction.d.ts.map +1 -1
  104. package/ts/src/deno/deno-sys-abstraction.js +13 -17
  105. package/ts/src/deno/deno-sys-abstraction.js.map +1 -1
  106. package/ts/src/index.d.ts +1 -0
  107. package/ts/src/index.d.ts.map +1 -1
  108. package/ts/src/index.js +1 -0
  109. package/ts/src/index.js.map +1 -1
  110. package/ts/src/log-writer-impl.d.ts +1 -0
  111. package/ts/src/log-writer-impl.d.ts.map +1 -1
  112. package/ts/src/log-writer-impl.js +1 -0
  113. package/ts/src/log-writer-impl.js.map +1 -1
  114. package/ts/src/logger-impl.d.ts +4 -4
  115. package/ts/src/logger-impl.d.ts.map +1 -1
  116. package/ts/src/logger-impl.js +4 -19
  117. package/ts/src/logger-impl.js.map +1 -1
  118. package/ts/src/logger.test.js +3 -4
  119. package/ts/src/logger.test.js.map +1 -1
  120. package/ts/src/node/node-basic-sys-abstraction.d.ts +25 -0
  121. package/ts/src/node/node-basic-sys-abstraction.d.ts.map +1 -0
  122. package/ts/src/node/node-basic-sys-abstraction.js +44 -0
  123. package/ts/src/node/node-basic-sys-abstraction.js.map +1 -0
  124. package/ts/src/node/node-sys-abstraction.d.ts +3 -6
  125. package/ts/src/node/node-sys-abstraction.d.ts.map +1 -1
  126. package/ts/src/node/node-sys-abstraction.js +13 -17
  127. package/ts/src/node/node-sys-abstraction.js.map +1 -1
  128. package/ts/src/node/node-sys-abstraction.test.js +1 -1
  129. package/ts/src/node/node-sys-abstraction.test.js.map +1 -1
  130. package/ts/src/sys-abstraction.d.ts +10 -6
  131. package/ts/src/sys-abstraction.d.ts.map +1 -1
  132. package/ts/src/test/mock-logger.d.ts +2 -2
  133. package/ts/src/test/mock-logger.d.ts.map +1 -1
  134. package/ts/src/test/mock-logger.js.map +1 -1
  135. package/ts/src/tracer.test.js +5 -8
  136. package/ts/src/tracer.test.js.map +1 -1
  137. package/ts/src/txt-en-decoder.d.ts.map +1 -1
  138. package/ts/src/txt-en-decoder.js +3 -3
  139. package/ts/src/txt-en-decoder.js.map +1 -1
  140. package/ts/src/web/index.d.ts +1 -1
  141. package/ts/src/web/index.d.ts.map +1 -1
  142. package/ts/src/web/index.js +1 -1
  143. package/ts/src/web/index.js.map +1 -1
  144. package/ts/src/web/web-basic-sys-abstraction.d.ts +4 -0
  145. package/ts/src/web/web-basic-sys-abstraction.d.ts.map +1 -0
  146. package/ts/src/web/web-basic-sys-abstraction.js +45 -0
  147. package/ts/src/web/web-basic-sys-abstraction.js.map +1 -0
  148. package/utils/index.cjs +132 -3
  149. package/utils/index.cjs.map +1 -1
  150. package/utils/index.js +5 -5
  151. package/web/index.cjs +277 -281
  152. package/web/index.cjs.map +1 -1
  153. package/web/index.d.cts +4 -17
  154. package/web/index.d.ts +4 -17
  155. package/web/index.js +4 -7
  156. package/base-sys-abstraction-BnBZ6zd0.d.ts +0 -84
  157. package/base-sys-abstraction-DAZ8tx5F.d.cts +0 -84
  158. package/chunk-23MCJYE6.js.map +0 -1
  159. package/chunk-H6MLKWIZ.js +0 -88
  160. package/chunk-H6MLKWIZ.js.map +0 -1
  161. package/chunk-LXTKPZ6M.js +0 -255
  162. package/chunk-LXTKPZ6M.js.map +0 -1
  163. package/chunk-PHS255C5.js.map +0 -1
  164. package/chunk-UEER5ZC2.js.map +0 -1
  165. package/src/cf/cf-sys-abstraction.ts +0 -34
  166. package/src/web/web-sys-abstraction.ts +0 -80
  167. package/ts/src/base-sys-abstraction.test.d.ts +0 -2
  168. package/ts/src/base-sys-abstraction.test.d.ts.map +0 -1
  169. package/ts/src/base-sys-abstraction.test.js.map +0 -1
  170. package/ts/src/cf/cf-sys-abstraction.d.ts +0 -11
  171. package/ts/src/cf/cf-sys-abstraction.d.ts.map +0 -1
  172. package/ts/src/cf/cf-sys-abstraction.js +0 -30
  173. package/ts/src/cf/cf-sys-abstraction.js.map +0 -1
  174. package/ts/src/web/web-sys-abstraction.d.ts +0 -18
  175. package/ts/src/web/web-sys-abstraction.d.ts.map +0 -1
  176. package/ts/src/web/web-sys-abstraction.js +0 -64
  177. package/ts/src/web/web-sys-abstraction.js.map +0 -1
  178. /package/{chunk-55W4AK2Z.js.map → chunk-YVACAIUX.js.map} +0 -0
@@ -1,594 +1,12 @@
1
1
  import {
2
- Result,
2
+ ConsoleWriterStream,
3
+ KeyedResolvOnce,
4
+ ResolveOnce,
5
+ TxtEnDecoderSingleton,
3
6
  __privateAdd,
4
7
  __privateGet,
5
- __privateSet,
6
8
  getParamsResult
7
- } from "./chunk-LXTKPZ6M.js";
8
-
9
- // src/sys-abstraction.ts
10
- var TimeMode = {
11
- REAL: "real",
12
- CONST: "const",
13
- STEP: "step"
14
- };
15
- var RandomMode = {
16
- CONST: "const",
17
- STEP: "step",
18
- RANDOM: "random"
19
- };
20
- var IDMode = {
21
- UUID: "uuid",
22
- CONST: "const",
23
- STEP: "step"
24
- };
25
- function String2TimeMode(s) {
26
- switch (s == null ? void 0 : s.toLowerCase()) {
27
- case "real":
28
- return TimeMode.REAL;
29
- case "const":
30
- return TimeMode.CONST;
31
- case "step":
32
- return TimeMode.STEP;
33
- default:
34
- return TimeMode.REAL;
35
- }
36
- }
37
-
38
- // src/time.ts
39
- var Time = class {
40
- TimeSince(start) {
41
- const now = this.Now();
42
- return now.getTime() - start.getTime();
43
- }
44
- };
45
- var TimeUnits = {
46
- Microsecond: 1,
47
- Second: 1e3 * 1,
48
- //Microsecond,
49
- Minute: 60 * 1e3 * 1,
50
- //Second,
51
- Hour: 60 * 60 * 1e3 * 1
52
- // Minute,
53
- };
54
-
55
- // src/base-sys-abstraction.ts
56
- var SysTime = class extends Time {
57
- Now() {
58
- return /* @__PURE__ */ new Date();
59
- }
60
- Sleep(duration) {
61
- return new Promise((resolve) => {
62
- setTimeout(() => {
63
- resolve();
64
- }, duration);
65
- });
66
- }
67
- };
68
- var ConstTime = class extends Time {
69
- Now() {
70
- return new Date(2021, 1, 1, 0, 0, 0, 0);
71
- }
72
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
73
- Sleep(duration) {
74
- return Promise.resolve();
75
- }
76
- };
77
- var StepTime = class extends Time {
78
- constructor() {
79
- super();
80
- this._step = new ConstTime().Now();
81
- this._start = this._step;
82
- }
83
- Now(steps = 1) {
84
- for (let i = 0; steps > 0 && i < steps; i++) {
85
- this._step = new Date(this._step.getTime() + 1e3);
86
- }
87
- if (steps < 1) {
88
- this._step = new Date(this._start.getTime() + steps * -1e3);
89
- }
90
- return this._step;
91
- }
92
- Sleep(duration) {
93
- this._step = new Date(this._step.getTime() + duration);
94
- return Promise.resolve();
95
- }
96
- };
97
- function TimeFactory(timeMode) {
98
- switch (timeMode) {
99
- case TimeMode.REAL:
100
- return new SysTime();
101
- case TimeMode.CONST:
102
- return new ConstTime();
103
- case TimeMode.STEP:
104
- return new StepTime();
105
- }
106
- return new SysTime();
107
- }
108
- var RandomService = class {
109
- constructor(mode) {
110
- this._step = 0;
111
- this._mode = mode;
112
- }
113
- Random0ToValue(value) {
114
- switch (this._mode) {
115
- case RandomMode.CONST:
116
- return 0.5 * value;
117
- case RandomMode.STEP:
118
- this._step += 1e-4;
119
- return this._step * value;
120
- case RandomMode.RANDOM:
121
- return Math.random() * value;
122
- default:
123
- throw new Error("Unknown RandomMode");
124
- }
125
- }
126
- };
127
- var IdService = class {
128
- constructor(mode) {
129
- this._step = 0;
130
- if (!mode) {
131
- mode = IDMode.UUID;
132
- }
133
- this._mode = mode;
134
- }
135
- NextId() {
136
- switch (this._mode) {
137
- case IDMode.UUID:
138
- return crypto.randomUUID();
139
- case IDMode.CONST:
140
- return "VeryUniqueID";
141
- case IDMode.STEP:
142
- return `STEPId-${this._step++}`;
143
- default:
144
- throw new Error("Unknown IDMode");
145
- }
146
- }
147
- };
148
- function consumeReadableStream(reader, writeFn) {
149
- reader.read().then(({ done, value }) => {
150
- if (done) {
151
- return;
152
- }
153
- writeFn(value).then(() => {
154
- consumeReadableStream(reader, writeFn);
155
- }).catch((e) => {
156
- console.error("consumeReadableStream:writeFn", e);
157
- });
158
- }).catch((e) => {
159
- console.error("consumeReadableStream:read", e);
160
- });
161
- }
162
- function CFWriteableStream(writeFn) {
163
- const ts = new TransformStream();
164
- consumeReadableStream(ts.readable.getReader(), writeFn);
165
- return ts.writable;
166
- }
167
- var BaseSysAbstraction = class {
168
- constructor(params) {
169
- this._time = new SysTime();
170
- this._idService = new IdService();
171
- this._randomService = new RandomService(RandomMode.RANDOM);
172
- this._fileSystem = params.FileSystem;
173
- this._systemService = params.SystemService;
174
- this._txtEnDe = params.TxtEnDecoder;
175
- const decoder = this._txtEnDe;
176
- this._stdout = CFWriteableStream((chunk) => {
177
- const decoded = decoder.decode(chunk);
178
- console.log(decoded.trimEnd());
179
- return Promise.resolve();
180
- });
181
- this._stderr = CFWriteableStream((chunk) => {
182
- const decoded = decoder.decode(chunk);
183
- console.error(decoded.trimEnd());
184
- return Promise.resolve();
185
- });
186
- }
187
- };
188
- var WrapperSysAbstraction = class {
189
- constructor(base, params) {
190
- this._time = base._time;
191
- this._stdout = base._stdout;
192
- this._stderr = base._stderr;
193
- this._idService = base._idService;
194
- this._randomService = base._randomService;
195
- this._fileSystem = base._fileSystem;
196
- this._systemService = base._systemService;
197
- if (params) {
198
- if (params.TimeMode) {
199
- this._time = TimeFactory(params.TimeMode);
200
- }
201
- if (params.Stdout) {
202
- this._stdout = params.Stdout;
203
- }
204
- if (params.Stderr) {
205
- this._stderr = params.Stderr;
206
- }
207
- if (params.IdMode) {
208
- this._idService = new IdService(params.IdMode);
209
- }
210
- if (params.RandomMode) {
211
- this._randomService = new RandomService(params.RandomMode);
212
- }
213
- if (params.FileSystem) {
214
- this._fileSystem = params.FileSystem;
215
- }
216
- if (params.SystemService) {
217
- this._systemService = params.SystemService;
218
- }
219
- }
220
- }
221
- Time() {
222
- return this._time;
223
- }
224
- NextId() {
225
- return this._idService.NextId();
226
- }
227
- Random0ToValue(value) {
228
- return this._randomService.Random0ToValue(value);
229
- }
230
- Stdout() {
231
- return this._stdout;
232
- }
233
- Stderr() {
234
- return this._stderr;
235
- }
236
- System() {
237
- return this._systemService;
238
- }
239
- FileSystem() {
240
- return this._fileSystem;
241
- }
242
- };
243
-
244
- // src/future.ts
245
- var _promise, _resolveFn, _rejectFn;
246
- var Future = class {
247
- constructor() {
248
- __privateAdd(this, _promise);
249
- __privateAdd(this, _resolveFn, () => {
250
- throw new Error("This Promise is not working as expected.");
251
- });
252
- __privateAdd(this, _rejectFn, () => {
253
- throw new Error("This Promise is not working as expected.");
254
- });
255
- __privateSet(this, _promise, new Promise((resolve, reject) => {
256
- __privateSet(this, _resolveFn, resolve);
257
- __privateSet(this, _rejectFn, reject);
258
- }));
259
- }
260
- async asPromise() {
261
- return __privateGet(this, _promise);
262
- }
263
- resolve(value) {
264
- __privateGet(this, _resolveFn).call(this, value);
265
- }
266
- reject(reason) {
267
- __privateGet(this, _rejectFn).call(this, reason);
268
- }
269
- };
270
- _promise = new WeakMap();
271
- _resolveFn = new WeakMap();
272
- _rejectFn = new WeakMap();
273
-
274
- // src/lru-map-set.ts
275
- var LRUSet = class {
276
- constructor(param = {}) {
277
- this._lruMap = new LRUMap(param);
278
- }
279
- setParam(param = {}) {
280
- this._lruMap.setParam(param);
281
- }
282
- get size() {
283
- return this._lruMap.size;
284
- }
285
- has(key) {
286
- return this._lruMap.has(key);
287
- }
288
- add(key) {
289
- this._lruMap.set(key, key);
290
- }
291
- delete(key) {
292
- this._lruMap.delete(key);
293
- }
294
- clear() {
295
- this._lruMap.clear();
296
- }
297
- forEach(callbackfn) {
298
- this._lruMap.forEach((value) => callbackfn(value, value));
299
- }
300
- entries() {
301
- return this._lruMap.entries();
302
- }
303
- };
304
- var LRUMap = class {
305
- constructor(c = {}) {
306
- this._map = /* @__PURE__ */ new Map();
307
- this.param = {
308
- maxEntries: c.maxEntries || 100,
309
- maxAge: c.maxAge || 0
310
- };
311
- }
312
- touch(key) {
313
- if (!this._map.has(key)) {
314
- throw new Error(`key not found in cache: ${key}`);
315
- }
316
- const value = this._map.get(key);
317
- this._map.delete(key);
318
- this._map.set(key, value);
319
- return value;
320
- }
321
- setParam(param = {}) {
322
- if (typeof param.maxEntries === "number") {
323
- this.param.maxEntries = param.maxEntries;
324
- if (param.maxEntries > 0 && this._map.size > param.maxEntries) {
325
- const toDelete = [];
326
- let cacheSize = this._map.size;
327
- for (const key of this._map.keys()) {
328
- if (cacheSize > param.maxEntries) {
329
- toDelete.push(key);
330
- cacheSize--;
331
- } else {
332
- break;
333
- }
334
- }
335
- for (const key of toDelete) {
336
- this._map.delete(key);
337
- }
338
- }
339
- }
340
- }
341
- has(key) {
342
- return this._map.has(key);
343
- }
344
- get size() {
345
- return this._map.size;
346
- }
347
- async getSet(key, createFN) {
348
- const val = this.get(key);
349
- if (val) {
350
- return val;
351
- } else {
352
- const val2 = await createFN(key);
353
- this.set(key, val2);
354
- return val2;
355
- }
356
- }
357
- get(key) {
358
- if (this._map.has(key)) {
359
- return this.touch(key);
360
- }
361
- return this._map.get(key);
362
- }
363
- set(key, value) {
364
- this._map.delete(key);
365
- if (this.param.maxEntries > 0 && this._map.size >= this.param.maxEntries) {
366
- this._map.delete(this._map.keys().next().value);
367
- this._map.set(key, value);
368
- } else {
369
- this._map.set(key, value);
370
- }
371
- }
372
- delete(key) {
373
- this._map.delete(key);
374
- }
375
- clear() {
376
- this._map.clear();
377
- }
378
- forEach(callbackfn) {
379
- this._map.forEach(callbackfn);
380
- }
381
- entries() {
382
- return this._map.entries();
383
- }
384
- // *entries(): IterableIterator<[T, K]> {
385
- // for (const x of this._cache.entries()) {
386
- // yield x;
387
- // }
388
- // }
389
- // getLeastRecent(): K {
390
- // return Array.from(this.cache)[0];
391
- // }
392
- // getMostRecent(): K {
393
- // return Array.from(this.cache)[this.cache.size - 1];
394
- // }
395
- };
396
-
397
- // src/resolve-once.ts
398
- var ResolveSeq = class {
399
- constructor(ctx) {
400
- this._flushWaiting = [];
401
- this._seqFutures = [];
402
- this.ctx = ctx;
403
- }
404
- reset() {
405
- }
406
- flush() {
407
- var _a;
408
- if (this._seqFutures.length > 0) {
409
- const waitForFlush = new Future();
410
- (_a = this._flushWaiting) == null ? void 0 : _a.push(waitForFlush);
411
- return waitForFlush.asPromise();
412
- }
413
- return Promise.resolve();
414
- }
415
- _step(item) {
416
- var _a;
417
- if (!item) {
418
- this._flushWaiting.forEach((f) => f.resolve());
419
- (_a = this._flushWaiting) == null ? void 0 : _a.splice(0, this._flushWaiting.length);
420
- return Promise.resolve();
421
- }
422
- item.fn(this.ctx).then((value) => item.future.resolve(value)).catch((e) => item.future.reject(e)).finally(() => {
423
- this._seqFutures.shift();
424
- void this._step(this._seqFutures[0]);
425
- });
426
- return Promise.resolve();
427
- }
428
- async add(fn, id) {
429
- const future = new Future();
430
- this._seqFutures.push({ future, fn, id });
431
- if (this._seqFutures.length === 1) {
432
- void this._step(this._seqFutures[0]);
433
- }
434
- return future.asPromise();
435
- }
436
- };
437
- var ResolveOnce = class {
438
- constructor(ctx) {
439
- this._onceDone = false;
440
- this._onceFutures = [];
441
- this._onceOk = false;
442
- this._isPromise = false;
443
- this.ctx = ctx;
444
- }
445
- get ready() {
446
- return this._onceDone;
447
- }
448
- reset() {
449
- this._onceDone = false;
450
- this._onceOk = false;
451
- this._onceValue = void 0;
452
- this._onceError = void 0;
453
- if (this._inProgress) {
454
- const idx = this._onceFutures.findIndex((f) => f === this._inProgress);
455
- if (idx >= 0) {
456
- this._onceFutures.push(...this._onceFutures.splice(2).slice(1));
457
- }
458
- } else {
459
- this._onceFutures.length = 0;
460
- }
461
- }
462
- // T extends Option<infer U> ? U : T
463
- once(fn) {
464
- if (this._onceDone) {
465
- if (this._onceError) {
466
- if (this._isPromise) {
467
- return Promise.reject(this._onceError);
468
- } else {
469
- throw this._onceError;
470
- }
471
- }
472
- if (this._onceOk) {
473
- if (this._isPromise) {
474
- return Promise.resolve(this._onceValue);
475
- } else {
476
- return this._onceValue;
477
- }
478
- }
479
- throw new Error("ResolveOnce.once impossible");
480
- }
481
- const future = new Future();
482
- this._onceFutures.push(future);
483
- if (this._onceFutures.length === 1) {
484
- const okFn = (value) => {
485
- this._onceValue = value;
486
- this._onceOk = true;
487
- this._onceDone = true;
488
- if (this._isPromise) {
489
- this._onceFutures.forEach((f) => f.resolve(this._onceValue));
490
- }
491
- this._onceFutures.length = 0;
492
- };
493
- const catchFn = (e) => {
494
- this._onceError = e;
495
- this._onceOk = false;
496
- this._onceValue = void 0;
497
- this._onceDone = true;
498
- if (this._isPromise) {
499
- this._onceFutures.forEach((f) => f.reject(this._onceError));
500
- }
501
- this._onceFutures.length = 0;
502
- };
503
- this._inProgress = future;
504
- try {
505
- const ret = fn(this.ctx);
506
- if (typeof ret.then === "function") {
507
- this._isPromise = true;
508
- ret.then(okFn).catch(catchFn).finally(() => {
509
- this._inProgress = void 0;
510
- });
511
- } else {
512
- okFn(ret);
513
- }
514
- } catch (e) {
515
- catchFn(e);
516
- }
517
- if (!this._isPromise) {
518
- this._inProgress = void 0;
519
- }
520
- }
521
- if (this._isPromise) {
522
- return future.asPromise();
523
- } else {
524
- return this.once(fn);
525
- }
526
- }
527
- };
528
- var Keyed = class {
529
- constructor(factory, params) {
530
- var _a;
531
- this.factory = factory;
532
- this._map = new LRUMap((_a = params == null ? void 0 : params.lru) != null ? _a : { maxEntries: -1 });
533
- }
534
- setParam(params) {
535
- this._map.setParam(params.lru);
536
- }
537
- async asyncGet(key) {
538
- return this.get(await key());
539
- }
540
- get(key) {
541
- if (typeof key === "function") {
542
- key = key();
543
- }
544
- let keyed = this._map.get(key);
545
- if (!keyed) {
546
- keyed = this.factory(key);
547
- this._map.set(key, keyed);
548
- }
549
- return keyed;
550
- }
551
- unget(key) {
552
- const keyed = this._map.get(key);
553
- keyed == null ? void 0 : keyed.reset();
554
- this._map.delete(key);
555
- }
556
- reset() {
557
- this._map.forEach((keyed) => keyed.reset());
558
- this._map.clear();
559
- }
560
- };
561
- var KeyedResolvOnce = class extends Keyed {
562
- constructor(kp = {}) {
563
- super((key) => new ResolveOnce(key), kp);
564
- }
565
- /**
566
- *
567
- * @returns The values of the resolved keys
568
- */
569
- values() {
570
- return Array.from(this._map.entries()).filter(([_, v]) => v._onceDone).map(([k, v]) => {
571
- if (v._onceDone) {
572
- if (v._onceError) {
573
- return {
574
- key: k,
575
- value: Result.Err(v._onceError)
576
- };
577
- }
578
- return {
579
- key: k,
580
- value: Result.Ok(v._onceValue)
581
- };
582
- }
583
- throw new Error("KeyedResolvOnce.values impossible");
584
- });
585
- }
586
- };
587
- var KeyedResolvSeq = class extends Keyed {
588
- constructor(kp = {}) {
589
- super((key) => new ResolveSeq(key), kp);
590
- }
591
- };
9
+ } from "./chunk-YKGCONBX.js";
592
10
 
593
11
  // src/runtime.ts
594
12
  function isSet(value, ref = globalThis) {
@@ -627,6 +45,52 @@ function runtimeFn() {
627
45
  };
628
46
  }
629
47
 
48
+ // src/sys-abstraction.ts
49
+ var TimeMode = {
50
+ REAL: "real",
51
+ CONST: "const",
52
+ STEP: "step"
53
+ };
54
+ var RandomMode = {
55
+ CONST: "const",
56
+ STEP: "step",
57
+ RANDOM: "random"
58
+ };
59
+ var IDMode = {
60
+ UUID: "uuid",
61
+ CONST: "const",
62
+ STEP: "step"
63
+ };
64
+ function String2TimeMode(s) {
65
+ switch (s == null ? void 0 : s.toLowerCase()) {
66
+ case "real":
67
+ return TimeMode.REAL;
68
+ case "const":
69
+ return TimeMode.CONST;
70
+ case "step":
71
+ return TimeMode.STEP;
72
+ default:
73
+ return TimeMode.REAL;
74
+ }
75
+ }
76
+
77
+ // src/time.ts
78
+ var Time = class {
79
+ TimeSince(start) {
80
+ const now = this.Now();
81
+ return now.getTime() - start.getTime();
82
+ }
83
+ };
84
+ var TimeUnits = {
85
+ Microsecond: 1,
86
+ Second: 1e3 * 1,
87
+ //Microsecond,
88
+ Minute: 60 * 1e3 * 1,
89
+ //Second,
90
+ Hour: 60 * 60 * 1e3 * 1
91
+ // Minute,
92
+ };
93
+
630
94
  // src/cf/cf-env-actions.ts
631
95
  var once = new ResolveOnce();
632
96
  var CFEnvActions = class _CFEnvActions {
@@ -940,33 +404,389 @@ var EnvImpl = class {
940
404
  }
941
405
  };
942
406
 
407
+ // src/cf/cf-basic-sys-abstraction.ts
408
+ var CFRuntimeService = class {
409
+ constructor(ende) {
410
+ this._txtEnDe = ende;
411
+ }
412
+ Env() {
413
+ return envFactory();
414
+ }
415
+ Args() {
416
+ throw new Error("Args-Method not implemented.");
417
+ }
418
+ Stdout() {
419
+ return CFWriteableStream((chunk) => {
420
+ const decoded = this._txtEnDe.decode(chunk);
421
+ console.log(decoded.trimEnd());
422
+ return Promise.resolve();
423
+ });
424
+ }
425
+ Stderr() {
426
+ return CFWriteableStream((chunk) => {
427
+ const decoded = this._txtEnDe.decode(chunk);
428
+ console.error(decoded.trimEnd());
429
+ return Promise.resolve();
430
+ });
431
+ }
432
+ };
433
+ function consumeReadableStream(reader, writeFn) {
434
+ reader.read().then(({ done, value }) => {
435
+ if (done) {
436
+ return;
437
+ }
438
+ writeFn(value).then(() => {
439
+ consumeReadableStream(reader, writeFn);
440
+ }).catch((e) => {
441
+ console.error("consumeReadableStream:writeFn", e);
442
+ });
443
+ }).catch((e) => {
444
+ console.error("consumeReadableStream:read", e);
445
+ });
446
+ }
447
+ function CFWriteableStream(writeFn) {
448
+ const ts = new TransformStream();
449
+ consumeReadableStream(ts.readable.getReader(), writeFn);
450
+ return ts.writable;
451
+ }
452
+ var baseSysAbstraction = new ResolveOnce();
453
+ function CFBasicSysAbstraction(param) {
454
+ var _a;
455
+ const my = baseSysAbstraction.once(() => {
456
+ return new BaseBasicSysAbstraction({
457
+ TxtEnDecoder: (param == null ? void 0 : param.TxtEnDecoder) || TxtEnDecoderSingleton()
458
+ });
459
+ });
460
+ return new WrapperBasicSysAbstraction(my, {
461
+ basicRuntimeService: new CFRuntimeService((_a = param == null ? void 0 : param.TxtEnDecoder) != null ? _a : my._txtEnDe),
462
+ ...param
463
+ });
464
+ }
465
+
466
+ // src/deno/deno-basic-sys-abstraction.ts
467
+ var DenoRuntimeService = class {
468
+ constructor(ende) {
469
+ this._txtEnDe = ende;
470
+ }
471
+ Env() {
472
+ return envFactory();
473
+ }
474
+ Args() {
475
+ return globalThis.Deno.args;
476
+ }
477
+ Stdout() {
478
+ return globalThis.Deno.stdout.writable;
479
+ }
480
+ Stderr() {
481
+ return globalThis.Deno.stderr.writable;
482
+ }
483
+ };
484
+ var baseSysAbstraction2 = new ResolveOnce();
485
+ function DenoBasicSysAbstraction(param) {
486
+ var _a;
487
+ const my = baseSysAbstraction2.once(() => {
488
+ return new BaseBasicSysAbstraction({
489
+ TxtEnDecoder: (param == null ? void 0 : param.TxtEnDecoder) || TxtEnDecoderSingleton()
490
+ });
491
+ });
492
+ return new WrapperBasicSysAbstraction(my, {
493
+ basicRuntimeService: new DenoRuntimeService((_a = param == null ? void 0 : param.TxtEnDecoder) != null ? _a : my._txtEnDe),
494
+ ...param
495
+ });
496
+ }
497
+
498
+ // src/node/node-basic-sys-abstraction.ts
499
+ var NodeRuntimeService = class {
500
+ constructor(ende) {
501
+ this._txtEnDe = ende;
502
+ this._gthis = globalThis;
503
+ }
504
+ Env() {
505
+ return envFactory();
506
+ }
507
+ Args() {
508
+ return this._gthis.process.argv;
509
+ }
510
+ Stdout() {
511
+ return new WritableStream({
512
+ write: (chunk) => {
513
+ this._gthis.process.stdout.write(chunk);
514
+ }
515
+ });
516
+ }
517
+ Stderr() {
518
+ return new WritableStream({
519
+ write: (chunk) => {
520
+ this._gthis.process.stderr.write(chunk);
521
+ }
522
+ });
523
+ }
524
+ };
525
+ var baseSysAbstraction3 = new ResolveOnce();
526
+ function NodeBasicSysAbstraction(param) {
527
+ var _a;
528
+ const my = baseSysAbstraction3.once(() => {
529
+ return new BaseBasicSysAbstraction({
530
+ TxtEnDecoder: (param == null ? void 0 : param.TxtEnDecoder) || TxtEnDecoderSingleton()
531
+ });
532
+ });
533
+ return new WrapperBasicSysAbstraction(my, {
534
+ basicRuntimeService: new NodeRuntimeService((_a = param == null ? void 0 : param.TxtEnDecoder) != null ? _a : my._txtEnDe),
535
+ ...param
536
+ });
537
+ }
538
+
539
+ // src/base-sys-abstraction.ts
540
+ var SysTime = class extends Time {
541
+ Now() {
542
+ return /* @__PURE__ */ new Date();
543
+ }
544
+ Sleep(duration) {
545
+ return new Promise((resolve) => {
546
+ setTimeout(() => {
547
+ resolve();
548
+ }, duration);
549
+ });
550
+ }
551
+ };
552
+ var ConstTime = class extends Time {
553
+ Now() {
554
+ return new Date(2021, 1, 1, 0, 0, 0, 0);
555
+ }
556
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
557
+ Sleep(duration) {
558
+ return Promise.resolve();
559
+ }
560
+ };
561
+ var StepTime = class extends Time {
562
+ constructor() {
563
+ super();
564
+ this._step = new ConstTime().Now();
565
+ this._start = this._step;
566
+ }
567
+ Now(steps = 1) {
568
+ for (let i = 0; steps > 0 && i < steps; i++) {
569
+ this._step = new Date(this._step.getTime() + 1e3);
570
+ }
571
+ if (steps < 1) {
572
+ this._step = new Date(this._start.getTime() + steps * -1e3);
573
+ }
574
+ return this._step;
575
+ }
576
+ Sleep(duration) {
577
+ this._step = new Date(this._step.getTime() + duration);
578
+ return Promise.resolve();
579
+ }
580
+ };
581
+ function TimeFactory(timeMode) {
582
+ switch (timeMode) {
583
+ case TimeMode.REAL:
584
+ return new SysTime();
585
+ case TimeMode.CONST:
586
+ return new ConstTime();
587
+ case TimeMode.STEP:
588
+ return new StepTime();
589
+ }
590
+ return new SysTime();
591
+ }
592
+ var RandomService = class {
593
+ constructor(mode) {
594
+ this._step = 0;
595
+ this._mode = mode;
596
+ }
597
+ Random0ToValue(value) {
598
+ switch (this._mode) {
599
+ case RandomMode.CONST:
600
+ return 0.5 * value;
601
+ case RandomMode.STEP:
602
+ this._step += 1e-4;
603
+ return this._step * value;
604
+ case RandomMode.RANDOM:
605
+ return Math.random() * value;
606
+ default:
607
+ throw new Error("Unknown RandomMode");
608
+ }
609
+ }
610
+ };
611
+ var IdService = class {
612
+ constructor(mode) {
613
+ this._step = 0;
614
+ if (!mode) {
615
+ mode = IDMode.UUID;
616
+ }
617
+ this._mode = mode;
618
+ }
619
+ NextId() {
620
+ switch (this._mode) {
621
+ case IDMode.UUID:
622
+ return crypto.randomUUID();
623
+ case IDMode.CONST:
624
+ return "VeryUniqueID";
625
+ case IDMode.STEP:
626
+ return `STEPId-${this._step++}`;
627
+ default:
628
+ throw new Error("Unknown IDMode");
629
+ }
630
+ }
631
+ };
632
+ var BaseBasicSysAbstraction = class {
633
+ constructor(params) {
634
+ this._time = new SysTime();
635
+ // system independent services
636
+ this._idService = new IdService();
637
+ this._randomService = new RandomService(RandomMode.RANDOM);
638
+ this._txtEnDe = params.TxtEnDecoder;
639
+ }
640
+ };
641
+ var BaseSysAbstraction = class extends BaseBasicSysAbstraction {
642
+ constructor(params) {
643
+ super(params);
644
+ this._fileSystem = params.FileSystem;
645
+ this._systemService = params.SystemService;
646
+ }
647
+ };
648
+ function BasicSysAbstractionFactory(params) {
649
+ const fn = runtimeFn();
650
+ switch (true) {
651
+ case fn.isBrowser:
652
+ return WebBasicSysAbstraction(params);
653
+ case fn.isDeno:
654
+ return DenoBasicSysAbstraction(params);
655
+ case fn.isCFWorker:
656
+ return CFBasicSysAbstraction(params);
657
+ case fn.isNodeIsh:
658
+ return NodeBasicSysAbstraction(params);
659
+ default:
660
+ throw new Error("Unknown runtime");
661
+ }
662
+ }
663
+ var WrapperBasicSysAbstraction = class {
664
+ constructor(base, params) {
665
+ this._time = base._time;
666
+ this._basicRuntimeService = params.basicRuntimeService;
667
+ this._idService = base._idService;
668
+ this._randomService = base._randomService;
669
+ if (params.TimeMode) {
670
+ this._time = TimeFactory(params.TimeMode);
671
+ }
672
+ if (params.IdMode) {
673
+ this._idService = new IdService(params.IdMode);
674
+ }
675
+ if (params.RandomMode) {
676
+ this._randomService = new RandomService(params.RandomMode);
677
+ }
678
+ }
679
+ Time() {
680
+ return this._time;
681
+ }
682
+ NextId() {
683
+ return this._idService.NextId();
684
+ }
685
+ Random0ToValue(value) {
686
+ return this._randomService.Random0ToValue(value);
687
+ }
688
+ Stdout() {
689
+ return this._basicRuntimeService.Stdout();
690
+ }
691
+ Stderr() {
692
+ return this._basicRuntimeService.Stderr();
693
+ }
694
+ Env() {
695
+ return this._basicRuntimeService.Env();
696
+ }
697
+ Args() {
698
+ return this._basicRuntimeService.Args();
699
+ }
700
+ // System(): SystemService {
701
+ // return this._systemService;
702
+ // }
703
+ // FileSystem(): FileService {
704
+ // return this._fileSystem;
705
+ // }
706
+ };
707
+ var WrapperRuntimeSysAbstraction = class extends WrapperBasicSysAbstraction {
708
+ constructor(base, params) {
709
+ var _a, _b;
710
+ super(base, params);
711
+ this._systemService = (_a = params.systemService) != null ? _a : base._systemService;
712
+ this._fileSystem = (_b = params.fileSystem) != null ? _b : base._fileSystem;
713
+ }
714
+ System() {
715
+ return this._systemService;
716
+ }
717
+ FileSystem() {
718
+ return this._fileSystem;
719
+ }
720
+ };
721
+
722
+ // src/web/web-basic-sys-abstraction.ts
723
+ var WebSystemService = class {
724
+ constructor(ende) {
725
+ this._txtEnDe = ende;
726
+ }
727
+ Env() {
728
+ return envFactory();
729
+ }
730
+ Args() {
731
+ throw new Error("Args-Method not implemented.");
732
+ }
733
+ Stdout() {
734
+ return new ConsoleWriterStream();
735
+ }
736
+ Stderr() {
737
+ const decoder = this._txtEnDe;
738
+ return new WritableStream({
739
+ write(chunk) {
740
+ return new Promise((resolve) => {
741
+ const decoded = decoder.decode(chunk);
742
+ console.error(decoded.trimEnd());
743
+ resolve();
744
+ });
745
+ }
746
+ });
747
+ }
748
+ };
749
+ var baseSysAbstraction4 = new ResolveOnce();
750
+ function WebBasicSysAbstraction(param) {
751
+ var _a;
752
+ const my = baseSysAbstraction4.once(() => {
753
+ return new BaseBasicSysAbstraction({
754
+ TxtEnDecoder: (param == null ? void 0 : param.TxtEnDecoder) || TxtEnDecoderSingleton()
755
+ });
756
+ });
757
+ return new WrapperBasicSysAbstraction(my, {
758
+ basicRuntimeService: new WebSystemService((_a = param == null ? void 0 : param.TxtEnDecoder) != null ? _a : my._txtEnDe),
759
+ ...param
760
+ });
761
+ }
762
+
943
763
  export {
764
+ runtimeFn,
944
765
  TimeMode,
945
766
  RandomMode,
946
767
  IDMode,
947
768
  String2TimeMode,
948
769
  Time,
949
770
  TimeUnits,
771
+ CFEnvActions,
772
+ registerEnvAction,
773
+ envFactory,
774
+ EnvImpl,
775
+ WebBasicSysAbstraction,
776
+ CFRuntimeService,
777
+ CFBasicSysAbstraction,
778
+ DenoBasicSysAbstraction,
779
+ NodeBasicSysAbstraction,
950
780
  SysTime,
951
781
  ConstTime,
952
782
  StepTime,
953
783
  TimeFactory,
954
784
  RandomService,
955
785
  IdService,
786
+ BaseBasicSysAbstraction,
956
787
  BaseSysAbstraction,
957
- WrapperSysAbstraction,
958
- Future,
959
- LRUSet,
960
- LRUMap,
961
- ResolveSeq,
962
- ResolveOnce,
963
- Keyed,
964
- KeyedResolvOnce,
965
- KeyedResolvSeq,
966
- runtimeFn,
967
- CFEnvActions,
968
- registerEnvAction,
969
- envFactory,
970
- EnvImpl
788
+ BasicSysAbstractionFactory,
789
+ WrapperBasicSysAbstraction,
790
+ WrapperRuntimeSysAbstraction
971
791
  };
972
- //# sourceMappingURL=chunk-23MCJYE6.js.map
792
+ //# sourceMappingURL=chunk-X3IV2RYT.js.map