@wildo-ai/platform-config-lib 1.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.
Files changed (230) hide show
  1. package/dist/esm/bootstrap/application-backend-env.contracts.d.ts +2 -0
  2. package/dist/esm/bootstrap/application-backend-env.contracts.d.ts.map +1 -0
  3. package/dist/esm/bootstrap/application-backend-env.contracts.js +2 -0
  4. package/dist/esm/bootstrap/application-backend-env.contracts.js.map +1 -0
  5. package/dist/esm/bootstrap/bootstrap-planner.d.ts +20 -0
  6. package/dist/esm/bootstrap/bootstrap-planner.d.ts.map +1 -0
  7. package/dist/esm/bootstrap/bootstrap-planner.js +26 -0
  8. package/dist/esm/bootstrap/bootstrap-planner.js.map +1 -0
  9. package/dist/esm/bootstrap/bootstrap.contracts.d.ts +120 -0
  10. package/dist/esm/bootstrap/bootstrap.contracts.d.ts.map +1 -0
  11. package/dist/esm/bootstrap/bootstrap.contracts.js +117 -0
  12. package/dist/esm/bootstrap/bootstrap.contracts.js.map +1 -0
  13. package/dist/esm/bootstrap/bootstrap.schemas.d.ts +485 -0
  14. package/dist/esm/bootstrap/bootstrap.schemas.d.ts.map +1 -0
  15. package/dist/esm/bootstrap/bootstrap.schemas.js +130 -0
  16. package/dist/esm/bootstrap/bootstrap.schemas.js.map +1 -0
  17. package/dist/esm/bootstrap/platform-runtime-env.contracts.d.ts +78 -0
  18. package/dist/esm/bootstrap/platform-runtime-env.contracts.d.ts.map +1 -0
  19. package/dist/esm/bootstrap/platform-runtime-env.contracts.js +98 -0
  20. package/dist/esm/bootstrap/platform-runtime-env.contracts.js.map +1 -0
  21. package/dist/esm/bootstrap/runtime-topology.contracts.d.ts +17 -0
  22. package/dist/esm/bootstrap/runtime-topology.contracts.d.ts.map +1 -0
  23. package/dist/esm/bootstrap/runtime-topology.contracts.js +60 -0
  24. package/dist/esm/bootstrap/runtime-topology.contracts.js.map +1 -0
  25. package/dist/esm/credentials/credential-generator.service.d.ts +11 -0
  26. package/dist/esm/credentials/credential-generator.service.d.ts.map +1 -0
  27. package/dist/esm/credentials/credential-generator.service.js +31 -0
  28. package/dist/esm/credentials/credential-generator.service.js.map +1 -0
  29. package/dist/esm/credentials/credentials-provisioner.service.d.ts +190 -0
  30. package/dist/esm/credentials/credentials-provisioner.service.d.ts.map +1 -0
  31. package/dist/esm/credentials/credentials-provisioner.service.js +278 -0
  32. package/dist/esm/credentials/credentials-provisioner.service.js.map +1 -0
  33. package/dist/esm/index.d.ts +16 -0
  34. package/dist/esm/index.d.ts.map +1 -0
  35. package/dist/esm/index.js +16 -0
  36. package/dist/esm/index.js.map +1 -0
  37. package/dist/esm/infra-managers/infra-manager.models.d.ts +146 -0
  38. package/dist/esm/infra-managers/infra-manager.models.d.ts.map +1 -0
  39. package/dist/esm/infra-managers/infra-manager.models.js +2 -0
  40. package/dist/esm/infra-managers/infra-manager.models.js.map +1 -0
  41. package/dist/esm/infra-managers/mongo-atlas-manager.service.d.ts +64 -0
  42. package/dist/esm/infra-managers/mongo-atlas-manager.service.d.ts.map +1 -0
  43. package/dist/esm/infra-managers/mongo-atlas-manager.service.js +307 -0
  44. package/dist/esm/infra-managers/mongo-atlas-manager.service.js.map +1 -0
  45. package/dist/esm/infra-managers/postgresql-manager.service.d.ts +115 -0
  46. package/dist/esm/infra-managers/postgresql-manager.service.d.ts.map +1 -0
  47. package/dist/esm/infra-managers/postgresql-manager.service.js +403 -0
  48. package/dist/esm/infra-managers/postgresql-manager.service.js.map +1 -0
  49. package/dist/esm/infra-managers/rabbitmq-manager.service.d.ts +64 -0
  50. package/dist/esm/infra-managers/rabbitmq-manager.service.d.ts.map +1 -0
  51. package/dist/esm/infra-managers/rabbitmq-manager.service.js +288 -0
  52. package/dist/esm/infra-managers/rabbitmq-manager.service.js.map +1 -0
  53. package/dist/esm/infra-managers/redis-manager.service.d.ts +78 -0
  54. package/dist/esm/infra-managers/redis-manager.service.d.ts.map +1 -0
  55. package/dist/esm/infra-managers/redis-manager.service.js +326 -0
  56. package/dist/esm/infra-managers/redis-manager.service.js.map +1 -0
  57. package/dist/esm/project-config/define-framework-config.d.ts +36 -0
  58. package/dist/esm/project-config/define-framework-config.d.ts.map +1 -0
  59. package/dist/esm/project-config/define-framework-config.js +30 -0
  60. package/dist/esm/project-config/define-framework-config.js.map +1 -0
  61. package/dist/esm/project-config/define-infra-config.d.ts +128 -0
  62. package/dist/esm/project-config/define-infra-config.d.ts.map +1 -0
  63. package/dist/esm/project-config/define-infra-config.js +87 -0
  64. package/dist/esm/project-config/define-infra-config.js.map +1 -0
  65. package/dist/esm/project-config/define-minion-config.d.ts +41 -0
  66. package/dist/esm/project-config/define-minion-config.d.ts.map +1 -0
  67. package/dist/esm/project-config/define-minion-config.js +24 -0
  68. package/dist/esm/project-config/define-minion-config.js.map +1 -0
  69. package/dist/esm/project-config/define-platform-config.d.ts +65 -0
  70. package/dist/esm/project-config/define-platform-config.d.ts.map +1 -0
  71. package/dist/esm/project-config/define-platform-config.js +22 -0
  72. package/dist/esm/project-config/define-platform-config.js.map +1 -0
  73. package/dist/esm/project-config/define-platform-env-config.d.ts +41 -0
  74. package/dist/esm/project-config/define-platform-env-config.d.ts.map +1 -0
  75. package/dist/esm/project-config/define-platform-env-config.js +45 -0
  76. package/dist/esm/project-config/define-platform-env-config.js.map +1 -0
  77. package/dist/esm/project-config/define-project-config.d.ts +38 -0
  78. package/dist/esm/project-config/define-project-config.d.ts.map +1 -0
  79. package/dist/esm/project-config/define-project-config.js +57 -0
  80. package/dist/esm/project-config/define-project-config.js.map +1 -0
  81. package/dist/esm/project-config/define-saas-config.d.ts +252 -0
  82. package/dist/esm/project-config/define-saas-config.d.ts.map +1 -0
  83. package/dist/esm/project-config/define-saas-config.js +137 -0
  84. package/dist/esm/project-config/define-saas-config.js.map +1 -0
  85. package/dist/esm/project-config/define-sharing-policy.d.ts +35 -0
  86. package/dist/esm/project-config/define-sharing-policy.d.ts.map +1 -0
  87. package/dist/esm/project-config/define-sharing-policy.js +30 -0
  88. package/dist/esm/project-config/define-sharing-policy.js.map +1 -0
  89. package/dist/esm/project-config/define-worker-config.d.ts +42 -0
  90. package/dist/esm/project-config/define-worker-config.d.ts.map +1 -0
  91. package/dist/esm/project-config/define-worker-config.js +24 -0
  92. package/dist/esm/project-config/define-worker-config.js.map +1 -0
  93. package/dist/esm/project-config/index.d.ts +22 -0
  94. package/dist/esm/project-config/index.d.ts.map +1 -0
  95. package/dist/esm/project-config/index.js +22 -0
  96. package/dist/esm/project-config/index.js.map +1 -0
  97. package/dist/esm/project-config/loader.d.ts +42 -0
  98. package/dist/esm/project-config/loader.d.ts.map +1 -0
  99. package/dist/esm/project-config/loader.js +164 -0
  100. package/dist/esm/project-config/loader.js.map +1 -0
  101. package/dist/esm/project-config/shared/application-modules.schemas.d.ts +10 -0
  102. package/dist/esm/project-config/shared/application-modules.schemas.d.ts.map +1 -0
  103. package/dist/esm/project-config/shared/application-modules.schemas.js +6 -0
  104. package/dist/esm/project-config/shared/application-modules.schemas.js.map +1 -0
  105. package/dist/esm/project-config/shared/application-modules.utils.d.ts +6 -0
  106. package/dist/esm/project-config/shared/application-modules.utils.d.ts.map +1 -0
  107. package/dist/esm/project-config/shared/application-modules.utils.js +26 -0
  108. package/dist/esm/project-config/shared/application-modules.utils.js.map +1 -0
  109. package/dist/esm/project-config/shared/backing-services.schemas.d.ts +68 -0
  110. package/dist/esm/project-config/shared/backing-services.schemas.d.ts.map +1 -0
  111. package/dist/esm/project-config/shared/backing-services.schemas.js +49 -0
  112. package/dist/esm/project-config/shared/backing-services.schemas.js.map +1 -0
  113. package/dist/esm/project-config/shared/data-services.schemas.d.ts +33 -0
  114. package/dist/esm/project-config/shared/data-services.schemas.d.ts.map +1 -0
  115. package/dist/esm/project-config/shared/data-services.schemas.js +47 -0
  116. package/dist/esm/project-config/shared/data-services.schemas.js.map +1 -0
  117. package/dist/esm/project-config/shared/env-example-defaults.d.ts +27 -0
  118. package/dist/esm/project-config/shared/env-example-defaults.d.ts.map +1 -0
  119. package/dist/esm/project-config/shared/env-example-defaults.js +30 -0
  120. package/dist/esm/project-config/shared/env-example-defaults.js.map +1 -0
  121. package/dist/esm/project-config/shared/environment.schemas.d.ts +106 -0
  122. package/dist/esm/project-config/shared/environment.schemas.d.ts.map +1 -0
  123. package/dist/esm/project-config/shared/environment.schemas.js +111 -0
  124. package/dist/esm/project-config/shared/environment.schemas.js.map +1 -0
  125. package/dist/esm/project-config/shared/infrastructure-defaults.schemas.d.ts +42 -0
  126. package/dist/esm/project-config/shared/infrastructure-defaults.schemas.d.ts.map +1 -0
  127. package/dist/esm/project-config/shared/infrastructure-defaults.schemas.js +42 -0
  128. package/dist/esm/project-config/shared/infrastructure-defaults.schemas.js.map +1 -0
  129. package/dist/esm/project-config/shared/k8s-utils.d.ts +36 -0
  130. package/dist/esm/project-config/shared/k8s-utils.d.ts.map +1 -0
  131. package/dist/esm/project-config/shared/k8s-utils.js +50 -0
  132. package/dist/esm/project-config/shared/k8s-utils.js.map +1 -0
  133. package/dist/esm/project-config/shared/platform-services.schemas.d.ts +30 -0
  134. package/dist/esm/project-config/shared/platform-services.schemas.d.ts.map +1 -0
  135. package/dist/esm/project-config/shared/platform-services.schemas.js +27 -0
  136. package/dist/esm/project-config/shared/platform-services.schemas.js.map +1 -0
  137. package/dist/esm/project-config/shared/service-definitions.schemas.d.ts +42 -0
  138. package/dist/esm/project-config/shared/service-definitions.schemas.d.ts.map +1 -0
  139. package/dist/esm/project-config/shared/service-definitions.schemas.js +29 -0
  140. package/dist/esm/project-config/shared/service-definitions.schemas.js.map +1 -0
  141. package/dist/esm/project-config/sharing-policy-validation.d.ts +40 -0
  142. package/dist/esm/project-config/sharing-policy-validation.d.ts.map +1 -0
  143. package/dist/esm/project-config/sharing-policy-validation.js +143 -0
  144. package/dist/esm/project-config/sharing-policy-validation.js.map +1 -0
  145. package/dist/esm/release/framework-release.constants.d.ts +3 -0
  146. package/dist/esm/release/framework-release.constants.d.ts.map +1 -0
  147. package/dist/esm/release/framework-release.constants.js +3 -0
  148. package/dist/esm/release/framework-release.constants.js.map +1 -0
  149. package/dist/esm/runtime-bridge/platform-runtime-bridge.contracts.d.ts +23 -0
  150. package/dist/esm/runtime-bridge/platform-runtime-bridge.contracts.d.ts.map +1 -0
  151. package/dist/esm/runtime-bridge/platform-runtime-bridge.contracts.js +13 -0
  152. package/dist/esm/runtime-bridge/platform-runtime-bridge.contracts.js.map +1 -0
  153. package/dist/esm/schemas/framework-info.schemas.d.ts +8 -0
  154. package/dist/esm/schemas/framework-info.schemas.d.ts.map +1 -0
  155. package/dist/esm/schemas/framework-info.schemas.js +8 -0
  156. package/dist/esm/schemas/framework-info.schemas.js.map +1 -0
  157. package/dist/esm/schemas/framework-secrets.schemas.d.ts +22 -0
  158. package/dist/esm/schemas/framework-secrets.schemas.d.ts.map +1 -0
  159. package/dist/esm/schemas/framework-secrets.schemas.js +14 -0
  160. package/dist/esm/schemas/framework-secrets.schemas.js.map +1 -0
  161. package/dist/esm/schemas/platform-application-config.schemas.d.ts +20 -0
  162. package/dist/esm/schemas/platform-application-config.schemas.d.ts.map +1 -0
  163. package/dist/esm/schemas/platform-application-config.schemas.js +19 -0
  164. package/dist/esm/schemas/platform-application-config.schemas.js.map +1 -0
  165. package/dist/esm/schemas/platform-application-secrets.schemas.d.ts +54 -0
  166. package/dist/esm/schemas/platform-application-secrets.schemas.d.ts.map +1 -0
  167. package/dist/esm/schemas/platform-application-secrets.schemas.js +67 -0
  168. package/dist/esm/schemas/platform-application-secrets.schemas.js.map +1 -0
  169. package/dist/esm/schemas/platform-config.schemas.d.ts +66 -0
  170. package/dist/esm/schemas/platform-config.schemas.d.ts.map +1 -0
  171. package/dist/esm/schemas/platform-config.schemas.js +28 -0
  172. package/dist/esm/schemas/platform-config.schemas.js.map +1 -0
  173. package/dist/esm/workspace-scope/index.d.ts +3 -0
  174. package/dist/esm/workspace-scope/index.d.ts.map +1 -0
  175. package/dist/esm/workspace-scope/index.js +3 -0
  176. package/dist/esm/workspace-scope/index.js.map +1 -0
  177. package/dist/esm/workspace-scope/workspace-scope-detector.d.ts +15 -0
  178. package/dist/esm/workspace-scope/workspace-scope-detector.d.ts.map +1 -0
  179. package/dist/esm/workspace-scope/workspace-scope-detector.js +87 -0
  180. package/dist/esm/workspace-scope/workspace-scope-detector.js.map +1 -0
  181. package/dist/esm/workspace-scope/workspace-scope.schemas.d.ts +118 -0
  182. package/dist/esm/workspace-scope/workspace-scope.schemas.d.ts.map +1 -0
  183. package/dist/esm/workspace-scope/workspace-scope.schemas.js +157 -0
  184. package/dist/esm/workspace-scope/workspace-scope.schemas.js.map +1 -0
  185. package/dist/tsconfig.build.tsbuildinfo +1 -0
  186. package/package.json +52 -0
  187. package/src/bootstrap/application-backend-env.contracts.ts +17 -0
  188. package/src/bootstrap/bootstrap-planner.ts +46 -0
  189. package/src/bootstrap/bootstrap.contracts.ts +251 -0
  190. package/src/bootstrap/bootstrap.schemas.ts +164 -0
  191. package/src/bootstrap/platform-runtime-env.contracts.ts +99 -0
  192. package/src/bootstrap/runtime-topology.contracts.ts +102 -0
  193. package/src/credentials/credential-generator.service.ts +39 -0
  194. package/src/index.ts +16 -0
  195. package/src/project-config/__tests__/application-modules.utils.test.ts +53 -0
  196. package/src/project-config/__tests__/define-framework-config.test.ts +43 -0
  197. package/src/project-config/__tests__/define-saas-config.test.ts +210 -0
  198. package/src/project-config/__tests__/loader.test.ts +100 -0
  199. package/src/project-config/define-framework-config.ts +44 -0
  200. package/src/project-config/define-infra-config.ts +168 -0
  201. package/src/project-config/define-minion-config.ts +27 -0
  202. package/src/project-config/define-platform-config.ts +28 -0
  203. package/src/project-config/define-platform-env-config.ts +59 -0
  204. package/src/project-config/define-project-config.ts +63 -0
  205. package/src/project-config/define-saas-config.ts +171 -0
  206. package/src/project-config/define-sharing-policy.ts +36 -0
  207. package/src/project-config/define-worker-config.ts +27 -0
  208. package/src/project-config/index.ts +23 -0
  209. package/src/project-config/loader.ts +220 -0
  210. package/src/project-config/shared/application-modules.schemas.ts +12 -0
  211. package/src/project-config/shared/application-modules.utils.ts +65 -0
  212. package/src/project-config/shared/backing-services.schemas.ts +59 -0
  213. package/src/project-config/shared/data-services.schemas.ts +58 -0
  214. package/src/project-config/shared/env-example-defaults.ts +50 -0
  215. package/src/project-config/shared/environment.schemas.ts +136 -0
  216. package/src/project-config/shared/infrastructure-defaults.schemas.ts +47 -0
  217. package/src/project-config/shared/k8s-utils.ts +56 -0
  218. package/src/project-config/shared/platform-services.schemas.ts +33 -0
  219. package/src/project-config/shared/service-definitions.schemas.ts +38 -0
  220. package/src/project-config/sharing-policy-validation.ts +159 -0
  221. package/src/release/framework-release.constants.ts +2 -0
  222. package/src/schemas/__tests__/platform-config.schemas.test.ts +90 -0
  223. package/src/schemas/framework-info.schemas.ts +13 -0
  224. package/src/schemas/framework-secrets.schemas.ts +19 -0
  225. package/src/schemas/platform-application-config.schemas.ts +25 -0
  226. package/src/schemas/platform-application-secrets.schemas.ts +78 -0
  227. package/src/schemas/platform-config.schemas.ts +45 -0
  228. package/src/workspace-scope/index.ts +2 -0
  229. package/src/workspace-scope/workspace-scope-detector.ts +98 -0
  230. package/src/workspace-scope/workspace-scope.schemas.ts +224 -0
