@rocicorp/zero 0.20.2025051501 → 0.20.2025051600

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 (93) hide show
  1. package/out/{chunk-A64L6YZK.js → chunk-DN6AE4Z6.js} +5 -5
  2. package/out/{chunk-P3G5C3ZW.js → chunk-IKN2MNWU.js} +2 -2
  3. package/out/{chunk-ILWAR46C.js → chunk-MIYN75UK.js} +203 -274
  4. package/out/chunk-MIYN75UK.js.map +7 -0
  5. package/out/{inspector-B2ZMZ35Y.js → inspector-2QLL7CGJ.js} +3 -3
  6. package/out/otel/src/log-options.d.ts +0 -12
  7. package/out/otel/src/log-options.d.ts.map +1 -1
  8. package/out/otel/src/log-options.js +0 -21
  9. package/out/otel/src/log-options.js.map +1 -1
  10. package/out/react.js +1 -1
  11. package/out/solid.js +3 -3
  12. package/out/zero/src/zero-cache-dev.js +5 -1
  13. package/out/zero/src/zero-cache-dev.js.map +1 -1
  14. package/out/zero-cache/src/auth/read-authorizer.d.ts.map +1 -1
  15. package/out/zero-cache/src/auth/read-authorizer.js +2 -2
  16. package/out/zero-cache/src/auth/read-authorizer.js.map +1 -1
  17. package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
  18. package/out/zero-cache/src/auth/write-authorizer.js +2 -2
  19. package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
  20. package/out/zero-cache/src/config/zero-config.d.ts +8 -24
  21. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  22. package/out/zero-cache/src/config/zero-config.js +11 -3
  23. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  24. package/out/zero-cache/src/scripts/permissions.d.ts +0 -12
  25. package/out/zero-cache/src/scripts/permissions.d.ts.map +1 -1
  26. package/out/zero-cache/src/server/logging.d.ts.map +1 -1
  27. package/out/zero-cache/src/server/logging.js +2 -2
  28. package/out/zero-cache/src/server/logging.js.map +1 -1
  29. package/out/zero-cache/src/server/otel-log-sink.d.ts +1 -2
  30. package/out/zero-cache/src/server/otel-log-sink.d.ts.map +1 -1
  31. package/out/zero-cache/src/server/otel-log-sink.js +4 -5
  32. package/out/zero-cache/src/server/otel-log-sink.js.map +1 -1
  33. package/out/zero-cache/src/server/otel-start.d.ts +1 -6
  34. package/out/zero-cache/src/server/otel-start.d.ts.map +1 -1
  35. package/out/zero-cache/src/server/otel-start.js +54 -45
  36. package/out/zero-cache/src/server/otel-start.js.map +1 -1
  37. package/out/zero-cache/src/server/syncer.js +2 -2
  38. package/out/zero-cache/src/server/syncer.js.map +1 -1
  39. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +1 -0
  40. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
  41. package/out/zero-cache/src/services/change-source/pg/initial-sync.js +61 -56
  42. package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
  43. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
  44. package/out/zero-cache/src/services/view-syncer/cvr-store.js +5 -4
  45. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
  46. package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
  47. package/out/zero-cache/src/services/view-syncer/cvr.js +6 -5
  48. package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
  49. package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +8 -8
  50. package/out/zero-cache/src/services/view-syncer/schema/types.js +2 -2
  51. package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -1
  52. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  53. package/out/zero-cache/src/services/view-syncer/view-syncer.js +5 -5
  54. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  55. package/out/zero-cache/src/types/lite.d.ts +2 -3
  56. package/out/zero-cache/src/types/lite.d.ts.map +1 -1
  57. package/out/zero-cache/src/types/lite.js +2 -3
  58. package/out/zero-cache/src/types/lite.js.map +1 -1
  59. package/out/zero.js +3 -3
  60. package/out/zql/src/builder/builder.d.ts.map +1 -1
  61. package/out/zql/src/builder/builder.js +19 -38
  62. package/out/zql/src/builder/builder.js.map +1 -1
  63. package/out/zql/src/builder/filter.d.ts.map +1 -1
  64. package/out/zql/src/builder/filter.js +12 -30
  65. package/out/zql/src/builder/filter.js.map +1 -1
  66. package/out/zql/src/query/expression.d.ts +2 -1
  67. package/out/zql/src/query/expression.d.ts.map +1 -1
  68. package/out/zql/src/query/expression.js +19 -0
  69. package/out/zql/src/query/expression.js.map +1 -1
  70. package/out/zql/src/query/query-impl.d.ts.map +1 -1
  71. package/out/zql/src/query/query-impl.js +2 -3
  72. package/out/zql/src/query/query-impl.js.map +1 -1
  73. package/package.json +2 -1
  74. package/out/chunk-ILWAR46C.js.map +0 -7
  75. package/out/otel/src/noop-metric-exporter.d.ts +0 -8
  76. package/out/otel/src/noop-metric-exporter.d.ts.map +0 -1
  77. package/out/otel/src/noop-metric-exporter.js +0 -11
  78. package/out/otel/src/noop-metric-exporter.js.map +0 -1
  79. package/out/otel/src/noop-span-exporter.d.ts +0 -8
  80. package/out/otel/src/noop-span-exporter.d.ts.map +0 -1
  81. package/out/otel/src/noop-span-exporter.js +0 -14
  82. package/out/otel/src/noop-span-exporter.js.map +0 -1
  83. package/out/zero-cache/src/db/pg-copy.d.ts +0 -26
  84. package/out/zero-cache/src/db/pg-copy.d.ts.map +0 -1
  85. package/out/zero-cache/src/db/pg-copy.js +0 -115
  86. package/out/zero-cache/src/db/pg-copy.js.map +0 -1
  87. package/out/zql/src/query/dnf.d.ts +0 -10
  88. package/out/zql/src/query/dnf.d.ts.map +0 -1
  89. package/out/zql/src/query/dnf.js +0 -57
  90. package/out/zql/src/query/dnf.js.map +0 -1
  91. /package/out/{chunk-A64L6YZK.js.map → chunk-DN6AE4Z6.js.map} +0 -0
  92. /package/out/{chunk-P3G5C3ZW.js.map → chunk-IKN2MNWU.js.map} +0 -0
  93. /package/out/{inspector-B2ZMZ35Y.js.map → inspector-2QLL7CGJ.js.map} +0 -0
