@zdavison/nestjs-rpc-toolkit 0.0.11 → 0.0.12
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 +263 -0
- package/dist/bin/init.js +15 -2
- package/dist/bin/init.js.map +1 -1
- package/dist/decorators/rpc-controller.decorator.d.ts +32 -0
- package/dist/decorators/rpc-controller.decorator.d.ts.map +1 -1
- package/dist/decorators/rpc-controller.decorator.js +35 -0
- package/dist/decorators/rpc-controller.decorator.js.map +1 -1
- package/dist/decorators/rpc-method.decorator.d.ts +20 -0
- package/dist/decorators/rpc-method.decorator.d.ts.map +1 -1
- package/dist/decorators/rpc-method.decorator.js +26 -0
- package/dist/decorators/rpc-method.decorator.js.map +1 -1
- package/dist/generators/rpc-types-generator.d.ts +1 -1
- package/dist/generators/rpc-types-generator.d.ts.map +1 -1
- package/dist/generators/rpc-types-generator.js +74 -7
- package/dist/generators/rpc-types-generator.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/rpc/rpc-client.d.ts +3 -0
- package/dist/rpc/rpc-client.d.ts.map +1 -1
- package/dist/rpc/rpc-client.js +4 -1
- package/dist/rpc/rpc-client.js.map +1 -1
- package/dist/rpc/typed-message-bus.d.ts +11 -0
- package/dist/rpc/typed-message-bus.d.ts.map +1 -1
- package/dist/rpc/typed-message-bus.js +2 -1
- package/dist/rpc/typed-message-bus.js.map +1 -1
- package/dist/transport/{in-memory.client.d.ts → in-process.client.d.ts} +2 -2
- package/dist/transport/in-process.client.d.ts.map +1 -0
- package/dist/transport/{in-memory.client.js → in-process.client.js} +8 -7
- package/dist/transport/in-process.client.js.map +1 -0
- package/dist/transport/{in-memory.transport.d.ts → in-process.transport.d.ts} +3 -3
- package/dist/transport/in-process.transport.d.ts.map +1 -0
- package/dist/transport/{in-memory.transport.js → in-process.transport.js} +10 -7
- package/dist/transport/in-process.transport.js.map +1 -0
- package/dist/transport/index.d.ts +2 -2
- package/dist/transport/index.d.ts.map +1 -1
- package/dist/transport/index.js +2 -2
- package/dist/transport/index.js.map +1 -1
- package/dist/types/serializable.d.ts +21 -1
- package/dist/types/serializable.d.ts.map +1 -1
- package/dist/types/serializable.js +4 -0
- package/dist/types/serializable.js.map +1 -1
- package/package.json +1 -1
- package/dist/module-base/index.d.ts +0 -15
- package/dist/module-base/index.d.ts.map +0 -1
- package/dist/module-base/index.js +0 -38
- package/dist/module-base/index.js.map +0 -1
- package/dist/test-date-serialization.d.ts +0 -2
- package/dist/test-date-serialization.d.ts.map +0 -1
- package/dist/test-date-serialization.js +0 -12
- package/dist/test-date-serialization.js.map +0 -1
- package/dist/test-type-validation.d.ts +0 -2
- package/dist/test-type-validation.d.ts.map +0 -1
- package/dist/test-type-validation.js +0 -87
- package/dist/test-type-validation.js.map +0 -1
- package/dist/transport/in-memory.client.d.ts.map +0 -1
- package/dist/transport/in-memory.client.js.map +0 -1
- package/dist/transport/in-memory.transport.d.ts.map +0 -1
- package/dist/transport/in-memory.transport.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.InProcessClientProxy = void 0;
|
|
4
4
|
const microservices_1 = require("@nestjs/microservices");
|
|
5
|
-
const
|
|
6
|
-
class
|
|
5
|
+
const in_process_transport_1 = require("./in-process.transport");
|
|
6
|
+
class InProcessClientProxy extends microservices_1.ClientProxy {
|
|
7
7
|
constructor() {
|
|
8
8
|
super(...arguments);
|
|
9
|
-
this.transport =
|
|
9
|
+
this.transport = in_process_transport_1.InProcessTransportStrategy.getInstance();
|
|
10
10
|
}
|
|
11
11
|
async connect() {
|
|
12
12
|
return Promise.resolve();
|
|
13
13
|
}
|
|
14
14
|
close() {
|
|
15
|
+
// Nothing to close for in-memory transport
|
|
15
16
|
}
|
|
16
17
|
async dispatchEvent(packet) {
|
|
17
18
|
const { pattern, data } = packet;
|
|
@@ -27,8 +28,8 @@ class InMemoryClientProxy extends microservices_1.ClientProxy {
|
|
|
27
28
|
.catch(error => {
|
|
28
29
|
callback({ err: error });
|
|
29
30
|
});
|
|
30
|
-
return () => { };
|
|
31
|
+
return () => { }; // Return cleanup function (no-op for in-memory)
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
|
-
exports.
|
|
34
|
-
//# sourceMappingURL=in-
|
|
34
|
+
exports.InProcessClientProxy = InProcessClientProxy;
|
|
35
|
+
//# sourceMappingURL=in-process.client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-process.client.js","sourceRoot":"","sources":["../../src/transport/in-process.client.ts"],"names":[],"mappings":";;;AAAA,yDAA6E;AAC7E,iEAAoE;AAEpE,MAAa,oBAAqB,SAAQ,2BAAW;IAArD;;QACU,cAAS,GAAG,iDAA0B,CAAC,WAAW,EAAE,CAAC;IA6B/D,CAAC;IA3BC,KAAK,CAAC,OAAO;QACX,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK;QACH,2CAA2C;IAC7C,CAAC;IAES,KAAK,CAAC,aAAa,CAAC,MAAkB;QAC9C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QACjC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAiB,EAAE,IAAI,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAES,OAAO,CAAC,MAAkB,EAAE,QAAuC;QAC3E,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAEjC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAiB,EAAE,IAAI,CAAC;aAChD,IAAI,CAAC,MAAM,CAAC,EAAE;YACb,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC;aACD,KAAK,CAAC,KAAK,CAAC,EAAE;YACb,QAAQ,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEL,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,gDAAgD;IACnE,CAAC;CACF;AA9BD,oDA8BC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CustomTransportStrategy, Server, ReadPacket, BaseRpcContext } from '@nestjs/microservices';
|
|
2
|
-
export declare class
|
|
2
|
+
export declare class InProcessTransportStrategy extends Server implements CustomTransportStrategy {
|
|
3
3
|
private static instance;
|
|
4
|
-
static getInstance():
|
|
4
|
+
static getInstance(): InProcessTransportStrategy;
|
|
5
5
|
listen(callback: () => void): void;
|
|
6
6
|
close(): void;
|
|
7
7
|
handleMessage(pattern: string, packet: ReadPacket, context: BaseRpcContext): Promise<any>;
|
|
@@ -9,4 +9,4 @@ export declare class InMemoryTransportStrategy extends Server implements CustomT
|
|
|
9
9
|
sendMessage(pattern: string, data: any): Promise<any>;
|
|
10
10
|
emitEvent(pattern: string, data: any): void;
|
|
11
11
|
}
|
|
12
|
-
//# sourceMappingURL=in-
|
|
12
|
+
//# sourceMappingURL=in-process.transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-process.transport.d.ts","sourceRoot":"","sources":["../../src/transport/in-process.transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEpG,qBAAa,0BAA2B,SAAQ,MAAO,YAAW,uBAAuB;IACvF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA6B;IAEpD,MAAM,CAAC,WAAW,IAAI,0BAA0B;IAOhD,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIlC,KAAK,IAAI,IAAI;IAIP,aAAa,CACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,GAAG,CAAC;IAST,WAAW,CACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,GAAG,CAAC;IAYT,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAO3D,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;CAK5C"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.InProcessTransportStrategy = void 0;
|
|
4
4
|
const microservices_1 = require("@nestjs/microservices");
|
|
5
|
-
class
|
|
5
|
+
class InProcessTransportStrategy extends microservices_1.Server {
|
|
6
6
|
static getInstance() {
|
|
7
|
-
if (!
|
|
8
|
-
|
|
7
|
+
if (!InProcessTransportStrategy.instance) {
|
|
8
|
+
InProcessTransportStrategy.instance = new InProcessTransportStrategy();
|
|
9
9
|
}
|
|
10
|
-
return
|
|
10
|
+
return InProcessTransportStrategy.instance;
|
|
11
11
|
}
|
|
12
12
|
listen(callback) {
|
|
13
13
|
callback();
|
|
14
14
|
}
|
|
15
15
|
close() {
|
|
16
|
+
// Clean up if needed
|
|
16
17
|
}
|
|
17
18
|
async handleMessage(pattern, packet, context) {
|
|
18
19
|
const handler = this.getHandlerByPattern(pattern);
|
|
@@ -32,16 +33,18 @@ class InMemoryTransportStrategy extends microservices_1.Server {
|
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
}
|
|
36
|
+
// Internal method to send messages
|
|
35
37
|
async sendMessage(pattern, data) {
|
|
36
38
|
const packet = { pattern, data };
|
|
37
39
|
const context = new microservices_1.BaseRpcContext([]);
|
|
38
40
|
return await this.handleMessage(pattern, packet, context);
|
|
39
41
|
}
|
|
42
|
+
// Internal method to emit events
|
|
40
43
|
emitEvent(pattern, data) {
|
|
41
44
|
const packet = { pattern, data };
|
|
42
45
|
const context = new microservices_1.BaseRpcContext([]);
|
|
43
46
|
this.handleEvent(pattern, packet, context);
|
|
44
47
|
}
|
|
45
48
|
}
|
|
46
|
-
exports.
|
|
47
|
-
//# sourceMappingURL=in-
|
|
49
|
+
exports.InProcessTransportStrategy = InProcessTransportStrategy;
|
|
50
|
+
//# sourceMappingURL=in-process.transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-process.transport.js","sourceRoot":"","sources":["../../src/transport/in-process.transport.ts"],"names":[],"mappings":";;;AAAA,yDAAoG;AAEpG,MAAa,0BAA2B,SAAQ,sBAAM;IAGpD,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,CAAC;YACzC,0BAA0B,CAAC,QAAQ,GAAG,IAAI,0BAA0B,EAAE,CAAC;QACzE,CAAC;QACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,QAAoB;QACzB,QAAQ,EAAE,CAAC;IACb,CAAC;IAED,KAAK;QACH,qBAAqB;IACvB,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,OAAe,EACf,MAAkB,EAClB,OAAuB;QAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAAe,EACf,MAAkB,EAClB,OAAuB;QAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,IAAS;QAC1C,MAAM,MAAM,GAAe,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,8BAAc,CAAC,EAAE,CAAC,CAAC;QACvC,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,iCAAiC;IACjC,SAAS,CAAC,OAAe,EAAE,IAAS;QAClC,MAAM,MAAM,GAAe,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,8BAAc,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF;AA3DD,gEA2DC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './in-
|
|
2
|
-
export * from './in-
|
|
1
|
+
export * from './in-process.transport';
|
|
2
|
+
export * from './in-process.client';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC"}
|
package/dist/transport/index.js
CHANGED
|
@@ -14,6 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./in-
|
|
18
|
-
__exportStar(require("./in-
|
|
17
|
+
__exportStar(require("./in-process.transport"), exports);
|
|
18
|
+
__exportStar(require("./in-process.client"), exports);
|
|
19
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,sDAAoC"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type utilities for ensuring JSON serialization compatibility in RPC methods.
|
|
3
|
+
* These types help catch non-serializable types at compile time.
|
|
4
|
+
*/
|
|
1
5
|
type JsonPrimitive = string | number | boolean | null | Date;
|
|
2
6
|
export type SerializableJson = JsonPrimitive | SerializableJsonObject | SerializableJsonArray;
|
|
3
7
|
interface SerializableJsonObject {
|
|
@@ -5,11 +9,27 @@ interface SerializableJsonObject {
|
|
|
5
9
|
}
|
|
6
10
|
interface SerializableJsonArray extends Array<SerializableJson> {
|
|
7
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Helper type to check if a type is serializable.
|
|
14
|
+
* This creates compile-time errors for non-serializable types.
|
|
15
|
+
*/
|
|
8
16
|
export type AssertSerializable<T> = T extends SerializableJson ? T : never;
|
|
17
|
+
/**
|
|
18
|
+
* Utility type that extracts parameters from a function type
|
|
19
|
+
* and ensures they are all serializable
|
|
20
|
+
*/
|
|
9
21
|
export type SerializableParameters<T extends (...args: any[]) => any> = T extends (...args: infer P) => any ? {
|
|
10
22
|
[K in keyof P]: AssertSerializable<P[K]>;
|
|
11
23
|
} : never;
|
|
24
|
+
/**
|
|
25
|
+
* Utility type that extracts the return type from a function
|
|
26
|
+
* and ensures it's serializable (excluding Promise wrapper)
|
|
27
|
+
*/
|
|
12
28
|
export type SerializableReturnType<T extends (...args: any[]) => any> = T extends (...args: any[]) => Promise<infer R> ? AssertSerializable<R> : T extends (...args: any[]) => infer R ? AssertSerializable<R> : never;
|
|
13
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Complete validation type for RPC methods.
|
|
31
|
+
* Ensures both parameters and return type are serializable.
|
|
32
|
+
*/
|
|
33
|
+
export type SerializableRpcMethod<T extends (...args: any[]) => any> = (...args: SerializableParameters<T>) => T extends (...args: any[]) => Promise<any> ? Promise<SerializableReturnType<T>> : SerializableReturnType<T>;
|
|
14
34
|
export {};
|
|
15
35
|
//# sourceMappingURL=serializable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializable.d.ts","sourceRoot":"","sources":["../../src/types/serializable.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serializable.d.ts","sourceRoot":"","sources":["../../src/types/serializable.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,KAAK,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;AAG7D,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,sBAAsB,GAAG,qBAAqB,CAAC;AAE9F,UAAU,sBAAsB;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC;CACjC;AAED,UAAU,qBAAsB,SAAQ,KAAK,CAAC,gBAAgB,CAAC;CAAG;AAElE;;;GAGG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,gBAAgB,GAAG,CAAC,GAAG,KAAK,CAAC;AAE3E;;;GAGG;AACH,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC,SAAS,CAChF,GAAG,IAAI,EAAE,MAAM,CAAC,KACb,GAAG,GACJ;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC5C,KAAK,CAAC;AAEV;;;GAGG;AACH,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC,SAAS,CAChF,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,OAAO,CAAC,MAAM,CAAC,CAAC,GACjB,kBAAkB,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,GACrC,kBAAkB,CAAC,CAAC,CAAC,GACrB,KAAK,CAAC;AAEV;;;GAGG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI,CACrE,GAAG,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,KAC/B,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,GAC3C,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAClC,sBAAsB,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Type utilities for ensuring JSON serialization compatibility in RPC methods.
|
|
4
|
+
* These types help catch non-serializable types at compile time.
|
|
5
|
+
*/
|
|
2
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
7
|
//# sourceMappingURL=serializable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializable.js","sourceRoot":"","sources":["../../src/types/serializable.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"serializable.js","sourceRoot":"","sources":["../../src/types/serializable.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
package/package.json
CHANGED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { DynamicModule, Type } from '@nestjs/common';
|
|
2
|
-
export interface ModularModuleMetadata {
|
|
3
|
-
name: string;
|
|
4
|
-
version: string;
|
|
5
|
-
dependencies?: string[];
|
|
6
|
-
}
|
|
7
|
-
export declare function ModularModuleDecorator(metadata: ModularModuleMetadata): ClassDecorator;
|
|
8
|
-
export interface ModularModuleOptions {
|
|
9
|
-
imports?: Array<Type<any> | DynamicModule>;
|
|
10
|
-
providers?: any[];
|
|
11
|
-
exports?: any[];
|
|
12
|
-
controllers?: Type<any>[];
|
|
13
|
-
}
|
|
14
|
-
export declare function createModularModule(name: string, version: string, options?: ModularModuleOptions): DynamicModule;
|
|
15
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/module-base/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAU,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE7D,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,cAAc,CAKtF;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;CAC3B;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oBAAyB,GACjC,aAAa,CAiBf"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.ModularModuleDecorator = ModularModuleDecorator;
|
|
10
|
-
exports.createModularModule = createModularModule;
|
|
11
|
-
const common_1 = require("@nestjs/common");
|
|
12
|
-
function ModularModuleDecorator(metadata) {
|
|
13
|
-
return (target) => {
|
|
14
|
-
Reflect.defineMetadata('modular:module', metadata, target);
|
|
15
|
-
return target;
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
function createModularModule(name, version, options = {}) {
|
|
19
|
-
let ModularModuleClass = class ModularModuleClass {
|
|
20
|
-
};
|
|
21
|
-
ModularModuleClass = __decorate([
|
|
22
|
-
(0, common_1.Module)({})
|
|
23
|
-
], ModularModuleClass);
|
|
24
|
-
return {
|
|
25
|
-
module: ModularModuleClass,
|
|
26
|
-
imports: options.imports || [],
|
|
27
|
-
providers: [
|
|
28
|
-
...(options.providers || []),
|
|
29
|
-
{
|
|
30
|
-
provide: 'MODULE_INFO',
|
|
31
|
-
useValue: { name, version },
|
|
32
|
-
},
|
|
33
|
-
],
|
|
34
|
-
exports: options.exports || [],
|
|
35
|
-
controllers: options.controllers || [],
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/module-base/index.ts"],"names":[],"mappings":";;;;;;;;AAQA,wDAKC;AASD,kDAqBC;AA3CD,2CAA6D;AAQ7D,SAAgB,sBAAsB,CAAC,QAA+B;IACpE,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,OAAO,CAAC,cAAc,CAAC,gBAAgB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AASD,SAAgB,mBAAmB,CACjC,IAAY,EACZ,OAAe,EACf,UAAgC,EAAE;IAGlC,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;KAAG,CAAA;IAArB,kBAAkB;QADvB,IAAA,eAAM,EAAC,EAAE,CAAC;OACL,kBAAkB,CAAG;IAE3B,OAAO;QACL,MAAM,EAAE,kBAAkB;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;QAC9B,SAAS,EAAE;YACT,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;YAC5B;gBACE,OAAO,EAAE,aAAa;gBACtB,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;aAC5B;SACF;QACD,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;QAC9B,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;KACvC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-date-serialization.d.ts","sourceRoot":"","sources":["../src/test-date-serialization.ts"],"names":[],"mappings":""}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const validDate = new Date();
|
|
4
|
-
const validUser = {
|
|
5
|
-
id: 'user123',
|
|
6
|
-
name: 'John Doe',
|
|
7
|
-
createdAt: new Date(),
|
|
8
|
-
updatedAt: new Date()
|
|
9
|
-
};
|
|
10
|
-
const invalidFunction = () => { };
|
|
11
|
-
const invalidMap = new Map();
|
|
12
|
-
//# sourceMappingURL=test-date-serialization.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-date-serialization.js","sourceRoot":"","sources":["../src/test-date-serialization.ts"],"names":[],"mappings":";;AAOA,MAAM,SAAS,GAAqB,IAAI,IAAI,EAAE,CAAC;AAC/C,MAAM,SAAS,GAAqB;IAClC,EAAE,EAAE,SAAS;IACb,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,IAAI,IAAI,EAAE;IACrB,SAAS,EAAE,IAAI,IAAI,EAAE;CACtB,CAAC;AAGF,MAAM,eAAe,GAAqB,GAAG,EAAE,GAAE,CAAC,CAAC;AACnD,MAAM,UAAU,GAAqB,IAAI,GAAG,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-type-validation.d.ts","sourceRoot":"","sources":["../src/test-type-validation.ts"],"names":[],"mappings":""}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const rpc_method_decorator_1 = require("./decorators/rpc-method.decorator");
|
|
13
|
-
class TestController {
|
|
14
|
-
validMethod(id, count) {
|
|
15
|
-
return Promise.resolve({ result: 'success' });
|
|
16
|
-
}
|
|
17
|
-
validArrayMethod(items, metadata) {
|
|
18
|
-
return Promise.resolve(true);
|
|
19
|
-
}
|
|
20
|
-
validNullMethod(id) {
|
|
21
|
-
return Promise.resolve(null);
|
|
22
|
-
}
|
|
23
|
-
invalidFunctionParam(callback) {
|
|
24
|
-
return Promise.resolve();
|
|
25
|
-
}
|
|
26
|
-
invalidHtmlReturn(id) {
|
|
27
|
-
return Promise.resolve(document.createElement('div'));
|
|
28
|
-
}
|
|
29
|
-
invalidMapParam(data) {
|
|
30
|
-
return Promise.resolve('test');
|
|
31
|
-
}
|
|
32
|
-
invalidUndefinedReturn(id) {
|
|
33
|
-
return Promise.resolve(undefined);
|
|
34
|
-
}
|
|
35
|
-
invalidClassParam(date) {
|
|
36
|
-
return Promise.resolve('test');
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
__decorate([
|
|
40
|
-
(0, rpc_method_decorator_1.RpcMethod)(),
|
|
41
|
-
__metadata("design:type", Function),
|
|
42
|
-
__metadata("design:paramtypes", [String, Number]),
|
|
43
|
-
__metadata("design:returntype", Promise)
|
|
44
|
-
], TestController.prototype, "validMethod", null);
|
|
45
|
-
__decorate([
|
|
46
|
-
(0, rpc_method_decorator_1.RpcMethod)(),
|
|
47
|
-
__metadata("design:type", Function),
|
|
48
|
-
__metadata("design:paramtypes", [Array, Object]),
|
|
49
|
-
__metadata("design:returntype", Promise)
|
|
50
|
-
], TestController.prototype, "validArrayMethod", null);
|
|
51
|
-
__decorate([
|
|
52
|
-
(0, rpc_method_decorator_1.RpcMethod)(),
|
|
53
|
-
__metadata("design:type", Function),
|
|
54
|
-
__metadata("design:paramtypes", [String]),
|
|
55
|
-
__metadata("design:returntype", Promise)
|
|
56
|
-
], TestController.prototype, "validNullMethod", null);
|
|
57
|
-
__decorate([
|
|
58
|
-
(0, rpc_method_decorator_1.RpcMethod)(),
|
|
59
|
-
__metadata("design:type", Function),
|
|
60
|
-
__metadata("design:paramtypes", [Function]),
|
|
61
|
-
__metadata("design:returntype", Promise)
|
|
62
|
-
], TestController.prototype, "invalidFunctionParam", null);
|
|
63
|
-
__decorate([
|
|
64
|
-
(0, rpc_method_decorator_1.RpcMethod)(),
|
|
65
|
-
__metadata("design:type", Function),
|
|
66
|
-
__metadata("design:paramtypes", [String]),
|
|
67
|
-
__metadata("design:returntype", Promise)
|
|
68
|
-
], TestController.prototype, "invalidHtmlReturn", null);
|
|
69
|
-
__decorate([
|
|
70
|
-
(0, rpc_method_decorator_1.RpcMethod)(),
|
|
71
|
-
__metadata("design:type", Function),
|
|
72
|
-
__metadata("design:paramtypes", [Map]),
|
|
73
|
-
__metadata("design:returntype", Promise)
|
|
74
|
-
], TestController.prototype, "invalidMapParam", null);
|
|
75
|
-
__decorate([
|
|
76
|
-
(0, rpc_method_decorator_1.RpcMethod)(),
|
|
77
|
-
__metadata("design:type", Function),
|
|
78
|
-
__metadata("design:paramtypes", [String]),
|
|
79
|
-
__metadata("design:returntype", Promise)
|
|
80
|
-
], TestController.prototype, "invalidUndefinedReturn", null);
|
|
81
|
-
__decorate([
|
|
82
|
-
(0, rpc_method_decorator_1.RpcMethod)(),
|
|
83
|
-
__metadata("design:type", Function),
|
|
84
|
-
__metadata("design:paramtypes", [Date]),
|
|
85
|
-
__metadata("design:returntype", Promise)
|
|
86
|
-
], TestController.prototype, "invalidClassParam", null);
|
|
87
|
-
//# sourceMappingURL=test-type-validation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-type-validation.js","sourceRoot":"","sources":["../src/test-type-validation.ts"],"names":[],"mappings":";;;;;;;;;;;AAKA,4EAA8D;AAE9D,MAAM,cAAc;IAGlB,WAAW,CAAC,EAAU,EAAE,KAAa;QACnC,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAChD,CAAC;IAID,gBAAgB,CAAC,KAAe,EAAE,QAAmC;QACnE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAID,eAAe,CAAC,EAAU;QACxB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAID,oBAAoB,CAAC,QAAgC;QACnD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAID,iBAAiB,CAAC,EAAU;QAC1B,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,CAAC;IAID,eAAe,CAAC,IAAyB;QACvC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAID,sBAAsB,CAAC,EAAU;QAC/B,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAID,iBAAiB,CAAC,IAAU;QAC1B,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;CACF;AA7CC;IADC,IAAA,gCAAS,GAAE;;;;iDAGX;AAID;IADC,IAAA,gCAAS,GAAE;;;;sDAGX;AAID;IADC,IAAA,gCAAS,GAAE;;;;qDAGX;AAID;IADC,IAAA,gCAAS,GAAE;;;;0DAGX;AAID;IADC,IAAA,gCAAS,GAAE;;;;uDAGX;AAID;IADC,IAAA,gCAAS,GAAE;;qCACU,GAAG;;qDAExB;AAID;IADC,IAAA,gCAAS,GAAE;;;;4DAGX;AAID;IADC,IAAA,gCAAS,GAAE;;qCACY,IAAI;;uDAE3B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory.client.d.ts","sourceRoot":"","sources":["../../src/transport/in-memory.client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAG7E,qBAAa,mBAAoB,SAAQ,WAAW;IAClD,OAAO,CAAC,SAAS,CAA2C;IAEtD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,KAAK,IAAI,IAAI;cAIG,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAM/D,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,GAAG,MAAM,IAAI;CAa3F"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory.client.js","sourceRoot":"","sources":["../../src/transport/in-memory.client.ts"],"names":[],"mappings":";;;AAAA,yDAA6E;AAC7E,+DAAkE;AAElE,MAAa,mBAAoB,SAAQ,2BAAW;IAApD;;QACU,cAAS,GAAG,+CAAyB,CAAC,WAAW,EAAE,CAAC;IA6B9D,CAAC;IA3BC,KAAK,CAAC,OAAO;QACX,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK;IAEL,CAAC;IAES,KAAK,CAAC,aAAa,CAAC,MAAkB;QAC9C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QACjC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAiB,EAAE,IAAI,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAES,OAAO,CAAC,MAAkB,EAAE,QAAuC;QAC3E,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAEjC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAiB,EAAE,IAAI,CAAC;aAChD,IAAI,CAAC,MAAM,CAAC,EAAE;YACb,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC;aACD,KAAK,CAAC,KAAK,CAAC,EAAE;YACb,QAAQ,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEL,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC;CACF;AA9BD,kDA8BC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory.transport.d.ts","sourceRoot":"","sources":["../../src/transport/in-memory.transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEpG,qBAAa,yBAA0B,SAAQ,MAAO,YAAW,uBAAuB;IACtF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4B;IAEnD,MAAM,CAAC,WAAW,IAAI,yBAAyB;IAO/C,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIlC,KAAK,IAAI,IAAI;IAIP,aAAa,CACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,GAAG,CAAC;IAST,WAAW,CACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,GAAG,CAAC;IAYT,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAO3D,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;CAK5C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory.transport.js","sourceRoot":"","sources":["../../src/transport/in-memory.transport.ts"],"names":[],"mappings":";;;AAAA,yDAAoG;AAEpG,MAAa,yBAA0B,SAAQ,sBAAM;IAGnD,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,CAAC;YACxC,yBAAyB,CAAC,QAAQ,GAAG,IAAI,yBAAyB,EAAE,CAAC;QACvE,CAAC;QACD,OAAO,yBAAyB,CAAC,QAAQ,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,QAAoB;QACzB,QAAQ,EAAE,CAAC;IACb,CAAC;IAED,KAAK;IAEL,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,OAAe,EACf,MAAkB,EAClB,OAAuB;QAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAAe,EACf,MAAkB,EAClB,OAAuB;QAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAGD,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,IAAS;QAC1C,MAAM,MAAM,GAAe,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,8BAAc,CAAC,EAAE,CAAC,CAAC;QACvC,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAGD,SAAS,CAAC,OAAe,EAAE,IAAS;QAClC,MAAM,MAAM,GAAe,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,8BAAc,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF;AA3DD,8DA2DC"}
|