@dxos/errors 0.8.3-staging.0fa589b → 0.8.4-main.28f8d3d
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/lib/browser/index.mjs +22 -5
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +22 -5
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/base.d.ts +38 -12
- package/dist/types/src/base.d.ts.map +1 -1
- package/dist/types/src/errors.d.ts +300 -42
- package/dist/types/src/errors.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -6
- package/src/base.ts +27 -6
- package/dist/lib/node/index.cjs +0 -84
- package/dist/lib/node/index.cjs.map +0 -7
- package/dist/lib/node/meta.json +0 -1
|
@@ -1,13 +1,26 @@
|
|
|
1
|
-
//
|
|
1
|
+
// src/base.ts
|
|
2
2
|
var BaseError = class _BaseError extends Error {
|
|
3
|
+
/**
|
|
4
|
+
* Primary way of defining new error classes.
|
|
5
|
+
*
|
|
6
|
+
* Expample:
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* export class AiInputPreprocessingError extends BaseError.extend('AI_INPUT_PREPROCESSING_ERROR') {}
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
3
12
|
static extend(code) {
|
|
4
13
|
return class extends _BaseError {
|
|
5
|
-
static
|
|
6
|
-
this.code = code;
|
|
7
|
-
}
|
|
14
|
+
static code = code;
|
|
8
15
|
static is(error) {
|
|
9
16
|
return typeof error === "object" && error !== null && "code" in error && error.code === code;
|
|
10
17
|
}
|
|
18
|
+
static wrap(message, options) {
|
|
19
|
+
return (error) => new this(message, {
|
|
20
|
+
...options,
|
|
21
|
+
cause: error
|
|
22
|
+
});
|
|
23
|
+
}
|
|
11
24
|
constructor(message, options) {
|
|
12
25
|
super(code, message, options);
|
|
13
26
|
}
|
|
@@ -27,12 +40,16 @@ var BaseError = class _BaseError extends Error {
|
|
|
27
40
|
get code() {
|
|
28
41
|
return this.#code;
|
|
29
42
|
}
|
|
43
|
+
// For effect error matching.
|
|
44
|
+
get _tag() {
|
|
45
|
+
return this.#code;
|
|
46
|
+
}
|
|
30
47
|
get context() {
|
|
31
48
|
return this.#context;
|
|
32
49
|
}
|
|
33
50
|
};
|
|
34
51
|
|
|
35
|
-
//
|
|
52
|
+
// src/errors.ts
|
|
36
53
|
var TimeoutError = class extends BaseError.extend("TIMEOUT") {
|
|
37
54
|
};
|
|
38
55
|
var AbortedError = class extends BaseError.extend("ABORTED") {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/base.ts", "../../../src/errors.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nexport type BaseErrorOptions = {\n /**\n * The cause of the error.\n * An instance of Error.\n */\n cause?: unknown;\n\n /**\n * Structured details about the error.\n */\n context?: Record<string, unknown>;\n};\n\nexport class BaseError extends Error {\n static extend(code:
|
|
5
|
-
"mappings": ";
|
|
6
|
-
"names": ["BaseError", "Error", "extend", "code", "is", "error", "message", "options", "context", "Object", "setPrototypeOf", "prototype", "name", "TimeoutError", "BaseError", "extend", "AbortedError", "UnimplementedError", "ApiError", "SystemError", "InternalError"]
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nexport type BaseErrorOptions = {\n /**\n * The cause of the error.\n * An instance of Error.\n */\n cause?: unknown;\n\n /**\n * Structured details about the error.\n */\n context?: Record<string, unknown>;\n};\n\n/**\n * Base class for all DXOS errors.\n */\nexport class BaseError<Code extends string = string> extends Error {\n /**\n * Primary way of defining new error classes.\n *\n * Expample:\n *\n * ```ts\n * export class AiInputPreprocessingError extends BaseError.extend('AI_INPUT_PREPROCESSING_ERROR') {}\n * ```\n */\n static extend<Code extends string>(code: Code) {\n return class extends BaseError<Code> {\n static code = code;\n\n static is(error: unknown): error is BaseError {\n return typeof error === 'object' && error !== null && 'code' in error && error.code === code;\n }\n\n static wrap(message: string, options?: Omit<BaseErrorOptions, 'cause'>) {\n return (error: unknown) => new this(message, { ...options, cause: error });\n }\n\n constructor(message: string, options?: BaseErrorOptions) {\n super(code, message, options);\n }\n };\n }\n\n #code: Code;\n #context: Record<string, unknown>;\n\n constructor(code: Code, message: string, options?: BaseErrorOptions) {\n super(message, options);\n\n this.#code = code;\n this.#context = options?.context ?? {};\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n override get name() {\n return this.#code;\n }\n\n get code(): Code {\n return this.#code;\n }\n\n // For effect error matching.\n get _tag(): Code {\n return this.#code;\n }\n\n get context() {\n return this.#context;\n }\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { BaseError } from './base';\n\nexport class TimeoutError extends BaseError.extend('TIMEOUT') {}\n\nexport class AbortedError extends BaseError.extend('ABORTED') {}\n\nexport class UnimplementedError extends BaseError.extend('UNIMPLEMENTED') {}\n\nexport class ApiError extends BaseError.extend('API_ERROR') {}\n\nexport class SystemError extends BaseError.extend('SYSTEM_ERROR') {}\n\nexport class InternalError extends BaseError.extend('INTERNAL_ERROR') {}\n"],
|
|
5
|
+
"mappings": ";AAoBO,IAAMA,YAAN,MAAMA,mBAAgDC,MAAAA;;;;;;;;;;EAU3D,OAAOC,OAA4BC,MAAY;AAC7C,WAAO,cAAcH,WAAAA;MACnB,OAAOG,OAAOA;MAEd,OAAOC,GAAGC,OAAoC;AAC5C,eAAO,OAAOA,UAAU,YAAYA,UAAU,QAAQ,UAAUA,SAASA,MAAMF,SAASA;MAC1F;MAEA,OAAOG,KAAKC,SAAiBC,SAA2C;AACtE,eAAO,CAACH,UAAmB,IAAI,KAAKE,SAAS;UAAE,GAAGC;UAASC,OAAOJ;QAAM,CAAA;MAC1E;MAEA,YAAYE,SAAiBC,SAA4B;AACvD,cAAML,MAAMI,SAASC,OAAAA;MACvB;IACF;EACF;EAEA;EACA;EAEA,YAAYL,MAAYI,SAAiBC,SAA4B;AACnE,UAAMD,SAASC,OAAAA;AAEf,SAAK,QAAQL;AACb,SAAK,WAAWK,SAASE,WAAW,CAAC;AACrCC,WAAOC,eAAe,MAAM,WAAWC,SAAS;EAClD;EAEA,IAAaC,OAAO;AAClB,WAAO,KAAK;EACd;EAEA,IAAIX,OAAa;AACf,WAAO,KAAK;EACd;;EAGA,IAAIY,OAAa;AACf,WAAO,KAAK;EACd;EAEA,IAAIL,UAAU;AACZ,WAAO,KAAK;EACd;AACF;;;ACrEO,IAAMM,eAAN,cAA2BC,UAAUC,OAAO,SAAA,EAAA;AAAY;AAExD,IAAMC,eAAN,cAA2BF,UAAUC,OAAO,SAAA,EAAA;AAAY;AAExD,IAAME,qBAAN,cAAiCH,UAAUC,OAAO,eAAA,EAAA;AAAkB;AAEpE,IAAMG,WAAN,cAAuBJ,UAAUC,OAAO,WAAA,EAAA;AAAc;AAEtD,IAAMI,cAAN,cAA0BL,UAAUC,OAAO,cAAA,EAAA;AAAiB;AAE5D,IAAMK,gBAAN,cAA4BN,UAAUC,OAAO,gBAAA,EAAA;AAAmB;",
|
|
6
|
+
"names": ["BaseError", "Error", "extend", "code", "is", "error", "wrap", "message", "options", "cause", "context", "Object", "setPrototypeOf", "prototype", "name", "_tag", "TimeoutError", "BaseError", "extend", "AbortedError", "UnimplementedError", "ApiError", "SystemError", "InternalError"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"
|
|
1
|
+
{"inputs":{"src/base.ts":{"bytes":5372,"imports":[],"format":"esm"},"src/errors.ts":{"bytes":2000,"imports":[{"path":"src/base.ts","kind":"import-statement","original":"./base"}],"format":"esm"},"src/index.ts":{"bytes":523,"imports":[{"path":"src/base.ts","kind":"import-statement","original":"./base"},{"path":"src/errors.ts","kind":"import-statement","original":"./errors"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3669},"dist/lib/browser/index.mjs":{"imports":[],"exports":["AbortedError","ApiError","BaseError","InternalError","SystemError","TimeoutError","UnimplementedError"],"entryPoint":"src/index.ts","inputs":{"src/base.ts":{"bytesInOutput":1143},"src/index.ts":{"bytesInOutput":0},"src/errors.ts":{"bytesInOutput":418}},"bytes":1751}}}
|
|
@@ -1,15 +1,28 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
|
|
3
|
-
//
|
|
3
|
+
// src/base.ts
|
|
4
4
|
var BaseError = class _BaseError extends Error {
|
|
5
|
+
/**
|
|
6
|
+
* Primary way of defining new error classes.
|
|
7
|
+
*
|
|
8
|
+
* Expample:
|
|
9
|
+
*
|
|
10
|
+
* ```ts
|
|
11
|
+
* export class AiInputPreprocessingError extends BaseError.extend('AI_INPUT_PREPROCESSING_ERROR') {}
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
5
14
|
static extend(code) {
|
|
6
15
|
return class extends _BaseError {
|
|
7
|
-
static
|
|
8
|
-
this.code = code;
|
|
9
|
-
}
|
|
16
|
+
static code = code;
|
|
10
17
|
static is(error) {
|
|
11
18
|
return typeof error === "object" && error !== null && "code" in error && error.code === code;
|
|
12
19
|
}
|
|
20
|
+
static wrap(message, options) {
|
|
21
|
+
return (error) => new this(message, {
|
|
22
|
+
...options,
|
|
23
|
+
cause: error
|
|
24
|
+
});
|
|
25
|
+
}
|
|
13
26
|
constructor(message, options) {
|
|
14
27
|
super(code, message, options);
|
|
15
28
|
}
|
|
@@ -29,12 +42,16 @@ var BaseError = class _BaseError extends Error {
|
|
|
29
42
|
get code() {
|
|
30
43
|
return this.#code;
|
|
31
44
|
}
|
|
45
|
+
// For effect error matching.
|
|
46
|
+
get _tag() {
|
|
47
|
+
return this.#code;
|
|
48
|
+
}
|
|
32
49
|
get context() {
|
|
33
50
|
return this.#context;
|
|
34
51
|
}
|
|
35
52
|
};
|
|
36
53
|
|
|
37
|
-
//
|
|
54
|
+
// src/errors.ts
|
|
38
55
|
var TimeoutError = class extends BaseError.extend("TIMEOUT") {
|
|
39
56
|
};
|
|
40
57
|
var AbortedError = class extends BaseError.extend("ABORTED") {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/base.ts", "../../../src/errors.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nexport type BaseErrorOptions = {\n /**\n * The cause of the error.\n * An instance of Error.\n */\n cause?: unknown;\n\n /**\n * Structured details about the error.\n */\n context?: Record<string, unknown>;\n};\n\nexport class BaseError extends Error {\n static extend(code:
|
|
5
|
-
"mappings": ";;;
|
|
6
|
-
"names": ["BaseError", "Error", "extend", "code", "is", "error", "message", "options", "context", "Object", "setPrototypeOf", "prototype", "name", "TimeoutError", "BaseError", "extend", "AbortedError", "UnimplementedError", "ApiError", "SystemError", "InternalError"]
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nexport type BaseErrorOptions = {\n /**\n * The cause of the error.\n * An instance of Error.\n */\n cause?: unknown;\n\n /**\n * Structured details about the error.\n */\n context?: Record<string, unknown>;\n};\n\n/**\n * Base class for all DXOS errors.\n */\nexport class BaseError<Code extends string = string> extends Error {\n /**\n * Primary way of defining new error classes.\n *\n * Expample:\n *\n * ```ts\n * export class AiInputPreprocessingError extends BaseError.extend('AI_INPUT_PREPROCESSING_ERROR') {}\n * ```\n */\n static extend<Code extends string>(code: Code) {\n return class extends BaseError<Code> {\n static code = code;\n\n static is(error: unknown): error is BaseError {\n return typeof error === 'object' && error !== null && 'code' in error && error.code === code;\n }\n\n static wrap(message: string, options?: Omit<BaseErrorOptions, 'cause'>) {\n return (error: unknown) => new this(message, { ...options, cause: error });\n }\n\n constructor(message: string, options?: BaseErrorOptions) {\n super(code, message, options);\n }\n };\n }\n\n #code: Code;\n #context: Record<string, unknown>;\n\n constructor(code: Code, message: string, options?: BaseErrorOptions) {\n super(message, options);\n\n this.#code = code;\n this.#context = options?.context ?? {};\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n override get name() {\n return this.#code;\n }\n\n get code(): Code {\n return this.#code;\n }\n\n // For effect error matching.\n get _tag(): Code {\n return this.#code;\n }\n\n get context() {\n return this.#context;\n }\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { BaseError } from './base';\n\nexport class TimeoutError extends BaseError.extend('TIMEOUT') {}\n\nexport class AbortedError extends BaseError.extend('ABORTED') {}\n\nexport class UnimplementedError extends BaseError.extend('UNIMPLEMENTED') {}\n\nexport class ApiError extends BaseError.extend('API_ERROR') {}\n\nexport class SystemError extends BaseError.extend('SYSTEM_ERROR') {}\n\nexport class InternalError extends BaseError.extend('INTERNAL_ERROR') {}\n"],
|
|
5
|
+
"mappings": ";;;AAoBO,IAAMA,YAAN,MAAMA,mBAAgDC,MAAAA;;;;;;;;;;EAU3D,OAAOC,OAA4BC,MAAY;AAC7C,WAAO,cAAcH,WAAAA;MACnB,OAAOG,OAAOA;MAEd,OAAOC,GAAGC,OAAoC;AAC5C,eAAO,OAAOA,UAAU,YAAYA,UAAU,QAAQ,UAAUA,SAASA,MAAMF,SAASA;MAC1F;MAEA,OAAOG,KAAKC,SAAiBC,SAA2C;AACtE,eAAO,CAACH,UAAmB,IAAI,KAAKE,SAAS;UAAE,GAAGC;UAASC,OAAOJ;QAAM,CAAA;MAC1E;MAEA,YAAYE,SAAiBC,SAA4B;AACvD,cAAML,MAAMI,SAASC,OAAAA;MACvB;IACF;EACF;EAEA;EACA;EAEA,YAAYL,MAAYI,SAAiBC,SAA4B;AACnE,UAAMD,SAASC,OAAAA;AAEf,SAAK,QAAQL;AACb,SAAK,WAAWK,SAASE,WAAW,CAAC;AACrCC,WAAOC,eAAe,MAAM,WAAWC,SAAS;EAClD;EAEA,IAAaC,OAAO;AAClB,WAAO,KAAK;EACd;EAEA,IAAIX,OAAa;AACf,WAAO,KAAK;EACd;;EAGA,IAAIY,OAAa;AACf,WAAO,KAAK;EACd;EAEA,IAAIL,UAAU;AACZ,WAAO,KAAK;EACd;AACF;;;ACrEO,IAAMM,eAAN,cAA2BC,UAAUC,OAAO,SAAA,EAAA;AAAY;AAExD,IAAMC,eAAN,cAA2BF,UAAUC,OAAO,SAAA,EAAA;AAAY;AAExD,IAAME,qBAAN,cAAiCH,UAAUC,OAAO,eAAA,EAAA;AAAkB;AAEpE,IAAMG,WAAN,cAAuBJ,UAAUC,OAAO,WAAA,EAAA;AAAc;AAEtD,IAAMI,cAAN,cAA0BL,UAAUC,OAAO,cAAA,EAAA;AAAiB;AAE5D,IAAMK,gBAAN,cAA4BN,UAAUC,OAAO,gBAAA,EAAA;AAAmB;",
|
|
6
|
+
"names": ["BaseError", "Error", "extend", "code", "is", "error", "wrap", "message", "options", "cause", "context", "Object", "setPrototypeOf", "prototype", "name", "_tag", "TimeoutError", "BaseError", "extend", "AbortedError", "UnimplementedError", "ApiError", "SystemError", "InternalError"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"
|
|
1
|
+
{"inputs":{"src/base.ts":{"bytes":5372,"imports":[],"format":"esm"},"src/errors.ts":{"bytes":2000,"imports":[{"path":"src/base.ts","kind":"import-statement","original":"./base"}],"format":"esm"},"src/index.ts":{"bytes":523,"imports":[{"path":"src/base.ts","kind":"import-statement","original":"./base"},{"path":"src/errors.ts","kind":"import-statement","original":"./errors"}],"format":"esm"}},"outputs":{"dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3671},"dist/lib/node-esm/index.mjs":{"imports":[],"exports":["AbortedError","ApiError","BaseError","InternalError","SystemError","TimeoutError","UnimplementedError"],"entryPoint":"src/index.ts","inputs":{"src/base.ts":{"bytesInOutput":1143},"src/index.ts":{"bytesInOutput":0},"src/errors.ts":{"bytesInOutput":418}},"bytes":1844}}}
|
package/dist/types/src/base.d.ts
CHANGED
|
@@ -9,29 +9,55 @@ export type BaseErrorOptions = {
|
|
|
9
9
|
*/
|
|
10
10
|
context?: Record<string, unknown>;
|
|
11
11
|
};
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Base class for all DXOS errors.
|
|
14
|
+
*/
|
|
15
|
+
export declare class BaseError<Code extends string = string> extends Error {
|
|
13
16
|
#private;
|
|
14
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Primary way of defining new error classes.
|
|
19
|
+
*
|
|
20
|
+
* Expample:
|
|
21
|
+
*
|
|
22
|
+
* ```ts
|
|
23
|
+
* export class AiInputPreprocessingError extends BaseError.extend('AI_INPUT_PREPROCESSING_ERROR') {}
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
static extend<Code extends string>(code: Code): {
|
|
15
27
|
new (message: string, options?: BaseErrorOptions): {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
28
|
+
#code: Code;
|
|
29
|
+
#context: Record<string, unknown>;
|
|
30
|
+
get name(): Code;
|
|
31
|
+
get code(): Code;
|
|
32
|
+
get _tag(): Code;
|
|
33
|
+
get context(): Record<string, unknown>;
|
|
21
34
|
message: string;
|
|
22
35
|
stack?: string;
|
|
23
36
|
cause?: unknown;
|
|
24
37
|
};
|
|
25
|
-
code:
|
|
38
|
+
code: Code;
|
|
26
39
|
is(error: unknown): error is BaseError;
|
|
27
|
-
|
|
40
|
+
wrap(message: string, options?: Omit<BaseErrorOptions, "cause">): (error: unknown) => {
|
|
41
|
+
#code: Code;
|
|
42
|
+
#context: Record<string, unknown>;
|
|
43
|
+
get name(): Code;
|
|
44
|
+
get code(): Code;
|
|
45
|
+
get _tag(): Code;
|
|
46
|
+
get context(): Record<string, unknown>;
|
|
47
|
+
message: string;
|
|
48
|
+
stack?: string;
|
|
49
|
+
cause?: unknown;
|
|
50
|
+
};
|
|
51
|
+
extend<Code extends string>(code: Code): /*elided*/ any;
|
|
52
|
+
isError(error: unknown): error is Error;
|
|
28
53
|
captureStackTrace(targetObject: object, constructorOpt?: Function): void;
|
|
29
54
|
prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
|
|
30
55
|
stackTraceLimit: number;
|
|
31
56
|
};
|
|
32
|
-
constructor(code:
|
|
33
|
-
get name():
|
|
34
|
-
get code():
|
|
57
|
+
constructor(code: Code, message: string, options?: BaseErrorOptions);
|
|
58
|
+
get name(): Code;
|
|
59
|
+
get code(): Code;
|
|
60
|
+
get _tag(): Code;
|
|
35
61
|
get context(): Record<string, unknown>;
|
|
36
62
|
}
|
|
37
63
|
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/base.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF,qBAAa,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/base.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF;;GAEG;AACH,qBAAa,SAAS,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,KAAK;;IAChE;;;;;;;;OAQG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI;sBAYpB,MAAM,YAAY,gBAAgB;;sBAOjD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;;;;kBAfZ,OAAO,GAAG,KAAK,IAAI,SAAS;sBAIxB,MAAM,YAAY,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,IAC5D,OAAO,OAAO;;sBAUlB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;;;eAnBnB,IAAI,SAAS,MAAM,QAAQ,IAAI;;;;;;gBAqBjC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAQnE,IAAa,IAAI,SAEhB;IAED,IAAI,IAAI,IAAI,IAAI,CAEf;IAGD,IAAI,IAAI,IAAI,IAAI,CAEf;IAED,IAAI,OAAO,4BAEV;CACF"}
|