@adviser/cement 0.2.40 → 0.2.42

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 (83) hide show
  1. package/{chunk-USQXEZHL.js → chunk-3RHIVQAA.js} +2 -2
  2. package/{chunk-W2GV5KXV.js → chunk-N3NUTN4B.js} +3 -3
  3. package/{chunk-F5W6VELE.js → chunk-N5LQQXOU.js} +2 -2
  4. package/chunk-PPS4L4VW.js +38 -0
  5. package/{chunk-GES3MUGV.js.map → chunk-PPS4L4VW.js.map} +1 -1
  6. package/index.cjs +500 -179
  7. package/index.cjs.map +1 -1
  8. package/index.d.cts +73 -30
  9. package/index.d.ts +73 -30
  10. package/index.js +506 -141
  11. package/index.js.map +1 -1
  12. package/node/index.js +2 -2
  13. package/package.json +2 -2
  14. package/src/http_header.ts +161 -0
  15. package/src/index.ts +1 -0
  16. package/src/jsr.json +1 -1
  17. package/src/log-level-impl.ts +7 -0
  18. package/src/logger-impl.ts +70 -43
  19. package/src/logger.ts +37 -9
  20. package/src/option.ts +7 -0
  21. package/src/result.ts +7 -1
  22. package/src/uri.ts +35 -11
  23. package/src/utils/relative-path.ts +161 -0
  24. package/ts/http_header.d.ts +29 -0
  25. package/ts/http_header.d.ts.map +1 -0
  26. package/ts/http_header.js +155 -0
  27. package/ts/http_header.js.map +1 -0
  28. package/ts/http_header.test.d.ts +2 -0
  29. package/ts/http_header.test.d.ts.map +1 -0
  30. package/ts/http_header.test.js +90 -0
  31. package/ts/http_header.test.js.map +1 -0
  32. package/ts/index.d.ts +1 -0
  33. package/ts/index.d.ts.map +1 -1
  34. package/ts/index.js +1 -0
  35. package/ts/index.js.map +1 -1
  36. package/ts/log-level-impl.d.ts +3 -0
  37. package/ts/log-level-impl.d.ts.map +1 -1
  38. package/ts/log-level-impl.js +5 -0
  39. package/ts/log-level-impl.js.map +1 -1
  40. package/ts/logger-impl.d.ts +2 -1
  41. package/ts/logger-impl.d.ts.map +1 -1
  42. package/ts/logger-impl.js +66 -47
  43. package/ts/logger-impl.js.map +1 -1
  44. package/ts/logger.d.ts +10 -1
  45. package/ts/logger.d.ts.map +1 -1
  46. package/ts/logger.js +22 -8
  47. package/ts/logger.js.map +1 -1
  48. package/ts/logger.test.js +111 -58
  49. package/ts/logger.test.js.map +1 -1
  50. package/ts/option.d.ts +1 -0
  51. package/ts/option.d.ts.map +1 -1
  52. package/ts/option.js +6 -0
  53. package/ts/option.js.map +1 -1
  54. package/ts/result.d.ts +1 -1
  55. package/ts/result.d.ts.map +1 -1
  56. package/ts/result.js +6 -0
  57. package/ts/result.js.map +1 -1
  58. package/ts/result.test.js +6 -0
  59. package/ts/result.test.js.map +1 -1
  60. package/ts/tracer.js +24 -6
  61. package/ts/tracer.js.map +1 -1
  62. package/ts/uri.d.ts +3 -1
  63. package/ts/uri.d.ts.map +1 -1
  64. package/ts/uri.js +27 -10
  65. package/ts/uri.js.map +1 -1
  66. package/ts/uri.test.js +39 -10
  67. package/ts/uri.test.js.map +1 -1
  68. package/ts/utils/relative-path.d.ts +17 -0
  69. package/ts/utils/relative-path.d.ts.map +1 -0
  70. package/ts/utils/relative-path.js +148 -0
  71. package/ts/utils/relative-path.js.map +1 -0
  72. package/ts/utils/relative-path.test.d.ts +2 -0
  73. package/ts/utils/relative-path.test.d.ts.map +1 -0
  74. package/ts/utils/relative-path.test.js +187 -0
  75. package/ts/utils/relative-path.test.js.map +1 -0
  76. package/ts/utils/stripper.js +1 -1
  77. package/ts/utils/stripper.js.map +1 -1
  78. package/utils/index.js +2 -2
  79. package/web/index.js +3 -3
  80. package/chunk-GES3MUGV.js +0 -92
  81. /package/{chunk-USQXEZHL.js.map → chunk-3RHIVQAA.js.map} +0 -0
  82. /package/{chunk-W2GV5KXV.js.map → chunk-N3NUTN4B.js.map} +0 -0
  83. /package/{chunk-F5W6VELE.js.map → chunk-N5LQQXOU.js.map} +0 -0
package/index.cjs CHANGED
@@ -1,31 +1,13 @@
1
1
  "use strict";
2
2
  var __create = Object.create;
3
3
  var __defProp = Object.defineProperty;
4
- var __defProps = Object.defineProperties;
5
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
8
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
6
  var __getProtoOf = Object.getPrototypeOf;
10
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
11
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
- var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
13
8
  var __typeError = (msg) => {
14
9
  throw TypeError(msg);
15
10
  };
