@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 @@
1
+ {"version":3,"file":"platform-application-config.schemas.js","sourceRoot":"","sources":["../../../src/schemas/platform-application-config.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC,MAAM,CAAC;IACzD,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC,cAAc,EAAE,CAAC,iBAAiB,EAAE;IAEnG,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEtD,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3D,CAAC,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Platform Application Secrets Schema
4
+ *
5
+ * This schema defines all secrets for platform microservices.
6
+ * These secrets are stored in MongoDB and fetched by platform services via the
7
+ * GET /platform-services-to-manager/config-secrets endpoint.
8
+ *
9
+ * Structure:
10
+ * - primarySecret: The primary authentication secret for the service
11
+ * - jwt: Private/public keys for JWT signing/verification
12
+ * - redis: Redis ACL credentials
13
+ * - rabbitmq: RabbitMQ user credentials
14
+ * - mongo: MongoDB connection credentials (optional, for services that need direct DB access)
15
+ * - storage: S3/MinIO credentials (optional, for services that need storage access)
16
+ */
17
+ export declare const Platform_Application_Secrets_Schema: z.ZodObject<{
18
+ platformApplicationId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>>;
19
+ primarySecret: z.ZodOptional<z.ZodString>;
20
+ jwt: z.ZodObject<{
21
+ privateKey: z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodString>>;
22
+ publicKey: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodString>>>;
23
+ }, z.core.$strip, core.$ZodObjectExtra>;
24
+ redis: z.ZodOptional<z.ZodObject<{
25
+ username: z.ZodString;
26
+ password: z.ZodString;
27
+ }, z.core.$strip, core.$ZodObjectExtra>>;
28
+ rabbitmq: z.ZodOptional<z.ZodObject<{
29
+ username: z.ZodString;
30
+ password: z.ZodString;
31
+ vhost: z.ZodDefault<z.ZodString>;
32
+ }, z.core.$strip, core.$ZodObjectExtra>>;
33
+ mongo: z.ZodOptional<z.ZodObject<{
34
+ username: z.ZodOptional<z.ZodString>;
35
+ password: z.ZodOptional<z.ZodString>;
36
+ databaseName: z.ZodOptional<z.ZodString>;
37
+ connectUrl: z.ZodOptional<z.ZodString>;
38
+ }, z.core.$strip, core.$ZodObjectExtra>>;
39
+ postgresql: z.ZodOptional<z.ZodObject<{
40
+ host: z.ZodOptional<z.ZodString>;
41
+ port: z.ZodDefault<z.ZodNumber>;
42
+ username: z.ZodOptional<z.ZodString>;
43
+ password: z.ZodOptional<z.ZodString>;
44
+ databaseName: z.ZodOptional<z.ZodString>;
45
+ connectUrl: z.ZodOptional<z.ZodString>;
46
+ }, z.core.$strip, core.$ZodObjectExtra>>;
47
+ storage: z.ZodOptional<z.ZodObject<{
48
+ accessKey: z.ZodString;
49
+ secretKey: z.ZodString;
50
+ bucket: z.ZodOptional<z.ZodString>;
51
+ }, z.core.$strip, core.$ZodObjectExtra>>;
52
+ }, z.core.$strip, core.$ZodObjectExtra>;
53
+ export type Platform_Application_Secrets = z.infer<typeof Platform_Application_Secrets_Schema>;
54
+ //# sourceMappingURL=platform-application-secrets.schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-application-secrets.schemas.d.ts","sourceRoot":"","sources":["../../../src/schemas/platform-application-secrets.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCAwD9C,CAAC;AAEH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC"}
@@ -0,0 +1,67 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Platform Application Secrets Schema
4
+ *
5
+ * This schema defines all secrets for platform microservices.
6
+ * These secrets are stored in MongoDB and fetched by platform services via the
7
+ * GET /platform-services-to-manager/config-secrets endpoint.
8
+ *
9
+ * Structure:
10
+ * - primarySecret: The primary authentication secret for the service
11
+ * - jwt: Private/public keys for JWT signing/verification
12
+ * - redis: Redis ACL credentials
13
+ * - rabbitmq: RabbitMQ user credentials
14
+ * - mongo: MongoDB connection credentials (optional, for services that need direct DB access)
15
+ * - storage: S3/MinIO credentials (optional, for services that need storage access)
16
+ */
17
+ export const Platform_Application_Secrets_Schema = z.object({
18
+ platformApplicationId: z.string().isDBIndexed().isForeignKey().isSummaryField().excludeFromUpdate(),
19
+ // Primary authentication secret for inter-service auth
20
+ primarySecret: z.string().min(1).optional(),
21
+ // JWT private/public keys for signing/verification
22
+ jwt: z.object({
23
+ privateKey: z.record(z.string(), z.string().min(1).optional()),
24
+ publicKey: z.record(z.string(), z.string().min(1).optional()).optional(),
25
+ }),
26
+ // Redis ACL credentials
27
+ redis: z.object({
28
+ username: z.string().min(1),
29
+ password: z.string().min(1),
30
+ }).optional(),
31
+ // RabbitMQ user credentials
32
+ rabbitmq: z.object({
33
+ username: z.string().min(1),
34
+ password: z.string().min(1),
35
+ vhost: z.string().default('/'),
36
+ }).optional(),
37
+ // MongoDB credentials (for services that need direct DB access)
38
+ mongo: z.object({
39
+ username: z.string().min(1).optional(),
40
+ password: z.string().min(1).optional(),
41
+ databaseName: z.string().min(1).optional(),
42
+ // Full connection URL (alternative to username/password)
43
+ connectUrl: z.string().min(1).optional(),
44
+ }).optional(),
45
+ // PostgreSQL credentials (for services that need PostgreSQL access)
46
+ postgresql: z.object({
47
+ /** PostgreSQL host */
48
+ host: z.string().min(1).optional(),
49
+ /** PostgreSQL port (default: 5432) */
50
+ port: z.number().int().default(5432),
51
+ /** Database username */
52
+ username: z.string().min(1).optional(),
53
+ /** Database password */
54
+ password: z.string().min(1).optional(),
55
+ /** Database name */
56
+ databaseName: z.string().min(1).optional(),
57
+ /** Full connection URL (alternative to individual fields) */
58
+ connectUrl: z.string().min(1).optional(),
59
+ }).optional(),
60
+ // S3/MinIO storage credentials (for services that need storage access)
61
+ storage: z.object({
62
+ accessKey: z.string().min(1),
63
+ secretKey: z.string().min(1),
64
+ bucket: z.string().min(1).optional(),
65
+ }).optional(),
66
+ });
67
+ //# sourceMappingURL=platform-application-secrets.schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-application-secrets.schemas.js","sourceRoot":"","sources":["../../../src/schemas/platform-application-secrets.schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { z } from "zod";
2
+ export declare const AppsManagerStaticConfigurationSchema: z.ZodObject<{
3
+ githubActionMetaUrl: z.ZodOptional<z.ZodURL>;
4
+ }, z.core.$strip, core.$ZodObjectExtra>;
5
+ export type AppsManagerStaticConfig = z.infer<typeof AppsManagerStaticConfigurationSchema>;
6
+ /**
7
+ * Apps-manager runtime config: base Platform_Application_Config + platformServices from env.
8
+ * Apps-manager is the only service that stores/manages jwtPublicKeys in MongoDB;
9
+ * all other platform services get them via the fetch endpoint.
10
+ */
11
+ export declare const AppsManagerConfig_Schema: z.ZodObject<{
12
+ platformApplicationId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>>;
13
+ jwtPublicKeys: z.ZodRecord<z.ZodString, z.ZodString>;
14
+ customConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
15
+ platformServices: z.ZodObject<{
16
+ appsManager: z.ZodURL;
17
+ fileGenerator: z.ZodURL;
18
+ crontabsBatchesManager: z.ZodURL;
19
+ }, z.core.$strip, core.$ZodObjectExtra>;
20
+ }, z.core.$strip, core.$ZodObjectExtra>;
21
+ export declare const AppsManagerSecrets_Schema: z.ZodObject<{
22
+ platformApplicationId: import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<import("@wildo-ai/zod-decorators").DecoratedPrimitiveZodType<z.ZodString>>>>;
23
+ primarySecret: z.ZodOptional<z.ZodString>;
24
+ jwt: z.ZodObject<{
25
+ privateKey: z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodString>>;
26
+ publicKey: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodString>>>;
27
+ }, z.core.$strip, core.$ZodObjectExtra>;
28
+ redis: z.ZodOptional<z.ZodObject<{
29
+ username: z.ZodString;
30
+ password: z.ZodString;
31
+ }, z.core.$strip, core.$ZodObjectExtra>>;
32
+ rabbitmq: z.ZodOptional<z.ZodObject<{
33
+ username: z.ZodString;
34
+ password: z.ZodString;
35
+ vhost: z.ZodDefault<z.ZodString>;
36
+ }, z.core.$strip, core.$ZodObjectExtra>>;
37
+ postgresql: z.ZodOptional<z.ZodObject<{
38
+ host: z.ZodOptional<z.ZodString>;
39
+ port: z.ZodDefault<z.ZodNumber>;
40
+ username: z.ZodOptional<z.ZodString>;
41
+ password: z.ZodOptional<z.ZodString>;
42
+ databaseName: z.ZodOptional<z.ZodString>;
43
+ connectUrl: z.ZodOptional<z.ZodString>;
44
+ }, z.core.$strip, core.$ZodObjectExtra>>;
45
+ storage: z.ZodOptional<z.ZodObject<{
46
+ accessKey: z.ZodString;
47
+ secretKey: z.ZodString;
48
+ bucket: z.ZodOptional<z.ZodString>;
49
+ }, z.core.$strip, core.$ZodObjectExtra>>;
50
+ mongo: z.ZodObject<{
51
+ atlas: z.ZodOptional<z.ZodObject<{
52
+ publicKey: z.ZodString;
53
+ privateKey: z.ZodString;
54
+ }, z.core.$strip, core.$ZodObjectExtra>>;
55
+ connectUrl: z.ZodURL;
56
+ }, z.core.$strip, core.$ZodObjectExtra>;
57
+ }, z.core.$strip, core.$ZodObjectExtra>;
58
+ export type AppsManagerConfig = z.infer<typeof AppsManagerConfig_Schema>;
59
+ export type AppsManagerSecrets = z.infer<typeof AppsManagerSecrets_Schema>;
60
+ export type AppsManagerAtlasRuntimeConfig = {
61
+ baseUrl: string;
62
+ projectId: string;
63
+ publicKey: string;
64
+ privateKey: string;
65
+ };
66
+ //# sourceMappingURL=platform-config.schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-config.schemas.d.ts","sourceRoot":"","sources":["../../../src/schemas/platform-config.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,oCAAoC;;uCAE/C,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAE3F;;;;GAIG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;uCAOnC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCAQpC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AACzE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE3E,MAAM,MAAM,6BAA6B,GAAG;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { z } from "zod";
2
+ import { Platform_Application_Config_Schema } from "./platform-application-config.schemas.js";
3
+ import { Platform_Application_Secrets_Schema } from "./platform-application-secrets.schemas.js";
4
+ export const AppsManagerStaticConfigurationSchema = z.object({
5
+ githubActionMetaUrl: z.url().optional(),
6
+ });
7
+ /**
8
+ * Apps-manager runtime config: base Platform_Application_Config + platformServices from env.
9
+ * Apps-manager is the only service that stores/manages jwtPublicKeys in MongoDB;
10
+ * all other platform services get them via the fetch endpoint.
11
+ */
12
+ export const AppsManagerConfig_Schema = Platform_Application_Config_Schema.extend({
13
+ platformServices: z.object({
14
+ appsManager: z.url(),
15
+ fileGenerator: z.url(),
16
+ crontabsBatchesManager: z.url(),
17
+ }),
18
+ });
19
+ export const AppsManagerSecrets_Schema = Platform_Application_Secrets_Schema.extend({
20
+ mongo: z.object({
21
+ atlas: z.object({
22
+ publicKey: z.string().min(1),
23
+ privateKey: z.string().min(1),
24
+ }).optional(),
25
+ connectUrl: z.url(),
26
+ })
27
+ });
28
+ //# sourceMappingURL=platform-config.schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-config.schemas.js","sourceRoot":"","sources":["../../../src/schemas/platform-config.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kCAAkC,EAAE,MAAM,uCAAuC,CAAC;AAC3F,OAAO,EAAE,mCAAmC,EAAE,MAAM,wCAAwC,CAAC;AAE7F,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3D,mBAAmB,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC;AAIH;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,kCAAkC,CAAC,MAAM,CAAC;IAChF,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC;QACzB,WAAW,EAAE,CAAC,CAAC,GAAG,EAAE;QACpB,aAAa,EAAE,CAAC,CAAC,GAAG,EAAE;QACtB,sBAAsB,EAAE,CAAC,CAAC,GAAG,EAAE;KAEhC,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,mCAAmC,CAAC,MAAM,CAAC;IAClF,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SAC9B,CAAC,CAAC,QAAQ,EAAE;QACb,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE;KACpB,CAAC;CACH,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './workspace-scope.schemas.js';
2
+ export * from './workspace-scope-detector.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/workspace-scope/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './workspace-scope.schemas.js';
2
+ export * from './workspace-scope-detector.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/workspace-scope/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { WorkspaceScopeResult } from './workspace-scope.schemas.js';
2
+ /**
3
+ * Resolves the workspace scope from a given working directory.
4
+ *
5
+ * Performs a single upward traversal from `cwd`, checking for config file
6
+ * anchors at each directory level. All found anchors are recorded — the
7
+ * most specific one determines the final scope.
8
+ *
9
+ * After the walk-up, checks for `~/.wildo` to determine global context.
10
+ *
11
+ * @param cwd - Starting directory (defaults to `process.cwd()`)
12
+ * @returns Fully resolved scope result with all discovered paths
13
+ */
14
+ export declare function resolveWorkspaceScope(cwd?: string): WorkspaceScopeResult;
15
+ //# sourceMappingURL=workspace-scope-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-scope-detector.d.ts","sourceRoot":"","sources":["../../../src/workspace-scope/workspace-scope-detector.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAItE;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,GAAE,MAAsB,GAAG,oBAAoB,CAsDvF"}
@@ -0,0 +1,87 @@
1
+ import { existsSync, statSync } from 'fs';
2
+ import { join, resolve } from 'path';
3
+ import { WorkspaceScope, WORKSPACE_CONFIG_NAMES, resolveGlobalPreferencesPath, } from './workspace-scope.schemas.js';
4
+ const MAX_WALK_UP_LEVELS = 20;
5
+ /**
6
+ * Resolves the workspace scope from a given working directory.
7
+ *
8
+ * Performs a single upward traversal from `cwd`, checking for config file
9
+ * anchors at each directory level. All found anchors are recorded — the
10
+ * most specific one determines the final scope.
11
+ *
12
+ * After the walk-up, checks for `~/.wildo` to determine global context.
13
+ *
14
+ * @param cwd - Starting directory (defaults to `process.cwd()`)
15
+ * @returns Fully resolved scope result with all discovered paths
16
+ */
17
+ export function resolveWorkspaceScope(cwd = process.cwd()) {
18
+ const result = {
19
+ scope: WorkspaceScope.UNINITIALIZED,
20
+ saasConfigPath: null,
21
+ saasRoot: null,
22
+ projectConfigPath: null,
23
+ projectRoot: null,
24
+ frameworkRoot: null,
25
+ globalPreferencesPath: null,
26
+ };
27
+ let dir = resolve(cwd);
28
+ for (let i = 0; i < MAX_WALK_UP_LEVELS; i++) {
29
+ if (!result.saasConfigPath) {
30
+ const saasCandidate = join(dir, WORKSPACE_CONFIG_NAMES.SAAS);
31
+ if (existsSync(saasCandidate)) {
32
+ result.saasConfigPath = saasCandidate;
33
+ result.saasRoot = dir;
34
+ }
35
+ }
36
+ if (!result.projectConfigPath) {
37
+ const projectCandidate = join(dir, WORKSPACE_CONFIG_NAMES.PROJECT);
38
+ if (existsSync(projectCandidate)) {
39
+ result.projectConfigPath = projectCandidate;
40
+ result.projectRoot = dir;
41
+ }
42
+ }
43
+ if (!result.frameworkRoot) {
44
+ const frameworkCandidate = join(dir, WORKSPACE_CONFIG_NAMES.FRAMEWORK_DIR);
45
+ if (existsSync(frameworkCandidate) && isDirectory(frameworkCandidate)) {
46
+ result.frameworkRoot = dir;
47
+ }
48
+ }
49
+ if (result.saasConfigPath && result.projectConfigPath && result.frameworkRoot) {
50
+ break;
51
+ }
52
+ const parent = resolve(dir, '..');
53
+ if (parent === dir)
54
+ break;
55
+ dir = parent;
56
+ }
57
+ const globalPreferencesPath = resolveGlobalPreferencesPath();
58
+ if (existsSync(globalPreferencesPath)) {
59
+ result.globalPreferencesPath = globalPreferencesPath;
60
+ }
61
+ result.scope = computeScope(result);
62
+ return result;
63
+ }
64
+ /**
65
+ * Determines the most specific scope from the resolved anchors.
66
+ * Order: SAAS_APP > PROJECT > FRAMEWORK > GLOBAL > UNINITIALIZED
67
+ */
68
+ function computeScope(result) {
69
+ if (result.saasConfigPath)
70
+ return WorkspaceScope.SAAS_APP;
71
+ if (result.projectConfigPath)
72
+ return WorkspaceScope.PROJECT;
73
+ if (result.frameworkRoot)
74
+ return WorkspaceScope.FRAMEWORK;
75
+ if (result.globalPreferencesPath)
76
+ return WorkspaceScope.GLOBAL;
77
+ return WorkspaceScope.UNINITIALIZED;
78
+ }
79
+ function isDirectory(path) {
80
+ try {
81
+ return statSync(path).isDirectory();
82
+ }
83
+ catch {
84
+ return false;
85
+ }
86
+ }
87
+ //# sourceMappingURL=workspace-scope-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-scope-detector.js","sourceRoot":"","sources":["../../../src/workspace-scope/workspace-scope-detector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Workspace scope detection types.
3
+ *
4
+ * Provides a hierarchical scope model for determining where a tool
5
+ * (CLI, companion, IDE extension) is being invoked from within the
6
+ * Wildo project structure.
7
+ *
8
+ * Scope hierarchy (most specific wins, each implies parent scopes):
9
+ * UNINITIALIZED → GLOBAL → FRAMEWORK → PROJECT → SAAS_APP
10
+ *
11
+ * Detection is based on committed config files as scope anchors,
12
+ * NOT on generated dot-directories (.wildo-project, .wildo-saas).
13
+ */
14
+ /**
15
+ * Hierarchical workspace scope.
16
+ *
17
+ * Numeric values are ordered so that higher = more specific.
18
+ * This enables `>=` comparisons for "at least this scope" checks
19
+ * (e.g., `scope >= WorkspaceScope.PROJECT` means PROJECT or SAAS_APP).
20
+ */
21
+ export declare enum WorkspaceScope {
22
+ /** No global preferences file found and CWD is outside any project or framework */
23
+ UNINITIALIZED = 0,
24
+ /** Global preferences file exists but CWD is outside any project or framework */
25
+ GLOBAL = 1,
26
+ /** CWD is inside the Wildo framework repository (.wildo-framework/ found) */
27
+ FRAMEWORK = 2,
28
+ /** CWD is inside a project (wildo.project.config.ts found) but not in a specific app */
29
+ PROJECT = 3,
30
+ /** CWD is inside a SaaS application directory (wildo.saas.config.ts found) */
31
+ SAAS_APP = 4
32
+ }
33
+ /**
34
+ * Result of workspace scope detection.
35
+ *
36
+ * All resolved paths are populated regardless of the final scope — a command
37
+ * in SAAS_APP scope can still access `projectRoot` and `frameworkRoot`.
38
+ */
39
+ export interface WorkspaceScopeResult {
40
+ /** Most specific scope detected from CWD */
41
+ scope: WorkspaceScope;
42
+ /** Absolute path to `wildo.saas.config.ts`, if found */
43
+ saasConfigPath: string | null;
44
+ /** Directory containing `wildo.saas.config.ts` */
45
+ saasRoot: string | null;
46
+ /** Absolute path to `wildo.project.config.ts`, if found */
47
+ projectConfigPath: string | null;
48
+ /** Directory containing `wildo.project.config.ts` */
49
+ projectRoot: string | null;
50
+ /** Directory containing `.wildo-framework/`, if found */
51
+ frameworkRoot: string | null;
52
+ /** Absolute path to the global preferences file, if it exists */
53
+ globalPreferencesPath: string | null;
54
+ }
55
+ /**
56
+ * Canonical config file and directory names used for scope detection.
57
+ * Single source of truth — CLI and other tools should reference these
58
+ * instead of hardcoding file names.
59
+ */
60
+ export declare const WORKSPACE_CONFIG_NAMES: {
61
+ readonly PROJECT: "wildo.project.config.ts";
62
+ readonly SAAS: "wildo.saas.config.ts";
63
+ readonly PLATFORM: "wildo.platform.config.ts";
64
+ readonly FRAMEWORK_DIR: ".wildo-framework";
65
+ readonly PROJECT_DIR: ".wildo-project";
66
+ readonly SAAS_DIR: ".wildo-saas";
67
+ readonly GLOBAL_DIR: ".wildo";
68
+ readonly PREFERENCES_FILE: "preferences.json";
69
+ /** Directory under the project root containing platform configs and per-env overrides */
70
+ readonly PLATFORM_DIR: "wildo-platform";
71
+ /** File name prefix for per-env sharing policy files (e.g., `wildo.sharing-policy.local.ts`) */
72
+ readonly SHARING_POLICY_PREFIX: "wildo.sharing-policy.";
73
+ };
74
+ /**
75
+ * Runtime-owned zones for generated config-evaluation artifacts.
76
+ *
77
+ * These are semantic owners, not source locations. For example, a platform
78
+ * config stored in a sibling `platformPath` still belongs to the project zone
79
+ * and must emit artifacts under `.wildo-project/dist/...`, not beside the
80
+ * authored config file itself.
81
+ */
82
+ export declare enum ConfigArtifactsZone {
83
+ FRAMEWORK = "framework",
84
+ PLATFORM = "platform",
85
+ PROJECT = "project",
86
+ SAAS = "saas",
87
+ TEMP = "temp"
88
+ }
89
+ export interface ConfigArtifactsLocationOptions {
90
+ zone: ConfigArtifactsZone;
91
+ ownerRoot: string;
92
+ }
93
+ export declare function resolveGlobalWildoHomePath(userHome?: string): string;
94
+ export declare function resolveGlobalPreferencesPath(userHome?: string): string;
95
+ export declare function resolveConfigArtifactsBaseDir(options: ConfigArtifactsLocationOptions): string;
96
+ export declare function resolveConfigArtifactsBaseDir(filePath: string): string;
97
+ /**
98
+ * Resolve the canonical runtime-owned base directory for config-loader
99
+ * artifacts. This keeps Jiti/SWC output out of authored declaration trees and
100
+ * anchors it under the matching runtime zone.
101
+ */
102
+ export declare function resolveConfigArtifactsBaseDirForZone(options: ConfigArtifactsLocationOptions): string;
103
+ export declare function resolveProjectPlatformRoot(projectRoot: string, platformPath?: string): string;
104
+ export declare function resolveProjectPlatformFilePath(projectRoot: string, platformPath?: string, ...segments: string[]): string;
105
+ /**
106
+ * Resolve the directory holding project-scoped platform files for one environment.
107
+ * The environment named `local` lives in `<platformPath>/local/`, while all other
108
+ * environment ids live in `<platformPath>/remotes/{envName}/`.
109
+ */
110
+ export declare function resolveProjectPlatformEnvironmentDir(projectRoot: string, envName: string, platformPath?: string): string;
111
+ /**
112
+ * Resolve the sharing policy file path for a given environment.
113
+ * Handles the directory convention used by `resolveProjectPlatformEnvironmentDir()`:
114
+ * the environment named `local` lives in `<platformPath>/local/`, while all other
115
+ * environment ids live in `<platformPath>/remotes/{envName}/`.
116
+ */
117
+ export declare function resolveSharingPolicyPath(projectRoot: string, envName: string, platformPath?: string): string;
118
+ //# sourceMappingURL=workspace-scope.schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-scope.schemas.d.ts","sourceRoot":"","sources":["../../../src/workspace-scope/workspace-scope.schemas.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH;;;;;;GAMG;AACH,oBAAY,cAAc;IACxB,mFAAmF;IACnF,aAAa,IAAI;IACjB,iFAAiF;IACjF,MAAM,IAAI;IACV,6EAA6E;IAC7E,SAAS,IAAI;IACb,wFAAwF;IACxF,OAAO,IAAI;IACX,8EAA8E;IAC9E,QAAQ,IAAI;CACb;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,4CAA4C;IAC5C,KAAK,EAAE,cAAc,CAAC;IAEtB,wDAAwD;IACxD,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,kDAAkD;IAClD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB,2DAA2D;IAC3D,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,qDAAqD;IACrD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,yDAAyD;IACzD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B,iEAAiE;IACjE,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;IASjC,yFAAyF;;IAEzF,gGAAgG;;CAExF,CAAC;AAEX;;;;;;;GAOG;AACH,oBAAY,mBAAmB;IAC7B,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,mBAAmB,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,GAAE,MAAkB,GAAG,MAAM,CAE/E;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,GAAE,MAAkB,GAAG,MAAM,CAEjF;AAOD,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,8BAA8B,GAAG,MAAM,CAAC;AAC/F,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;AAsCxE;;;;GAIG;AACH,wBAAgB,oCAAoC,CAAC,OAAO,EAAE,8BAA8B,GAAG,MAAM,CAapG;AAED,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,YAAY,GAAE,MAA4C,GACzD,MAAM,CAER;AAED,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,MAAM,EACnB,YAAY,GAAE,MAA4C,EAC1D,GAAG,QAAQ,EAAE,MAAM,EAAE,GACpB,MAAM,CAER;AAED;;;;GAIG;AACH,wBAAgB,oCAAoC,CAClD,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,YAAY,GAAE,MAA4C,GACzD,MAAM,CAMR;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,YAAY,GAAE,MAA4C,GACzD,MAAM,CAGR"}