@crawlee/memory-storage 3.4.3-beta.1 → 3.4.3-beta.10

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 (76) hide show
  1. package/background-handler/fs-utils.d.ts +4 -0
  2. package/background-handler/fs-utils.d.ts.map +1 -0
  3. package/{workers/worker-utils.js → background-handler/fs-utils.js} +7 -12
  4. package/background-handler/fs-utils.js.map +1 -0
  5. package/background-handler/index.d.ts +12 -0
  6. package/background-handler/index.d.ts.map +1 -0
  7. package/background-handler/index.js +33 -0
  8. package/background-handler/index.js.map +1 -0
  9. package/cache-helpers.d.ts.map +1 -1
  10. package/cache-helpers.js +2 -2
  11. package/cache-helpers.js.map +1 -1
  12. package/consts.js +0 -1
  13. package/consts.js.map +1 -1
  14. package/fs/dataset/fs.d.ts +1 -1
  15. package/fs/dataset/fs.d.ts.map +1 -1
  16. package/fs/dataset/fs.js +3 -3
  17. package/fs/dataset/fs.js.map +1 -1
  18. package/fs/dataset/index.d.ts.map +1 -1
  19. package/fs/dataset/index.js.map +1 -1
  20. package/fs/key-value-store/fs.d.ts +1 -1
  21. package/fs/key-value-store/fs.d.ts.map +1 -1
  22. package/fs/key-value-store/fs.js +4 -4
  23. package/fs/key-value-store/fs.js.map +1 -1
  24. package/fs/key-value-store/index.d.ts.map +1 -1
  25. package/fs/key-value-store/index.js.map +1 -1
  26. package/fs/request-queue/fs.d.ts +1 -1
  27. package/fs/request-queue/fs.d.ts.map +1 -1
  28. package/fs/request-queue/fs.js +4 -4
  29. package/fs/request-queue/fs.js.map +1 -1
  30. package/fs/request-queue/index.d.ts.map +1 -1
  31. package/fs/request-queue/index.js.map +1 -1
  32. package/memory-storage.d.ts.map +1 -1
  33. package/memory-storage.js +5 -5
  34. package/memory-storage.js.map +1 -1
  35. package/package.json +4 -4
  36. package/resource-clients/dataset-collection.d.ts.map +1 -1
  37. package/resource-clients/dataset-collection.js +4 -5
  38. package/resource-clients/dataset-collection.js.map +1 -1
  39. package/resource-clients/dataset.d.ts +2 -2
  40. package/resource-clients/dataset.d.ts.map +1 -1
  41. package/resource-clients/dataset.js +5 -4
  42. package/resource-clients/dataset.js.map +1 -1
  43. package/resource-clients/key-value-store-collection.d.ts.map +1 -1
  44. package/resource-clients/key-value-store-collection.js +4 -5
  45. package/resource-clients/key-value-store-collection.js.map +1 -1
  46. package/resource-clients/key-value-store.d.ts +1 -1
  47. package/resource-clients/key-value-store.d.ts.map +1 -1
  48. package/resource-clients/key-value-store.js +9 -9
  49. package/resource-clients/key-value-store.js.map +1 -1
  50. package/resource-clients/request-queue-collection.d.ts.map +1 -1
  51. package/resource-clients/request-queue-collection.js +4 -5
  52. package/resource-clients/request-queue-collection.js.map +1 -1
  53. package/resource-clients/request-queue.d.ts +1 -1
  54. package/resource-clients/request-queue.d.ts.map +1 -1
  55. package/resource-clients/request-queue.js +7 -7
  56. package/resource-clients/request-queue.js.map +1 -1
  57. package/tsconfig.build.tsbuildinfo +1 -1
  58. package/utils.d.ts +2 -7
  59. package/utils.d.ts.map +1 -1
  60. package/utils.js +1 -2
  61. package/utils.js.map +1 -1
  62. package/workers/file-storage-worker-emulator.d.ts +0 -6
  63. package/workers/file-storage-worker-emulator.d.ts.map +0 -1
  64. package/workers/file-storage-worker-emulator.js +0 -16
  65. package/workers/file-storage-worker-emulator.js.map +0 -1
  66. package/workers/file-storage-worker.d.ts +0 -2
  67. package/workers/file-storage-worker.d.ts.map +0 -1
  68. package/workers/file-storage-worker.js +0 -15
  69. package/workers/file-storage-worker.js.map +0 -1
  70. package/workers/instance.d.ts +0 -8
  71. package/workers/instance.d.ts.map +0 -1
  72. package/workers/instance.js +0 -59
  73. package/workers/instance.js.map +0 -1
  74. package/workers/worker-utils.d.ts +0 -6
  75. package/workers/worker-utils.d.ts.map +0 -1
  76. package/workers/worker-utils.js.map +0 -1