16
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
17
- var __spreadValues = (a, b) => {
18
- for (var prop in b || (b = {}))
19
- if (__hasOwnProp.call(b, prop))
20
- __defNormalProp(a, prop, b[prop]);
21
- if (__getOwnPropSymbols)
22
- for (var prop of __getOwnPropSymbols(b)) {
23
- if (__propIsEnum.call(b, prop))
24
- __defNormalProp(a, prop, b[prop]);
25
- }
26
- return a;
27
- };
28
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
29
11
  var __export = (target, all) => {
30
12
  for (var name in all)
31
13
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -51,38 +33,6 @@ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot
51
33
  var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
52
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);
53
35
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
54
- var __await = function(promise, isYieldStar) {
55
- this[0] = promise;
56
- this[1] = isYieldStar;
57
- };
58
- var __yieldStar = (value) => {
59
- var obj = value[__knownSymbol("asyncIterator")], isAwait = false, method, it = {};
60
- if (obj == null) {
61
- obj = value[__knownSymbol("iterator")]();
62
- method = (k) => it[k] = (x) => obj[k](x);
63
- } else {
64
- obj = obj.call(value);
65
- method = (k) => it[k] = (v) => {
66
- if (isAwait) {
67
- isAwait = false;
68
- if (k === "throw") throw v;
69
- return v;
70
- }
71
- isAwait = true;
72
- return {
73
- done: false,
74
- value: new __await(new Promise((resolve) => {
75
- var x = obj[k](v);
76
- if (!(x instanceof Object)) __typeError("Object expected");
77
- resolve(x);
78
- }), 1)
79
- };
80
- };
81
- }
82
- return it[__knownSymbol("iterator")] = () => it, method("next"), "throw" in obj ? method("throw") : it.throw = (x) => {
83
- throw x;
84
- }, "return" in obj && method("return"), it;
85
- };
86
36
 
87
37
  // src/index.ts
88
38
  var src_exports = {};
