@hydranium/core 1.0.0-next.381 → 1.0.0-next.384
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 +1 -1
- package/lib/documents/file-system-task-queue.d.ts.map +1 -1
- package/lib/documents/file-system-task-queue.js +4 -1
- package/lib/documents/file-system-task-queue.js.map +1 -1
- package/lib/documents/hydranium-text-documents.d.ts +8 -0
- package/lib/documents/hydranium-text-documents.d.ts.map +1 -1
- package/lib/documents/hydranium-text-documents.js +16 -1
- package/lib/documents/hydranium-text-documents.js.map +1 -1
- package/lib/documents/version-sync-service.d.ts +8 -0
- package/lib/documents/version-sync-service.d.ts.map +1 -1
- package/lib/documents/version-sync-service.js +10 -1
- package/lib/documents/version-sync-service.js.map +1 -1
- package/lib/testing/node/index.d.ts +4 -2
- package/lib/testing/node/index.d.ts.map +1 -1
- package/lib/testing/node/index.js +4 -2
- package/lib/testing/node/index.js.map +1 -1
- package/lib/testing/node/scratch-workspace.d.ts +2 -1
- package/lib/testing/node/scratch-workspace.d.ts.map +1 -1
- package/lib/testing/node/scratch-workspace.js +2 -1
- package/lib/testing/node/scratch-workspace.js.map +1 -1
- package/lib/testing/node/settle-server.d.ts +33 -0
- package/lib/testing/node/settle-server.d.ts.map +1 -0
- package/lib/testing/node/settle-server.js +84 -0
- package/lib/testing/node/settle-server.js.map +1 -0
- package/package.json +5 -5
- package/src/documents/file-system-task-queue.ts +4 -1
- package/src/documents/hydranium-text-documents.ts +17 -1
- package/src/documents/version-sync-service.ts +16 -1
- package/src/testing/node/index.ts +4 -2
- package/src/testing/node/scratch-workspace.ts +2 -1
- package/src/testing/node/settle-server.ts +89 -0
- package/lib/testing/node/unhandled-rejections.d.ts +0 -20
- package/lib/testing/node/unhandled-rejections.d.ts.map +0 -1
- package/lib/testing/node/unhandled-rejections.js +0 -32
- package/lib/testing/node/unhandled-rejections.js.map +0 -1
- package/src/testing/node/unhandled-rejections.ts +0 -31
package/README.md
CHANGED
|
@@ -76,7 +76,7 @@ See *Compose a server by hand* and *Add a validation check* in
|
|
|
76
76
|
| `./node` | The Node filesystem, the stdio and socket launchers, the headless tools | Node-only |
|
|
77
77
|
| `./messages` | Validation messages with stable codes, and the codes this package raises | browser-neutral |
|
|
78
78
|
| `./testing` | Parsing and service doubles for unit tests | browser-neutral |
|
|
79
|
-
| `./testing/node` | Scratch workspaces, the LSP harness, a spawned server
|
|
79
|
+
| `./testing/node` | Scratch workspaces and the server settle, the LSP harness, a spawned server | Node-only |
|
|
80
80
|
| `./testing/playwright` | Playwright fixtures that capture the server log | Node-only |
|
|
81
81
|
|
|
82
82
|
The subpaths need a TypeScript `moduleResolution` that reads `exports`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-system-task-queue.d.ts","sourceRoot":"","sources":["../../src/documents/file-system-task-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAErF;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IACjC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5D,sDAAsD;IACtD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAED,qBAAa,0BAA2B,YAAW,mBAAmB;IACnE;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,MAAM,mCAA0C;IAEnE,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IAEhD,YAAY,QAAQ,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC,CAAA;KAAE,EAEzG;IAED,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"file-system-task-queue.d.ts","sourceRoot":"","sources":["../../src/documents/file-system-task-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAErF;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IACjC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5D,sDAAsD;IACtD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAED,qBAAa,0BAA2B,YAAW,mBAAmB;IACnE;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,MAAM,mCAA0C;IAEnE,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IAEhD,YAAY,QAAQ,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC,CAAA;KAAE,EAEzG;IAED,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAiB1D;IAED,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE3B;CACH"}
|
|
@@ -21,6 +21,9 @@ export class DefaultFileSystemTaskQueue {
|
|
|
21
21
|
enqueue(uri, task) {
|
|
22
22
|
const key = this.uriPolicy.canonicalUri(uri);
|
|
23
23
|
const result = (this.queues.get(key) ?? Promise.resolve()).then(task);
|
|
24
|
+
// Derived, so a dropped failure is reported, and before `settled`, so the
|
|
25
|
+
// caller resumes before the next task starts.
|
|
26
|
+
const handed = result.then(value => value);
|
|
24
27
|
const settled = result.then(() => undefined, () => undefined);
|
|
25
28
|
this.queues.set(key, settled);
|
|
26
29
|
void settled.then(() => {
|
|
@@ -28,7 +31,7 @@ export class DefaultFileSystemTaskQueue {
|
|
|
28
31
|
this.queues.delete(key);
|
|
29
32
|
}
|
|
30
33
|
});
|
|
31
|
-
return
|
|
34
|
+
return handed;
|
|
32
35
|
}
|
|
33
36
|
isIdle(uri) {
|
|
34
37
|
return !this.queues.has(this.uriPolicy.canonicalUri(uri));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-system-task-queue.js","sourceRoot":"","sources":["../../src/documents/file-system-task-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAgClF,MAAM,OAAO,0BAA0B;IACpC;;;;;OAKG;IACgB,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAC;IAEhD,SAAS,CAAoB;IAEhD,YAAY,QAA8F;QACvG,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC;IACzD,CAAC;IAED,OAAO,CAAI,GAAW,EAAE,IAAsB;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CACxB,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CACjB,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;YACpB,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,GAAW;QACf,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;CACH"}
|
|
1
|
+
{"version":3,"file":"file-system-task-queue.js","sourceRoot":"","sources":["../../src/documents/file-system-task-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAgClF,MAAM,OAAO,0BAA0B;IACpC;;;;;OAKG;IACgB,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAC;IAEhD,SAAS,CAAoB;IAEhD,YAAY,QAA8F;QACvG,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC;IACzD,CAAC;IAED,OAAO,CAAI,GAAW,EAAE,IAAsB;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,0EAA0E;QAC1E,8CAA8C;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CACxB,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CACjB,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;YACpB,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,GAAW;QACf,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;CACH"}
|
|
@@ -134,6 +134,8 @@ export declare class HydraniumTextDocuments<T extends TextDocument = TextDocumen
|
|
|
134
134
|
protected __dirtyStateTracker: DirtyStateTracker | undefined;
|
|
135
135
|
protected __documentReleaseScheduler: DocumentReleaseScheduler | undefined;
|
|
136
136
|
protected readonly documentReleasedEmitter: Emitter<DocumentReleasedEvent>;
|
|
137
|
+
/** Each release the `DocumentReleaseHandler` slot has not settled yet. */
|
|
138
|
+
protected readonly releasesInFlight: Set<Promise<void>>;
|
|
137
139
|
protected readonly languageClientSavedEmitter: Emitter<LanguageClientSavedEvent>;
|
|
138
140
|
constructor(services: ServerSharedServices, options?: HydraniumTextDocumentsOptions<T>);
|
|
139
141
|
protected get textLedger(): TextLedger;
|
|
@@ -224,6 +226,12 @@ export declare class HydraniumTextDocuments<T extends TextDocument = TextDocumen
|
|
|
224
226
|
* released it, a session's close of its other documents included.
|
|
225
227
|
*/
|
|
226
228
|
protected handOverRelease(released: ReleasedDocument, cleanAnnouncement: CleanAnnouncement | undefined): void;
|
|
229
|
+
/**
|
|
230
|
+
* Resolves once the `DocumentReleaseHandler` slot has settled every
|
|
231
|
+
* release, including those handed over while waiting. A release still
|
|
232
|
+
* waiting out its grace has not been handed over.
|
|
233
|
+
*/
|
|
234
|
+
releasesSettled(): Promise<void>;
|
|
227
235
|
/** `uri` as the `DocumentReleaseHandler` slot receives it. */
|
|
228
236
|
protected toReleasedDocument(uri: CanonicalUri): ReleasedDocument;
|
|
229
237
|
notifyWillSaveTextDocument(event: WillSaveTextDocumentParams): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hydranium-text-documents.d.ts","sourceRoot":"","sources":["../../src/documents/hydranium-text-documents.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hydranium-text-documents.d.ts","sourceRoot":"","sources":["../../src/documents/hydranium-text-documents.ts"],"names":[],"mappings":"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"}
|
|
@@ -90,6 +90,8 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
|
|
|
90
90
|
__dirtyStateTracker;
|
|
91
91
|
__documentReleaseScheduler;
|
|
92
92
|
documentReleasedEmitter = new Emitter();
|
|
93
|
+
/** Each release the `DocumentReleaseHandler` slot has not settled yet. */
|
|
94
|
+
releasesInFlight = new Set();
|
|
93
95
|
languageClientSavedEmitter = new Emitter();
|
|
94
96
|
constructor(services, options = {}) {
|
|
95
97
|
const configuration = options.configuration ?? TextDocument;
|
|
@@ -455,7 +457,7 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
|
|
|
455
457
|
cleanAnnouncement.announce(inBuild ? this.textState(released.uri) : undefined);
|
|
456
458
|
}
|
|
457
459
|
};
|
|
458
|
-
settled.then(() => announceClean(true), (err) => {
|
|
460
|
+
const handled = settled.then(() => announceClean(true), (err) => {
|
|
459
461
|
// A release skipped at teardown, its peer or its workspace gone, is
|
|
460
462
|
// routine, not a fault to investigate.
|
|
461
463
|
if (isDocumentReleaseSkippedError(err)) {
|
|
@@ -467,6 +469,19 @@ export class HydraniumTextDocuments extends NormalizedTextDocuments {
|
|
|
467
469
|
// Left unsettled, a watcher keeps the document dirty though the store answers clean.
|
|
468
470
|
announceClean(false);
|
|
469
471
|
});
|
|
472
|
+
this.releasesInFlight.add(handled);
|
|
473
|
+
// A throw from the announcement surfaces once, as an unhandled rejection of the `finally` copy.
|
|
474
|
+
void handled.finally(() => this.releasesInFlight.delete(handled));
|
|
475
|
+
}
|
|
476
|
+
/**
|
|
477
|
+
* Resolves once the `DocumentReleaseHandler` slot has settled every
|
|
478
|
+
* release, including those handed over while waiting. A release still
|
|
479
|
+
* waiting out its grace has not been handed over.
|
|
480
|
+
*/
|
|
481
|
+
async releasesSettled() {
|
|
482
|
+
while (this.releasesInFlight.size > 0) {
|
|
483
|
+
await Promise.allSettled(this.releasesInFlight);
|
|
484
|
+
}
|
|
470
485
|
}
|
|
471
486
|
/** `uri` as the `DocumentReleaseHandler` slot receives it. */
|
|
472
487
|
toReleasedDocument(uri) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hydranium-text-documents.js","sourceRoot":"","sources":["../../src/documents/hydranium-text-documents.ts"],"names":[],"mappings":"AAAA;;;;;;;;kFAQkF;AAElF,4EAA4E;AAC5E,yEAAyE;AACzE,wEAAwE;AACxE,2IAA2I;AAE3I,2EAA2E;AAC3E,wEAAwE;AACxE,4EAA4E;AAC5E,4EAA4E;AAC5E,sDAAsD;AACtD,oEAAoE;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAY,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EASJ,OAAO,EAGP,uCAAuC,EAGvC,gBAAgB,EAChB,oBAAoB,EAKtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAoB,YAAY,EAAuC,MAAM,oCAAoC,CAAC;AACzH,OAAO,EAGJ,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EAGvB,aAAa,EAEb,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAiC,qBAAqB,EAAwB,MAAM,8BAA8B,CAAC;AAC1H,OAAO,EAAE,2BAA2B,EAA+D,MAAM,6BAA6B,CAAC;AACvI,OAAO,EAAE,iBAAiB,EAAmB,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAyB,MAAM,+BAA+B,CAAC;AACrG,OAAO,EAAE,+BAA+B,EAAiC,MAAM,iCAAiC,CAAC;AACjH,OAAO,EAEJ,wBAAwB,EAG1B,MAAM,0BAA0B,CAAC;AAElC;;;;;;GAMG;AACH,MAAM,sBAAsB,GAAG,IAAyB,CAAC;AAmCzD;;;;GAIG;AACH,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAgDxC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,sBAA8D,SAAQ,uBAA0B;IAyB7F,QAAQ;IACC,OAAO;IAzB7B,oGAAoG;IACjF,gBAAgB,GAAG,IAAI,GAAG,EAAwB,CAAC;IAEtE;;;;;OAKG;IACgB,UAAU,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAE5D,+EAA+E;IAC5D,gBAAgB,GAAG,IAAI,GAAG,EAA6B,CAAC;IAExD,MAAM,CAAS;IACf,aAAa,CAAgC;IACtD,YAAY,CAAyB;IACrC,sBAAsB,CAAmC;IACzD,mBAAmB,CAAgC;IACnD,0BAA0B,CAAuC;IACxD,uBAAuB,GAAG,IAAI,OAAO,EAAyB,CAAC;IAC/D,0BAA0B,GAAG,IAAI,OAAO,EAA4B,CAAC;IAExF,YACa,QAA8B,EACrB,OAAO,GAAqC,EAAE;QAEjE,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAK,YAAyD,CAAC;QAC1G,KAAK,CAAC,aAAa,CAAC,CAAC;wBAJX,QAAQ;uBACC,OAAO;QAI1B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,eAAe,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC/F,CAAC;IAED,4EAA4E;IAC5E,iFAAiF;IAEjF,IAAc,UAAU;QACrB,OAAO,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,IAAc,oBAAoB;QAC/B,OAAO,CAAC,IAAI,CAAC,sBAAsB,KAAK,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,IAAc,iBAAiB;QAC5B,OAAO,CAAC,IAAI,CAAC,mBAAmB,KAAK,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,IAAc,wBAAwB;QACnC,OAAO,CAAC,IAAI,CAAC,0BAA0B,KAAK,IAAI,CAAC,8BAA8B,EAAE,CAAC,CAAC;IACtF,CAAC;IAES,gBAAgB;QACvB,OAAO,IAAI,iBAAiB,EAAE,CAAC;IAClC,CAAC;IAES,0BAA0B;QACjC,OAAO,IAAI,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAES,uBAAuB;QAC9B,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;IAES,8BAA8B;QACrC,OAAO,IAAI,+BAA+B,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,wBAAwB,CAAC,CAAC;IAC5H,CAAC;IAED,gFAAgF;IACtE,UAAU,CAAC,GAAiB,EAAE,QAAW,EAAE,MAAc;QAChE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;OAMG;IACO,YAAY,CACnB,GAAiB,EACjB,QAAW,EACX,OAAyC,EACzC,MAAc;QAEd,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QACjC,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,YAAY,CAAC;QAChD,IAAI,OAAO,EAAE,CAAC;YACX,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACL,sDAAsD;YACtD,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YACtC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACtC,CAAC;IAED,2EAA2E;IAC3E,4EAA4E;IAC5E,yEAAyE;IACzE,2CAA2C;IAEpC,MAAM,CAAC,GAAW,EAAE,UAAkB,EAAE,OAAe,EAAE,OAAe;QAC5E,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAEM,MAAM,CAAC,QAAW,EAAE,OAAyC,EAAE,OAAe;QAClF,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAED,IAAc,iBAAiB;QAC5B,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACnC,CAAC;IAED,IAAc,oBAAoB;QAC/B,OAAO,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACtC,CAAC;IAED,IAAa,kBAAkB;QAC5B,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;IAC1C,CAAC;IAED,IAAc,WAAW;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC;IAED,IAAa,SAAS;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;IACjC,CAAC;IAED,IAAc,YAAY;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC;IAED,IAAa,UAAU;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;IAClC,CAAC;IAED,IAAc,WAAW;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC;IAED,IAAa,SAAS;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;IACpC,CAAC;IAED,IAAc,YAAY;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC;IAED,IAAc,mBAAmB;QAC9B,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACrC,CAAC;IAEe,MAAM,CAAC,UAAsB;QAC1C,sEAAsE;QACtE,uDAAuD;QACvD,yEAAyE;QACzE,wEAAwE;QACxE,qEAAqE;QACrE,yEAAyE;QACzE,yEAAyE;QACzE,0EAA0E;QAC1E,0EAA0E;QAC1E,wBAAwB;QACvB,UAAwD,CAAC,kBAAkB,GAAG,oBAAoB,CAAC,WAAW,CAAC;QAChH,MAAM,WAAW,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC/C,WAAW,CAAC,IAAI,CACb,UAAU,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAgC,EAAE,EAAE;YACzE,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAClC,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC,CAAC,CACJ,CAAC;QACF,WAAW,CAAC,IAAI,CACb,UAAU,CAAC,uBAAuB,CAAC,CAAC,KAAkC,EAAE,EAAE;YACvE,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC,CAAC,CACJ,CAAC;QACF,WAAW,CAAC,IAAI,CACb,UAAU,CAAC,sBAAsB,CAAC,CAAC,KAAiC,EAAE,EAAE;YACrE,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC,CAAC,CACJ,CAAC;QACF,WAAW,CAAC,IAAI,CACb,UAAU,CAAC,sBAAsB,CAAC,CAAC,KAAiC,EAAE,EAAE;YACrE,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC,CAAC,CACJ,CAAC;QACF,WAAW,CAAC,IAAI,CACb,UAAU,CAAC,+BAA+B,CAAC,CAAC,KAAiC,EAAE,KAAwB,EAAE,EAAE,CACxG,IAAI,CAAC,mCAAmC,CAAC,KAAK,EAAE,KAAK,CAAC,CACxD,CACH,CAAC;QACF,WAAW,CAAC,IAAI,CACb,UAAU,CAAC,qBAAqB,CAAC,CAAC,KAAgC,EAAE,EAAE;YACnE,KAAK,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC,CAAC,CACJ,CAAC;QACF,OAAO,WAAW,CAAC;IACtB,CAAC;IAEM,2BAA2B,CAAC,KAAkC,EAAE,QAAQ,GAAG,kBAAkB;QACjG,MAAM,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC;QACrC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;QACV,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QACvB,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,sCAAsC,EAAE,CAAC,GAAG,mCAAmC,CAAC,CAAC;QACpG,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC1B,oEAAoE;YACpE,sEAAsE;YACtE,mEAAmE;YACnE,qEAAqE;YACrE,sEAAsE;YACtE,oEAAoE;YACpE,6CAA6C;YAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,QAAQ,KAAK,kBAAkB,CAAC;YAC/C,MAAM,QAAQ,GACX,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAChF,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC;gBAC9C,QAAQ,CAAC,OAAO,CAAC;YACpB,IAAI,QAAQ,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBAC1B,wFAAwF;gBACxF,oEAAoE;gBACpE,MAAM,MAAM,GACT,QAAQ,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC,OAAO,uBAAuB,QAAQ,EAAE,CAAC;gBAChI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,oBAAoB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;gBAC1F,OAAO;YACV,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;YAE5D,qEAAqE;YACrE,+DAA+D;YAC/D,qEAAqE;YACrE,qDAAqD;YACrD,MAAM,OAAO,GAAgC,MAAM;gBAChD,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;gBACvF,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YACxB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC3B,mEAAmE;gBACnE,qEAAqE;gBACrE,8DAA8D;gBAC9D,oCAAoC;gBACpC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,gEAAgE,EAAE,CAAC,OAAO,GAAG,EAAE,OAAO,CAAC,CAAC;gBACzG,OAAO;YACV,CAAC;YAED,sEAAsE;YACtE,sEAAsE;YACtE,mDAAmD;YACnD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC7H,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;YAC9B,IAAI,MAAM,EAAE,CAAC;gBACV,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACjG,qEAAqE;gBACrE,iEAAiE;gBACjE,2DAA2D;gBAC3D,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,2DAA2D,EAAE,CAAC,OAAO,GAAG,EAAE,OAAO,CAAC,CAAC;oBACpG,OAAO;gBACV,CAAC;YACJ,CAAC;YACD,6CAA6C;YAC7C,IAAI,CAAC,MAAM,CACR,QAAQ,CAAC,GAAG,EACZ,qBAAqB,QAAQ,CAAC,OAAO,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB,EAAE,EAC7H,OAAO,CACT,CAAC;YACF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,kBAAkB,CAAC,GAAgB,EAAE,IAAY,EAAE,QAAgB;QAChE,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,kCAAkC,CAAC,CAAC;QACtE,CAAC;QACD,qFAAqF;QACrF,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GACxB,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC3H,IAAI,CAAC,MAAM,CACR,QAAQ,CAAC,GAAG,EACZ,qBAAqB,QAAQ,CAAC,OAAO,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB,EAAE,EACnH,OAAO,CACT,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACI,0BAA0B,CAC9B,KAAiC,EACjC,QAAQ,GAAG,kBAAkB,EAC7B,KAAK,GAAoB,QAAQ;QAEjC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACnE,gFAAgF;YAChF,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;gBACpD,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACL,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACjD,CAAC;YACD,wEAAwE;YACxE,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzC,OAAO;YACV,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC9C,OAAO;QACV,CAAC;QACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,EAAE,2BAA2B,cAAc,CAAC,OAAO,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACtH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC9E,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;oBACpB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACL,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;gBAC7B,CAAC;YACJ,CAAC;QACJ,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACO,YAAY,CAAC,GAAiB;QACrC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YAC3C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,wCAAwC,IAAI,CAAC,wBAAwB,CAAC,OAAO,uBAAuB,CAAC,CAAC;QACvH,CAAC;IACJ,CAAC;IAED,kHAAkH;IACxG,sBAAsB,CAAC,GAAiB,EAAE,QAAgB;QACjE,IAAI,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;YAC1E,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACJ,CAAC;IAED,yHAAyH;IAC/G,iBAAiB,CAAC,GAAiB;QAC1C,IAAI,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACO,eAAe,CAAC,GAAiB;QACxC,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO;QACV,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,EAAE,2BAA2B,cAAc,CAAC,OAAO,mBAAmB,CAAC,CAAC;QACnG,oEAAoE;QACpE,kCAAkC;QAClC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAClC,4EAA4E;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC1C,iEAAiE;QACjE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;OAMG;IACO,eAAe,CAAC,QAA0B,EAAE,iBAAgD;QACnG,IAAI,OAAsB,CAAC;QAC3B,IAAI,CAAC;YACF,2EAA2E;YAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,sBAAsB,CAAC;YAC/D,OAAO;gBACJ,OAAO,KAAK,SAAS;oBAClB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;oBACxE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACrB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;QACD,yEAAyE;QACzE,sEAAsE;QACtE,oEAAoE;QACpE,kBAAkB;QAClB,MAAM,aAAa,GAAG,CAAC,KAAc,EAAQ,EAAE;YAC5C,IAAI,iBAAiB,EAAE,MAAM,EAAE,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,SAAS,CAAC;gBAC1H,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAClF,CAAC;QACJ,CAAC,CAAC;QACF,OAAO,CAAC,IAAI,CACT,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EACzB,CAAC,GAAY,EAAE,EAAE;YACd,oEAAoE;YACpE,uCAAuC;YACvC,IAAI,6BAA6B,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,2BAA2B,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClG,CAAC;YACD,qFAAqF;YACrF,aAAa,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CACH,CAAC;IACL,CAAC;IAED,8DAA8D;IACpD,kBAAkB,CAAC,GAAiB;QAC3C,OAAO;YACJ,GAAG;YACH,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,GAAG,CAAC;YACtD,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG;YAC/C,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC;SACnF,CAAC;IACL,CAAC;IAEM,0BAA0B,CAAC,KAAiC;QAChE,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5F,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC7F,CAAC;IACJ,CAAC;IAEM,mCAAmC,CACvC,KAAiC,EACjC,KAAwB;QAExB,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5F,IAAI,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC5D,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7G,CAAC;aAAM,CAAC;YACL,OAAO,EAAE,CAAC;QACb,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,wBAAwB,CAAC,KAAgC;QACtE,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5F,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO;QACV,CAAC;QACD,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC;QAC/B,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7D,uEAAuE;QACvE,sEAAsE;QACtE,iEAAiE;QACjE,sEAAsE;QACtE,wEAAwE;QACxE,uEAAuE;QACvE,yEAAyE;QACzE,+DAA+D;QAC/D,sEAAsE;QACtE,wDAAwD;QACxD,IAAI,MAA0B,CAAC;QAC/B,IAAI,CAAC;YACF,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAC1E,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAC1E,CAAC;QACL,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,4DAA4D,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9G,OAAO;QACV,CAAC;QACD,qEAAqE;QACrE,mDAAmD;QACnD,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAClC,uEAAuE;QACvE,mEAAmE;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,cAAc,CAAC;QACrF,IAAI,MAAM,KAAK,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,yEAAyE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YACzH,OAAO;QACV,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACI,yBAAyB,CAAC,KAAgC,EAAE,QAAQ,GAAG,kBAAkB;QAC7F,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5F,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5B,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC;IACJ,CAAC;IAED,gFAAgF;IACtE,YAAY,CAAC,QAAW,EAAE,QAAgB;QACjD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,0BAA0B,QAAQ,CAAC,OAAO,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IAEM,yBAAyB,CAAC,KAAgC,EAAE,QAAQ,GAAG,kBAAkB;QAC7F,MAAM,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACrC,sEAAsE;QACtE,2EAA2E;QAC3E,+BAA+B;QAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,QAAQ,KAAK,kBAAkB,CAAC;QAC/C,gEAAgE;QAChE,sEAAsE;QACtE,qEAAqE;QACrE,kEAAkE;QAClE,uEAAuE;QACvE,qEAAqE;QACrE,0DAA0D;QAC1D,IAAI,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,GAAG,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5E,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,SAAS,EAAE,IAAI,CAAC,CAAC;QAC/H,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;YACtC,iEAAiE;YACjE,uEAAuE;YACvE,wBAAwB;YACxB,OAAO;QACV,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACb,wFAAwF;YACxF,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;YACpD,MAAM,IAAI,GAAG,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC;YACpC,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC;YACnH,IAAI,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;gBAC9B,uEAAuE;gBACvE,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACpG,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,0BAA0B,OAAO,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,MAAM,GAAG,CAAC,CAAC;YAC/G,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAC1D,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACzC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACxC,mEAAmE;YACnE,mEAAmE;YACnE,+DAA+D;YAC/D,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACL,8EAA8E;YAC9E,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YACvE,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACtC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,GAAgB,EAAE,QAAgB;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC1E,OAAO,KAAK,CAAC;QAChB,CAAC;QACD,2DAA2D;QAC3D,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QAChB,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACvC,sEAAsE;QACtE,gCAAgC;QAChC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC;IACf,CAAC;IAES,eAAe,CAAC,GAAgB,EAAE,QAAgB,EAAE,OAAe,EAAE,eAAkC;QAC9G,IAAI,CAAC,GAAG,CACL,GAAG,EACH,kBAAkB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,sCAAsC,OAAO,IAAI;YAC7F,gBAAgB,CAAC,GAAG,eAAe,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACpG,CAAC;IACL,CAAC;IAED,cAAc,CAAC,GAAgB,EAAE,QAAgB;QAC9C,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACzE,IAAI,cAAc,EAAE,CAAC;YAClB,iDAAiD;YACjD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAChC,cAAc,CAAC,GAAG,EAClB,oCAAoC,cAAc,CAAC,OAAO,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAClG,CAAC;YACF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YACtF,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACO,WAAW,CAAC,GAAW;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;OAOG;IACO,mBAAmB,CAAC,GAAW;QACtC,OAAO,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,SAAS,CAAC,GAAgB,EAAE,OAAe,EAAE,MAAc;QACxD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACM,GAAG,CAAC,GAAgB;QAC1B,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,GAAgB;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC;IAClG,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,GAAgB;QAC3B,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,yBAAyB,CAAC,GAAgB,EAAE,OAAe;QACxD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAClH,MAAM,IAAI,oBAAoB,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtG,IAAI,IAAI,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,IAAI,aAAa,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,+BAA+B,OAAO,gBAAgB,IAAI,kBAAkB,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;YAC1H,0FAA0F;YAC1F,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;QACjG,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,sBAAsB,CAAC,GAAgB,EAAE,OAAoB;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC;QAChB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACnE,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,GAAG,OAAO,CAAC;IAC/C,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,GAAgB;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,QAAQ,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1G,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,OAAO,QAAQ,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACvF,CAAC;IAED;;;;;;;OAOG;IACO,uBAAuB,CAAC,GAAiB,EAAE,IAAY;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACxF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QACpB,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC;QACnD,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,QAAQ,KAAK,kBAAkB,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;YACjE,OAAO,SAAS,CAAC;QACpB,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;IACnG,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,wBAAwB,CAAC,GAAgB,EAAE,IAAY;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7D,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,qEAAqE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;QAC7G,CAAC;QACD,OAAO,OAAO,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,YAAY,CAAC,GAAgB,EAAE,UAAkB,EAAE,QAAgB;QAChE,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QACjC,CAAC;QACD,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,wFAAwF,EAAE,OAAO,CAAC,CAAC;YACpH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAC9B,CAAC;QACD,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC3B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;QAC5C,CAAC;QACD,qEAAqE;QACrE,yEAAyE;QACzE,0EAA0E;QAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC;QACrG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,qBAAqB,OAAO,CAAC,OAAO,OAAO,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACtH,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACrD,CAAC;IAED,SAAS,CAAC,GAAgB,EAAE,OAAgB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5D,2FAA2F;YAC3F,uFAAuF;YACvF,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,sCAAsC,OAAO,GAAG,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,QAAQ,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,GAAgB;QACpB,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,GAAgB;QAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,cAAc,CAAC,GAAgB,EAAE,MAAc;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IAED,sBAAsB,CAAC,GAAgB;QACpC,uEAAuE;QACvE,oEAAoE;QACpE,2DAA2D;QAC3D,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IACvD,CAAC;IAED,qEAAqE;IACrE,SAAS,CAAC,GAAgB;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,kBAAkB,CAAC,GAAgB,EAAE,MAAc;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;IACxD,CAAC;IAED;;;;;;;;;OASG;IACH,aAAa;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,0FAA0F;IAC1F,IAAI,iBAAiB;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,IAAI,oBAAoB;QACrB,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,IAAI,yBAAyB;QAC1B,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,GAAgB;QAC/B,OAAO,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;;;;;;OAUG;IACH,OAAO,CAAC,GAAgB;QACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;OAMG;IACH,IAAI,gBAAgB;QACjB,OAAO,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,GAAgB,EAAE,IAAwB;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC/D,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,GAAgB;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACrD,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,GAAgB;QAC/B,OAAO,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,kBAAkB,CAAC,GAAgB;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,OAAO;QACV,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1C,MAAM,UAAU,GAAG,SAAS,CAAC,kBAAkB,CAAC;QAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,KAAK,IAAiC,EAAE;YAClD,IAAI,CAAC;gBACF,OAAO,MAAM,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9F,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,2CAA2C,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC7F,OAAO,SAAS,CAAC;YACpB,CAAC;QACJ,CAAC,CAAC;QACF,IAAI,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QAC1B,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACrG,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,QAAgB;QAC7B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,QAAgB,EAAE,KAAK,GAAoB,QAAQ;QAC7D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,OAAO;QACV,CAAC;QACD,IAAI,CAAC;YACF,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtD,IAAI,CAAC,0BAA0B,CAAC,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC/E,CAAC;QACJ,CAAC;gBAAS,CAAC;YACR,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACrE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QACpD,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,4BAA4B;QAC/B,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAClC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC7D,mEAAmE;YACnE,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,0BAA0B,CAAC,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9D,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,oBAAoB;QACjC,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC9F,CAAC;IAED;;;;;;;;;;OAUG;IACH,qBAAqB,CAAC,GAAgB;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;gBACnC,IAAI,CAAC,0BAA0B,CAAC,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC7E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;;;OAQG;IACM,MAAM,CAAC,GAAqB;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC9C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,0BAA0B,CAAC,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC7E,CAAC;QACD,uEAAuE;QACvE,yDAAyD;QACzD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC5B,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED;;;;;;OAMG;IACO,cAAc,CAAC,QAAgB;QACtC,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC5C,OAAO,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CAAC,GAAgB,EAAE,IAAY;QAC/C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,KAAK,CAAC,yBAAyB,CAC5B,GAAgB,EAChB,OAAe,EACf,OAA4B;QAE5B,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;QACjD,IAAI,CAAC,UAAU,EAAE,CAAC;YACf,OAAO,SAAS,CAAC;QACpB,CAAC;QACD,2EAA2E;QAC3E,yEAAyE;QACzE,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,UAAgD,CAAC;QACrD,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAClE,sEAAsE;YACtE,uEAAuE;YACvE,0BAA0B;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC5E,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACtB,SAAS;YACZ,CAAC;YACD,IAAI,CAAC;gBACF,iEAAiE;gBACjE,8DAA8D;gBAC9D,kEAAkE;gBAClE,gEAAgE;gBAChE,oEAAoE;gBACpE,oEAAoE;gBACpE,mEAAmE;gBACnE,oEAAoE;gBACpE,kDAAkD;gBAClD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,sBAAsB,CAAC;gBACvD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;oBACjD,KAAK,EAAE,OAAO,EAAE,KAAK;oBACrB,IAAI,EAAE;wBACH,eAAe,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,uCAAuC,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;qBAC5H;iBACH,CAAC,CAAC;gBACH,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;oBACtC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBACjC,CAAC;qBAAM,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;oBAC1B,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBACjC,CAAC;gBACD,UAAU,GAAG,MAAM,CAAC;YACvB,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACrB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC7B,MAAM,GAAG,CAAC;YACb,CAAC;QACJ,CAAC;QACD,OAAO,UAAU,CAAC;IACrB,CAAC;IAED;;;;;;;;;OASG;IACH,qBAAqB,CAAC,GAAgB,EAAE,IAAY;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,QAAQ,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9F,CAAC;IAED;;;;OAIG;IACH,4BAA4B,CAAC,GAAgB;QAC1C,IAAI,CAAC,oBAAoB,CAAC,4BAA4B,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;IACzF,CAAC;IAES,qBAAqB,CAAC,GAAgB;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,OAAO,CAAC;IAClB,CAAC;IAES,GAAG,CAAC,GAAgB,EAAE,OAAe;QAC5C,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,mFAAmF;IACzE,MAAM,CAAC,GAAgB,EAAE,OAAe,EAAE,KAAK,GAAqB,MAAM;QACjF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,wDAAwD;IAC9C,gBAAgB,CAAC,GAAgB,EAAE,OAAe;QACzD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;CACH"}
|
|
1
|
+
{"version":3,"file":"hydranium-text-documents.js","sourceRoot":"","sources":["../../src/documents/hydranium-text-documents.ts"],"names":[],"mappings":"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"}
|
|
@@ -78,6 +78,11 @@ export interface VersionSyncService {
|
|
|
78
78
|
* another build.
|
|
79
79
|
*/
|
|
80
80
|
registerDeferredBuilds(isDeferred: (uri: URI) => boolean): Disposable;
|
|
81
|
+
/**
|
|
82
|
+
* Resolves once no {@link requestRecoveryBuild} request is pending,
|
|
83
|
+
* including those made while waiting.
|
|
84
|
+
*/
|
|
85
|
+
recoveryBuildsSettled(): Promise<void>;
|
|
81
86
|
/**
|
|
82
87
|
* Fires for every reconciled root. A cancel cannot skip it, unlike a
|
|
83
88
|
* `Parsed` phase listener. It can fire inside a build's write lock, so a
|
|
@@ -108,6 +113,8 @@ export declare class DefaultVersionSyncService implements VersionSyncService {
|
|
|
108
113
|
protected readonly recordedEmitter: Emitter<LangiumDocument<import("@hydranium/langium").AstNode>>;
|
|
109
114
|
protected readonly deferredBuildChecks: Set<(uri: URI) => boolean>;
|
|
110
115
|
protected readonly pendingBuilds: Map<string, PendingRecoveryBuilds>;
|
|
116
|
+
/** The {@link runBuilds} loop of each entry in {@link pendingBuilds}. */
|
|
117
|
+
protected readonly buildRuns: Set<Promise<void>>;
|
|
111
118
|
/** Retries of each request after a failed build before it is rejected. */
|
|
112
119
|
protected readonly maxBuildRetries: number;
|
|
113
120
|
constructor(services: ServerSharedServices, options?: LogNameOptions);
|
|
@@ -119,6 +126,7 @@ export declare class DefaultVersionSyncService implements VersionSyncService {
|
|
|
119
126
|
syncTo(uri: URI, textVersion: number): Promise<void> | undefined;
|
|
120
127
|
rebuildWhileCurrent(document: LangiumDocument): void;
|
|
121
128
|
requestRecoveryBuild(uri: URI, request: RecoveryBuildRequest): Promise<void>;
|
|
129
|
+
recoveryBuildsSettled(): Promise<void>;
|
|
122
130
|
registerDeferredBuilds(isDeferred: (uri: URI) => boolean): Disposable;
|
|
123
131
|
isSyncedTo(uri: URI, textVersion: number): boolean;
|
|
124
132
|
/** The text `document`'s root was parsed from, or for a root built without either record or CST, the document's own. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-sync-service.d.ts","sourceRoot":"","sources":["../../src/documents/version-sync-service.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAiB,KAAK,eAAe,EAAE,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,KAAK,MAAM,EAA6D,MAAM,qBAAqB,CAAC;AAC7G,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAIjE,yEAAyE;AACzE,MAAM,WAAW,oBAAoB;IAClC,kDAAkD;IAClD,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,mFAAmF;IACnF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,oGAAoG;IACpG,QAAQ,CAAC,WAAW,EAAE,MAAM,OAAO,CAAC;IACpC,qGAAqG;IACrG,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAChC;;;;;;;;OAQG;IACH,aAAa,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7F;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IACjE;;;;OAIG;IACH,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IACrD;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IACnD;;;;;OAKG;IACH,sBAAsB,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,GAAG,UAAU,CAAC;IACtE;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,kGAAkG;AAClG,MAAM,WAAW,mBAAmB;IACjC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,qFAAqF;IACrF,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C;AAED,qFAAqF;AACrF,MAAM,WAAW,qBAAqB;IACnC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC;CACzC;AAED;;;GAGG;AACH,qBAAa,yBAA0B,YAAW,kBAAkB;
|
|
1
|
+
{"version":3,"file":"version-sync-service.d.ts","sourceRoot":"","sources":["../../src/documents/version-sync-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,8 @@ export class DefaultVersionSyncService {
|
|
|
21
21
|
recordedEmitter = new Emitter();
|
|
22
22
|
deferredBuildChecks = new Set();
|
|
23
23
|
pendingBuilds = new Map();
|
|
24
|
+
/** The {@link runBuilds} loop of each entry in {@link pendingBuilds}. */
|
|
25
|
+
buildRuns = new Set();
|
|
24
26
|
/** Retries of each request after a failed build before it is rejected. */
|
|
25
27
|
maxBuildRetries = 1;
|
|
26
28
|
constructor(services, options = {}) {
|
|
@@ -80,9 +82,16 @@ export class DefaultVersionSyncService {
|
|
|
80
82
|
}
|
|
81
83
|
const entry = { queued: [queued] };
|
|
82
84
|
this.pendingBuilds.set(key, entry);
|
|
83
|
-
|
|
85
|
+
const run = this.runBuilds(key, uri, entry);
|
|
86
|
+
this.buildRuns.add(run);
|
|
87
|
+
void run.finally(() => this.buildRuns.delete(run));
|
|
84
88
|
});
|
|
85
89
|
}
|
|
90
|
+
async recoveryBuildsSettled() {
|
|
91
|
+
while (this.buildRuns.size > 0) {
|
|
92
|
+
await Promise.allSettled(this.buildRuns);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
86
95
|
registerDeferredBuilds(isDeferred) {
|
|
87
96
|
this.deferredBuildChecks.add(isDeferred);
|
|
88
97
|
return Disposable.create(() => this.deferredBuildChecks.delete(isDeferred));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-sync-service.js","sourceRoot":"","sources":["../../src/documents/version-sync-service.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,aAAa,EAAkC,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAe,kBAAkB,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7G,OAAO,EAAE,UAAU,EAAE,OAAO,EAAc,MAAM,gCAAgC,CAAC;AAGjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"version-sync-service.js","sourceRoot":"","sources":["../../src/documents/version-sync-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
/**
|
|
10
10
|
* `@hydranium/core/testing/node` — the test support that needs a Node runtime:
|
|
11
11
|
* the scratch-workspace, golden-corpus and generated-workspace fixtures (all
|
|
12
|
-
* three reach the real filesystem), the
|
|
12
|
+
* three reach the real filesystem), the server settle that guards their
|
|
13
|
+
* deletion (it reports on `process.stderr`), the in-process LSP transport
|
|
13
14
|
* (`vscode-jsonrpc/node` stream readers), the all-in-one LSP harness (a
|
|
14
15
|
* `vscode-languageserver/node` `Connection`), and the subprocess tier, which
|
|
15
16
|
* spawns a built entry as a child process.
|
|
@@ -24,6 +25,7 @@ export * from './golden-corpus.js';
|
|
|
24
25
|
export * from './lsp-harness.js';
|
|
25
26
|
export * from './lsp-server-connection.js';
|
|
26
27
|
export * from './scratch-workspace.js';
|
|
28
|
+
export * from './settle-server.js';
|
|
27
29
|
export * from './spawned-server.js';
|
|
28
|
-
export
|
|
30
|
+
export { captureUnhandledRejections } from '@hydranium/protocol/testing/node';
|
|
29
31
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;;GAaG;AAEH,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC"}
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
/**
|
|
10
10
|
* `@hydranium/core/testing/node` — the test support that needs a Node runtime:
|
|
11
11
|
* the scratch-workspace, golden-corpus and generated-workspace fixtures (all
|
|
12
|
-
* three reach the real filesystem), the
|
|
12
|
+
* three reach the real filesystem), the server settle that guards their
|
|
13
|
+
* deletion (it reports on `process.stderr`), the in-process LSP transport
|
|
13
14
|
* (`vscode-jsonrpc/node` stream readers), the all-in-one LSP harness (a
|
|
14
15
|
* `vscode-languageserver/node` `Connection`), and the subprocess tier, which
|
|
15
16
|
* spawns a built entry as a child process.
|
|
@@ -24,6 +25,7 @@ export * from './golden-corpus.js';
|
|
|
24
25
|
export * from './lsp-harness.js';
|
|
25
26
|
export * from './lsp-server-connection.js';
|
|
26
27
|
export * from './scratch-workspace.js';
|
|
28
|
+
export * from './settle-server.js';
|
|
27
29
|
export * from './spawned-server.js';
|
|
28
|
-
export
|
|
30
|
+
export { captureUnhandledRejections } from '@hydranium/protocol/testing/node';
|
|
29
31
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;;GAaG;AAEH,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC"}
|
|
@@ -54,7 +54,8 @@ export interface ScratchWorkspace {
|
|
|
54
54
|
}
|
|
55
55
|
/**
|
|
56
56
|
* Create a throwaway workspace directory. The caller owns teardown — pair the
|
|
57
|
-
* returned {@link ScratchWorkspace.dispose} with an `afterEach
|
|
57
|
+
* returned {@link ScratchWorkspace.dispose} with an `afterEach`, or
|
|
58
|
+
* `disposeScratchWorkspace` once a server was initialized over it.
|
|
58
59
|
*/
|
|
59
60
|
export declare function makeScratchWorkspace(options?: ScratchWorkspaceOptions): ScratchWorkspace;
|
|
60
61
|
//# sourceMappingURL=scratch-workspace.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scratch-workspace.d.ts","sourceRoot":"","sources":["../../../src/testing/node/scratch-workspace.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAgDlF,gDAAgD;AAChD,MAAM,WAAW,uBAAuB;IACrC;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,4CAA4C;AAC5C,MAAM,WAAW,gBAAgB;IAC9B,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACrD,2EAA2E;IAC3E,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC;;;;;;;;;;;;;;OAcG;IACH,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC;;;OAGG;IACH,OAAO,IAAI,IAAI,CAAC;CAClB;AAED
|
|
1
|
+
{"version":3,"file":"scratch-workspace.d.ts","sourceRoot":"","sources":["../../../src/testing/node/scratch-workspace.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAgDlF,gDAAgD;AAChD,MAAM,WAAW,uBAAuB;IACrC;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,4CAA4C;AAC5C,MAAM,WAAW,gBAAgB;IAC9B,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACrD,2EAA2E;IAC3E,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC;;;;;;;;;;;;;;OAcG;IACH,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC;;;OAGG;IACH,OAAO,IAAI,IAAI,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,uBAA4B,GAAG,gBAAgB,CAkC5F"}
|
|
@@ -52,7 +52,8 @@ import { tmpdir } from 'node:os';
|
|
|
52
52
|
import * as path from 'node:path';
|
|
53
53
|
/**
|
|
54
54
|
* Create a throwaway workspace directory. The caller owns teardown — pair the
|
|
55
|
-
* returned {@link ScratchWorkspace.dispose} with an `afterEach
|
|
55
|
+
* returned {@link ScratchWorkspace.dispose} with an `afterEach`, or
|
|
56
|
+
* `disposeScratchWorkspace` once a server was initialized over it.
|
|
56
57
|
*/
|
|
57
58
|
export function makeScratchWorkspace(options = {}) {
|
|
58
59
|
// RESOLVED, because `tmpdir()` can itself be a symlink — on macOS it answers
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scratch-workspace.js","sourceRoot":"","sources":["../../../src/testing/node/scratch-workspace.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAkDlC
|
|
1
|
+
{"version":3,"file":"scratch-workspace.js","sourceRoot":"","sources":["../../../src/testing/node/scratch-workspace.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAkDlC;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAO,GAA4B,EAAE;IACvE,6EAA6E;IAC7E,8EAA8E;IAC9E,0EAA0E;IAC1E,0EAA0E;IAC1E,oDAAoD;IACpD,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,MAAM,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACpG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,OAAO,GAAG,CAAC,YAAoB,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAChF,OAAO;QACJ,IAAI;QACJ,OAAO;QACP,GAAG,CAAC,YAAqB;YACtB,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACzF,CAAC;QACD,KAAK,CAAC,YAAY,EAAE,OAAO;YACxB,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;YACrC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACvC,OAAO,MAAM,CAAC;QACjB,CAAC;QACD,OAAO;YACJ,IAAI,QAAQ,EAAE,CAAC;gBACZ,OAAO;YACV,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC;YAChB,qEAAqE;YACrE,qDAAqD;YACrD,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;KACH,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the MIT License which is available in the project root.
|
|
6
|
+
*
|
|
7
|
+
* SPDX-License-Identifier: MIT
|
|
8
|
+
********************************************************************************/
|
|
9
|
+
import type { LspServerSharedServices } from '../../lsp/shared-module.js';
|
|
10
|
+
import type { ScratchWorkspace } from './scratch-workspace.js';
|
|
11
|
+
/**
|
|
12
|
+
* Delete `workspace` once {@link settleServer} says `shared` reads none of
|
|
13
|
+
* it, and delete it even when the settle throws. Either may be `undefined`,
|
|
14
|
+
* for a teardown whose setup failed before creating it.
|
|
15
|
+
*/
|
|
16
|
+
export declare function disposeScratchWorkspace(workspace: ScratchWorkspace | undefined, shared: LspServerSharedServices | undefined): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Resolve once the server reads no file for work a test started: no debounced
|
|
19
|
+
* change, handed-over release, recovery build or deferred member relink is
|
|
20
|
+
* pending and no build runs.
|
|
21
|
+
* Repeats while a pass saw a build or release start, since each can start the
|
|
22
|
+
* others. A release still waiting out its grace is not waited for.
|
|
23
|
+
*
|
|
24
|
+
* Await it before deleting a scratch workspace the server was initialized
|
|
25
|
+
* over, or a build still reading it logs ENOENT.
|
|
26
|
+
*
|
|
27
|
+
* Gives up after `timeoutMs` without throwing, so a write a failed test left
|
|
28
|
+
* stuck still lets the teardown delete and the test report its own error.
|
|
29
|
+
* The default is short so several settles fit in one test or hook timeout.
|
|
30
|
+
* A real settle takes milliseconds.
|
|
31
|
+
*/
|
|
32
|
+
export declare function settleServer(shared: LspServerSharedServices, timeoutMs?: number): Promise<void>;
|
|
33
|
+
//# sourceMappingURL=settle-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settle-server.d.ts","sourceRoot":"","sources":["../../../src/testing/node/settle-server.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC1C,SAAS,EAAE,gBAAgB,GAAG,SAAS,EACvC,MAAM,EAAE,uBAAuB,GAAG,SAAS,GAC3C,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,uBAAuB,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA2CpG"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the MIT License which is available in the project root.
|
|
6
|
+
*
|
|
7
|
+
* SPDX-License-Identifier: MIT
|
|
8
|
+
********************************************************************************/
|
|
9
|
+
/**
|
|
10
|
+
* Delete `workspace` once {@link settleServer} says `shared` reads none of
|
|
11
|
+
* it, and delete it even when the settle throws. Either may be `undefined`,
|
|
12
|
+
* for a teardown whose setup failed before creating it.
|
|
13
|
+
*/
|
|
14
|
+
export async function disposeScratchWorkspace(workspace, shared) {
|
|
15
|
+
try {
|
|
16
|
+
if (shared) {
|
|
17
|
+
await settleServer(shared);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
finally {
|
|
21
|
+
workspace?.dispose();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Resolve once the server reads no file for work a test started: no debounced
|
|
26
|
+
* change, handed-over release, recovery build or deferred member relink is
|
|
27
|
+
* pending and no build runs.
|
|
28
|
+
* Repeats while a pass saw a build or release start, since each can start the
|
|
29
|
+
* others. A release still waiting out its grace is not waited for.
|
|
30
|
+
*
|
|
31
|
+
* Await it before deleting a scratch workspace the server was initialized
|
|
32
|
+
* over, or a build still reading it logs ENOENT.
|
|
33
|
+
*
|
|
34
|
+
* Gives up after `timeoutMs` without throwing, so a write a failed test left
|
|
35
|
+
* stuck still lets the teardown delete and the test report its own error.
|
|
36
|
+
* The default is short so several settles fit in one test or hook timeout.
|
|
37
|
+
* A real settle takes milliseconds.
|
|
38
|
+
*/
|
|
39
|
+
export async function settleServer(shared, timeoutMs = 1_000) {
|
|
40
|
+
const workspace = shared.workspace;
|
|
41
|
+
let started = 0;
|
|
42
|
+
const start = () => {
|
|
43
|
+
started++;
|
|
44
|
+
};
|
|
45
|
+
const builds = workspace.DocumentBuilder.onUpdate(start);
|
|
46
|
+
const releases = workspace.TextDocuments.onDidReleaseDocument(start);
|
|
47
|
+
let gaveUp = false;
|
|
48
|
+
const settle = async () => {
|
|
49
|
+
// Once given up, the workspace may be gone, so no further pass starts a build over it.
|
|
50
|
+
for (let seen = -1, building = false; !gaveUp && (seen !== started || building);) {
|
|
51
|
+
seen = started;
|
|
52
|
+
shared.lsp.DocumentUpdateHandler.flushPending();
|
|
53
|
+
await workspace.TextDocuments.releasesSettled();
|
|
54
|
+
// A flushed change waits for `ready`, which settles inside the initialization's write.
|
|
55
|
+
// So its build queues before this read, and the lock runs queued writes first.
|
|
56
|
+
await workspace.WorkspaceLock.read(() => undefined);
|
|
57
|
+
// Work that queues its write from a read of the same batch runs after it, so it is awaited here.
|
|
58
|
+
await workspace.VersionSyncService.recoveryBuildsSettled();
|
|
59
|
+
await workspace.ProjectManager.memberRelinkSettled();
|
|
60
|
+
// A build that started before the listeners fires no event, so the work it starts needs another pass.
|
|
61
|
+
const running = workspace.DocumentBuilder.activeBuild;
|
|
62
|
+
building = running !== undefined;
|
|
63
|
+
await running;
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
let timer;
|
|
67
|
+
const expired = new Promise(resolve => {
|
|
68
|
+
timer = setTimeout(() => {
|
|
69
|
+
gaveUp = true;
|
|
70
|
+
resolve('expired');
|
|
71
|
+
}, timeoutMs);
|
|
72
|
+
});
|
|
73
|
+
try {
|
|
74
|
+
if ((await Promise.race([settle(), expired])) === 'expired') {
|
|
75
|
+
process.stderr.write(`[hydranium] the server did not settle within ${timeoutMs} ms\n`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
finally {
|
|
79
|
+
clearTimeout(timer);
|
|
80
|
+
builds.dispose();
|
|
81
|
+
releases.dispose();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=settle-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settle-server.js","sourceRoot":"","sources":["../../../src/testing/node/settle-server.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAKlF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC1C,SAAuC,EACvC,MAA2C;IAE3C,IAAI,CAAC;QACF,IAAI,MAAM,EAAE,CAAC;YACV,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;IACJ,CAAC;YAAS,CAAC;QACR,SAAS,EAAE,OAAO,EAAE,CAAC;IACxB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAA+B,EAAE,SAAS,GAAG,KAAK;IAClF,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACnC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,KAAK,GAAG,GAAS,EAAE;QACtB,OAAO,EAAE,CAAC;IACb,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACrE,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,MAAM,GAAG,KAAK,IAAmB,EAAE;QACtC,uFAAuF;QACvF,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC;YAChF,IAAI,GAAG,OAAO,CAAC;YACf,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC;YAChD,MAAM,SAAS,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;YAChD,uFAAuF;YACvF,+EAA+E;YAC/E,MAAM,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACpD,iGAAiG;YACjG,MAAM,SAAS,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,CAAC;YAC3D,MAAM,SAAS,CAAC,cAAc,CAAC,mBAAmB,EAAE,CAAC;YACrD,sGAAsG;YACtG,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe,CAAC,WAAW,CAAC;YACtD,QAAQ,GAAG,OAAO,KAAK,SAAS,CAAC;YACjC,MAAM,OAAO,CAAC;QACjB,CAAC;IACJ,CAAC,CAAC;IACF,IAAI,KAAgD,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAY,OAAO,CAAC,EAAE;QAC9C,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YACrB,MAAM,GAAG,IAAI,CAAC;YACd,OAAO,CAAC,SAAS,CAAC,CAAC;QACtB,CAAC,EAAE,SAAS,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,IAAI,CAAC;QACF,IAAI,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gDAAgD,SAAS,OAAO,CAAC,CAAC;QAC1F,CAAC;IACJ,CAAC;YAAS,CAAC;QACR,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,QAAQ,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hydranium/core",
|
|
3
|
-
"version": "1.0.0-next.
|
|
3
|
+
"version": "1.0.0-next.384",
|
|
4
4
|
"description": "Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, @hydranium/glsp-server).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ast",
|
|
@@ -87,8 +87,8 @@
|
|
|
87
87
|
"diff": "^5.2.0"
|
|
88
88
|
},
|
|
89
89
|
"devDependencies": {
|
|
90
|
-
"@hydranium/langium": "1.0.0-next.
|
|
91
|
-
"@hydranium/protocol": "1.0.0-next.
|
|
90
|
+
"@hydranium/langium": "1.0.0-next.384",
|
|
91
|
+
"@hydranium/protocol": "1.0.0-next.384",
|
|
92
92
|
"@playwright/test": "^1.55.0",
|
|
93
93
|
"@types/diff": "^5.2.0",
|
|
94
94
|
"fake-indexeddb": "^6.2.5",
|
|
@@ -101,8 +101,8 @@
|
|
|
101
101
|
"vscode-languageserver-types": "3.18.0"
|
|
102
102
|
},
|
|
103
103
|
"peerDependencies": {
|
|
104
|
-
"@hydranium/langium": "1.0.0-next.
|
|
105
|
-
"@hydranium/protocol": "1.0.0-next.
|
|
104
|
+
"@hydranium/langium": "1.0.0-next.384",
|
|
105
|
+
"@hydranium/protocol": "1.0.0-next.384",
|
|
106
106
|
"@playwright/test": "^1.40.0",
|
|
107
107
|
"vscode-jsonrpc": "^9.0.0",
|
|
108
108
|
"vscode-languageserver": "~10.0.1",
|
|
@@ -55,6 +55,9 @@ export class DefaultFileSystemTaskQueue implements FileSystemTaskQueue {
|
|
|
55
55
|
enqueue<T>(uri: string, task: () => Promise<T>): Promise<T> {
|
|
56
56
|
const key = this.uriPolicy.canonicalUri(uri);
|
|
57
57
|
const result = (this.queues.get(key) ?? Promise.resolve()).then(task);
|
|
58
|
+
// Derived, so a dropped failure is reported, and before `settled`, so the
|
|
59
|
+
// caller resumes before the next task starts.
|
|
60
|
+
const handed = result.then(value => value);
|
|
58
61
|
const settled = result.then(
|
|
59
62
|
() => undefined,
|
|
60
63
|
() => undefined
|
|
@@ -65,7 +68,7 @@ export class DefaultFileSystemTaskQueue implements FileSystemTaskQueue {
|
|
|
65
68
|
this.queues.delete(key);
|
|
66
69
|
}
|
|
67
70
|
});
|
|
68
|
-
return
|
|
71
|
+
return handed;
|
|
69
72
|
}
|
|
70
73
|
|
|
71
74
|
isIdle(uri: string): boolean {
|
|
@@ -219,6 +219,8 @@ export class HydraniumTextDocuments<T extends TextDocument = TextDocument> exten
|
|
|
219
219
|
protected __dirtyStateTracker: DirtyStateTracker | undefined;
|
|
220
220
|
protected __documentReleaseScheduler: DocumentReleaseScheduler | undefined;
|
|
221
221
|
protected readonly documentReleasedEmitter = new Emitter<DocumentReleasedEvent>();
|
|
222
|
+
/** Each release the `DocumentReleaseHandler` slot has not settled yet. */
|
|
223
|
+
protected readonly releasesInFlight = new Set<Promise<void>>();
|
|
222
224
|
protected readonly languageClientSavedEmitter = new Emitter<LanguageClientSavedEvent>();
|
|
223
225
|
|
|
224
226
|
constructor(
|
|
@@ -654,7 +656,7 @@ export class HydraniumTextDocuments<T extends TextDocument = TextDocument> exten
|
|
|
654
656
|
cleanAnnouncement.announce(inBuild ? this.textState(released.uri) : undefined);
|
|
655
657
|
}
|
|
656
658
|
};
|
|
657
|
-
settled.then(
|
|
659
|
+
const handled = settled.then(
|
|
658
660
|
() => announceClean(true),
|
|
659
661
|
(err: unknown) => {
|
|
660
662
|
// A release skipped at teardown, its peer or its workspace gone, is
|
|
@@ -668,6 +670,20 @@ export class HydraniumTextDocuments<T extends TextDocument = TextDocument> exten
|
|
|
668
670
|
announceClean(false);
|
|
669
671
|
}
|
|
670
672
|
);
|
|
673
|
+
this.releasesInFlight.add(handled);
|
|
674
|
+
// A throw from the announcement surfaces once, as an unhandled rejection of the `finally` copy.
|
|
675
|
+
void handled.finally(() => this.releasesInFlight.delete(handled));
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
/**
|
|
679
|
+
* Resolves once the `DocumentReleaseHandler` slot has settled every
|
|
680
|
+
* release, including those handed over while waiting. A release still
|
|
681
|
+
* waiting out its grace has not been handed over.
|
|
682
|
+
*/
|
|
683
|
+
async releasesSettled(): Promise<void> {
|
|
684
|
+
while (this.releasesInFlight.size > 0) {
|
|
685
|
+
await Promise.allSettled(this.releasesInFlight);
|
|
686
|
+
}
|
|
671
687
|
}
|
|
672
688
|
|
|
673
689
|
/** `uri` as the `DocumentReleaseHandler` slot receives it. */
|
|
@@ -80,6 +80,11 @@ export interface VersionSyncService {
|
|
|
80
80
|
* another build.
|
|
81
81
|
*/
|
|
82
82
|
registerDeferredBuilds(isDeferred: (uri: URI) => boolean): Disposable;
|
|
83
|
+
/**
|
|
84
|
+
* Resolves once no {@link requestRecoveryBuild} request is pending,
|
|
85
|
+
* including those made while waiting.
|
|
86
|
+
*/
|
|
87
|
+
recoveryBuildsSettled(): Promise<void>;
|
|
83
88
|
/**
|
|
84
89
|
* Fires for every reconciled root. A cancel cannot skip it, unlike a
|
|
85
90
|
* `Parsed` phase listener. It can fire inside a build's write lock, so a
|
|
@@ -112,6 +117,8 @@ export class DefaultVersionSyncService implements VersionSyncService {
|
|
|
112
117
|
protected readonly recordedEmitter = new Emitter<LangiumDocument>();
|
|
113
118
|
protected readonly deferredBuildChecks = new Set<(uri: URI) => boolean>();
|
|
114
119
|
protected readonly pendingBuilds = new Map<string, PendingRecoveryBuilds>();
|
|
120
|
+
/** The {@link runBuilds} loop of each entry in {@link pendingBuilds}. */
|
|
121
|
+
protected readonly buildRuns = new Set<Promise<void>>();
|
|
115
122
|
/** Retries of each request after a failed build before it is rejected. */
|
|
116
123
|
protected readonly maxBuildRetries: number = 1;
|
|
117
124
|
|
|
@@ -184,10 +191,18 @@ export class DefaultVersionSyncService implements VersionSyncService {
|
|
|
184
191
|
}
|
|
185
192
|
const entry: PendingRecoveryBuilds = { queued: [queued] };
|
|
186
193
|
this.pendingBuilds.set(key, entry);
|
|
187
|
-
|
|
194
|
+
const run = this.runBuilds(key, uri, entry);
|
|
195
|
+
this.buildRuns.add(run);
|
|
196
|
+
void run.finally(() => this.buildRuns.delete(run));
|
|
188
197
|
});
|
|
189
198
|
}
|
|
190
199
|
|
|
200
|
+
async recoveryBuildsSettled(): Promise<void> {
|
|
201
|
+
while (this.buildRuns.size > 0) {
|
|
202
|
+
await Promise.allSettled(this.buildRuns);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
191
206
|
registerDeferredBuilds(isDeferred: (uri: URI) => boolean): Disposable {
|
|
192
207
|
this.deferredBuildChecks.add(isDeferred);
|
|
193
208
|
return Disposable.create(() => this.deferredBuildChecks.delete(isDeferred));
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
/**
|
|
11
11
|
* `@hydranium/core/testing/node` — the test support that needs a Node runtime:
|
|
12
12
|
* the scratch-workspace, golden-corpus and generated-workspace fixtures (all
|
|
13
|
-
* three reach the real filesystem), the
|
|
13
|
+
* three reach the real filesystem), the server settle that guards their
|
|
14
|
+
* deletion (it reports on `process.stderr`), the in-process LSP transport
|
|
14
15
|
* (`vscode-jsonrpc/node` stream readers), the all-in-one LSP harness (a
|
|
15
16
|
* `vscode-languageserver/node` `Connection`), and the subprocess tier, which
|
|
16
17
|
* spawns a built entry as a child process.
|
|
@@ -26,5 +27,6 @@ export * from './golden-corpus.js';
|
|
|
26
27
|
export * from './lsp-harness.js';
|
|
27
28
|
export * from './lsp-server-connection.js';
|
|
28
29
|
export * from './scratch-workspace.js';
|
|
30
|
+
export * from './settle-server.js';
|
|
29
31
|
export * from './spawned-server.js';
|
|
30
|
-
export
|
|
32
|
+
export { captureUnhandledRejections } from '@hydranium/protocol/testing/node';
|
|
@@ -103,7 +103,8 @@ export interface ScratchWorkspace {
|
|
|
103
103
|
|
|
104
104
|
/**
|
|
105
105
|
* Create a throwaway workspace directory. The caller owns teardown — pair the
|
|
106
|
-
* returned {@link ScratchWorkspace.dispose} with an `afterEach
|
|
106
|
+
* returned {@link ScratchWorkspace.dispose} with an `afterEach`, or
|
|
107
|
+
* `disposeScratchWorkspace` once a server was initialized over it.
|
|
107
108
|
*/
|
|
108
109
|
export function makeScratchWorkspace(options: ScratchWorkspaceOptions = {}): ScratchWorkspace {
|
|
109
110
|
// RESOLVED, because `tmpdir()` can itself be a symlink — on macOS it answers
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the MIT License which is available in the project root.
|
|
6
|
+
*
|
|
7
|
+
* SPDX-License-Identifier: MIT
|
|
8
|
+
********************************************************************************/
|
|
9
|
+
|
|
10
|
+
import type { LspServerSharedServices } from '../../lsp/shared-module.js';
|
|
11
|
+
import type { ScratchWorkspace } from './scratch-workspace.js';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Delete `workspace` once {@link settleServer} says `shared` reads none of
|
|
15
|
+
* it, and delete it even when the settle throws. Either may be `undefined`,
|
|
16
|
+
* for a teardown whose setup failed before creating it.
|
|
17
|
+
*/
|
|
18
|
+
export async function disposeScratchWorkspace(
|
|
19
|
+
workspace: ScratchWorkspace | undefined,
|
|
20
|
+
shared: LspServerSharedServices | undefined
|
|
21
|
+
): Promise<void> {
|
|
22
|
+
try {
|
|
23
|
+
if (shared) {
|
|
24
|
+
await settleServer(shared);
|
|
25
|
+
}
|
|
26
|
+
} finally {
|
|
27
|
+
workspace?.dispose();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Resolve once the server reads no file for work a test started: no debounced
|
|
33
|
+
* change, handed-over release, recovery build or deferred member relink is
|
|
34
|
+
* pending and no build runs.
|
|
35
|
+
* Repeats while a pass saw a build or release start, since each can start the
|
|
36
|
+
* others. A release still waiting out its grace is not waited for.
|
|
37
|
+
*
|
|
38
|
+
* Await it before deleting a scratch workspace the server was initialized
|
|
39
|
+
* over, or a build still reading it logs ENOENT.
|
|
40
|
+
*
|
|
41
|
+
* Gives up after `timeoutMs` without throwing, so a write a failed test left
|
|
42
|
+
* stuck still lets the teardown delete and the test report its own error.
|
|
43
|
+
* The default is short so several settles fit in one test or hook timeout.
|
|
44
|
+
* A real settle takes milliseconds.
|
|
45
|
+
*/
|
|
46
|
+
export async function settleServer(shared: LspServerSharedServices, timeoutMs = 1_000): Promise<void> {
|
|
47
|
+
const workspace = shared.workspace;
|
|
48
|
+
let started = 0;
|
|
49
|
+
const start = (): void => {
|
|
50
|
+
started++;
|
|
51
|
+
};
|
|
52
|
+
const builds = workspace.DocumentBuilder.onUpdate(start);
|
|
53
|
+
const releases = workspace.TextDocuments.onDidReleaseDocument(start);
|
|
54
|
+
let gaveUp = false;
|
|
55
|
+
const settle = async (): Promise<void> => {
|
|
56
|
+
// Once given up, the workspace may be gone, so no further pass starts a build over it.
|
|
57
|
+
for (let seen = -1, building = false; !gaveUp && (seen !== started || building);) {
|
|
58
|
+
seen = started;
|
|
59
|
+
shared.lsp.DocumentUpdateHandler.flushPending();
|
|
60
|
+
await workspace.TextDocuments.releasesSettled();
|
|
61
|
+
// A flushed change waits for `ready`, which settles inside the initialization's write.
|
|
62
|
+
// So its build queues before this read, and the lock runs queued writes first.
|
|
63
|
+
await workspace.WorkspaceLock.read(() => undefined);
|
|
64
|
+
// Work that queues its write from a read of the same batch runs after it, so it is awaited here.
|
|
65
|
+
await workspace.VersionSyncService.recoveryBuildsSettled();
|
|
66
|
+
await workspace.ProjectManager.memberRelinkSettled();
|
|
67
|
+
// A build that started before the listeners fires no event, so the work it starts needs another pass.
|
|
68
|
+
const running = workspace.DocumentBuilder.activeBuild;
|
|
69
|
+
building = running !== undefined;
|
|
70
|
+
await running;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
let timer: ReturnType<typeof setTimeout> | undefined;
|
|
74
|
+
const expired = new Promise<'expired'>(resolve => {
|
|
75
|
+
timer = setTimeout(() => {
|
|
76
|
+
gaveUp = true;
|
|
77
|
+
resolve('expired');
|
|
78
|
+
}, timeoutMs);
|
|
79
|
+
});
|
|
80
|
+
try {
|
|
81
|
+
if ((await Promise.race([settle(), expired])) === 'expired') {
|
|
82
|
+
process.stderr.write(`[hydranium] the server did not settle within ${timeoutMs} ms\n`);
|
|
83
|
+
}
|
|
84
|
+
} finally {
|
|
85
|
+
clearTimeout(timer);
|
|
86
|
+
builds.dispose();
|
|
87
|
+
releases.dispose();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2026 CrossBreeze, EclipseSource and others.
|
|
3
|
-
*
|
|
4
|
-
* This program and the accompanying materials are made available under the
|
|
5
|
-
* terms of the MIT License which is available in the project root.
|
|
6
|
-
*
|
|
7
|
-
* SPDX-License-Identifier: MIT
|
|
8
|
-
********************************************************************************/
|
|
9
|
-
/**
|
|
10
|
-
* Run a Node-only assertion while collecting process-level unhandled rejection
|
|
11
|
-
* events. The callback owns the event-loop drain and can therefore choose the
|
|
12
|
-
* right observation window for the operation under test.
|
|
13
|
-
*
|
|
14
|
-
* Inside the window a rejection reaches only the array: while any listener is
|
|
15
|
-
* registered, Node hands none to its default handler and Vitest reports none as
|
|
16
|
-
* an error. A callback that never asserts on the array therefore hides every
|
|
17
|
-
* rejection it provokes.
|
|
18
|
-
*/
|
|
19
|
-
export declare function captureUnhandledRejections<T>(callback: (rejections: unknown[]) => Promise<T>): Promise<T>;
|
|
20
|
-
//# sourceMappingURL=unhandled-rejections.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"unhandled-rejections.d.ts","sourceRoot":"","sources":["../../../src/testing/node/unhandled-rejections.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;GASG;AACH,wBAAsB,0BAA0B,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAW/G"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2026 CrossBreeze, EclipseSource and others.
|
|
3
|
-
*
|
|
4
|
-
* This program and the accompanying materials are made available under the
|
|
5
|
-
* terms of the MIT License which is available in the project root.
|
|
6
|
-
*
|
|
7
|
-
* SPDX-License-Identifier: MIT
|
|
8
|
-
********************************************************************************/
|
|
9
|
-
/**
|
|
10
|
-
* Run a Node-only assertion while collecting process-level unhandled rejection
|
|
11
|
-
* events. The callback owns the event-loop drain and can therefore choose the
|
|
12
|
-
* right observation window for the operation under test.
|
|
13
|
-
*
|
|
14
|
-
* Inside the window a rejection reaches only the array: while any listener is
|
|
15
|
-
* registered, Node hands none to its default handler and Vitest reports none as
|
|
16
|
-
* an error. A callback that never asserts on the array therefore hides every
|
|
17
|
-
* rejection it provokes.
|
|
18
|
-
*/
|
|
19
|
-
export async function captureUnhandledRejections(callback) {
|
|
20
|
-
const rejections = [];
|
|
21
|
-
const listener = (reason) => {
|
|
22
|
-
rejections.push(reason);
|
|
23
|
-
};
|
|
24
|
-
process.on('unhandledRejection', listener);
|
|
25
|
-
try {
|
|
26
|
-
return await callback(rejections);
|
|
27
|
-
}
|
|
28
|
-
finally {
|
|
29
|
-
process.off('unhandledRejection', listener);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=unhandled-rejections.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"unhandled-rejections.js","sourceRoot":"","sources":["../../../src/testing/node/unhandled-rejections.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAI,QAA+C;IAChG,MAAM,UAAU,GAAc,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,CAAC,MAAe,EAAQ,EAAE;QACxC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;IAC3C,IAAI,CAAC;QACF,OAAO,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;YAAS,CAAC;QACR,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;AACJ,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2026 CrossBreeze, EclipseSource and others.
|
|
3
|
-
*
|
|
4
|
-
* This program and the accompanying materials are made available under the
|
|
5
|
-
* terms of the MIT License which is available in the project root.
|
|
6
|
-
*
|
|
7
|
-
* SPDX-License-Identifier: MIT
|
|
8
|
-
********************************************************************************/
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Run a Node-only assertion while collecting process-level unhandled rejection
|
|
12
|
-
* events. The callback owns the event-loop drain and can therefore choose the
|
|
13
|
-
* right observation window for the operation under test.
|
|
14
|
-
*
|
|
15
|
-
* Inside the window a rejection reaches only the array: while any listener is
|
|
16
|
-
* registered, Node hands none to its default handler and Vitest reports none as
|
|
17
|
-
* an error. A callback that never asserts on the array therefore hides every
|
|
18
|
-
* rejection it provokes.
|
|
19
|
-
*/
|
|
20
|
-
export async function captureUnhandledRejections<T>(callback: (rejections: unknown[]) => Promise<T>): Promise<T> {
|
|
21
|
-
const rejections: unknown[] = [];
|
|
22
|
-
const listener = (reason: unknown): void => {
|
|
23
|
-
rejections.push(reason);
|
|
24
|
-
};
|
|
25
|
-
process.on('unhandledRejection', listener);
|
|
26
|
-
try {
|
|
27
|
-
return await callback(rejections);
|
|
28
|
-
} finally {
|
|
29
|
-
process.off('unhandledRejection', listener);
|
|
30
|
-
}
|
|
31
|
-
}
|