node-cqrs 1.2.0-alpha.1 → 1.2.0-alpha.3
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/CHANGELOG.md +38 -10
- package/README.md +20 -3
- package/dist/cjs/shared/worker-utils/createWorker.js +85 -0
- package/dist/cjs/shared/worker-utils/createWorker.js.map +1 -0
- package/dist/cjs/shared/worker-utils/index.js +19 -0
- package/dist/cjs/shared/worker-utils/index.js.map +1 -0
- package/dist/cjs/shared/worker-utils/nodeEndpoint.js.map +1 -0
- package/dist/cjs/sqlite-workers/SqliteWorkerProxy.js +8 -2
- package/dist/cjs/sqlite-workers/SqliteWorkerProxy.js.map +1 -1
- package/dist/cjs/sqlite-workers/SqliteWorkerRunner.js +2 -1
- package/dist/cjs/sqlite-workers/SqliteWorkerRunner.js.map +1 -1
- package/dist/cjs/sqlite-workers/protocol.js +0 -7
- package/dist/cjs/sqlite-workers/protocol.js.map +1 -1
- package/dist/cjs/sqlite-workers/utils/index.js +0 -2
- package/dist/cjs/sqlite-workers/utils/index.js.map +1 -1
- package/dist/cjs/workers/AbstractWorkerProjection.js +5 -4
- package/dist/cjs/workers/AbstractWorkerProjection.js.map +1 -1
- package/dist/cjs/workers/WorkerProxyProjection.js +25 -8
- package/dist/cjs/workers/WorkerProxyProjection.js.map +1 -1
- package/dist/cjs/workers/utils/createWorker.js +8 -77
- package/dist/cjs/workers/utils/createWorker.js.map +1 -1
- package/dist/cjs/workers/utils/createWorkerInstance.js +1 -1
- package/dist/cjs/workers/utils/createWorkerInstance.js.map +1 -1
- package/dist/cjs/workers/utils/index.js +0 -2
- package/dist/cjs/workers/utils/index.js.map +1 -1
- package/dist/esm/shared/worker-utils/createWorker.js +49 -0
- package/dist/esm/shared/worker-utils/createWorker.js.map +1 -0
- package/dist/esm/shared/worker-utils/index.js +3 -0
- package/dist/esm/shared/worker-utils/index.js.map +1 -0
- package/dist/esm/shared/worker-utils/nodeEndpoint.js.map +1 -0
- package/dist/esm/sqlite-workers/SqliteWorkerProxy.js +8 -2
- package/dist/esm/sqlite-workers/SqliteWorkerProxy.js.map +1 -1
- package/dist/esm/sqlite-workers/SqliteWorkerRunner.js +2 -1
- package/dist/esm/sqlite-workers/SqliteWorkerRunner.js.map +1 -1
- package/dist/esm/sqlite-workers/protocol.js +0 -6
- package/dist/esm/sqlite-workers/protocol.js.map +1 -1
- package/dist/esm/sqlite-workers/utils/index.js +0 -2
- package/dist/esm/sqlite-workers/utils/index.js.map +1 -1
- package/dist/esm/workers/AbstractWorkerProjection.js +5 -4
- package/dist/esm/workers/AbstractWorkerProjection.js.map +1 -1
- package/dist/esm/workers/WorkerProxyProjection.js +25 -8
- package/dist/esm/workers/WorkerProxyProjection.js.map +1 -1
- package/dist/esm/workers/utils/createWorker.js +8 -44
- package/dist/esm/workers/utils/createWorker.js.map +1 -1
- package/dist/esm/workers/utils/createWorkerInstance.js +1 -1
- package/dist/esm/workers/utils/createWorkerInstance.js.map +1 -1
- package/dist/esm/workers/utils/index.js +0 -2
- package/dist/esm/workers/utils/index.js.map +1 -1
- package/dist/types/shared/worker-utils/createWorker.d.ts +14 -0
- package/dist/types/shared/worker-utils/index.d.ts +2 -0
- package/dist/types/{sqlite-workers/utils → shared/worker-utils}/nodeEndpoint.d.ts +1 -1
- package/dist/types/sqlite-workers/protocol.d.ts +0 -1
- package/dist/types/sqlite-workers/utils/index.d.ts +0 -2
- package/dist/types/workers/WorkerProxyProjection.d.ts +9 -3
- package/dist/types/workers/utils/createWorker.d.ts +6 -6
- package/dist/types/workers/utils/index.d.ts +0 -2
- package/package.json +1 -1
- package/dist/cjs/sqlite-workers/utils/createSqliteWorker.js +0 -39
- package/dist/cjs/sqlite-workers/utils/createSqliteWorker.js.map +0 -1
- package/dist/cjs/sqlite-workers/utils/nodeEndpoint.js.map +0 -1
- package/dist/cjs/workers/utils/nodeEndpoint.js +0 -8
- package/dist/cjs/workers/utils/nodeEndpoint.js.map +0 -1
- package/dist/esm/sqlite-workers/utils/createSqliteWorker.js +0 -36
- package/dist/esm/sqlite-workers/utils/createSqliteWorker.js.map +0 -1
- package/dist/esm/sqlite-workers/utils/nodeEndpoint.js.map +0 -1
- package/dist/esm/workers/utils/nodeEndpoint.js +0 -5
- package/dist/esm/workers/utils/nodeEndpoint.js.map +0 -1
- package/dist/types/sqlite-workers/utils/createSqliteWorker.d.ts +0 -3
- package/dist/types/workers/utils/nodeEndpoint.d.ts +0 -2
- /package/dist/cjs/{sqlite-workers/utils → shared/worker-utils}/nodeEndpoint.js +0 -0
- /package/dist/esm/{sqlite-workers/utils → shared/worker-utils}/nodeEndpoint.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IEvent, IEventStorageReader, IEventStore, IExtendableLogger, ILogger, IViewLocker } from '../interfaces/index.ts';
|
|
1
|
+
import type { IEvent, IEventSet, IEventStorageReader, IEventStore, IExtendableLogger, ILogger, IViewLocker } from '../interfaces/index.ts';
|
|
2
2
|
import type { IProxyProjection, IWorkerProjection, ProxyProjectionParams } from './interfaces/index.ts';
|
|
3
3
|
import * as Comlink from 'comlink';
|
|
4
4
|
/**
|
|
@@ -7,6 +7,7 @@ import * as Comlink from 'comlink';
|
|
|
7
7
|
*/
|
|
8
8
|
export declare class WorkerProxyProjection<TView, TProjection extends IWorkerProjection<TView> = IWorkerProjection<TView>> implements IProxyProjection<TView> {
|
|
9
9
|
#private;
|
|
10
|
+
static RESTORE_BATCH_SIZE: number;
|
|
10
11
|
viewLocker?: IViewLocker;
|
|
11
12
|
get remoteProjection(): Comlink.Remote<TProjection>;
|
|
12
13
|
get view(): Comlink.Remote<TView>;
|
|
@@ -15,12 +16,17 @@ export declare class WorkerProxyProjection<TView, TProjection extends IWorkerPro
|
|
|
15
16
|
});
|
|
16
17
|
subscribe(eventStore: IEventStore): void;
|
|
17
18
|
restore(eventStore: IEventStorageReader): Promise<void>;
|
|
18
|
-
/**
|
|
19
|
+
/**
|
|
20
|
+
* Restore view state from not-yet-projected events.
|
|
21
|
+
*
|
|
22
|
+
* Events are projected in batches to reduce worker RPC overhead.
|
|
23
|
+
* The batch size can be configured through {@link WorkerProxyProjection.RESTORE_BATCH_SIZE}.
|
|
24
|
+
*/
|
|
19
25
|
protected _restore(eventStore: IEventStorageReader): Promise<void>;
|
|
20
26
|
protected _onWorkerError: (error: unknown) => void;
|
|
21
27
|
protected _onWorkerExit: (exitCode: number) => void;
|
|
22
28
|
ensureWorkerReady(): Promise<void>;
|
|
23
29
|
project(event: IEvent): Promise<void>;
|
|
24
|
-
protected
|
|
30
|
+
protected _projectBatch(batch: IEventSet): Promise<void>;
|
|
25
31
|
dispose(): void;
|
|
26
32
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Worker } from 'node:worker_threads';
|
|
2
|
-
import {
|
|
1
|
+
import type { Worker } from 'node:worker_threads';
|
|
2
|
+
import type { IWorkerData } from '../protocol.ts';
|
|
3
3
|
/**
|
|
4
|
-
* Create a worker instance, await a handshake or a failure
|
|
4
|
+
* Create a worker instance for a projection worker module, await a handshake or a failure.
|
|
5
5
|
*
|
|
6
|
-
* @param workerModulePath -
|
|
7
|
-
* @param ports -
|
|
8
|
-
* @returns Worker instance
|
|
6
|
+
* @param workerModulePath - Absolute or relative path to the worker module
|
|
7
|
+
* @param ports - MessagePorts for projection and view communication (transferred into the worker)
|
|
8
|
+
* @returns Resolved Worker instance after the ready handshake
|
|
9
9
|
*/
|
|
10
10
|
export declare function createWorker(workerModulePath: string, ports: IWorkerData): Promise<Worker>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-cqrs",
|
|
3
|
-
"version": "1.2.0-alpha.
|
|
3
|
+
"version": "1.2.0-alpha.3",
|
|
4
4
|
"description": "TypeScript CQRS/Event Sourcing toolkit for Node.js with DI, sagas, projections, and optional Worker, RabbitMQ, and SQLite adapters",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createSqliteWorker = createSqliteWorker;
|
|
4
|
-
const node_worker_threads_1 = require("node:worker_threads");
|
|
5
|
-
const protocol_ts_1 = require("../protocol.js");
|
|
6
|
-
const SqliteWorkerRunner_ts_1 = require("../SqliteWorkerRunner.js");
|
|
7
|
-
async function createSqliteWorker(params) {
|
|
8
|
-
const { sqliteWorkerRunnerLocation = SqliteWorkerRunner_ts_1.SqliteWorkerRunner.location, ...workerData } = params;
|
|
9
|
-
const worker = new node_worker_threads_1.Worker(sqliteWorkerRunnerLocation, { workerData });
|
|
10
|
-
await new Promise((resolve, reject) => {
|
|
11
|
-
let onError;
|
|
12
|
-
let onMessage;
|
|
13
|
-
let onExit;
|
|
14
|
-
const cleanup = () => {
|
|
15
|
-
worker.off('error', onError);
|
|
16
|
-
worker.off('message', onMessage);
|
|
17
|
-
worker.off('exit', onExit);
|
|
18
|
-
};
|
|
19
|
-
onMessage = (message) => {
|
|
20
|
-
if (!(0, protocol_ts_1.isSqliteWorkerReadyMessage)(message))
|
|
21
|
-
return;
|
|
22
|
-
cleanup();
|
|
23
|
-
resolve();
|
|
24
|
-
};
|
|
25
|
-
onError = (err) => {
|
|
26
|
-
cleanup();
|
|
27
|
-
reject(err);
|
|
28
|
-
};
|
|
29
|
-
onExit = (exitCode) => {
|
|
30
|
-
cleanup();
|
|
31
|
-
reject(new Error(`SQLite worker exited prematurely with exit code ${exitCode}`));
|
|
32
|
-
};
|
|
33
|
-
worker.on('message', onMessage);
|
|
34
|
-
worker.once('error', onError);
|
|
35
|
-
worker.once('exit', onExit);
|
|
36
|
-
});
|
|
37
|
-
return worker;
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=createSqliteWorker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createSqliteWorker.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/createSqliteWorker.ts"],"names":[],"mappings":";;AAIA,gDA2CC;AA/CD,6DAA6C;AAC7C,gDAA0F;AAC1F,oEAA8D;AAEvD,KAAK,UAAU,kBAAkB,CAAC,MAA+B;IACvE,MAAM,EACL,0BAA0B,GAAG,0CAAkB,CAAC,QAAQ,EACxD,GAAG,UAAU,EACb,GAAG,MAAM,CAAC;IAEX,MAAM,MAAM,GAAG,IAAI,4BAAM,CAAC,0BAA0B,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAEtE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,IAAI,OAA+B,CAAC;QACpC,IAAI,SAAqC,CAAC;QAC1C,IAAI,MAAkC,CAAC;QAEvC,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACjC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEF,SAAS,GAAG,CAAC,OAAgB,EAAE,EAAE;YAChC,IAAI,CAAC,IAAA,wCAA0B,EAAC,OAAO,CAAC;gBACvC,OAAO;YAER,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACX,CAAC,CAAC;QAEF,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE;YAC1B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,CAAC;QACb,CAAC,CAAC;QAEF,MAAM,GAAG,CAAC,QAAgB,EAAE,EAAE;YAC7B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,KAAK,CAAC,mDAAmD,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC,CAAC;QAEF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nodeEndpoint.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/nodeEndpoint.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA4C;AAC5C,gDAAkC;AAKlC,4CAA4C;AAC5C,yEAAyE;AACzE,MAAM,eAAe,GAAG,IAAA,2BAAa,EAAC,OAAO,UAAU,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IACxG,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACjC,UAAU,CAAC,CAAC;AACb,MAAM,kBAAkB,GAAG,eAAe,CAAC,+BAA+B,CAAC,CAAC;AAC/D,QAAA,YAAY,GACxB,CAAC,kBAAkB,EAAE,OAAO,IAAI,kBAAkB,CAAQ,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.nodeEndpoint = void 0;
|
|
4
|
-
// Jest (CJS) cannot import the ESM adapter;
|
|
5
|
-
// the UMD build is CJS/UMD but the default export shape varies by loader
|
|
6
|
-
const nodeEndpointModule = require('comlink/dist/umd/node-adapter');
|
|
7
|
-
exports.nodeEndpoint = (nodeEndpointModule?.default ?? nodeEndpointModule);
|
|
8
|
-
//# sourceMappingURL=nodeEndpoint.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nodeEndpoint.js","sourceRoot":"","sources":["../../../../src/workers/utils/nodeEndpoint.ts"],"names":[],"mappings":";;;AAEA,4CAA4C;AAC5C,yEAAyE;AACzE,MAAM,kBAAkB,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;AACvD,QAAA,YAAY,GACxB,CAAC,kBAAkB,EAAE,OAAO,IAAI,kBAAkB,CAAQ,CAAC"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Worker } from 'node:worker_threads';
|
|
2
|
-
import { isSqliteWorkerReadyMessage } from "../protocol.js";
|
|
3
|
-
import { SqliteWorkerRunner } from "../SqliteWorkerRunner.js";
|
|
4
|
-
export async function createSqliteWorker(params) {
|
|
5
|
-
const { sqliteWorkerRunnerLocation = SqliteWorkerRunner.location, ...workerData } = params;
|
|
6
|
-
const worker = new Worker(sqliteWorkerRunnerLocation, { workerData });
|
|
7
|
-
await new Promise((resolve, reject) => {
|
|
8
|
-
let onError;
|
|
9
|
-
let onMessage;
|
|
10
|
-
let onExit;
|
|
11
|
-
const cleanup = () => {
|
|
12
|
-
worker.off('error', onError);
|
|
13
|
-
worker.off('message', onMessage);
|
|
14
|
-
worker.off('exit', onExit);
|
|
15
|
-
};
|
|
16
|
-
onMessage = (message) => {
|
|
17
|
-
if (!isSqliteWorkerReadyMessage(message))
|
|
18
|
-
return;
|
|
19
|
-
cleanup();
|
|
20
|
-
resolve();
|
|
21
|
-
};
|
|
22
|
-
onError = (err) => {
|
|
23
|
-
cleanup();
|
|
24
|
-
reject(err);
|
|
25
|
-
};
|
|
26
|
-
onExit = (exitCode) => {
|
|
27
|
-
cleanup();
|
|
28
|
-
reject(new Error(`SQLite worker exited prematurely with exit code ${exitCode}`));
|
|
29
|
-
};
|
|
30
|
-
worker.on('message', onMessage);
|
|
31
|
-
worker.once('error', onError);
|
|
32
|
-
worker.once('exit', onExit);
|
|
33
|
-
});
|
|
34
|
-
return worker;
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=createSqliteWorker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createSqliteWorker.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/createSqliteWorker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAgC,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAA+B;IACvE,MAAM,EACL,0BAA0B,GAAG,kBAAkB,CAAC,QAAQ,EACxD,GAAG,UAAU,EACb,GAAG,MAAM,CAAC;IAEX,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,0BAA0B,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAEtE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,IAAI,OAA+B,CAAC;QACpC,IAAI,SAAqC,CAAC;QAC1C,IAAI,MAAkC,CAAC;QAEvC,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACjC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEF,SAAS,GAAG,CAAC,OAAgB,EAAE,EAAE;YAChC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC;gBACvC,OAAO;YAER,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACX,CAAC,CAAC;QAEF,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE;YAC1B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,CAAC;QACb,CAAC,CAAC;QAEF,MAAM,GAAG,CAAC,QAAgB,EAAE,EAAE;YAC7B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,KAAK,CAAC,mDAAmD,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC,CAAC;QAEF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nodeEndpoint.js","sourceRoot":"","sources":["../../../../src/sqlite-workers/utils/nodeEndpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAKlC,4CAA4C;AAC5C,yEAAyE;AACzE,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,UAAU,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IACxG,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACjC,UAAU,CAAC,CAAC;AACb,MAAM,kBAAkB,GAAG,eAAe,CAAC,+BAA+B,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,YAAY,GACxB,CAAC,kBAAkB,EAAE,OAAO,IAAI,kBAAkB,CAAQ,CAAC"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
// Jest (CJS) cannot import the ESM adapter;
|
|
2
|
-
// the UMD build is CJS/UMD but the default export shape varies by loader
|
|
3
|
-
const nodeEndpointModule = require('comlink/dist/umd/node-adapter');
|
|
4
|
-
export const nodeEndpoint = (nodeEndpointModule?.default ?? nodeEndpointModule);
|
|
5
|
-
//# sourceMappingURL=nodeEndpoint.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nodeEndpoint.js","sourceRoot":"","sources":["../../../../src/workers/utils/nodeEndpoint.ts"],"names":[],"mappings":"AAEA,4CAA4C;AAC5C,yEAAyE;AACzE,MAAM,kBAAkB,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,YAAY,GACxB,CAAC,kBAAkB,EAAE,OAAO,IAAI,kBAAkB,CAAQ,CAAC"}
|
|
File without changes
|
|
File without changes
|