typekro 0.8.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (557) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/alchemy/deployers.d.ts +16 -1
  3. package/dist/alchemy/deployers.d.ts.map +1 -1
  4. package/dist/alchemy/deployers.js +131 -18
  5. package/dist/alchemy/deployers.js.map +1 -1
  6. package/dist/alchemy/deployment.d.ts +1 -1
  7. package/dist/alchemy/deployment.d.ts.map +1 -1
  8. package/dist/alchemy/deployment.js +1 -1
  9. package/dist/alchemy/deployment.js.map +1 -1
  10. package/dist/alchemy/kro-delete.d.ts +66 -0
  11. package/dist/alchemy/kro-delete.d.ts.map +1 -0
  12. package/dist/alchemy/kro-delete.js +183 -0
  13. package/dist/alchemy/kro-delete.js.map +1 -0
  14. package/dist/alchemy/resource-registration.d.ts +16 -0
  15. package/dist/alchemy/resource-registration.d.ts.map +1 -1
  16. package/dist/alchemy/resource-registration.js +138 -24
  17. package/dist/alchemy/resource-registration.js.map +1 -1
  18. package/dist/alchemy/types.d.ts +8 -4
  19. package/dist/alchemy/types.d.ts.map +1 -1
  20. package/dist/aspects.d.ts +3 -0
  21. package/dist/aspects.d.ts.map +1 -0
  22. package/dist/aspects.js +2 -0
  23. package/dist/aspects.js.map +1 -0
  24. package/dist/compositions/typekro-runtime/typekro-runtime.d.ts +1 -1
  25. package/dist/compositions/typekro-runtime/typekro-runtime.d.ts.map +1 -1
  26. package/dist/compositions/typekro-runtime/typekro-runtime.js +27 -9
  27. package/dist/compositions/typekro-runtime/typekro-runtime.js.map +1 -1
  28. package/dist/core/aspects/apply.d.ts +30 -0
  29. package/dist/core/aspects/apply.d.ts.map +1 -0
  30. package/dist/core/aspects/apply.js +369 -0
  31. package/dist/core/aspects/apply.js.map +1 -0
  32. package/dist/core/aspects/dev-aspects.d.ts +14 -0
  33. package/dist/core/aspects/dev-aspects.d.ts.map +1 -0
  34. package/dist/core/aspects/dev-aspects.js +70 -0
  35. package/dist/core/aspects/dev-aspects.js.map +1 -0
  36. package/dist/core/aspects/index.d.ts +31 -0
  37. package/dist/core/aspects/index.d.ts.map +1 -0
  38. package/dist/core/aspects/index.js +30 -0
  39. package/dist/core/aspects/index.js.map +1 -0
  40. package/dist/core/aspects/metadata-aspects.d.ts +12 -0
  41. package/dist/core/aspects/metadata-aspects.d.ts.map +1 -0
  42. package/dist/core/aspects/metadata-aspects.js +24 -0
  43. package/dist/core/aspects/metadata-aspects.js.map +1 -0
  44. package/dist/core/aspects/metadata.d.ts +16 -0
  45. package/dist/core/aspects/metadata.d.ts.map +1 -0
  46. package/dist/core/aspects/metadata.js +24 -0
  47. package/dist/core/aspects/metadata.js.map +1 -0
  48. package/dist/core/aspects/primitives.d.ts +23 -0
  49. package/dist/core/aspects/primitives.d.ts.map +1 -0
  50. package/dist/core/aspects/primitives.js +258 -0
  51. package/dist/core/aspects/primitives.js.map +1 -0
  52. package/dist/core/aspects/targets.d.ts +9 -0
  53. package/dist/core/aspects/targets.d.ts.map +1 -0
  54. package/dist/core/aspects/targets.js +23 -0
  55. package/dist/core/aspects/targets.js.map +1 -0
  56. package/dist/core/aspects/types.d.ts +361 -0
  57. package/dist/core/aspects/types.d.ts.map +1 -0
  58. package/dist/core/aspects/types.js +16 -0
  59. package/dist/core/aspects/types.js.map +1 -0
  60. package/dist/core/aspects/workload-aspects.d.ts +17 -0
  61. package/dist/core/aspects/workload-aspects.d.ts.map +1 -0
  62. package/dist/core/aspects/workload-aspects.js +40 -0
  63. package/dist/core/aspects/workload-aspects.js.map +1 -0
  64. package/dist/core/composition/context.d.ts +58 -2
  65. package/dist/core/composition/context.d.ts.map +1 -1
  66. package/dist/core/composition/context.js +4 -0
  67. package/dist/core/composition/context.js.map +1 -1
  68. package/dist/core/composition/imperative.d.ts +9 -0
  69. package/dist/core/composition/imperative.d.ts.map +1 -1
  70. package/dist/core/composition/imperative.js +538 -54
  71. package/dist/core/composition/imperative.js.map +1 -1
  72. package/dist/core/composition/nested-status-cel.d.ts +34 -1
  73. package/dist/core/composition/nested-status-cel.d.ts.map +1 -1
  74. package/dist/core/composition/nested-status-cel.js +379 -41
  75. package/dist/core/composition/nested-status-cel.js.map +1 -1
  76. package/dist/core/composition-debugger.d.ts +1 -1
  77. package/dist/core/composition-debugger.d.ts.map +1 -1
  78. package/dist/core/composition-debugger.js.map +1 -1
  79. package/dist/core/constants/brands.d.ts +1 -1
  80. package/dist/core/constants/brands.d.ts.map +1 -1
  81. package/dist/core/constants/brands.js +1 -1
  82. package/dist/core/constants/brands.js.map +1 -1
  83. package/dist/core/containers/build.d.ts.map +1 -1
  84. package/dist/core/containers/build.js +40 -12
  85. package/dist/core/containers/build.js.map +1 -1
  86. package/dist/core/dependencies/resolver.d.ts +19 -0
  87. package/dist/core/dependencies/resolver.d.ts.map +1 -1
  88. package/dist/core/dependencies/resolver.js +261 -1
  89. package/dist/core/dependencies/resolver.js.map +1 -1
  90. package/dist/core/deployment/client-provider-manager.d.ts +9 -3
  91. package/dist/core/deployment/client-provider-manager.d.ts.map +1 -1
  92. package/dist/core/deployment/client-provider-manager.js +12 -0
  93. package/dist/core/deployment/client-provider-manager.js.map +1 -1
  94. package/dist/core/deployment/crd-manager.d.ts +24 -0
  95. package/dist/core/deployment/crd-manager.d.ts.map +1 -1
  96. package/dist/core/deployment/crd-manager.js +79 -1
  97. package/dist/core/deployment/crd-manager.js.map +1 -1
  98. package/dist/core/deployment/deployment-state-discovery.d.ts +116 -0
  99. package/dist/core/deployment/deployment-state-discovery.d.ts.map +1 -0
  100. package/dist/core/deployment/deployment-state-discovery.js +400 -0
  101. package/dist/core/deployment/deployment-state-discovery.js.map +1 -0
  102. package/dist/core/deployment/direct-factory.d.ts +65 -6
  103. package/dist/core/deployment/direct-factory.d.ts.map +1 -1
  104. package/dist/core/deployment/direct-factory.js +584 -62
  105. package/dist/core/deployment/direct-factory.js.map +1 -1
  106. package/dist/core/deployment/engine.d.ts +64 -3
  107. package/dist/core/deployment/engine.d.ts.map +1 -1
  108. package/dist/core/deployment/engine.js +194 -27
  109. package/dist/core/deployment/engine.js.map +1 -1
  110. package/dist/core/deployment/event-filter.js +1 -1
  111. package/dist/core/deployment/event-filter.js.map +1 -1
  112. package/dist/core/deployment/event-monitor.d.ts +11 -0
  113. package/dist/core/deployment/event-monitor.d.ts.map +1 -1
  114. package/dist/core/deployment/event-monitor.js +14 -0
  115. package/dist/core/deployment/event-monitor.js.map +1 -1
  116. package/dist/core/deployment/handle-tracing.d.ts +14 -0
  117. package/dist/core/deployment/handle-tracing.d.ts.map +1 -0
  118. package/dist/core/deployment/handle-tracing.js +38 -0
  119. package/dist/core/deployment/handle-tracing.js.map +1 -0
  120. package/dist/core/deployment/kro-factory.d.ts +115 -3
  121. package/dist/core/deployment/kro-factory.d.ts.map +1 -1
  122. package/dist/core/deployment/kro-factory.js +922 -278
  123. package/dist/core/deployment/kro-factory.js.map +1 -1
  124. package/dist/core/deployment/kro-readiness.d.ts.map +1 -1
  125. package/dist/core/deployment/kro-readiness.js +21 -12
  126. package/dist/core/deployment/kro-readiness.js.map +1 -1
  127. package/dist/core/deployment/nested-composition-status.d.ts +1 -1
  128. package/dist/core/deployment/nested-composition-status.d.ts.map +1 -1
  129. package/dist/core/deployment/nested-composition-status.js +96 -53
  130. package/dist/core/deployment/nested-composition-status.js.map +1 -1
  131. package/dist/core/deployment/resource-applier.d.ts +15 -2
  132. package/dist/core/deployment/resource-applier.d.ts.map +1 -1
  133. package/dist/core/deployment/resource-applier.js +75 -25
  134. package/dist/core/deployment/resource-applier.js.map +1 -1
  135. package/dist/core/deployment/resource-tagging.d.ts +220 -0
  136. package/dist/core/deployment/resource-tagging.d.ts.map +1 -0
  137. package/dist/core/deployment/resource-tagging.js +292 -0
  138. package/dist/core/deployment/resource-tagging.js.map +1 -0
  139. package/dist/core/deployment/rollback-manager.d.ts +25 -4
  140. package/dist/core/deployment/rollback-manager.d.ts.map +1 -1
  141. package/dist/core/deployment/rollback-manager.js +70 -57
  142. package/dist/core/deployment/rollback-manager.js.map +1 -1
  143. package/dist/core/deployment/shared-utilities.d.ts +6 -0
  144. package/dist/core/deployment/shared-utilities.d.ts.map +1 -1
  145. package/dist/core/deployment/shared-utilities.js +32 -2
  146. package/dist/core/deployment/shared-utilities.js.map +1 -1
  147. package/dist/core/deployment/singleton-owner-drift.d.ts +16 -0
  148. package/dist/core/deployment/singleton-owner-drift.d.ts.map +1 -0
  149. package/dist/core/deployment/singleton-owner-drift.js +54 -0
  150. package/dist/core/deployment/singleton-owner-drift.js.map +1 -0
  151. package/dist/core/deployment/strategies/alchemy-strategy.d.ts +3 -1
  152. package/dist/core/deployment/strategies/alchemy-strategy.d.ts.map +1 -1
  153. package/dist/core/deployment/strategies/alchemy-strategy.js +121 -18
  154. package/dist/core/deployment/strategies/alchemy-strategy.js.map +1 -1
  155. package/dist/core/deployment/strategies/base-strategy.d.ts +9 -3
  156. package/dist/core/deployment/strategies/base-strategy.d.ts.map +1 -1
  157. package/dist/core/deployment/strategies/base-strategy.js +32 -4
  158. package/dist/core/deployment/strategies/base-strategy.js.map +1 -1
  159. package/dist/core/deployment/strategies/direct-strategy.d.ts +12 -4
  160. package/dist/core/deployment/strategies/direct-strategy.d.ts.map +1 -1
  161. package/dist/core/deployment/strategies/direct-strategy.js +112 -8
  162. package/dist/core/deployment/strategies/direct-strategy.js.map +1 -1
  163. package/dist/core/errors.d.ts +2 -2
  164. package/dist/core/errors.d.ts.map +1 -1
  165. package/dist/core/errors.js.map +1 -1
  166. package/dist/core/expressions/analysis/cache.d.ts +2 -2
  167. package/dist/core/expressions/analysis/cache.d.ts.map +1 -1
  168. package/dist/core/expressions/analysis/cache.js +4 -0
  169. package/dist/core/expressions/analysis/cache.js.map +1 -1
  170. package/dist/core/expressions/analysis/fn-toString-self-test.d.ts.map +1 -1
  171. package/dist/core/expressions/analysis/fn-toString-self-test.js +0 -1
  172. package/dist/core/expressions/analysis/fn-toString-self-test.js.map +1 -1
  173. package/dist/core/expressions/analysis/shared-types.d.ts +2 -2
  174. package/dist/core/expressions/analysis/shared-types.d.ts.map +1 -1
  175. package/dist/core/expressions/analysis/source-map.d.ts.map +1 -1
  176. package/dist/core/expressions/analysis/source-map.js +1 -0
  177. package/dist/core/expressions/analysis/source-map.js.map +1 -1
  178. package/dist/core/expressions/analysis/types.d.ts +7 -7
  179. package/dist/core/expressions/analysis/types.d.ts.map +1 -1
  180. package/dist/core/expressions/composition/composition-analyzer-helpers.d.ts +29 -1
  181. package/dist/core/expressions/composition/composition-analyzer-helpers.d.ts.map +1 -1
  182. package/dist/core/expressions/composition/composition-analyzer-helpers.js +348 -17
  183. package/dist/core/expressions/composition/composition-analyzer-helpers.js.map +1 -1
  184. package/dist/core/expressions/composition/composition-analyzer-ternary.d.ts +2 -2
  185. package/dist/core/expressions/composition/composition-analyzer-ternary.d.ts.map +1 -1
  186. package/dist/core/expressions/composition/composition-analyzer-ternary.js +221 -10
  187. package/dist/core/expressions/composition/composition-analyzer-ternary.js.map +1 -1
  188. package/dist/core/expressions/composition/composition-analyzer-traversal.d.ts.map +1 -1
  189. package/dist/core/expressions/composition/composition-analyzer-traversal.js +67 -2
  190. package/dist/core/expressions/composition/composition-analyzer-traversal.js.map +1 -1
  191. package/dist/core/expressions/composition/composition-analyzer-types.d.ts +52 -0
  192. package/dist/core/expressions/composition/composition-analyzer-types.d.ts.map +1 -1
  193. package/dist/core/expressions/composition/composition-analyzer.d.ts.map +1 -1
  194. package/dist/core/expressions/composition/composition-analyzer.js +150 -6
  195. package/dist/core/expressions/composition/composition-analyzer.js.map +1 -1
  196. package/dist/core/expressions/composition/expression-analyzer.d.ts.map +1 -1
  197. package/dist/core/expressions/composition/expression-analyzer.js +21 -4
  198. package/dist/core/expressions/composition/expression-analyzer.js.map +1 -1
  199. package/dist/core/expressions/composition/imperative-analyzer.d.ts +1 -1
  200. package/dist/core/expressions/composition/imperative-analyzer.d.ts.map +1 -1
  201. package/dist/core/expressions/composition/imperative-analyzer.js +31 -7
  202. package/dist/core/expressions/composition/imperative-analyzer.js.map +1 -1
  203. package/dist/core/expressions/composition/scope-manager.d.ts +2 -2
  204. package/dist/core/expressions/composition/scope-manager.d.ts.map +1 -1
  205. package/dist/core/expressions/composition/scope-manager.js.map +1 -1
  206. package/dist/core/expressions/conditional/conditional-expression-processor.d.ts +3 -3
  207. package/dist/core/expressions/conditional/conditional-expression-processor.d.ts.map +1 -1
  208. package/dist/core/expressions/conditional/conditional-expression-processor.js.map +1 -1
  209. package/dist/core/expressions/conditional/conditional-integration.d.ts.map +1 -1
  210. package/dist/core/expressions/conditional/conditional-integration.js.map +1 -1
  211. package/dist/core/expressions/context/context-aware-generator.d.ts +5 -5
  212. package/dist/core/expressions/context/context-aware-generator.d.ts.map +1 -1
  213. package/dist/core/expressions/context/context-aware-generator.js.map +1 -1
  214. package/dist/core/expressions/context/context-detector.d.ts +3 -3
  215. package/dist/core/expressions/context/context-detector.d.ts.map +1 -1
  216. package/dist/core/expressions/context/context-detector.js.map +1 -1
  217. package/dist/core/expressions/context/context-validator.d.ts +6 -6
  218. package/dist/core/expressions/context/context-validator.d.ts.map +1 -1
  219. package/dist/core/expressions/context/context-validator.js +2 -2
  220. package/dist/core/expressions/context/context-validator.js.map +1 -1
  221. package/dist/core/expressions/factory/cel-conversion-engine.d.ts +4 -4
  222. package/dist/core/expressions/factory/cel-conversion-engine.d.ts.map +1 -1
  223. package/dist/core/expressions/factory/cel-conversion-engine.js.map +1 -1
  224. package/dist/core/expressions/factory/dependency-tracker.d.ts +2 -2
  225. package/dist/core/expressions/factory/dependency-tracker.d.ts.map +1 -1
  226. package/dist/core/expressions/factory/dependency-tracker.js +21 -5
  227. package/dist/core/expressions/factory/dependency-tracker.js.map +1 -1
  228. package/dist/core/expressions/factory/factory-integration.d.ts +2 -4
  229. package/dist/core/expressions/factory/factory-integration.d.ts.map +1 -1
  230. package/dist/core/expressions/factory/factory-integration.js +0 -6
  231. package/dist/core/expressions/factory/factory-integration.js.map +1 -1
  232. package/dist/core/expressions/factory/factory-pattern-handler.d.ts +3 -3
  233. package/dist/core/expressions/factory/factory-pattern-handler.d.ts.map +1 -1
  234. package/dist/core/expressions/factory/factory-pattern-handler.js +1 -0
  235. package/dist/core/expressions/factory/factory-pattern-handler.js.map +1 -1
  236. package/dist/core/expressions/factory/migration-helpers.js.map +1 -1
  237. package/dist/core/expressions/factory/resource-analyzer.d.ts +4 -4
  238. package/dist/core/expressions/factory/resource-analyzer.d.ts.map +1 -1
  239. package/dist/core/expressions/factory/resource-analyzer.js.map +1 -1
  240. package/dist/core/expressions/factory/resource-type-validator.d.ts +5 -5
  241. package/dist/core/expressions/factory/resource-type-validator.d.ts.map +1 -1
  242. package/dist/core/expressions/factory/resource-type-validator.js.map +1 -1
  243. package/dist/core/expressions/factory/status-builder-analyzer.d.ts +6 -7
  244. package/dist/core/expressions/factory/status-builder-analyzer.d.ts.map +1 -1
  245. package/dist/core/expressions/factory/status-builder-analyzer.js +0 -3
  246. package/dist/core/expressions/factory/status-builder-analyzer.js.map +1 -1
  247. package/dist/core/expressions/factory/status-builder-types.d.ts +1 -1
  248. package/dist/core/expressions/factory/status-builder-types.d.ts.map +1 -1
  249. package/dist/core/expressions/factory/status-cel-generation.d.ts +1 -1
  250. package/dist/core/expressions/factory/status-cel-generation.d.ts.map +1 -1
  251. package/dist/core/expressions/factory/status-cel-generation.js +1 -1
  252. package/dist/core/expressions/factory/status-cel-generation.js.map +1 -1
  253. package/dist/core/expressions/factory/status-field-analysis.d.ts +3 -3
  254. package/dist/core/expressions/factory/status-field-analysis.d.ts.map +1 -1
  255. package/dist/core/expressions/factory/status-field-analysis.js.map +1 -1
  256. package/dist/core/expressions/magic-proxy/magic-assignable-analyzer.d.ts +5 -5
  257. package/dist/core/expressions/magic-proxy/magic-assignable-analyzer.d.ts.map +1 -1
  258. package/dist/core/expressions/magic-proxy/magic-assignable-analyzer.js +1 -1
  259. package/dist/core/expressions/magic-proxy/magic-assignable-analyzer.js.map +1 -1
  260. package/dist/core/expressions/magic-proxy/magic-proxy-analyzer.d.ts +10 -10
  261. package/dist/core/expressions/magic-proxy/magic-proxy-analyzer.d.ts.map +1 -1
  262. package/dist/core/expressions/magic-proxy/magic-proxy-analyzer.js +5 -1
  263. package/dist/core/expressions/magic-proxy/magic-proxy-analyzer.js.map +1 -1
  264. package/dist/core/expressions/magic-proxy/magic-proxy-ast.d.ts +2 -2
  265. package/dist/core/expressions/magic-proxy/magic-proxy-ast.d.ts.map +1 -1
  266. package/dist/core/expressions/magic-proxy/magic-proxy-ast.js.map +1 -1
  267. package/dist/core/expressions/magic-proxy/magic-proxy-detector.d.ts +5 -5
  268. package/dist/core/expressions/magic-proxy/magic-proxy-detector.d.ts.map +1 -1
  269. package/dist/core/expressions/magic-proxy/magic-proxy-detector.js.map +1 -1
  270. package/dist/core/expressions/magic-proxy/magic-proxy-types.d.ts +2 -2
  271. package/dist/core/expressions/magic-proxy/magic-proxy-types.d.ts.map +1 -1
  272. package/dist/core/expressions/magic-proxy/optionality-handler.d.ts +1 -2
  273. package/dist/core/expressions/magic-proxy/optionality-handler.d.ts.map +1 -1
  274. package/dist/core/expressions/magic-proxy/optionality-handler.js +2 -15
  275. package/dist/core/expressions/magic-proxy/optionality-handler.js.map +1 -1
  276. package/dist/core/expressions/validation/compile-time-checker.d.ts +1 -1
  277. package/dist/core/expressions/validation/compile-time-checker.d.ts.map +1 -1
  278. package/dist/core/expressions/validation/compile-time-checker.js.map +1 -1
  279. package/dist/core/expressions/validation/compile-time-types.d.ts +2 -2
  280. package/dist/core/expressions/validation/compile-time-types.d.ts.map +1 -1
  281. package/dist/core/expressions/validation/kubernetes-field-types.d.ts +4 -4
  282. package/dist/core/expressions/validation/kubernetes-field-types.d.ts.map +1 -1
  283. package/dist/core/expressions/validation/kubernetes-field-types.js.map +1 -1
  284. package/dist/core/expressions/validation/resource-field-utils.d.ts +10 -10
  285. package/dist/core/expressions/validation/resource-field-utils.d.ts.map +1 -1
  286. package/dist/core/expressions/validation/resource-field-utils.js.map +1 -1
  287. package/dist/core/expressions/validation/resource-validation.d.ts +3 -3
  288. package/dist/core/expressions/validation/resource-validation.d.ts.map +1 -1
  289. package/dist/core/expressions/validation/resource-validation.js.map +1 -1
  290. package/dist/core/expressions/validation/type-inference-types.d.ts +2 -2
  291. package/dist/core/expressions/validation/type-inference-types.d.ts.map +1 -1
  292. package/dist/core/expressions/validation/type-safety.d.ts +2 -2
  293. package/dist/core/expressions/validation/type-safety.d.ts.map +1 -1
  294. package/dist/core/expressions/validation/type-safety.js +1 -0
  295. package/dist/core/expressions/validation/type-safety.js.map +1 -1
  296. package/dist/core/kubernetes/bun-api-client.js.map +1 -1
  297. package/dist/core/kubernetes/bun-http-library.d.ts.map +1 -1
  298. package/dist/core/kubernetes/bun-http-library.js +29 -3
  299. package/dist/core/kubernetes/bun-http-library.js.map +1 -1
  300. package/dist/core/kubernetes/client-provider.d.ts +12 -0
  301. package/dist/core/kubernetes/client-provider.d.ts.map +1 -1
  302. package/dist/core/kubernetes/client-provider.js +35 -0
  303. package/dist/core/kubernetes/client-provider.js.map +1 -1
  304. package/dist/core/metadata/resource-metadata.d.ts +49 -1
  305. package/dist/core/metadata/resource-metadata.d.ts.map +1 -1
  306. package/dist/core/metadata/resource-metadata.js.map +1 -1
  307. package/dist/core/proxy/create-resource.d.ts +15 -0
  308. package/dist/core/proxy/create-resource.d.ts.map +1 -1
  309. package/dist/core/proxy/create-resource.js +79 -2
  310. package/dist/core/proxy/create-resource.js.map +1 -1
  311. package/dist/core/readiness/registry.js +2 -2
  312. package/dist/core/readiness/registry.js.map +1 -1
  313. package/dist/core/references/cel-evaluator.d.ts +1 -4
  314. package/dist/core/references/cel-evaluator.d.ts.map +1 -1
  315. package/dist/core/references/cel-evaluator.js +3 -7
  316. package/dist/core/references/cel-evaluator.js.map +1 -1
  317. package/dist/core/references/cel.d.ts +22 -0
  318. package/dist/core/references/cel.d.ts.map +1 -1
  319. package/dist/core/references/cel.js +106 -8
  320. package/dist/core/references/cel.js.map +1 -1
  321. package/dist/core/references/external-refs.d.ts.map +1 -1
  322. package/dist/core/references/external-refs.js +3 -0
  323. package/dist/core/references/external-refs.js.map +1 -1
  324. package/dist/core/references/resolver.d.ts.map +1 -1
  325. package/dist/core/references/resolver.js +28 -17
  326. package/dist/core/references/resolver.js.map +1 -1
  327. package/dist/core/references/schema-proxy.d.ts +18 -10
  328. package/dist/core/references/schema-proxy.d.ts.map +1 -1
  329. package/dist/core/references/schema-proxy.js +174 -23
  330. package/dist/core/references/schema-proxy.js.map +1 -1
  331. package/dist/core/runtime-patches/crd-schema-fix.d.ts.map +1 -1
  332. package/dist/core/runtime-patches/crd-schema-fix.js +4 -1
  333. package/dist/core/runtime-patches/crd-schema-fix.js.map +1 -1
  334. package/dist/core/serialization/cel-optimizer.d.ts.map +1 -1
  335. package/dist/core/serialization/cel-optimizer.js +2 -0
  336. package/dist/core/serialization/cel-optimizer.js.map +1 -1
  337. package/dist/core/serialization/cel-references.d.ts +75 -1
  338. package/dist/core/serialization/cel-references.d.ts.map +1 -1
  339. package/dist/core/serialization/cel-references.js +692 -156
  340. package/dist/core/serialization/cel-references.js.map +1 -1
  341. package/dist/core/serialization/core.d.ts +8 -8
  342. package/dist/core/serialization/core.d.ts.map +1 -1
  343. package/dist/core/serialization/core.js +672 -90
  344. package/dist/core/serialization/core.js.map +1 -1
  345. package/dist/core/serialization/kro-post-processing.d.ts +1 -1
  346. package/dist/core/serialization/kro-post-processing.d.ts.map +1 -1
  347. package/dist/core/serialization/kro-post-processing.js +69 -22
  348. package/dist/core/serialization/kro-post-processing.js.map +1 -1
  349. package/dist/core/serialization/schema.d.ts +1 -0
  350. package/dist/core/serialization/schema.d.ts.map +1 -1
  351. package/dist/core/serialization/schema.js +378 -50
  352. package/dist/core/serialization/schema.js.map +1 -1
  353. package/dist/core/serialization/status-analysis-pipeline.d.ts +1 -1
  354. package/dist/core/serialization/status-analysis-pipeline.d.ts.map +1 -1
  355. package/dist/core/serialization/status-analysis-pipeline.js.map +1 -1
  356. package/dist/core/serialization/yaml.d.ts +3 -2
  357. package/dist/core/serialization/yaml.d.ts.map +1 -1
  358. package/dist/core/serialization/yaml.js +385 -55
  359. package/dist/core/serialization/yaml.js.map +1 -1
  360. package/dist/core/singleton/singleton.d.ts +16 -0
  361. package/dist/core/singleton/singleton.d.ts.map +1 -0
  362. package/dist/core/singleton/singleton.js +135 -0
  363. package/dist/core/singleton/singleton.js.map +1 -0
  364. package/dist/core/types/common.d.ts +2 -2
  365. package/dist/core/types/common.d.ts.map +1 -1
  366. package/dist/core/types/composable.d.ts +1 -1
  367. package/dist/core/types/composable.d.ts.map +1 -1
  368. package/dist/core/types/deployment.d.ts +129 -9
  369. package/dist/core/types/deployment.d.ts.map +1 -1
  370. package/dist/core/types/deployment.js +1 -1
  371. package/dist/core/types/deployment.js.map +1 -1
  372. package/dist/core/types/kubernetes.d.ts +25 -17
  373. package/dist/core/types/kubernetes.d.ts.map +1 -1
  374. package/dist/core/types/references.d.ts +1 -1
  375. package/dist/core/types/references.d.ts.map +1 -1
  376. package/dist/core/types/references.js.map +1 -1
  377. package/dist/core/types/resource-graph.d.ts +2 -1
  378. package/dist/core/types/resource-graph.d.ts.map +1 -1
  379. package/dist/core/types/schema.d.ts +1 -1
  380. package/dist/core/types/schema.d.ts.map +1 -1
  381. package/dist/core/types/serialization.d.ts +24 -6
  382. package/dist/core/types/serialization.d.ts.map +1 -1
  383. package/dist/core/validation/cel-validator.d.ts +15 -2
  384. package/dist/core/validation/cel-validator.d.ts.map +1 -1
  385. package/dist/core/validation/cel-validator.js +144 -63
  386. package/dist/core/validation/cel-validator.js.map +1 -1
  387. package/dist/factories/apisix/compositions/apisix-bootstrap.d.ts +2 -41
  388. package/dist/factories/apisix/compositions/apisix-bootstrap.d.ts.map +1 -1
  389. package/dist/factories/apisix/compositions/apisix-bootstrap.js +262 -217
  390. package/dist/factories/apisix/compositions/apisix-bootstrap.js.map +1 -1
  391. package/dist/factories/apisix/index.d.ts +2 -2
  392. package/dist/factories/apisix/index.js +2 -2
  393. package/dist/factories/apisix/resources/helm.d.ts +2 -2
  394. package/dist/factories/apisix/resources/helm.d.ts.map +1 -1
  395. package/dist/factories/apisix/resources/helm.js.map +1 -1
  396. package/dist/factories/apisix/types.d.ts +21 -11
  397. package/dist/factories/apisix/types.d.ts.map +1 -1
  398. package/dist/factories/apisix/types.js +106 -4
  399. package/dist/factories/apisix/types.js.map +1 -1
  400. package/dist/factories/apisix/utils/admin-credentials.d.ts +5 -3
  401. package/dist/factories/apisix/utils/admin-credentials.d.ts.map +1 -1
  402. package/dist/factories/apisix/utils/admin-credentials.js +14 -10
  403. package/dist/factories/apisix/utils/admin-credentials.js.map +1 -1
  404. package/dist/factories/apisix/utils/helm-values-mapper.d.ts.map +1 -1
  405. package/dist/factories/apisix/utils/helm-values-mapper.js +4 -2
  406. package/dist/factories/apisix/utils/helm-values-mapper.js.map +1 -1
  407. package/dist/factories/cert-manager/resources/challenges.js.map +1 -1
  408. package/dist/factories/cert-manager/types.d.ts +3 -3
  409. package/dist/factories/cert-manager/types.d.ts.map +1 -1
  410. package/dist/factories/cilium/compositions/cilium-bootstrap.d.ts +4 -4
  411. package/dist/factories/cilium/types.d.ts +3 -3
  412. package/dist/factories/cilium/types.d.ts.map +1 -1
  413. package/dist/factories/cnpg/compositions/cnpg-bootstrap.d.ts +1 -0
  414. package/dist/factories/cnpg/compositions/cnpg-bootstrap.d.ts.map +1 -1
  415. package/dist/factories/cnpg/compositions/cnpg-bootstrap.js +48 -0
  416. package/dist/factories/cnpg/compositions/cnpg-bootstrap.js.map +1 -1
  417. package/dist/factories/cnpg/resources/cluster.js +1 -1
  418. package/dist/factories/cnpg/resources/cluster.js.map +1 -1
  419. package/dist/factories/cnpg/resources/helm.d.ts.map +1 -1
  420. package/dist/factories/cnpg/resources/helm.js +1 -0
  421. package/dist/factories/cnpg/resources/helm.js.map +1 -1
  422. package/dist/factories/cnpg/resources/pooler.js +1 -1
  423. package/dist/factories/cnpg/resources/pooler.js.map +1 -1
  424. package/dist/factories/cnpg/types.d.ts +9 -8
  425. package/dist/factories/cnpg/types.d.ts.map +1 -1
  426. package/dist/factories/cnpg/types.js +11 -0
  427. package/dist/factories/cnpg/types.js.map +1 -1
  428. package/dist/factories/external-dns/compositions/external-dns-bootstrap.d.ts.map +1 -1
  429. package/dist/factories/external-dns/compositions/external-dns-bootstrap.js +153 -41
  430. package/dist/factories/external-dns/compositions/external-dns-bootstrap.js.map +1 -1
  431. package/dist/factories/external-dns/resources/dns-endpoint.js +1 -1
  432. package/dist/factories/external-dns/resources/dns-endpoint.js.map +1 -1
  433. package/dist/factories/external-dns/resources/helm.d.ts +1 -1
  434. package/dist/factories/external-dns/resources/helm.d.ts.map +1 -1
  435. package/dist/factories/external-dns/resources/helm.js +17 -10
  436. package/dist/factories/external-dns/resources/helm.js.map +1 -1
  437. package/dist/factories/external-dns/types.d.ts +5 -2
  438. package/dist/factories/external-dns/types.d.ts.map +1 -1
  439. package/dist/factories/external-dns/types.js.map +1 -1
  440. package/dist/factories/flux/git-repository.d.ts.map +1 -1
  441. package/dist/factories/flux/git-repository.js +1 -1
  442. package/dist/factories/flux/git-repository.js.map +1 -1
  443. package/dist/factories/flux/kustomize/kustomization.d.ts +2 -2
  444. package/dist/factories/flux/kustomize/kustomization.d.ts.map +1 -1
  445. package/dist/factories/flux/kustomize/readiness-evaluators.d.ts +1 -1
  446. package/dist/factories/flux/kustomize/readiness-evaluators.d.ts.map +1 -1
  447. package/dist/factories/flux/kustomize/readiness-evaluators.js +1 -1
  448. package/dist/factories/flux/kustomize/readiness-evaluators.js.map +1 -1
  449. package/dist/factories/helm/helm-release.d.ts +3 -2
  450. package/dist/factories/helm/helm-release.d.ts.map +1 -1
  451. package/dist/factories/helm/helm-release.js +1 -0
  452. package/dist/factories/helm/helm-release.js.map +1 -1
  453. package/dist/factories/helm/helm-repository.d.ts +1 -1
  454. package/dist/factories/helm/helm-repository.d.ts.map +1 -1
  455. package/dist/factories/helm/helm-repository.js +6 -4
  456. package/dist/factories/helm/helm-repository.js.map +1 -1
  457. package/dist/factories/helm/readiness-evaluators.d.ts +6 -6
  458. package/dist/factories/helm/readiness-evaluators.d.ts.map +1 -1
  459. package/dist/factories/helm/readiness-evaluators.js +15 -9
  460. package/dist/factories/helm/readiness-evaluators.js.map +1 -1
  461. package/dist/factories/helm/types.d.ts +5 -1
  462. package/dist/factories/helm/types.d.ts.map +1 -1
  463. package/dist/factories/inngest/compositions/inngest-bootstrap.d.ts +1 -0
  464. package/dist/factories/inngest/compositions/inngest-bootstrap.d.ts.map +1 -1
  465. package/dist/factories/inngest/compositions/inngest-bootstrap.js +4 -3
  466. package/dist/factories/inngest/compositions/inngest-bootstrap.js.map +1 -1
  467. package/dist/factories/inngest/resources/helm.js +1 -1
  468. package/dist/factories/inngest/resources/helm.js.map +1 -1
  469. package/dist/factories/inngest/types.d.ts +5 -4
  470. package/dist/factories/inngest/types.d.ts.map +1 -1
  471. package/dist/factories/inngest/types.js +2 -0
  472. package/dist/factories/inngest/types.js.map +1 -1
  473. package/dist/factories/kro/kro-custom-resource.js +1 -1
  474. package/dist/factories/kro/kro-custom-resource.js.map +1 -1
  475. package/dist/factories/kubernetes/config/config-map.d.ts +2 -2
  476. package/dist/factories/kubernetes/config/config-map.d.ts.map +1 -1
  477. package/dist/factories/kubernetes/config/secret.d.ts +2 -2
  478. package/dist/factories/kubernetes/config/secret.d.ts.map +1 -1
  479. package/dist/factories/kubernetes/networking/service.js +1 -1
  480. package/dist/factories/kubernetes/networking/service.js.map +1 -1
  481. package/dist/factories/kubernetes/yaml/yaml-directory.d.ts.map +1 -1
  482. package/dist/factories/kubernetes/yaml/yaml-directory.js +9 -0
  483. package/dist/factories/kubernetes/yaml/yaml-directory.js.map +1 -1
  484. package/dist/factories/kubernetes/yaml/yaml-file.d.ts.map +1 -1
  485. package/dist/factories/kubernetes/yaml/yaml-file.js +9 -0
  486. package/dist/factories/kubernetes/yaml/yaml-file.js.map +1 -1
  487. package/dist/factories/pebble/resources/helm.js.map +1 -1
  488. package/dist/factories/pebble/types.d.ts +2 -2
  489. package/dist/factories/searxng/compositions/searxng-bootstrap.d.ts +3 -2
  490. package/dist/factories/searxng/compositions/searxng-bootstrap.d.ts.map +1 -1
  491. package/dist/factories/searxng/compositions/searxng-bootstrap.js +205 -167
  492. package/dist/factories/searxng/compositions/searxng-bootstrap.js.map +1 -1
  493. package/dist/factories/searxng/resources/searxng.d.ts +1 -1
  494. package/dist/factories/searxng/resources/searxng.js +1 -1
  495. package/dist/factories/searxng/types.d.ts +5 -4
  496. package/dist/factories/searxng/types.d.ts.map +1 -1
  497. package/dist/factories/searxng/types.js +8 -7
  498. package/dist/factories/searxng/types.js.map +1 -1
  499. package/dist/factories/searxng/utils/settings-builder.d.ts +4 -3
  500. package/dist/factories/searxng/utils/settings-builder.d.ts.map +1 -1
  501. package/dist/factories/searxng/utils/settings-builder.js +4 -3
  502. package/dist/factories/searxng/utils/settings-builder.js.map +1 -1
  503. package/dist/factories/simple/config/config-map.d.ts +2 -2
  504. package/dist/factories/simple/config/config-map.d.ts.map +1 -1
  505. package/dist/factories/simple/config/secret.d.ts +2 -2
  506. package/dist/factories/simple/config/secret.d.ts.map +1 -1
  507. package/dist/factories/simple/helm/index.d.ts +1 -1
  508. package/dist/factories/simple/helm/index.d.ts.map +1 -1
  509. package/dist/factories/simple/helm/index.js.map +1 -1
  510. package/dist/factories/simple/index.d.ts +3 -3
  511. package/dist/factories/simple/index.d.ts.map +1 -1
  512. package/dist/factories/simple/storage/persistent-volume.js.map +1 -1
  513. package/dist/factories/simple/types.d.ts +11 -1
  514. package/dist/factories/simple/types.d.ts.map +1 -1
  515. package/dist/factories/simple/workloads/deployment.d.ts +4 -1
  516. package/dist/factories/simple/workloads/deployment.d.ts.map +1 -1
  517. package/dist/factories/simple/workloads/deployment.js +9 -2
  518. package/dist/factories/simple/workloads/deployment.js.map +1 -1
  519. package/dist/factories/simple/workloads/stateful-set.d.ts +4 -1
  520. package/dist/factories/simple/workloads/stateful-set.d.ts.map +1 -1
  521. package/dist/factories/simple/workloads/stateful-set.js +6 -2
  522. package/dist/factories/simple/workloads/stateful-set.js.map +1 -1
  523. package/dist/factories/valkey/compositions/valkey-bootstrap.d.ts +1 -0
  524. package/dist/factories/valkey/compositions/valkey-bootstrap.d.ts.map +1 -1
  525. package/dist/factories/valkey/compositions/valkey-bootstrap.js +116 -0
  526. package/dist/factories/valkey/compositions/valkey-bootstrap.js.map +1 -1
  527. package/dist/factories/valkey/resources/valkey.js +1 -1
  528. package/dist/factories/valkey/resources/valkey.js.map +1 -1
  529. package/dist/factories/valkey/types.d.ts +6 -5
  530. package/dist/factories/valkey/types.d.ts.map +1 -1
  531. package/dist/factories/valkey/types.js +10 -0
  532. package/dist/factories/valkey/types.js.map +1 -1
  533. package/dist/factories/webapp/compositions/web-app-with-processing.d.ts +90 -6
  534. package/dist/factories/webapp/compositions/web-app-with-processing.d.ts.map +1 -1
  535. package/dist/factories/webapp/compositions/web-app-with-processing.js +180 -20
  536. package/dist/factories/webapp/compositions/web-app-with-processing.js.map +1 -1
  537. package/dist/factories/webapp/index.d.ts +3 -4
  538. package/dist/factories/webapp/index.d.ts.map +1 -1
  539. package/dist/factories/webapp/index.js +3 -4
  540. package/dist/factories/webapp/index.js.map +1 -1
  541. package/dist/factories/webapp/types.d.ts +60 -2
  542. package/dist/factories/webapp/types.d.ts.map +1 -1
  543. package/dist/factories/webapp/types.js +80 -3
  544. package/dist/factories/webapp/types.js.map +1 -1
  545. package/dist/index.d.ts +5 -1
  546. package/dist/index.d.ts.map +1 -1
  547. package/dist/index.js +3 -0
  548. package/dist/index.js.map +1 -1
  549. package/dist/shared/brands.d.ts +18 -8
  550. package/dist/shared/brands.d.ts.map +1 -1
  551. package/dist/shared/brands.js +19 -9
  552. package/dist/shared/brands.js.map +1 -1
  553. package/dist/utils/cel-escape.d.ts +12 -0
  554. package/dist/utils/cel-escape.d.ts.map +1 -0
  555. package/dist/utils/cel-escape.js +19 -0
  556. package/dist/utils/cel-escape.js.map +1 -0
  557. package/package.json +7 -2
