@channel.io/app-sdk-server 0.1.1 → 0.3.0

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 (74) hide show
  1. package/dist/__tests__/decorators.test.js +68 -7
  2. package/dist/__tests__/decorators.test.js.map +1 -1
  3. package/dist/__tests__/native-client.test.d.ts +2 -0
  4. package/dist/__tests__/native-client.test.d.ts.map +1 -0
  5. package/dist/__tests__/native-client.test.js +256 -0
  6. package/dist/__tests__/native-client.test.js.map +1 -0
  7. package/dist/__tests__/proxy-api.test.d.ts +2 -0
  8. package/dist/__tests__/proxy-api.test.d.ts.map +1 -0
  9. package/dist/__tests__/proxy-api.test.js +273 -0
  10. package/dist/__tests__/proxy-api.test.js.map +1 -0
  11. package/dist/__tests__/signature.test.d.ts +2 -0
  12. package/dist/__tests__/signature.test.d.ts.map +1 -0
  13. package/dist/__tests__/signature.test.js +172 -0
  14. package/dist/__tests__/signature.test.js.map +1 -0
  15. package/dist/__tests__/testing-utils.test.js +2 -2
  16. package/dist/__tests__/testing-utils.test.js.map +1 -1
  17. package/dist/__tests__/token-manager.test.d.ts +2 -0
  18. package/dist/__tests__/token-manager.test.d.ts.map +1 -0
  19. package/dist/__tests__/token-manager.test.js +624 -0
  20. package/dist/__tests__/token-manager.test.js.map +1 -0
  21. package/dist/decorators/extension-names.d.ts +3 -0
  22. package/dist/decorators/extension-names.d.ts.map +1 -0
  23. package/dist/decorators/extension-names.js +12 -0
  24. package/dist/decorators/extension-names.js.map +1 -0
  25. package/dist/decorators/extension.decorator.d.ts +4 -1
  26. package/dist/decorators/extension.decorator.d.ts.map +1 -1
  27. package/dist/decorators/extension.decorator.js +5 -0
  28. package/dist/decorators/extension.decorator.js.map +1 -1
  29. package/dist/decorators/function.decorator.d.ts.map +1 -1
  30. package/dist/decorators/function.decorator.js +3 -0
  31. package/dist/decorators/function.decorator.js.map +1 -1
  32. package/dist/decorators/index.d.ts +1 -0
  33. package/dist/decorators/index.d.ts.map +1 -1
  34. package/dist/decorators/index.js +2 -0
  35. package/dist/decorators/index.js.map +1 -1
  36. package/dist/discovery/extension-discovery.service.d.ts +5 -1
  37. package/dist/discovery/extension-discovery.service.d.ts.map +1 -1
  38. package/dist/discovery/extension-discovery.service.js +37 -5
  39. package/dist/discovery/extension-discovery.service.js.map +1 -1
  40. package/dist/guards/signature.middleware.d.ts +25 -16
  41. package/dist/guards/signature.middleware.d.ts.map +1 -1
  42. package/dist/guards/signature.middleware.js +35 -19
  43. package/dist/guards/signature.middleware.js.map +1 -1
  44. package/dist/native/client.d.ts +55 -1
  45. package/dist/native/client.d.ts.map +1 -1
  46. package/dist/native/client.js +89 -0
  47. package/dist/native/client.js.map +1 -1
  48. package/dist/native/index.d.ts +2 -0
  49. package/dist/native/index.d.ts.map +1 -1
  50. package/dist/native/index.js +2 -0
  51. package/dist/native/index.js.map +1 -1
  52. package/dist/native/proxy-api.d.ts +110 -0
  53. package/dist/native/proxy-api.d.ts.map +1 -0
  54. package/dist/native/proxy-api.js +159 -0
  55. package/dist/native/proxy-api.js.map +1 -0
  56. package/dist/native/proxy-api.types.d.ts +232 -0
  57. package/dist/native/proxy-api.types.d.ts.map +1 -0
  58. package/dist/native/proxy-api.types.js +10 -0
  59. package/dist/native/proxy-api.types.js.map +1 -0
  60. package/dist/native/types.d.ts +108 -0
  61. package/dist/native/types.d.ts.map +1 -1
  62. package/dist/nestjs/channel-app.service.d.ts +21 -2
  63. package/dist/nestjs/channel-app.service.d.ts.map +1 -1
  64. package/dist/nestjs/channel-app.service.js +81 -36
  65. package/dist/nestjs/channel-app.service.js.map +1 -1
  66. package/dist/nestjs/channel-app.service.test.d.ts +2 -0
  67. package/dist/nestjs/channel-app.service.test.d.ts.map +1 -0
  68. package/dist/nestjs/channel-app.service.test.js +240 -0
  69. package/dist/nestjs/channel-app.service.test.js.map +1 -0
  70. package/dist/token/manager.d.ts +33 -1
  71. package/dist/token/manager.d.ts.map +1 -1
  72. package/dist/token/manager.js +75 -13
  73. package/dist/token/manager.js.map +1 -1
  74. package/package.json +2 -2
