@zudojs/adapters 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +40 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/adapter/adapter.registry.d.ts +52 -0
- package/dist/adapter/adapter.registry.d.ts.map +1 -0
- package/dist/adapter/adapter.registry.js +74 -0
- package/dist/adapter/adapter.registry.js.map +1 -0
- package/dist/adapter/adapter.type.d.ts +48 -0
- package/dist/adapter/adapter.type.d.ts.map +1 -0
- package/dist/adapter/adapter.type.js +7 -0
- package/dist/adapter/adapter.type.js.map +1 -0
- package/dist/adapter/index.d.ts +8 -0
- package/dist/adapter/index.d.ts.map +1 -0
- package/dist/adapter/index.js +7 -0
- package/dist/adapter/index.js.map +1 -0
- package/dist/capabilities/capabilities.type.d.ts +38 -0
- package/dist/capabilities/capabilities.type.d.ts.map +1 -0
- package/dist/capabilities/capabilities.type.js +7 -0
- package/dist/capabilities/capabilities.type.js.map +1 -0
- package/dist/capabilities/index.d.ts +7 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/index.js +7 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/cli/cliAdapter.type.d.ts +31 -0
- package/dist/cli/cliAdapter.type.d.ts.map +1 -0
- package/dist/cli/cliAdapter.type.js +7 -0
- package/dist/cli/cliAdapter.type.js.map +1 -0
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +7 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/errors/index.d.ts +8 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +7 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/http/httpAdapter.type.d.ts +85 -0
- package/dist/http/httpAdapter.type.d.ts.map +1 -0
- package/dist/http/httpAdapter.type.js +7 -0
- package/dist/http/httpAdapter.type.js.map +1 -0
- package/dist/http/index.d.ts +7 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +7 -0
- package/dist/http/index.js.map +1 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/lifecycle/index.d.ts +8 -0
- package/dist/lifecycle/index.d.ts.map +1 -0
- package/dist/lifecycle/index.js +7 -0
- package/dist/lifecycle/index.js.map +1 -0
- package/dist/lifecycle/lifecycle.type.d.ts +55 -0
- package/dist/lifecycle/lifecycle.type.d.ts.map +1 -0
- package/dist/lifecycle/lifecycle.type.js +35 -0
- package/dist/lifecycle/lifecycle.type.js.map +1 -0
- package/dist/messaging/index.d.ts +7 -0
- package/dist/messaging/index.d.ts.map +1 -0
- package/dist/messaging/index.js +7 -0
- package/dist/messaging/index.js.map +1 -0
- package/dist/messaging/messageAdapter.type.d.ts +32 -0
- package/dist/messaging/messageAdapter.type.d.ts.map +1 -0
- package/dist/messaging/messageAdapter.type.js +7 -0
- package/dist/messaging/messageAdapter.type.js.map +1 -0
- package/dist/metadata/index.d.ts +7 -0
- package/dist/metadata/index.d.ts.map +1 -0
- package/dist/metadata/index.js +7 -0
- package/dist/metadata/index.js.map +1 -0
- package/dist/metadata/metadata.type.d.ts +34 -0
- package/dist/metadata/metadata.type.d.ts.map +1 -0
- package/dist/metadata/metadata.type.js +7 -0
- package/dist/metadata/metadata.type.js.map +1 -0
- package/dist/queue/index.d.ts +7 -0
- package/dist/queue/index.d.ts.map +1 -0
- package/dist/queue/index.js +7 -0
- package/dist/queue/index.js.map +1 -0
- package/dist/queue/queueAdapter.type.d.ts +34 -0
- package/dist/queue/queueAdapter.type.d.ts.map +1 -0
- package/dist/queue/queueAdapter.type.js +9 -0
- package/dist/queue/queueAdapter.type.js.map +1 -0
- package/dist/runtime/index.d.ts +7 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +7 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/runtimeAdapter.type.d.ts +28 -0
- package/dist/runtime/runtimeAdapter.type.d.ts.map +1 -0
- package/dist/runtime/runtimeAdapter.type.js +9 -0
- package/dist/runtime/runtimeAdapter.type.js.map +1 -0
- package/dist/scheduler/index.d.ts +7 -0
- package/dist/scheduler/index.d.ts.map +1 -0
- package/dist/scheduler/index.js +7 -0
- package/dist/scheduler/index.js.map +1 -0
- package/dist/scheduler/schedulerAdapter.type.d.ts +36 -0
- package/dist/scheduler/schedulerAdapter.type.d.ts.map +1 -0
- package/dist/scheduler/schedulerAdapter.type.js +7 -0
- package/dist/scheduler/schedulerAdapter.type.js.map +1 -0
- package/dist/storage/index.d.ts +7 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +7 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/storageAdapter.type.d.ts +24 -0
- package/dist/storage/storageAdapter.type.d.ts.map +1 -0
- package/dist/storage/storageAdapter.type.js +9 -0
- package/dist/storage/storageAdapter.type.js.map +1 -0
- package/dist/testing/adapterTesting.helper.d.ts +26 -0
- package/dist/testing/adapterTesting.helper.d.ts.map +1 -0
- package/dist/testing/adapterTesting.helper.js +55 -0
- package/dist/testing/adapterTesting.helper.js.map +1 -0
- package/dist/testing/index.d.ts +11 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +7 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/websocket/index.d.ts +7 -0
- package/dist/websocket/index.d.ts.map +1 -0
- package/dist/websocket/index.js +7 -0
- package/dist/websocket/index.js.map +1 -0
- package/dist/websocket/websocketAdapter.type.d.ts +38 -0
- package/dist/websocket/websocketAdapter.type.d.ts.map +1 -0
- package/dist/websocket/websocketAdapter.type.js +16 -0
- package/dist/websocket/websocketAdapter.type.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/adapters/messaging
|
|
3
|
+
*
|
|
4
|
+
* Messaging adapter contracts — bridges Zudojs messaging to external providers.
|
|
5
|
+
*/
|
|
6
|
+
import type { Adapter, AdapterOperationOptions } from "../index.js";
|
|
7
|
+
/**
|
|
8
|
+
* Messaging adapter — connects Zudojs message bus to external providers.
|
|
9
|
+
*
|
|
10
|
+
* Examples: RabbitMQ, Kafka, Redis Streams, NATS, AWS SQS, Google Pub/Sub.
|
|
11
|
+
*/
|
|
12
|
+
export interface MessageAdapter extends Adapter {
|
|
13
|
+
/** Publishes a message to the external provider. */
|
|
14
|
+
publish(topic: string, message: unknown, options?: AdapterOperationOptions): Promise<void>;
|
|
15
|
+
/** Subscribes to a topic with a handler. */
|
|
16
|
+
subscribe(topic: string, handler: MessageHandler): Promise<Subscription>;
|
|
17
|
+
/** Unsubscribes from a topic. */
|
|
18
|
+
unsubscribe(subscription: Subscription): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Message handler function.
|
|
22
|
+
*/
|
|
23
|
+
export type MessageHandler = (message: unknown) => Promise<void> | void;
|
|
24
|
+
/**
|
|
25
|
+
* Subscription handle.
|
|
26
|
+
*/
|
|
27
|
+
export interface Subscription {
|
|
28
|
+
readonly id: string;
|
|
29
|
+
readonly topic: string;
|
|
30
|
+
unsubscribe(): Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=messageAdapter.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messageAdapter.type.d.ts","sourceRoot":"","sources":["../../src/messaging/messageAdapter.type.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,OAAO,EAEP,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAErB;;;;GAIG;AACH,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,oDAAoD;IACpD,OAAO,CACL,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,4CAA4C;IAC5C,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzE,iCAAiC;IACjC,WAAW,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messageAdapter.type.js","sourceRoot":"","sources":["../../src/messaging/messageAdapter.type.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metadata/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metadata/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/adapters/metadata
|
|
3
|
+
*
|
|
4
|
+
* Adapter metadata — identification and compatibility information.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Adapter metadata.
|
|
8
|
+
*
|
|
9
|
+
* Provides identification, versioning, and compatibility information
|
|
10
|
+
* for diagnostics and tooling.
|
|
11
|
+
*/
|
|
12
|
+
export interface AdapterMetadata {
|
|
13
|
+
/** Adapter name. */
|
|
14
|
+
readonly name: string;
|
|
15
|
+
/** Adapter version. */
|
|
16
|
+
readonly version: string;
|
|
17
|
+
/** Human-readable description. */
|
|
18
|
+
readonly description?: string;
|
|
19
|
+
/** Adapter author. */
|
|
20
|
+
readonly author?: string;
|
|
21
|
+
/** Adapter homepage URL. */
|
|
22
|
+
readonly homepage?: string;
|
|
23
|
+
/** Repository URL. */
|
|
24
|
+
readonly repository?: string;
|
|
25
|
+
/** License identifier. */
|
|
26
|
+
readonly license?: string;
|
|
27
|
+
/** Zudojs version compatibility range. */
|
|
28
|
+
readonly zudojs?: string;
|
|
29
|
+
/** Runtime version compatibility (e.g., "node >=18", "bun", "deno"). */
|
|
30
|
+
readonly runtime?: string;
|
|
31
|
+
/** Peer dependencies. */
|
|
32
|
+
readonly peerDependencies?: Readonly<Record<string, string>>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=metadata.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.type.d.ts","sourceRoot":"","sources":["../../src/metadata/metadata.type.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,uBAAuB;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,kCAAkC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B,sBAAsB;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB,4BAA4B;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B,sBAAsB;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B,0BAA0B;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB,wEAAwE;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,yBAAyB;IACzB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC9D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.type.js","sourceRoot":"","sources":["../../src/metadata/metadata.type.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/adapters/queue
|
|
3
|
+
*
|
|
4
|
+
* Queue adapter contracts — bridges Zudojs queue to external providers.
|
|
5
|
+
*
|
|
6
|
+
* Examples: BullMQ, RabbitMQ, AWS SQS, Redis, Kafka.
|
|
7
|
+
*/
|
|
8
|
+
import type { Adapter, AdapterOperationOptions } from "../index.js";
|
|
9
|
+
/**
|
|
10
|
+
* Queue adapter — connects Zudojs queue abstractions to external providers.
|
|
11
|
+
*/
|
|
12
|
+
export interface QueueAdapter extends Adapter {
|
|
13
|
+
/** Enqueues a job. */
|
|
14
|
+
enqueue(job: unknown, options?: AdapterOperationOptions): Promise<string>;
|
|
15
|
+
/** Dequeues a job. */
|
|
16
|
+
dequeue(options?: AdapterOperationOptions): Promise<unknown | null>;
|
|
17
|
+
/** Acknowledges a job as processed. */
|
|
18
|
+
acknowledge(jobId: string, options?: AdapterOperationOptions): Promise<void>;
|
|
19
|
+
/** Rejects a job, optionally requeuing it. */
|
|
20
|
+
reject(jobId: string, requeue?: boolean, options?: AdapterOperationOptions): Promise<void>;
|
|
21
|
+
/** Returns queue statistics. */
|
|
22
|
+
stats(options?: AdapterOperationOptions): Promise<QueueStats>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Queue statistics.
|
|
26
|
+
*/
|
|
27
|
+
export interface QueueStats {
|
|
28
|
+
readonly waiting: number;
|
|
29
|
+
readonly active: number;
|
|
30
|
+
readonly completed: number;
|
|
31
|
+
readonly failed: number;
|
|
32
|
+
readonly delayed: number;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=queueAdapter.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queueAdapter.type.d.ts","sourceRoot":"","sources":["../../src/queue/queueAdapter.type.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,OAAO,EAEP,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,OAAO;IAC3C,sBAAsB;IACtB,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1E,sBAAsB;IACtB,OAAO,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAEpE,uCAAuC;IACvC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7E,8CAA8C;IAC9C,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,gCAAgC;IAChC,KAAK,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAC/D;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queueAdapter.type.js","sourceRoot":"","sources":["../../src/queue/queueAdapter.type.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/adapters/runtime
|
|
3
|
+
*
|
|
4
|
+
* Runtime adapter contracts — bridges Zudojs to execution environments.
|
|
5
|
+
*
|
|
6
|
+
* Examples: Node.js, Bun, Deno, AWS Lambda, Cloudflare Workers.
|
|
7
|
+
*/
|
|
8
|
+
import type { Adapter } from "../index.js";
|
|
9
|
+
/**
|
|
10
|
+
* Runtime adapter — provides platform-specific runtime services.
|
|
11
|
+
*/
|
|
12
|
+
export interface RuntimeAdapter extends Adapter {
|
|
13
|
+
/** Platform name. */
|
|
14
|
+
readonly platform: string;
|
|
15
|
+
/** Platform version. */
|
|
16
|
+
readonly version?: string;
|
|
17
|
+
/** Creates an AbortSignal tied to the platform's cancellation mechanism. */
|
|
18
|
+
createSignal?(): AbortSignal;
|
|
19
|
+
/** Schedules a task for later execution. */
|
|
20
|
+
schedule?(delay: number, task: () => void): {
|
|
21
|
+
cancel: () => void;
|
|
22
|
+
};
|
|
23
|
+
/** Spawns a background task. */
|
|
24
|
+
spawn?(task: () => void): {
|
|
25
|
+
cancel: () => void;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=runtimeAdapter.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeAdapter.type.d.ts","sourceRoot":"","sources":["../../src/runtime/runtimeAdapter.type.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAuB,MAAM,aAAa,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,qBAAqB;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,wBAAwB;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,4EAA4E;IAC5E,YAAY,CAAC,IAAI,WAAW,CAAC;IAE7B,4CAA4C;IAC5C,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,GAAG;QAAE,MAAM,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IAEnE,gCAAgC;IAChC,KAAK,CAAC,CAAC,IAAI,EAAE,MAAM,IAAI,GAAG;QAAE,MAAM,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;CAClD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeAdapter.type.js","sourceRoot":"","sources":["../../src/runtime/runtimeAdapter.type.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scheduler/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scheduler/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/adapters/scheduler
|
|
3
|
+
*
|
|
4
|
+
* Scheduler adapter contracts — bridges Zudojs to scheduling providers.
|
|
5
|
+
*/
|
|
6
|
+
import type { Adapter, AdapterOperationOptions } from "../index.js";
|
|
7
|
+
/**
|
|
8
|
+
* Scheduler adapter — manages scheduled tasks.
|
|
9
|
+
*/
|
|
10
|
+
export interface SchedulerAdapter extends Adapter {
|
|
11
|
+
/** Schedules a task. */
|
|
12
|
+
schedule(name: string, task: ScheduledTask, options?: AdapterOperationOptions): Promise<ScheduledJob>;
|
|
13
|
+
/** Cancels a scheduled job. */
|
|
14
|
+
cancel(job: ScheduledJob, options?: AdapterOperationOptions): Promise<void>;
|
|
15
|
+
/** Lists all scheduled jobs. */
|
|
16
|
+
list(options?: AdapterOperationOptions): Promise<readonly ScheduledJob[]>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* A scheduled task definition.
|
|
20
|
+
*/
|
|
21
|
+
export interface ScheduledTask {
|
|
22
|
+
readonly name: string;
|
|
23
|
+
readonly cron?: string;
|
|
24
|
+
readonly interval?: number;
|
|
25
|
+
readonly handler: () => Promise<void> | void;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* A scheduled job handle.
|
|
29
|
+
*/
|
|
30
|
+
export interface ScheduledJob {
|
|
31
|
+
readonly id: string;
|
|
32
|
+
readonly name: string;
|
|
33
|
+
readonly nextRun: number;
|
|
34
|
+
cancel(): Promise<void>;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=schedulerAdapter.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedulerAdapter.type.d.ts","sourceRoot":"","sources":["../../src/scheduler/schedulerAdapter.type.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,OAAO,EAEP,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,OAAO;IAC/C,wBAAwB;IACxB,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,aAAa,EACnB,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzB,+BAA+B;IAC/B,MAAM,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E,gCAAgC;IAChC,IAAI,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAC;CAC3E;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedulerAdapter.type.js","sourceRoot":"","sources":["../../src/scheduler/schedulerAdapter.type.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/adapters/storage
|
|
3
|
+
*
|
|
4
|
+
* Storage adapter contracts — bridges Zudojs storage to external providers.
|
|
5
|
+
*
|
|
6
|
+
* Examples: Local filesystem, AWS S3, Cloudflare R2, Google Cloud Storage, Azure Blob.
|
|
7
|
+
*/
|
|
8
|
+
import type { Adapter, AdapterOperationOptions } from "../index.js";
|
|
9
|
+
/**
|
|
10
|
+
* Storage adapter — connects Zudojs storage abstractions to external providers.
|
|
11
|
+
*/
|
|
12
|
+
export interface StorageAdapter extends Adapter {
|
|
13
|
+
/** Retrieves an object by key. */
|
|
14
|
+
get(key: string, options?: AdapterOperationOptions): Promise<unknown>;
|
|
15
|
+
/** Stores an object. */
|
|
16
|
+
put(key: string, value: unknown, options?: AdapterOperationOptions): Promise<void>;
|
|
17
|
+
/** Deletes an object. */
|
|
18
|
+
delete(key: string, options?: AdapterOperationOptions): Promise<void>;
|
|
19
|
+
/** Checks if an object exists. */
|
|
20
|
+
exists(key: string, options?: AdapterOperationOptions): Promise<boolean>;
|
|
21
|
+
/** Lists objects with optional prefix. */
|
|
22
|
+
list(prefix?: string, options?: AdapterOperationOptions): Promise<readonly string[]>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=storageAdapter.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storageAdapter.type.d.ts","sourceRoot":"","sources":["../../src/storage/storageAdapter.type.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,OAAO,EAEP,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,kCAAkC;IAClC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtE,wBAAwB;IACxB,GAAG,CACD,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,yBAAyB;IACzB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtE,kCAAkC;IAClC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzE,0CAA0C;IAC1C,IAAI,CACF,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;CAC/B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/adapters/storage
|
|
3
|
+
*
|
|
4
|
+
* Storage adapter contracts — bridges Zudojs storage to external providers.
|
|
5
|
+
*
|
|
6
|
+
* Examples: Local filesystem, AWS S3, Cloudflare R2, Google Cloud Storage, Azure Blob.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=storageAdapter.type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storageAdapter.type.js","sourceRoot":"","sources":["../../src/storage/storageAdapter.type.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/adapters/testing
|
|
3
|
+
*
|
|
4
|
+
* Testing utilities for adapter implementations.
|
|
5
|
+
*/
|
|
6
|
+
import type { Adapter } from "../adapter/adapter.type.js";
|
|
7
|
+
import { AdapterRegistry } from "../adapter/adapter.registry.js";
|
|
8
|
+
import type { AdapterHealth } from "../lifecycle/lifecycle.type.js";
|
|
9
|
+
/**
|
|
10
|
+
* Creates a minimal mock adapter for testing.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createMockAdapter(overrides?: Partial<Adapter> & {
|
|
13
|
+
name: string;
|
|
14
|
+
}): Adapter;
|
|
15
|
+
/**
|
|
16
|
+
* Creates a mock adapter registry pre-populated with adapters.
|
|
17
|
+
*/
|
|
18
|
+
export declare function createMockAdapterRegistry(adapters?: Adapter[]): {
|
|
19
|
+
registry: AdapterRegistry;
|
|
20
|
+
adapters: Adapter[];
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Creates a default healthy health report.
|
|
24
|
+
*/
|
|
25
|
+
export declare function createMockHealth(): AdapterHealth;
|
|
26
|
+
//# sourceMappingURL=adapterTesting.helper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapterTesting.helper.d.ts","sourceRoot":"","sources":["../../src/testing/adapterTesting.helper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEpE;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,GAAE,OAAO,CAAC,OAAO,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAqB,GAChE,OAAO,CA0BT;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,GAAE,OAAO,EAAO,GAAG;IACnE,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB,CAMA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/adapters/testing
|
|
3
|
+
*
|
|
4
|
+
* Testing utilities for adapter implementations.
|
|
5
|
+
*/
|
|
6
|
+
import { AdapterRegistry } from "../adapter/adapter.registry.js";
|
|
7
|
+
/**
|
|
8
|
+
* Creates a minimal mock adapter for testing.
|
|
9
|
+
*/
|
|
10
|
+
export function createMockAdapter(overrides = { name: "mock" }) {
|
|
11
|
+
const capabilities = {
|
|
12
|
+
http: false,
|
|
13
|
+
websocket: false,
|
|
14
|
+
streaming: false,
|
|
15
|
+
filesystem: false,
|
|
16
|
+
tcp: false,
|
|
17
|
+
udp: false,
|
|
18
|
+
backgroundTasks: false,
|
|
19
|
+
longRunning: false,
|
|
20
|
+
edgeRuntime: false,
|
|
21
|
+
serverless: false,
|
|
22
|
+
gracefulShutdown: false,
|
|
23
|
+
abortSignal: false,
|
|
24
|
+
};
|
|
25
|
+
return {
|
|
26
|
+
name: overrides.name,
|
|
27
|
+
version: overrides.version ?? "1.0.0",
|
|
28
|
+
capabilities: overrides.capabilities ?? capabilities,
|
|
29
|
+
metadata: overrides.metadata,
|
|
30
|
+
initialize: overrides.initialize,
|
|
31
|
+
start: overrides.start,
|
|
32
|
+
stop: overrides.stop,
|
|
33
|
+
dispose: overrides.dispose,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Creates a mock adapter registry pre-populated with adapters.
|
|
38
|
+
*/
|
|
39
|
+
export function createMockAdapterRegistry(adapters = []) {
|
|
40
|
+
const registry = new AdapterRegistry();
|
|
41
|
+
for (const adapter of adapters) {
|
|
42
|
+
registry.register(adapter);
|
|
43
|
+
}
|
|
44
|
+
return { registry, adapters };
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Creates a default healthy health report.
|
|
48
|
+
*/
|
|
49
|
+
export function createMockHealth() {
|
|
50
|
+
return {
|
|
51
|
+
status: "healthy",
|
|
52
|
+
timestamp: Date.now(),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=adapterTesting.helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapterTesting.helper.js","sourceRoot":"","sources":["../../src/testing/adapterTesting.helper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGjE;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAS,GAAwC,EAAE,IAAI,EAAE,MAAM,EAAE;IAEjE,MAAM,YAAY,GAAwB;QACxC,IAAI,EAAE,KAAK;QACX,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,KAAK;QACV,eAAe,EAAE,KAAK;QACtB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;QAClB,UAAU,EAAE,KAAK;QACjB,gBAAgB,EAAE,KAAK;QACvB,WAAW,EAAE,KAAK;KACnB,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,OAAO,EAAE,SAAS,CAAC,OAAO,IAAI,OAAO;QACrC,YAAY,EAAE,SAAS,CAAC,YAAY,IAAI,YAAY;QACpD,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,UAAU,EAAE,SAAS,CAAC,UAAU;QAChC,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,OAAO,EAAE,SAAS,CAAC,OAAO;KAC3B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,QAAQ,GAAc,EAAE;IAIhE,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IACvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/adapters/testing
|
|
3
|
+
*
|
|
4
|
+
* Testing utilities for adapter implementations.
|
|
5
|
+
*/
|
|
6
|
+
export type { Adapter } from "../adapter/adapter.type.js";
|
|
7
|
+
export type { AdapterCapabilities } from "../capabilities/capabilities.type.js";
|
|
8
|
+
export type { AdapterRegistry } from "../adapter/adapter.registry.js";
|
|
9
|
+
export type { AdapterHealth } from "../lifecycle/lifecycle.type.js";
|
|
10
|
+
export { createMockAdapter, createMockAdapterRegistry, createMockHealth, } from "./adapterTesting.helper.js";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE1D,YAAY,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,YAAY,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE,YAAY,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/websocket/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/websocket/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/adapters/websocket
|
|
3
|
+
*
|
|
4
|
+
* WebSocket adapter contracts — bridges Zudojs to WebSocket providers.
|
|
5
|
+
*/
|
|
6
|
+
import type { Adapter } from "../index.js";
|
|
7
|
+
/**
|
|
8
|
+
* WebSocket adapter — manages WebSocket connections.
|
|
9
|
+
*/
|
|
10
|
+
export interface WebSocketAdapter extends Adapter {
|
|
11
|
+
/** Accepts a WebSocket connection. */
|
|
12
|
+
accept(connection: unknown): Promise<WebSocketSession>;
|
|
13
|
+
/** Closes a WebSocket session. */
|
|
14
|
+
close(session: WebSocketSession, code?: number, reason?: string): Promise<void>;
|
|
15
|
+
/** Sends a message to a WebSocket session. */
|
|
16
|
+
send(session: WebSocketSession, data: string | ArrayBuffer | Uint8Array): Promise<void>;
|
|
17
|
+
/** Broadcasts a message to all sessions. */
|
|
18
|
+
broadcast(data: string | ArrayBuffer | Uint8Array): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* WebSocket session handle.
|
|
22
|
+
*/
|
|
23
|
+
export interface WebSocketSession {
|
|
24
|
+
readonly id: string;
|
|
25
|
+
readonly readyState: WebSocketReadyState;
|
|
26
|
+
close(code?: number, reason?: string): void;
|
|
27
|
+
send(data: string | ArrayBuffer | Uint8Array): void;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* WebSocket ready states.
|
|
31
|
+
*/
|
|
32
|
+
export declare enum WebSocketReadyState {
|
|
33
|
+
CONNECTING = 0,
|
|
34
|
+
OPEN = 1,
|
|
35
|
+
CLOSING = 2,
|
|
36
|
+
CLOSED = 3
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=websocketAdapter.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocketAdapter.type.d.ts","sourceRoot":"","sources":["../../src/websocket/websocketAdapter.type.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,OAAO,EAGR,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,OAAO;IAC/C,sCAAsC;IACtC,MAAM,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEvD,kCAAkC;IAClC,KAAK,CACH,OAAO,EAAE,gBAAgB,EACzB,IAAI,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,8CAA8C;IAC9C,IAAI,CACF,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,GACtC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,4CAA4C;IAC5C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC;CACrD;AAED;;GAEG;AACH,oBAAY,mBAAmB;IAC7B,UAAU,IAAI;IACd,IAAI,IAAI;IACR,OAAO,IAAI;IACX,MAAM,IAAI;CACX"}
|