@@ -93,6 +43,8 @@ __export(src_exports, {
93
43
  ConstTime: () => ConstTime,
94
44
  EnvImpl: () => EnvImpl,
95
45
  Future: () => Future,
46
+ HeadersImpl: () => HeadersImpl,
47
+ HttpHeader: () => HttpHeader,
96
48
  IDMode: () => IDMode,
97
49
  IdService: () => IdService,
98
50
  IsLogger: () => IsLogger,
@@ -113,6 +65,7 @@ __export(src_exports, {
113
65
  MutableURL: () => MutableURL,
114
66
  None: () => None,
115
67
  Option: () => Option,
68
+ REQUIRED: () => REQUIRED,
116
69
  RandomMode: () => RandomMode,
117
70
  RandomService: () => RandomService,
118
71
  ResolveOnce: () => ResolveOnce,
@@ -224,7 +177,18 @@ var LogValue = class {
224
177
  function asyncLogValue(val) {
225
178
  throw new Error("Not implemented");
226
179
  }
227
- function logValue(val, state = /* @__PURE__ */ new Set([Math.random()])) {
180
+ function logValue(val, ctx) {
181
+ return logValueInternal(val, {
182
+ ...ctx,
183
+ state: ctx.state || /* @__PURE__ */ new Set([Math.random()])
184
+ });
185
+ }
186
+ function logValueInternal(val, ctx) {
187
+ var _a, _b;
188
+ ctx = {
189
+ ...ctx,
190
+ state: ctx.state || /* @__PURE__ */ new Set([Math.random()])
191
+ };
228
192
  switch (typeof val) {
229
193
  case "function":
230
194
  return new LogValue(val);
@@ -232,7 +196,7 @@ function logValue(val, state = /* @__PURE__ */ new Set([Math.random()])) {
232
196
  try {
233
197
  const ret = JSON.parse(val);
234
198
  if (typeof ret === "object" && ret !== null) {
235
- return logValue(ret, state);
199
+ return logValueInternal(ret, ctx);
236
200
  }
237
201
  } catch (e) {
238
202
  if (val.match(/[\n\r]/)) {
@@ -255,13 +219,15 @@ function logValue(val, state = /* @__PURE__ */ new Set([Math.random()])) {
255
219
  const decoder2 = new TextDecoder();
256
220
  const asStr = decoder2.decode(val);
257
221
  const obj = JSON.parse(asStr);
258
- return logValue(obj, state);
222
+ return logValueInternal(obj, ctx);
259
223
  } catch (e) {
260
- return logValue(bin2string(val, 512));
224
+ return logValueInternal(bin2string(val, 512), ctx);
261
225
  }
262
226
  }
263
227
  if (Array.isArray(val)) {
264
- return new LogValue(() => val.map((v) => logValue(v).value()));
228
+ return new LogValue(
229
+ () => val.map((v) => logValue(v, { ...ctx, state: void 0 }).value())
230
+ );
265
231
  }
266
232
  if (val instanceof Headers) {
267
233
  return new LogValue(() => Object.fromEntries(val.entries()));
@@ -272,22 +238,25 @@ function logValue(val, state = /* @__PURE__ */ new Set([Math.random()])) {
272
238
  if (val instanceof Promise) {
273
239
  return new LogValue(() => ">Promise<");
274
240
  }
275
- if (state.has(val)) {
241
+ if ((_a = ctx.state) == null ? void 0 : _a.has(val)) {
276
242
  return new LogValue(() => "...");
277
243
  }
278
- state.add(val);
244
+ (_b = ctx.state) == null ? void 0 : _b.add(val);
279
245
  if (typeof val.toJSON === "function") {
280
246
  return new LogValue(() => val.toJSON());
281
247
  }
282
248
  const res = {};
283
249
  const typedVal = val;
284
250
  for (const key in typedVal) {
251
+ if (ctx.ignoreAttr.IsSome() && ctx.ignoreAttr.unwrap().test(key)) {
252
+ continue;
253
+ }
285
254
  const element = typedVal[key];
286
255
  if (element instanceof LogValue) {
287
256
  res[key] = element;
288
257
  } else {
289
258
  if (typeof element !== "function") {
290
- res[key] = logValue(element, state);
259
+ res[key] = logValueInternal(element, ctx);
291
260
  }
292
261
  }
293
262
  }
@@ -998,6 +967,12 @@ var Result = class _Result {
998
967
  if (typeof t === "string") {
999
968
  return new ResultError(new Error(t));
1000
969
  }
970
+ if (_Result.Is(t)) {
971
+ if (t.is_ok()) {
972
+ return new ResultError(new Error("Result Error is Ok"));
973
+ }
974
+ return t;
975
+ }
1001
976
  return new ResultError(t);
1002
977
  }
1003
978
  static Is(t) {
@@ -1074,6 +1049,139 @@ function exception2Result(fn) {
1074
1049
  }
1075
1050
  }
1076
1051
 
1052
+ // src/utils/relative-path.ts
1053
+ var Path = class {
1054
+ constructor(parts = []) {
1055
+ this.parts = parts;
1056
+ }
1057
+ toString() {
1058
+ return this.parts.map((part) => {
1059
+ if (typeof part === "string") {
1060
+ return part;
1061
+ } else {
1062
+ switch (part) {
1063
+ case 1 /* Slash */:
1064
+ case 3 /* Root */:
1065
+ return "/";
1066
+ case 4 /* Up */:
1067
+ return "..";
1068
+ default:
1069
+ return part;
1070
+ }
1071
+ }
1072
+ }).join("");
1073
+ }
1074
+ add(part) {
1075
+ if (this.parts.includes(3 /* Root */) && part === 3 /* Root */) {
1076
+ throw new Error("Cannot add absolute part to absolute path");
1077
+ }
1078
+ const last = this.parts[this.parts.length - 1];
1079
+ if (last & 1 /* Slash */ && part === 1 /* Slash */) {
1080
+ return;
1081
+ }
1082
+ switch (part) {
1083
+ case ".":
1084
+ this.parts.push(8 /* Noop */);
1085
+ return;
1086
+ case "..":
1087
+ part = 4 /* Up */;
1088
+ }
1089
+ if (last === 8 /* Noop */ && part === 1 /* Slash */) {
1090
+ if (last === 8 /* Noop */) {
1091
+ this.parts.pop();
1092
+ }
1093
+ return;
1094
+ }
1095
+ this.parts.push(part);
1096
+ }
1097
+ };
1098
+ function splitPath(path) {
1099
+ const p = new Path();
1100
+ if (path === "") {
1101
+ return p;
1102
+ }
1103
+ for (let count = 0; path.length; count++) {
1104
+ if (path.match(/^\/+/)) {
1105
+ if (count === 0) {
1106
+ p.add(3 /* Root */);
1107
+ } else {
1108
+ p.add(1 /* Slash */);
1109
+ }
1110
+ path = path.replace(/^\/+/, "");
1111
+ } else {
1112
+ const part = path.replace(/\/.*$/, "");
1113
+ p.add(part);
1114
+ path = path.replace(/^[^/]+/, "");
1115
+ }
1116
+ }
1117
+ return p;
1118
+ }
1119
+ function pathJoin(...paths) {
1120
+ let prev = "";
1121
+ const res = [];
1122
+ for (let i = 0; i < paths.length; i++) {
1123
+ const path = paths[i];
1124
+ if (path === "") {
1125
+ continue;
1126
+ }
1127
+ if (!(prev.endsWith("/") || path.startsWith("/"))) {
1128
+ if (prev !== "") {
1129
+ res.push("/");
1130
+ }
1131
+ res.push(path);
1132
+ } else {
1133
+ res.push(path);
1134
+ }
1135
+ prev = path;
1136
+ }
1137
+ return res.join("");
1138
+ }
1139
+ function relativePath(path, relative) {
1140
+ const relativeParts = splitPath(relative);
1141
+ let result;
1142
+ if (relativeParts.parts[0] === 3 /* Root */) {
1143
+ result = relative;
1144
+ } else {
1145
+ result = pathJoin(path, relative);
1146
+ }
1147
+ const unoptPath = splitPath(result);
1148
+ const out = [];
1149
+ let topUp = false;
1150
+ for (const part of unoptPath.parts) {
1151
+ switch (part) {
1152
+ case 3 /* Root */:
1153
+ out.push(3 /* Root */);
1154
+ break;
1155
+ case 4 /* Up */:
1156
+ if (out.length && !topUp) {
1157
+ const last = out.length - 1;
1158
+ if (typeof out[last] === "string" && out[last - 1] == 3 /* Root */) {
1159
+ out.pop();
1160
+ } else {
1161
+ out.pop();
1162
+ out.pop();
1163
+ }
1164
+ if (out.length === 0) {
1165
+ topUp = !topUp ? true : topUp;
1166
+ out.push(4 /* Up */);
1167
+ }
1168
+ } else {
1169
+ out.push(4 /* Up */);
1170
+ }
1171
+ break;
1172
+ case 1 /* Slash */:
1173
+ if (!(out[out.length - 1] & 1 /* Slash */)) {
1174
+ out.push(1 /* Slash */);
1175
+ }
1176
+ break;
1177
+ default:
1178
+ out.push(part);
1179
+ break;
1180
+ }
1181
+ }
1182
+ return new Path(out).toString();
1183
+ }
1184
+
1077
1185
  // src/utils/stripper.ts
1078
1186
  function stripper(strip, obj) {
1079
1187
  const strips = Array.isArray(strip) ? strip : [strip];
@@ -1093,7 +1201,7 @@ function localStripper(path, restrips, obj) {
1093
1201
  if (Array.isArray(obj)) {
1094
1202
  return obj.map((i) => localStripper(path, restrips, i));
1095
1203
  }
1096
- const ret = __spreadValues({}, obj);
1204
+ const ret = { ...obj };
1097
1205
  const matcher = (key, nextPath) => {
1098
1206
  for (const re of restrips) {
1099
1207
  if (re.test(key) || re.test(nextPath)) {
@@ -1133,6 +1241,7 @@ function localStripper(path, restrips, obj) {
1133
1241
  }
1134
1242
 
1135
1243
  // src/uri.ts
1244
+ var REQUIRED = 4711;
1136
1245
  function coerceKey(key, def) {
1137
1246
  if (typeof key === "object") {
1138
1247
  const keys = Object.keys(key);
@@ -1353,17 +1462,29 @@ var BuildURI = class _BuildURI {
1353
1462
  this._url.pathname = p;
1354
1463
  return this;
1355
1464
  }
1356
- appendRelative(p) {
1357
- const appendUrl = URI.from(p);
1358
- let pathname = appendUrl.pathname;
1359
- let basePath = this._url.pathname;
1360
- if (pathname.startsWith("/")) {
1361
- pathname = pathname.replace(/^\//, "");
1465
+ // could pass a relative path or a full URL
1466
+ // if relative path, it will be appended to the current path
1467
+ resolve(p) {
1468
+ if (!p) {
1469
+ return this;
1362
1470
  }
1363
- if (basePath.length > 0) {
1364
- basePath = basePath.replace(/\/$/, "");
1471
+ if (typeof p === "string") {
1472
+ if (!p.match(/^[a-zA-Z0-9]+:/)) {
1473
+ if (p.startsWith("/")) {
1474
+ this.pathname(p);
1475
+ return this;
1476
+ }
1477
+ return this.appendRelative(p);
1478
+ }
1365
1479
  }
1366
- this.pathname(basePath + "/" + pathname);
1480
+ this._url = new MutableURL(p.toString());
1481
+ return this;
1482
+ }
1483
+ appendRelative(p) {
1484
+ const appendUrl = URI.from(p);
1485
+ const pathname = "./" + appendUrl.pathname;
1486
+ const basePath = this._url.pathname;
1487
+ this.pathname(relativePath(basePath, pathname));
1367
1488
  for (const [key, value] of appendUrl.getParams) {
1368
1489
  this.setParam(key, value);
1369
1490
  }
@@ -1538,11 +1659,12 @@ var URI = class _URI {
1538
1659
  searchParams: Object.fromEntries(this.getParams)
1539
1660
  };
1540
1661
  if (hasHostPartProtocols.has(this.protocol.replace(/:$/, ""))) {
1541
- return stripper(strips, __spreadProps(__spreadValues({}, pathURI), {
1662
+ return stripper(strips, {
1663
+ ...pathURI,
1542
1664
  style: "host",
1543
1665
  hostname: this.hostname,
1544
1666
  port: this.port
1545
- }));
1667
+ });
1546
1668
  }
1547
1669
  return stripper(strips, pathURI);
1548
1670
  }
@@ -1683,11 +1805,66 @@ var LogWriterStream = class {
1683
1805
  }
1684
1806
  };
1685
1807
 
1808
+ // src/option.ts
1809
+ var Option = class _Option {
1810
+ static Some(t) {
1811
+ return new Some(t);
1812
+ }
1813
+ static None() {
1814
+ return new None();
1815
+ }
1816
+ static Is(t) {
1817
+ return t instanceof _Option;
1818
+ }
1819
+ static From(t) {
1820
+ if (!t) {
1821
+ return new None();
1822
+ }
1823
+ return new Some(t);
1824
+ }
1825
+ IsNone() {
1826
+ return this.is_none();
1827
+ }
1828
+ IsSome() {
1829
+ return this.is_some();
1830
+ }
1831
+ Unwrap() {
1832
+ return this.unwrap();
1833
+ }
1834
+ };
1835
+ var Some = class extends Option {
1836
+ constructor(_t) {
1837
+ super();
1838
+ this._t = _t;
1839
+ }
1840
+ is_none() {
1841
+ return false;
1842
+ }
1843
+ is_some() {
1844
+ return true;
1845
+ }
1846
+ unwrap() {
1847
+ return this._t;
1848
+ }
1849
+ };
1850
+ var None = class extends Option {
1851
+ is_none() {
1852
+ return true;
1853
+ }
1854
+ is_some() {
1855
+ return false;
1856
+ }
1857
+ unwrap() {
1858
+ throw new Error("None.unwrap");
1859
+ }
1860
+ };
1861
+
1686
1862
  // src/log-level-impl.ts
1687
1863
  var LevelHandlerImpl = class {
1688
1864
  constructor() {
1689
1865
  this._globalLevels = /* @__PURE__ */ new Set(["info" /* INFO */, "error" /* ERROR */, "warn" /* WARN */]);
1690
1866
  this._modules = /* @__PURE__ */ new Map();
1867
+ this.ignoreAttr = Option.Some(/^_/);
1691
1868
  this.isStackExposed = false;
1692
1869
  }
1693
1870
  enableLevel(level, ...modules) {
@@ -1719,6 +1896,9 @@ var LevelHandlerImpl = class {
1719
1896
  setExposeStack(enable) {
1720
1897
  this.isStackExposed = !!enable;
1721
1898
  }
1899
+ setIgnoreAttr(re) {
1900
+ this.ignoreAttr = Option.From(re);
1901
+ }
1722
1902
  forModules(level, fnAction, ...modules) {
1723
1903
  for (const m of modules.flat()) {
1724
1904
  if (typeof m !== "string") {
@@ -1765,20 +1945,20 @@ function LevelHandlerSingleton() {
1765
1945
  }
1766
1946
 
1767
1947
  // src/logger-impl.ts
1768
- function getLen(value) {
1948
+ function getLen(value, lvs) {
1769
1949
  if (Array.isArray(value)) {
1770
- return logValue(() => value.length);
1950
+ return logValue(() => value.length, lvs);
1771
1951
  } else if (typeof value === "string") {
1772
- return logValue(() => value.length);
1952
+ return logValue(() => value.length, lvs);
1773
1953
  } else if (typeof value === "object" && value !== null) {
1774
1954
  if (typeof value.size === "number") {
1775
- return logValue(() => value.size);
1955
+ return logValue(() => value.size, lvs);
1776
1956
  } else if (typeof value.length === "number") {
1777
- return logValue(() => value.length);
1957
+ return logValue(() => value.length, lvs);
1778
1958
  }
1779
- return logValue(() => Object.keys(value).length);
1959
+ return logValue(() => Object.keys(value).length, lvs);
1780
1960
  }
1781
- return logValue(() => -1);
1961
+ return logValue(() => -1, lvs);
1782
1962
  }
1783
1963
  function hash(value) {
1784
1964
  return "not implemented";
@@ -1813,6 +1993,11 @@ var YAMLFormatter = class {
1813
1993
  return this._txtEnDe.encode("---\n" + import_yaml.default.stringify(attr, null, this._space) + "\n");
1814
1994
  }
1815
1995
  };
1996
+ function toLogValueCtx(lvh) {
1997
+ return {
1998
+ ignoreAttr: lvh.ignoreAttr
1999
+ };
2000
+ }
1816
2001
  var LoggerImpl = class _LoggerImpl {
1817
2002
  // readonly _id: string = "logger-" + Math.random().toString(36)
1818
2003
  constructor(params) {
@@ -1858,13 +2043,13 @@ var LoggerImpl = class _LoggerImpl {
1858
2043
  if (!params.withAttributes) {
1859
2044
  this._withAttributes = {};
1860
2045
  } else {
1861
- this._withAttributes = __spreadValues({}, params.withAttributes);
2046
+ this._withAttributes = { ...params.withAttributes };
1862
2047
  }
1863
- this._attributes = __spreadValues({}, this._withAttributes);
2048
+ this._attributes = { ...this._withAttributes };
1864
2049
  if (params.levelHandler) {
1865
- this._levelHandler = params.levelHandler;
2050
+ this.levelHandler = params.levelHandler;
1866
2051
  } else {
1867
- this._levelHandler = LevelHandlerSingleton();
2052
+ this.levelHandler = LevelHandlerSingleton();
1868
2053
  }
1869
2054
  }
1870
2055
  TxtEnDe() {
@@ -1874,25 +2059,29 @@ var LoggerImpl = class _LoggerImpl {
1874
2059
  return JSON.parse(JSON.stringify(this._attributes, null));
1875
2060
  }
1876
2061
  SetExposeStack(enable) {
1877
- this._levelHandler.setExposeStack(enable);
2062
+ this.levelHandler.setExposeStack(enable);
1878
2063
  return this;
1879
2064
  }
1880
2065
  EnableLevel(level, ...modules) {
1881
- this._levelHandler.enableLevel(level, ...modules);
2066
+ this.levelHandler.enableLevel(level, ...modules);
1882
2067
  return this;
1883
2068
  }
1884
2069
  DisableLevel(level, ...modules) {
1885
- this._levelHandler.disableLevel(level, ...modules);
2070
+ this.levelHandler.disableLevel(level, ...modules);
1886
2071
  return this;
1887
2072
  }
1888
2073
  Module(key) {
1889
- this._attributes["module"] = logValue(key);
1890
- this._withAttributes["module"] = logValue(key);
2074
+ this._attributes["module"] = logValue(key, toLogValueCtx(this.levelHandler));
2075
+ this._withAttributes["module"] = logValue(key, toLogValueCtx(this.levelHandler));
1891
2076
  return this;
1892
2077
  }
1893
2078
  // if the string is "*" it will enable for all modules
1894
2079
  SetDebug(...modules) {
1895
- this._levelHandler.setDebug(...modules);
2080
+ this.levelHandler.setDebug(...modules);
2081
+ return this;
2082
+ }
2083
+ SetIgnoreAttribute(re) {
2084
+ this.levelHandler.setIgnoreAttr(re);
1896
2085
  return this;
1897
2086
  }
1898
2087
  SetFormatter(formatter) {
@@ -1900,57 +2089,63 @@ var LoggerImpl = class _LoggerImpl {
1900
2089
  return this;
1901
2090
  }
1902
2091
  Timestamp() {
1903
- this._attributes["ts"] = logValue(() => this._sys.Time().Now().toISOString());
2092
+ this._attributes["ts"] = logValue(() => this._sys.Time().Now().toISOString(), toLogValueCtx(this.levelHandler));
1904
2093
  return this;
1905
2094
  }
1906
2095
  Warn() {
1907
- this._attributes["level"] = logValue("warn" /* WARN */);
2096
+ this._attributes["level"] = logValue("warn" /* WARN */, toLogValueCtx(this.levelHandler));
1908
2097
  return this;
1909
2098
  }
1910
2099
  Log() {
1911
2100
  return this;
1912
2101
  }
1913
2102
  Debug() {
1914
- this._attributes["level"] = logValue("debug" /* DEBUG */);
2103
+ this._attributes["level"] = logValue("debug" /* DEBUG */, toLogValueCtx(this.levelHandler));
1915
2104
  return this;
1916
2105
  }
1917
2106
  Error() {
1918
- this._attributes["level"] = logValue("error" /* ERROR */);
2107
+ this._attributes["level"] = logValue("error" /* ERROR */, toLogValueCtx(this.levelHandler));
1919
2108
  return this;
1920
2109
  }
1921
2110
  Info() {
1922
- this._attributes["level"] = logValue("info" /* INFO */);
2111
+ this._attributes["level"] = logValue("info" /* INFO */, toLogValueCtx(this.levelHandler));
1923
2112
  return this;
1924
2113
  }
1925
2114
  Err(err) {
1926
2115
  var _a;
2116
+ let key = "error";
1927
2117
  if (Result.Is(err)) {
1928
2118
  if (err.isOk()) {
1929
- this.Result("noerror", err);
2119
+ key = "noerror";
2120
+ err = err.Ok();
1930
2121
  } else {
1931
- this.Result("error", err);
2122
+ err = err.Err();
1932
2123
  }
1933
- } else if (err instanceof Error) {
1934
- this._attributes["error"] = logValue(err.message);
1935
- if (this._levelHandler.isStackExposed) {
1936
- this._attributes["stack"] = logValue((_a = err.stack) == null ? void 0 : _a.split("\n").map((s) => s.trim()));
2124
+ }
2125
+ if (err instanceof Error) {
2126
+ this._attributes[key] = logValue(err.message, toLogValueCtx(this.levelHandler));
2127
+ if (this.levelHandler.isStackExposed) {
2128
+ this._attributes["stack"] = logValue(
2129
+ (_a = err.stack) == null ? void 0 : _a.split("\n").map((s) => s.trim()),
2130
+ toLogValueCtx(this.levelHandler)
2131
+ );
1937
2132
  }
1938
2133
  } else {
1939
- this._attributes["error"] = logValue("" + err);
2134
+ this.Any(key, err);
1940
2135
  }
1941
2136
  return this;
1942
2137
  }
1943
2138
  WithLevel(l) {
1944
- this._attributes["level"] = logValue(l);
2139
+ this._attributes["level"] = logValue(l, toLogValueCtx(this.levelHandler));
1945
2140
  return this;
1946
2141
  }
1947
2142
  Ref(key, action) {
1948
2143
  if (typeof action === "function") {
1949
- this._attributes[key] = logValue(action);
2144
+ this._attributes[key] = logValue(action, toLogValueCtx(this.levelHandler));
1950
2145
  } else if (typeof action.toString === "function") {
1951
- this._attributes[key] = logValue(() => action.toString());
2146
+ this._attributes[key] = logValue(() => action.toString(), toLogValueCtx(this.levelHandler));
1952
2147
  } else {
1953
- this._attributes[key] = logValue("INVALID REF");
2148
+ this._attributes[key] = logValue("INVALID REF", toLogValueCtx(this.levelHandler));
1954
2149
  }
1955
2150
  return this;
1956
2151
  }
@@ -2000,18 +2195,20 @@ var LoggerImpl = class _LoggerImpl {
2000
2195
  }
2001
2196
  Result(key, res) {
2002
2197
  if (res.isOk()) {
2003
- this._attributes[key] = logValue(res.Ok());
2198
+ this._attributes[key] = logValue(res.Ok(), toLogValueCtx(this.levelHandler));
2004
2199
  } else {
2005
2200
  this.Err(res.Err());
2006
2201
  }
2007
2202
  return this;
2008
2203
  }
2009
2204
  Len(value, key = "len") {
2010
- this._attributes[key] = getLen(value);
2205
+ this._attributes[key] = getLen(value, toLogValueCtx(this.levelHandler));
2011
2206
  return this;
2012
2207
  }
2013
2208
  Hash(value, key = "hash") {
2014
- this._attributes[key] = asyncLogValue(async () => `${getLen(value).value()}:${await hash(value)}`);
2209
+ this._attributes[key] = asyncLogValue(
2210
+ async () => `${getLen(value, toLogValueCtx(this.levelHandler)).value()}:${await hash(value)}`
2211
+ );
2015
2212
  return this;
2016
2213
  }
2017
2214
  Url(url, key = "url") {
@@ -2020,7 +2217,7 @@ var LoggerImpl = class _LoggerImpl {
2020
2217
  }
2021
2218
  coerceKey(key, value) {
2022
2219
  if (typeof key === "string") {
2023
- this._attributes[key] = logValue(value);
2220
+ this._attributes[key] = logValue(value, toLogValueCtx(this.levelHandler));
2024
2221
  } else {
2025
2222
  this.Pair(key);
2026
2223
  }
@@ -2034,7 +2231,7 @@ var LoggerImpl = class _LoggerImpl {
2034
2231
  return this;
2035
2232
  }
2036
2233
  Dur(key, nsec) {
2037
- this._attributes[key] = logValue(`${nsec}ms`);
2234
+ this._attributes[key] = logValue(`${nsec}ms`, toLogValueCtx(this.levelHandler));
2038
2235
  return this;
2039
2236
  }
2040
2237
  Uint64(key, value) {
@@ -2054,11 +2251,12 @@ var LoggerImpl = class _LoggerImpl {
2054
2251
  new _LoggerImpl({
2055
2252
  logWriter: this._logWriter,
2056
2253
  sys: this._sys,
2057
- levelHandler: this._levelHandler,
2254
+ levelHandler: this.levelHandler,
2058
2255
  formatter: this._formatter,
2059
- withAttributes: __spreadValues({
2060
- module: this._attributes["module"]
2061
- }, this._withAttributes)
2256
+ withAttributes: {
2257
+ module: this._attributes["module"],
2258
+ ...this._withAttributes
2259
+ }
2062
2260
  })
2063
2261
  );
2064
2262
  }
@@ -2073,16 +2271,16 @@ var LoggerImpl = class _LoggerImpl {
2073
2271
  Msg(...args) {
2074
2272
  const fnError = this._resetAttributes(() => {
2075
2273
  var _a, _b;
2076
- const doWrite = this._levelHandler.isEnabled(
2274
+ const doWrite = this.levelHandler.isEnabled(
2077
2275
  (_a = toLogValue(this._attributes["level"])) == null ? void 0 : _a.value(),
2078
2276
  (_b = toLogValue(this._attributes["module"])) == null ? void 0 : _b.value()
2079
2277
  );
2080
- this._attributes["msg"] = logValue(args.join(" "));
2278
+ this._attributes["msg"] = logValue(args.join(" "), toLogValueCtx(this.levelHandler));
2081
2279
  const msg = this._attributes["msg"].value();
2082
2280
  if (typeof msg === "string" && !msg.trim().length) {
2083
2281
  delete this._attributes["msg"];
2084
2282
  }
2085
- let fnRet = () => this._formatter.format(__spreadValues({}, this._attributes));
2283
+ let fnRet = () => this._formatter.format({ ...this._attributes });
2086
2284
  if (doWrite) {
2087
2285
  const encoded = fnRet();
2088
2286
  this._logWriter.write(encoded);
@@ -2100,6 +2298,7 @@ var LoggerImpl = class _LoggerImpl {
2100
2298
  var WithLoggerBuilder = class {
2101
2299
  constructor(li) {
2102
2300
  this._li = li;
2301
+ this.levelHandler = li.levelHandler;
2103
2302
  }
2104
2303
  TxtEnDe() {
2105
2304
  return this._li.TxtEnDe();
@@ -2109,10 +2308,14 @@ var WithLoggerBuilder = class {
2109
2308
  return this._li;
2110
2309
  }
2111
2310
  Attributes() {
2112
- return __spreadValues({}, this._li._attributes);
2311
+ return { ...this._li._attributes };
2113
2312
  }
2114
2313
  SetExposeStack(enable) {
2115
- this._li._levelHandler.setExposeStack(enable);
2314
+ this._li.levelHandler.setExposeStack(enable);
2315
+ return this;
2316
+ }
2317
+ SetIgnoreAttribute(re) {
2318
+ this._li.levelHandler.setIgnoreAttr(re);
2116
2319
  return this;
2117
2320
  }
2118
2321
  SetFormatter(fmt) {
@@ -2120,11 +2323,11 @@ var WithLoggerBuilder = class {
2120
2323
  return this;
2121
2324
  }
2122
2325
  EnableLevel(level, ...modules) {
2123
- this._li._levelHandler.enableLevel(level, ...modules);
2326
+ this._li.levelHandler.enableLevel(level, ...modules);
2124
2327
  return this;
2125
2328
  }
2126
2329
  DisableLevel(level, ...modules) {
2127
- this._li._levelHandler.enableLevel(level, ...modules);
2330
+ this._li.levelHandler.enableLevel(level, ...modules);
2128
2331
  return this;
2129
2332
  }
2130
2333
  Module(key) {
@@ -2311,7 +2514,7 @@ var LogCollector = class {
2311
2514
  new Uint8Array(
2312
2515
  function* (res) {
2313
2516
  for (const x of res) {
2314
- yield* __yieldStar(x);
2517
+ yield* x;
2315
2518
  }
2316
2519
  }(this._bufferArr)
2317
2520
  )
@@ -2349,54 +2552,6 @@ function MockLogger(params) {
2349
2552
  };
2350
2553
  }
2351
2554
 
2352
- // src/option.ts
2353
- var Option = class _Option {
2354
- static Some(t) {
2355
- return new Some(t);
2356
- }
2357
- static None() {
2358
- return new None();
2359
- }
2360
- static Is(t) {
2361
- return t instanceof _Option;
2362
- }
2363
- IsNone() {
2364
- return this.is_none();
2365
- }
2366
- IsSome() {
2367
- return this.is_some();
2368
- }
2369
- Unwrap() {
2370
- return this.unwrap();
2371
- }
2372
- };
2373
- var Some = class extends Option {
2374
- constructor(_t) {
2375
- super();
2376
- this._t = _t;
2377
- }
2378
- is_none() {
2379
- return false;
2380
- }
2381
- is_some() {
2382
- return true;
2383
- }
2384
- unwrap() {
2385
- return this._t;
2386
- }
2387
- };
2388
- var None = class extends Option {
2389
- is_none() {
2390
- return true;
2391
- }
2392
- is_some() {
2393
- return false;
2394
- }
2395
- unwrap() {
2396
- throw new Error("None.unwrap");
2397
- }
2398
- };
2399
-
2400
2555
  // src/tracer.ts
2401
2556
  var Metric = class {
2402
2557
  constructor(path) {
@@ -2478,22 +2633,24 @@ var TraceNode = class _TraceNode {
2478
2633
  return this.ctx.parent.getRootPath(rpath.concat(this.ctx.spanId));
2479
2634
  }
2480
2635
  invokes() {
2481
- const cleanCtx = __spreadValues({}, this.ctx);
2636
+ const cleanCtx = { ...this.ctx };
2482
2637
  delete cleanCtx.parent;
2483
2638
  delete cleanCtx.time;
2484
2639
  delete cleanCtx.logger;
2485
2640
  delete cleanCtx.metrics;
2486
2641
  const spanRefs = this.metrics.toJSON.call({ map: this.metrics.spanRefs });
2487
2642
  const metricsRefs = Object.keys(spanRefs).length > 0 ? { metricRefs: spanRefs } : {};
2488
- return __spreadValues({
2643
+ return {
2489
2644
  ctx: cleanCtx,
2490
- invokations: this.invokations
2491
- }, metricsRefs);
2645
+ invokations: this.invokations,
2646
+ ...metricsRefs
2647
+ };
2492
2648
  }
2493
2649
  ctxWith(spanId, logger) {
2494
- const ctx = __spreadProps(__spreadValues({}, this.ctx), {
2650
+ const ctx = {
2651
+ ...this.ctx,
2495
2652
  spanId
2496
- });
2653
+ };
2497
2654
  if (logger) {
2498
2655
  ctx.logger = logger;
2499
2656
  }
@@ -2503,17 +2660,23 @@ var TraceNode = class _TraceNode {
2503
2660
  span(inSpanId, fn) {
2504
2661
  let ctx;
2505
2662
  if (typeof inSpanId === "string") {
2506
- ctx = __spreadProps(__spreadValues({}, this.ctx), {
2663
+ ctx = {
2664
+ ...this.ctx,
2507
2665
  spanId: inSpanId,
2508
2666
  parent: this
2509
- });
2667
+ };
2510
2668
  } else {
2511
- ctx = __spreadProps(__spreadValues(__spreadValues({}, this.ctx), inSpanId), {
2669
+ ctx = {
2670
+ ...this.ctx,
2671
+ ...inSpanId,
2512
2672
  parent: this
2513
- });
2673
+ };
2514
2674
  }
2515
2675
  if (ctx.logger) {
2516
- ctx = __spreadValues(__spreadValues({}, ctx), ctx.logger.Attributes());
2676
+ ctx = {
2677
+ ...ctx,
2678
+ ...ctx.logger.Attributes()
2679
+ };
2517
2680
  }
2518
2681
  const spanId = ctx.spanId;
2519
2682
  let spanTrace = this.childs.get(spanId);
@@ -2577,6 +2740,161 @@ var VERSION = Object.keys({
2577
2740
  __packageVersion__: "xxxx"
2578
2741
  })[0];
2579
2742
 
2743
+ // src/http_header.ts
2744
+ var HeadersImpl = class extends Headers {
2745
+ constructor(init) {
2746
+ super();
2747
+ this._headers = init;
2748
+ }
2749
+ [Symbol.iterator]() {
2750
+ return this.entries();
2751
+ }
2752
+ entries() {
2753
+ return this._headers.entries();
2754
+ }
2755
+ keys() {
2756
+ return this._headers.keys();
2757
+ }
2758
+ values() {
2759
+ return this._headers.values();
2760
+ }
2761
+ append(key, value) {
2762
+ const values = this._headers.get(key);
2763
+ if (typeof value === "undefined") {
2764
+ value = "";
2765
+ }
2766
+ if (Array.isArray(value)) {
2767
+ this._headers.set(key, [values, ...value].filter((i) => i).join(", "));
2768
+ } else {
2769
+ this._headers.set(key, [values, value].filter((i) => i).join(", "));
2770
+ }
2771
+ return this;
2772
+ }
2773
+ };
2774
+ var HttpHeader = class _HttpHeader {
2775
+ constructor() {
2776
+ this._headers = /* @__PURE__ */ new Map();
2777
+ }
2778
+ static from(headers) {
2779
+ const h = new _HttpHeader();
2780
+ if (headers) {
2781
+ if (Array.isArray(headers)) {
2782
+ for (const [k, v] of headers) {
2783
+ if (v) {
2784
+ h.Add(k, v);
2785
+ }
2786
+ }
2787
+ } else if (headers instanceof Headers) {
2788
+ for (const [k, v] of headers.entries()) {
2789
+ if (v) {
2790
+ h.Add(
2791
+ k,
2792
+ v.split(",").map((v2) => v2.trim())
2793
+ );
2794
+ }
2795
+ }
2796
+ } else {
2797
+ for (const k in headers) {
2798
+ const v = headers[k];
2799
+ if (v) {
2800
+ h.Add(k, v);
2801
+ }
2802
+ }
2803
+ }
2804
+ }
2805
+ return h;
2806
+ }
2807
+ _asStringString() {
2808
+ const ret = /* @__PURE__ */ new Map();
2809
+ for (const [key, values] of this._headers) {
2810
+ ret.set(key, values.join(", "));
2811
+ }
2812
+ return ret;
2813
+ }
2814
+ _key(key) {
2815
+ return key.toLowerCase();
2816
+ }
2817
+ Values(key) {
2818
+ const values = this._headers.get(this._key(key));
2819
+ return values || [];
2820
+ }
2821
+ Get(key) {
2822
+ const values = this._headers.get(this._key(key));
2823
+ if (values === void 0 || values.length === 0) {
2824
+ return void 0;
2825
+ }
2826
+ return values[0];
2827
+ }
2828
+ Set(key, valueOr) {
2829
+ const value = Array.isArray(valueOr) ? valueOr : [valueOr];
2830
+ this._headers.set(this._key(key), value);
2831
+ return this;
2832
+ }
2833
+ Add(key, value) {
2834
+ if (typeof value === "undefined") {
2835
+ return this;
2836
+ }
2837
+ const vs = Array.isArray(value) ? value : [value];
2838
+ const values = this._headers.get(this._key(key));
2839
+ if (values === void 0) {
2840
+ this._headers.set(this._key(key), vs);
2841
+ } else {
2842
+ values.push(...vs);
2843
+ }
2844
+ return this;
2845
+ }
2846
+ Del(ey) {
2847
+ this._headers.delete(this._key(ey));
2848
+ return this;
2849
+ }
2850
+ Items() {
2851
+ return Array.from(this._headers).filter(([_, vs]) => vs.length > 0);
2852
+ }
2853
+ SortItems() {
2854
+ return this.Items().sort(([[a]], [[b]]) => a.localeCompare(b));
2855
+ }
2856
+ Clone() {
2857
+ const clone = new _HttpHeader();
2858
+ for (const [key, values] of this._headers.entries()) {
2859
+ clone._headers.set(key, values.slice());
2860
+ }
2861
+ return clone;
2862
+ }
2863
+ AsRecordStringStringArray() {
2864
+ const obj = {};
2865
+ for (const [key, values] of this._headers.entries()) {
2866
+ obj[key] = [...values];
2867
+ }
2868
+ return obj;
2869
+ }
2870
+ AsRecordStringString() {
2871
+ const obj = {};
2872
+ for (const [key, values] of this._headers.entries()) {
2873
+ obj[key] = values.join(", ");
2874
+ }
2875
+ return obj;
2876
+ }
2877
+ AsHeaderInit() {
2878
+ const obj = {};
2879
+ for (const [key, values] of this._headers.entries()) {
2880
+ obj[key] = values[0];
2881
+ }
2882
+ return obj;
2883
+ }
2884
+ AsHeaders() {
2885
+ return new HeadersImpl(this._asStringString());
2886
+ }
2887
+ Merge(other) {
2888
+ const ret = this.Clone();
2889
+ if (other) {
2890
+ for (const [key, values] of other.Items()) {
2891
+ ret.Add(key, values);
2892
+ }
2893
+ }
2894
+ return ret;
2895
+ }
2896
+ };
2897
+
2580
2898
  // src/utils/index.ts
2581
2899
  var utils_exports = {};
2582
2900
  __export(utils_exports, {
@@ -2783,6 +3101,8 @@ function uint8array2stream(str) {
2783
3101
  ConstTime,
2784
3102
  EnvImpl,
2785
3103
  Future,
3104
+ HeadersImpl,
3105
+ HttpHeader,
2786
3106
  IDMode,
2787
3107
  IdService,
2788
3108
  IsLogger,
@@ -2803,6 +3123,7 @@ function uint8array2stream(str) {
2803
3123
  MutableURL,
2804
3124
  None,
2805
3125
  Option,
3126
+ REQUIRED,
2806
3127
  RandomMode,
2807
3128
  RandomService,
2808
3129
  ResolveOnce,