@pawells/typescript-common 1.0.1 → 1.1.0

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 (78) hide show
  1. package/README.md +177 -2
  2. package/build/array/assert.d.ts +115 -0
  3. package/build/array/assert.d.ts.map +1 -0
  4. package/build/array/assert.js +182 -0
  5. package/build/array/assert.js.map +1 -0
  6. package/build/array/index.d.ts +1 -0
  7. package/build/array/index.d.ts.map +1 -1
  8. package/build/array/index.js +1 -0
  9. package/build/array/index.js.map +1 -1
  10. package/build/asserts/errors.d.ts +45 -0
  11. package/build/asserts/errors.d.ts.map +1 -0
  12. package/build/asserts/errors.js +65 -0
  13. package/build/asserts/errors.js.map +1 -0
  14. package/build/asserts/generic.d.ts +432 -0
  15. package/build/asserts/generic.d.ts.map +1 -0
  16. package/build/asserts/generic.js +539 -0
  17. package/build/asserts/generic.js.map +1 -0
  18. package/build/asserts/index.d.ts +41 -0
  19. package/build/asserts/index.d.ts.map +1 -0
  20. package/build/asserts/index.js +41 -0
  21. package/build/asserts/index.js.map +1 -0
  22. package/build/asserts/internal-utils.d.ts +53 -0
  23. package/build/asserts/internal-utils.d.ts.map +1 -0
  24. package/build/asserts/internal-utils.js +108 -0
  25. package/build/asserts/internal-utils.js.map +1 -0
  26. package/build/asserts/object.d.ts +138 -0
  27. package/build/asserts/object.d.ts.map +1 -0
  28. package/build/asserts/object.js +204 -0
  29. package/build/asserts/object.js.map +1 -0
  30. package/build/asserts/string.d.ts +100 -0
  31. package/build/asserts/string.d.ts.map +1 -0
  32. package/build/asserts/string.js +185 -0
  33. package/build/asserts/string.js.map +1 -0
  34. package/build/asserts/types.d.ts +180 -0
  35. package/build/asserts/types.d.ts.map +1 -0
  36. package/build/asserts/types.js +2 -0
  37. package/build/asserts/types.js.map +1 -0
  38. package/build/asserts/utils.d.ts +92 -0
  39. package/build/asserts/utils.d.ts.map +1 -0
  40. package/build/asserts/utils.js +103 -0
  41. package/build/asserts/utils.js.map +1 -0
  42. package/build/boolean/assert.d.ts +66 -0
  43. package/build/boolean/assert.d.ts.map +1 -0
  44. package/build/boolean/assert.js +76 -0
  45. package/build/boolean/assert.js.map +1 -0
  46. package/build/boolean/index.d.ts +9 -0
  47. package/build/boolean/index.d.ts.map +1 -0
  48. package/build/boolean/index.js +9 -0
  49. package/build/boolean/index.js.map +1 -0
  50. package/build/index.d.ts +4 -0
  51. package/build/index.d.ts.map +1 -1
  52. package/build/index.js +12 -0
  53. package/build/index.js.map +1 -1
  54. package/build/number/assert.d.ts +154 -0
  55. package/build/number/assert.d.ts.map +1 -0
  56. package/build/number/assert.js +153 -0
  57. package/build/number/assert.js.map +1 -0
  58. package/build/number/index.d.ts +9 -0
  59. package/build/number/index.d.ts.map +1 -0
  60. package/build/number/index.js +9 -0
  61. package/build/number/index.js.map +1 -0
  62. package/build/object/assert.d.ts +138 -0
  63. package/build/object/assert.d.ts.map +1 -0
  64. package/build/object/assert.js +204 -0
  65. package/build/object/assert.js.map +1 -0
  66. package/build/object/index.d.ts +1 -0
  67. package/build/object/index.d.ts.map +1 -1
  68. package/build/object/index.js +1 -0
  69. package/build/object/index.js.map +1 -1
  70. package/build/string/assert.d.ts +100 -0
  71. package/build/string/assert.d.ts.map +1 -0
  72. package/build/string/assert.js +185 -0
  73. package/build/string/assert.js.map +1 -0
  74. package/build/string/index.d.ts +1 -0
  75. package/build/string/index.d.ts.map +1 -1
  76. package/build/string/index.js +1 -0
  77. package/build/string/index.js.map +1 -1
  78. package/package.json +1 -1
