@veryfront/ext-content-mdx 0.1.1190 → 0.1.1192

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 (66) hide show
  1. package/esm/deno.d.ts +6 -0
  2. package/esm/deno.js +13 -7
  3. package/esm/src/errors/error-registry/module.d.ts +4 -0
  4. package/esm/src/errors/error-registry/module.d.ts.map +1 -1
  5. package/esm/src/errors/error-registry/module.js +16 -0
  6. package/esm/src/errors/error-registry.d.ts +2 -0
  7. package/esm/src/errors/error-registry.d.ts.map +1 -1
  8. package/esm/src/errors/types.d.ts.map +1 -1
  9. package/esm/src/errors/types.js +5 -2
  10. package/esm/src/platform/compat/error-introspection.d.ts +12 -1
  11. package/esm/src/platform/compat/error-introspection.d.ts.map +1 -1
  12. package/esm/src/platform/compat/error-introspection.js +40 -5
  13. package/esm/src/platform/compat/path/basic-operations.d.ts.map +1 -1
  14. package/esm/src/platform/compat/path/basic-operations.js +6 -2
  15. package/esm/src/platform/compat/path/portable.d.ts.map +1 -1
  16. package/esm/src/platform/compat/path/portable.js +98 -54
  17. package/esm/src/platform/compat/path/resolution.d.ts.map +1 -1
  18. package/esm/src/platform/compat/path/resolution.js +14 -5
  19. package/esm/src/platform/compat/primordials/array.d.ts +8 -0
  20. package/esm/src/platform/compat/primordials/array.d.ts.map +1 -0
  21. package/esm/src/platform/compat/primordials/array.js +33 -0
  22. package/esm/src/transforms/import-rewriter/url-builder.d.ts +6 -0
  23. package/esm/src/transforms/import-rewriter/url-builder.d.ts.map +1 -1
  24. package/esm/src/transforms/import-rewriter/url-builder.js +96 -29
  25. package/esm/src/utils/base64url.d.ts.map +1 -1
  26. package/esm/src/utils/base64url.js +10 -4
  27. package/esm/src/utils/bundle-manifest.d.ts +19 -1
  28. package/esm/src/utils/bundle-manifest.d.ts.map +1 -1
  29. package/esm/src/utils/bundle-manifest.js +124 -27
  30. package/esm/src/utils/constants/limits.d.ts +1 -1
  31. package/esm/src/utils/constants/limits.d.ts.map +1 -1
  32. package/esm/src/utils/constants/limits.js +1 -1
  33. package/esm/src/utils/hash-utils.d.ts.map +1 -1
  34. package/esm/src/utils/hash-utils.js +32 -6
  35. package/esm/src/utils/id.d.ts +16 -0
  36. package/esm/src/utils/id.d.ts.map +1 -0
  37. package/esm/src/utils/id.js +69 -0
  38. package/esm/src/utils/import-lockfile.d.ts +52 -1
  39. package/esm/src/utils/import-lockfile.d.ts.map +1 -1
  40. package/esm/src/utils/import-lockfile.js +1042 -58
  41. package/esm/src/utils/index.d.ts +1 -1
  42. package/esm/src/utils/index.d.ts.map +1 -1
  43. package/esm/src/utils/index.js +1 -1
  44. package/esm/src/utils/logger/logger.d.ts +1 -0
  45. package/esm/src/utils/logger/logger.d.ts.map +1 -1
  46. package/esm/src/utils/logger/logger.js +359 -78
  47. package/esm/src/utils/logger/redact.d.ts +4 -2
  48. package/esm/src/utils/logger/redact.d.ts.map +1 -1
  49. package/esm/src/utils/logger/redact.js +300 -112
  50. package/esm/src/utils/logger/serialization.d.ts +3 -0
  51. package/esm/src/utils/logger/serialization.d.ts.map +1 -0
  52. package/esm/src/utils/logger/serialization.js +81 -0
  53. package/esm/src/utils/memoize.d.ts +1 -1
  54. package/esm/src/utils/memoize.d.ts.map +1 -1
  55. package/esm/src/utils/memoize.js +16 -5
  56. package/esm/src/utils/path-utils.d.ts.map +1 -1
  57. package/esm/src/utils/path-utils.js +4 -2
  58. package/esm/src/utils/sleep.d.ts +8 -0
  59. package/esm/src/utils/sleep.d.ts.map +1 -1
  60. package/esm/src/utils/sleep.js +11 -2
  61. package/esm/src/utils/timer.d.ts +10 -0
  62. package/esm/src/utils/timer.d.ts.map +1 -0
  63. package/esm/src/utils/timer.js +19 -0
  64. package/esm/src/utils/version-constant.d.ts +1 -1
  65. package/esm/src/utils/version-constant.js +1 -1
  66. package/package.json +2 -2
