@adviser/cement 0.2.16 → 0.2.18

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 (39) hide show
  1. package/{sys_abstraction-CmSCeK7b.d.cts → base-sys-abstraction-BzVP_lX0.d.cts} +77 -1
  2. package/{sys_abstraction-CmSCeK7b.d.ts → base-sys-abstraction-BzVP_lX0.d.ts} +77 -1
  3. package/chunk-AO7BGISE.js +353 -0
  4. package/chunk-AO7BGISE.js.map +1 -0
  5. package/{chunk-J2IM7FHM.js → chunk-I4NUGWZ6.js} +6 -1
  6. package/{chunk-XJF7FQUN.js → chunk-LJRKN3XI.js} +3 -3
  7. package/{chunk-XJF7FQUN.js.map → chunk-LJRKN3XI.js.map} +1 -1
  8. package/{chunk-O4F5AURC.js → chunk-P4FB5FHU.js} +185 -179
  9. package/chunk-P4FB5FHU.js.map +1 -0
  10. package/index-_GuS2IT4.d.cts +93 -0
  11. package/index-_GuS2IT4.d.ts +93 -0
  12. package/index.cjs +416 -52
  13. package/index.cjs.map +1 -1
  14. package/index.d.cts +27 -21
  15. package/index.d.ts +27 -21
  16. package/index.js +86 -49
  17. package/index.js.map +1 -1
  18. package/node/index.cjs +5 -5
  19. package/node/index.cjs.map +1 -1
  20. package/node/index.d.cts +1 -2
  21. package/node/index.d.ts +1 -2
  22. package/node/index.js +5 -5
  23. package/node/index.js.map +1 -1
  24. package/package.json +4 -4
  25. package/utils/index.cjs +98 -2
  26. package/utils/index.cjs.map +1 -1
  27. package/utils/index.d.cts +2 -36
  28. package/utils/index.d.ts +2 -36
  29. package/utils/index.js +21 -221
  30. package/utils/index.js.map +1 -1
  31. package/web/index.cjs +3 -3
  32. package/web/index.cjs.map +1 -1
  33. package/web/index.d.cts +1 -2
  34. package/web/index.d.ts +1 -2
  35. package/web/index.js +3 -3
  36. package/base_sys_abstraction-CJqRmTui.d.ts +0 -21
  37. package/base_sys_abstraction-nsNTl07w.d.cts +0 -21
  38. package/chunk-O4F5AURC.js.map +0 -1
  39. /package/{chunk-J2IM7FHM.js.map → chunk-I4NUGWZ6.js.map} +0 -0