package/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;AAAA,6DAAoC;AAEpC,qDAAyC;AACzC,6CAAyC;AACzC,qCAA6C;AAE7C;;;GAGG;AACH,SAAgB,oBAAoB,CAAI,MAAS;IAC7C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QAChE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC/C,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,CAAC,cAAc,CAAC,MAAiC,EAAE,GAAG,CAAC,CAAC;SACtF;KACJ;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AARD,oDAQC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,SAAiB;IAClD,MAAM,GAAG,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC;SAC3B,MAAM,CAAC,SAAS,CAAC;SACjB,MAAM,CAAC,QAAQ,CAAC;SAChB,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAE/B,OAAO,GAAG,CAAC,MAAM,GAAG,0BAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,0BAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAClF,CAAC;AAPD,oDAOC;AAAA,CAAC;AAEF,SAAgB,QAAQ,CAAC,KAAc;IACnC,IAAI;QACA,cAAC,CAAC,KAAK,CACH,cAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAClB,cAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EACvB,cAAC,CAAC,UAAU,EAAE,CACjB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEf,OAAO,IAAI,CAAC;KACf;IAAC,MAAM;QACJ,OAAO,KAAK,CAAC;KAChB;AACL,CAAC;AAZD,4BAYC;AAED,SAAgB,QAAQ,CAAC,KAAU;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,CAAC;AACjI,CAAC;AAFD,4BAEC;AAEY,QAAA,gBAAgB,GAAG,aAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;AAAA,6CAAyC;AAEzC,6DAAoC;AAEpC,qDAAyC;AAEzC,qCAA6C;AAE7C;;;GAGG;AACH,SAAgB,oBAAoB,CAAI,MAAS;IAC7C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QAChE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC/C,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,CAAC,cAAc,CAAC,MAAiC,EAAE,GAAG,CAAC,CAAC;SACtF;KACJ;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AARD,oDAQC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,SAAiB;IAClD,MAAM,GAAG,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC;SAC3B,MAAM,CAAC,SAAS,CAAC;SACjB,MAAM,CAAC,QAAQ,CAAC;SAChB,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAE/B,OAAO,GAAG,CAAC,MAAM,GAAG,0BAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,0BAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAClF,CAAC;AAPD,oDAOC;AAED,SAAgB,QAAQ,CAAC,KAAc;IACnC,IAAI;QACA,cAAC,CAAC,KAAK,CACH,cAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAClB,cAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EACvB,cAAC,CAAC,UAAU,EAAE,CACjB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEf,OAAO,IAAI,CAAC;KACf;IAAC,MAAM;QACJ,OAAO,KAAK,CAAC;KAChB;AACL,CAAC;AAZD,4BAYC;AAED,SAAgB,QAAQ,CAAC,KAAU;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,CAAC;AACjI,CAAC;AAFD,4BAEC;AAEY,QAAA,gBAAgB,GAAG,aAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC"}
@@ -1,6 +0,0 @@
1
- export declare class FileStorageWorkerEmulator {
2
- postMessage(value: any): Promise<void>;
3
- terminate(): void;
4
- unref(): void;
5
- }
6
- //# sourceMappingURL=file-storage-worker-emulator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-storage-worker-emulator.d.ts","sourceRoot":"","sources":["../../src/workers/file-storage-worker-emulator.ts"],"names":[],"mappings":"AAGA,qBAAa,yBAAyB;IAC5B,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5C,SAAS,IAAI,IAAI;IAEjB,KAAK,IAAI,IAAI;CAChB"}
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FileStorageWorkerEmulator = void 0;
4
- const instance_1 = require("./instance");
5
- const worker_utils_1 = require("./worker-utils");
6
- class FileStorageWorkerEmulator {
7
- async postMessage(value) {
8
- await (0, worker_utils_1.handleMessage)(value);
9
- instance_1.promiseMap.get(value.messageId)?.resolve();
10
- instance_1.promiseMap.delete(value.messageId);
11
- }
12
- terminate() { }
13
- unref() { }
14
- }
15
- exports.FileStorageWorkerEmulator = FileStorageWorkerEmulator;
16
- //# sourceMappingURL=file-storage-worker-emulator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-storage-worker-emulator.js","sourceRoot":"","sources":["../../src/workers/file-storage-worker-emulator.ts"],"names":[],"mappings":";;;AAAA,yCAAwC;AACxC,iDAA+C;AAE/C,MAAa,yBAAyB;IAClC,KAAK,CAAC,WAAW,CAAC,KAAU;QACxB,MAAM,IAAA,4BAAa,EAAC,KAAK,CAAC,CAAC;QAE3B,qBAAU,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;QAC3C,qBAAU,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,SAAS,KAAU,CAAC;IAEpB,KAAK,KAAU,CAAC;CACnB;AAXD,8DAWC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=file-storage-worker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-storage-worker.d.ts","sourceRoot":"","sources":["../../src/workers/file-storage-worker.ts"],"names":[],"mappings":""}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const node_worker_threads_1 = require("node:worker_threads");
4
- const worker_utils_1 = require("./worker-utils");
5
- if (node_worker_threads_1.isMainThread || !node_worker_threads_1.parentPort) {
6
- throw new Error('This file should only be run in a worker thread!');
7
- }
8
- // Keep worker alive
9
- setInterval(() => {
10
- node_worker_threads_1.parentPort.postMessage('ping');
11
- }, 30000);
12
- node_worker_threads_1.parentPort.on('message', async (message) => {
13
- await (0, worker_utils_1.handleMessage)(message);
14
- });
15
- //# sourceMappingURL=file-storage-worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-storage-worker.js","sourceRoot":"","sources":["../../src/workers/file-storage-worker.ts"],"names":[],"mappings":";;AAAA,6DAA+D;AAE/D,iDAA+C;AAE/C,IAAI,kCAAY,IAAI,CAAC,gCAAU,EAAE;IAC7B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;CACvE;AAED,oBAAoB;AACpB,WAAW,CAAC,GAAG,EAAE;IACb,gCAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC,EAAE,KAAM,CAAC,CAAC;AAEX,gCAAW,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,OAAsD,EAAE,EAAE;IACvF,MAAM,IAAA,4BAAa,EAAC,OAAO,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC"}
@@ -1,8 +0,0 @@
1
- import type { WorkerReceivedMessage } from '../utils';
2
- export declare const promiseMap: Map<string, {
3
- promise: Promise<void>;
4
- resolve: () => void;
5
- }>;
6
- export declare function sendWorkerMessage(message: WorkerReceivedMessage): void;
7
- export declare function initWorkerIfNeeded(): void;
8
- //# sourceMappingURL=instance.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"instance.d.ts","sourceRoot":"","sources":["../../src/workers/instance.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAOtD,eAAO,MAAM,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE;IACjC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB,CAAa,CAAC;AAEf,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,QAiB/D;AAED,wBAAgB,kBAAkB,SAkCjC"}
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initWorkerIfNeeded = exports.sendWorkerMessage = exports.promiseMap = void 0;
4
- const node_crypto_1 = require("node:crypto");
5
- const node_path_1 = require("node:path");
6
- const node_worker_threads_1 = require("node:worker_threads");
7
- const utils_1 = require("../utils");
8
- const file_storage_worker_emulator_1 = require("./file-storage-worker-emulator");
9
- // eslint-disable-next-line import/no-mutable-exports
10
- let workerInstance;
11
- exports.promiseMap = new Map();
12
- function sendWorkerMessage(message) {
13
- const id = (0, node_crypto_1.randomUUID)();
14
- let promiseResolve;
15
- const promise = new Promise((res) => {
16
- promiseResolve = res;
17
- });
18
- exports.promiseMap.set(id, {
19
- promise,
20
- resolve: promiseResolve,
21
- });
22
- void workerInstance.postMessage({
23
- ...message,
24
- messageId: id,
25
- });
26
- }
27
- exports.sendWorkerMessage = sendWorkerMessage;
28
- function initWorkerIfNeeded() {
29
- if (workerInstance) {
30
- return;
31
- }
32
- process.on('exit', () => {
33
- void workerInstance.terminate();
34
- });
35
- const workerPath = (0, node_path_1.resolve)(__dirname, './file-storage-worker.js');
36
- // vladfrangu: The worker is temporarily disabled due to node/v8 having internal bugs that sometimes cause hard crashes when the process exits.
37
- // const exists = existsSync(workerPath);
38
- const exists = false;
39
- if (exists) {
40
- workerInstance = new node_worker_threads_1.Worker(workerPath);
41
- workerInstance.unref();
42
- workerInstance.once('exit', (code) => {
43
- utils_1.memoryStorageLog.debug(`File storage worker exited with code ${code}`);
44
- initWorkerIfNeeded();
45
- });
46
- workerInstance.on('message', (message) => {
47
- if (message.type !== 'ack') {
48
- return;
49
- }
50
- exports.promiseMap.get(message.messageId)?.resolve();
51
- exports.promiseMap.delete(message.messageId);
52
- });
53
- }
54
- else {
55
- workerInstance = new file_storage_worker_emulator_1.FileStorageWorkerEmulator();
56
- }
57
- }
58
- exports.initWorkerIfNeeded = initWorkerIfNeeded;
59
- //# sourceMappingURL=instance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"instance.js","sourceRoot":"","sources":["../../src/workers/instance.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,yCAAoC;AACpC,6DAA6C;AAE7C,oCAA4C;AAC5C,iFAA2E;AAE3E,qDAAqD;AACrD,IAAI,cAAkD,CAAC;AAE1C,QAAA,UAAU,GAGlB,IAAI,GAAG,EAAE,CAAC;AAEf,SAAgB,iBAAiB,CAAC,OAA8B;IAC5D,MAAM,EAAE,GAAG,IAAA,wBAAU,GAAE,CAAC;IAExB,IAAI,cAA0B,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,GAAG,EAAE,EAAE;QACtC,cAAc,GAAG,GAAG,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,kBAAU,CAAC,GAAG,CAAC,EAAE,EAAE;QACf,OAAO;QACP,OAAO,EAAE,cAAe;KAC3B,CAAC,CAAC;IAEH,KAAK,cAAc,CAAC,WAAW,CAAC;QAC5B,GAAG,OAAO;QACV,SAAS,EAAE,EAAE;KAChB,CAAC,CAAC;AACP,CAAC;AAjBD,8CAiBC;AAED,SAAgB,kBAAkB;IAC9B,IAAI,cAAc,EAAE;QAChB,OAAO;KACV;IAED,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACpB,KAAK,cAAc,CAAC,SAAS,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAA,mBAAO,EAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;IAClE,+IAA+I;IAC/I,yCAAyC;IACzC,MAAM,MAAM,GAAG,KAAK,CAAC;IAErB,IAAI,MAAM,EAAE;QACR,cAAc,GAAG,IAAI,4BAAM,CAAC,UAAU,CAAC,CAAC;QACxC,cAAc,CAAC,KAAK,EAAE,CAAC;QAEtB,cAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC7C,wBAAgB,CAAC,KAAK,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC;YACvE,kBAAkB,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAEF,cAAyB,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAA2C,EAAE,EAAE;YACrF,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE;gBACxB,OAAO;aACV;YAED,kBAAU,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;YAC7C,kBAAU,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;KACN;SAAM;QACH,cAAc,GAAG,IAAI,wDAAyB,EAAE,CAAC;KACpD;AACL,CAAC;AAlCD,gDAkCC"}
@@ -1,6 +0,0 @@
1
- import type { WorkerReceivedMessage } from '../utils';
2
- export declare function handleMessage(message: WorkerReceivedMessage & {
3
- messageId: string;
4
- }): Promise<void>;
5
- export declare function lockAndWrite(filePath: string, data: unknown, stringify?: boolean, retry?: number, timeout?: number): Promise<void>;
6
- //# sourceMappingURL=worker-utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker-utils.d.ts","sourceRoot":"","sources":["../../src/workers/worker-utils.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,qBAAqB,EAA+B,MAAM,UAAU,CAAC;AAInF,wBAAsB,aAAa,CAAC,OAAO,EAAE,qBAAqB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,iBAezF;AAiBD,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,UAAO,EAAE,KAAK,SAAK,EAAE,OAAO,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB7H"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker-utils.js","sourceRoot":"","sources":["../../src/workers/worker-utils.ts"],"names":[],"mappings":";;;;AAAA,6DAA6B;AAC7B,uCAAqC;AACrC,+CAA2D;AAC3D,mDAAkD;AAClD,yCAAoC;AACpC,6DAAiD;AACjD,qDAAuC;AACvC,qCAAoC;AAGpC,MAAM,SAAS,GAAG,aAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC;AAExD,KAAK,UAAU,aAAa,CAAC,OAAsD;IACtF,QAAQ,OAAO,CAAC,MAAM,EAAE;QACpB,KAAK,iBAAiB;YAClB,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;YAC9B,MAAM;QACV;YACI,0GAA0G;YAC1G,6BAA6B;YAC7B,SAAS,CAAC,OAAO,CAAC,iCAAkC,OAAiC,CAAC,MAAM,EAAE,CAAC,CAAC;KACvG;IAED,gCAAU,EAAE,WAAW,CAAC;QACpB,IAAI,EAAE,KAAK;QACX,SAAS,EAAE,OAAO,CAAC,SAAS;KAC/B,CAAC,CAAC;AACP,CAAC;AAfD,sCAeC;AAED,KAAK,UAAU,cAAc,CAAC,OAAoC;IAC9D,2HAA2H;IAC3H,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;QACxB,OAAO;KACV;IAED,6CAA6C;IAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC;IACpC,MAAM,IAAA,oBAAS,EAAC,GAAG,CAAC,CAAC;IAErB,iCAAiC;IACjC,MAAM,QAAQ,GAAG,IAAA,mBAAO,EAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IACnD,MAAM,IAAA,oBAAU,EAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACzE,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,IAAa,EAAE,SAAS,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE;IAC1G,IAAI;QACA,MAAM,OAAO,GAAG,MAAM,IAAA,sBAAI,EAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1D,MAAM,IAAI,OAAO,CAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;YACzC,IAAA,mBAAS,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAc,EAAE,CAAC,GAAG,EAAE,EAAE;gBACvF,IAAI,GAAG,EAAE;oBACL,MAAM,CAAC,GAAG,CAAC,CAAC;iBACf;qBAAM;oBACH,QAAQ,EAAE,CAAC;iBACd;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,EAAE,CAAC;KACnB;IAAC,OAAO,CAAM,EAAE;QACb,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC,EAAE;YACnC,MAAM,IAAA,qBAAU,EAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;SAC1E;KACJ;AACL,CAAC;AAnBD,oCAmBC"}