@@ -1,8 +0,0 @@
1
- import { type PushMetricExporter, type ResourceMetrics } from '@opentelemetry/sdk-metrics';
2
- import type { ExportResult } from '@opentelemetry/core';
3
- export declare class NoopMetricExporter implements PushMetricExporter {
4
- export(_metrics: ResourceMetrics, _resultCallback: (result: ExportResult) => void): void;
5
- forceFlush(): Promise<void>;
6
- shutdown(): Promise<void>;
7
- }
8
- //# sourceMappingURL=noop-metric-exporter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"noop-metric-exporter.d.ts","sourceRoot":"","sources":["../../../../otel/src/noop-metric-exporter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAEtD,qBAAa,kBAAmB,YAAW,kBAAkB;IAC3D,MAAM,CACJ,QAAQ,EAAE,eAAe,EACzB,eAAe,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAC9C,IAAI;IAEP,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAG1B"}
@@ -1,11 +0,0 @@
1
- import {} from '@opentelemetry/sdk-metrics';
2
- export class NoopMetricExporter {
3
- export(_metrics, _resultCallback) { }
4
- forceFlush() {
5
- return Promise.resolve();
6
- }
7
- shutdown() {
8
- return Promise.resolve();
9
- }
10
- }
11
- //# sourceMappingURL=noop-metric-exporter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"noop-metric-exporter.js","sourceRoot":"","sources":["../../../../otel/src/noop-metric-exporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,MAAM,4BAA4B,CAAC;AAGpC,MAAM,OAAO,kBAAkB;IAC7B,MAAM,CACJ,QAAyB,EACzB,eAA+C,IACxC,CAAC;IAEV,UAAU;QACR,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF"}
@@ -1,8 +0,0 @@
1
- import { type ExportResult } from '@opentelemetry/core';
2
- import { type SpanExporter, type ReadableSpan } from '@opentelemetry/sdk-trace-node';
3
- export declare class NoopSpanExporter implements SpanExporter {
4
- export(_spans: ReadableSpan[], resultCallback: (result: ExportResult) => void): void;
5
- forceFlush(): Promise<void>;
6
- shutdown(): Promise<void>;
7
- }
8
- //# sourceMappingURL=noop-span-exporter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"noop-span-exporter.d.ts","sourceRoot":"","sources":["../../../../otel/src/noop-span-exporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACxE,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,+BAA+B,CAAC;AAEvC,qBAAa,gBAAiB,YAAW,YAAY;IACnD,MAAM,CACJ,MAAM,EAAE,YAAY,EAAE,EACtB,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAC7C,IAAI;IAIP,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAG1B"}
@@ -1,14 +0,0 @@
1
- import { ExportResultCode } from '@opentelemetry/core';
2
- import {} from '@opentelemetry/sdk-trace-node';
3
- export class NoopSpanExporter {
4
- export(_spans, resultCallback) {
5
- resultCallback({ code: ExportResultCode.SUCCESS });
6
- }
7
- forceFlush() {
8
- return Promise.resolve();
9
- }
10
- shutdown() {
11
- return Promise.resolve();
12
- }
13
- }
14
- //# sourceMappingURL=noop-span-exporter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"noop-span-exporter.js","sourceRoot":"","sources":["../../../../otel/src/noop-span-exporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAoB,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAGN,MAAM,+BAA+B,CAAC;AAEvC,MAAM,OAAO,gBAAgB;IAC3B,MAAM,CACJ,MAAsB,EACtB,cAA8C;QAE9C,cAAc,CAAC,EAAC,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAC,CAAC,CAAC;IACnD,CAAC;IAED,UAAU;QACR,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF"}
@@ -1,26 +0,0 @@
1
- import { Transform } from 'node:stream';
2
- import type { PostgresDB } from '../types/pg.ts';
3
- /**
4
- * A stream Transform that parses a Postgres `COPY ... TO` text stream
5
- * into arrays of string / null values.
6
- */
7
- export declare class TextTransform extends Transform {
8
- #private;
9
- constructor();
10
- _transform(chunk: Buffer, encoding: BufferEncoding, callback: (e?: Error) => void): void;
11
- }
12
- /**
13
- * A stream Transform that transforms the array of strings outputted by
14
- * the {@link TextTransform} and parses them to their Javascript values
15
- * as directed by the supplied list of column types.
16
- */
17
- export declare class RowTransform extends Transform {
18
- #private;
19
- static create(db: PostgresDB, columns: {
20
- typeOID: number;
21
- dataType?: string;
22
- }[]): Promise<RowTransform>;
23
- private constructor();
24
- _transform(row: string[], _encoding: string, callback: (e?: Error) => void): void;
25
- }
26
- //# sourceMappingURL=pg-copy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pg-copy.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/db/pg-copy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAEtC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAG/C;;;GAGG;AACH,qBAAa,aAAc,SAAQ,SAAS;;;IAU1C,UAAU,CACR,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI;CA+DhC;AAgBD;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,SAAS;;WAC5B,MAAM,CACjB,EAAE,EAAE,UAAU,EACd,OAAO,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAC,EAAE;IAWjD,OAAO;IAMP,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI;CAkB3E"}
@@ -1,115 +0,0 @@
1
- import { Transform } from 'node:stream';
2
- import { assert, assertArray } from "../../../shared/src/asserts.js";
3
- import { getTypeParsers } from "./pg-type-parser.js";
4
- /**
5
- * A stream Transform that parses a Postgres `COPY ... TO` text stream
6
- * into arrays of string / null values.
7
- */
8
- export class TextTransform extends Transform {
9
- #currRow = [];
10
- #currCol = '';
11
- #escaped = false;
12
- constructor() {
13
- super({ objectMode: true });
14
- }
15
- // eslint-disable-next-line @typescript-eslint/naming-convention
16
- _transform(chunk, encoding, callback) {
17
- try {
18
- const text = chunk.toString(encoding);
19
- let l = 0;
20
- let r = 0;
21
- for (; r < text.length; r++) {
22
- const ch = text.charCodeAt(r);
23
- if (this.#escaped) {
24
- const escapedChar = ESCAPED_CHARACTERS[ch];
25
- if (escapedChar === undefined) {
26
- throw new Error(`Unexpected escape character \\${String.fromCharCode(ch)}`);
27
- }
28
- this.#currCol += escapedChar;
29
- l = r + 1;
30
- this.#escaped = false;
31
- continue;
32
- }
33
- switch (ch) {
34
- case 0x5c: // '\'
35
- // flush segment
36
- l < r && (this.#currCol += text.substring(l, r));
37
- l = r + 1;
38
- this.#escaped = true;
39
- break;
40
- case 0x09: // '\t'
41
- case 0x0a: // '\n'
42
- // flush segment
43
- l < r && (this.#currCol += text.substring(l, r));
44
- l = r + 1;
45
- // Column is done in both cases.
46
- this.#currRow.push(
47
- // The lone NULL byte signifies that the column value is `null`.
48
- // (Postgres does not permit NULL bytes in TEXT values).
49
- //
50
- // Note that although NULL bytes can appear in JSON strings,
51
- // those will always be represented within double-quotes,
52
- // and thus never as a lone NULL byte.
53
- this.#currCol === NULL_BYTE ? null : this.#currCol);
54
- this.#currCol = '';
55
- if (ch === 0x0a /* \n */) {
56
- // Row is also done on \n
57
- this.push(this.#currRow);
58
- this.#currRow = [];
59
- }
60
- break;
61
- }
62
- }
63
- // flush segment
64
- l < r && (this.#currCol += text.substring(l, r));
65
- callback();
66
- }
67
- catch (e) {
68
- callback(e instanceof Error ? e : new Error(String(e)));
69
- }
70
- }
71
- }
72
- const NULL_BYTE = '\u0000';
73
- // escaped characters used in https://www.postgresql.org/docs/current/sql-copy.html
74
- const ESCAPED_CHARACTERS = {
75
- 0x4e: NULL_BYTE, // \N signifies the NULL character.
76
- 0x5c: '\\',
77
- 0x62: '\b',
78
- 0x66: '\f',
79
- 0x6e: '\n',
80
- 0x72: '\r',
81
- 0x74: '\t',
82
- 0x76: '\v',
83
- };
84
- /**
85
- * A stream Transform that transforms the array of strings outputted by
86
- * the {@link TextTransform} and parses them to their Javascript values
87
- * as directed by the supplied list of column types.
88
- */
89
- export class RowTransform extends Transform {
90
- static async create(db, columns) {
91
- const typeParsers = await getTypeParsers(db);
92
- const columnParsers = columns.map(c => typeParsers.getTypeParser(c.typeOID));
93
- return new RowTransform(columnParsers);
94
- }
95
- #columnParsers;
96
- constructor(columnParsers) {
97
- super({ objectMode: true });
98
- this.#columnParsers = columnParsers;
99
- }
100
- // eslint-disable-next-line @typescript-eslint/naming-convention
101
- _transform(row, _encoding, callback) {
102
- try {
103
- // sanity check that this is preceded by a TextTransform in the pipeline
104
- assertArray(row);
105
- assert(row.length === this.#columnParsers.length, `Expected row to have ${this.#columnParsers.length} values but found ${row.length}`);
106
- const parsed = row.map((val, pos) => val === null ? null : this.#columnParsers[pos](val));
107
- this.push(parsed);
108
- callback();
109
- }
110
- catch (e) {
111
- callback(e instanceof Error ? e : new Error(String(e)));
112
- }
113
- }
114
- }
115
- //# sourceMappingURL=pg-copy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pg-copy.js","sourceRoot":"","sources":["../../../../../zero-cache/src/db/pg-copy.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import type { Condition } from '../../../zero-protocol/src/ast.ts';
2
- /**
3
- * DNF (Disjunctive Normal Form) is a way to represent a boolean expression as a
4
- * series of `or` conditions where each `or` condition is a series of `and`
5
- * conditions. The `and` conditions are the terms (SimpleCondition) of the
6
- * expression.
7
- */
8
- export declare function dnf(condition: Condition): Condition;
9
- export declare function unwrap(c: Condition): Condition;
10
- //# sourceMappingURL=dnf.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dnf.d.ts","sourceRoot":"","sources":["../../../../../zql/src/query/dnf.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,SAAS,EAAc,MAAM,mCAAmC,CAAC;AAG9E;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAEnD;AA+CD,wBAAgB,MAAM,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS,CAQ9C"}
@@ -1,57 +0,0 @@
1
- import { unreachable } from "../../../shared/src/asserts.js";
2
- import { flatten, TRUE } from "./expression.js";
3
- /**
4
- * DNF (Disjunctive Normal Form) is a way to represent a boolean expression as a
5
- * series of `or` conditions where each `or` condition is a series of `and`
6
- * conditions. The `and` conditions are the terms (SimpleCondition) of the
7
- * expression.
8
- */
9
- export function dnf(condition) {
10
- return unwrap(dnfInner(condition));
11
- }
12
- function dnfInner(condition) {
13
- switch (condition.type) {
14
- case 'simple':
15
- case 'correlatedSubquery':
16
- return { type: 'or', conditions: [condition] };
17
- case 'and':
18
- return distributeAnd(condition.conditions.map(dnfInner));
19
- case 'or':
20
- return {
21
- type: 'or',
22
- conditions: flatten('or', condition.conditions.map(dnfInner).flatMap(c => c.conditions)),
23
- };
24
- default:
25
- unreachable(condition);
26
- }
27
- }
28
- function distributeAnd(conditions) {
29
- if (conditions.length === 0) {
30
- return { type: 'or', conditions: [TRUE] };
31
- }
32
- return conditions.reduce((acc, orCondition) => {
33
- const newConditions = [];
34
- for (const accCondition of acc.conditions) {
35
- for (const orSubCondition of orCondition.conditions) {
36
- newConditions.push({
37
- type: 'and',
38
- conditions: [accCondition, orSubCondition],
39
- });
40
- }
41
- }
42
- return {
43
- type: 'or',
44
- conditions: flatten('or', newConditions),
45
- };
46
- });
47
- }
48
- export function unwrap(c) {
49
- if (c.type === 'simple' || c.type === 'correlatedSubquery') {
50
- return c;
51
- }
52
- if (c.conditions.length === 1) {
53
- return unwrap(c.conditions[0]);
54
- }
55
- return { type: c.type, conditions: flatten(c.type, c.conditions.map(unwrap)) };
56
- }
57
- //# sourceMappingURL=dnf.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dnf.js","sourceRoot":"","sources":["../../../../../zql/src/query/dnf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAE3D,OAAO,EAAC,OAAO,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,UAAU,GAAG,CAAC,SAAoB;IACtC,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,QAAQ,CAAC,SAAoB;IACpC,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,QAAQ,CAAC;QACd,KAAK,oBAAoB;YACvB,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAC,CAAC;QAE/C,KAAK,KAAK;YACR,OAAO,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE3D,KAAK,IAAI;YACP,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,OAAO,CACjB,IAAI,EACJ,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAC9D;aACF,CAAC;QAEJ;YACE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,UAAyB;IAC9C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,EAAC,CAAC;IAC1C,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW,EAAe,EAAE;QACzD,MAAM,aAAa,GAAgB,EAAE,CAAC;QACtC,KAAK,MAAM,YAAY,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAC1C,KAAK,MAAM,cAAc,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;gBACpD,aAAa,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,KAAK;oBACX,UAAU,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;iBAC3C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO;YACL,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC;SACzC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,CAAY;IACjC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;QAC3D,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,EAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC;AAC/E,CAAC"}