package/index.cjs CHANGED
@@ -74,11 +74,14 @@ var __yieldStar = (value) => {
74
74
  // src/index.ts
75
75
  var src_exports = {};
76
76
  __export(src_exports, {
77
+ BaseSysAbstraction: () => BaseSysAbstraction,
77
78
  BrowserEnvActions: () => BrowserEnvActions,
78
79
  BuildURI: () => BuildURI,
80
+ ConstTime: () => ConstTime,
79
81
  EnvImpl: () => EnvImpl,
80
82
  Future: () => Future,
81
83
  IDMode: () => IDMode,
84
+ IdService: () => IdService,
82
85
  IsLogger: () => IsLogger,
83
86
  Keyed: () => Keyed,
84
87
  KeyedResolvOnce: () => KeyedResolvOnce,
@@ -87,30 +90,37 @@ __export(src_exports, {
87
90
  LevelHandlerImpl: () => LevelHandlerImpl,
88
91
  LogCollector: () => LogCollector,
89
92
  LogValue: () => LogValue,
90
- LogWriter: () => LogWriter,
93
+ LogWriteStream: () => LogWriteStream,
94
+ LogWriterStream: () => LogWriterStream,
91
95
  LoggerImpl: () => LoggerImpl,
92
96
  MockLogger: () => MockLogger,
93
97
  None: () => None,
94
98
  Option: () => Option,
95
99
  RandomMode: () => RandomMode,
100
+ RandomService: () => RandomService,
96
101
  ResolveOnce: () => ResolveOnce,
97
102
  ResolveSeq: () => ResolveSeq,
98
103
  Result: () => Result,
99
104
  ResultError: () => ResultError,
100
105
  ResultOK: () => ResultOK,
101
106
  Some: () => Some,
107
+ StepTime: () => StepTime,
102
108
  String2TimeMode: () => String2TimeMode,
109
+ SysTime: () => SysTime,
103
110
  Time: () => Time,
111
+ TimeFactory: () => TimeFactory,
104
112
  TimeMode: () => TimeMode,
105
113
  TimeUnits: () => TimeUnits,
106
114
  URI: () => URI,
115
+ WrapperSysAbstraction: () => WrapperSysAbstraction,
107
116
  asyncLogValue: () => asyncLogValue,
108
117
  envFactory: () => envFactory,
109
118
  isURL: () => isURL,
110
119
  logValue: () => logValue,
111
120
  removeSelfRef: () => removeSelfRef,
112
121
  runtimeFn: () => runtimeFn,
113
- toCryptoRuntime: () => toCryptoRuntime
122
+ toCryptoRuntime: () => toCryptoRuntime,
123
+ utils: () => utils_exports
114
124
  });
115
125
  module.exports = __toCommonJS(src_exports);
116
126
 
@@ -195,7 +205,7 @@ function IsLogger(obj) {
195
205
  ].map((fn) => typeof obj[fn] === "function").reduce((a, b) => a && b, true);
196
206
  }
197
207
 
198
- // src/sys_abstraction.ts
208
+ // src/sys-abstraction.ts
199
209
  var TimeMode = /* @__PURE__ */ ((TimeMode2) => {
200
210
  TimeMode2["REAL"] = "real";
201
211
  TimeMode2["CONST"] = "const";
@@ -242,7 +252,7 @@ var TimeUnits = /* @__PURE__ */ ((TimeUnits2) => {
242
252
  return TimeUnits2;
243
253
  })(TimeUnits || {});
244
254
 
245
- // src/base_sys_abstraction.ts
255
+ // src/base-sys-abstraction.ts
246
256
  var SysTime = class extends Time {
247
257
  Now() {
248
258
  return /* @__PURE__ */ new Date();
@@ -586,7 +596,7 @@ var KeyedResolvSeq = class extends Keyed {
586
596
  }
587
597
  };
588
598
 
589
- // src/sys_env.ts
599
+ // src/sys-env.ts
590
600
  var _node;
591
601
  var NodeEnvActions = class {
592
602
  // eslint-disable-next-line @typescript-eslint/no-useless-constructor, @typescript-eslint/no-unused-vars
@@ -756,7 +766,7 @@ var EnvImpl = class {
756
766
  }
757
767
  };
758
768
 
759
- // src/web/web_sys_abstraction.ts
769
+ // src/web/web-sys-abstraction.ts
760
770
  var WebFileService = class {
761
771
  get baseDir() {
762
772
  throw new Error("basedir-Method not implemented.");
@@ -1024,7 +1034,94 @@ var URI = class _URI {
1024
1034
  }
1025
1035
  };
1026
1036
 
1027
- // src/logger_impl.ts
1037
+ // src/runtime.ts
1038
+ function isSet(value, ref = globalThis) {
1039
+ const [head, ...tail] = value.split(".");
1040
+ if (["object", "function"].includes(typeof ref) && ref && ["object", "function"].includes(typeof ref[head]) && ref[head]) {
1041
+ if (tail.length <= 1) {
1042
+ return true;
1043
+ }
1044
+ return isSet(tail.join("."), ref[head]);
1045
+ }
1046
+ return false;
1047
+ }
1048
+ function runtimeFn() {
1049
+ const isReactNative = isSet("navigator.product") && globalThis.navigator.product === "ReactNative";
1050
+ const isNodeIsh = isSet("process.versions.node") && !isReactNative;
1051
+ const isDeno = isSet("Deno") && !isReactNative;
1052
+ return {
1053
+ isNodeIsh,
1054
+ isBrowser: !(isNodeIsh || isDeno) && !isReactNative,
1055
+ isDeno,
1056
+ isReactNative
1057
+ };
1058
+ }
1059
+
1060
+ // src/utils/console-write-stream.ts
1061
+ var ConsoleWriterStreamDefaultWriter = class {
1062
+ constructor(stream) {
1063
+ this.stream = stream;
1064
+ this.desiredSize = null;
1065
+ this.decoder = new TextDecoder();
1066
+ this._stream = stream;
1067
+ this.ready = Promise.resolve(void 0);
1068
+ this.closed = Promise.resolve(void 0);
1069
+ }
1070
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
1071
+ abort(reason) {
1072
+ throw new Error("Method not implemented.");
1073
+ }
1074
+ async close() {
1075
+ }
1076
+ releaseLock() {
1077
+ this._stream.locked = false;
1078
+ this.ready = Promise.resolve(void 0);
1079
+ this.closed = Promise.resolve(void 0);
1080
+ }
1081
+ async write(chunk) {
1082
+ const str = this.decoder.decode(chunk).trimEnd();
1083
+ let output = "log";
1084
+ try {
1085
+ const decode = JSON.parse(str);
1086
+ output = decode.level;
1087
+ } catch (e) {
1088
+ }
1089
+ switch (output) {
1090
+ case "error":
1091
+ console.error(str);
1092
+ break;
1093
+ case "warn":
1094
+ console.warn(str);
1095
+ break;
1096
+ default:
1097
+ console.log(str);
1098
+ }
1099
+ }
1100
+ };
1101
+ var ConsoleWriterStream = class {
1102
+ constructor() {
1103
+ this.locked = false;
1104
+ }
1105
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars
1106
+ abort(reason) {
1107
+ throw new Error("Method not implemented.");
1108
+ }
1109
+ async close() {
1110
+ return;
1111
+ }
1112
+ getWriter() {
1113
+ if (this.locked) {
1114
+ throw new Error("Stream is locked");
1115
+ }
1116
+ this.locked = true;
1117
+ if (!this._writer) {
1118
+ this._writer = new ConsoleWriterStreamDefaultWriter(this);
1119
+ }
1120
+ return this._writer;
1121
+ }
1122
+ };
1123
+
1124
+ // src/logger-impl.ts
1028
1125
  var encoder = new TextEncoder();
1029
1126
  var LevelHandlerImpl = class {
1030
1127
  constructor() {
@@ -1102,7 +1199,7 @@ var LevelHandlerImpl = class {
1102
1199
  }
1103
1200
  };
1104
1201
  var levelSingleton = new LevelHandlerImpl();
1105
- var LogWriter = class {
1202
+ var LogWriterStream = class {
1106
1203
  constructor(out) {
1107
1204
  this._toFlush = [];
1108
1205
  this._flushIsRunning = false;
@@ -1184,9 +1281,20 @@ var LoggerImpl = class _LoggerImpl {
1184
1281
  this._logWriter = params.logWriter;
1185
1282
  } else {
1186
1283
  if (!params.out) {
1187
- this._logWriter = new LogWriter(this._sys.Stdout());
1284
+ const rt = runtimeFn();
1285
+ let stream;
1286
+ if (rt.isBrowser) {
1287
+ stream = new ConsoleWriterStream();
1288
+ } else {
1289
+ if (rt.isNodeIsh || rt.isReactNative) {
1290
+ stream = this._sys.Stdout();
1291
+ } else {
1292
+ throw new Error("No output defined for runtime");
1293
+ }
1294
+ }
1295
+ this._logWriter = new LogWriterStream(stream);
1188
1296
  } else {
1189
- this._logWriter = new LogWriter(params.out);
1297
+ this._logWriter = new LogWriterStream(params.out);
1190
1298
  }
1191
1299
  }
1192
1300
  if (!params.withAttributes) {
@@ -1482,29 +1590,52 @@ var WithLoggerBuilder = class {
1482
1590
  }
1483
1591
  };
1484
1592
 
1485
- // src/test/log_collector.ts
1486
- var LogWriter2 = class {
1487
- constructor() {
1488
- this._bufferArr = [];
1593
+ // src/utils/fanout-write-stream.ts
1594
+ var FanoutWriteStream = class {
1595
+ constructor(writers) {
1489
1596
  this.desiredSize = null;
1490
- this.ready = Promise.resolve(void 0);
1491
- this._resolveClosed = () => {
1492
- };
1493
- this.closed = new Promise((resolve) => {
1494
- this._resolveClosed = resolve;
1597
+ this._writers = writers;
1598
+ this.ready = Promise.all(this._writers.map((w) => w.ready)).then(() => void 0);
1599
+ this.closed = Promise.all(this._writers.map((w) => w.closed)).then(() => void 0);
1600
+ }
1601
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1602
+ abort(reason) {
1603
+ return Promise.all(this._writers.map((w) => w.abort(reason))).then(() => {
1495
1604
  });
1496
1605
  }
1606
+ close() {
1607
+ return Promise.all(this._writers.map((w) => w.close())).then(() => {
1608
+ });
1609
+ }
1610
+ releaseLock() {
1611
+ this._writers.map((w) => w.releaseLock());
1612
+ }
1613
+ write(chunk) {
1614
+ return Promise.all(this._writers.map((w) => w.write(chunk))).then(() => {
1615
+ });
1616
+ }
1617
+ };
1618
+
1619
+ // src/test/log-write-stream.ts
1620
+ var LogWriteStream = class {
1621
+ constructor(bufferArr) {
1622
+ this._resolveClosed = new Future();
1623
+ this.closed = this._resolveClosed.asPromise();
1624
+ this.desiredSize = null;
1625
+ this.ready = Promise.resolve(void 0);
1626
+ this._bufferArr = bufferArr;
1627
+ }
1497
1628
  // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
1498
1629
  abort(reason) {
1499
1630
  throw new Error("Method not implemented.");
1500
1631
  }
1501
- close() {
1502
- this._resolveClosed();
1632
+ async close() {
1633
+ await this.closed;
1503
1634
  return Promise.resolve(void 0);
1504
1635
  }
1505
1636
  releaseLock() {
1506
1637
  }
1507
- write(chunk) {
1638
+ async write(chunk) {
1508
1639
  if (chunk) {
1509
1640
  this._bufferArr.push(chunk);
1510
1641
  }
@@ -1512,8 +1643,10 @@ var LogWriter2 = class {
1512
1643
  }
1513
1644
  };
1514
1645
  var LogCollector = class {
1515
- constructor() {
1646
+ constructor(pass) {
1516
1647
  this.locked = false;
1648
+ this._bufferArr = [];
1649
+ this._pass = pass;
1517
1650
  }
1518
1651
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
1519
1652
  abort(reason) {
@@ -1529,7 +1662,11 @@ var LogCollector = class {
1529
1662
  }
1530
1663
  getWriter() {
1531
1664
  if (!this._writer) {
1532
- this._writer = new LogWriter2();
1665
+ const dests = [new LogWriteStream(this._bufferArr)];
1666
+ if (this._pass) {
1667
+ dests.push(this._pass);
1668
+ }
1669
+ this._writer = new FanoutWriteStream(dests);
1533
1670
  }
1534
1671
  return this._writer;
1535
1672
  }
@@ -1544,7 +1681,7 @@ var LogCollector = class {
1544
1681
  for (const x of res) {
1545
1682
  yield* __yieldStar(x);
1546
1683
  }
1547
- }(this._writer._bufferArr)
1684
+ }(this._bufferArr)
1548
1685
  )
1549
1686
  );
1550
1687
  const splitStr = jsonNlStr.split("\n");
@@ -1554,9 +1691,9 @@ var LogCollector = class {
1554
1691
  }
1555
1692
  };
1556
1693
 
1557
- // src/test/mock_logger.ts
1694
+ // src/test/mock-logger.ts
1558
1695
  function MockLogger(params) {
1559
- const lc = new LogCollector();
1696
+ const lc = new LogCollector(params == null ? void 0 : params.pass);
1560
1697
  let modNames = ["MockLogger"];
1561
1698
  if (typeof (params == null ? void 0 : params.moduleName) === "string") {
1562
1699
  modNames = [params == null ? void 0 : params.moduleName];
@@ -1699,29 +1836,6 @@ var None = class extends Option {
1699
1836
  }
1700
1837
  };
1701
1838
 
1702
- // src/runtime.ts
1703
- function isSet(value, ref = globalThis) {
1704
- const [head, ...tail] = value.split(".");
1705
- if (["object", "function"].includes(typeof ref) && ref && ["object", "function"].includes(typeof ref[head]) && ref[head]) {
1706
- if (tail.length <= 1) {
1707
- return true;
1708
- }
1709
- return isSet(tail.join("."), ref[head]);
1710
- }
1711
- return false;
1712
- }
1713
- function runtimeFn() {
1714
- const isReactNative = isSet("navigator.product") && globalThis.navigator.product === "ReactNative";
1715
- const isNodeIsh = isSet("process.versions.node") && !isReactNative;
1716
- const isDeno = isSet("Deno") && !isReactNative;
1717
- return {
1718
- isNodeIsh,
1719
- isBrowser: !(isNodeIsh || isDeno) && !isReactNative,
1720
- isDeno,
1721
- isReactNative
1722
- };
1723
- }
1724
-
1725
1839
  // src/crypto.ts
1726
1840
  function randomBytes(size) {
1727
1841
  const bytes = new Uint8Array(size);
@@ -1743,13 +1857,256 @@ function toCryptoRuntime(cryptoOpts = {}) {
1743
1857
  };
1744
1858
  return runtime;
1745
1859
  }
1860
+
1861
+ // src/utils/index.ts
1862
+ var utils_exports = {};
1863
+ __export(utils_exports, {
1864
+ ConsoleWriterStream: () => ConsoleWriterStream,
1865
+ ConsoleWriterStreamDefaultWriter: () => ConsoleWriterStreamDefaultWriter,
1866
+ FanoutWriteStream: () => FanoutWriteStream,
1867
+ array2stream: () => array2stream,
1868
+ devnull: () => devnull,
1869
+ rebuffer: () => rebuffer,
1870
+ rebufferArray: () => rebufferArray,
1871
+ receiveFromStream: () => receiveFromStream,
1872
+ sendToStream: () => sendToStream,
1873
+ stream2array: () => stream2array,
1874
+ stream2string: () => stream2string,
1875
+ stream2uint8array: () => stream2uint8array,
1876
+ streamMap: () => streamMap,
1877
+ string2stream: () => string2stream,
1878
+ uint8array2stream: () => uint8array2stream
1879
+ });
1880
+
1881
+ // src/utils/stream-map.ts
1882
+ function streamMap(s, sm) {
1883
+ const state = { reader: s.getReader(), streamMap: sm, idx: 0 };
1884
+ return new ReadableStream({
1885
+ async pull(controller) {
1886
+ const { done, value } = await state.reader.read();
1887
+ if (done) {
1888
+ if (state.streamMap.Close) {
1889
+ state.streamMap.Close();
1890
+ }
1891
+ controller.close();
1892
+ return;
1893
+ }
1894
+ const promiseOrU = state.streamMap.Map(value, state.idx++);
1895
+ let mapped;
1896
+ if (promiseOrU instanceof Promise || typeof promiseOrU.then === "function") {
1897
+ mapped = await promiseOrU;
1898
+ } else {
1899
+ mapped = promiseOrU;
1900
+ }
1901
+ controller.enqueue(mapped);
1902
+ }
1903
+ });
1904
+ }
1905
+ async function devnull(a) {
1906
+ const reader = a.getReader();
1907
+ let cnt = 0;
1908
+ while (true) {
1909
+ const { done } = await reader.read();
1910
+ if (done) {
1911
+ break;
1912
+ }
1913
+ cnt++;
1914
+ }
1915
+ return cnt;
1916
+ }
1917
+ function array2stream(a) {
1918
+ let i = 0;
1919
+ return new ReadableStream({
1920
+ pull(controller) {
1921
+ if (i >= a.length) {
1922
+ controller.close();
1923
+ return;
1924
+ }
1925
+ controller.enqueue(a[i]);
1926
+ i++;
1927
+ }
1928
+ });
1929
+ }
1930
+ async function stream2array(a) {
1931
+ const ret = [];
1932
+ const reader = a.getReader();
1933
+ while (true) {
1934
+ const { done, value } = await reader.read();
1935
+ if (done) {
1936
+ break;
1937
+ }
1938
+ ret.push(value);
1939
+ }
1940
+ return ret;
1941
+ }
1942
+
1943
+ // src/utils/rebuffer.ts
1944
+ async function rebufferArray(a, chunkSize) {
1945
+ return stream2array(rebuffer(array2stream(a), chunkSize));
1946
+ }
1947
+ function reChunk(cs, chunkSize) {
1948
+ const len = cs.reduce((acc, v) => acc + v.length, 0);
1949
+ const last = cs[cs.length - 1];
1950
+ const lastOfs = len - last.length;
1951
+ const rest = last.subarray(chunkSize - lastOfs);
1952
+ cs[cs.length - 1] = last.subarray(0, chunkSize - lastOfs);
1953
+ const chunk = new Uint8Array(chunkSize);
1954
+ let ofs = 0;
1955
+ for (const c of cs) {
1956
+ chunk.set(c, ofs);
1957
+ ofs += c.length;
1958
+ }
1959
+ return { rest, chunk };
1960
+ }
1961
+ function pump(ps, controller, next) {
1962
+ ps.reader.read().then(({ done, value }) => {
1963
+ if (done) {
1964
+ if (ps.tmpLen > 0) {
1965
+ controller.enqueue(reChunk(ps.tmp, ps.tmpLen).chunk);
1966
+ }
1967
+ controller.close();
1968
+ next();
1969
+ return;
1970
+ }
1971
+ if (ps.tmpLen + value.length > ps.chunkSize) {
1972
+ ps.tmp.push(value);
1973
+ const res = reChunk(ps.tmp, ps.chunkSize);
1974
+ controller.enqueue(res.chunk);
1975
+ ps.tmp = [res.rest];
1976
+ ps.tmpLen = res.rest.length;
1977
+ next();
1978
+ return;
1979
+ } else if (value.length) {
1980
+ ps.tmp.push(value);
1981
+ ps.tmpLen += value.length;
1982
+ }
1983
+ pump(ps, controller, next);
1984
+ });
1985
+ }
1986
+ function rebuffer(a, chunkSize) {
1987
+ const state = {
1988
+ reader: a.getReader(),
1989
+ tmp: [],
1990
+ tmpLen: 0,
1991
+ chunkSize
1992
+ };
1993
+ return new ReadableStream({
1994
+ async pull(controller) {
1995
+ return new Promise((resolve) => {
1996
+ pump(state, controller, resolve);
1997
+ });
1998
+ }
1999
+ });
2000
+ }
2001
+
2002
+ // src/utils/stream2string.ts
2003
+ async function stream2string(stream, maxSize) {
2004
+ if (!stream) {
2005
+ return Promise.resolve("");
2006
+ }
2007
+ const reader = stream.getReader();
2008
+ let res = "";
2009
+ const decoder2 = new TextDecoder();
2010
+ let rSize = 0;
2011
+ while (typeof maxSize === "undefined" || rSize < maxSize) {
2012
+ try {
2013
+ const read = await reader.read();
2014
+ if (read.done) {
2015
+ break;
2016
+ }
2017
+ if (maxSize && rSize + read.value.length > maxSize) {
2018
+ read.value = read.value.slice(0, maxSize - rSize);
2019
+ }
2020
+ const block = decoder2.decode(read.value, { stream: true });
2021
+ rSize += read.value.length;
2022
+ res += block;
2023
+ } catch (err) {
2024
+ return Promise.reject(err);
2025
+ }
2026
+ }
2027
+ return Promise.resolve(res);
2028
+ }
2029
+ async function stream2uint8array(stream) {
2030
+ if (!stream) {
2031
+ return Promise.resolve(new Uint8Array());
2032
+ }
2033
+ const reader = stream.getReader();
2034
+ let res = new Uint8Array();
2035
+ while (1) {
2036
+ try {
2037
+ const { done, value } = await reader.read();
2038
+ if (done) {
2039
+ break;
2040
+ }
2041
+ res = new Uint8Array([...res, ...value]);
2042
+ } catch (err) {
2043
+ return Promise.reject(err);
2044
+ }
2045
+ }
2046
+ return Promise.resolve(res);
2047
+ }
2048
+
2049
+ // src/utils/stream-test-helper.ts
2050
+ async function receiveFromStream(reb, state) {
2051
+ return new Promise((resolve) => {
2052
+ let reBufferCalls = 0;
2053
+ const reader = reb.getReader();
2054
+ function pump2() {
2055
+ reader.read().then(({ done, value }) => {
2056
+ state.CollectorFn({ done, value, fillCalls: state.fillCalls, reBufferCalls });
2057
+ reBufferCalls++;
2058
+ if (done) {
2059
+ resolve();
2060
+ return;
2061
+ }
2062
+ pump2();
2063
+ });
2064
+ }
2065
+ pump2();
2066
+ });
2067
+ }
2068
+ async function sendToStream(reb, state) {
2069
+ return new Promise((resolve) => {
2070
+ const writer = reb.getWriter();
2071
+ function pump2(i) {
2072
+ if (i >= state.sendChunks) {
2073
+ writer.close();
2074
+ resolve();
2075
+ return;
2076
+ }
2077
+ writer.ready.then(() => {
2078
+ state.fillCalls++;
2079
+ writer.write(new Uint8Array(Array(state.sendChunkSize).fill(i)));
2080
+ pump2(i + 1);
2081
+ });
2082
+ }
2083
+ pump2(0);
2084
+ });
2085
+ }
2086
+
2087
+ // src/utils/string2stream.ts
2088
+ function string2stream(str) {
2089
+ const encoder2 = new TextEncoder();
2090
+ return uint8array2stream(encoder2.encode(str));
2091
+ }
2092
+ function uint8array2stream(str) {
2093
+ return new ReadableStream({
2094
+ start(controller) {
2095
+ controller.enqueue(str);
2096
+ controller.close();
2097
+ }
2098
+ });
2099
+ }
1746
2100
  // Annotate the CommonJS export names for ESM import in node:
1747
2101
  0 && (module.exports = {
2102
+ BaseSysAbstraction,
1748
2103
  BrowserEnvActions,
1749
2104
  BuildURI,
2105
+ ConstTime,
1750
2106
  EnvImpl,
1751
2107
  Future,
1752
2108
  IDMode,
2109
+ IdService,
1753
2110
  IsLogger,
1754
2111
  Keyed,
1755
2112
  KeyedResolvOnce,
@@ -1758,29 +2115,36 @@ function toCryptoRuntime(cryptoOpts = {}) {
1758
2115
  LevelHandlerImpl,
1759
2116
  LogCollector,
1760
2117
  LogValue,
1761
- LogWriter,
2118
+ LogWriteStream,
2119
+ LogWriterStream,
1762
2120
  LoggerImpl,
1763
2121
  MockLogger,
1764
2122
  None,
1765
2123
  Option,
1766
2124
  RandomMode,
2125
+ RandomService,
1767
2126
  ResolveOnce,
1768
2127
  ResolveSeq,
1769
2128
  Result,
1770
2129
  ResultError,
1771
2130
  ResultOK,
1772
2131
  Some,
2132
+ StepTime,
1773
2133
  String2TimeMode,
2134
+ SysTime,
1774
2135
  Time,
2136
+ TimeFactory,
1775
2137
  TimeMode,
1776
2138
  TimeUnits,
1777
2139
  URI,
2140
+ WrapperSysAbstraction,
1778
2141
  asyncLogValue,
1779
2142
  envFactory,
1780
2143
  isURL,
1781
2144
  logValue,
1782
2145
  removeSelfRef,
1783
2146
  runtimeFn,
1784
- toCryptoRuntime
2147
+ toCryptoRuntime,
2148
+ utils
1785
2149
  });
1786
2150
  //# sourceMappingURL=index.cjs.map