@@ -0,0 +1,10 @@
1
+ /**
2
+ * ProxyAPI types for Channel Talk core API
3
+ *
4
+ * These types represent the request/response shapes for native functions
5
+ * that proxy to ch-dropwizard's REST API via ch-app-store.
6
+ *
7
+ * All types use camelCase to match the underlying ch-dropwizard JSON format.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=proxy-api.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy-api.types.js","sourceRoot":"","sources":["../../src/native/proxy-api.types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -195,4 +195,112 @@ export interface RegisterCommandsResult {
195
195
  /** Whether registration succeeded */
196
196
  success: boolean;
197
197
  }
198
+ /**
199
+ * Register extension params (native function, camelCase)
200
+ */
201
+ export interface NativeRegisterExtensionParams {
202
+ /** App ID */
203
+ appId: string;
204
+ /** System version (e.g., "v1") */
205
+ systemVersion: string;
206
+ /** Extension name (e.g., "calendar", "oauth") */
207
+ extensionName: string;
208
+ }
209
+ /**
210
+ * Extension info returned from native registration
211
+ */
212
+ export interface NativeExtensionInfo {
213
+ /** Extension name */
214
+ name: string;
215
+ /** System version */
216
+ systemVersion: string;
217
+ /** Whether exclusive */
218
+ exclusive?: boolean;
219
+ }
220
+ /**
221
+ * Register extension result (native function, camelCase)
222
+ */
223
+ export interface NativeRegisterExtensionResult {
224
+ /** Whether registration succeeded */
225
+ success: boolean;
226
+ /** Error message if failed */
227
+ errorMessage?: string;
228
+ /** Registered extensions */
229
+ extensions?: NativeExtensionInfo[];
230
+ /** Validation errors */
231
+ validationErrors?: string[];
232
+ }
233
+ /**
234
+ * Unregister extension params (native function, camelCase)
235
+ */
236
+ export interface NativeUnregisterExtensionParams {
237
+ /** App ID */
238
+ appId: string;
239
+ /** System version (e.g., "v1") */
240
+ systemVersion: string;
241
+ /** Extension name */
242
+ extensionName: string;
243
+ }
244
+ /**
245
+ * Unregister extension result (native function, camelCase)
246
+ */
247
+ export interface NativeUnregisterExtensionResult {
248
+ /** Whether unregistration succeeded */
249
+ success: boolean;
250
+ /** Error message if failed */
251
+ errorMessage?: string;
252
+ }
253
+ /**
254
+ * Register ALF tasks params
255
+ */
256
+ export interface RegisterAlfTasksParams {
257
+ /** App ID */
258
+ appId: string;
259
+ }
260
+ /**
261
+ * Register ALF tasks result
262
+ */
263
+ export interface RegisterAlfTasksResult {
264
+ /** Whether registration succeeded */
265
+ success: boolean;
266
+ /** Error message if failed */
267
+ errorMessage?: string;
268
+ /** Total number of tasks */
269
+ totalTasks: number;
270
+ /** Number of tasks created */
271
+ createdCount: number;
272
+ /** Number of tasks updated */
273
+ updatedCount: number;
274
+ /** Number of tasks deleted */
275
+ deletedCount: number;
276
+ }
277
+ /**
278
+ * Get ALF task versions params
279
+ */
280
+ export interface GetAlfTaskVersionsParams {
281
+ /** App ID */
282
+ appId: string;
283
+ }
284
+ /**
285
+ * ALF task version info
286
+ */
287
+ export interface AlfTaskVersion {
288
+ /** Task ID */
289
+ id: string;
290
+ /** Task name */
291
+ name: string;
292
+ /** Task version */
293
+ version: string;
294
+ }
295
+ /**
296
+ * Get ALF task versions result
297
+ */
298
+ export interface GetAlfTaskVersionsResult {
299
+ /** Whether request succeeded */
300
+ success: boolean;
301
+ /** Error message if failed */
302
+ errorMessage?: string;
303
+ /** Task version list */
304
+ tasks: AlfTaskVersion[];
305
+ }
198
306
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/native/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,aAAa;IACb,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC;IACF,yBAAyB;IACzB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;QACpC,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC;IACF,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB,CAAC,OAAO,GAAG,OAAO;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB,CAAC,OAAO,GAAG,OAAO;IACvD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,2BAA2B,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAMD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;CACtB;AAMD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY;IACZ,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACjC,+BAA+B;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,IAAI,EAAE,SAAS,CAAC;IAChB,uBAAuB;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,+BAA+B;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACtD,2BAA2B;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,0BAA0B;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACpD,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACtD,gDAAgD;IAChD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,6CAA6C;IAC7C,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,eAAe;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qCAAqC;IACrC,gBAAgB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC5C,iCAAiC;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,aAAa;IACb,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,qCAAqC;IACrC,OAAO,EAAE,OAAO,CAAC;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/native/types.ts"],"names":[],"mappings":"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"}
@@ -17,11 +17,30 @@ export declare class ChannelAppService implements OnModuleInit {
17
17
  constructor(options: ChannelAppModuleOptions, discoveryService?: ExtensionDiscoveryService | undefined);
18
18
  onModuleInit(): Promise<void>;
19
19
  /**
20
- * Auto-register all extensions with the AppStore
20
+ * Default extension name used when no @Extension decorators are found.
21
+ * Apps that only use native functions (e.g., cron bots) still need to
22
+ * register a system version; this "core" extension serves that purpose.
23
+ */
24
+ static readonly CORE_EXTENSION_NAME = "core";
25
+ /**
26
+ * Default system version used for the core extension fallback.
27
+ */
28
+ static readonly DEFAULT_SYSTEM_VERSION = "v1";
29
+ /**
30
+ * Auto-register all extensions with the AppStore.
31
+ * If no extensions are discovered via decorators, automatically registers
32
+ * a "core" extension so that extension-less apps (e.g., cron bots) can
33
+ * still have a system version registered.
21
34
  */
22
35
  private autoRegisterExtensions;
23
36
  /**
24
- * Get all registered versions
37
+ * Register a single extension with the AppStore and collect the result.
38
+ */
39
+ private registerSingleExtension;
40
+ /**
41
+ * Get all registered versions.
42
+ * When no extensions are discovered and autoRegister is enabled,
43
+ * returns the default system version ("v1") for the core extension.
25
44
  */
26
45
  getRegisteredVersions(): string[];
27
46
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"channel-app.service.d.ts","sourceRoot":"","sources":["../../src/nestjs/channel-app.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,YAAY,EAAoB,MAAM,gBAAgB,CAAC;AACzF,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAEzB,KAAK,oBAAoB,EAE1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,KAAK,uBAAuB,EAE7B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAExF;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;aAE3B,gBAAgB,EAAE,MAAM;aACxB,iBAAiB,EAAE,MAAM,EAAE;gBAD3B,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,MAAM,EAAE;CAO9C;AAED,qBACa,iBAAkB,YAAW,YAAY;IAKlD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IANpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;gBAI1C,OAAO,EAAE,uBAAuB,EAEhC,gBAAgB,CAAC,EAAE,yBAAyB,YAAA;IAGzD,YAAY;IAwBlB;;OAEG;YACW,sBAAsB;IAwDpC;;OAEG;IACH,qBAAqB,IAAI,MAAM,EAAE;IAWjC;;;;OAIG;IACG,kBAAkB,CACtB,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,oBAAoB,CAAC;IAyBhC;;OAEG;IACH,YAAY,IAAI,oBAAoB;IA6BpC;;OAEG;IACH,YAAY;;;CAKb"}
1
+ {"version":3,"file":"channel-app.service.d.ts","sourceRoot":"","sources":["../../src/nestjs/channel-app.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,YAAY,EAAoB,MAAM,gBAAgB,CAAC;AACzF,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAEzB,KAAK,oBAAoB,EAE1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,KAAK,uBAAuB,EAE7B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAExF;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;aAE3B,gBAAgB,EAAE,MAAM;aACxB,iBAAiB,EAAE,MAAM,EAAE;gBAD3B,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,MAAM,EAAE;CAO9C;AAED,qBACa,iBAAkB,YAAW,YAAY;IAKlD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IANpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;gBAI1C,OAAO,EAAE,uBAAuB,EAEhC,gBAAgB,CAAC,EAAE,yBAAyB,YAAA;IAGzD,YAAY;IAsClB;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,mBAAmB,UAAU;IAE7C;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,sBAAsB,QAAQ;IAE9C;;;;;OAKG;YACW,sBAAsB;IAuCpC;;OAEG;YACW,uBAAuB;IA2CrC;;;;OAIG;IACH,qBAAqB,IAAI,MAAM,EAAE;IAejC;;;;OAIG;IACG,kBAAkB,CACtB,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,oBAAoB,CAAC;IAyBhC;;OAEG;IACH,YAAY,IAAI,oBAAoB;IA6BpC;;OAEG;IACH,YAAY;;;CAKb"}
@@ -29,7 +29,8 @@ export class VersionMismatchError extends Error {
29
29
  this.name = "VersionMismatchError";
30
30
  }
31
31
  }
32
- let ChannelAppService = ChannelAppService_1 = class ChannelAppService {
32
+ let ChannelAppService = class ChannelAppService {
33
+ static { ChannelAppService_1 = this; }
33
34
  options;
34
35
  discoveryService;
35
36
  logger = new Logger(ChannelAppService_1.name);
@@ -51,13 +52,38 @@ let ChannelAppService = ChannelAppService_1 = class ChannelAppService {
51
52
  }
52
53
  }
53
54
  }
55
+ else if (this.options.autoRegister) {
56
+ this.logger.log("No extensions discovered via decorators. " +
57
+ `Will auto-register "${ChannelAppService_1.CORE_EXTENSION_NAME}" extension.`);
58
+ }
59
+ // Log standalone functions
60
+ const allFunctions = this.discoveryService?.getAllFunctions() ?? [];
61
+ const extensions = this.discoveryService?.getExtensions() ?? [];
62
+ const extensionFunctionCount = extensions.reduce((sum, e) => sum + e.functions.length, 0);
63
+ const standaloneFunctionCount = allFunctions.length - extensionFunctionCount;
64
+ if (standaloneFunctionCount > 0) {
65
+ this.logger.log(`Discovered ${standaloneFunctionCount} standalone function(s)`);
66
+ }
54
67
  // Auto-register extensions with AppStore if enabled
55
68
  if (this.options.autoRegister) {
56
69
  await this.autoRegisterExtensions();
57
70
  }
58
71
  }