@@ -0,0 +1,41 @@
1
+ import { z } from 'zod';
2
+ export declare const WildoMinionConfigSchema: z.ZodObject<{
3
+ version: z.ZodDefault<z.ZodNumber>;
4
+ name: z.ZodString;
5
+ displayName: z.ZodString;
6
+ description: z.ZodOptional<z.ZodString>;
7
+ runtime: z.ZodObject<{
8
+ type: z.ZodString;
9
+ language: z.ZodString;
10
+ }, z.core.$strip, core.$ZodObjectExtra>;
11
+ schedule: z.ZodString;
12
+ resources: z.ZodOptional<z.ZodObject<{
13
+ cpu: z.ZodOptional<z.ZodString>;
14
+ memory: z.ZodOptional<z.ZodString>;
15
+ }, z.core.$strip, core.$ZodObjectExtra>>;
16
+ providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
17
+ required: z.ZodDefault<z.ZodBoolean>;
18
+ }, z.core.$strip, core.$ZodObjectExtra>>>;
19
+ dataAccess: z.ZodOptional<z.ZodObject<{
20
+ database: z.ZodOptional<z.ZodEnum<{
21
+ "read-only": "read-only";
22
+ "read-write": "read-write";
23
+ none: "none";
24
+ }>>;
25
+ cache: z.ZodOptional<z.ZodBoolean>;
26
+ queue: z.ZodOptional<z.ZodEnum<{
27
+ none: "none";
28
+ consumer: "consumer";
29
+ producer: "producer";
30
+ both: "both";
31
+ }>>;
32
+ }, z.core.$strip, core.$ZodObjectExtra>>;
33
+ }, z.core.$strip, core.$ZodObjectExtra>;
34
+ export type WildoMinionConfig = z.infer<typeof WildoMinionConfigSchema>;
35
+ export type WildoMinionConfigInput = z.input<typeof WildoMinionConfigSchema>;
36
+ /**
37
+ * Define a minion (scheduled task / cron agent) configuration.
38
+ * Minions run on a schedule and can access data services and providers.
39
+ */
40
+ export declare function defineMinionConfig(config: WildoMinionConfigInput): WildoMinionConfig;
41
+ //# sourceMappingURL=define-minion-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-minion-config.d.ts","sourceRoot":"","sources":["../../../src/project-config/define-minion-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCAalC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE7E;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,sBAAsB,GAAG,iBAAiB,CAEpF"}
@@ -0,0 +1,24 @@
1
+ import { z } from 'zod';
2
+ import { WorkerRuntimeSchema, ResourceLimitsSchema, DataAccessSchema } from './shared/service-definitions.schemas.js';
3
+ export const WildoMinionConfigSchema = z.object({
4
+ version: z.number().int().positive().default(1),
5
+ name: z.string().min(1),
6
+ displayName: z.string().min(1),
7
+ description: z.string().optional(),
8
+ runtime: WorkerRuntimeSchema,
9
+ /** Cron expression for scheduling (e.g. every 6 hours) */
10
+ schedule: z.string().min(1),
11
+ resources: ResourceLimitsSchema.optional(),
12
+ providers: z.record(z.string(), z.object({
13
+ required: z.boolean().default(true),
14
+ })).optional(),
15
+ dataAccess: DataAccessSchema.optional(),
16
+ });
17
+ /**
18
+ * Define a minion (scheduled task / cron agent) configuration.
19
+ * Minions run on a schedule and can access data services and providers.
20
+ */
21
+ export function defineMinionConfig(config) {
22
+ return WildoMinionConfigSchema.parse(config);
23
+ }
24
+ //# sourceMappingURL=define-minion-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-minion-config.js","sourceRoot":"","sources":["../../../src/project-config/define-minion-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAEnH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,mBAAmB;IAC5B,0DAA0D;IAC1D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,SAAS,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;QACvC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;KACpC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACd,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC;AAIH;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAA8B;IAC/D,OAAO,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,65 @@
1
+ import { z } from 'zod';
2
+ export declare const WildoAuthConfigSchema: z.ZodObject<{
3
+ jwtAlgorithm: z.ZodDefault<z.ZodEnum<{
4
+ RS256: "RS256";
5
+ RS384: "RS384";
6
+ RS512: "RS512";
7
+ ES256: "ES256";
8
+ ES384: "ES384";
9
+ ES512: "ES512";
10
+ }>>;
11
+ accessTokenExpirationMinutes: z.ZodDefault<z.ZodNumber>;
12
+ refreshTokenExpirationDays: z.ZodDefault<z.ZodNumber>;
13
+ }, z.core.$strip, core.$ZodObjectExtra>;
14
+ export type WildoAuthConfig = z.infer<typeof WildoAuthConfigSchema>;
15
+ export type WildoAuthConfigInput = z.input<typeof WildoAuthConfigSchema>;
16
+ export declare const WildoPlatformConfigSchema: z.ZodObject<{
17
+ version: z.ZodDefault<z.ZodNumber>;
18
+ platformServices: z.ZodRecord<z.ZodString, z.ZodObject<{
19
+ serviceName: z.ZodString;
20
+ enabled: z.ZodDefault<z.ZodBoolean>;
21
+ }, z.core.$strip, core.$ZodObjectExtra>>;
22
+ backingServices: z.ZodObject<{
23
+ mongodb: z.ZodOptional<z.ZodObject<{
24
+ enabled: z.ZodBoolean;
25
+ }, z.core.$strip, core.$ZodObjectExtra>>;
26
+ redis: z.ZodOptional<z.ZodObject<{
27
+ enabled: z.ZodBoolean;
28
+ }, z.core.$strip, core.$ZodObjectExtra>>;
29
+ rabbitmq: z.ZodOptional<z.ZodObject<{
30
+ enabled: z.ZodBoolean;
31
+ }, z.core.$strip, core.$ZodObjectExtra>>;
32
+ s3: z.ZodOptional<z.ZodObject<{
33
+ enabled: z.ZodBoolean;
34
+ }, z.core.$strip, core.$ZodObjectExtra>>;
35
+ postgresql: z.ZodOptional<z.ZodObject<{
36
+ enabled: z.ZodBoolean;
37
+ }, z.core.$strip, core.$ZodObjectExtra>>;
38
+ gotenberg: z.ZodOptional<z.ZodObject<{
39
+ enabled: z.ZodBoolean;
40
+ }, z.core.$strip, core.$ZodObjectExtra>>;
41
+ clamav: z.ZodOptional<z.ZodObject<{
42
+ enabled: z.ZodBoolean;
43
+ }, z.core.$strip, core.$ZodObjectExtra>>;
44
+ }, z.core.$strip, core.$ZodObjectExtra>;
45
+ auth: z.ZodObject<{
46
+ jwtAlgorithm: z.ZodDefault<z.ZodEnum<{
47
+ RS256: "RS256";
48
+ RS384: "RS384";
49
+ RS512: "RS512";
50
+ ES256: "ES256";
51
+ ES384: "ES384";
52
+ ES512: "ES512";
53
+ }>>;
54
+ accessTokenExpirationMinutes: z.ZodDefault<z.ZodNumber>;
55
+ refreshTokenExpirationDays: z.ZodDefault<z.ZodNumber>;
56
+ }, z.core.$strip, core.$ZodObjectExtra>;
57
+ }, z.core.$strip, core.$ZodObjectExtra>;
58
+ export type WildoPlatformConfig = z.infer<typeof WildoPlatformConfigSchema>;
59
+ export type WildoPlatformConfigInput = z.input<typeof WildoPlatformConfigSchema>;
60
+ /**
61
+ * Define the base platform configuration (environment-independent).
62
+ * Declares which platform services and backing services are available.
63
+ */
64
+ export declare function definePlatformConfig(config: WildoPlatformConfigInput): WildoPlatformConfig;
65
+ //# sourceMappingURL=define-platform-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-platform-config.d.ts","sourceRoot":"","sources":["../../../src/project-config/define-platform-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,qBAAqB;;;;;;;;;;;uCAIhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEzE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCAKpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAEjF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,wBAAwB,GAAG,mBAAmB,CAE1F"}
@@ -0,0 +1,22 @@
1
+ import { z } from 'zod';
2
+ import { BackingServicesDeclarationSchema } from './shared/backing-services.schemas.js';
3
+ import { PlatformServicesDeclarationSchema } from './shared/platform-services.schemas.js';
4
+ export const WildoAuthConfigSchema = z.object({
5
+ jwtAlgorithm: z.enum(['RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512']).default('RS256'),
6
+ accessTokenExpirationMinutes: z.number().int().positive().default(60),
7
+ refreshTokenExpirationDays: z.number().int().positive().default(30),
8
+ });
9
+ export const WildoPlatformConfigSchema = z.object({
10
+ version: z.number().int().positive().default(1),
11
+ platformServices: PlatformServicesDeclarationSchema,
12
+ backingServices: BackingServicesDeclarationSchema,
13
+ auth: WildoAuthConfigSchema,
14
+ });
15
+ /**
16
+ * Define the base platform configuration (environment-independent).
17
+ * Declares which platform services and backing services are available.
18
+ */
19
+ export function definePlatformConfig(config) {
20
+ return WildoPlatformConfigSchema.parse(config);
21
+ }
22
+ //# sourceMappingURL=define-platform-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-platform-config.js","sourceRoot":"","sources":["../../../src/project-config/define-platform-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AAEvF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC7F,4BAA4B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACrE,0BAA0B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACpE,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,gBAAgB,EAAE,iCAAiC;IACnD,eAAe,EAAE,gCAAgC;IACjD,IAAI,EAAE,qBAAqB;CAC5B,CAAC,CAAC;AAIH;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAgC;IACnE,OAAO,yBAAyB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { RuntimeEnvironment } from '@wildo-ai/saas-models';
2
+ import { z } from 'zod';
3
+ import { WildoDeploymentRuntime, WildoLocationType } from './shared/environment.schemas.js';
4
+ export declare const WildoPlatformEnvConfigSchema: z.ZodObject<{
5
+ environment: z.ZodString;
6
+ locationType: z.ZodOptional<z.ZodEnum<typeof WildoLocationType>>;
7
+ runtimeEnvironment: z.ZodOptional<z.ZodEnum<typeof RuntimeEnvironment>>;
8
+ runtime: z.ZodEnum<typeof WildoDeploymentRuntime>;
9
+ kubernetes: z.ZodOptional<z.ZodObject<{
10
+ namespace: z.ZodString;
11
+ baseDomain: z.ZodString;
12
+ ingressClass: z.ZodOptional<z.ZodString>;
13
+ }, z.core.$strip, core.$ZodObjectExtra>>;
14
+ remoteProvider: z.ZodOptional<z.ZodObject<{
15
+ provider: z.ZodString;
16
+ registryEndpoint: z.ZodString;
17
+ region: z.ZodOptional<z.ZodString>;
18
+ }, z.core.$strip, core.$ZodObjectExtra>>;
19
+ backingServices: z.ZodRecord<z.ZodEnum<typeof import("./index.js").BackingServiceKind>, z.ZodObject<{
20
+ source: z.ZodEnum<typeof import("./index.js").BackingServiceSource>;
21
+ provider: z.ZodOptional<z.ZodString>;
22
+ }, z.core.$strip, core.$ZodObjectExtra>>;
23
+ logging: z.ZodOptional<z.ZodObject<{
24
+ level: z.ZodDefault<z.ZodEnum<{
25
+ error: "error";
26
+ debug: "debug";
27
+ info: "info";
28
+ warn: "warn";
29
+ }>>;
30
+ formattedConsoleErrors: z.ZodOptional<z.ZodBoolean>;
31
+ }, z.core.$strip, core.$ZodObjectExtra>>;
32
+ }, z.core.$strip, core.$ZodObjectExtra>;
33
+ export type WildoPlatformEnvConfig = z.infer<typeof WildoPlatformEnvConfigSchema>;
34
+ export type WildoPlatformEnvConfigInput = z.input<typeof WildoPlatformEnvConfigSchema>;
35
+ /**
36
+ * Define a per-environment platform configuration.
37
+ * Specifies the environment id, runtime semantics, backing service sources,
38
+ * and environment-specific overrides.
39
+ */
40
+ export declare function definePlatformEnvConfig(config: WildoPlatformEnvConfigInput): WildoPlatformEnvConfig;
41
+ //# sourceMappingURL=define-platform-env-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-platform-env-config.d.ts","sourceRoot":"","sources":["../../../src/project-config/define-platform-env-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,sBAAsB,EAItB,iBAAiB,EAIlB,MAAM,8BAA8B,CAAC;AAEtC,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCAiCvC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAEvF;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,2BAA2B,GAAG,sBAAsB,CAEnG"}
@@ -0,0 +1,45 @@
1
+ import { RuntimeEnvironment } from '@wildo-ai/saas-models';
2
+ import { z } from 'zod';
3
+ import { BackingServicesEnvConfigSchema } from './shared/backing-services.schemas.js';
4
+ import { WildoDeploymentRuntime, WildoEnvironment, WildoEnvironmentIdSchema, WildoKubernetesConfigSchema, WildoLocationType, WildoLoggingConfigSchema, WildoRemoteProviderSchema, isLocalEnvironmentId, } from './shared/environment.schemas.js';
5
+ export const WildoPlatformEnvConfigSchema = z.object({
6
+ environment: WildoEnvironmentIdSchema,
7
+ locationType: z.enum(WildoLocationType).optional(),
8
+ runtimeEnvironment: z.nativeEnum(RuntimeEnvironment).optional(),
9
+ runtime: z.enum(WildoDeploymentRuntime),
10
+ kubernetes: WildoKubernetesConfigSchema.optional(),
11
+ remoteProvider: WildoRemoteProviderSchema.optional(),
12
+ backingServices: BackingServicesEnvConfigSchema,
13
+ logging: WildoLoggingConfigSchema.optional(),
14
+ }).superRefine((config, ctx) => {
15
+ if (isLocalEnvironmentId(config.environment) && config.locationType === WildoLocationType.REMOTE) {
16
+ ctx.addIssue({
17
+ code: z.ZodIssueCode.custom,
18
+ path: ['locationType'],
19
+ message: `"${WildoEnvironment.LOCAL}" environment cannot use remote locationType`,
20
+ });
21
+ }
22
+ if (!isLocalEnvironmentId(config.environment) && config.locationType === WildoLocationType.LOCAL) {
23
+ ctx.addIssue({
24
+ code: z.ZodIssueCode.custom,
25
+ path: ['locationType'],
26
+ message: 'Only the "local" environment id can use local locationType',
27
+ });
28
+ }
29
+ if (!isLocalEnvironmentId(config.environment) && !config.runtimeEnvironment) {
30
+ ctx.addIssue({
31
+ code: z.ZodIssueCode.custom,
32
+ path: ['runtimeEnvironment'],
33
+ message: 'runtimeEnvironment is required for remote environments',
34
+ });
35
+ }
36
+ });
37
+ /**
38
+ * Define a per-environment platform configuration.
39
+ * Specifies the environment id, runtime semantics, backing service sources,
40
+ * and environment-specific overrides.
41
+ */
42
+ export function definePlatformEnvConfig(config) {
43
+ return WildoPlatformEnvConfigSchema.parse(config);
44
+ }
45
+ //# sourceMappingURL=define-platform-env-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-platform-env-config.js","sourceRoot":"","sources":["../../../src/project-config/define-platform-env-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,2BAA2B,EAC3B,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,WAAW,EAAE,wBAAwB;IACrC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;IAClD,kBAAkB,EAAE,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IAC/D,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC;IACvC,UAAU,EAAE,2BAA2B,CAAC,QAAQ,EAAE;IAClD,cAAc,EAAE,yBAAyB,CAAC,QAAQ,EAAE;IACpD,eAAe,EAAE,8BAA8B;IAC/C,OAAO,EAAE,wBAAwB,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;IAC7B,IAAI,oBAAoB,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,YAAY,KAAK,iBAAiB,CAAC,MAAM,EAAE,CAAC;QACjG,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,IAAI,EAAE,CAAC,cAAc,CAAC;YACtB,OAAO,EAAE,IAAI,gBAAgB,CAAC,KAAK,8CAA8C;SAClF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,YAAY,KAAK,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACjG,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,IAAI,EAAE,CAAC,cAAc,CAAC;YACtB,OAAO,EAAE,4DAA4D;SACtE,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC5E,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,IAAI,EAAE,CAAC,oBAAoB,CAAC;YAC5B,OAAO,EAAE,wDAAwD;SAClE,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAIH;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAmC;IACzE,OAAO,4BAA4B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { z } from 'zod';
2
+ export declare const WildoProjectConfigSchema: z.ZodObject<{
3
+ version: z.ZodDefault<z.ZodNumber>;
4
+ name: z.ZodString;
5
+ projectSlug: z.ZodString;
6
+ displayName: z.ZodString;
7
+ platformPath: z.ZodString;
8
+ apps: z.ZodRecord<z.ZodString, z.ZodObject<{
9
+ path: z.ZodString;
10
+ type: z.ZodEnum<{
11
+ saas: "saas";
12
+ }>;
13
+ }, z.core.$strip, core.$ZodObjectExtra>>;
14
+ }, z.core.$strip, core.$ZodObjectExtra>;
15
+ export type WildoProjectConfig = z.infer<typeof WildoProjectConfigSchema>;
16
+ export type WildoProjectConfigInput = z.input<typeof WildoProjectConfigSchema>;
17
+ /**
18
+ * Define a Wildo project configuration.
19
+ * Provides full IDE autocompletion and runtime Zod validation.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * import { defineProjectConfig } from '@wildo-ai/platform-config-lib';
24
+ *
25
+ * export default defineProjectConfig({
26
+ * version: 1,
27
+ * name: 'wonder-todos-project',
28
+ * projectSlug: 'wonder-todos',
29
+ * displayName: 'Wonder Todos Project',
30
+ * platformPath: './wildo-platform',
31
+ * apps: {
32
+ * 'wonder-todos': { path: './wonder-todos', type: 'saas' },
33
+ * },
34
+ * });
35
+ * ```
36
+ */
37
+ export declare function defineProjectConfig(config: WildoProjectConfigInput): WildoProjectConfig;
38
+ //# sourceMappingURL=define-project-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-project-config.d.ts","sourceRoot":"","sources":["../../../src/project-config/define-project-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyBxB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;uCAUnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE/E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,uBAAuB,GAAG,kBAAkB,CAEvF"}
@@ -0,0 +1,57 @@
1
+ import { isAbsolute, normalize } from 'path';
2
+ import { z } from 'zod';
3
+ const ProjectRelativePathSchema = z.string().min(1).superRefine((value, ctx) => {
4
+ const normalizedValue = normalize(value);
5
+ if (isAbsolute(value)) {
6
+ ctx.addIssue({
7
+ code: z.ZodIssueCode.custom,
8
+ message: 'platformPath must stay relative to the project root',
9
+ });
10
+ return;
11
+ }
12
+ if (normalizedValue === '.' || normalizedValue === '') {
13
+ ctx.addIssue({
14
+ code: z.ZodIssueCode.custom,
15
+ message: 'platformPath must point to a subdirectory such as ./wildo-platform or ../shared-platform',
16
+ });
17
+ }
18
+ });
19
+ const ProjectAppKeySchema = z
20
+ .string()
21
+ .min(1)
22
+ .regex(/^[a-z0-9-]+$/, 'app keys must be lowercase alphanumeric with hyphens');
23
+ export const WildoProjectConfigSchema = z.object({
24
+ version: z.number().int().positive().default(1),
25
+ name: z.string().min(1),
26
+ projectSlug: z.string().min(1).regex(/^[a-z0-9-]+$/, 'projectSlug must be lowercase alphanumeric with hyphens'),
27
+ displayName: z.string().min(1),
28
+ platformPath: ProjectRelativePathSchema,
29
+ apps: z.record(ProjectAppKeySchema, z.object({
30
+ path: z.string().min(1),
31
+ type: z.enum(['saas']),
32
+ })),
33
+ });
34
+ /**
35
+ * Define a Wildo project configuration.
36
+ * Provides full IDE autocompletion and runtime Zod validation.
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * import { defineProjectConfig } from '@wildo-ai/platform-config-lib';
41
+ *
42
+ * export default defineProjectConfig({
43
+ * version: 1,
44
+ * name: 'wonder-todos-project',
45
+ * projectSlug: 'wonder-todos',
46
+ * displayName: 'Wonder Todos Project',
47
+ * platformPath: './wildo-platform',
48
+ * apps: {
49
+ * 'wonder-todos': { path: './wonder-todos', type: 'saas' },
50
+ * },
51
+ * });
52
+ * ```
53
+ */
54
+ export function defineProjectConfig(config) {
55
+ return WildoProjectConfigSchema.parse(config);
56
+ }
57
+ //# sourceMappingURL=define-project-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-project-config.js","sourceRoot":"","sources":["../../../src/project-config/define-project-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IAC7E,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,qDAAqD;SAC/D,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,eAAe,KAAK,GAAG,IAAI,eAAe,KAAK,EAAE,EAAE,CAAC;QACtD,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,0FAA0F;SACpG,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,KAAK,CAAC,cAAc,EAAE,sDAAsD,CAAC,CAAC;AAEjF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,yDAAyD,CAAC;IAC/G,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,YAAY,EAAE,yBAAyB;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;KACvB,CAAC,CAAC;CACJ,CAAC,CAAC;AAIH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAA+B;IACjE,OAAO,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,252 @@
1
+ import { ExternalProvider_ExchangeProtocol_Kind } from '@wildo-ai/external-connectors-models';
2
+ import { z } from 'zod';
3
+ import { EngineCapability } from '@wildo-ai/saas-models';
4
+ /**
5
+ * Capability binding in the app config.
6
+ * Declares whether a capability is enabled, its lifecycle scope,
7
+ * and which provider(s) back it.
8
+ *
9
+ * Provider refs are validated at CLI evaluation time against the
10
+ * external-connectors catalog to ensure the provider actually supports
11
+ * the declared capability.
12
+ *
13
+ * - `runtime` = app needs this at runtime (mandatory for production)
14
+ * - `tooling` = dev tooling needs this (companion, CLI, agents)
15
+ * - `servicesRestrictions` = per-service provider overrides
16
+ * (omitted services get the default; empty array = unavailable for that service)
17
+ */
18
+ export declare const CapabilityBindingSchema: z.ZodObject<{
19
+ enabled: z.ZodBoolean;
20
+ runtime: z.ZodDefault<z.ZodBoolean>;
21
+ tooling: z.ZodDefault<z.ZodBoolean>;
22
+ provider: z.ZodOptional<z.ZodString>;
23
+ providers: z.ZodOptional<z.ZodArray<z.ZodString>>;
24
+ required: z.ZodOptional<z.ZodBoolean>;
25
+ servicesRestrictions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
26
+ }, z.core.$strip, core.$ZodObjectExtra>;
27
+ export type CapabilityBinding = z.infer<typeof CapabilityBindingSchema>;
28
+ export type CapabilityBindingInput = z.input<typeof CapabilityBindingSchema>;
29
+ export declare const ExternalProvidersConfigurationsSchema: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodRecord<z.ZodEnum<typeof ExternalProvider_ExchangeProtocol_Kind> & z.core.$partial, z.ZodUnion<readonly [z.ZodObject<{
30
+ enabled: z.ZodBoolean;
31
+ authConfig: z.ZodOptional<z.ZodObject<{
32
+ authKind: z.ZodEnum<typeof import("@wildo-ai/external-connectors-models").ExternalProvider_Auth_Kind>;
33
+ profileRefs: z.ZodOptional<z.ZodArray<z.ZodString>>;
34
+ isDefault: z.ZodOptional<z.ZodBoolean>;
35
+ secretRef: z.ZodString;
36
+ }, z.core.$strip>>;
37
+ rateLimitConfig: z.ZodOptional<z.ZodObject<{
38
+ maxConcurrent: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
39
+ minTime: z.ZodOptional<z.ZodNumber>;
40
+ reservoir: z.ZodOptional<z.ZodNumber>;
41
+ reservoirRefreshInterval: z.ZodOptional<z.ZodNumber>;
42
+ reservoirRefreshAmount: z.ZodOptional<z.ZodNumber>;
43
+ priority: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
44
+ }, z.core.$strip>>;
45
+ defaultExecutionProfileRef: z.ZodOptional<z.ZodString>;
46
+ executionProfiles: z.ZodRecord<z.ZodString, z.ZodObject<{
47
+ runnerHost: z.ZodDefault<z.ZodEnum<typeof import("@wildo-ai/external-connectors-models").CLIRuntime_RunnerHost>>;
48
+ command: z.ZodString;
49
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
50
+ inheritedEnvironmentVariables: z.ZodOptional<z.ZodArray<z.ZodString>>;
51
+ authMode: z.ZodEnum<typeof import("@wildo-ai/external-connectors-models").CLIRuntime_AuthMode>;
52
+ secretRef: z.ZodOptional<z.ZodString>;
53
+ secretEnvVarName: z.ZodOptional<z.ZodString>;
54
+ allowedApplicationEnvironments: z.ZodArray<z.ZodEnum<typeof import("@wildo-ai/external-connectors-models").APPLICATION_ENVIRONMENT>>;
55
+ allowedPlatformEnvironmentIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
56
+ workspaceRootPath: z.ZodString;
57
+ workingDirectoryPolicy: z.ZodDefault<z.ZodEnum<typeof import("@wildo-ai/external-connectors-models").CLIRuntime_WorkingDirectoryPolicy>>;
58
+ workingDirectoryRelativePath: z.ZodOptional<z.ZodString>;
59
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
60
+ outputParserMode: z.ZodDefault<z.ZodEnum<typeof import("@wildo-ai/external-connectors-models").CLIRuntime_OutputParserMode>>;
61
+ }, z.core.$strip>>;
62
+ }, z.core.$strip, core.$ZodObjectExtra>, z.ZodObject<{
63
+ enabled: z.ZodBoolean;
64
+ authConfig: z.ZodOptional<z.ZodObject<{
65
+ authKind: z.ZodEnum<typeof import("@wildo-ai/external-connectors-models").ExternalProvider_Auth_Kind>;
66
+ profileRefs: z.ZodOptional<z.ZodArray<z.ZodString>>;
67
+ isDefault: z.ZodOptional<z.ZodBoolean>;
68
+ secretRef: z.ZodString;
69
+ }, z.core.$strip>>;
70
+ rateLimitConfig: z.ZodOptional<z.ZodObject<{
71
+ maxConcurrent: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
72
+ minTime: z.ZodOptional<z.ZodNumber>;
73
+ reservoir: z.ZodOptional<z.ZodNumber>;
74
+ reservoirRefreshInterval: z.ZodOptional<z.ZodNumber>;
75
+ reservoirRefreshAmount: z.ZodOptional<z.ZodNumber>;
76
+ priority: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
77
+ }, z.core.$strip>>;
78
+ }, z.core.$strip, core.$ZodObjectExtra>]>>>>>>;
79
+ export type ExternalProvidersConfigurations = z.infer<typeof ExternalProvidersConfigurationsSchema>;
80
+ export type ExternalProvidersConfigurationsInput = z.input<typeof ExternalProvidersConfigurationsSchema>;
81
+ declare const AppFeaturesSchema: z.ZodObject<{
82
+ organizations: z.ZodDefault<z.ZodBoolean>;
83
+ billing: z.ZodDefault<z.ZodBoolean>;
84
+ multiLanguage: z.ZodDefault<z.ZodBoolean>;
85
+ compliance: z.ZodOptional<z.ZodObject<{
86
+ auditTrail: z.ZodDefault<z.ZodBoolean>;
87
+ gdpr: z.ZodDefault<z.ZodBoolean>;
88
+ }, z.core.$strip, core.$ZodObjectExtra>>;
89
+ }, z.core.$strip, core.$ZodObjectExtra>;
90
+ export type AppFeatures = z.infer<typeof AppFeaturesSchema>;
91
+ declare const BootstrapFirstAdminSeedSchema: z.ZodObject<{
92
+ userTypes: z.ZodArray<z.ZodString>;
93
+ }, z.core.$strip, core.$ZodObjectExtra>;
94
+ export type BootstrapFirstAdminSeed = z.infer<typeof BootstrapFirstAdminSeedSchema>;
95
+ declare const AppBootstrapSchema: z.ZodObject<{
96
+ firstAdmin: z.ZodOptional<z.ZodObject<{
97
+ userTypes: z.ZodArray<z.ZodString>;
98
+ }, z.core.$strip, core.$ZodObjectExtra>>;
99
+ }, z.core.$strip, core.$ZodObjectExtra>;
100
+ export type AppBootstrap = z.infer<typeof AppBootstrapSchema>;
101
+ export declare const WildoSaasConfigSchema: z.ZodObject<{
102
+ version: z.ZodDefault<z.ZodNumber>;
103
+ name: z.ZodString;
104
+ slug: z.ZodString;
105
+ displayName: z.ZodString;
106
+ description: z.ZodOptional<z.ZodString>;
107
+ type: z.ZodLiteral<"saas">;
108
+ services: z.ZodRecord<z.ZodString, z.ZodObject<{
109
+ path: z.ZodString;
110
+ serviceName: z.ZodString;
111
+ defaultPort: z.ZodOptional<z.ZodNumber>;
112
+ frontendType: z.ZodOptional<z.ZodEnum<typeof import("./index.js").AppFrontendType>>;
113
+ }, z.core.$strict, core.$ZodObjectExtra>>;
114
+ modules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
115
+ services: z.ZodArray<z.ZodString>;
116
+ }, z.core.$strip, core.$ZodObjectExtra>>>;
117
+ minions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
118
+ path: z.ZodString;
119
+ }, z.core.$strip, core.$ZodObjectExtra>>>;
120
+ workers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
121
+ path: z.ZodString;
122
+ }, z.core.$strip, core.$ZodObjectExtra>>>;
123
+ capabilities: z.ZodOptional<z.ZodRecord<z.ZodEnum<typeof EngineCapability> & z.core.$partial, z.ZodObject<{
124
+ enabled: z.ZodBoolean;
125
+ runtime: z.ZodDefault<z.ZodBoolean>;
126
+ tooling: z.ZodDefault<z.ZodBoolean>;
127
+ provider: z.ZodOptional<z.ZodString>;
128
+ providers: z.ZodOptional<z.ZodArray<z.ZodString>>;
129
+ required: z.ZodOptional<z.ZodBoolean>;
130
+ servicesRestrictions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
131
+ }, z.core.$strip, core.$ZodObjectExtra>>>;
132
+ externalProvidersConfigurations: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodRecord<z.ZodEnum<typeof ExternalProvider_ExchangeProtocol_Kind> & z.core.$partial, z.ZodUnion<readonly [z.ZodObject<{
133
+ enabled: z.ZodBoolean;
134
+ authConfig: z.ZodOptional<z.ZodObject<{
135
+ authKind: z.ZodEnum<typeof import("@wildo-ai/external-connectors-models").ExternalProvider_Auth_Kind>;
136
+ profileRefs: z.ZodOptional<z.ZodArray<z.ZodString>>;
137
+ isDefault: z.ZodOptional<z.ZodBoolean>;
138
+ secretRef: z.ZodString;
139
+ }, z.core.$strip>>;
140
+ rateLimitConfig: z.ZodOptional<z.ZodObject<{
141
+ maxConcurrent: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
142
+ minTime: z.ZodOptional<z.ZodNumber>;
143
+ reservoir: z.ZodOptional<z.ZodNumber>;
144
+ reservoirRefreshInterval: z.ZodOptional<z.ZodNumber>;
145
+ reservoirRefreshAmount: z.ZodOptional<z.ZodNumber>;
146
+ priority: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
147
+ }, z.core.$strip>>;
148
+ defaultExecutionProfileRef: z.ZodOptional<z.ZodString>;
149
+ executionProfiles: z.ZodRecord<z.ZodString, z.ZodObject<{
150
+ runnerHost: z.ZodDefault<z.ZodEnum<typeof import("@wildo-ai/external-connectors-models").CLIRuntime_RunnerHost>>;
151
+ command: z.ZodString;
152
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
153
+ inheritedEnvironmentVariables: z.ZodOptional<z.ZodArray<z.ZodString>>;
154
+ authMode: z.ZodEnum<typeof import("@wildo-ai/external-connectors-models").CLIRuntime_AuthMode>;
155
+ secretRef: z.ZodOptional<z.ZodString>;
156
+ secretEnvVarName: z.ZodOptional<z.ZodString>;
157
+ allowedApplicationEnvironments: z.ZodArray<z.ZodEnum<typeof import("@wildo-ai/external-connectors-models").APPLICATION_ENVIRONMENT>>;
158
+ allowedPlatformEnvironmentIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
159
+ workspaceRootPath: z.ZodString;
160
+ workingDirectoryPolicy: z.ZodDefault<z.ZodEnum<typeof import("@wildo-ai/external-connectors-models").CLIRuntime_WorkingDirectoryPolicy>>;
161
+ workingDirectoryRelativePath: z.ZodOptional<z.ZodString>;
162
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
163
+ outputParserMode: z.ZodDefault<z.ZodEnum<typeof import("@wildo-ai/external-connectors-models").CLIRuntime_OutputParserMode>>;
164
+ }, z.core.$strip>>;
165
+ }, z.core.$strip, core.$ZodObjectExtra>, z.ZodObject<{
166
+ enabled: z.ZodBoolean;
167
+ authConfig: z.ZodOptional<z.ZodObject<{
168
+ authKind: z.ZodEnum<typeof import("@wildo-ai/external-connectors-models").ExternalProvider_Auth_Kind>;
169
+ profileRefs: z.ZodOptional<z.ZodArray<z.ZodString>>;
170
+ isDefault: z.ZodOptional<z.ZodBoolean>;
171
+ secretRef: z.ZodString;
172
+ }, z.core.$strip>>;
173
+ rateLimitConfig: z.ZodOptional<z.ZodObject<{
174
+ maxConcurrent: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
175
+ minTime: z.ZodOptional<z.ZodNumber>;
176
+ reservoir: z.ZodOptional<z.ZodNumber>;
177
+ reservoirRefreshInterval: z.ZodOptional<z.ZodNumber>;
178
+ reservoirRefreshAmount: z.ZodOptional<z.ZodNumber>;
179
+ priority: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
180
+ }, z.core.$strip>>;
181
+ }, z.core.$strip, core.$ZodObjectExtra>]>>>>>>;
182
+ features: z.ZodObject<{
183
+ organizations: z.ZodDefault<z.ZodBoolean>;
184
+ billing: z.ZodDefault<z.ZodBoolean>;
185
+ multiLanguage: z.ZodDefault<z.ZodBoolean>;
186
+ compliance: z.ZodOptional<z.ZodObject<{
187
+ auditTrail: z.ZodDefault<z.ZodBoolean>;
188
+ gdpr: z.ZodDefault<z.ZodBoolean>;
189
+ }, z.core.$strip, core.$ZodObjectExtra>>;
190
+ }, z.core.$strip, core.$ZodObjectExtra>;
191
+ bootstrap: z.ZodOptional<z.ZodObject<{
192
+ firstAdmin: z.ZodOptional<z.ZodObject<{
193
+ userTypes: z.ZodArray<z.ZodString>;
194
+ }, z.core.$strip, core.$ZodObjectExtra>>;
195
+ }, z.core.$strip, core.$ZodObjectExtra>>;
196
+ dataServices: z.ZodObject<{
197
+ mongodb: z.ZodOptional<z.ZodObject<{
198
+ databasePrefix: z.ZodString;
199
+ }, z.core.$strip, core.$ZodObjectExtra>>;
200
+ redis: z.ZodOptional<z.ZodObject<{
201
+ keyPrefix: z.ZodString;
202
+ }, z.core.$strip, core.$ZodObjectExtra>>;
203
+ rabbitmq: z.ZodOptional<z.ZodObject<{
204
+ vhost: z.ZodString;
205
+ }, z.core.$strip, core.$ZodObjectExtra>>;
206
+ s3: z.ZodOptional<z.ZodObject<{
207
+ bucketPrefix: z.ZodString;
208
+ }, z.core.$strip, core.$ZodObjectExtra>>;
209
+ postgresql: z.ZodOptional<z.ZodObject<{
210
+ databasePrefix: z.ZodString;
211
+ }, z.core.$strip, core.$ZodObjectExtra>>;
212
+ }, z.core.$strip, core.$ZodObjectExtra>;
213
+ }, z.core.$strip, core.$ZodObjectExtra>;
214
+ export type WildoSaasConfig = z.infer<typeof WildoSaasConfigSchema>;
215
+ export type WildoSaasConfigInput = z.input<typeof WildoSaasConfigSchema>;
216
+ /**
217
+ * Define a SaaS application configuration.
218
+ * Provides full IDE autocompletion for capabilities (via EngineCapability enum),
219
+ * features, services, and data services.
220
+ *
221
+ * @example
222
+ * ```ts
223
+ * import { defineSaasConfig } from '@wildo-ai/platform-config-lib';
224
+ * import { EngineCapability } from '@wildo-ai/saas-models';
225
+ *
226
+ * export default defineSaasConfig({
227
+ * version: 1,
228
+ * name: 'wonder-todos',
229
+ * slug: 'wonder-todos',
230
+ * displayName: 'Wonder Todos',
231
+ * type: 'saas',
232
+ * capabilities: {
233
+ * [EngineCapability.EMAIL_TRANSACTIONAL]: {
234
+ * enabled: true,
235
+ * runtime: true, // optional, defaults to false
236
+ * provider: 'resend',
237
+ * },
238
+ * [EngineCapability.SMS]: { enabled: false },
239
+ * [EngineCapability.AI_LLM]: {
240
+ * enabled: true,
241
+ * runtime: true,
242
+ * tooling: true, // optional, defaults to false
243
+ * providers: ['openai', 'anthropic'],
244
+ * },
245
+ * },
246
+ * // ...
247
+ * });
248
+ * ```
249
+ */
250
+ export declare function defineSaasConfig(config: WildoSaasConfigInput): WildoSaasConfig;
251
+ export {};
252
+ //# sourceMappingURL=define-saas-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-saas-config.d.ts","sourceRoot":"","sources":["../../../src/project-config/define-saas-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,sCAAsC,EACvC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAKzD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;uCAoBlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE7E,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CASlB,CAAC;AACjC,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AACpG,MAAM,MAAM,oCAAoC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAEzG,QAAA,MAAM,iBAAiB;;;;;;;;uCAQrB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,QAAA,MAAM,6BAA6B;;uCAEjC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,QAAA,MAAM,kBAAkB;;;;uCAEtB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCA+ChC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,GAAG,eAAe,CAE9E"}