@onroad/core 4.0.0-alpha.1 → 4.0.0-alpha.11

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 (42) hide show
  1. package/README.md +444 -8
  2. package/dist/OnRoadExpress.d.ts.map +1 -1
  3. package/dist/OnRoadExpress.js +12 -3
  4. package/dist/OnRoadExpress.js.map +1 -1
  5. package/dist/container/Container.d.ts +1 -1
  6. package/dist/container/Container.d.ts.map +1 -1
  7. package/dist/container/Container.js +15 -6
  8. package/dist/container/Container.js.map +1 -1
  9. package/dist/core/AbstractService.d.ts +12 -0
  10. package/dist/core/AbstractService.d.ts.map +1 -1
  11. package/dist/core/AbstractService.js +14 -0
  12. package/dist/core/AbstractService.js.map +1 -1
  13. package/dist/core/index.d.ts +1 -1
  14. package/dist/core/index.d.ts.map +1 -1
  15. package/dist/database/ConnectionManager.d.ts +1 -0
  16. package/dist/database/ConnectionManager.d.ts.map +1 -1
  17. package/dist/database/ConnectionManager.js +2 -0
  18. package/dist/database/ConnectionManager.js.map +1 -1
  19. package/dist/dev/DevServer.d.ts +51 -0
  20. package/dist/dev/DevServer.d.ts.map +1 -0
  21. package/dist/dev/DevServer.js +417 -0
  22. package/dist/dev/DevServer.js.map +1 -0
  23. package/dist/dev/MigrationCLI.d.ts +19 -0
  24. package/dist/dev/MigrationCLI.d.ts.map +1 -0
  25. package/dist/dev/MigrationCLI.js +140 -0
  26. package/dist/dev/MigrationCLI.js.map +1 -0
  27. package/dist/dev/index.d.ts +5 -0
  28. package/dist/dev/index.d.ts.map +1 -0
  29. package/dist/dev/index.js +3 -0
  30. package/dist/dev/index.js.map +1 -0
  31. package/dist/entity/EntityRegistry.d.ts +25 -0
  32. package/dist/entity/EntityRegistry.d.ts.map +1 -1
  33. package/dist/entity/EntityRegistry.js +130 -4
  34. package/dist/entity/EntityRegistry.js.map +1 -1
  35. package/dist/entity/decorators.d.ts +1 -0
  36. package/dist/entity/decorators.d.ts.map +1 -1
  37. package/dist/entity/decorators.js.map +1 -1
  38. package/dist/index.d.ts +3 -1
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +2 -0
  41. package/dist/index.js.map +1 -1
  42. package/package.json +6 -2
@@ -88,8 +88,10 @@ export class OnRoadContainer {
88
88
  if (this.singletons.has(key)) {
89
89
  return this.singletons.get(key);
90
90
  }
91
- const instance = this.createAndWire(meta, scope);
91
+ // Pre-register before wiring to allow circular service deps
92
+ const instance = new meta.target();
92
93
  this.singletons.set(key, instance);
94
+ this.wire(meta, instance, scope);
93
95
  return instance;
94
96
  }
95
97
  // Request scope cache
@@ -97,14 +99,17 @@ export class OnRoadContainer {
97
99
  if (scope.instances.has(key)) {
98
100
  return scope.instances.get(key);
99
101
  }
100
- const instance = this.createAndWire(meta, scope);
102
+ // Pre-register before wiring to allow circular service deps
103
+ const instance = new meta.target();
101
104
  scope.instances.set(key, instance);
105
+ this.wire(meta, instance, scope);
102
106
  return instance;
103
107
  }
