@adviser/cement 0.2.39 → 0.2.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -114,7 +114,16 @@ var LogValue = class {
114
114
  function asyncLogValue(val) {
115
115
  throw new Error("Not implemented");
116
116
  }
117
- function logValue(val, state = /* @__PURE__ */ new Set([Math.random()])) {
117
+ function logValue(val, ctx) {
118
+ return logValueInternal(val, __spreadProps(__spreadValues({}, ctx), {
119
+ state: ctx.state || /* @__PURE__ */ new Set([Math.random()])
120
+ }));
121
+ }
122
+ function logValueInternal(val, ctx) {
123
+ var _a, _b;
124
+ ctx = __spreadProps(__spreadValues({}, ctx), {
125
+ state: ctx.state || /* @__PURE__ */ new Set([Math.random()])
126
+ });
118
127
  switch (typeof val) {
119
128
  case "function":
120
129
  return new LogValue(val);
@@ -122,7 +131,7 @@ function logValue(val, state = /* @__PURE__ */ new Set([Math.random()])) {
122
131
  try {
123
132
  const ret = JSON.parse(val);
124
133
  if (typeof ret === "object" && ret !== null) {
125
- return logValue(ret, state);
134
+ return logValueInternal(ret, ctx);
126
135
  }
127
136
  } catch (e) {
128
137
  if (val.match(/[\n\r]/)) {
@@ -145,13 +154,15 @@ function logValue(val, state = /* @__PURE__ */ new Set([Math.random()])) {
145
154
  const decoder = new TextDecoder();
146
155
  const asStr = decoder.decode(val);
147
156
  const obj = JSON.parse(asStr);
148
- return logValue(obj, state);
157
+ return logValueInternal(obj, ctx);
149
158
  } catch (e) {
150
- return logValue(bin2string(val, 512));
159
+ return logValueInternal(bin2string(val, 512), ctx);
151
160
  }
152
161
  }
153
162
  if (Array.isArray(val)) {
154
- return new LogValue(() => val.map((v) => logValue(v).value()));
163
+ return new LogValue(
164
+ () => val.map((v) => logValue(v, __spreadProps(__spreadValues({}, ctx), { state: void 0 })).value())
165
+ );
155
166
  }
156
167
  if (val instanceof Headers) {
157
168
  return new LogValue(() => Object.fromEntries(val.entries()));
@@ -162,22 +173,25 @@ function logValue(val, state = /* @__PURE__ */ new Set([Math.random()])) {
162
173
  if (val instanceof Promise) {
163
174
  return new LogValue(() => ">Promise<");
164
175
  }
165
- if (state.has(val)) {
176
+ if ((_a = ctx.state) == null ? void 0 : _a.has(val)) {
166
177
  return new LogValue(() => "...");
167
178
  }
168
- state.add(val);
179
+ (_b = ctx.state) == null ? void 0 : _b.add(val);
169
180
  if (typeof val.toJSON === "function") {
170
181
  return new LogValue(() => val.toJSON());
171
182
  }
172
183
  const res = {};
173
184
  const typedVal = val;
174
185
  for (const key in typedVal) {
186
+ if (ctx.ignoreAttr.IsSome() && ctx.ignoreAttr.unwrap().test(key)) {
187
+ continue;
188
+ }
175
189
  const element = typedVal[key];
176
190
  if (element instanceof LogValue) {
177
191
  res[key] = element;
178
192
  } else {
179
193
  if (typeof element !== "function") {
180
- res[key] = logValue(element, state);
194
+ res[key] = logValueInternal(element, ctx);
181
195
  }
182
196
  }
183
197
  }
@@ -220,6 +234,12 @@ var Result = class _Result {
220
234
  if (typeof t === "string") {
221
235
  return new ResultError(new Error(t));
222
236
  }
237
+ if (_Result.Is(t)) {
238
+ if (t.is_ok()) {
239
+ return new ResultError(new Error("Result Error is Ok"));
240
+ }
241
+ return t;
242
+ }
223
243
  return new ResultError(t);
224
244
  }
225
245
  static Is(t) {
@@ -355,6 +375,7 @@ function localStripper(path, restrips, obj) {
355
375
  }
356
376
 
357
377
  // src/uri.ts
378
+ var REQUIRED = 4711;
358
379
  function coerceKey(key, def) {
359
380
  if (typeof key === "object") {
360
381
  const keys = Object.keys(key);
@@ -564,23 +585,10 @@ var BuildURI = class _BuildURI {
564
585
  this._url.hostname = h;
565
586
  return this;
566
587
  }
567
- // password(p: string) {
568
- // this._url.password = p;
569
- // return this;
570
- // }
571
- // port(p: string) {
572
- // this._url.port = p;
573
- // return this;
574
- // }
575
- // username(u: string) {
576
- // this._url.username = u;
577
- // return this;
578
- // }
579
- // search(s: string) {
580
- // this._url.search = s;
581
- // return this;
582
- // }
583
588
  protocol(p) {
589
+ if (!p.endsWith(":")) {
590
+ p = `${p}:`;
591
+ }
584
592
  this._url.protocol = p;
585
593
  return this;
586
594
  }
@@ -588,14 +596,6 @@ var BuildURI = class _BuildURI {
588
596
  this._url.pathname = p;
589
597
  return this;
590
598
  }
591
- // hash(h: string) {
592
- // this._url.hash = h;
593
- // return this;
594
- // }
595
- // host(h: string) {
596
- // this._url.host = h;
597
- // return this;
598
- // }
599
599
  appendRelative(p) {
600
600
  const appendUrl = URI.from(p);
601
601
  let pathname = appendUrl.pathname;
@@ -612,6 +612,12 @@ var BuildURI = class _BuildURI {
612
612
  }
613
613
  return this;
614
614
  }
615
+ cleanParams() {
616
+ for (const key of Array.from(this._url.searchParams.keys())) {
617
+ this._url.searchParams.delete(key);
618
+ }
619
+ return this;
620
+ }
615
621
  delParam(key) {
616
622
  this._url.searchParams.delete(key);
617
623
  return this;
@@ -856,11 +862,66 @@ var LogWriterStream = class {
856
862
  }
857
863
  };
858
864
 
865
+ // src/option.ts
866
+ var Option = class _Option {
867
+ static Some(t) {
868
+ return new Some(t);
869
+ }
870
+ static None() {
871
+ return new None();
872
+ }
873
+ static Is(t) {
874
+ return t instanceof _Option;
875
+ }
876
+ static From(t) {
877
+ if (!t) {
878
+ return new None();
879
+ }
880
+ return new Some(t);
881
+ }
882
+ IsNone() {
883
+ return this.is_none();
884
+ }
885
+ IsSome() {
886
+ return this.is_some();
887
+ }
888
+ Unwrap() {
889
+ return this.unwrap();
890
+ }
891
+ };
892
+ var Some = class extends Option {
893
+ constructor(_t) {
894
+ super();
895
+ this._t = _t;
896
+ }
897
+ is_none() {
898
+ return false;
899
+ }
900
+ is_some() {
901
+ return true;
902
+ }
903
+ unwrap() {
904
+ return this._t;
905
+ }
906
+ };
907
+ var None = class extends Option {
908
+ is_none() {
909
+ return true;
910
+ }
911
+ is_some() {
912
+ return false;
913
+ }
914
+ unwrap() {
915
+ throw new Error("None.unwrap");
916
+ }
917
+ };
918
+
859
919
  // src/log-level-impl.ts
860
920
  var LevelHandlerImpl = class {
861
921
  constructor() {
862
922
  this._globalLevels = /* @__PURE__ */ new Set(["info" /* INFO */, "error" /* ERROR */, "warn" /* WARN */]);
863
923
  this._modules = /* @__PURE__ */ new Map();
924
+ this.ignoreAttr = Option.Some(/^_/);
864
925
  this.isStackExposed = false;
865
926
  }
866
927
  enableLevel(level, ...modules) {
@@ -892,6 +953,9 @@ var LevelHandlerImpl = class {
892
953
  setExposeStack(enable) {
893
954
  this.isStackExposed = !!enable;
894
955
  }
956
+ setIgnoreAttr(re) {
957
+ this.ignoreAttr = Option.From(re);
958
+ }
895
959
  forModules(level, fnAction, ...modules) {
896
960
  for (const m of modules.flat()) {
897
961
  if (typeof m !== "string") {
@@ -938,20 +1002,20 @@ function LevelHandlerSingleton() {
938
1002
  }
939
1003
 
940
1004
  // src/logger-impl.ts
941
- function getLen(value) {
1005
+ function getLen(value, lvs) {
942
1006
  if (Array.isArray(value)) {
943
- return logValue(() => value.length);
1007
+ return logValue(() => value.length, lvs);
944
1008
  } else if (typeof value === "string") {
945
- return logValue(() => value.length);
1009
+ return logValue(() => value.length, lvs);
946
1010
  } else if (typeof value === "object" && value !== null) {
947
1011
  if (typeof value.size === "number") {
948
- return logValue(() => value.size);
1012
+ return logValue(() => value.size, lvs);
949
1013
  } else if (typeof value.length === "number") {
950
- return logValue(() => value.length);
1014
+ return logValue(() => value.length, lvs);
951
1015
  }
952
- return logValue(() => Object.keys(value).length);
1016
+ return logValue(() => Object.keys(value).length, lvs);
953
1017
  }
954
- return logValue(() => -1);
1018
+ return logValue(() => -1, lvs);
955
1019
  }
956
1020
  function hash(value) {
957
1021
  return "not implemented";
@@ -986,6 +1050,11 @@ var YAMLFormatter = class {
986
1050
  return this._txtEnDe.encode("---\n" + YAML.stringify(attr, null, this._space) + "\n");
987
1051
  }
988
1052
  };
1053
+ function toLogValueCtx(lvh) {
1054
+ return {
1055
+ ignoreAttr: lvh.ignoreAttr
1056
+ };
1057
+ }
989
1058
  var LoggerImpl = class _LoggerImpl {
990
1059
  // readonly _id: string = "logger-" + Math.random().toString(36)
991
1060
  constructor(params) {
@@ -1035,9 +1104,9 @@ var LoggerImpl = class _LoggerImpl {
1035
1104
  }
1036
1105
  this._attributes = __spreadValues({}, this._withAttributes);
1037
1106
  if (params.levelHandler) {
1038
- this._levelHandler = params.levelHandler;
1107
+ this.levelHandler = params.levelHandler;
1039
1108
  } else {
1040
- this._levelHandler = LevelHandlerSingleton();
1109
+ this.levelHandler = LevelHandlerSingleton();
1041
1110
  }
1042
1111
  }
1043
1112
  TxtEnDe() {
@@ -1047,25 +1116,29 @@ var LoggerImpl = class _LoggerImpl {
1047
1116
  return JSON.parse(JSON.stringify(this._attributes, null));
1048
1117
  }
1049
1118
  SetExposeStack(enable) {
1050
- this._levelHandler.setExposeStack(enable);
1119
+ this.levelHandler.setExposeStack(enable);
1051
1120
  return this;
1052
1121
  }
1053
1122
  EnableLevel(level, ...modules) {
1054
- this._levelHandler.enableLevel(level, ...modules);
1123
+ this.levelHandler.enableLevel(level, ...modules);
1055
1124
  return this;
1056
1125
  }
1057
1126
  DisableLevel(level, ...modules) {
1058
- this._levelHandler.disableLevel(level, ...modules);
1127
+ this.levelHandler.disableLevel(level, ...modules);
1059
1128
  return this;
1060
1129
  }
1061
1130
  Module(key) {
1062
- this._attributes["module"] = logValue(key);
1063
- this._withAttributes["module"] = logValue(key);
1131
+ this._attributes["module"] = logValue(key, toLogValueCtx(this.levelHandler));
1132
+ this._withAttributes["module"] = logValue(key, toLogValueCtx(this.levelHandler));
1064
1133
  return this;
1065
1134
  }
1066
1135
  // if the string is "*" it will enable for all modules
1067
1136
  SetDebug(...modules) {
1068
- this._levelHandler.setDebug(...modules);
1137
+ this.levelHandler.setDebug(...modules);
1138
+ return this;
1139
+ }
1140
+ SetIgnoreAttribute(re) {
1141
+ this.levelHandler.setIgnoreAttr(re);
1069
1142
  return this;
1070
1143
  }
1071
1144
  SetFormatter(formatter) {
@@ -1073,57 +1146,63 @@ var LoggerImpl = class _LoggerImpl {
1073
1146
  return this;
1074
1147
  }
1075
1148
  Timestamp() {
1076
- this._attributes["ts"] = logValue(() => this._sys.Time().Now().toISOString());
1149
+ this._attributes["ts"] = logValue(() => this._sys.Time().Now().toISOString(), toLogValueCtx(this.levelHandler));
1077
1150
  return this;
1078
1151
  }
1079
1152
  Warn() {
1080
- this._attributes["level"] = logValue("warn" /* WARN */);
1153
+ this._attributes["level"] = logValue("warn" /* WARN */, toLogValueCtx(this.levelHandler));
1081
1154
  return this;
1082
1155
  }
1083
1156
  Log() {
1084
1157
  return this;
1085
1158
  }
1086
1159
  Debug() {
1087
- this._attributes["level"] = logValue("debug" /* DEBUG */);
1160
+ this._attributes["level"] = logValue("debug" /* DEBUG */, toLogValueCtx(this.levelHandler));
1088
1161
  return this;
1089
1162
  }
1090
1163
  Error() {
1091
- this._attributes["level"] = logValue("error" /* ERROR */);
1164
+ this._attributes["level"] = logValue("error" /* ERROR */, toLogValueCtx(this.levelHandler));
1092
1165
  return this;
1093
1166
  }
1094
1167
  Info() {
1095
- this._attributes["level"] = logValue("info" /* INFO */);
1168
+ this._attributes["level"] = logValue("info" /* INFO */, toLogValueCtx(this.levelHandler));
1096
1169
  return this;
1097
1170
  }
1098
1171
  Err(err) {
1099
1172
  var _a;
1173
+ let key = "error";
1100
1174
  if (Result.Is(err)) {
1101
1175
  if (err.isOk()) {
1102
- this.Result("noerror", err);
1176
+ key = "noerror";
1177
+ err = err.Ok();
1103
1178
  } else {
1104
- this.Result("error", err);
1179
+ err = err.Err();
1105
1180
  }
1106
- } else if (err instanceof Error) {
1107
- this._attributes["error"] = logValue(err.message);
1108
- if (this._levelHandler.isStackExposed) {
1109
- this._attributes["stack"] = logValue((_a = err.stack) == null ? void 0 : _a.split("\n").map((s) => s.trim()));
1181
+ }
1182
+ if (err instanceof Error) {
1183
+ this._attributes[key] = logValue(err.message, toLogValueCtx(this.levelHandler));
1184
+ if (this.levelHandler.isStackExposed) {
1185
+ this._attributes["stack"] = logValue(
1186
+ (_a = err.stack) == null ? void 0 : _a.split("\n").map((s) => s.trim()),
1187
+ toLogValueCtx(this.levelHandler)
1188
+ );
1110
1189
  }
1111
1190
  } else {
1112
- this._attributes["error"] = logValue("" + err);
1191
+ this.Any(key, err);
1113
1192
  }
1114
1193
  return this;
1115
1194
  }
1116
1195
  WithLevel(l) {
1117
- this._attributes["level"] = logValue(l);
1196
+ this._attributes["level"] = logValue(l, toLogValueCtx(this.levelHandler));
1118
1197
  return this;
1119
1198
  }
1120
1199
  Ref(key, action) {
1121
1200
  if (typeof action === "function") {
1122
- this._attributes[key] = logValue(action);
1201
+ this._attributes[key] = logValue(action, toLogValueCtx(this.levelHandler));
1123
1202
  } else if (typeof action.toString === "function") {
1124
- this._attributes[key] = logValue(() => action.toString());
1203
+ this._attributes[key] = logValue(() => action.toString(), toLogValueCtx(this.levelHandler));
1125
1204
  } else {
1126
- this._attributes[key] = logValue("INVALID REF");
1205
+ this._attributes[key] = logValue("INVALID REF", toLogValueCtx(this.levelHandler));
1127
1206
  }
1128
1207
  return this;
1129
1208
  }
@@ -1173,18 +1252,20 @@ var LoggerImpl = class _LoggerImpl {
1173
1252
  }
1174
1253
  Result(key, res) {
1175
1254
  if (res.isOk()) {
1176
- this._attributes[key] = logValue(res.Ok());
1255
+ this._attributes[key] = logValue(res.Ok(), toLogValueCtx(this.levelHandler));
1177
1256
  } else {
1178
1257
  this.Err(res.Err());
1179
1258
  }
1180
1259
  return this;
1181
1260
  }
1182
1261
  Len(value, key = "len") {
1183
- this._attributes[key] = getLen(value);
1262
+ this._attributes[key] = getLen(value, toLogValueCtx(this.levelHandler));
1184
1263
  return this;
1185
1264
  }
1186
1265
  Hash(value, key = "hash") {
1187
- this._attributes[key] = asyncLogValue(async () => `${getLen(value).value()}:${await hash(value)}`);
1266
+ this._attributes[key] = asyncLogValue(
1267
+ async () => `${getLen(value, toLogValueCtx(this.levelHandler)).value()}:${await hash(value)}`
1268
+ );
1188
1269
  return this;
1189
1270
  }
1190
1271
  Url(url, key = "url") {
@@ -1193,7 +1274,7 @@ var LoggerImpl = class _LoggerImpl {
1193
1274
  }
1194
1275
  coerceKey(key, value) {
1195
1276
  if (typeof key === "string") {
1196
- this._attributes[key] = logValue(value);
1277
+ this._attributes[key] = logValue(value, toLogValueCtx(this.levelHandler));
1197
1278
  } else {
1198
1279
  this.Pair(key);
1199
1280
  }
@@ -1207,7 +1288,7 @@ var LoggerImpl = class _LoggerImpl {
1207
1288
  return this;
1208
1289
  }
1209
1290
  Dur(key, nsec) {
1210
- this._attributes[key] = logValue(`${nsec}ms`);
1291
+ this._attributes[key] = logValue(`${nsec}ms`, toLogValueCtx(this.levelHandler));
1211
1292
  return this;
1212
1293
  }
1213
1294
  Uint64(key, value) {
@@ -1227,7 +1308,7 @@ var LoggerImpl = class _LoggerImpl {
1227
1308
  new _LoggerImpl({
1228
1309
  logWriter: this._logWriter,
1229
1310
  sys: this._sys,
1230
- levelHandler: this._levelHandler,
1311
+ levelHandler: this.levelHandler,
1231
1312
  formatter: this._formatter,
1232
1313
  withAttributes: __spreadValues({
1233
1314
  module: this._attributes["module"]
@@ -1246,11 +1327,11 @@ var LoggerImpl = class _LoggerImpl {
1246
1327
  Msg(...args) {
1247
1328
  const fnError = this._resetAttributes(() => {
1248
1329
  var _a, _b;
1249
- const doWrite = this._levelHandler.isEnabled(
1330
+ const doWrite = this.levelHandler.isEnabled(
1250
1331
  (_a = toLogValue(this._attributes["level"])) == null ? void 0 : _a.value(),
1251
1332
  (_b = toLogValue(this._attributes["module"])) == null ? void 0 : _b.value()
1252
1333
  );
1253
- this._attributes["msg"] = logValue(args.join(" "));
1334
+ this._attributes["msg"] = logValue(args.join(" "), toLogValueCtx(this.levelHandler));
1254
1335
  const msg = this._attributes["msg"].value();
1255
1336
  if (typeof msg === "string" && !msg.trim().length) {
1256
1337
  delete this._attributes["msg"];
@@ -1273,6 +1354,7 @@ var LoggerImpl = class _LoggerImpl {
1273
1354
  var WithLoggerBuilder = class {
1274
1355
  constructor(li) {
1275
1356
  this._li = li;
1357
+ this.levelHandler = li.levelHandler;
1276
1358
  }
1277
1359
  TxtEnDe() {
1278
1360
  return this._li.TxtEnDe();
@@ -1285,7 +1367,11 @@ var WithLoggerBuilder = class {
1285
1367
  return __spreadValues({}, this._li._attributes);
1286
1368
  }
1287
1369
  SetExposeStack(enable) {
1288
- this._li._levelHandler.setExposeStack(enable);
1370
+ this._li.levelHandler.setExposeStack(enable);
1371
+ return this;
1372
+ }
1373
+ SetIgnoreAttribute(re) {
1374
+ this._li.levelHandler.setIgnoreAttr(re);
1289
1375
  return this;
1290
1376
  }
1291
1377
  SetFormatter(fmt) {
@@ -1293,11 +1379,11 @@ var WithLoggerBuilder = class {
1293
1379
  return this;
1294
1380
  }
1295
1381
  EnableLevel(level, ...modules) {
1296
- this._li._levelHandler.enableLevel(level, ...modules);
1382
+ this._li.levelHandler.enableLevel(level, ...modules);
1297
1383
  return this;
1298
1384
  }
1299
1385
  DisableLevel(level, ...modules) {
1300
- this._li._levelHandler.enableLevel(level, ...modules);
1386
+ this._li.levelHandler.enableLevel(level, ...modules);
1301
1387
  return this;
1302
1388
  }
1303
1389
  Module(key) {
@@ -1496,54 +1582,6 @@ function MockLogger(params) {
1496
1582
  };
1497
1583
  }
1498
1584
 
1499
- // src/option.ts
1500
- var Option = class _Option {
1501
- static Some(t) {
1502
- return new Some(t);
1503
- }
1504
- static None() {
1505
- return new None();
1506
- }
1507
- static Is(t) {
1508
- return t instanceof _Option;
1509
- }
1510
- IsNone() {
1511
- return this.is_none();
1512
- }
1513
- IsSome() {
1514
- return this.is_some();
1515
- }
1516
- Unwrap() {
1517
- return this.unwrap();
1518
- }
1519
- };
1520
- var Some = class extends Option {
1521
- constructor(_t) {
1522
- super();
1523
- this._t = _t;
1524
- }
1525
- is_none() {
1526
- return false;
1527
- }
1528
- is_some() {
1529
- return true;
1530
- }
1531
- unwrap() {
1532
- return this._t;
1533
- }
1534
- };
1535
- var None = class extends Option {
1536
- is_none() {
1537
- return true;
1538
- }
1539
- is_some() {
1540
- return false;
1541
- }
1542
- unwrap() {
1543
- throw new Error("None.unwrap");
1544
- }
1545
- };
1546
-
1547
1585
  // src/tracer.ts
1548
1586
  var Metric = class {
1549
1587
  constructor(path) {
@@ -1750,6 +1788,7 @@ export {
1750
1788
  MutableURL,
1751
1789
  None,
1752
1790
  Option,
1791
+ REQUIRED,
1753
1792
  RandomMode,
1754
1793
  RandomService,
1755
1794
  ResolveOnce,