59
72
  /**
60
- * Auto-register all extensions with the AppStore
73
+ * Default extension name used when no @Extension decorators are found.
74
+ * Apps that only use native functions (e.g., cron bots) still need to
75
+ * register a system version; this "core" extension serves that purpose.
76
+ */
77
+ static CORE_EXTENSION_NAME = "core";
78
+ /**
79
+ * Default system version used for the core extension fallback.
80
+ */
81
+ static DEFAULT_SYSTEM_VERSION = "v1";
82
+ /**
83
+ * Auto-register all extensions with the AppStore.
84
+ * If no extensions are discovered via decorators, automatically registers
85
+ * a "core" extension so that extension-less apps (e.g., cron bots) can
86
+ * still have a system version registered.
61
87
  */
62
88
  async autoRegisterExtensions() {
63
89
  const client = new AppStoreClient({
@@ -68,57 +94,76 @@ let ChannelAppService = ChannelAppService_1 = class ChannelAppService {
68
94
  });
69
95
  const results = [];
70
96
  const extensions = this.discoveryService?.getExtensions() ?? [];
71
- for (const extension of extensions) {
72
- const systemVersion = extension.systemVersion;
73
- try {
74
- this.logger.log(`Auto-registering extension: ${extension.name} (${systemVersion})`);
75
- const result = await client.registerExtension({
76
- extensionName: extension.name,
97
+ // If no extensions discovered, register "core" extension as fallback
98
+ if (extensions.length === 0) {
99
+ this.logger.log("No extensions discovered. Auto-registering core extension for system version registration.");
100
+ await this.registerSingleExtension(client, ChannelAppService_1.CORE_EXTENSION_NAME, ChannelAppService_1.DEFAULT_SYSTEM_VERSION, results);
101
+ }
102
+ else {
103
+ for (const extension of extensions) {
104
+ await this.registerSingleExtension(client, extension.name, extension.systemVersion, results);
105
+ }
106
+ }
107
+ // Call callback if provided
108
+ if (this.options.onAutoRegister) {
109
+ this.options.onAutoRegister(results);
110
+ }
111
+ }
112
+ /**
113
+ * Register a single extension with the AppStore and collect the result.
114
+ */
115
+ async registerSingleExtension(client, extensionName, systemVersion, results) {
116
+ try {
117
+ this.logger.log(`Auto-registering extension: ${extensionName} (${systemVersion})`);
118
+ const result = await client.registerExtension({
119
+ extensionName,
120
+ systemVersion,
121
+ });
122
+ if (result.success) {
123
+ this.logger.log(`Successfully registered extension: ${extensionName}`);
124
+ results.push({
125
+ extensionName,
77
126
  systemVersion,
127
+ success: true,
78
128
  });
79
- if (result.success) {
80
- this.logger.log(`Successfully registered extension: ${extension.name}`);
81
- results.push({
82
- extensionName: extension.name,
83
- systemVersion,
84
- success: true,
85
- });
86
- }
87
- else {
88
- const errorMsg = result.error_message ?? result.validation_errors?.join(", ") ?? "Unknown error";
89
- this.logger.warn(`Failed to register extension ${extension.name}: ${errorMsg}`);
90
- results.push({
91
- extensionName: extension.name,
92
- systemVersion,
93
- success: false,
94
- error: errorMsg,
95
- });
96
- }
97
129
  }
98
- catch (error) {
99
- const errorMsg = error instanceof Error ? error.message : String(error);
100
- this.logger.error(`Error registering extension ${extension.name}: ${errorMsg}`);
130
+ else {
131
+ const errorMsg = result.error_message ?? result.validation_errors?.join(", ") ?? "Unknown error";
132
+ this.logger.warn(`Failed to register extension ${extensionName}: ${errorMsg}`);
101
133
  results.push({
102
- extensionName: extension.name,
134
+ extensionName,
103
135
  systemVersion,
104
136
  success: false,
105
137
  error: errorMsg,
106
138
  });
107
139
  }
108
140
  }
109
- // Call callback if provided
110
- if (this.options.onAutoRegister) {
111
- this.options.onAutoRegister(results);
141
+ catch (error) {
142
+ const errorMsg = error instanceof Error ? error.message : String(error);
143
+ this.logger.error(`Error registering extension ${extensionName}: ${errorMsg}`);
144
+ results.push({
145
+ extensionName,
146
+ systemVersion,
147
+ success: false,
148
+ error: errorMsg,
149
+ });
112
150
  }
113
151
  }
114
152
  /**
115
- * Get all registered versions
153
+ * Get all registered versions.
154
+ * When no extensions are discovered and autoRegister is enabled,
155
+ * returns the default system version ("v1") for the core extension.
116
156
  */
117
157
  getRegisteredVersions() {
118
158
  const versions = new Set();
119
159
  const extensions = this.discoveryService?.getExtensions() ?? [];
120
- for (const ext of extensions) {
121
- versions.add(ext.systemVersion);
160
+ if (extensions.length === 0 && this.options.autoRegister) {
161
+ versions.add(ChannelAppService_1.DEFAULT_SYSTEM_VERSION);
162
+ }
163
+ else {
164
+ for (const ext of extensions) {
165
+ versions.add(ext.systemVersion);
166
+ }
122
167
  }
123
168
  return Array.from(versions);
124
169
  }
@@ -1 +1 @@
1
- {"version":3,"file":"channel-app.service.js","sourceRoot":"","sources":["../../src/nestjs/channel-app.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channel-app.service.js","sourceRoot":"","sources":["../../src/nestjs/channel-app.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=channel-app.service.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-app.service.test.d.ts","sourceRoot":"","sources":["../../src/nestjs/channel-app.service.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,240 @@
1
+ import { describe, it, expect, vi, beforeEach } from "vitest";
2
+ import { ChannelAppService } from "./channel-app.service.js";
3
+ // Mock AppStoreClient
4
+ vi.mock("../appstore/client.js", () => {
5
+ return {
6
+ AppStoreClient: vi.fn().mockImplementation(() => ({
7
+ registerExtension: vi.fn().mockResolvedValue({ success: true }),
8
+ })),
9
+ };
10
+ });
11
+ // Import after mock so we can inspect calls
12
+ import { AppStoreClient } from "../appstore/client.js";
13
+ function createMockDiscoveryService(extensions = []) {
14
+ return {
15
+ hasExtensions: () => extensions.length > 0,
16
+ getExtensions: () => extensions,
17
+ getExtension: (name) => extensions.find((e) => e.name === name),
18
+ getFunction: () => undefined,
19
+ getAllFunctions: () => [],
20
+ };
21
+ }
22
+ function createService(options, discoveryService) {
23
+ // Use Object.defineProperty to set the private fields since the constructor
24
+ // uses @Inject/@Optional decorators that we can't use outside NestJS
25
+ const service = Object.create(ChannelAppService.prototype);
26
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
+ const s = service;
28
+ s.options = options;
29
+ s.discoveryService = discoveryService;
30
+ s.logger = {
31
+ log: vi.fn(),
32
+ warn: vi.fn(),
33
+ error: vi.fn(),
34
+ debug: vi.fn(),
35
+ };
36
+ return service;
37
+ }
38
+ describe("ChannelAppService", () => {
39
+ beforeEach(() => {
40
+ vi.clearAllMocks();
41
+ });
42
+ describe("core extension auto-registration", () => {
43
+ it("should register 'core' extension when no extensions are discovered and autoRegister is true", async () => {
44
+ const onAutoRegister = vi.fn();
45
+ const options = {
46
+ appId: "test-app",
47
+ appSecret: "test-secret",
48
+ autoRegister: true,
49
+ onAutoRegister,
50
+ };
51
+ const discovery = createMockDiscoveryService([]);
52
+ const service = createService(options, discovery);
53
+ await service.onModuleInit();
54
+ // Verify AppStoreClient was constructed with correct config
55
+ expect(AppStoreClient).toHaveBeenCalledWith({
56
+ appId: "test-app",
57
+ appSecret: "test-secret",
58
+ appStoreUrl: undefined,
59
+ debug: undefined,
60
+ });
61
+ // Verify registerExtension was called with "core" and "v1"
62
+ const clientInstance = vi.mocked(AppStoreClient).mock.results[0]?.value;
63
+ expect(clientInstance.registerExtension).toHaveBeenCalledWith({
64
+ extensionName: "core",
65
+ systemVersion: "v1",
66
+ });
67
+ // Verify callback was called with success result
68
+ expect(onAutoRegister).toHaveBeenCalledWith([
69
+ {
70
+ extensionName: "core",
71
+ systemVersion: "v1",
72
+ success: true,
73
+ },
74
+ ]);
75
+ });
76
+ it("should register 'core' extension when discoveryService is undefined and autoRegister is true", async () => {
77
+ const onAutoRegister = vi.fn();
78
+ const options = {
79
+ appId: "test-app",
80
+ appSecret: "test-secret",
81
+ autoRegister: true,
82
+ onAutoRegister,
83
+ };
84
+ const service = createService(options, undefined);
85
+ await service.onModuleInit();
86
+ const clientInstance = vi.mocked(AppStoreClient).mock.results[0]?.value;
87
+ expect(clientInstance.registerExtension).toHaveBeenCalledWith({
88
+ extensionName: "core",
89
+ systemVersion: "v1",
90
+ });
91
+ expect(onAutoRegister).toHaveBeenCalledWith([
92
+ {
93
+ extensionName: "core",
94
+ systemVersion: "v1",
95
+ success: true,
96
+ },
97
+ ]);
98
+ });
99
+ it("should register discovered extensions instead of 'core' when extensions exist", async () => {
100
+ const onAutoRegister = vi.fn();
101
+ const options = {
102
+ appId: "test-app",
103
+ appSecret: "test-secret",
104
+ autoRegister: true,
105
+ onAutoRegister,
106
+ };
107
+ const extensions = [
108
+ {
109
+ name: "calendar",
110
+ systemVersion: "v1",
111
+ exclusive: false,
112
+ instance: {},
113
+ functions: [],
114
+ },
115
+ ];
116
+ const discovery = createMockDiscoveryService(extensions);
117
+ const service = createService(options, discovery);
118
+ await service.onModuleInit();
119
+ const clientInstance = vi.mocked(AppStoreClient).mock.results[0]?.value;
120
+ expect(clientInstance.registerExtension).toHaveBeenCalledWith({
121
+ extensionName: "calendar",
122
+ systemVersion: "v1",
123
+ });
124
+ expect(clientInstance.registerExtension).not.toHaveBeenCalledWith({
125
+ extensionName: "core",
126
+ systemVersion: "v1",
127
+ });
128
+ });
129
+ it("should not auto-register anything when autoRegister is false", async () => {
130
+ const options = {
131
+ appId: "test-app",
132
+ appSecret: "test-secret",
133
+ autoRegister: false,
134
+ };
135
+ const discovery = createMockDiscoveryService([]);
136
+ const service = createService(options, discovery);
137
+ await service.onModuleInit();
138
+ expect(AppStoreClient).not.toHaveBeenCalled();
139
+ });
140
+ it("should handle registration failure for core extension gracefully", async () => {
141
+ vi.mocked(AppStoreClient).mockImplementationOnce(() => ({
142
+ registerExtension: vi.fn().mockResolvedValue({
143
+ success: false,
144
+ error_message: "Registration denied",
145
+ }),
146
+ }));
147
+ const onAutoRegister = vi.fn();
148
+ const options = {
149
+ appId: "test-app",
150
+ appSecret: "test-secret",
151
+ autoRegister: true,
152
+ onAutoRegister,
153
+ };
154
+ const discovery = createMockDiscoveryService([]);
155
+ const service = createService(options, discovery);
156
+ await service.onModuleInit();
157
+ expect(onAutoRegister).toHaveBeenCalledWith([
158
+ {
159
+ extensionName: "core",
160
+ systemVersion: "v1",
161
+ success: false,
162
+ error: "Registration denied",
163
+ },
164
+ ]);
165
+ });
166
+ it("should handle registration exception for core extension gracefully", async () => {
167
+ vi.mocked(AppStoreClient).mockImplementationOnce(() => ({
168
+ registerExtension: vi.fn().mockRejectedValue(new Error("Network error")),
169
+ }));
170
+ const onAutoRegister = vi.fn();
171
+ const options = {
172
+ appId: "test-app",
173
+ appSecret: "test-secret",
174
+ autoRegister: true,
175
+ onAutoRegister,
176
+ };
177
+ const discovery = createMockDiscoveryService([]);
178
+ const service = createService(options, discovery);
179
+ await service.onModuleInit();
180
+ expect(onAutoRegister).toHaveBeenCalledWith([
181
+ {
182
+ extensionName: "core",
183
+ systemVersion: "v1",
184
+ success: false,
185
+ error: "Network error",
186
+ },
187
+ ]);
188
+ });
189
+ });
190
+ describe("getRegisteredVersions", () => {
191
+ it("should return default version when no extensions and autoRegister is true", () => {
192
+ const options = {
193
+ appId: "test-app",
194
+ appSecret: "test-secret",
195
+ autoRegister: true,
196
+ };
197
+ const discovery = createMockDiscoveryService([]);
198
+ const service = createService(options, discovery);
199
+ expect(service.getRegisteredVersions()).toEqual(["v1"]);
200
+ });
201
+ it("should return empty array when no extensions and autoRegister is false", () => {
202
+ const options = {
203
+ appId: "test-app",
204
+ appSecret: "test-secret",
205
+ autoRegister: false,
206
+ };
207
+ const discovery = createMockDiscoveryService([]);
208
+ const service = createService(options, discovery);
209
+ expect(service.getRegisteredVersions()).toEqual([]);
210
+ });
211
+ it("should return versions from discovered extensions", () => {
212
+ const options = {
213
+ appId: "test-app",
214
+ appSecret: "test-secret",
215
+ autoRegister: true,
216
+ };
217
+ const extensions = [
218
+ {
219
+ name: "calendar",
220
+ systemVersion: "v2",
221
+ exclusive: false,
222
+ instance: {},
223
+ functions: [],
224
+ },
225
+ ];
226
+ const discovery = createMockDiscoveryService(extensions);
227
+ const service = createService(options, discovery);
228
+ expect(service.getRegisteredVersions()).toEqual(["v2"]);
229
+ });
230
+ });
231
+ describe("static constants", () => {
232
+ it("should expose CORE_EXTENSION_NAME as 'core'", () => {
233
+ expect(ChannelAppService.CORE_EXTENSION_NAME).toBe("core");
234
+ });
235
+ it("should expose DEFAULT_SYSTEM_VERSION as 'v1'", () => {
236
+ expect(ChannelAppService.DEFAULT_SYSTEM_VERSION).toBe("v1");
237
+ });
238
+ });
239
+ });
240
+ //# sourceMappingURL=channel-app.service.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-app.service.test.js","sourceRoot":"","sources":["../../src/nestjs/channel-app.service.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAK7D,sBAAsB;AACtB,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACpC,OAAO;QACL,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC;YAChD,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;SAChE,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,4CAA4C;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,SAAS,0BAA0B,CACjC,aAAkC,EAAE;IAEpC,OAAO;QACL,aAAa,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QAC1C,aAAa,EAAE,GAAG,EAAE,CAAC,UAAU;QAC/B,YAAY,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;QACvE,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS;QAC5B,eAAe,EAAE,GAAG,EAAE,CAAC,EAAE;KACc,CAAC;AAC5C,CAAC;AAED,SAAS,aAAa,CACpB,OAAgC,EAChC,gBAA4C;IAE5C,4EAA4E;IAC5E,qEAAqE;IACrE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAsB,CAAC;IAChF,8DAA8D;IAC9D,MAAM,CAAC,GAAG,OAAc,CAAC;IACzB,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;IACpB,CAAC,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IACtC,CAAC,CAAC,MAAM,GAAG;QACT,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;QACZ,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;QACb,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;QACd,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;KACf,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAChD,EAAE,CAAC,6FAA6F,EAAE,KAAK,IAAI,EAAE;YAC3G,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,OAAO,GAA4B;gBACvC,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,aAAa;gBACxB,YAAY,EAAE,IAAI;gBAClB,cAAc;aACf,CAAC;YAEF,MAAM,SAAS,GAAG,0BAA0B,CAAC,EAAE,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAElD,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;YAE7B,4DAA4D;YAC5D,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC;gBAC1C,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,aAAa;gBACxB,WAAW,EAAE,SAAS;gBACtB,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;YAEH,2DAA2D;YAC3D,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;YACxE,MAAM,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC;gBAC5D,aAAa,EAAE,MAAM;gBACrB,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;YAEH,iDAAiD;YACjD,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC;gBAC1C;oBACE,aAAa,EAAE,MAAM;oBACrB,aAAa,EAAE,IAAI;oBACnB,OAAO,EAAE,IAAI;iBACd;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8FAA8F,EAAE,KAAK,IAAI,EAAE;YAC5G,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,OAAO,GAA4B;gBACvC,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,aAAa;gBACxB,YAAY,EAAE,IAAI;gBAClB,cAAc;aACf,CAAC;YAEF,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAElD,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;YAE7B,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;YACxE,MAAM,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC;gBAC5D,aAAa,EAAE,MAAM;gBACrB,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;YAEH,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC;gBAC1C;oBACE,aAAa,EAAE,MAAM;oBACrB,aAAa,EAAE,IAAI;oBACnB,OAAO,EAAE,IAAI;iBACd;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;YAC7F,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,OAAO,GAA4B;gBACvC,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,aAAa;gBACxB,YAAY,EAAE,IAAI;gBAClB,cAAc;aACf,CAAC;YAEF,MAAM,UAAU,GAAwB;gBACtC;oBACE,IAAI,EAAE,UAAU;oBAChB,aAAa,EAAE,IAAI;oBACnB,SAAS,EAAE,KAAK;oBAChB,QAAQ,EAAE,EAAE;oBACZ,SAAS,EAAE,EAAE;iBACd;aACF,CAAC;YACF,MAAM,SAAS,GAAG,0BAA0B,CAAC,UAAU,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAElD,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;YAE7B,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;YACxE,MAAM,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC;gBAC5D,aAAa,EAAE,UAAU;gBACzB,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;YACH,MAAM,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC;gBAChE,aAAa,EAAE,MAAM;gBACrB,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,OAAO,GAA4B;gBACvC,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,aAAa;gBACxB,YAAY,EAAE,KAAK;aACpB,CAAC;YAEF,MAAM,SAAS,GAAG,0BAA0B,CAAC,EAAE,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAElD,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;YAE7B,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;YAChF,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,sBAAsB,CAC9C,GAAG,EAAE,CACH,CAAC;gBACC,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;oBAC3C,OAAO,EAAE,KAAK;oBACd,aAAa,EAAE,qBAAqB;iBACrC,CAAC;aACH,CAAQ,CACZ,CAAC;YAEF,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,OAAO,GAA4B;gBACvC,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,aAAa;gBACxB,YAAY,EAAE,IAAI;gBAClB,cAAc;aACf,CAAC;YAEF,MAAM,SAAS,GAAG,0BAA0B,CAAC,EAAE,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAElD,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;YAE7B,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC;gBAC1C;oBACE,aAAa,EAAE,MAAM;oBACrB,aAAa,EAAE,IAAI;oBACnB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,qBAAqB;iBAC7B;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;YAClF,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,sBAAsB,CAC9C,GAAG,EAAE,CACH,CAAC;gBACC,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;aACzE,CAAQ,CACZ,CAAC;YAEF,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,OAAO,GAA4B;gBACvC,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,aAAa;gBACxB,YAAY,EAAE,IAAI;gBAClB,cAAc;aACf,CAAC;YAEF,MAAM,SAAS,GAAG,0BAA0B,CAAC,EAAE,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAElD,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;YAE7B,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC;gBAC1C;oBACE,aAAa,EAAE,MAAM;oBACrB,aAAa,EAAE,IAAI;oBACnB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,eAAe;iBACvB;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;YACnF,MAAM,OAAO,GAA4B;gBACvC,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,aAAa;gBACxB,YAAY,EAAE,IAAI;aACnB,CAAC;YAEF,MAAM,SAAS,GAAG,0BAA0B,CAAC,EAAE,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAElD,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;YAChF,MAAM,OAAO,GAA4B;gBACvC,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,aAAa;gBACxB,YAAY,EAAE,KAAK;aACpB,CAAC;YAEF,MAAM,SAAS,GAAG,0BAA0B,CAAC,EAAE,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAElD,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,OAAO,GAA4B;gBACvC,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,aAAa;gBACxB,YAAY,EAAE,IAAI;aACnB,CAAC;YAEF,MAAM,UAAU,GAAwB;gBACtC;oBACE,IAAI,EAAE,UAAU;oBAChB,aAAa,EAAE,IAAI;oBACnB,SAAS,EAAE,KAAK;oBAChB,QAAQ,EAAE,EAAE;oBACZ,SAAS,EAAE,EAAE;iBACd;aACF,CAAC;YACF,MAAM,SAAS,GAAG,0BAA0B,CAAC,UAAU,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAElD,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}