104
- return this.createAndWire(meta, scope);
105
- }
106
- createAndWire(meta, scope) {
107
108
  const instance = new meta.target();
109
+ this.wire(meta, instance, scope);
110
+ return instance;
111
+ }
112
+ wire(meta, instance, scope) {
108
113
  // Controller → Service (auto-inject)
109
114
  if (meta.type === "controller" && hasMethod(instance, "getServiceClass")) {
110
115
  const ServiceClass = instance.getServiceClass();
@@ -121,6 +126,11 @@ export class OnRoadContainer {
121
126
  instance.setRepository(repo);
122
127
  }
123
128
  }
129
+ // Service → Service dependencies (auto-inject via configDependencies hook)
130
+ if (meta.type === "service" && hasMethod(instance, "configDependencies")) {
131
+ const resolver = (token) => this.resolve(token, scope);
132
+ instance.configDependencies(resolver);
133
+ }
124
134
  // Repository → ConnectionManager + EntityClass (auto-bind)
125
135
  if (meta.type === "repository") {
126
136
  const repoOptions = Reflect.getMetadata(METADATA_KEY.REPOSITORY, meta.target);
@@ -146,7 +156,6 @@ export class OnRoadContainer {
146
156
  instance.setTenant(scope.tenant);
147
157
  }
148
158
  }
149
- return instance;
150
159
  }
