@encodeagent/platform-helper-util 1.2508.1241505
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/README.md +121 -0
- package/dist/__tests__/core.test.d.ts +5 -0
- package/dist/__tests__/core.test.d.ts.map +1 -0
- package/dist/__tests__/core.test.js +128 -0
- package/dist/__tests__/core.test.js.map +1 -0
- package/dist/__tests__/shortid.test.d.ts +5 -0
- package/dist/__tests__/shortid.test.d.ts.map +1 -0
- package/dist/__tests__/shortid.test.js +72 -0
- package/dist/__tests__/shortid.test.js.map +1 -0
- package/dist/__tests__/slug.test.d.ts +5 -0
- package/dist/__tests__/slug.test.d.ts.map +1 -0
- package/dist/__tests__/slug.test.js +31 -0
- package/dist/__tests__/slug.test.js.map +1 -0
- package/dist/__tests__/token.test.d.ts +5 -0
- package/dist/__tests__/token.test.d.ts.map +1 -0
- package/dist/__tests__/token.test.js +49 -0
- package/dist/__tests__/token.test.js.map +1 -0
- package/dist/__tests__/uuid.test.d.ts +5 -0
- package/dist/__tests__/uuid.test.d.ts.map +1 -0
- package/dist/__tests__/uuid.test.js +42 -0
- package/dist/__tests__/uuid.test.js.map +1 -0
- package/dist/__tests__/value-of-object.test.d.ts +5 -0
- package/dist/__tests__/value-of-object.test.d.ts.map +1 -0
- package/dist/__tests__/value-of-object.test.js +49 -0
- package/dist/__tests__/value-of-object.test.js.map +1 -0
- package/dist/ai/llm.d.ts +90 -0
- package/dist/ai/llm.d.ts.map +1 -0
- package/dist/ai/llm.js +524 -0
- package/dist/ai/llm.js.map +1 -0
- package/dist/ai/model.d.ts +14 -0
- package/dist/ai/model.d.ts.map +1 -0
- package/dist/ai/model.js +120 -0
- package/dist/ai/model.js.map +1 -0
- package/dist/ai/types.d.ts +85 -0
- package/dist/ai/types.d.ts.map +1 -0
- package/dist/ai/types.js +15 -0
- package/dist/ai/types.js.map +1 -0
- package/dist/ai/util.d.ts +28 -0
- package/dist/ai/util.d.ts.map +1 -0
- package/dist/ai/util.js +43 -0
- package/dist/ai/util.js.map +1 -0
- package/dist/auth.d.ts +34 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +568 -0
- package/dist/auth.js.map +1 -0
- package/dist/colors.d.ts +79 -0
- package/dist/colors.d.ts.map +1 -0
- package/dist/colors.js +492 -0
- package/dist/colors.js.map +1 -0
- package/dist/constants.d.ts +86 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +2578 -0
- package/dist/constants.js.map +1 -0
- package/dist/core.d.ts +337 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +1165 -0
- package/dist/core.js.map +1 -0
- package/dist/cost.d.ts +35 -0
- package/dist/cost.d.ts.map +1 -0
- package/dist/cost.js +143 -0
- package/dist/cost.js.map +1 -0
- package/dist/file.d.ts +55 -0
- package/dist/file.d.ts.map +1 -0
- package/dist/file.js +273 -0
- package/dist/file.js.map +1 -0
- package/dist/html.d.ts +44 -0
- package/dist/html.d.ts.map +1 -0
- package/dist/html.js +420 -0
- package/dist/html.js.map +1 -0
- package/dist/index.d.ts +53 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +313 -0
- package/dist/index.js.map +1 -0
- package/dist/markdown.d.ts +20 -0
- package/dist/markdown.d.ts.map +1 -0
- package/dist/markdown.js +38 -0
- package/dist/markdown.js.map +1 -0
- package/dist/metadata.d.ts +39 -0
- package/dist/metadata.d.ts.map +1 -0
- package/dist/metadata.js +110 -0
- package/dist/metadata.js.map +1 -0
- package/dist/record.d.ts +67 -0
- package/dist/record.d.ts.map +1 -0
- package/dist/record.js +404 -0
- package/dist/record.js.map +1 -0
- package/dist/shortid.d.ts +42 -0
- package/dist/shortid.d.ts.map +1 -0
- package/dist/shortid.js +42 -0
- package/dist/shortid.js.map +1 -0
- package/dist/slug.d.ts +24 -0
- package/dist/slug.d.ts.map +1 -0
- package/dist/slug.js +43 -0
- package/dist/slug.js.map +1 -0
- package/dist/token.d.ts +34 -0
- package/dist/token.d.ts.map +1 -0
- package/dist/token.js +20 -0
- package/dist/token.js.map +1 -0
- package/dist/tree.d.ts +27 -0
- package/dist/tree.d.ts.map +1 -0
- package/dist/tree.js +193 -0
- package/dist/tree.js.map +1 -0
- package/dist/types.d.ts +270 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +29 -0
- package/dist/types.js.map +1 -0
- package/dist/uuid.d.ts +25 -0
- package/dist/uuid.d.ts.map +1 -0
- package/dist/uuid.js +32 -0
- package/dist/uuid.js.map +1 -0
- package/dist/value-of-object.d.ts +25 -0
- package/dist/value-of-object.d.ts.map +1 -0
- package/dist/value-of-object.js +123 -0
- package/dist/value-of-object.js.map +1 -0
- package/dist/web-content.d.ts +54 -0
- package/dist/web-content.d.ts.map +1 -0
- package/dist/web-content.js +268 -0
- package/dist/web-content.js.map +1 -0
- package/dist/web.d.ts +36 -0
- package/dist/web.d.ts.map +1 -0
- package/dist/web.js +162 -0
- package/dist/web.js.map +1 -0
- package/package.json +68 -0
package/README.md
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# @encodeagent/util
|
|
2
|
+
|
|
3
|
+
A TypeScript utility library for the EncodeAgent platform, providing common helper functions for string manipulation, array operations, object utilities, and validation.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @encodeagent/util
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
### String Utilities
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import { capitalize, toCamelCase, toKebabCase, truncate, normalizeWhitespace, isBlank } from '@encodeagent/util';
|
|
17
|
+
|
|
18
|
+
capitalize('hello world'); // 'Hello world'
|
|
19
|
+
toCamelCase('hello world'); // 'helloWorld'
|
|
20
|
+
toKebabCase('Hello World'); // 'hello-world'
|
|
21
|
+
truncate('This is a long string', 10); // 'This is...'
|
|
22
|
+
normalizeWhitespace(' hello world '); // 'hello world'
|
|
23
|
+
isBlank(' '); // true
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Array Utilities
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
import { unique, chunk, flatten, groupBy, intersection, difference, partition } from '@encodeagent/util';
|
|
30
|
+
|
|
31
|
+
unique([1, 2, 2, 3]); // [1, 2, 3]
|
|
32
|
+
chunk([1, 2, 3, 4, 5], 2); // [[1, 2], [3, 4], [5]]
|
|
33
|
+
flatten([1, [2, 3], 4]); // [1, 2, 3, 4]
|
|
34
|
+
groupBy([{type: 'a', val: 1}, {type: 'b', val: 2}], item => item.type); // {a: [...], b: [...]}
|
|
35
|
+
intersection([1, 2, 3], [2, 3, 4]); // [2, 3]
|
|
36
|
+
difference([1, 2, 3], [2, 3, 4]); // [1]
|
|
37
|
+
partition([1, 2, 3, 4], x => x % 2 === 0); // [[2, 4], [1, 3]]
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Object Utilities
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
import { deepClone, deepMerge, get, set, omit, pick } from '@encodeagent/util';
|
|
44
|
+
|
|
45
|
+
const obj = { a: { b: { c: 1 } } };
|
|
46
|
+
const cloned = deepClone(obj);
|
|
47
|
+
|
|
48
|
+
const merged = deepMerge({ a: 1, b: 2 }, { b: 3, c: 4 }); // { a: 1, b: 3, c: 4 }
|
|
49
|
+
|
|
50
|
+
get(obj, 'a.b.c'); // 1
|
|
51
|
+
set(obj, 'a.b.d', 2); // obj.a.b.d = 2
|
|
52
|
+
|
|
53
|
+
omit({ a: 1, b: 2, c: 3 }, ['b']); // { a: 1, c: 3 }
|
|
54
|
+
pick({ a: 1, b: 2, c: 3 }, ['a', 'c']); // { a: 1, c: 3 }
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Validation
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
import { isValidEmail, isValidUrl, validate, required, minLength, maxLength } from '@encodeagent/util';
|
|
61
|
+
|
|
62
|
+
isValidEmail('test@example.com'); // true
|
|
63
|
+
isValidUrl('https://example.com'); // true
|
|
64
|
+
|
|
65
|
+
const result = validate('test', [
|
|
66
|
+
required(),
|
|
67
|
+
minLength(3),
|
|
68
|
+
maxLength(10)
|
|
69
|
+
]);
|
|
70
|
+
// { isValid: true, errors: [] }
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Types
|
|
74
|
+
|
|
75
|
+
The package also exports useful TypeScript types:
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
import { Primitive, DeepPartial, NonEmptyArray, ValidationResult, Predicate } from '@encodeagent/util';
|
|
79
|
+
|
|
80
|
+
type MyPartial = DeepPartial<{ a: { b: string } }>; // { a?: { b?: string } }
|
|
81
|
+
type MyArray = NonEmptyArray<string>; // [string, ...string[]]
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Development
|
|
85
|
+
|
|
86
|
+
### Setup
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
npm install
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Build
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
npm run build
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Test
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
npm test
|
|
102
|
+
npm run test:watch
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Lint
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
npm run lint
|
|
109
|
+
npm run lint:fix
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Publishing
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
npm run prepublishOnly
|
|
116
|
+
npm publish
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## License
|
|
120
|
+
|
|
121
|
+
MIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/core.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Tests for core utility functions
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const core_1 = require("../core");
|
|
7
|
+
describe('Core Utilities', () => {
|
|
8
|
+
describe('getWindow', () => {
|
|
9
|
+
it('should return an object', () => {
|
|
10
|
+
const result = (0, core_1.getWindow)();
|
|
11
|
+
expect(typeof result).toBe('object');
|
|
12
|
+
expect(result).not.toBeNull();
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
describe('getProcess', () => {
|
|
16
|
+
it('should return an object', () => {
|
|
17
|
+
const result = (0, core_1.getProcess)();
|
|
18
|
+
expect(typeof result).toBe('object');
|
|
19
|
+
expect(result).not.toBeNull();
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
describe('getGlobalObject', () => {
|
|
23
|
+
it('should return an object', () => {
|
|
24
|
+
const result = (0, core_1.getGlobalObject)();
|
|
25
|
+
expect(typeof result).toBe('object');
|
|
26
|
+
expect(result).not.toBeNull();
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
describe('getGlobalEnv', () => {
|
|
30
|
+
it('should return environment variables', () => {
|
|
31
|
+
const result = (0, core_1.getGlobalEnv)();
|
|
32
|
+
// Result can be undefined in test environment
|
|
33
|
+
expect(result === undefined || typeof result === 'object').toBe(true);
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
describe('appTrackIsOn', () => {
|
|
37
|
+
it('should return a boolean', () => {
|
|
38
|
+
const result = (0, core_1.appTrackIsOn)();
|
|
39
|
+
expect(typeof result).toBe('boolean');
|
|
40
|
+
});
|
|
41
|
+
it('should return false by default', () => {
|
|
42
|
+
const result = (0, core_1.appTrackIsOn)();
|
|
43
|
+
expect(result).toBe(false);
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
describe('setAppTrack', () => {
|
|
47
|
+
it('should set app tracking flag', () => {
|
|
48
|
+
(0, core_1.setAppTrack)(true);
|
|
49
|
+
expect((0, core_1.appTrackIsOn)()).toBe(true);
|
|
50
|
+
(0, core_1.setAppTrack)(false);
|
|
51
|
+
expect((0, core_1.appTrackIsOn)()).toBe(false);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
describe('libTrackIsOn', () => {
|
|
55
|
+
it('should return a boolean', () => {
|
|
56
|
+
const result = (0, core_1.libTrackIsOn)();
|
|
57
|
+
expect(typeof result).toBe('boolean');
|
|
58
|
+
});
|
|
59
|
+
it('should return false by default', () => {
|
|
60
|
+
const result = (0, core_1.libTrackIsOn)();
|
|
61
|
+
expect(result).toBe(false);
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
describe('setLibTrack', () => {
|
|
65
|
+
it('should set lib tracking flag', () => {
|
|
66
|
+
(0, core_1.setLibTrack)(true);
|
|
67
|
+
expect((0, core_1.libTrackIsOn)()).toBe(true);
|
|
68
|
+
(0, core_1.setLibTrack)(false);
|
|
69
|
+
expect((0, core_1.libTrackIsOn)()).toBe(false);
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
describe('getPropName', () => {
|
|
73
|
+
it('should convert string to camelCase property name', () => {
|
|
74
|
+
expect((0, core_1.getPropName)('hello world')).toBe('helloWorld');
|
|
75
|
+
expect((0, core_1.getPropName)('test-string')).toBe('testString');
|
|
76
|
+
expect((0, core_1.getPropName)('UPPER_CASE')).toBe('upperCase');
|
|
77
|
+
});
|
|
78
|
+
it('should handle special characters', () => {
|
|
79
|
+
expect((0, core_1.getPropName)('hello@world#test')).toBe('helloWorldTest');
|
|
80
|
+
expect((0, core_1.getPropName)('test multiple spaces')).toBe('testMultipleSpaces');
|
|
81
|
+
});
|
|
82
|
+
it('should throw error for empty string', () => {
|
|
83
|
+
expect(() => (0, core_1.getPropName)('')).toThrow('Input must be a non-empty string');
|
|
84
|
+
});
|
|
85
|
+
it('should throw error for invalid input', () => {
|
|
86
|
+
expect(() => (0, core_1.getPropName)('!!!')).toThrow('Input string must contain at least one alphanumeric character');
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
describe('doNothing', () => {
|
|
90
|
+
it('should return the input value unchanged', () => {
|
|
91
|
+
expect((0, core_1.doNothing)()).toBeUndefined();
|
|
92
|
+
expect((0, core_1.doNothing)(null)).toBeNull();
|
|
93
|
+
expect((0, core_1.doNothing)(42)).toBe(42);
|
|
94
|
+
expect((0, core_1.doNothing)('test')).toBe('test');
|
|
95
|
+
expect((0, core_1.doNothing)({ a: 1 })).toEqual({ a: 1 });
|
|
96
|
+
expect((0, core_1.doNothing)([1, 2, 3])).toEqual([1, 2, 3]);
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
describe('stringToColor', () => {
|
|
100
|
+
it('should use default saturation when not provided', () => {
|
|
101
|
+
const result = (0, core_1.stringToColor)('test');
|
|
102
|
+
expect(result).toMatch(/^hsl\(\d+, 50%, 50%\)$/);
|
|
103
|
+
});
|
|
104
|
+
it('should handle saturation of 0', () => {
|
|
105
|
+
const result = (0, core_1.stringToColor)('test', 0);
|
|
106
|
+
expect(result).toMatch(/^hsl\(\d+, 0%, 50%\)$/);
|
|
107
|
+
});
|
|
108
|
+
it('should return null for invalid input', () => {
|
|
109
|
+
const result = (0, core_1.stringToColor)('');
|
|
110
|
+
expect(result).toBeNull();
|
|
111
|
+
});
|
|
112
|
+
it('should generate consistent color for same input', () => {
|
|
113
|
+
const color1 = (0, core_1.stringToColor)('test', 50, 50);
|
|
114
|
+
const color2 = (0, core_1.stringToColor)('test', 50, 50);
|
|
115
|
+
expect(color1).toBe(color2);
|
|
116
|
+
});
|
|
117
|
+
it('should generate different colors for different inputs', () => {
|
|
118
|
+
const color1 = (0, core_1.stringToColor)('test1', 50, 50);
|
|
119
|
+
const color2 = (0, core_1.stringToColor)('test2', 50, 50);
|
|
120
|
+
expect(color1).not.toBe(color2);
|
|
121
|
+
});
|
|
122
|
+
it('should return HSL color string format', () => {
|
|
123
|
+
const color = (0, core_1.stringToColor)('test', 50, 50);
|
|
124
|
+
expect(color).toMatch(/^hsl\(\d+,\s*50%,\s*50%\)$/);
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
//# sourceMappingURL=core.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.test.js","sourceRoot":"","sources":["../../src/__tests__/core.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shortid.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/shortid.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Tests for ShortID generation utilities
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const shortid_1 = require("../shortid");
|
|
7
|
+
describe('ShortID Utilities', () => {
|
|
8
|
+
describe('newShortId', () => {
|
|
9
|
+
it('should generate a short ID', () => {
|
|
10
|
+
const id = (0, shortid_1.newShortId)();
|
|
11
|
+
expect(typeof id).toBe('string');
|
|
12
|
+
expect(id.length).toBeGreaterThan(0);
|
|
13
|
+
expect(id.length).toBeLessThan(20); // ShortIDs are typically shorter than 20 chars
|
|
14
|
+
});
|
|
15
|
+
it('should generate unique short IDs', () => {
|
|
16
|
+
const id1 = (0, shortid_1.newShortId)();
|
|
17
|
+
const id2 = (0, shortid_1.newShortId)();
|
|
18
|
+
expect(id1).not.toBe(id2);
|
|
19
|
+
});
|
|
20
|
+
it('should replace periods with dashes by default', () => {
|
|
21
|
+
// Generate multiple IDs to increase chance of getting one with periods
|
|
22
|
+
const ids = Array.from({ length: 50 }, () => (0, shortid_1.newShortId)());
|
|
23
|
+
ids.forEach(id => {
|
|
24
|
+
expect(id).not.toContain('.');
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
it('should keep periods when keepPeriod is true', () => {
|
|
28
|
+
// This test might be flaky since periods aren't guaranteed
|
|
29
|
+
// We'll test the logic by checking that periods aren't replaced
|
|
30
|
+
const id = (0, shortid_1.newShortId)({ keepPeriod: true });
|
|
31
|
+
expect(typeof id).toBe('string');
|
|
32
|
+
});
|
|
33
|
+
it('should replace spaces with dashes by default', () => {
|
|
34
|
+
const ids = Array.from({ length: 50 }, () => (0, shortid_1.newShortId)());
|
|
35
|
+
ids.forEach(id => {
|
|
36
|
+
expect(id).not.toContain(' ');
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
it('should keep spaces when keepSpace is true', () => {
|
|
40
|
+
const id = (0, shortid_1.newShortId)({ keepSpace: true });
|
|
41
|
+
expect(typeof id).toBe('string');
|
|
42
|
+
});
|
|
43
|
+
it('should replace pipes with dashes by default', () => {
|
|
44
|
+
const ids = Array.from({ length: 50 }, () => (0, shortid_1.newShortId)());
|
|
45
|
+
ids.forEach(id => {
|
|
46
|
+
expect(id).not.toContain('|');
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
it('should keep pipes when keepPipe is true', () => {
|
|
50
|
+
const id = (0, shortid_1.newShortId)({ keepPipe: true });
|
|
51
|
+
expect(typeof id).toBe('string');
|
|
52
|
+
});
|
|
53
|
+
it('should handle multiple settings', () => {
|
|
54
|
+
const id = (0, shortid_1.newShortId)({
|
|
55
|
+
keepPeriod: true,
|
|
56
|
+
keepSpace: true,
|
|
57
|
+
keepPipe: true
|
|
58
|
+
});
|
|
59
|
+
expect(typeof id).toBe('string');
|
|
60
|
+
expect(id.length).toBeGreaterThan(0);
|
|
61
|
+
});
|
|
62
|
+
it('should generate multiple unique short IDs', () => {
|
|
63
|
+
const ids = new Set();
|
|
64
|
+
const count = 100;
|
|
65
|
+
for (let i = 0; i < count; i++) {
|
|
66
|
+
ids.add((0, shortid_1.newShortId)());
|
|
67
|
+
}
|
|
68
|
+
expect(ids.size).toBe(count);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=shortid.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shortid.test.js","sourceRoot":"","sources":["../../src/__tests__/shortid.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slug.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/slug.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Tests for slug generation utilities
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const slug_1 = require("../slug");
|
|
7
|
+
describe('Slug Utilities', () => {
|
|
8
|
+
describe('slug', () => {
|
|
9
|
+
it('should convert string to URL-friendly slug', () => {
|
|
10
|
+
expect((0, slug_1.slug)('Hello World')).toBe('hello-world');
|
|
11
|
+
expect((0, slug_1.slug)('Test String')).toBe('test-string');
|
|
12
|
+
});
|
|
13
|
+
it('should handle special characters', () => {
|
|
14
|
+
expect((0, slug_1.slug)('Hello@World#Test')).toBe('helloworldtest');
|
|
15
|
+
expect((0, slug_1.slug)('Test & More')).toBe('test-and-more');
|
|
16
|
+
});
|
|
17
|
+
it('should handle multiple spaces', () => {
|
|
18
|
+
expect((0, slug_1.slug)('Test Multiple Spaces')).toBe('test-multiple-spaces');
|
|
19
|
+
});
|
|
20
|
+
it('should handle empty string', () => {
|
|
21
|
+
expect((0, slug_1.slug)('')).toBe('');
|
|
22
|
+
});
|
|
23
|
+
it('should handle numbers', () => {
|
|
24
|
+
expect((0, slug_1.slug)('Test 123 String')).toBe('test-123-string');
|
|
25
|
+
});
|
|
26
|
+
it('should handle unicode characters', () => {
|
|
27
|
+
expect((0, slug_1.slug)('Café & Résumé')).toBe('cafe-and-resume');
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=slug.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slug.test.js","sourceRoot":"","sources":["../../src/__tests__/slug.test.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAEH,kCAA+B;AAE/B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC5B,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QAClB,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YAClD,MAAM,CAAC,IAAA,WAAI,EAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAChD,MAAM,CAAC,IAAA,WAAI,EAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YACxC,MAAM,CAAC,IAAA,WAAI,EAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACxD,MAAM,CAAC,IAAA,WAAI,EAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACrC,MAAM,CAAC,IAAA,WAAI,EAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YAClC,MAAM,CAAC,IAAA,WAAI,EAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC7B,MAAM,CAAC,IAAA,WAAI,EAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YACxC,MAAM,CAAC,IAAA,WAAI,EAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/token.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Tests for token utilities
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
describe('Token Utilities', () => {
|
|
7
|
+
describe('TToken type', () => {
|
|
8
|
+
it('should define token structure', () => {
|
|
9
|
+
const token = {
|
|
10
|
+
token: 'test-token',
|
|
11
|
+
key: 'test-key',
|
|
12
|
+
type: 'user',
|
|
13
|
+
userId: 'user-123',
|
|
14
|
+
organizationId: 'org-123',
|
|
15
|
+
solutionId: 'sol-123',
|
|
16
|
+
createdOn: Date.now()
|
|
17
|
+
};
|
|
18
|
+
expect(token.token).toBe('test-token');
|
|
19
|
+
expect(token.type).toBe('user');
|
|
20
|
+
expect(typeof token.createdOn).toBe('number');
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
describe('TTokenType', () => {
|
|
24
|
+
it('should support valid token types', () => {
|
|
25
|
+
const types = ['user', 'access', 'api', 'webhook', 'verification', 'value'];
|
|
26
|
+
types.forEach(type => {
|
|
27
|
+
expect(['user', 'access', 'api', 'webhook', 'verification', 'value']).toContain(type);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
describe('TParseTokenResult', () => {
|
|
32
|
+
it('should define parse result structure', () => {
|
|
33
|
+
const result = {
|
|
34
|
+
token: {
|
|
35
|
+
token: 'test',
|
|
36
|
+
key: 'key',
|
|
37
|
+
type: 'user',
|
|
38
|
+
userId: 'user',
|
|
39
|
+
organizationId: 'org',
|
|
40
|
+
solutionId: 'sol',
|
|
41
|
+
createdOn: Date.now()
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
expect(result.token).toBeDefined();
|
|
45
|
+
expect(result.error).toBeUndefined();
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=token.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.test.js","sourceRoot":"","sources":["../../src/__tests__/token.test.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAIH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACrC,MAAM,KAAK,GAAW;gBAClB,KAAK,EAAE,YAAY;gBACnB,GAAG,EAAE,UAAU;gBACf,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,UAAU;gBAClB,cAAc,EAAE,SAAS;gBACzB,UAAU,EAAE,SAAS;gBACrB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACxB,CAAC;YAEF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,CAAC,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YACxC,MAAM,KAAK,GAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;YAE1F,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACjB,MAAM,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC1F,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC5C,MAAM,MAAM,GAAsB;gBAC9B,KAAK,EAAE;oBACH,KAAK,EAAE,MAAM;oBACb,GAAG,EAAE,KAAK;oBACV,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE,MAAM;oBACd,cAAc,EAAE,KAAK;oBACrB,UAAU,EAAE,KAAK;oBACjB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACxB;aACJ,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuid.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/uuid.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Tests for UUID generation utilities
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const uuid_1 = require("../uuid");
|
|
7
|
+
describe('UUID Utilities', () => {
|
|
8
|
+
describe('newGuid', () => {
|
|
9
|
+
it('should generate a valid UUID v4', () => {
|
|
10
|
+
const uuid = (0, uuid_1.newGuid)();
|
|
11
|
+
// UUID v4 format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
|
|
12
|
+
const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
13
|
+
expect(uuid).toMatch(uuidRegex);
|
|
14
|
+
});
|
|
15
|
+
it('should generate unique UUIDs', () => {
|
|
16
|
+
const uuid1 = (0, uuid_1.newGuid)();
|
|
17
|
+
const uuid2 = (0, uuid_1.newGuid)();
|
|
18
|
+
expect(uuid1).not.toBe(uuid2);
|
|
19
|
+
expect(uuid1).toHaveLength(36);
|
|
20
|
+
expect(uuid2).toHaveLength(36);
|
|
21
|
+
});
|
|
22
|
+
it('should generate UUIDs with correct format', () => {
|
|
23
|
+
const uuid = (0, uuid_1.newGuid)();
|
|
24
|
+
const parts = uuid.split('-');
|
|
25
|
+
expect(parts).toHaveLength(5);
|
|
26
|
+
expect(parts[0]).toHaveLength(8);
|
|
27
|
+
expect(parts[1]).toHaveLength(4);
|
|
28
|
+
expect(parts[2]).toHaveLength(4);
|
|
29
|
+
expect(parts[3]).toHaveLength(4);
|
|
30
|
+
expect(parts[4]).toHaveLength(12);
|
|
31
|
+
});
|
|
32
|
+
it('should generate multiple unique UUIDs', () => {
|
|
33
|
+
const uuids = new Set();
|
|
34
|
+
const count = 100;
|
|
35
|
+
for (let i = 0; i < count; i++) {
|
|
36
|
+
uuids.add((0, uuid_1.newGuid)());
|
|
37
|
+
}
|
|
38
|
+
expect(uuids.size).toBe(count);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=uuid.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuid.test.js","sourceRoot":"","sources":["../../src/__tests__/uuid.test.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAEH,kCAAkC;AAElC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC5B,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACrB,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACvC,MAAM,IAAI,GAAG,IAAA,cAAO,GAAE,CAAC;YAEvB,uDAAuD;YACvD,MAAM,SAAS,GAAG,wEAAwE,CAAC;YAC3F,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACpC,MAAM,KAAK,GAAG,IAAA,cAAO,GAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAA,cAAO,GAAE,CAAC;YAExB,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACjD,MAAM,IAAI,GAAG,IAAA,cAAO,GAAE,CAAC;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAE9B,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC7C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,GAAG,CAAC;YAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7B,KAAK,CAAC,GAAG,CAAC,IAAA,cAAO,GAAE,CAAC,CAAC;YACzB,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-of-object.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/value-of-object.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Tests for value-of-object utilities
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const value_of_object_1 = require("../value-of-object");
|
|
7
|
+
describe('Value-of-Object Utilities', () => {
|
|
8
|
+
describe('getPropValueOfObject', () => {
|
|
9
|
+
it('should get property value from object', () => {
|
|
10
|
+
const obj = { name: 'John', age: 30 };
|
|
11
|
+
const result = (0, value_of_object_1.getPropValueOfObject)(obj, 'name');
|
|
12
|
+
expect(result).toBe('John');
|
|
13
|
+
});
|
|
14
|
+
it('should handle case insensitive keys', () => {
|
|
15
|
+
const obj = { Name: 'John' };
|
|
16
|
+
const result = (0, value_of_object_1.getPropValueOfObject)(obj, 'name');
|
|
17
|
+
expect(result).toBe('John');
|
|
18
|
+
});
|
|
19
|
+
it('should return null for non-existent keys', () => {
|
|
20
|
+
const obj = { name: 'John' };
|
|
21
|
+
const result = (0, value_of_object_1.getPropValueOfObject)(obj, 'nonexistent');
|
|
22
|
+
expect(result).toBeUndefined();
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
describe('getObjectPropValue', () => {
|
|
26
|
+
it('should get object property value', () => {
|
|
27
|
+
const obj = { user: { name: 'John' } };
|
|
28
|
+
const result = (0, value_of_object_1.getObjectPropValue)(obj, 'user');
|
|
29
|
+
expect(result).toEqual({ name: 'John' });
|
|
30
|
+
});
|
|
31
|
+
it('should return undefined for invalid input', () => {
|
|
32
|
+
const result = (0, value_of_object_1.getObjectPropValue)(null, 'key');
|
|
33
|
+
expect(result).toBeUndefined();
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
describe('getBooleanPropValue', () => {
|
|
37
|
+
it('should get boolean property value', () => {
|
|
38
|
+
const obj = { active: true };
|
|
39
|
+
const result = (0, value_of_object_1.getBooleanPropValue)(obj, 'active');
|
|
40
|
+
expect(result).toBe(true);
|
|
41
|
+
});
|
|
42
|
+
it('should parse string boolean values', () => {
|
|
43
|
+
const obj = { active: 'true' };
|
|
44
|
+
const result = (0, value_of_object_1.getBooleanPropValue)(obj, 'active');
|
|
45
|
+
expect(result).toBe(true);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=value-of-object.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-of-object.test.js","sourceRoot":"","sources":["../../src/__tests__/value-of-object.test.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAEH,wDAAmG;AAEnG,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACvC,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC7C,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,IAAA,sCAAoB,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC3C,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAA,sCAAoB,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAChD,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAA,sCAAoB,EAAC,GAAG,EAAE,aAAa,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YACxC,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,IAAA,oCAAkB,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACjD,MAAM,MAAM,GAAG,IAAA,oCAAkB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YACzC,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAA,qCAAmB,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC1C,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAA,qCAAmB,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|