@zenstackhq/runtime 2.15.1 → 3.0.0-alpha.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.
- package/LICENSE +1 -1
- package/dist/client.cjs +6094 -0
- package/dist/client.cjs.map +1 -0
- package/dist/client.d.cts +19 -0
- package/dist/client.d.ts +19 -0
- package/dist/client.js +6060 -0
- package/dist/client.js.map +1 -0
- package/dist/contract-DguafRNB.d.cts +1272 -0
- package/dist/contract-DguafRNB.d.ts +1272 -0
- package/dist/index.cjs +6088 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +14 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +6057 -0
- package/dist/index.js.map +1 -0
- package/dist/plugins/policy.cjs +2343 -0
- package/dist/plugins/policy.cjs.map +1 -0
- package/dist/plugins/policy.d.cts +24 -0
- package/dist/plugins/policy.d.ts +24 -0
- package/dist/plugins/policy.js +2307 -0
- package/dist/plugins/policy.js.map +1 -0
- package/dist/schema.cjs +110 -0
- package/dist/schema.cjs.map +1 -0
- package/dist/schema.d.cts +29 -0
- package/dist/schema.d.ts +29 -0
- package/dist/schema.js +85 -0
- package/dist/schema.js.map +1 -0
- package/dist/utils/pg-utils.cjs +39 -0
- package/dist/utils/pg-utils.cjs.map +1 -0
- package/dist/utils/pg-utils.d.cts +8 -0
- package/dist/utils/pg-utils.d.ts +8 -0
- package/dist/utils/pg-utils.js +16 -0
- package/dist/utils/pg-utils.js.map +1 -0
- package/{browser/index.js → dist/utils/sqlite-utils.cjs} +21 -37
- package/dist/utils/sqlite-utils.cjs.map +1 -0
- package/dist/utils/sqlite-utils.d.cts +8 -0
- package/dist/utils/sqlite-utils.d.ts +8 -0
- package/dist/utils/sqlite-utils.js +22 -0
- package/dist/utils/sqlite-utils.js.map +1 -0
- package/package.json +105 -114
- package/README.md +0 -5
- package/browser/index.d.mts +0 -13
- package/browser/index.d.ts +0 -13
- package/browser/index.js.map +0 -1
- package/browser/index.mjs +0 -33
- package/browser/index.mjs.map +0 -1
- package/constants.d.ts +0 -62
- package/constants.js +0 -76
- package/constants.js.map +0 -1
- package/cross/index.d.mts +0 -379
- package/cross/index.d.ts +0 -379
- package/cross/index.js +0 -903
- package/cross/index.js.map +0 -1
- package/cross/index.mjs +0 -861
- package/cross/index.mjs.map +0 -1
- package/edge.d.ts +0 -1
- package/edge.js +0 -18
- package/edge.js.map +0 -1
- package/encryption/index.d.ts +0 -25
- package/encryption/index.js +0 -74
- package/encryption/index.js.map +0 -1
- package/encryption/utils.d.ts +0 -9
- package/encryption/utils.js +0 -99
- package/encryption/utils.js.map +0 -1
- package/enhance-edge.d.ts +0 -1
- package/enhance-edge.js +0 -10
- package/enhance.d.ts +0 -1
- package/enhance.js +0 -10
- package/enhancements/edge/create-enhancement.d.ts +0 -42
- package/enhancements/edge/create-enhancement.js +0 -102
- package/enhancements/edge/create-enhancement.js.map +0 -1
- package/enhancements/edge/default-auth.d.ts +0 -8
- package/enhancements/edge/default-auth.js +0 -180
- package/enhancements/edge/default-auth.js.map +0 -1
- package/enhancements/edge/delegate.d.ts +0 -77
- package/enhancements/edge/delegate.js +0 -1294
- package/enhancements/edge/delegate.js.map +0 -1
- package/enhancements/edge/encryption.d.ts +0 -7
- package/enhancements/edge/encryption.js +0 -150
- package/enhancements/edge/encryption.js.map +0 -1
- package/enhancements/edge/index.d.ts +0 -4
- package/enhancements/edge/index.js +0 -21
- package/enhancements/edge/index.js.map +0 -1
- package/enhancements/edge/json-processor.d.ts +0 -7
- package/enhancements/edge/json-processor.js +0 -89
- package/enhancements/edge/json-processor.js.map +0 -1
- package/enhancements/edge/logger.d.ts +0 -29
- package/enhancements/edge/logger.js +0 -65
- package/enhancements/edge/logger.js.map +0 -1
- package/enhancements/edge/omit.d.ts +0 -7
- package/enhancements/edge/omit.js +0 -96
- package/enhancements/edge/omit.js.map +0 -1
- package/enhancements/edge/password.d.ts +0 -7
- package/enhancements/edge/password.js +0 -64
- package/enhancements/edge/password.js.map +0 -1
- package/enhancements/edge/policy/check-utils.d.ts +0 -5
- package/enhancements/edge/policy/check-utils.js +0 -20
- package/enhancements/edge/policy/check-utils.js.map +0 -1
- package/enhancements/edge/policy/handler.d.ts +0 -100
- package/enhancements/edge/policy/handler.js +0 -1442
- package/enhancements/edge/policy/handler.js.map +0 -1
- package/enhancements/edge/policy/index.d.ts +0 -19
- package/enhancements/edge/policy/index.js +0 -65
- package/enhancements/edge/policy/index.js.map +0 -1
- package/enhancements/edge/policy/policy-utils.d.ts +0 -181
- package/enhancements/edge/policy/policy-utils.js +0 -1357
- package/enhancements/edge/policy/policy-utils.js.map +0 -1
- package/enhancements/edge/promise.d.ts +0 -15
- package/enhancements/edge/promise.js +0 -99
- package/enhancements/edge/promise.js.map +0 -1
- package/enhancements/edge/proxy.d.ts +0 -120
- package/enhancements/edge/proxy.js +0 -287
- package/enhancements/edge/proxy.js.map +0 -1
- package/enhancements/edge/query-utils.d.ts +0 -53
- package/enhancements/edge/query-utils.js +0 -256
- package/enhancements/edge/query-utils.js.map +0 -1
- package/enhancements/edge/types.d.ts +0 -238
- package/enhancements/edge/types.js +0 -3
- package/enhancements/edge/types.js.map +0 -1
- package/enhancements/edge/utils.d.ts +0 -11
- package/enhancements/edge/utils.js +0 -49
- package/enhancements/edge/utils.js.map +0 -1
- package/enhancements/edge/where-visitor.d.ts +0 -32
- package/enhancements/edge/where-visitor.js +0 -86
- package/enhancements/edge/where-visitor.js.map +0 -1
- package/enhancements/node/create-enhancement.d.ts +0 -42
- package/enhancements/node/create-enhancement.js +0 -102
- package/enhancements/node/create-enhancement.js.map +0 -1
- package/enhancements/node/default-auth.d.ts +0 -8
- package/enhancements/node/default-auth.js +0 -180
- package/enhancements/node/default-auth.js.map +0 -1
- package/enhancements/node/delegate.d.ts +0 -77
- package/enhancements/node/delegate.js +0 -1294
- package/enhancements/node/delegate.js.map +0 -1
- package/enhancements/node/encryption.d.ts +0 -7
- package/enhancements/node/encryption.js +0 -150
- package/enhancements/node/encryption.js.map +0 -1
- package/enhancements/node/index.d.ts +0 -4
- package/enhancements/node/index.js +0 -21
- package/enhancements/node/index.js.map +0 -1
- package/enhancements/node/json-processor.d.ts +0 -7
- package/enhancements/node/json-processor.js +0 -89
- package/enhancements/node/json-processor.js.map +0 -1
- package/enhancements/node/logger.d.ts +0 -29
- package/enhancements/node/logger.js +0 -65
- package/enhancements/node/logger.js.map +0 -1
- package/enhancements/node/omit.d.ts +0 -7
- package/enhancements/node/omit.js +0 -96
- package/enhancements/node/omit.js.map +0 -1
- package/enhancements/node/password.d.ts +0 -7
- package/enhancements/node/password.js +0 -64
- package/enhancements/node/password.js.map +0 -1
- package/enhancements/node/policy/check-utils.d.ts +0 -5
- package/enhancements/node/policy/check-utils.js +0 -87
- package/enhancements/node/policy/check-utils.js.map +0 -1
- package/enhancements/node/policy/constraint-solver.d.ts +0 -27
- package/enhancements/node/policy/constraint-solver.js +0 -164
- package/enhancements/node/policy/constraint-solver.js.map +0 -1
- package/enhancements/node/policy/handler.d.ts +0 -100
- package/enhancements/node/policy/handler.js +0 -1442
- package/enhancements/node/policy/handler.js.map +0 -1
- package/enhancements/node/policy/index.d.ts +0 -19
- package/enhancements/node/policy/index.js +0 -65
- package/enhancements/node/policy/index.js.map +0 -1
- package/enhancements/node/policy/policy-utils.d.ts +0 -181
- package/enhancements/node/policy/policy-utils.js +0 -1357
- package/enhancements/node/policy/policy-utils.js.map +0 -1
- package/enhancements/node/promise.d.ts +0 -15
- package/enhancements/node/promise.js +0 -99
- package/enhancements/node/promise.js.map +0 -1
- package/enhancements/node/proxy.d.ts +0 -120
- package/enhancements/node/proxy.js +0 -287
- package/enhancements/node/proxy.js.map +0 -1
- package/enhancements/node/query-utils.d.ts +0 -53
- package/enhancements/node/query-utils.js +0 -256
- package/enhancements/node/query-utils.js.map +0 -1
- package/enhancements/node/types.d.ts +0 -238
- package/enhancements/node/types.js +0 -3
- package/enhancements/node/types.js.map +0 -1
- package/enhancements/node/utils.d.ts +0 -11
- package/enhancements/node/utils.js +0 -49
- package/enhancements/node/utils.js.map +0 -1
- package/enhancements/node/where-visitor.d.ts +0 -32
- package/enhancements/node/where-visitor.js +0 -86
- package/enhancements/node/where-visitor.js.map +0 -1
- package/error.d.ts +0 -11
- package/error.js +0 -22
- package/error.js.map +0 -1
- package/index.d.ts +0 -7
- package/index.js +0 -24
- package/index.js.map +0 -1
- package/model-meta.d.ts +0 -1
- package/model-meta.js +0 -10
- package/models.d.ts +0 -1
- package/models.js +0 -1
- package/types.d.ts +0 -180
- package/types.js +0 -4
- package/types.js.map +0 -1
- package/validation.d.ts +0 -24
- package/validation.js +0 -52
- package/validation.js.map +0 -1
- package/version.d.ts +0 -5
- package/version.js +0 -35
- package/version.js.map +0 -1
- package/zod/index.d.ts +0 -3
- package/zod/index.js +0 -5
- package/zod/input.d.ts +0 -1
- package/zod/input.js +0 -8
- package/zod/models.d.ts +0 -1
- package/zod/models.js +0 -8
- package/zod/objects.d.ts +0 -1
- package/zod/objects.js +0 -8
- package/zod-utils.d.ts +0 -12
- package/zod-utils.js +0 -97
- package/zod-utils.js.map +0 -1
package/zod-utils.js
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.smartUnion = smartUnion;
|
|
4
|
-
/**
|
|
5
|
-
* A smarter version of `z.union` that decide which candidate to use based on how few unrecognized keys it has.
|
|
6
|
-
*
|
|
7
|
-
* The helper is used to deal with ambiguity in union generated for Prisma inputs when the zod schemas are configured
|
|
8
|
-
* to run in "strip" object parsing mode. Since "strip" automatically drops unrecognized keys, it may result in
|
|
9
|
-
* accidentally matching a less-ideal schema candidate.
|
|
10
|
-
*
|
|
11
|
-
* The helper uses a custom schema to find the candidate that results in the fewest unrecognized keys when parsing the data.
|
|
12
|
-
*
|
|
13
|
-
* The function uses `any` for parameter and return type to be compatible with various zod versions.
|
|
14
|
-
*/
|
|
15
|
-
function smartUnion(z, candidates) {
|
|
16
|
-
// strip `z.lazy`
|
|
17
|
-
const processedCandidates = candidates.map((candidate) => unwrapLazy(z, candidate));
|
|
18
|
-
if (processedCandidates.some((c) => !(c instanceof z.ZodObject || c instanceof z.ZodArray))) {
|
|
19
|
-
// fall back to plain union if not all candidates are objects or arrays
|
|
20
|
-
return z.union(candidates);
|
|
21
|
-
}
|
|
22
|
-
let resultData;
|
|
23
|
-
return z
|
|
24
|
-
.custom((data) => {
|
|
25
|
-
if (Array.isArray(data)) {
|
|
26
|
-
const { data: result, success } = smartArrayUnion(z, processedCandidates.filter((c) => c instanceof z.ZodArray), data);
|
|
27
|
-
if (success) {
|
|
28
|
-
resultData = result;
|
|
29
|
-
}
|
|
30
|
-
return success;
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
const { data: result, success } = smartObjectUnion(z, processedCandidates.filter((c) => c instanceof z.ZodObject), data);
|
|
34
|
-
if (success) {
|
|
35
|
-
resultData = result;
|
|
36
|
-
}
|
|
37
|
-
return success;
|
|
38
|
-
}
|
|
39
|
-
})
|
|
40
|
-
.transform(() => {
|
|
41
|
-
// return the parsed data
|
|
42
|
-
return resultData;
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
function smartArrayUnion(z, candidates, data) {
|
|
46
|
-
if (candidates.length === 0) {
|
|
47
|
-
return { data: undefined, success: false };
|
|
48
|
-
}
|
|
49
|
-
if (!Array.isArray(data)) {
|
|
50
|
-
return { data: undefined, success: false };
|
|
51
|
-
}
|
|
52
|
-
if (data.length === 0) {
|
|
53
|
-
return { data, success: true };
|
|
54
|
-
}
|
|
55
|
-
// use the first element to identify the candidate schema to use
|
|
56
|
-
const item = data[0];
|
|
57
|
-
const itemSchema = identifyCandidate(z, candidates.map((candidate) => candidate.element), item);
|
|
58
|
-
// find the matching schema and re-parse the data
|
|
59
|
-
const schema = candidates.find((candidate) => candidate.element === itemSchema);
|
|
60
|
-
return schema.safeParse(data);
|
|
61
|
-
}
|
|
62
|
-
function smartObjectUnion(z, candidates, data) {
|
|
63
|
-
if (candidates.length === 0) {
|
|
64
|
-
return { data: undefined, success: false };
|
|
65
|
-
}
|
|
66
|
-
const schema = identifyCandidate(z, candidates, data);
|
|
67
|
-
return schema.safeParse(data);
|
|
68
|
-
}
|
|
69
|
-
function identifyCandidate(z, candidates, data) {
|
|
70
|
-
const strictResults = candidates.map((candidate) => {
|
|
71
|
-
// make sure to strip `z.lazy` before parsing
|
|
72
|
-
const unwrapped = unwrapLazy(z, candidate);
|
|
73
|
-
return {
|
|
74
|
-
schema: candidate,
|
|
75
|
-
// force object schema to run in strict mode to capture unrecognized keys
|
|
76
|
-
result: unwrapped.strict().safeParse(data),
|
|
77
|
-
};
|
|
78
|
-
});
|
|
79
|
-
// find the schema with the fewest unrecognized keys
|
|
80
|
-
const { schema } = strictResults.sort((a, b) => {
|
|
81
|
-
var _a, _b, _c, _d;
|
|
82
|
-
const aCount = countUnrecognizedKeys((_b = (_a = a.result.error) === null || _a === void 0 ? void 0 : _a.issues) !== null && _b !== void 0 ? _b : []);
|
|
83
|
-
const bCount = countUnrecognizedKeys((_d = (_c = b.result.error) === null || _c === void 0 ? void 0 : _c.issues) !== null && _d !== void 0 ? _d : []);
|
|
84
|
-
return aCount - bCount;
|
|
85
|
-
})[0];
|
|
86
|
-
return schema;
|
|
87
|
-
}
|
|
88
|
-
function countUnrecognizedKeys(issues) {
|
|
89
|
-
return issues
|
|
90
|
-
.filter((issue) => issue.code === 'unrecognized_keys')
|
|
91
|
-
.map((issue) => issue.keys.length)
|
|
92
|
-
.reduce((a, b) => a + b, 0);
|
|
93
|
-
}
|
|
94
|
-
function unwrapLazy(z, schema) {
|
|
95
|
-
return schema instanceof z.ZodLazy ? schema.schema : schema;
|
|
96
|
-
}
|
|
97
|
-
//# sourceMappingURL=zod-utils.js.map
|
package/zod-utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zod-utils.js","sourceRoot":"","sources":["../src/zod-utils.ts"],"names":[],"mappings":";;AAcA,gCAyCC;AApDD;;;;;;;;;;GAUG;AACH,SAAgB,UAAU,CAAC,CAAM,EAAE,UAAiB;IAChD,iBAAiB;IACjB,MAAM,mBAAmB,GAAkB,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IAEnG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC1F,uEAAuE;QACvE,OAAO,CAAC,CAAC,KAAK,CAAC,UAAiB,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,UAAe,CAAC;IAEpB,OAAO,CAAC;SACH,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE;QAClB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,CAC7C,CAAC,EACD,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAExD,EACD,IAAI,CACP,CAAC;YACF,IAAI,OAAO,EAAE,CAAC;gBACV,UAAU,GAAG,MAAM,CAAC;YACxB,CAAC;YACD,OAAO,OAAO,CAAC;QACnB,CAAC;aAAM,CAAC;YACJ,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAC9C,CAAC,EACD,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,CAAiC,EAC3F,IAAI,CACP,CAAC;YACF,IAAI,OAAO,EAAE,CAAC;gBACV,UAAU,GAAG,MAAM,CAAC;YACxB,CAAC;YACD,OAAO,OAAO,CAAC;QACnB,CAAC;IACL,CAAC,CAAC;SACD,SAAS,CAAC,GAAG,EAAE;QACZ,yBAAyB;QACzB,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC,CAAC;AACX,CAAC;AAED,SAAS,eAAe,CAAC,CAAW,EAAE,UAAyD,EAAE,IAAS;IACtG,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC/C,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC/C,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACnC,CAAC;IAED,gEAAgE;IAChE,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,UAAU,GAAG,iBAAiB,CAChC,CAAC,EACD,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAChD,IAAI,CACP,CAAC;IAEF,iDAAiD;IACjD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC;IAChF,OAAO,MAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAW,EAAE,UAAwC,EAAE,IAAS;IACtF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC/C,CAAC;IACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACtD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,iBAAiB,CACtB,CAAW,EACX,UAAqF,EACrF,IAAS;IAET,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QAC/C,6CAA6C;QAC7C,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC3C,OAAO;YACH,MAAM,EAAE,SAAS;YACjB,yEAAyE;YACzE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;SAC7C,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,oDAAoD;IACpD,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;;QAC3C,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAA,MAAA,CAAC,CAAC,MAAM,CAAC,KAAK,0CAAE,MAAM,mCAAI,EAAE,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAA,MAAA,CAAC,CAAC,MAAM,CAAC,KAAK,0CAAE,MAAM,mCAAI,EAAE,CAAC,CAAC;QACnE,OAAO,MAAM,GAAG,MAAM,CAAC;IAC3B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACN,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAoB;IAC/C,OAAO,MAAM;SACR,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC;SACrD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;SACjC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,UAAU,CAAwB,CAAW,EAAE,MAAwB;IAC5E,OAAO,MAAM,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAChE,CAAC"}
|