@@ -0,0 +1,3 @@
1
+ export declare function stringifyRedactedJson(value: unknown, fallbackValue?: unknown): string;
2
+ export declare function stringifyRedactedAttributeValue(value: object, fallbackValue?: string): string;
3
+ //# sourceMappingURL=serialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../../../src/src/utils/logger/serialization.ts"],"names":[],"mappings":"AA4DA,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,aAAa,GAAE,OAAkB,GAChC,MAAM,CAUR;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,MAAM,EACb,aAAa,GAAE,MAAiB,GAC/B,MAAM,CAWR"}
@@ -0,0 +1,81 @@
1
+ import { REDACTED, redactForSerialization } from "./redact.js";
2
+ // Capture serialization intrinsics before project code can modify globals.
3
+ // Logging and telemetry serialization are safety boundaries and must not become
4
+ // throwable or leak data when a tenant mutates Object/Array prototypes.
5
+ const arrayIsArray = Array.isArray;
6
+ const arrayPrototype = Array.prototype;
7
+ const jsonStringify = JSON.stringify;
8
+ const objectDefineProperty = Object.defineProperty;
9
+ const objectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
10
+ const objectGetPrototypeOf = Object.getPrototypeOf;
11
+ const objectHasOwn = Object.hasOwn;
12
+ const objectPrototype = Object.prototype;
13
+ const objectValues = Object.values;
14
+ const arrayPrototypeParent = objectGetPrototypeOf(arrayPrototype);
15
+ const objectPrototypeParent = objectGetPrototypeOf(objectPrototype);
16
+ function intrinsicSerializationHookMayBePresent() {
17
+ return objectGetOwnPropertyDescriptor(objectPrototype, "toJSON") !== undefined ||
18
+ objectGetOwnPropertyDescriptor(arrayPrototype, "toJSON") !== undefined ||
19
+ // A new parent can contribute an inherited hook without changing either
20
+ // intrinsic prototype's own descriptor. Treat any chain mutation as hostile.
21
+ objectGetPrototypeOf(objectPrototype) !== objectPrototypeParent ||
22
+ objectGetPrototypeOf(arrayPrototype) !== arrayPrototypeParent;
23
+ }
24
+ function blockInheritedSerializationHooks(value) {
25
+ if (value === null || typeof value !== "object")
26
+ return;
27
+ if (!objectHasOwn(value, "toJSON")) {
28
+ objectDefineProperty(value, "toJSON", {
29
+ configurable: false,
30
+ enumerable: false,
31
+ value: undefined,
32
+ writable: false,
33
+ });
34
+ }
35
+ if (arrayIsArray(value)) {
36
+ for (let index = 0; index < value.length; index++) {
37
+ blockInheritedSerializationHooks(value[index]);
38
+ }
39
+ return;
40
+ }
41
+ const values = objectValues(value);
42
+ for (let index = 0; index < values.length; index++) {
43
+ blockInheritedSerializationHooks(values[index]);
44
+ }
45
+ }
46
+ function stringifyFallback(fallbackValue) {
47
+ if (typeof fallbackValue === "string")
48
+ return fallbackValue;
49
+ try {
50
+ return jsonStringify(fallbackValue) ?? REDACTED;
51
+ }
52
+ catch {
53
+ return REDACTED;
54
+ }
55
+ }
56
+ export function stringifyRedactedJson(value, fallbackValue = REDACTED) {
57
+ try {
58
+ const snapshot = redactForSerialization(value);
59
+ if (intrinsicSerializationHookMayBePresent()) {
60
+ blockInheritedSerializationHooks(snapshot);
61
+ }
62
+ return jsonStringify(snapshot) ?? REDACTED;
63
+ }
64
+ catch {
65
+ return stringifyFallback(fallbackValue);
66
+ }
67
+ }
68
+ export function stringifyRedactedAttributeValue(value, fallbackValue = REDACTED) {
69
+ try {
70
+ const snapshot = redactForSerialization(value);
71
+ if (typeof snapshot === "string")
72
+ return snapshot;
73
+ if (intrinsicSerializationHookMayBePresent()) {
74
+ blockInheritedSerializationHooks(snapshot);
75
+ }
76
+ return jsonStringify(snapshot) ?? REDACTED;
77
+ }
78
+ catch {
79
+ return fallbackValue;
80
+ }
81
+ }
@@ -12,7 +12,7 @@ export declare function memoizeAsync<Args extends unknown[], Result>(fn: (...arg
12
12
  /** Memoize. */
13
13
  export declare function memoize<Args extends unknown[], Result>(fn: (...args: Args) => Result, keyHasher: (...args: Args) => string): (...args: Args) => Result;
14
14
  /**
15
- * FNV-1a hash algorithm for fast cache key generation.
15
+ * FNV-1a hash algorithm for fast, framed cache key generation.
16
16
  * 10-15x faster than JSON.stringify() and uses 70-80% less memory.
17
17
  */
18
18
  export declare function simpleHash(...values: unknown[]): string;
@@ -1 +1 @@
1
- {"version":3,"file":"memoize.d.ts","sourceRoot":"","sources":["../../../src/src/utils/memoize.ts"],"names":[],"mappings":"AAGA,4BAA4B;AAC5B,qBAAa,SAAS,CAAC,CAAC;IACtB,OAAO,CAAC,KAAK,CAAwB;IAErC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAI/B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAIhC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,MAAM;CAGf;AA2CD,qBAAqB;AACrB,wBAAgB,YAAY,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,MAAM,EACzD,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,EACtC,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,GACnC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAEpC;AAED,eAAe;AACf,wBAAgB,OAAO,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,MAAM,EACpD,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,EAC7B,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,GACnC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,CAE3B;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAavD"}
1
+ {"version":3,"file":"memoize.d.ts","sourceRoot":"","sources":["../../../src/src/utils/memoize.ts"],"names":[],"mappings":"AAGA,4BAA4B;AAC5B,qBAAa,SAAS,CAAC,CAAC;IACtB,OAAO,CAAC,KAAK,CAAwB;IAErC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAI/B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAIhC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,MAAM;CAGf;AA2CD,qBAAqB;AACrB,wBAAgB,YAAY,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,MAAM,EACzD,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,EACtC,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,GACnC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAEpC;AAED,eAAe;AACf,wBAAgB,OAAO,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,MAAM,EACpD,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,EAC7B,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,GACnC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,CAE3B;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAyBvD"}
@@ -56,17 +56,28 @@ export function memoize(fn, keyHasher) {
56
56
  return memoizeWithCache(fn, keyHasher);
57
57
  }
58
58
  /**
59
- * FNV-1a hash algorithm for fast cache key generation.
59
+ * FNV-1a hash algorithm for fast, framed cache key generation.
60
60
  * 10-15x faster than JSON.stringify() and uses 70-80% less memory.
61
61
  */
62
62
  export function simpleHash(...values) {
63
63
  let hash = HASH_SEED_FNV1A;
64
- for (const value of values) {
65
- const str = typeof value === "string" ? value : String(value);
66
- for (let i = 0; i < str.length; i++) {
67
- hash ^= str.charCodeAt(i);
64
+ const mix = (text) => {
65
+ // Length-prefix every segment so argument boundaries cannot collapse
66
+ // (`["ab", "c"]` must not hash as `["a", "bc"]`).
67
+ const length = text.length >>> 0;
68
+ for (let shift = 0; shift < 32; shift += 8) {
69
+ hash ^= (length >>> shift) & 0xff;
70
+ hash = Math.imul(hash, FNV1A_PRIME_32);
71
+ }
72
+ for (let i = 0; i < text.length; i++) {
73
+ hash ^= text.charCodeAt(i);
68
74
  hash = Math.imul(hash, FNV1A_PRIME_32);
69
75
  }
76
+ };
77
+ for (const value of values) {
78
+ const str = typeof value === "string" ? value : String(value);
79
+ mix(value === null ? "null" : typeof value);
80
+ mix(str);
70
81
  }
71
82
  return (hash >>> 0).toString(36);
72
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"path-utils.d.ts","sourceRoot":"","sources":["../../../src/src/utils/path-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,uCAAuC,CAAC;AAS9E,uBAAuB;AACvB,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAMvE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAQD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAG9E;AAED,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,CAAC;AAExC,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAUD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAerD;AAgCD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAQrE"}
1
+ {"version":3,"file":"path-utils.d.ts","sourceRoot":"","sources":["../../../src/src/utils/path-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,uCAAuC,CAAC;AAS9E,uBAAuB;AACvB,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAMvE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAQD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAG9E;AAED,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,CAAC;AAExC,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAUD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAerD;AAgCD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAQrE"}
@@ -30,7 +30,8 @@ export function isWithinDirectory(root, target) {
30
30
  */
31
31
  export function getExtension(path) {
32
32
  const lastDot = path.lastIndexOf(".");
33
- if (lastDot === -1 || lastDot === path.length - 1)
33
+ const lastSeparator = Math.max(path.lastIndexOf("/"), path.lastIndexOf("\\"));
34
+ if (lastDot <= lastSeparator || lastDot === path.length - 1)
34
35
  return "";
35
36
  return path.slice(lastDot);
36
37
  }
@@ -40,7 +41,8 @@ export function getExtension(path) {
40
41
  */
41
42
  export function getExtensionName(path) {
42
43
  const lastDot = path.lastIndexOf(".");
43
- if (lastDot === -1 || lastDot === path.length - 1)
44
+ const lastSeparator = Math.max(path.lastIndexOf("/"), path.lastIndexOf("\\"));
45
+ if (lastDot <= lastSeparator || lastDot === path.length - 1)
44
46
  return "";
45
47
  return path.slice(lastDot + 1).toLowerCase();
46
48
  }
@@ -1,2 +1,10 @@
1
+ /**
2
+ * Return a promise that resolves after `ms` milliseconds. If `abortSignal` is
3
+ * already aborted, throws `abortSignal.reason` synchronously. If it aborts while
4
+ * waiting, rejects with `abortSignal.reason`.
5
+ *
6
+ * Throws `RangeError` synchronously when `ms` is negative, non-finite, or
7
+ * exceeds the portable JavaScript timer range.
8
+ */
1
9
  export declare function sleep(ms: number, abortSignal?: AbortSignal): Promise<void>;
2
10
  //# sourceMappingURL=sleep.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sleep.d.ts","sourceRoot":"","sources":["../../../src/src/utils/sleep.ts"],"names":[],"mappings":"AAGA,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAe1E"}
1
+ {"version":3,"file":"sleep.d.ts","sourceRoot":"","sources":["../../../src/src/utils/sleep.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB1E"}
@@ -1,12 +1,21 @@
1
- /** Resolve after `ms` milliseconds; rejects with `abortSignal.reason` if aborted first. */
2
1
  import * as dntShim from "../../_dnt.shims.js";
2
+ import { normalizeTimerDurationMs } from "./timer.js";
3
+ /**
4
+ * Return a promise that resolves after `ms` milliseconds. If `abortSignal` is
5
+ * already aborted, throws `abortSignal.reason` synchronously. If it aborts while
6
+ * waiting, rejects with `abortSignal.reason`.
7
+ *
8
+ * Throws `RangeError` synchronously when `ms` is negative, non-finite, or
9
+ * exceeds the portable JavaScript timer range.
10
+ */
3
11
  export function sleep(ms, abortSignal) {
12
+ const durationMs = normalizeTimerDurationMs(ms, "Sleep duration");
4
13
  abortSignal?.throwIfAborted();
5
14
  return new Promise((resolve, reject) => {
6
15
  const timeoutId = dntShim.setTimeout(() => {
7
16
  abortSignal?.removeEventListener("abort", onAbort);
8
17
  resolve();
9
- }, ms);
18
+ }, durationMs);
10
19
  const onAbort = () => {
11
20
  clearTimeout(timeoutId);
12
21
  abortSignal?.removeEventListener("abort", onAbort);
@@ -0,0 +1,10 @@
1
+ export { MAX_TIMER_DELAY_MS } from "./constants/limits.js";
2
+ /**
3
+ * Normalize a requested delay to the portable JavaScript timer domain.
4
+ *
5
+ * Fractional milliseconds round up so a timeout never fires earlier than the
6
+ * caller requested. Negative, non-finite, and overflowing values are rejected
7
+ * instead of being silently clamped by the runtime.
8
+ */
9
+ export declare function normalizeTimerDurationMs(durationMs: number, optionName?: string): number;
10
+ //# sourceMappingURL=timer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../../../src/src/utils/timer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAClB,UAAU,SAAmB,GAC5B,MAAM,CAcR"}
@@ -0,0 +1,19 @@
1
+ import { MAX_TIMER_DELAY_MS } from "./constants/limits.js";
2
+ export { MAX_TIMER_DELAY_MS } from "./constants/limits.js";
3
+ /**
4
+ * Normalize a requested delay to the portable JavaScript timer domain.
5
+ *
6
+ * Fractional milliseconds round up so a timeout never fires earlier than the
7
+ * caller requested. Negative, non-finite, and overflowing values are rejected
8
+ * instead of being silently clamped by the runtime.
9
+ */
10
+ export function normalizeTimerDurationMs(durationMs, optionName = "Timer duration") {
11
+ if (!Number.isFinite(durationMs) || durationMs < 0) {
12
+ throw new RangeError(`${optionName} must be finite and between 0 and ${MAX_TIMER_DELAY_MS} milliseconds`);
13
+ }
14
+ const normalized = Math.ceil(durationMs);
15
+ if (normalized > MAX_TIMER_DELAY_MS) {
16
+ throw new RangeError(`${optionName} must be finite and between 0 and ${MAX_TIMER_DELAY_MS} milliseconds`);
17
+ }
18
+ return normalized === 0 ? 0 : normalized;
19
+ }
@@ -1,3 +1,3 @@
1
1
  /** Shared version value. */
2
- export declare const VERSION = "0.1.1190";
2
+ export declare const VERSION = "0.1.1192";
3
3
  //# sourceMappingURL=version-constant.d.ts.map
@@ -1,4 +1,4 @@
1
1
  // Keep in sync with deno.json version.
2
2
  // scripts/release.ts updates this constant during releases.
3
3
  /** Shared version value. */
4
- export const VERSION = "0.1.1190";
4
+ export const VERSION = "0.1.1192";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veryfront/ext-content-mdx",
3
- "version": "0.1.1190",
3
+ "version": "0.1.1192",
4
4
  "description": "Veryfront first-party extension package for ext-content-mdx",
5
5
  "keywords": [
6
6
  "veryfront",
@@ -67,7 +67,7 @@
67
67
  "vfile": "6.0.3"
68
68
  },
69
69
  "peerDependencies": {
70
- "veryfront": "^0.1.1190"
70
+ "veryfront": "^0.1.1192"
71
71
  },
72
72
  "type": "module",
73
73
  "types": "./esm/extensions/ext-content-mdx/src/index.d.ts",