@@ -0,0 +1,432 @@
1
+ import type { IAssertException, TGuard, TValidationPredicate } from './types.js';
2
+ /**
3
+ * Type alias for constructor functions.
4
+ * Represents any class constructor that can be instantiated.
5
+ */
6
+ export type TConstructorFunction<T = any> = new (...args: any[]) => T;
7
+ /**
8
+ * Error thrown when a value is unexpectedly null or undefined.
9
+ *
10
+ * @example
11
+ * throw new NotNullError('Value must not be null or undefined');
12
+ */
13
+ export declare class NullError extends Error {
14
+ constructor(message?: string);
15
+ }
16
+ /**
17
+ * Error thrown when a value is unexpectedly null or undefined.
18
+ *
19
+ * @example
20
+ * throw new NotNullError('Value must not be null or undefined');
21
+ */
22
+ export declare class NotNullError extends Error {
23
+ constructor(message?: string);
24
+ }
25
+ /**
26
+ * Error thrown when a custom predicate assertion fails.
27
+ *
28
+ * @example
29
+ * throw new PredicateError('Predicate assertion failed');
30
+ */
31
+ export declare class PredicateError extends Error {
32
+ constructor(message?: string);
33
+ }
34
+ /**
35
+ * Error thrown when a value does not conform to a user-supplied type guard.
36
+ *
37
+ * @example
38
+ * throw new TypeGuardError('Value does not conform to the required type');
39
+ */
40
+ export declare class TypeGuardError extends Error {
41
+ constructor(message?: string);
42
+ }
43
+ /**
44
+ * Error thrown when a value is not an instance of the expected constructor.
45
+ *
46
+ * @example
47
+ * throw new InstanceOfError('Value is not an instance of the expected type');
48
+ */
49
+ export declare class InstanceOfError extends Error {
50
+ constructor(message?: string);
51
+ }
52
+ /**
53
+ * Error thrown when a value is not a function.
54
+ *
55
+ * @example
56
+ * throw new FunctionError('Value is not a function');
57
+ */
58
+ export declare class FunctionError extends Error {
59
+ constructor(message?: string);
60
+ }
61
+ /**
62
+ * Error thrown when a value is not a symbol.
63
+ *
64
+ * @example
65
+ * throw new SymbolError('Value is not a symbol');
66
+ */
67
+ export declare class SymbolError extends Error {
68
+ constructor(message?: string);
69
+ }
70
+ /**
71
+ * Error thrown when a class does not extend the expected base class.
72
+ *
73
+ * @example
74
+ * throw new ExtendsError('Class does not extend the expected base class');
75
+ */
76
+ export declare class ExtendsError extends Error {
77
+ constructor(message?: string);
78
+ }
79
+ /**
80
+ * Asserts that a value equals an expected value using deep equality comparison.
81
+ *
82
+ * This function performs a comprehensive deep equality check between the provided value and
83
+ * the expected value using ObjectUtils.Equals. The comparison algorithm handles:
84
+ * - Primitive values (numbers, strings, booleans, null, undefined)
85
+ * - Complex nested objects with multiple levels of nesting
86
+ * - Arrays with elements in the same order
87
+ * - Mixed data structures combining objects and arrays
88
+ * - Special values like NaN, Infinity, and -0
89
+ *
90
+ * The deep comparison ensures that all nested properties and array elements are
91
+ * recursively compared, making it suitable for complex data structure validation
92
+ * in testing scenarios and runtime assertions.
93
+ *
94
+ * @template T - The type of values being compared (both value and expected must be of same type)
95
+ * @param value - The actual value to compare against the expected value
96
+ * @param expected - The expected value that the actual value should equal
97
+ * @param exception - Configuration object for custom error handling and messaging.
98
+ * Allows customization of error type, message, and additional metadata
99
+ * @throws {PropertyError} When values are not deeply equal, with descriptive error message
100
+ * @throws {TError} When custom exception type is specified and values don't match
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * // Primitive value comparisons
105
+ * AssertEquals(5, 5); // ✓ Valid (numbers)
106
+ * AssertEquals("hello", "hello"); // ✓ Valid (strings)
107
+ * AssertEquals(true, true); // ✓ Valid (booleans)
108
+ *
109
+ * // Array comparisons (order matters)
110
+ * AssertEquals([1, 2, 3], [1, 2, 3]); // ✓ Valid (same elements, same order)
111
+ * AssertEquals([1, 2], [2, 1]); // ✗ Throws (different order)
112
+ * AssertEquals([], []); // ✓ Valid (empty arrays)
113
+ *
114
+ * // Object comparisons (deep equality)
115
+ * AssertEquals({a: 1, b: 2}, {a: 1, b: 2}); // ✓ Valid (same properties)
116
+ * AssertEquals({a: {b: 1}}, {a: {b: 1}}); // ✓ Valid (nested objects)
117
+ * AssertEquals({}, {}); // ✓ Valid (empty objects)
118
+ *
119
+ * // Complex nested structures
120
+ * const obj1 = {users: [{id: 1, name: "John"}], count: 1};
121
+ * const obj2 = {users: [{id: 1, name: "John"}], count: 1};
122
+ * AssertEquals(obj1, obj2); // ✓ Valid (deeply equal)
123
+ *
124
+ * // Failure cases
125
+ * AssertEquals(5, 10); // ✗ Throws PropertyError
126
+ * AssertEquals({a: 1}, {a: 2}); // ✗ Throws PropertyError
127
+ * AssertEquals([1, 2], [1, 2, 3]); // ✗ Throws PropertyError
128
+ *
129
+ * // Custom exception handling
130
+ * AssertEquals(1, 2, {
131
+ * message: "Values should be equal"
132
+ * }); // ✗ Throws with custom message
133
+ * ```
134
+ */
135
+ export declare function AssertEquals<T>(value: T, expected: T, exception?: IAssertException): void;
136
+ /**
137
+ * Asserts that a value does not equal an expected value using deep equality comparison.
138
+ *
139
+ * This function performs a comprehensive deep equality check and ensures the values are NOT equal.
140
+ * It uses the same sophisticated comparison logic as AssertEquals but with inverted logic,
141
+ * making it perfect for validating that values have changed, are distinct from unwanted values,
142
+ * or ensuring that mutations have occurred successfully.
143
+ *
144
+ * The deep comparison algorithm checks:
145
+ * - All primitive values for strict inequality
146
+ * - Nested object properties at all levels
147
+ * - Array elements and their ordering
148
+ * - Mixed data structures with complex nesting
149
+ * - Special numeric values (NaN, Infinity, -0)
150
+ *
151
+ * This function is particularly useful in testing scenarios where you need to verify
152
+ * that data transformations, mutations, or state changes have actually occurred.
153
+ *
154
+ * @template T - The type of values being compared (both value and expected must be of same type)
155
+ * @param value - The actual value to compare against the unwanted value
156
+ * @param expected - The value that should NOT be equal to the actual value
157
+ * @param exception - Configuration object for custom error handling and messaging.
158
+ * Defaults to empty object if not provided, allowing for optional customization
159
+ * @throws {PropertyError} When values are deeply equal (and shouldn't be), with descriptive error message
160
+ * @throws {TError} When custom exception type is specified and values are unexpectedly equal
161
+ *
162
+ * @example
163
+ * ```typescript
164
+ * // Primitive value comparisons (should be different)
165
+ * AssertNotEquals(5, 10); // ✓ Valid (different numbers)
166
+ * AssertNotEquals("hello", "world"); // ✓ Valid (different strings)
167
+ * AssertNotEquals(true, false); // ✓ Valid (different booleans)
168
+ *
169
+ * // Array comparisons (should be different)
170
+ * AssertNotEquals([1, 2], [1, 3]); // ✓ Valid (different elements)
171
+ * AssertNotEquals([1, 2], [2, 1]); // ✓ Valid (different order)
172
+ * AssertNotEquals([1], [1, 2]); // ✓ Valid (different lengths)
173
+ *
174
+ * // Object comparisons (should be different)
175
+ * AssertNotEquals({a: 1}, {a: 2}); // ✓ Valid (different property values)
176
+ * AssertNotEquals({a: 1}, {b: 1}); // ✓ Valid (different property names)
177
+ * AssertNotEquals({a: {b: 1}}, {a: {b: 2}}); // ✓ Valid (different nested values)
178
+ *
179
+ * // Testing mutations and transformations
180
+ * const original = {users: [{id: 1, name: "John"}]};
181
+ * const modified = {users: [{id: 1, name: "Jane"}]};
182
+ * AssertNotEquals(original, modified); // ✓ Valid (data was modified)
183
+ *
184
+ * // Verifying state changes
185
+ * let counter = 0;
186
+ * const initialState = counter;
187
+ * counter++;
188
+ * AssertNotEquals(counter, initialState); // ✓ Valid (state changed)
189
+ *
190
+ * // Failure cases (when values are unexpectedly equal)
191
+ * AssertNotEquals(5, 5); // ✗ Throws PropertyError
192
+ * AssertNotEquals([1, 2], [1, 2]); // ✗ Throws PropertyError
193
+ * AssertNotEquals({a: 1}, {a: 1}); // ✗ Throws PropertyError
194
+ *
195
+ * // Custom exception handling
196
+ * AssertNotEquals(1, 1, {
197
+ * message: "Values should be different"
198
+ * }); // ✗ Throws with custom message
199
+ * ```
200
+ */
201
+ export declare function AssertNotEquals<T>(value: T, expected: T, exception?: IAssertException): void;
202
+ /**
203
+ * Asserts that a value is null or undefined (nullish assertion).
204
+ *
205
+ * This method validates that the provided value is either null or undefined,
206
+ * effectively performing a nullish assertion. This is useful for validating
207
+ * that optional values are properly unset, that cleanup operations succeeded,
208
+ * or that certain conditions result in null/undefined states.
209
+ *
210
+ * @template T - The type of the value being validated
211
+ * @param value - The value to validate as null or undefined
212
+ * @param exception - Optional exception configuration for custom error handling
213
+ * @throws {NullError} When value is not null or undefined
214
+ *
215
+ * @example
216
+ * ```typescript
217
+ * AssertNull(null); // ✓ Valid
218
+ * AssertNull(undefined); // ✓ Valid
219
+ * AssertNull("hello"); // ✗ Throws NullError
220
+ * AssertNull(0); // ✗ Throws NullError
221
+ * AssertNull(false); // ✗ Throws NullError
222
+ * AssertNull(""); // ✗ Throws NullError
223
+ *
224
+ * // Validation of cleanup operations
225
+ * function cleanup(resource: Resource | null) {
226
+ * resource?.dispose();
227
+ * resource = null;
228
+ * AssertNull(resource); // Verify cleanup succeeded
229
+ * }
230
+ * ```
231
+ */
232
+ export declare function AssertNull<T>(value: T, exception?: IAssertException): void;
233
+ /**
234
+ * Asserts that a value is not null or undefined (non-nullish assertion).
235
+ *
236
+ * This method validates that the provided value is neither null nor undefined,
237
+ * effectively performing a non-nullish assertion. This is particularly useful
238
+ * for validating function parameters, API responses, and optional values that
239
+ * should have been initialized. After this assertion, TypeScript will narrow
240
+ * the type to exclude null and undefined.
241
+ *
242
+ * @template T - The type of the value being validated
243
+ * @template TError - Custom error type to throw on failure
244
+ * @param value - The value to validate for non-null/undefined
245
+ * @param exception - Optional exception configuration for custom error handling
246
+ * @throws {NotNullError} When value is null or undefined
247
+ *
248
+ * @example
249
+ * ```typescript
250
+ * AssertNotNull("hello"); // ✓ Valid
251
+ * AssertNotNull(0); // ✓ Valid (0 is not null/undefined)
252
+ * AssertNotNull(false); // ✓ Valid (false is not null/undefined)
253
+ * AssertNotNull(""); // ✓ Valid (empty string is not null/undefined)
254
+ * AssertNotNull(null); // ✗ Throws NotNullError
255
+ * AssertNotNull(undefined); // ✗ Throws NotNullError
256
+ *
257
+ * // Type narrowing example
258
+ * function process(value: string | null | undefined) {
259
+ * AssertNotNull(value);
260
+ * // value is now typed as string (null/undefined excluded)
261
+ * return value.toUpperCase();
262
+ * }
263
+ * ```
264
+ */
265
+ export declare function AssertNotNull<T>(value: T, exception?: IAssertException): asserts value is T;
266
+ /**
267
+ * Generic assertion method that validates a value using a custom predicate function.
268
+ *
269
+ * This method provides a flexible way to perform custom validations using any
270
+ * predicate function that returns a boolean. It's the most generic assertion
271
+ * in the library and can be used to implement complex validation logic that
272
+ * doesn't fit into other specific assertion methods.
273
+ *
274
+ * @template T - The type of value being validated
275
+ * @template TError - Custom error type to throw on failure
276
+ * @param value - The value to validate
277
+ * @param predicate - A TValidationPredicate function that returns true if the value is valid
278
+ * @param exception - Optional exception configuration for custom error handling
279
+ * @throws {PredicateError} When predicate returns false
280
+ *
281
+ * @example
282
+ * ```typescript
283
+ * // Simple numeric validation
284
+ * AssertPredicate(42, (x) => x > 0 && x < 100); // ✓ Valid
285
+ *
286
+ * // String validation
287
+ * AssertPredicate("hello", (s) => s.length > 3); // ✓ Valid
288
+ * AssertPredicate("hi", (s) => s.length > 3); // ✗ Throws PredicateError
289
+ *
290
+ * // Complex object validation
291
+ * AssertPredicate(user, (u) =>
292
+ * typeof u.name === 'string' &&
293
+ * u.age >= 0 &&
294
+ * u.email.includes('@')
295
+ * );
296
+ *
297
+ * // Array validation
298
+ * AssertPredicate([1, 2, 3], (arr) =>
299
+ * arr.every(n => typeof n === 'number')
300
+ * );
301
+ * ```
302
+ */
303
+ export declare function AssertPredicate<T>(value: T, predicate: TValidationPredicate<T>, exception?: IAssertException): void;
304
+ /**
305
+ * Asserts that a value matches a specific type using a type guard function.
306
+ *
307
+ * This method validates that the provided value passes a custom type guard,
308
+ * enabling complex type validations beyond primitive type checks. Type guards
309
+ * are functions that return `value is T` and provide runtime type checking
310
+ * with TypeScript type narrowing. This is particularly useful for validating
311
+ * complex object structures and custom types.
312
+ *
313
+ * @template T - The target type to validate for
314
+ * @template TError - Custom error type to throw on failure
315
+ * @param value - The value to validate
316
+ * @param typeGuard - A TGuard function that returns `value is T`
317
+ * @param exception - Optional exception configuration for custom error handling
318
+ * @throws {TypeGuardError} When value does not pass the type guard
319
+ *
320
+ * @example
321
+ * ```typescript
322
+ * // Define interfaces and type guards
323
+ * interface User { name: string; age: number; }
324
+ * const isUser = (obj: unknown): obj is User =>
325
+ * typeof obj === 'object' && obj !== null &&
326
+ * 'name' in obj && typeof obj.name === 'string' &&
327
+ * 'age' in obj && typeof obj.age === 'number';
328
+ *
329
+ * // Usage
330
+ * AssertIsType(data, isUser);
331
+ * // data is now typed as User
332
+ *
333
+ * // Array of specific type
334
+ * const isStringArray = (arr: unknown): arr is string[] =>
335
+ * Array.isArray(arr) && arr.every(item => typeof item === 'string');
336
+ *
337
+ * AssertIsType(someArray, isStringArray);
338
+ * // someArray is now typed as string[]
339
+ * ```
340
+ */
341
+ export declare function AssertIsType<T>(value: unknown, typeGuard: TGuard<T>, exception?: IAssertException): asserts value is T;
342
+ /**
343
+ * Asserts that a value is an instance of a specific class or constructor function.
344
+ *
345
+ * This method validates that the provided value is an instance of the specified
346
+ * constructor function using the instanceof operator. This is useful for validating
347
+ * object instances, built-in types like Date and Error, and custom class instances.
348
+ * After this assertion, the value is properly typed as an instance of the constructor.
349
+ *
350
+ * @template T - The instance type to validate for
351
+ * @template TError - Custom error type to throw on failure
352
+ * @param value - The value to validate as an instance
353
+ * @param constructor - The constructor function to check against
354
+ * @param exception - Optional exception configuration for custom error handling
355
+ * @throws {InstanceOfError} When value is not an instance of the constructor
356
+ *
357
+ * @example
358
+ * ```typescript
359
+ * // Built-in types
360
+ * AssertInstanceOf(new Date(), Date); // ✓ Valid
361
+ * AssertInstanceOf(new Error(), Error); // ✓ Valid
362
+ * AssertInstanceOf([], Array); // ✓ Valid
363
+ * AssertInstanceOf(/regex/, RegExp); // ✓ Valid
364
+ *
365
+ * // Custom classes
366
+ * class Person { constructor(public name: string) {} }
367
+ * const person = new Person("John");
368
+ * AssertInstanceOf(person, Person); // ✓ Valid
369
+ *
370
+ * // Invalid cases
371
+ * AssertInstanceOf("string", Date); // ✗ Throws InstanceOfError
372
+ * AssertInstanceOf(123, Error); // ✗ Throws InstanceOfError
373
+ * AssertInstanceOf({}, Array); // ✗ Throws InstanceOfError
374
+ * ```
375
+ */
376
+ export declare function AssertInstanceOf<T>(value: unknown, constructor: TConstructorFunction<T>, exception?: IAssertException): asserts value is T;
377
+ /**
378
+ * Asserts that a value is a function.
379
+ *
380
+ * This method validates that the provided value is a function (typeof === 'function').
381
+ * Useful for runtime validation of callbacks, API hooks, and dynamic invocations.
382
+ * Throws FunctionError or custom error if assertion fails.
383
+ *
384
+ * @param value - The value to validate as a function
385
+ * @param exception - Optional exception configuration for custom error handling
386
+ * @throws {FunctionError} When value is not a function
387
+ *
388
+ * @example
389
+ * AssertFunction(() => {}); // ✓ Valid
390
+ * AssertFunction(function() {}); // ✓ Valid
391
+ * AssertFunction(123); // ✗ Throws FunctionError
392
+ * AssertFunction(null); // ✗ Throws FunctionError
393
+ */
394
+ export declare function AssertFunction(value: unknown, exception?: IAssertException): asserts value is (...args: any[]) => any;
395
+ /**
396
+ * Asserts that a value is a symbol.
397
+ *
398
+ * This method validates that the provided value is a symbol (typeof === 'symbol').
399
+ * Useful for runtime validation of unique keys, metadata, and advanced API contracts.
400
+ * Throws SymbolError or custom error if assertion fails.
401
+ *
402
+ * @param value - The value to validate as a symbol
403
+ * @param exception - Optional exception configuration for custom error handling
404
+ * @throws {SymbolError} When value is not a symbol
405
+ *
406
+ * @example
407
+ * AssertSymbol(Symbol('foo')); // ✓ Valid
408
+ * AssertSymbol(Symbol.iterator); // ✓ Valid
409
+ * AssertSymbol('not-a-symbol'); // ✗ Throws SymbolError
410
+ * AssertSymbol(123); // ✗ Throws SymbolError
411
+ */
412
+ export declare function AssertSymbol(value: unknown, exception?: IAssertException): asserts value is symbol;
413
+ /**
414
+ * Asserts that a class extends another class.
415
+ *
416
+ * This method validates that the provided derived class extends the specified base class.
417
+ * Useful for runtime validation of inheritance relationships in TypeScript and JavaScript.
418
+ * Throws ExtendsError or custom error if assertion fails.
419
+ *
420
+ * @param derived - The class to validate as extending base
421
+ * @param base - The base class to check against
422
+ * @param exception - Optional exception configuration for custom error handling
423
+ * @throws {ExtendsError} When derived does not extend base
424
+ *
425
+ * @example
426
+ * class Base {}
427
+ * class Derived extends Base {}
428
+ * AssertExtends(Derived, Base); // ✓ Valid
429
+ * AssertExtends(Base, Derived); // ✗ Throws ExtendsError
430
+ */
431
+ export declare function AssertExtends(derived: abstract new (...args: any[]) => any, base: abstract new (...args: any[]) => any, exception?: IAssertException): void;
432
+ //# sourceMappingURL=generic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../src/asserts/generic.ts"],"names":[],"mappings":"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"}