@event-driven-io/emmett-testcontainers 0.43.0-beta.7 → 0.43.0-beta.9

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/dist/index.js CHANGED
@@ -236,6 +236,109 @@ var InProcessLock = () => {
236
236
  }
237
237
  };
238
238
  };
239
+ var bigIntReplacer = (_key, value) => {
240
+ return typeof value === "bigint" ? value.toString() : value;
241
+ };
242
+ var dateReplacer = (_key, value) => {
243
+ return value instanceof Date ? value.toISOString() : value;
244
+ };
245
+ var isFirstLetterNumeric = (str) => {
246
+ const c = str.charCodeAt(0);
247
+ return c >= 48 && c <= 57;
248
+ };
249
+ var isFirstLetterNumericOrMinus = (str) => {
250
+ const c = str.charCodeAt(0);
251
+ return c >= 48 && c <= 57 || c === 45;
252
+ };
253
+ var bigIntReviver = (_key, value, context) => {
254
+ if (typeof value === "number" && Number.isInteger(value) && !Number.isSafeInteger(value)) {
255
+ try {
256
+ return BigInt(context?.source ?? value.toString());
257
+ } catch {
258
+ return value;
259
+ }
260
+ }
261
+ if (typeof value === "string" && value.length > 15) {
262
+ if (isFirstLetterNumericOrMinus(value)) {
263
+ const num = Number(value);
264
+ if (Number.isFinite(num) && !Number.isSafeInteger(num)) {
265
+ try {
266
+ return BigInt(value);
267
+ } catch {
268
+ }
269
+ }
270
+ }
271
+ }
272
+ return value;
273
+ };
274
+ var dateReviver = (_key, value) => {
275
+ if (typeof value === "string" && value.length === 24 && isFirstLetterNumeric(value) && value[10] === "T" && value[23] === "Z") {
276
+ const date = new Date(value);
277
+ if (!isNaN(date.getTime())) {
278
+ return date;
279
+ }
280
+ }
281
+ return value;
282
+ };
283
+ var composeJSONReplacers = (...replacers) => {
284
+ const filteredReplacers = replacers.filter((r) => r !== void 0);
285
+ if (filteredReplacers.length === 0) return void 0;
286
+ return (key, value) => (
287
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
288
+ filteredReplacers.reduce(
289
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
290
+ (accValue, replacer) => replacer(key, accValue),
291
+ value
292
+ )
293
+ );
294
+ };
295
+ var composeJSONRevivers = (...revivers) => {
296
+ const filteredRevivers = revivers.filter((r) => r !== void 0);
297
+ if (filteredRevivers.length === 0) return void 0;
298
+ return (key, value, context) => (
299
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
300
+ filteredRevivers.reduce(
301
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
302
+ (accValue, reviver) => reviver(key, accValue, context),
303
+ value
304
+ )
305
+ );
306
+ };
307
+ var JSONReplacer = (opts) => composeJSONReplacers(
308
+ opts?.replacer,
309
+ opts?.failOnBigIntSerialization !== true ? JSONReplacers.bigInt : void 0,
310
+ opts?.useDefaultDateSerialization !== true ? JSONReplacers.date : void 0
311
+ );
312
+ var JSONReviver = (opts) => composeJSONRevivers(
313
+ opts?.reviver,
314
+ opts?.parseBigInts === true ? JSONRevivers.bigInt : void 0,
315
+ opts?.parseDates === true ? JSONRevivers.date : void 0
316
+ );
317
+ var JSONReplacers = {
318
+ bigInt: bigIntReplacer,
319
+ date: dateReplacer
320
+ };
321
+ var JSONRevivers = {
322
+ bigInt: bigIntReviver,
323
+ date: dateReviver
324
+ };
325
+ var jsonSerializer = (options) => {
326
+ const defaultReplacer = JSONReplacer(options);
327
+ const defaultReviver = JSONReviver(options);
328
+ return {
329
+ serialize: (object, serializerOptions) => JSON.stringify(
330
+ object,
331
+ serializerOptions ? JSONReplacer(serializerOptions) : defaultReplacer
332
+ ),
333
+ deserialize: (payload, deserializerOptions) => JSON.parse(
334
+ payload,
335
+ deserializerOptions ? JSONReviver(deserializerOptions) : defaultReviver
336
+ )
337
+ };
338
+ };
339
+ var JSONSerializer = Object.assign(jsonSerializer(), {
340
+ from: (options) => options?.serialization?.serializer ?? (options?.serialization?.options ? jsonSerializer(options?.serialization?.options) : JSONSerializer)
341
+ });
239
342
  var textEncoder = new TextEncoder();
240
343
 
241
344
  // src/eventStore/eventStoreDBContainer.ts