151
160
  createScope(requestId, tenant) {
152
161
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../src/container/Container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../src/container/Container.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,23 @@ import type { Constructor } from "../container/Container.js";
2
2
  export interface ServiceConfig<TRepository> {
3
3
  repository: Constructor<TRepository>;
4
4
  }
5
+ export type ServiceResolver = <T>(token: Constructor<T>) => T;
5
6
  export declare abstract class AbstractService<TRepository = unknown> {
6
7
  protected config: ServiceConfig<TRepository>;
7
8
  protected repository: TRepository;
8
9
  constructor(config: ServiceConfig<TRepository>);
9
10
  setRepository(repository: TRepository): void;
10
11
  getRepositoryClass(): Constructor<TRepository>;
12
+ /**
13
+ * Called by the container after the instance is created and the repository is injected.
14
+ * Override this method to declare service-to-service dependencies via the resolver.
15
+ *
16
+ * @example
17
+ * configDependencies(resolve: ServiceResolver): void {
18
+ * this.companySVC = resolve(CompanyService)
19
+ * this.roleSVC = resolve(RoleService)
20
+ * }
21
+ */
22
+ configDependencies(_resolve: ServiceResolver): void;
11
23
  }
12
24
  //# sourceMappingURL=AbstractService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractService.d.ts","sourceRoot":"","sources":["../../src/core/AbstractService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAE5D,MAAM,WAAW,aAAa,CAAC,WAAW;IACxC,UAAU,EAAE,WAAW,CAAC,WAAW,CAAC,CAAA;CACrC;AAED,8BAAsB,eAAe,CAAC,WAAW,GAAG,OAAO;IAG7C,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC;IAFxD,SAAS,CAAC,UAAU,EAAG,WAAW,CAAA;gBAEZ,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC;IAExD,aAAa,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAI5C,kBAAkB,IAAI,WAAW,CAAC,WAAW,CAAC;CAG/C"}
1
+ {"version":3,"file":"AbstractService.d.ts","sourceRoot":"","sources":["../../src/core/AbstractService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAE5D,MAAM,WAAW,aAAa,CAAC,WAAW;IACxC,UAAU,EAAE,WAAW,CAAC,WAAW,CAAC,CAAA;CACrC;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AAE7D,8BAAsB,eAAe,CAAC,WAAW,GAAG,OAAO;IAG7C,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC;IAFxD,SAAS,CAAC,UAAU,EAAG,WAAW,CAAA;gBAEZ,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC;IAExD,aAAa,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAI5C,kBAAkB,IAAI,WAAW,CAAC,WAAW,CAAC;IAI9C;;;;;;;;;OASG;IAEH,kBAAkB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;CAGpD"}
@@ -10,5 +10,19 @@ export class AbstractService {
10
10
  getRepositoryClass() {
11
11
  return this.config.repository;
12
12
  }
13
+ /**
14
+ * Called by the container after the instance is created and the repository is injected.
15
+ * Override this method to declare service-to-service dependencies via the resolver.
16
+ *
17
+ * @example
18
+ * configDependencies(resolve: ServiceResolver): void {
19
+ * this.companySVC = resolve(CompanyService)
20
+ * this.roleSVC = resolve(RoleService)
21
+ * }
22
+ */
23
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
24
+ configDependencies(_resolve) {
25
+ // Default no-op — override in concrete services
26
+ }
13
27
  }
14
28
  //# sourceMappingURL=AbstractService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractService.js","sourceRoot":"","sources":["../../src/core/AbstractService.ts"],"names":[],"mappings":"AAMA,MAAM,OAAgB,eAAe;IAGb;IAFZ,UAAU,CAAc;IAElC,YAAsB,MAAkC;QAAlC,WAAM,GAAN,MAAM,CAA4B;IAAG,CAAC;IAE5D,aAAa,CAAC,UAAuB;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAA;IAC/B,CAAC;CACF"}
1
+ {"version":3,"file":"AbstractService.js","sourceRoot":"","sources":["../../src/core/AbstractService.ts"],"names":[],"mappings":"AAQA,MAAM,OAAgB,eAAe;IAGb;IAFZ,UAAU,CAAc;IAElC,YAAsB,MAAkC;QAAlC,WAAM,GAAN,MAAM,CAA4B;IAAG,CAAC;IAE5D,aAAa,CAAC,UAAuB;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAA;IAC/B,CAAC;IAED;;;;;;;;;OASG;IACH,6DAA6D;IAC7D,kBAAkB,CAAC,QAAyB;QAC1C,gDAAgD;IAClD,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  export { AbstractController } from "./AbstractController.js";
2
2
  export type { RouteConfig, ControllerConfig } from "./AbstractController.js";
3
3
  export { AbstractService } from "./AbstractService.js";
4
- export type { ServiceConfig } from "./AbstractService.js";
4
+ export type { ServiceConfig, ServiceResolver } from "./AbstractService.js";
5
5
  export { AbstractRepository } from "./AbstractRepository.js";
6
6
  export { SequelizeRepository } from "./SequelizeRepository.js";
7
7
  export { MongooseRepository } from "./MongooseRepository.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE5E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE5E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAE1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA"}
@@ -3,6 +3,7 @@ export interface DatabaseConfig {
3
3
  port?: number;
4
4
  user?: string;
5
5
  password?: string;
6
+ database?: string;
6
7
  prefix?: string;
7
8
  uri?: string;
8
9
  pool?: {
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionManager.d.ts","sourceRoot":"","sources":["../../src/database/ConnectionManager.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE;QACL,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;CACF;AAED,8BAAsB,iBAAiB,CAAC,WAAW;IACjD,SAAS,CAAC,WAAW,2BAAiC;IACtD,SAAS,CAAC,MAAM,EAAE,cAAc,CAAA;gBAEpB,MAAM,EAAE,cAAc;IAIlC,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAEjF,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAElC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAEpD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;IAI/D,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;CAG3E"}
1
+ {"version":3,"file":"ConnectionManager.d.ts","sourceRoot":"","sources":["../../src/database/ConnectionManager.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE;QACL,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;CACF;AAED,8BAAsB,iBAAiB,CAAC,WAAW;IACjD,SAAS,CAAC,WAAW,2BAAiC;IACtD,SAAS,CAAC,MAAM,EAAE,cAAc,CAAA;gBAEpB,MAAM,EAAE,cAAc;IAIlC,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAEjF,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAElC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAEpD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;IAI/D,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;CAI3E"}
@@ -11,6 +11,8 @@ export class ConnectionManager {
11
11
  return dataSource ? `${tenant}:${dataSource}` : tenant;
12
12
  }
13
13
  resolveDatabaseName(tenant, dataSource) {
14
+ if (this.config.database)
15
+ return this.config.database;
14
16
  return dataSource ?? `${this.config.prefix}_${tenant}`;
15
17
  }
16
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionManager.js","sourceRoot":"","sources":["../../src/database/ConnectionManager.ts"],"names":[],"mappings":"AAeA,MAAM,OAAgB,iBAAiB;IAC3B,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAA;IAC5C,MAAM,CAAgB;IAEhC,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAQD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAES,QAAQ,CAAC,MAAc,EAAE,UAAmB;QACpD,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;IACxD,CAAC;IAES,mBAAmB,CAAC,MAAc,EAAE,UAAmB;QAC/D,OAAO,UAAU,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,EAAE,CAAA;IACxD,CAAC;CACF"}
1
+ {"version":3,"file":"ConnectionManager.js","sourceRoot":"","sources":["../../src/database/ConnectionManager.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAgB,iBAAiB;IAC3B,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAA;IAC5C,MAAM,CAAgB;IAEhC,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAQD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAES,QAAQ,CAAC,MAAc,EAAE,UAAmB;QACpD,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;IACxD,CAAC;IAES,mBAAmB,CAAC,MAAc,EAAE,UAAmB;QAC/D,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAA;QACrD,OAAO,UAAU,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,EAAE,CAAA;IACxD,CAAC;CACF"}
@@ -0,0 +1,51 @@
1
+ import type { OnRoadExpress, BuildServerConfig } from "../OnRoadExpress.js";
2
+ export interface DevDatabaseConfig {
3
+ engine: "postgres" | "mysql";
4
+ port?: number;
5
+ user?: string;
6
+ password?: string;
7
+ database?: string;
8
+ image?: string;
9
+ containerName?: string;
10
+ }
11
+ export interface DevServerConfig {
12
+ app: OnRoadExpress;
13
+ databases?: DevDatabaseConfig[];
14
+ frontendVars?: Record<string, string>;
15
+ migrationsPath?: string;
16
+ projectRoot?: string;
17
+ autoMigrate?: boolean;
18
+ composeFile?: string;
19
+ tenants?: string[];
20
+ }
21
+ export declare class DevServer {
22
+ private readonly app;
23
+ private readonly logger;
24
+ private readonly databases;
25
+ private readonly frontendVars;
26
+ private readonly migrationsPath?;
27
+ private readonly projectRoot;
28
+ private readonly autoMigrate;
29
+ private readonly composeFile;
30
+ private readonly tenants;
31
+ private containers;
32
+ private composeCmd;
33
+ constructor(config: DevServerConfig);
34
+ start(buildConfig?: BuildServerConfig): Promise<void>;
35
+ stop(): Promise<void>;
36
+ private ensureComposeFile;
37
+ private generateComposeContent;
38
+ private getComposeCommand;
39
+ private startContainers;
40
+ private stopContainers;
41
+ private isDockerAvailable;
42
+ private waitForDatabases;
43
+ private waitForContainer;
44
+ private populateContainersFromConfig;
45
+ private waitForSequelizeConnection;
46
+ private runMigrations;
47
+ private printFrontendEnvVars;
48
+ private printBanner;
49
+ private printSummary;
50
+ }
51
+ //# sourceMappingURL=DevServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DevServer.d.ts","sourceRoot":"","sources":["../../src/dev/DevServer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAM3E,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAA;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,aAAa,CAAA;IAClB,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAcD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,UAAU,CAAsB;gBAE5B,MAAM,EAAE,eAAe;IAc7B,KAAK,CAAC,WAAW,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BzD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,sBAAsB;IA+E9B,OAAO,CAAC,iBAAiB;YAyBX,eAAe;IAiC7B,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,iBAAiB;YAWX,gBAAgB;YAahB,gBAAgB;IA0B9B,OAAO,CAAC,4BAA4B;YAiBtB,0BAA0B;YAgC1B,aAAa;IAmC3B,OAAO,CAAC,oBAAoB;IAmD5B,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,YAAY;CAqBrB"}