@@ -16,13 +16,28 @@
16
16
  * Deploys: App + CNPG PostgreSQL + Valkey cache + Inngest workflow engine.
17
17
  * All connection strings are automatically wired into the app's environment.
18
18
  */
19
- export declare const WebAppWithProcessingConfigSchema: import("arktype/internal/methods/object.ts").ObjectType<{
19
+ export declare const WebAppWithProcessingConfigSchema: import("arktype/internal/variants/object.ts").ObjectType<{
20
20
  name: string;
21
21
  app: {
22
22
  image: string;
23
23
  port?: number;
24
24
  replicas?: number;
25
25
  env?: Record<string, string>;
26
+ envFrom?: ({
27
+ secretRef: {
28
+ name: string;
29
+ optional?: boolean;
30
+ };
31
+ prefix?: string;
32
+ configMapRef?: never;
33
+ } | {
34
+ configMapRef: {
35
+ name: string;
36
+ optional?: boolean;
37
+ };
38
+ prefix?: string;
39
+ secretRef?: never;
40
+ })[];
26
41
  };
27
42
  database: {
28
43
  storageSize: string;
@@ -36,6 +51,16 @@ export declare const WebAppWithProcessingConfigSchema: import("arktype/internal/
36
51
  signingKey: string;
37
52
  sdkUrl?: string[];
38
53
  replicas?: number;
54
+ resources?: {
55
+ requests?: {
56
+ cpu?: string;
57
+ memory?: string;
58
+ };
59
+ limits?: {
60
+ cpu?: string;
61
+ memory?: string;
62
+ };
63
+ };
39
64
  };
40
65
  namespace?: string;
41
66
  cache?: {
@@ -44,6 +69,35 @@ export declare const WebAppWithProcessingConfigSchema: import("arktype/internal/
44
69
  volumePermissions?: boolean;
45
70
  storageSize?: string;
46
71
  };
72
+ cnpgOperator?: {
73
+ name?: string;
74
+ namespace?: string;
75
+ version?: string;
76
+ installCRDs?: boolean;
77
+ replicaCount?: number;
78
+ monitoring?: {
79
+ enabled?: boolean;
80
+ };
81
+ resources?: {
82
+ requests?: {
83
+ cpu?: string;
84
+ memory?: string;
85
+ };
86
+ limits?: {
87
+ cpu?: string;
88
+ memory?: string;
89
+ };
90
+ };
91
+ customValues?: Record<string, unknown>;
92
+ shared?: boolean;
93
+ };
94
+ valkeyOperator?: {
95
+ name?: string;
96
+ namespace?: string;
97
+ version?: string;
98
+ customValues?: Record<string, unknown>;
99
+ shared?: boolean;
100
+ };
47
101
  }, {}>;
48
102
  /** Inferred config type — no separate interface needed. */
49
103
  export type WebAppWithProcessingConfig = typeof WebAppWithProcessingConfigSchema.infer;
@@ -51,10 +105,14 @@ export type WebAppWithProcessingConfig = typeof WebAppWithProcessingConfigSchema
51
105
  * Status schema for the full-stack web application deployment.
52
106
  * Exposes connection URLs and readiness for each component.
53
107
  */
54
- export declare const WebAppWithProcessingStatusSchema: import("arktype/internal/methods/object.ts").ObjectType<{
108
+ export declare const WebAppWithProcessingStatusSchema: import("arktype/internal/variants/object.ts").ObjectType<{
55
109
  ready: boolean;
56
110
  databaseUrl: string;
111
+ databaseHost: string;
112
+ databasePort: number;
57
113
  cacheUrl: string;
114
+ cacheHost: string;
115
+ cachePort: number;
58
116
  inngestUrl: string;
59
117
  appUrl: string;
60
118
  components: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/factories/webapp/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAmD3C,CAAC;AAEH,2DAA2D;AAC3D,MAAM,MAAM,0BAA0B,GAAG,OAAO,gCAAgC,CAAC,KAAK,CAAC;AAEvF;;;GAGG;AACH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;MAY3C,CAAC;AAEH,4BAA4B;AAC5B,MAAM,MAAM,0BAA0B,GAAG,OAAO,gCAAgC,CAAC,KAAK,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/factories/webapp/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAyBH;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6G3C,CAAC;AAEH,2DAA2D;AAC3D,MAAM,MAAM,0BAA0B,GAAG,OAAO,gCAAgC,CAAC,KAAK,CAAC;AAEvF;;;GAGG;AACH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;MAgB3C,CAAC;AAEH,4BAA4B;AAC5B,MAAM,MAAM,0BAA0B,GAAG,OAAO,gCAAgC,CAAC,KAAK,CAAC"}
@@ -11,6 +11,21 @@
11
11
  * @module
12
12
  */
13
13
  import { type } from 'arktype';
14
+ import { CnpgBootstrapConfigSchema } from '../cnpg/types.js';
15
+ import { ValkeyBootstrapConfigSchema } from '../valkey/types.js';
16
+ const resourceRequirementsSchemaShape = {
17
+ 'requests?': { 'cpu?': 'string', 'memory?': 'string' },
18
+ 'limits?': { 'cpu?': 'string', 'memory?': 'string' },
19
+ };
20
+ const envFromSourceSchema = type({
21
+ 'prefix?': 'string',
22
+ secretRef: { name: 'string', 'optional?': 'boolean' },
23
+ 'configMapRef?': 'never',
24
+ }).or({
25
+ 'prefix?': 'string',
26
+ configMapRef: { name: 'string', 'optional?': 'boolean' },
27
+ 'secretRef?': 'never',
28
+ });
14
29
  // ============================================================================
15
30
  // Config Schemas (source of truth) + Inferred Types
16
31
  // ============================================================================
@@ -35,6 +50,23 @@ export const WebAppWithProcessingConfigSchema = type({
35
50
  'replicas?': 'number',
36
51
  /** Additional environment variables. */
37
52
  'env?': 'Record<string, string>',
53
+ /**
54
+ * Inject all keys from Secrets or ConfigMaps as env vars via
55
+ * the container's `envFrom` field.
56
+ *
57
+ * **Each entry must have exactly one of** `secretRef` or `configMapRef`
58
+ * (not both, not neither). `prefix` and source `optional` are supported
59
+ * to match Kubernetes `V1EnvFromSource` / `V1SecretEnvSource` /
60
+ * `V1ConfigMapEnvSource` behavior.
61
+ *
62
+ * Note: in direct deployments, the composition prepends an inngest
63
+ * credentials Secret to this array. If you provide your own Secret
64
+ * containing `INNGEST_EVENT_KEY` or `INNGEST_SIGNING_KEY`, it will take
65
+ * precedence (last-write-wins in K8s envFrom ordering). KRO deployments
66
+ * mount only the generated credentials Secret because typed list fields
67
+ * cannot be safely concatenated in ResourceGraphDefinition YAML.
68
+ */
69
+ 'envFrom?': envFromSourceSchema.array(),
38
70
  },
39
71
  /** PostgreSQL database settings. */
40
72
  database: {
@@ -44,7 +76,7 @@ export const WebAppWithProcessingConfigSchema = type({
44
76
  storageSize: 'string',
45
77
  /** Storage class name (e.g. 'gp3', 'local-path'). */
46
78
  'storageClass?': 'string',
47
- /** Database name to create (default: derived from app name). */
79
+ /** Database name to create (default: 'app'). */
48
80
  'database?': 'string',
49
81
  /** Database owner (default: 'app'). */
50
82
  'owner?': 'string',
@@ -62,15 +94,56 @@ export const WebAppWithProcessingConfigSchema = type({
62
94
  },
63
95
  /** Inngest background processing settings. */
64
96
  processing: {
65
- /** Inngest event authentication key (hex string, required). */
97
+ /**
98
+ * Inngest event authentication key (hex string, required).
99
+ * In KRO mode this value is part of the custom resource spec before being
100
+ * copied into a generated Secret; restrict read access to webapp CRs.
101
+ */
66
102
  eventKey: 'string',
67
- /** Inngest request signing key (hex string, required). */
103
+ /**
104
+ * Inngest request signing key (hex string, required).
105
+ * In KRO mode this value is part of the custom resource spec before being
106
+ * copied into a generated Secret; restrict read access to webapp CRs.
107
+ */
68
108
  signingKey: 'string',
69
109
  /** SDK URLs to auto-sync functions from. */
70
110
  'sdkUrl?': 'string[]',
71
111
  /** Number of Inngest server replicas (default: 1). */
72
112
  'replicas?': 'number',
113
+ /** Pod resource requirements for the Inngest server. */
114
+ 'resources?': resourceRequirementsSchemaShape,
73
115
  },
116
+ /**
117
+ * CloudNativePG operator install settings. The composition uses
118
+ * `singleton(cnpgBootstrap, ...)` so app stacks consume a shared
119
+ * operator boundary instead of inlining operator bootstrap resources
120
+ * into every KRO graph.
121
+ *
122
+ * The schema embeds the full `CnpgBootstrapConfigSchema` made
123
+ * partial (every field optional) so every field the underlying
124
+ * bootstrap supports is available here without duplication:
125
+ * `name`, `namespace`, `version`, `installCRDs`, `replicaCount`,
126
+ * `monitoring`, `resources`, `customValues`, `shared`.
127
+ *
128
+ * Defaults applied by the composition when omitted:
129
+ * name: 'cnpg-operator'
130
+ * namespace: 'cnpg-system'
131
+ * shared: true (singleton — survives instance deletion)
132
+ *
133
+ * The defaults make the operator a shared cluster-level singleton:
134
+ * multiple `webAppWithProcessing` instances converge on the same install.
135
+ * `name`/`namespace` customize the install target, but the singleton identity
136
+ * is fixed by this composition's `cnpg-operator` singleton id.
137
+ */
138
+ 'cnpgOperator?': CnpgBootstrapConfigSchema.partial(),
139
+ /**
140
+ * Hyperspike Valkey operator install settings. Same singleton-consumption
141
+ * pattern and fixed composition singleton identity as `cnpgOperator`. Defaults:
142
+ * name: 'valkey-operator'
143
+ * namespace: 'valkey-operator-system'
144
+ * shared: true
145
+ */
146
+ 'valkeyOperator?': ValkeyBootstrapConfigSchema.partial(),
74
147
  });
75
148
  /**
76
149
  * Status schema for the full-stack web application deployment.
@@ -79,7 +152,11 @@ export const WebAppWithProcessingConfigSchema = type({
79
152
  export const WebAppWithProcessingStatusSchema = type({
80
153
  ready: 'boolean',
81
154
  databaseUrl: 'string',
155
+ databaseHost: 'string',
156
+ databasePort: 'number',
82
157
  cacheUrl: 'string',
158
+ cacheHost: 'string',
159
+ cachePort: 'number',
83
160
  inngestUrl: 'string',
84
161
  appUrl: 'string',
85
162
  components: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/factories/webapp/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,+EAA+E;AAC/E,oDAAoD;AACpD,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,IAAI,CAAC;IACnD,2DAA2D;IAC3D,IAAI,EAAE,QAAQ;IACd,wBAAwB;IACxB,YAAY,EAAE,QAAQ;IACtB,uCAAuC;IACvC,GAAG,EAAE;QACH,8CAA8C;QAC9C,KAAK,EAAE,QAAQ;QACf,sCAAsC;QACtC,OAAO,EAAE,QAAQ;QACjB,uCAAuC;QACvC,WAAW,EAAE,QAAQ;QACrB,wCAAwC;QACxC,MAAM,EAAE,wBAAwB;KACjC;IACD,oCAAoC;IACpC,QAAQ,EAAE;QACR,mDAAmD;QACnD,YAAY,EAAE,QAAQ;QACtB,2CAA2C;QAC3C,WAAW,EAAE,QAAQ;QACrB,qDAAqD;QACrD,eAAe,EAAE,QAAQ;QACzB,gEAAgE;QAChE,WAAW,EAAE,QAAQ;QACrB,uCAAuC;QACvC,QAAQ,EAAE,QAAQ;KACnB;IACD,4FAA4F;IAC5F,QAAQ,EAAE;QACR,4CAA4C;QAC5C,SAAS,EAAE,QAAQ;QACnB,uCAAuC;QACvC,WAAW,EAAE,QAAQ;QACrB,gDAAgD;QAChD,oBAAoB,EAAE,SAAS;QAC/B,+CAA+C;QAC/C,cAAc,EAAE,QAAQ;KACzB;IACD,8CAA8C;IAC9C,UAAU,EAAE;QACV,+DAA+D;QAC/D,QAAQ,EAAE,QAAQ;QAClB,0DAA0D;QAC1D,UAAU,EAAE,QAAQ;QACpB,4CAA4C;QAC5C,SAAS,EAAE,UAAU;QACrB,sDAAsD;QACtD,WAAW,EAAE,QAAQ;KACtB;CACF,CAAC,CAAC;AAKH;;;GAGG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,IAAI,CAAC;IACnD,KAAK,EAAE,SAAS;IAChB,WAAW,EAAE,QAAQ;IACrB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,QAAQ;IACpB,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE;QACV,GAAG,EAAE,SAAS;QACd,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,SAAS;KACnB;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/factories/webapp/types.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -87,13 +87,17 @@
87
87
  *
88
88
  * @packageDocumentation
89
89
  */
90
+ export { AspectApplicationError, AspectDefinitionError, allResources, append, aspect, hotReload, merge, metadata, override, replace, resources, slot, withAnnotations, withEnvFrom, withEnvVars, withHotReload, withImagePullPolicy, withLabels, withLocalWorkspace, withMetadata, withReplicas, withResourceDefaults, withServiceAccount, workloads, } from './core/aspects/index.js';
91
+ export type { AnnotationMap, EnvVarMap, HotReloadAspectOptions, HotReloadContainer, HotReloadVolume, LabelMap, LocalWorkspaceAspectOptions, } from './core/aspects/index.js';
92
+ export type { AppendOperation, ApplyAspectsOptions, AspectBuilder, AspectCardinality, AspectDefinition, AspectDiagnosticsPolicy, AspectFactoryTarget, AspectFactoryTargetBrand, AspectFactoryTargetFunction, AspectFieldPath, AspectMode, AspectOperation, AspectOperationKind, AspectOverridePatch, AspectOverrideSchemaForTarget, AspectPatchValue, AspectSafetyContext, AspectSelector, AspectSurface, AspectSurfaceForCommonKinds, AspectSurfaceForTarget, AspectSurfaceKind, AspectSurfaceKindForTarget, AspectTarget, AspectTargetGroup, AspectValidationPolicy, CommonAspectSchema, CommonAspectSchemaForTargets, CommonAspectSchemaKeys, CommonAspectSchemaValue, CommonAspectSurfaceForTargets, CommonAspectSurfaceKindForTargets, CompatibleAspectTargets, FactoryAspectTargetDescriptor, ImagePullPolicy, MergeOperation, MergeByNameOperation, MetadataAspectSurface, OverrideAspectSurface, PatchEachOperation, ReplaceOperation, ResourceAspectFactoryTarget, ResourceAspectMetadata, ResourceSpecOverrideSchema, ToYamlOptions, WorkloadPodTemplateAspectSchema, WorkloadAspectFactoryTarget, } from './core/aspects/types.js';
90
93
  export { kubernetesComposition } from './core/composition/imperative.js';
91
94
  export { createResource } from './core/proxy/create-resource.js';
92
95
  export { Cel, cel, externalRef } from './core/references/index.js';
93
96
  export type { ResourceBuilder, ResourceDependency, SchemaDefinition, SerializationContext, SerializationOptions, ValidationResult, } from './core/serialization/index.js';
94
97
  export { generateKroSchema, generateKroSchemaFromArktype, serializeResourceGraphToYaml, toResourceGraph, validateResourceGraph, } from './core/serialization/index.js';
95
98
  export { arktypeToKroSchema } from './core/serialization/schema.js';
96
- export type { ResolutionContext } from './core/types/deployment.js';
99
+ export { singleton } from './core/singleton/singleton.js';
100
+ export type { ResolutionContext, SingletonHandle, SingletonOwnedHandle, SingletonReferenceHandle, } from './core/types/deployment.js';
97
101
  export type * from './core/types/index.js';
98
102
  export type { CelEvaluationContext } from './core/types/references.js';
99
103
  export { CelEvaluationError } from './core/types/references.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwFG;AAOH,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,iBAAiB,EACjB,4BAA4B,EAC5B,4BAA4B,EAC5B,eAAe,EACf,qBAAqB,GACtB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,mBAAmB,uBAAuB,CAAC;AAC3C,YAAY,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,cAAc,sBAAsB,CAAC;AAErC,mBAAmB,iCAAiC,CAAC;AAMrD,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,oBAAoB,EACzB,uBAAuB,GACxB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAMlF,YAAY,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwFG;AAOH,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,YAAY,EACZ,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,SAAS,EACT,IAAI,EACJ,eAAe,EACf,WAAW,EACX,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,GACV,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,aAAa,EACb,SAAS,EACT,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,QAAQ,EACR,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,2BAA2B,EAC3B,eAAe,EACf,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,2BAA2B,EAC3B,sBAAsB,EACtB,iBAAiB,EACjB,0BAA0B,EAC1B,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,4BAA4B,EAC5B,sBAAsB,EACtB,uBAAuB,EACvB,6BAA6B,EAC7B,iCAAiC,EACjC,uBAAuB,EACvB,6BAA6B,EAC7B,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,EAC1B,aAAa,EACb,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,iBAAiB,EACjB,4BAA4B,EAC5B,4BAA4B,EAC5B,eAAe,EACf,qBAAqB,GACtB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AAEpC,mBAAmB,uBAAuB,CAAC;AAC3C,YAAY,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,cAAc,sBAAsB,CAAC;AAErC,mBAAmB,iCAAiC,CAAC;AAMrD,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,oBAAoB,EACzB,uBAAuB,GACxB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAMlF,YAAY,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -90,6 +90,8 @@
90
90
  // =============================================================================
91
91
  // 1. ESSENTIAL — Core APIs every user needs
92
92
  // =============================================================================
93
+ // Aspect helpers for typed resource customization
94
+ export { AspectApplicationError, AspectDefinitionError, allResources, append, aspect, hotReload, merge, metadata, override, replace, resources, slot, withAnnotations, withEnvFrom, withEnvVars, withHotReload, withImagePullPolicy, withLabels, withLocalWorkspace, withMetadata, withReplicas, withResourceDefaults, withServiceAccount, workloads, } from './core/aspects/index.js';
93
95
  // Imperative composition (define compositions with native TypeScript)
94
96
  export { kubernetesComposition } from './core/composition/imperative.js';
95
97
  // Resource factory (used inside resource builders)
@@ -100,6 +102,7 @@ export { Cel, cel, externalRef } from './core/references/index.js';
100
102
  export { generateKroSchema, generateKroSchemaFromArktype, serializeResourceGraphToYaml, toResourceGraph, validateResourceGraph, } from './core/serialization/index.js';
101
103
  // Schema conversion
102
104
  export { arktypeToKroSchema } from './core/serialization/schema.js';
105
+ export { singleton } from './core/singleton/singleton.js';
103
106
  export { CelEvaluationError } from './core/types/references.js';
104
107
  // Factory functions (all ecosystems)
105
108
  export * from './factories/index.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwFG;AAEH,gFAAgF;AAChF,4CAA4C;AAC5C,gFAAgF;AAEhF,sEAAsE;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,mDAAmD;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,mDAAmD;AACnD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AASnE,iDAAiD;AACjD,OAAO,EACL,iBAAiB,EACjB,4BAA4B,EAC5B,4BAA4B,EAC5B,eAAe,EACf,qBAAqB,GACtB,MAAM,+BAA+B,CAAC;AACvC,oBAAoB;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAKpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,qCAAqC;AACrC,cAAc,sBAAsB,CAAC;AAIrC,gFAAgF;AAChF,gEAAgE;AAChE,gFAAgF;AAEhF,OAAO,EAGL,uBAAuB,GACxB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAOlF,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AAEpC,gFAAgF;AAChF,oEAAoE;AACpE,gFAAgF;AAChF,EAAE;AACF,8EAA8E;AAC9E,yDAAyD;AACzD,EAAE;AACF,8EAA8E;AAC9E,qFAAqF;AACrF,qFAAqF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwFG;AAEH,gFAAgF;AAChF,4CAA4C;AAC5C,gFAAgF;AAEhF,kDAAkD;AAClD,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,YAAY,EACZ,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,SAAS,EACT,IAAI,EACJ,eAAe,EACf,WAAW,EACX,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,GACV,MAAM,yBAAyB,CAAC;AA2DjC,sEAAsE;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,mDAAmD;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,mDAAmD;AACnD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AASnE,iDAAiD;AACjD,OAAO,EACL,iBAAiB,EACjB,4BAA4B,EAC5B,4BAA4B,EAC5B,eAAe,EACf,qBAAqB,GACtB,MAAM,+BAA+B,CAAC;AACvC,oBAAoB;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAU1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,qCAAqC;AACrC,cAAc,sBAAsB,CAAC;AAIrC,gFAAgF;AAChF,gEAAgE;AAChE,gFAAgF;AAEhF,OAAO,EAGL,uBAAuB,GACxB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAOlF,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AAEpC,gFAAgF;AAChF,oEAAoE;AACpE,gFAAgF;AAChF,EAAE;AACF,8EAA8E;AAC9E,yDAAyD;AACzD,EAAE;AACF,8EAA8E;AAC9E,qFAAqF;AACrF,qFAAqF"}
@@ -29,20 +29,30 @@ export declare const NESTED_COMPOSITION_BRAND: unique symbol;
29
29
  * Brand symbol for CallableComposition objects
30
30
  */
31
31
  export declare const CALLABLE_COMPOSITION_BRAND: unique symbol;
32
+ /**
33
+ * Brand symbol for singleton handles.
34
+ */
35
+ export declare const SINGLETON_HANDLE_BRAND: unique symbol;
32
36
  /**
33
37
  * Regex pattern for matching __KUBERNETES_REF__ marker strings in values.
34
38
  *
35
39
  * Format: __KUBERNETES_REF_{resourceId}_{fieldPath}__
36
- * - resourceId: camelCase with optional hyphens/digits (e.g., 'database', 'inngestBootstrap1')
37
- * Hyphens are allowed for backward compatibility with older ID formats, though
38
- * current convention enforces camelCase (toCamelCase in executeNestedCompositionWithSpec).
39
- * - fieldPath: dot-separated path with optional $ for iteration (e.g., 'status.ready', 'spec.workers.$item.name')
40
+ * - resourceId: marker-safe resource id with optional single `_` segments.
41
+ * This permits underscores in resource ids while preventing matches from
42
+ * consuming across the `__` marker terminator.
43
+ * - fieldPath: dot-separated path with optional single `_` and `$` segments.
44
+ * Optional resource access uses Kro's `.?field` segment form.
45
+ * (e.g., 'status.ready', 'status.?loadBalancer', 'spec.workers.$item.name')
40
46
  * - Excludes __schema__ refs via negative lookahead
41
47
  *
42
- * This pattern is the single source of truth — all marker detection/resolution
43
- * code must use this constant to stay in sync. Callers must create their own
44
- * RegExp via `new RegExp(KUBERNETES_REF_MARKER_PATTERN.source, 'g')` to avoid
45
- * stateful lastIndex issues with the global flag.
48
+ * This grammar is the single source of truth — all marker detection/resolution
49
+ * code must use these constants to stay in sync. Callers must create their own
50
+ * RegExp via `new RegExp(..., 'g')` to avoid stateful lastIndex issues with
51
+ * the global flag.
46
52
  */
53
+ export declare const KUBERNETES_REF_MARKER_RESOURCE_ID_SOURCE = "[a-zA-Z0-9$-]+(?:_[a-zA-Z0-9$-]+)*";
54
+ export declare const KUBERNETES_REF_MARKER_FIELD_PATH_SOURCE = "(?:spec|status|metadata|data)(?:(?:[.$]|\\.\\?)[a-zA-Z0-9$-]+(?:_[a-zA-Z0-9$-]+)*)*";
55
+ export declare const KUBERNETES_REF_MARKER_SOURCE = "__KUBERNETES_REF_(__schema__|[a-zA-Z0-9$-]+(?:_[a-zA-Z0-9$-]+)*)_((?:spec|status|metadata|data)(?:(?:[.$]|\\.\\?)[a-zA-Z0-9$-]+(?:_[a-zA-Z0-9$-]+)*)*)__";
56
+ export declare const KUBERNETES_REF_SCHEMA_MARKER_SOURCE = "__KUBERNETES_REF___schema___((?:spec|status|metadata|data)(?:(?:[.$]|\\.\\?)[a-zA-Z0-9$-]+(?:_[a-zA-Z0-9$-]+)*)*)__";
47
57
  export declare const KUBERNETES_REF_MARKER_PATTERN: RegExp;
48
58
  //# sourceMappingURL=brands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"brands.d.ts","sourceRoot":"","sources":["../../src/shared/brands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,eAAsC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,oBAAoB,eAAsC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,oBAAoB,eAAsC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,wBAAwB,eAA0C,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,0BAA0B,eAA4C,CAAC;AAEpF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,6BAA6B,QAAyE,CAAC"}
1
+ {"version":3,"file":"brands.d.ts","sourceRoot":"","sources":["../../src/shared/brands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,eAAsC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,oBAAoB,eAAsC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,oBAAoB,eAAsC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,wBAAwB,eAA0C,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,0BAA0B,eAA4C,CAAC;AAEpF;;GAEG;AACH,eAAO,MAAM,sBAAsB,eAAwC,CAAC;AAE5E;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,wCAAwC,uCAAuC,CAAC;AAC7F,eAAO,MAAM,uCAAuC,wFAAwF,CAAC;AAC7I,eAAO,MAAM,4BAA4B,6JAA6H,CAAC;AACvK,eAAO,MAAM,mCAAmC,wHAA+E,CAAC;AAChI,eAAO,MAAM,6BAA6B,QAEzC,CAAC"}
@@ -29,20 +29,30 @@ export const NESTED_COMPOSITION_BRAND = Symbol.for('TypeKro.NestedComposition');
29
29
  * Brand symbol for CallableComposition objects
30
30
  */
31
31
  export const CALLABLE_COMPOSITION_BRAND = Symbol.for('TypeKro.CallableComposition');
32
+ /**
33
+ * Brand symbol for singleton handles.
34
+ */
35
+ export const SINGLETON_HANDLE_BRAND = Symbol.for('TypeKro.SingletonHandle');
32
36
  /**
33
37
  * Regex pattern for matching __KUBERNETES_REF__ marker strings in values.
34
38
  *
35
39
  * Format: __KUBERNETES_REF_{resourceId}_{fieldPath}__
36
- * - resourceId: camelCase with optional hyphens/digits (e.g., 'database', 'inngestBootstrap1')
37
- * Hyphens are allowed for backward compatibility with older ID formats, though
38
- * current convention enforces camelCase (toCamelCase in executeNestedCompositionWithSpec).
39
- * - fieldPath: dot-separated path with optional $ for iteration (e.g., 'status.ready', 'spec.workers.$item.name')
40
+ * - resourceId: marker-safe resource id with optional single `_` segments.
41
+ * This permits underscores in resource ids while preventing matches from
42
+ * consuming across the `__` marker terminator.
43
+ * - fieldPath: dot-separated path with optional single `_` and `$` segments.
44
+ * Optional resource access uses Kro's `.?field` segment form.
45
+ * (e.g., 'status.ready', 'status.?loadBalancer', 'spec.workers.$item.name')
40
46
  * - Excludes __schema__ refs via negative lookahead
41
47
  *
42
- * This pattern is the single source of truth — all marker detection/resolution
43
- * code must use this constant to stay in sync. Callers must create their own
44
- * RegExp via `new RegExp(KUBERNETES_REF_MARKER_PATTERN.source, 'g')` to avoid
45
- * stateful lastIndex issues with the global flag.
48
+ * This grammar is the single source of truth — all marker detection/resolution
49
+ * code must use these constants to stay in sync. Callers must create their own
50
+ * RegExp via `new RegExp(..., 'g')` to avoid stateful lastIndex issues with
51
+ * the global flag.
46
52
  */
47
- export const KUBERNETES_REF_MARKER_PATTERN = /(?:__KUBERNETES_REF_)(?!_schema__)([a-zA-Z0-9-]+)_([a-zA-Z0-9.$]+)__/;
53
+ export const KUBERNETES_REF_MARKER_RESOURCE_ID_SOURCE = '[a-zA-Z0-9$-]+(?:_[a-zA-Z0-9$-]+)*';
54
+ export const KUBERNETES_REF_MARKER_FIELD_PATH_SOURCE = '(?:spec|status|metadata|data)(?:(?:[.$]|\\.\\?)[a-zA-Z0-9$-]+(?:_[a-zA-Z0-9$-]+)*)*';
55
+ export const KUBERNETES_REF_MARKER_SOURCE = `__KUBERNETES_REF_(__schema__|${KUBERNETES_REF_MARKER_RESOURCE_ID_SOURCE})_(${KUBERNETES_REF_MARKER_FIELD_PATH_SOURCE})__`;
56
+ export const KUBERNETES_REF_SCHEMA_MARKER_SOURCE = `__KUBERNETES_REF___schema___(${KUBERNETES_REF_MARKER_FIELD_PATH_SOURCE})__`;
57
+ export const KUBERNETES_REF_MARKER_PATTERN = new RegExp(`(?:__KUBERNETES_REF_)(?!__schema__)(${KUBERNETES_REF_MARKER_RESOURCE_ID_SOURCE})_(${KUBERNETES_REF_MARKER_FIELD_PATH_SOURCE})__`);
48
58
  //# sourceMappingURL=brands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"brands.js","sourceRoot":"","sources":["../../src/shared/brands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAEpF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,sEAAsE,CAAC"}
1
+ {"version":3,"file":"brands.js","sourceRoot":"","sources":["../../src/shared/brands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAEpF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AAE5E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAAG,oCAAoC,CAAC;AAC7F,MAAM,CAAC,MAAM,uCAAuC,GAAG,qFAAqF,CAAC;AAC7I,MAAM,CAAC,MAAM,4BAA4B,GAAG,gCAAgC,wCAAwC,MAAM,uCAAuC,KAAK,CAAC;AACvK,MAAM,CAAC,MAAM,mCAAmC,GAAG,gCAAgC,uCAAuC,KAAK,CAAC;AAChI,MAAM,CAAC,MAAM,6BAA6B,GAAG,IAAI,MAAM,CACrD,uCAAuC,wCAAwC,MAAM,uCAAuC,KAAK,CAClI,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Escape a string for safe embedding inside a CEL string literal.
3
+ *
4
+ * Handles backslash, double-quote, newline, carriage return, and tab.
5
+ * Must be used everywhere we embed literal text in CEL output.
6
+ *
7
+ * This is the **single source of truth** for CEL string escaping —
8
+ * all modules that need to produce CEL string literals should import
9
+ * from here rather than maintaining inline copies.
10
+ */
11
+ export declare function escapeCelString(value: string): string;
12
+ //# sourceMappingURL=cel-escape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cel-escape.d.ts","sourceRoot":"","sources":["../../src/utils/cel-escape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOrD"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Escape a string for safe embedding inside a CEL string literal.
3
+ *
4
+ * Handles backslash, double-quote, newline, carriage return, and tab.
5
+ * Must be used everywhere we embed literal text in CEL output.
6
+ *
7
+ * This is the **single source of truth** for CEL string escaping —
8
+ * all modules that need to produce CEL string literals should import
9
+ * from here rather than maintaining inline copies.
10
+ */
11
+ export function escapeCelString(value) {
12
+ return value
13
+ .replace(/\\/g, '\\\\')
14
+ .replace(/"/g, '\\"')
15
+ .replace(/\n/g, '\\n')
16
+ .replace(/\r/g, '\\r')
17
+ .replace(/\t/g, '\\t');
18
+ }
19
+ //# sourceMappingURL=cel-escape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cel-escape.js","sourceRoot":"","sources":["../../src/utils/cel-escape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAO,KAAK;SACT,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC3B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typekro",
3
- "version": "0.8.0",
3
+ "version": "0.10.0",
4
4
  "description": "A control plane aware framework for orchestrating kubernetes resources like a programmer.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -14,6 +14,10 @@
14
14
  "import": "./dist/index.js",
15
15
  "types": "./dist/index.d.ts"
16
16
  },
17
+ "./aspects": {
18
+ "import": "./dist/aspects.js",
19
+ "types": "./dist/aspects.d.ts"
20
+ },
17
21
  "./simple": {
18
22
  "import": "./dist/factories/simple/index.js",
19
23
  "types": "./dist/factories/simple/index.d.ts"
@@ -101,6 +105,7 @@
101
105
  "test:watch": "bun test --watch --timeout 10000 $(find test -name '*.test.ts' | grep -v integration)",
102
106
  "test:all": "bun run test && bun run test:integration:all",
103
107
  "test:integration": "./scripts/run-integration-tests.sh",
108
+ "test:integration:required": "REQUIRE_CLUSTER_TESTS=true ./scripts/run-integration-tests.sh",
104
109
  "test:integration:debug": "DEBUG_MODE=true ./scripts/run-integration-tests.sh",
105
110
  "typecheck": "bun run typecheck:lib && bun run typecheck:examples && bun run typecheck:tests",
106
111
  "typecheck:lib": "bun tsc --noEmit",
@@ -166,7 +171,7 @@
166
171
  "acorn": "8.15.0",
167
172
  "alchemy": "^0.62.3",
168
173
  "angular-expressions": "1.5.1",
169
- "arktype": "^2.1.20",
174
+ "arktype": "^2.2.0",
170
175
  "cel-js": "^0.8.2",
171
176
  "estraverse": "^5.3.0",
172
177
  "ignore": "^7.0.5",