@vibesdotdev/config 0.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 (620) hide show
  1. package/README.md +85 -0
  2. package/SPEC.md +71 -0
  3. package/dist/adapters/cli/flags.d.ts +75 -0
  4. package/dist/adapters/cli/flags.d.ts.map +1 -0
  5. package/dist/adapters/cli/flags.js +221 -0
  6. package/dist/adapters/cli/flags.js.map +1 -0
  7. package/dist/adapters/cli/index.d.ts +12 -0
  8. package/dist/adapters/cli/index.d.ts.map +1 -0
  9. package/dist/adapters/cli/index.js +9 -0
  10. package/dist/adapters/cli/index.js.map +1 -0
  11. package/dist/adapters/cli/mappings.d.ts +17 -0
  12. package/dist/adapters/cli/mappings.d.ts.map +1 -0
  13. package/dist/adapters/cli/mappings.js +32 -0
  14. package/dist/adapters/cli/mappings.js.map +1 -0
  15. package/dist/adapters/cli/prompts.d.ts +28 -0
  16. package/dist/adapters/cli/prompts.d.ts.map +1 -0
  17. package/dist/adapters/cli/prompts.js +55 -0
  18. package/dist/adapters/cli/prompts.js.map +1 -0
  19. package/dist/adapters/cli/schemas/flags.schema.d.ts +8 -0
  20. package/dist/adapters/cli/schemas/flags.schema.d.ts.map +1 -0
  21. package/dist/adapters/cli/schemas/flags.schema.js +2 -0
  22. package/dist/adapters/cli/schemas/flags.schema.js.map +1 -0
  23. package/dist/adapters/cli/schemas/mappings.schema.d.ts +2 -0
  24. package/dist/adapters/cli/schemas/mappings.schema.d.ts.map +1 -0
  25. package/dist/adapters/cli/schemas/mappings.schema.js +2 -0
  26. package/dist/adapters/cli/schemas/mappings.schema.js.map +1 -0
  27. package/dist/adapters/cli/schemas/prompts.schema.d.ts +5 -0
  28. package/dist/adapters/cli/schemas/prompts.schema.d.ts.map +1 -0
  29. package/dist/adapters/cli/schemas/prompts.schema.js +2 -0
  30. package/dist/adapters/cli/schemas/prompts.schema.js.map +1 -0
  31. package/dist/adapters/cli/schemas/wizard.schema.d.ts +19 -0
  32. package/dist/adapters/cli/schemas/wizard.schema.d.ts.map +1 -0
  33. package/dist/adapters/cli/schemas/wizard.schema.js +2 -0
  34. package/dist/adapters/cli/schemas/wizard.schema.js.map +1 -0
  35. package/dist/adapters/cli/wizard.d.ts +33 -0
  36. package/dist/adapters/cli/wizard.d.ts.map +1 -0
  37. package/dist/adapters/cli/wizard.js +77 -0
  38. package/dist/adapters/cli/wizard.js.map +1 -0
  39. package/dist/browser/index.d.ts +7 -0
  40. package/dist/browser/index.d.ts.map +1 -0
  41. package/dist/browser/index.js +4 -0
  42. package/dist/browser/index.js.map +1 -0
  43. package/dist/cli/settings.descriptor.d.ts +9 -0
  44. package/dist/cli/settings.descriptor.d.ts.map +1 -0
  45. package/dist/cli/settings.descriptor.js +18 -0
  46. package/dist/cli/settings.descriptor.js.map +1 -0
  47. package/dist/cli/types.d.ts +57 -0
  48. package/dist/cli/types.d.ts.map +1 -0
  49. package/dist/cli/types.js +9 -0
  50. package/dist/cli/types.js.map +1 -0
  51. package/dist/client/index.d.ts +19 -0
  52. package/dist/client/index.d.ts.map +1 -0
  53. package/dist/client/index.js +145 -0
  54. package/dist/client/index.js.map +1 -0
  55. package/dist/client/storage.d.ts +48 -0
  56. package/dist/client/storage.d.ts.map +1 -0
  57. package/dist/client/storage.js +46 -0
  58. package/dist/client/storage.js.map +1 -0
  59. package/dist/collection/collection.d.ts +46 -0
  60. package/dist/collection/collection.d.ts.map +1 -0
  61. package/dist/collection/collection.js +93 -0
  62. package/dist/collection/collection.js.map +1 -0
  63. package/dist/collection/index.d.ts +6 -0
  64. package/dist/collection/index.d.ts.map +1 -0
  65. package/dist/collection/index.js +5 -0
  66. package/dist/collection/index.js.map +1 -0
  67. package/dist/common/index.d.ts +7 -0
  68. package/dist/common/index.d.ts.map +1 -0
  69. package/dist/common/index.js +4 -0
  70. package/dist/common/index.js.map +1 -0
  71. package/dist/config.context.descriptor.d.ts +21 -0
  72. package/dist/config.context.descriptor.d.ts.map +1 -0
  73. package/dist/config.context.descriptor.js +11 -0
  74. package/dist/config.context.descriptor.js.map +1 -0
  75. package/dist/config.plugin.d.ts +15 -0
  76. package/dist/config.plugin.d.ts.map +1 -0
  77. package/dist/config.plugin.js +166 -0
  78. package/dist/config.plugin.js.map +1 -0
  79. package/dist/crud/base-types.d.ts +10 -0
  80. package/dist/crud/base-types.d.ts.map +1 -0
  81. package/dist/crud/base-types.js +10 -0
  82. package/dist/crud/base-types.js.map +1 -0
  83. package/dist/crud/index.d.ts +4 -0
  84. package/dist/crud/index.d.ts.map +1 -0
  85. package/dist/crud/index.js +2 -0
  86. package/dist/crud/index.js.map +1 -0
  87. package/dist/crud/schemas/base-types.schema.d.ts +19 -0
  88. package/dist/crud/schemas/base-types.schema.d.ts.map +1 -0
  89. package/dist/crud/schemas/base-types.schema.js +2 -0
  90. package/dist/crud/schemas/base-types.schema.js.map +1 -0
  91. package/dist/crud/schemas/shared.schema.d.ts +13 -0
  92. package/dist/crud/schemas/shared.schema.d.ts.map +1 -0
  93. package/dist/crud/schemas/shared.schema.js +2 -0
  94. package/dist/crud/schemas/shared.schema.js.map +1 -0
  95. package/dist/crud/shared.d.ts +8 -0
  96. package/dist/crud/shared.d.ts.map +1 -0
  97. package/dist/crud/shared.js +8 -0
  98. package/dist/crud/shared.js.map +1 -0
  99. package/dist/crud/types.d.ts +250 -0
  100. package/dist/crud/types.d.ts.map +1 -0
  101. package/dist/crud/types.js +22 -0
  102. package/dist/crud/types.js.map +1 -0
  103. package/dist/docs/environment.docs.descriptor.d.ts +4 -0
  104. package/dist/docs/environment.docs.descriptor.d.ts.map +1 -0
  105. package/dist/docs/environment.docs.descriptor.js +383 -0
  106. package/dist/docs/environment.docs.descriptor.js.map +1 -0
  107. package/dist/docs/manifests.docs.descriptor.d.ts +4 -0
  108. package/dist/docs/manifests.docs.descriptor.d.ts.map +1 -0
  109. package/dist/docs/manifests.docs.descriptor.js +503 -0
  110. package/dist/docs/manifests.docs.descriptor.js.map +1 -0
  111. package/dist/docs/validation.docs.descriptor.d.ts +4 -0
  112. package/dist/docs/validation.docs.descriptor.d.ts.map +1 -0
  113. package/dist/docs/validation.docs.descriptor.js +441 -0
  114. package/dist/docs/validation.docs.descriptor.js.map +1 -0
  115. package/dist/doctor.d.ts +42 -0
  116. package/dist/doctor.d.ts.map +1 -0
  117. package/dist/doctor.js +119 -0
  118. package/dist/doctor.js.map +1 -0
  119. package/dist/env.d.ts +28 -0
  120. package/dist/env.d.ts.map +1 -0
  121. package/dist/env.js +75 -0
  122. package/dist/env.js.map +1 -0
  123. package/dist/env.runtime.d.ts +19 -0
  124. package/dist/env.runtime.d.ts.map +1 -0
  125. package/dist/env.runtime.js +37 -0
  126. package/dist/env.runtime.js.map +1 -0
  127. package/dist/environment/current.d.ts +32 -0
  128. package/dist/environment/current.d.ts.map +1 -0
  129. package/dist/environment/current.js +91 -0
  130. package/dist/environment/current.js.map +1 -0
  131. package/dist/environment/environment.config.descriptor.d.ts +11 -0
  132. package/dist/environment/environment.config.descriptor.d.ts.map +1 -0
  133. package/dist/environment/environment.config.descriptor.js +51 -0
  134. package/dist/environment/environment.config.descriptor.js.map +1 -0
  135. package/dist/environment/environment.config.schema.d.ts +47 -0
  136. package/dist/environment/environment.config.schema.d.ts.map +1 -0
  137. package/dist/environment/environment.config.schema.js +19 -0
  138. package/dist/environment/environment.config.schema.js.map +1 -0
  139. package/dist/environment/environment.local.descriptor.d.ts +11 -0
  140. package/dist/environment/environment.local.descriptor.d.ts.map +1 -0
  141. package/dist/environment/environment.local.descriptor.js +42 -0
  142. package/dist/environment/environment.local.descriptor.js.map +1 -0
  143. package/dist/environment/environment.plugin.d.ts +9 -0
  144. package/dist/environment/environment.plugin.d.ts.map +1 -0
  145. package/dist/environment/environment.plugin.js +27 -0
  146. package/dist/environment/environment.plugin.js.map +1 -0
  147. package/dist/environment/environment.production.descriptor.d.ts +10 -0
  148. package/dist/environment/environment.production.descriptor.d.ts.map +1 -0
  149. package/dist/environment/environment.production.descriptor.js +37 -0
  150. package/dist/environment/environment.production.descriptor.js.map +1 -0
  151. package/dist/environment/environment.staging.descriptor.d.ts +11 -0
  152. package/dist/environment/environment.staging.descriptor.d.ts.map +1 -0
  153. package/dist/environment/environment.staging.descriptor.js +22 -0
  154. package/dist/environment/environment.staging.descriptor.js.map +1 -0
  155. package/dist/environment/index.d.ts +8 -0
  156. package/dist/environment/index.d.ts.map +1 -0
  157. package/dist/environment/index.js +9 -0
  158. package/dist/environment/index.js.map +1 -0
  159. package/dist/environment/kinds/environment.default.d.ts +23 -0
  160. package/dist/environment/kinds/environment.default.d.ts.map +1 -0
  161. package/dist/environment/kinds/environment.default.js +49 -0
  162. package/dist/environment/kinds/environment.default.js.map +1 -0
  163. package/dist/environment/kinds/environment.interface.d.ts +7 -0
  164. package/dist/environment/kinds/environment.interface.d.ts.map +1 -0
  165. package/dist/environment/kinds/environment.interface.js +7 -0
  166. package/dist/environment/kinds/environment.interface.js.map +1 -0
  167. package/dist/environment/kinds/environment.kind.d.ts +10 -0
  168. package/dist/environment/kinds/environment.kind.d.ts.map +1 -0
  169. package/dist/environment/kinds/environment.kind.js +57 -0
  170. package/dist/environment/kinds/environment.kind.js.map +1 -0
  171. package/dist/environment/kinds/environment.schema.d.ts +34 -0
  172. package/dist/environment/kinds/environment.schema.d.ts.map +1 -0
  173. package/dist/environment/kinds/environment.schema.js +46 -0
  174. package/dist/environment/kinds/environment.schema.js.map +1 -0
  175. package/dist/environment/kinds/index.d.ts +8 -0
  176. package/dist/environment/kinds/index.d.ts.map +1 -0
  177. package/dist/environment/kinds/index.js +7 -0
  178. package/dist/environment/kinds/index.js.map +1 -0
  179. package/dist/environment/kinds/schemas/environment.interface.schema.d.ts +11 -0
  180. package/dist/environment/kinds/schemas/environment.interface.schema.d.ts.map +1 -0
  181. package/dist/environment/kinds/schemas/environment.interface.schema.js +2 -0
  182. package/dist/environment/kinds/schemas/environment.interface.schema.js.map +1 -0
  183. package/dist/environment/kinds/schemas/environment.schema.d.ts +30 -0
  184. package/dist/environment/kinds/schemas/environment.schema.d.ts.map +1 -0
  185. package/dist/environment/kinds/schemas/environment.schema.js +2 -0
  186. package/dist/environment/kinds/schemas/environment.schema.js.map +1 -0
  187. package/dist/environment/schemas/current.schema.d.ts +20 -0
  188. package/dist/environment/schemas/current.schema.d.ts.map +1 -0
  189. package/dist/environment/schemas/current.schema.js +2 -0
  190. package/dist/environment/schemas/current.schema.js.map +1 -0
  191. package/dist/environment/schemas/environment.config.schema.d.ts +4 -0
  192. package/dist/environment/schemas/environment.config.schema.d.ts.map +1 -0
  193. package/dist/environment/schemas/environment.config.schema.js +2 -0
  194. package/dist/environment/schemas/environment.config.schema.js.map +1 -0
  195. package/dist/extensions/index.d.ts +8 -0
  196. package/dist/extensions/index.d.ts.map +1 -0
  197. package/dist/extensions/index.js +8 -0
  198. package/dist/extensions/index.js.map +1 -0
  199. package/dist/extensions/registry.d.ts +41 -0
  200. package/dist/extensions/registry.d.ts.map +1 -0
  201. package/dist/extensions/registry.js +142 -0
  202. package/dist/extensions/registry.js.map +1 -0
  203. package/dist/extensions/types.d.ts +101 -0
  204. package/dist/extensions/types.d.ts.map +1 -0
  205. package/dist/extensions/types.js +8 -0
  206. package/dist/extensions/types.js.map +1 -0
  207. package/dist/form/core/field-resolver.d.ts +42 -0
  208. package/dist/form/core/field-resolver.d.ts.map +1 -0
  209. package/dist/form/core/field-resolver.js +293 -0
  210. package/dist/form/core/field-resolver.js.map +1 -0
  211. package/dist/form/core/groups.d.ts +20 -0
  212. package/dist/form/core/groups.d.ts.map +1 -0
  213. package/dist/form/core/groups.js +69 -0
  214. package/dist/form/core/groups.js.map +1 -0
  215. package/dist/form/core/index.d.ts +8 -0
  216. package/dist/form/core/index.d.ts.map +1 -0
  217. package/dist/form/core/index.js +6 -0
  218. package/dist/form/core/index.js.map +1 -0
  219. package/dist/form/core/nested-utils.d.ts +40 -0
  220. package/dist/form/core/nested-utils.d.ts.map +1 -0
  221. package/dist/form/core/nested-utils.js +98 -0
  222. package/dist/form/core/nested-utils.js.map +1 -0
  223. package/dist/form/core/schemas/validation.schema.d.ts +9 -0
  224. package/dist/form/core/schemas/validation.schema.d.ts.map +1 -0
  225. package/dist/form/core/schemas/validation.schema.js +2 -0
  226. package/dist/form/core/schemas/validation.schema.js.map +1 -0
  227. package/dist/form/core/types.d.ts +103 -0
  228. package/dist/form/core/types.d.ts.map +1 -0
  229. package/dist/form/core/types.js +2 -0
  230. package/dist/form/core/types.js.map +1 -0
  231. package/dist/form/core/validation.d.ts +23 -0
  232. package/dist/form/core/validation.d.ts.map +1 -0
  233. package/dist/form/core/validation.js +103 -0
  234. package/dist/form/core/validation.js.map +1 -0
  235. package/dist/form/core/visibility.d.ts +37 -0
  236. package/dist/form/core/visibility.d.ts.map +1 -0
  237. package/dist/form/core/visibility.js +128 -0
  238. package/dist/form/core/visibility.js.map +1 -0
  239. package/dist/form/index.d.ts +8 -0
  240. package/dist/form/index.d.ts.map +1 -0
  241. package/dist/form/index.js +2 -0
  242. package/dist/form/index.js.map +1 -0
  243. package/dist/index.d.ts +18 -0
  244. package/dist/index.d.ts.map +1 -0
  245. package/dist/index.js +18 -0
  246. package/dist/index.js.map +1 -0
  247. package/dist/loader/cli/index.d.ts +61 -0
  248. package/dist/loader/cli/index.d.ts.map +1 -0
  249. package/dist/loader/cli/index.js +263 -0
  250. package/dist/loader/cli/index.js.map +1 -0
  251. package/dist/loader/cli/loaders.d.ts +13 -0
  252. package/dist/loader/cli/loaders.d.ts.map +1 -0
  253. package/dist/loader/cli/loaders.js +132 -0
  254. package/dist/loader/cli/loaders.js.map +1 -0
  255. package/dist/loader/cli/types.d.ts +152 -0
  256. package/dist/loader/cli/types.d.ts.map +1 -0
  257. package/dist/loader/cli/types.js +5 -0
  258. package/dist/loader/cli/types.js.map +1 -0
  259. package/dist/loader/cli/utils.d.ts +53 -0
  260. package/dist/loader/cli/utils.d.ts.map +1 -0
  261. package/dist/loader/cli/utils.js +198 -0
  262. package/dist/loader/cli/utils.js.map +1 -0
  263. package/dist/loader/client.d.ts +18 -0
  264. package/dist/loader/client.d.ts.map +1 -0
  265. package/dist/loader/client.js +109 -0
  266. package/dist/loader/client.js.map +1 -0
  267. package/dist/loader/discovery.d.ts +48 -0
  268. package/dist/loader/discovery.d.ts.map +1 -0
  269. package/dist/loader/discovery.js +253 -0
  270. package/dist/loader/discovery.js.map +1 -0
  271. package/dist/loader/file-loader.d.ts +17 -0
  272. package/dist/loader/file-loader.d.ts.map +1 -0
  273. package/dist/loader/file-loader.js +237 -0
  274. package/dist/loader/file-loader.js.map +1 -0
  275. package/dist/loader/index.d.ts +9 -0
  276. package/dist/loader/index.d.ts.map +1 -0
  277. package/dist/loader/index.js +8 -0
  278. package/dist/loader/index.js.map +1 -0
  279. package/dist/loader/index.server.d.ts +66 -0
  280. package/dist/loader/index.server.d.ts.map +1 -0
  281. package/dist/loader/index.server.js +256 -0
  282. package/dist/loader/index.server.js.map +1 -0
  283. package/dist/loader/merge.d.ts +88 -0
  284. package/dist/loader/merge.d.ts.map +1 -0
  285. package/dist/loader/merge.js +301 -0
  286. package/dist/loader/merge.js.map +1 -0
  287. package/dist/loader/schemas/merge.schema.d.ts +8 -0
  288. package/dist/loader/schemas/merge.schema.d.ts.map +1 -0
  289. package/dist/loader/schemas/merge.schema.js +2 -0
  290. package/dist/loader/schemas/merge.schema.js.map +1 -0
  291. package/dist/loader/schemas/validation.schema.d.ts +17 -0
  292. package/dist/loader/schemas/validation.schema.d.ts.map +1 -0
  293. package/dist/loader/schemas/validation.schema.js +2 -0
  294. package/dist/loader/schemas/validation.schema.js.map +1 -0
  295. package/dist/loader/server.d.ts +3 -0
  296. package/dist/loader/server.d.ts.map +1 -0
  297. package/dist/loader/server.js +2 -0
  298. package/dist/loader/server.js.map +1 -0
  299. package/dist/loader/types.d.ts +136 -0
  300. package/dist/loader/types.d.ts.map +1 -0
  301. package/dist/loader/types.js +24 -0
  302. package/dist/loader/types.js.map +1 -0
  303. package/dist/loader/validation.d.ts +59 -0
  304. package/dist/loader/validation.d.ts.map +1 -0
  305. package/dist/loader/validation.js +218 -0
  306. package/dist/loader/validation.js.map +1 -0
  307. package/dist/manifest/builder.d.ts +172 -0
  308. package/dist/manifest/builder.d.ts.map +1 -0
  309. package/dist/manifest/builder.js +336 -0
  310. package/dist/manifest/builder.js.map +1 -0
  311. package/dist/manifest/config-manifest.d.ts +199 -0
  312. package/dist/manifest/config-manifest.d.ts.map +1 -0
  313. package/dist/manifest/config-manifest.js +388 -0
  314. package/dist/manifest/config-manifest.js.map +1 -0
  315. package/dist/manifest/index.d.ts +10 -0
  316. package/dist/manifest/index.d.ts.map +1 -0
  317. package/dist/manifest/index.js +20 -0
  318. package/dist/manifest/index.js.map +1 -0
  319. package/dist/manifest/schema.d.ts +460 -0
  320. package/dist/manifest/schema.d.ts.map +1 -0
  321. package/dist/manifest/schema.js +187 -0
  322. package/dist/manifest/schema.js.map +1 -0
  323. package/dist/manifest/schemas/builder.schema.d.ts +20 -0
  324. package/dist/manifest/schemas/builder.schema.d.ts.map +1 -0
  325. package/dist/manifest/schemas/builder.schema.js +2 -0
  326. package/dist/manifest/schemas/builder.schema.js.map +1 -0
  327. package/dist/manifest/schemas/config-manifest.schema.d.ts +2 -0
  328. package/dist/manifest/schemas/config-manifest.schema.d.ts.map +1 -0
  329. package/dist/manifest/schemas/config-manifest.schema.js +2 -0
  330. package/dist/manifest/schemas/config-manifest.schema.js.map +1 -0
  331. package/dist/manifest/schemas/schema.schema.d.ts +83 -0
  332. package/dist/manifest/schemas/schema.schema.d.ts.map +1 -0
  333. package/dist/manifest/schemas/schema.schema.js +2 -0
  334. package/dist/manifest/schemas/schema.schema.js.map +1 -0
  335. package/dist/manifest/types.d.ts +563 -0
  336. package/dist/manifest/types.d.ts.map +1 -0
  337. package/dist/manifest/types.js +9 -0
  338. package/dist/manifest/types.js.map +1 -0
  339. package/dist/routing/index.d.ts +29 -0
  340. package/dist/routing/index.d.ts.map +1 -0
  341. package/dist/routing/index.js +35 -0
  342. package/dist/routing/index.js.map +1 -0
  343. package/dist/routing/merge.d.ts +164 -0
  344. package/dist/routing/merge.d.ts.map +1 -0
  345. package/dist/routing/merge.js +460 -0
  346. package/dist/routing/merge.js.map +1 -0
  347. package/dist/routing/registry.d.ts +145 -0
  348. package/dist/routing/registry.d.ts.map +1 -0
  349. package/dist/routing/registry.js +459 -0
  350. package/dist/routing/registry.js.map +1 -0
  351. package/dist/routing/schemas/merge.schema.d.ts +5 -0
  352. package/dist/routing/schemas/merge.schema.d.ts.map +1 -0
  353. package/dist/routing/schemas/merge.schema.js +2 -0
  354. package/dist/routing/schemas/merge.schema.js.map +1 -0
  355. package/dist/routing/types.d.ts +358 -0
  356. package/dist/routing/types.d.ts.map +1 -0
  357. package/dist/routing/types.js +89 -0
  358. package/dist/routing/types.js.map +1 -0
  359. package/dist/schema/extend-zod.d.ts +137 -0
  360. package/dist/schema/extend-zod.d.ts.map +1 -0
  361. package/dist/schema/extend-zod.js +243 -0
  362. package/dist/schema/extend-zod.js.map +1 -0
  363. package/dist/schema/index.d.ts +9 -0
  364. package/dist/schema/index.d.ts.map +1 -0
  365. package/dist/schema/index.js +10 -0
  366. package/dist/schema/index.js.map +1 -0
  367. package/dist/schema/references.d.ts +9 -0
  368. package/dist/schema/references.d.ts.map +1 -0
  369. package/dist/schema/references.js +9 -0
  370. package/dist/schema/references.js.map +1 -0
  371. package/dist/schema/resolver.d.ts +45 -0
  372. package/dist/schema/resolver.d.ts.map +1 -0
  373. package/dist/schema/resolver.js +267 -0
  374. package/dist/schema/resolver.js.map +1 -0
  375. package/dist/schema/schemas/extend-zod.schema.d.ts +16 -0
  376. package/dist/schema/schemas/extend-zod.schema.d.ts.map +1 -0
  377. package/dist/schema/schemas/extend-zod.schema.js +2 -0
  378. package/dist/schema/schemas/extend-zod.schema.js.map +1 -0
  379. package/dist/schema/schemas/references.schema.d.ts +70 -0
  380. package/dist/schema/schemas/references.schema.d.ts.map +1 -0
  381. package/dist/schema/schemas/references.schema.js +2 -0
  382. package/dist/schema/schemas/references.schema.js.map +1 -0
  383. package/dist/schemas/collection.d.ts +31 -0
  384. package/dist/schemas/collection.d.ts.map +1 -0
  385. package/dist/schemas/collection.js +22 -0
  386. package/dist/schemas/collection.js.map +1 -0
  387. package/dist/schemas/config-manifest-descriptor.d.ts +495 -0
  388. package/dist/schemas/config-manifest-descriptor.d.ts.map +1 -0
  389. package/dist/schemas/config-manifest-descriptor.js +210 -0
  390. package/dist/schemas/config-manifest-descriptor.js.map +1 -0
  391. package/dist/schemas/config-registry-state.d.ts +8 -0
  392. package/dist/schemas/config-registry-state.d.ts.map +1 -0
  393. package/dist/schemas/config-registry-state.js +6 -0
  394. package/dist/schemas/config-registry-state.js.map +1 -0
  395. package/dist/schemas/doctor.schema.d.ts +25 -0
  396. package/dist/schemas/doctor.schema.d.ts.map +1 -0
  397. package/dist/schemas/doctor.schema.js +2 -0
  398. package/dist/schemas/doctor.schema.js.map +1 -0
  399. package/dist/schemas/index.d.ts +8 -0
  400. package/dist/schemas/index.d.ts.map +1 -0
  401. package/dist/schemas/index.js +21 -0
  402. package/dist/schemas/index.js.map +1 -0
  403. package/dist/server/index.d.ts +5 -0
  404. package/dist/server/index.d.ts.map +1 -0
  405. package/dist/server/index.js +4 -0
  406. package/dist/server/index.js.map +1 -0
  407. package/dist/services/config-accessor.d.ts +40 -0
  408. package/dist/services/config-accessor.d.ts.map +1 -0
  409. package/dist/services/config-accessor.js +180 -0
  410. package/dist/services/config-accessor.js.map +1 -0
  411. package/dist/services/config-storage/index.d.ts +8 -0
  412. package/dist/services/config-storage/index.d.ts.map +1 -0
  413. package/dist/services/config-storage/index.js +7 -0
  414. package/dist/services/config-storage/index.js.map +1 -0
  415. package/dist/services/config-storage/service.d.ts +63 -0
  416. package/dist/services/config-storage/service.d.ts.map +1 -0
  417. package/dist/services/config-storage/service.js +234 -0
  418. package/dist/services/config-storage/service.js.map +1 -0
  419. package/dist/services/config.d.ts +3 -0
  420. package/dist/services/config.d.ts.map +1 -0
  421. package/dist/services/config.js +30 -0
  422. package/dist/services/config.js.map +1 -0
  423. package/dist/services/encryption.d.ts +114 -0
  424. package/dist/services/encryption.d.ts.map +1 -0
  425. package/dist/services/encryption.js +232 -0
  426. package/dist/services/encryption.js.map +1 -0
  427. package/dist/services/index.d.ts +12 -0
  428. package/dist/services/index.d.ts.map +1 -0
  429. package/dist/services/index.js +16 -0
  430. package/dist/services/index.js.map +1 -0
  431. package/dist/services/loader/loader.descriptor.d.ts +103 -0
  432. package/dist/services/loader/loader.descriptor.d.ts.map +1 -0
  433. package/dist/services/loader/loader.descriptor.js +60 -0
  434. package/dist/services/loader/loader.descriptor.js.map +1 -0
  435. package/dist/services/loader/loader.impl.cloud.d.ts +55 -0
  436. package/dist/services/loader/loader.impl.cloud.d.ts.map +1 -0
  437. package/dist/services/loader/loader.impl.cloud.js +182 -0
  438. package/dist/services/loader/loader.impl.cloud.js.map +1 -0
  439. package/dist/services/loader/loader.impl.consumer.d.ts +48 -0
  440. package/dist/services/loader/loader.impl.consumer.d.ts.map +1 -0
  441. package/dist/services/loader/loader.impl.consumer.js +175 -0
  442. package/dist/services/loader/loader.impl.consumer.js.map +1 -0
  443. package/dist/services/loader/loader.impl.consumer.local-first.d.ts +59 -0
  444. package/dist/services/loader/loader.impl.consumer.local-first.d.ts.map +1 -0
  445. package/dist/services/loader/loader.impl.consumer.local-first.js +347 -0
  446. package/dist/services/loader/loader.impl.consumer.local-first.js.map +1 -0
  447. package/dist/services/manifest-utils.d.ts +47 -0
  448. package/dist/services/manifest-utils.d.ts.map +1 -0
  449. package/dist/services/manifest-utils.js +105 -0
  450. package/dist/services/manifest-utils.js.map +1 -0
  451. package/dist/services/schemas/config-accessor.schema.d.ts +10 -0
  452. package/dist/services/schemas/config-accessor.schema.d.ts.map +1 -0
  453. package/dist/services/schemas/config-accessor.schema.js +2 -0
  454. package/dist/services/schemas/config-accessor.schema.js.map +1 -0
  455. package/dist/services/schemas/encryption.schema.d.ts +22 -0
  456. package/dist/services/schemas/encryption.schema.d.ts.map +1 -0
  457. package/dist/services/schemas/encryption.schema.js +2 -0
  458. package/dist/services/schemas/encryption.schema.js.map +1 -0
  459. package/dist/services/schemas/manifest-utils.schema.d.ts +4 -0
  460. package/dist/services/schemas/manifest-utils.schema.d.ts.map +1 -0
  461. package/dist/services/schemas/manifest-utils.schema.js +2 -0
  462. package/dist/services/schemas/manifest-utils.schema.js.map +1 -0
  463. package/dist/settings/assemble.d.ts +28 -0
  464. package/dist/settings/assemble.d.ts.map +1 -0
  465. package/dist/settings/assemble.js +30 -0
  466. package/dist/settings/assemble.js.map +1 -0
  467. package/dist/settings/index.d.ts +10 -0
  468. package/dist/settings/index.d.ts.map +1 -0
  469. package/dist/settings/index.js +10 -0
  470. package/dist/settings/index.js.map +1 -0
  471. package/dist/settings/settings-section.schema.d.ts +49 -0
  472. package/dist/settings/settings-section.schema.d.ts.map +1 -0
  473. package/dist/settings/settings-section.schema.js +70 -0
  474. package/dist/settings/settings-section.schema.js.map +1 -0
  475. package/dist/storage/adapter.d.ts +11 -0
  476. package/dist/storage/adapter.d.ts.map +1 -0
  477. package/dist/storage/adapter.js +8 -0
  478. package/dist/storage/adapter.js.map +1 -0
  479. package/dist/storage/index.d.ts +8 -0
  480. package/dist/storage/index.d.ts.map +1 -0
  481. package/dist/storage/index.js +8 -0
  482. package/dist/storage/index.js.map +1 -0
  483. package/dist/storage/schemas.d.ts +257 -0
  484. package/dist/storage/schemas.d.ts.map +1 -0
  485. package/dist/storage/schemas.js +179 -0
  486. package/dist/storage/schemas.js.map +1 -0
  487. package/dist/storage/types.d.ts +74 -0
  488. package/dist/storage/types.d.ts.map +1 -0
  489. package/dist/storage/types.js +7 -0
  490. package/dist/storage/types.js.map +1 -0
  491. package/dist/system-constants.d.ts +95 -0
  492. package/dist/system-constants.d.ts.map +1 -0
  493. package/dist/system-constants.js +110 -0
  494. package/dist/system-constants.js.map +1 -0
  495. package/package.json +417 -0
  496. package/src/adapters/cli/flags.ts +260 -0
  497. package/src/adapters/cli/index.ts +24 -0
  498. package/src/adapters/cli/mappings.ts +43 -0
  499. package/src/adapters/cli/prompts.ts +70 -0
  500. package/src/adapters/cli/schemas/flags.schema.ts +8 -0
  501. package/src/adapters/cli/schemas/mappings.schema.ts +3 -0
  502. package/src/adapters/cli/schemas/prompts.schema.ts +4 -0
  503. package/src/adapters/cli/schemas/wizard.schema.ts +21 -0
  504. package/src/adapters/cli/wizard.ts +106 -0
  505. package/src/adapters/web/components/ManifestForm.svelte +817 -0
  506. package/src/browser/index.ts +86 -0
  507. package/src/cli/settings.descriptor.ts +23 -0
  508. package/src/cli/types.ts +59 -0
  509. package/src/client/index.ts +169 -0
  510. package/src/client/storage.ts +76 -0
  511. package/src/collection/collection.ts +121 -0
  512. package/src/collection/index.ts +6 -0
  513. package/src/common/index.ts +86 -0
  514. package/src/config.context.descriptor.ts +12 -0
  515. package/src/config.plugin.ts +214 -0
  516. package/src/crud/base-types.ts +10 -0
  517. package/src/crud/index.ts +15 -0
  518. package/src/crud/schemas/base-types.schema.ts +20 -0
  519. package/src/crud/schemas/shared.schema.ts +14 -0
  520. package/src/crud/shared.ts +8 -0
  521. package/src/crud/types.ts +299 -0
  522. package/src/docs/environment.docs.descriptor.ts +385 -0
  523. package/src/docs/manifests.docs.descriptor.ts +505 -0
  524. package/src/docs/validation.docs.descriptor.ts +443 -0
  525. package/src/doctor.ts +143 -0
  526. package/src/env.runtime.ts +49 -0
  527. package/src/env.ts +91 -0
  528. package/src/environment/current.ts +108 -0
  529. package/src/environment/environment.config.descriptor.ts +60 -0
  530. package/src/environment/environment.config.schema.ts +24 -0
  531. package/src/environment/environment.local.descriptor.ts +45 -0
  532. package/src/environment/environment.plugin.ts +31 -0
  533. package/src/environment/environment.production.descriptor.ts +40 -0
  534. package/src/environment/environment.staging.descriptor.ts +25 -0
  535. package/src/environment/index.ts +22 -0
  536. package/src/environment/kinds/environment.default.ts +57 -0
  537. package/src/environment/kinds/environment.interface.ts +10 -0
  538. package/src/environment/kinds/environment.kind.ts +69 -0
  539. package/src/environment/kinds/environment.schema.ts +57 -0
  540. package/src/environment/kinds/index.ts +8 -0
  541. package/src/environment/kinds/schemas/environment.interface.schema.ts +11 -0
  542. package/src/environment/kinds/schemas/environment.schema.ts +24 -0
  543. package/src/environment/schemas/current.schema.ts +21 -0
  544. package/src/environment/schemas/environment.config.schema.ts +3 -0
  545. package/src/extensions/index.ts +26 -0
  546. package/src/extensions/registry.ts +179 -0
  547. package/src/extensions/types.ts +123 -0
  548. package/src/form/core/field-resolver.ts +380 -0
  549. package/src/form/core/groups.ts +96 -0
  550. package/src/form/core/index.ts +41 -0
  551. package/src/form/core/nested-utils.ts +115 -0
  552. package/src/form/core/schemas/validation.schema.ts +9 -0
  553. package/src/form/core/types.ts +115 -0
  554. package/src/form/core/validation.ts +137 -0
  555. package/src/form/core/visibility.ts +172 -0
  556. package/src/form/index.ts +36 -0
  557. package/src/index.ts +69 -0
  558. package/src/js-yaml.d.ts +4 -0
  559. package/src/loader/cli/index.ts +386 -0
  560. package/src/loader/cli/loaders.ts +153 -0
  561. package/src/loader/cli/types.ts +181 -0
  562. package/src/loader/cli/utils.ts +236 -0
  563. package/src/loader/client.ts +140 -0
  564. package/src/loader/discovery.ts +291 -0
  565. package/src/loader/file-loader.ts +262 -0
  566. package/src/loader/index.server.ts +389 -0
  567. package/src/loader/index.ts +18 -0
  568. package/src/loader/merge.ts +366 -0
  569. package/src/loader/schemas/merge.schema.ts +8 -0
  570. package/src/loader/schemas/validation.schema.ts +18 -0
  571. package/src/loader/server.ts +15 -0
  572. package/src/loader/types.ts +142 -0
  573. package/src/loader/validation.ts +261 -0
  574. package/src/manifest/builder.ts +452 -0
  575. package/src/manifest/config-manifest.ts +482 -0
  576. package/src/manifest/index.ts +92 -0
  577. package/src/manifest/schema.ts +249 -0
  578. package/src/manifest/schemas/builder.schema.ts +33 -0
  579. package/src/manifest/schemas/config-manifest.schema.ts +1 -0
  580. package/src/manifest/schemas/schema.schema.ts +99 -0
  581. package/src/manifest/types.ts +726 -0
  582. package/src/routing/index.ts +105 -0
  583. package/src/routing/merge.ts +589 -0
  584. package/src/routing/registry.ts +595 -0
  585. package/src/routing/schemas/merge.schema.ts +6 -0
  586. package/src/routing/types.ts +470 -0
  587. package/src/schema/extend-zod.ts +289 -0
  588. package/src/schema/index.ts +44 -0
  589. package/src/schema/references.ts +21 -0
  590. package/src/schema/resolver.ts +343 -0
  591. package/src/schema/schemas/extend-zod.schema.ts +16 -0
  592. package/src/schema/schemas/references.schema.ts +86 -0
  593. package/src/schemas/collection.ts +38 -0
  594. package/src/schemas/config-manifest-descriptor.ts +259 -0
  595. package/src/schemas/config-registry-state.ts +13 -0
  596. package/src/schemas/doctor.schema.ts +27 -0
  597. package/src/schemas/index.ts +53 -0
  598. package/src/server/index.ts +4 -0
  599. package/src/services/config-accessor.ts +218 -0
  600. package/src/services/config-storage/index.ts +8 -0
  601. package/src/services/config-storage/service.ts +355 -0
  602. package/src/services/config.ts +37 -0
  603. package/src/services/encryption.ts +260 -0
  604. package/src/services/index.ts +34 -0
  605. package/src/services/loader/loader.descriptor.ts +96 -0
  606. package/src/services/loader/loader.impl.cloud.ts +214 -0
  607. package/src/services/loader/loader.impl.consumer.local-first.ts +417 -0
  608. package/src/services/loader/loader.impl.consumer.ts +213 -0
  609. package/src/services/manifest-utils.ts +119 -0
  610. package/src/services/schemas/config-accessor.schema.ts +11 -0
  611. package/src/services/schemas/encryption.schema.ts +23 -0
  612. package/src/services/schemas/manifest-utils.schema.ts +4 -0
  613. package/src/settings/assemble.ts +46 -0
  614. package/src/settings/index.ts +19 -0
  615. package/src/settings/settings-section.schema.ts +84 -0
  616. package/src/storage/adapter.ts +12 -0
  617. package/src/storage/index.ts +48 -0
  618. package/src/storage/schemas.ts +215 -0
  619. package/src/storage/types.ts +88 -0
  620. package/src/system-constants.ts +121 -0
@@ -0,0 +1,460 @@
1
+ /**
2
+ * Manifest Merging Utilities
3
+ *
4
+ * Functions for merging base manifests with variants to create
5
+ * a complete manifest with variant-specific fields, groups, and steps.
6
+ */
7
+ /**
8
+ * Type guard to check if a schema is a ZodObject with merge capability
9
+ */
10
+ function isZodObjectWithMerge(schema) {
11
+ return (schema !== null &&
12
+ typeof schema === 'object' &&
13
+ 'merge' in schema &&
14
+ typeof schema.merge === 'function');
15
+ }
16
+ // Field Merging
17
+ /**
18
+ * Merge base manifest fields with variant fields
19
+ * Variant fields override/extend base fields
20
+ *
21
+ * @param baseFields - Fields from the base manifest
22
+ * @param variantFields - Fields from the variant
23
+ * @returns Merged fields
24
+ */
25
+ export function mergeFields(baseFields, variantFields) {
26
+ return {
27
+ ...baseFields,
28
+ ...variantFields
29
+ };
30
+ }
31
+ // Group Merging
32
+ /**
33
+ * Merge base manifest groups with variant groups
34
+ * Variant groups override by ID or are added
35
+ *
36
+ * @param baseGroups - Groups from the base manifest
37
+ * @param variantGroups - Groups from the variant
38
+ * @returns Merged groups sorted by order
39
+ */
40
+ export function mergeGroups(baseGroups = [], variantGroups = []) {
41
+ const groupMap = new Map();
42
+ // Add base groups
43
+ for (const group of baseGroups) {
44
+ groupMap.set(group.id, group);
45
+ }
46
+ // Override/add variant groups
47
+ for (const group of variantGroups) {
48
+ const existing = groupMap.get(group.id);
49
+ if (existing) {
50
+ // Merge with existing
51
+ groupMap.set(group.id, {
52
+ ...existing,
53
+ ...group
54
+ });
55
+ }
56
+ else {
57
+ groupMap.set(group.id, group);
58
+ }
59
+ }
60
+ // Sort by order
61
+ return Array.from(groupMap.values()).sort((a, b) => (a.order ?? 100) - (b.order ?? 100));
62
+ }
63
+ // Form Step Merging
64
+ /**
65
+ * Get the group ID a field belongs to
66
+ */
67
+ function getFieldGroup(fields, fieldKey) {
68
+ return fields[fieldKey]?.ui?.group;
69
+ }
70
+ /**
71
+ * Inject variant fields into form steps by matching group IDs
72
+ *
73
+ * For each step, finds variant fields whose group matches:
74
+ * 1. The step ID itself
75
+ * 2. The group of any field already in the step
76
+ *
77
+ * @param baseSteps - Form steps from base manifest
78
+ * @param variantFields - Fields from the variant
79
+ * @param allFields - All merged fields (base + variant)
80
+ * @returns Enhanced steps with variant fields injected
81
+ */
82
+ export function injectVariantFieldsIntoSteps(baseSteps, variantFields, allFields) {
83
+ return baseSteps.map((step) => {
84
+ // Collect groups that this step is associated with
85
+ const stepGroups = new Set();
86
+ // The step ID itself might be a group
87
+ stepGroups.add(step.id);
88
+ // Add groups from existing step fields
89
+ for (const fieldKey of step.fields) {
90
+ const group = getFieldGroup(allFields, fieldKey);
91
+ if (group) {
92
+ stepGroups.add(group);
93
+ }
94
+ }
95
+ // Find variant fields that should be added to this step
96
+ const variantFieldsForStep = Object.entries(variantFields)
97
+ .filter(([_, meta]) => {
98
+ const fieldGroup = meta.ui?.group;
99
+ return fieldGroup && stepGroups.has(fieldGroup);
100
+ })
101
+ .sort((a, b) => (a[1].ui?.order ?? 100) - (b[1].ui?.order ?? 100))
102
+ .map(([key]) => key);
103
+ // Only add fields that aren't already in the step
104
+ const existingFields = new Set(step.fields);
105
+ const newFields = variantFieldsForStep.filter((f) => !existingFields.has(f));
106
+ if (newFields.length === 0) {
107
+ return step;
108
+ }
109
+ return {
110
+ ...step,
111
+ fields: [...step.fields, ...newFields]
112
+ };
113
+ });
114
+ }
115
+ /**
116
+ * Merge form configuration with variant
117
+ *
118
+ * If variant has explicit step overrides, uses those.
119
+ * Otherwise, auto-injects variant fields by group matching.
120
+ *
121
+ * @param baseForm - Form config from base manifest
122
+ * @param variant - The variant to merge
123
+ * @param allFields - All merged fields
124
+ * @returns Merged form configuration
125
+ */
126
+ export function mergeFormConfig(baseForm, variant, allFields) {
127
+ if (!baseForm)
128
+ return baseForm;
129
+ // If variant has explicit step overrides, use them
130
+ if (variant.stepOverrides) {
131
+ return {
132
+ ...baseForm,
133
+ steps: variant.stepOverrides
134
+ };
135
+ }
136
+ // If no steps in base, nothing to merge
137
+ if (!baseForm.steps) {
138
+ return baseForm;
139
+ }
140
+ // Auto-inject variant fields into steps by group
141
+ const enhancedSteps = injectVariantFieldsIntoSteps(baseForm.steps, variant.fields, allFields);
142
+ return {
143
+ ...baseForm,
144
+ steps: enhancedSteps
145
+ };
146
+ }
147
+ const DEFAULT_MERGE_OPTIONS = {
148
+ mergeSchemas: true,
149
+ injectIntoSteps: true
150
+ };
151
+ /**
152
+ * Merge a base manifest with a variant to create a complete manifest
153
+ *
154
+ * @param base - The base record manifest
155
+ * @param variant - The variant to merge
156
+ * @param options - Merge options
157
+ * @returns The merged manifest
158
+ */
159
+ export function mergeManifestWithVariant(base, variant, options = {}) {
160
+ const opts = { ...DEFAULT_MERGE_OPTIONS, ...options };
161
+ // Merge fields
162
+ const mergedFields = mergeFields(base.fields, variant.fields);
163
+ // Merge groups
164
+ const mergedGroups = mergeGroups(base.groups, variant.groups);
165
+ // Build merged manifest
166
+ const merged = {
167
+ ...base,
168
+ fields: mergedFields,
169
+ groups: mergedGroups
170
+ };
171
+ // Merge schema if requested and variant has schema
172
+ if (opts.mergeSchemas && variant.schema) {
173
+ // For Zod schemas, we can use .merge() if they're both objects
174
+ // This is a simplified approach - complex schema merging may need more logic
175
+ try {
176
+ // Check if both schemas have merge capability (ZodObject)
177
+ if (isZodObjectWithMerge(base.schema) && isZodObjectWithMerge(variant.schema)) {
178
+ merged.schema = base.schema.merge(variant.schema);
179
+ }
180
+ else {
181
+ // Fall back to using variant schema for validation
182
+ // This is a limitation - complex schemas need manual handling
183
+ merged.schema = variant.schema;
184
+ }
185
+ }
186
+ catch {
187
+ // If merge fails, keep base schema
188
+ // Variant schema validation should happen separately
189
+ }
190
+ }
191
+ // Merge CRUD form config if present
192
+ if (base.crud?.form && opts.injectIntoSteps) {
193
+ merged.crud = {
194
+ ...base.crud,
195
+ form: mergeFormConfig(base.crud.form, variant, mergedFields)
196
+ };
197
+ }
198
+ return merged;
199
+ }
200
+ // Surface Override Helpers
201
+ /**
202
+ * Get surface-specific overrides from a variant
203
+ *
204
+ * @param variant - The variant to get overrides from
205
+ * @param surface - Target surface
206
+ * @returns Field overrides for the surface, or empty object
207
+ */
208
+ export function getVariantOverrides(variant, surface) {
209
+ return variant.overrides?.[surface] ?? {};
210
+ }
211
+ /**
212
+ * Check if a variant has overrides for a specific surface
213
+ */
214
+ export function hasVariantOverrides(variant, surface) {
215
+ const overrides = variant.overrides?.[surface];
216
+ return overrides !== undefined && Object.keys(overrides).length > 0;
217
+ }
218
+ // Field Visibility with Variants
219
+ /**
220
+ * Get all field keys from a merged manifest (base + variant)
221
+ *
222
+ * @param base - Base manifest
223
+ * @param variant - Optional variant
224
+ * @returns Array of all field keys
225
+ */
226
+ export function getAllFieldKeys(base, variant) {
227
+ const fields = new Set(Object.keys(base.fields));
228
+ if (variant) {
229
+ for (const key of Object.keys(variant.fields)) {
230
+ fields.add(key);
231
+ }
232
+ }
233
+ return Array.from(fields);
234
+ }
235
+ /**
236
+ * Determine which fields should be visible based on variant
237
+ *
238
+ * With routing, base fields are always visible (unless hidden by rules),
239
+ * and variant fields are only visible when their variant is active.
240
+ *
241
+ * @param baseFields - Fields from base manifest
242
+ * @param activeVariant - Currently active variant (or undefined)
243
+ * @returns Set of visible field keys
244
+ */
245
+ export function getVisibleFieldsWithVariant(baseFields, activeVariant) {
246
+ const visible = new Set();
247
+ // Base fields are always potentially visible
248
+ // (actual visibility determined by rules)
249
+ for (const key of Object.keys(baseFields)) {
250
+ visible.add(key);
251
+ }
252
+ // Add variant fields when variant is active
253
+ if (activeVariant) {
254
+ for (const key of Object.keys(activeVariant.fields)) {
255
+ visible.add(key);
256
+ }
257
+ }
258
+ return visible;
259
+ }
260
+ // Default Value Merging
261
+ /**
262
+ * Merge default values from base and variant
263
+ * Variant defaults win on conflict
264
+ *
265
+ * @param baseDefaults - Defaults from base manifest/schema
266
+ * @param variantDefaults - Defaults from variant
267
+ * @returns Merged defaults
268
+ */
269
+ export function mergeDefaults(baseDefaults, variantDefaults) {
270
+ if (!variantDefaults) {
271
+ return baseDefaults;
272
+ }
273
+ return {
274
+ ...baseDefaults,
275
+ ...variantDefaults
276
+ };
277
+ }
278
+ // Nested Variant Merging
279
+ /**
280
+ * Prefix all field keys in a variant with a path prefix
281
+ * Used for nested routing where variant fields need to be namespaced
282
+ *
283
+ * @param variant - The variant to prefix
284
+ * @param pathPrefix - The dot-notation prefix (e.g., 'agents.orchestration')
285
+ * @returns Fields with prefixed keys
286
+ */
287
+ export function prefixVariantFields(variant, pathPrefix) {
288
+ const prefixed = {};
289
+ for (const [key, meta] of Object.entries(variant.fields)) {
290
+ const prefixedKey = `${pathPrefix}.${key}`;
291
+ prefixed[prefixedKey] = {
292
+ ...meta,
293
+ ui: {
294
+ ...meta.ui,
295
+ // Also prefix the group if it exists
296
+ group: meta.ui.group ? `${pathPrefix}.${meta.ui.group}` : meta.ui.group
297
+ }
298
+ };
299
+ }
300
+ return prefixed;
301
+ }
302
+ /**
303
+ * Prefix all groups in a variant with a path prefix
304
+ *
305
+ * @param groups - The groups to prefix
306
+ * @param pathPrefix - The dot-notation prefix
307
+ * @returns Groups with prefixed IDs
308
+ */
309
+ export function prefixVariantGroups(groups, pathPrefix) {
310
+ if (!groups)
311
+ return [];
312
+ return groups.map((group) => ({
313
+ ...group,
314
+ id: `${pathPrefix}.${group.id}`
315
+ }));
316
+ }
317
+ /**
318
+ * Merge multiple nested variants into base fields
319
+ * Each active variant's fields are prefixed with their path
320
+ *
321
+ * @param baseFields - Fields from the base manifest
322
+ * @param activeVariants - Map of active nested variants keyed by path
323
+ * @returns Merged fields with nested variant fields prefixed by path
324
+ */
325
+ export function mergeNestedVariantFields(baseFields, activeVariants) {
326
+ let merged = { ...baseFields };
327
+ for (const [path, activeVariant] of activeVariants) {
328
+ if (activeVariant.enabled && activeVariant.variant) {
329
+ const prefixedFields = prefixVariantFields(activeVariant.variant, path);
330
+ merged = { ...merged, ...prefixedFields };
331
+ }
332
+ }
333
+ return merged;
334
+ }
335
+ /**
336
+ * Merge multiple nested variants' groups into base groups
337
+ *
338
+ * @param baseGroups - Groups from the base manifest
339
+ * @param activeVariants - Map of active nested variants keyed by path
340
+ * @returns Merged groups sorted by order
341
+ */
342
+ export function mergeNestedVariantGroups(baseGroups, activeVariants) {
343
+ const groupMap = new Map();
344
+ // Add base groups
345
+ for (const group of baseGroups ?? []) {
346
+ groupMap.set(group.id, group);
347
+ }
348
+ // Add variant groups (prefixed)
349
+ for (const [path, activeVariant] of activeVariants) {
350
+ if (activeVariant.enabled && activeVariant.variant?.groups) {
351
+ const prefixedGroups = prefixVariantGroups(activeVariant.variant.groups, path);
352
+ for (const group of prefixedGroups) {
353
+ const existing = groupMap.get(group.id);
354
+ if (existing) {
355
+ groupMap.set(group.id, { ...existing, ...group });
356
+ }
357
+ else {
358
+ groupMap.set(group.id, group);
359
+ }
360
+ }
361
+ }
362
+ }
363
+ return Array.from(groupMap.values()).sort((a, b) => (a.order ?? 100) - (b.order ?? 100));
364
+ }
365
+ /**
366
+ * Merge a manifest with multiple active nested variants
367
+ *
368
+ * @param base - The base record manifest
369
+ * @param activeVariants - Map of active nested variants keyed by path
370
+ * @param options - Merge options
371
+ * @returns The merged manifest
372
+ */
373
+ export function mergeManifestWithNestedVariants(base, activeVariants, options = {}) {
374
+ const _opts = { ...DEFAULT_MERGE_OPTIONS, ...options };
375
+ // Merge fields from all active variants
376
+ const mergedFields = mergeNestedVariantFields(base.fields, activeVariants);
377
+ // Merge groups from all active variants
378
+ const mergedGroups = mergeNestedVariantGroups(base.groups, activeVariants);
379
+ // Build merged manifest
380
+ const merged = {
381
+ ...base,
382
+ fields: mergedFields,
383
+ groups: mergedGroups
384
+ };
385
+ // Nested-variant schemas are not merged; validation stays at base schema + per-path.
386
+ return merged;
387
+ }
388
+ /**
389
+ * Get all field keys visible based on active nested variants
390
+ *
391
+ * @param baseFields - Fields from base manifest
392
+ * @param activeVariants - Map of active nested variants
393
+ * @returns Set of visible field keys
394
+ */
395
+ export function getVisibleFieldsWithNestedVariants(baseFields, activeVariants) {
396
+ const visible = new Set();
397
+ // Base fields are always potentially visible
398
+ for (const key of Object.keys(baseFields)) {
399
+ visible.add(key);
400
+ }
401
+ // Add variant fields when their section is enabled
402
+ for (const [path, activeVariant] of activeVariants) {
403
+ if (activeVariant.enabled && activeVariant.variant) {
404
+ for (const key of Object.keys(activeVariant.variant.fields)) {
405
+ visible.add(`${path}.${key}`);
406
+ }
407
+ }
408
+ }
409
+ return visible;
410
+ }
411
+ /**
412
+ * Merge default values from base and multiple nested variants
413
+ *
414
+ * @param baseDefaults - Defaults from base manifest
415
+ * @param activeVariants - Map of active nested variants
416
+ * @returns Merged defaults with nested values
417
+ */
418
+ export function mergeNestedDefaults(baseDefaults, activeVariants) {
419
+ const merged = { ...baseDefaults };
420
+ for (const [path, activeVariant] of activeVariants) {
421
+ if (activeVariant.enabled && activeVariant.variant?.defaults) {
422
+ // Set nested defaults at the path
423
+ setValueAtPath(merged, path, {
424
+ ...(getValueAtPath(merged, path) ?? {}),
425
+ ...activeVariant.variant.defaults
426
+ });
427
+ }
428
+ }
429
+ return merged;
430
+ }
431
+ /**
432
+ * Helper to get a value at a dot-notation path
433
+ */
434
+ function getValueAtPath(obj, path) {
435
+ const parts = path.split('.');
436
+ let current = obj;
437
+ for (const part of parts) {
438
+ if (current == null || typeof current !== 'object') {
439
+ return undefined;
440
+ }
441
+ current = current[part];
442
+ }
443
+ return current;
444
+ }
445
+ /**
446
+ * Helper to set a value at a dot-notation path
447
+ */
448
+ function setValueAtPath(obj, path, value) {
449
+ const parts = path.split('.');
450
+ let current = obj;
451
+ for (let i = 0; i < parts.length - 1; i++) {
452
+ const part = parts[i];
453
+ if (!(part in current) || typeof current[part] !== 'object') {
454
+ current[part] = {};
455
+ }
456
+ current = current[part];
457
+ }
458
+ current[parts[parts.length - 1]] = value;
459
+ }
460
+ //# sourceMappingURL=merge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/routing/merge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Variant Registry
3
+ *
4
+ * Generic registry for manifest variants with lazy loading support.
5
+ * Can be used for providers, agents, or any discriminated config type.
6
+ */
7
+ import { type ManifestVariant, type ManifestRouting, type ResolvedVariant, type NestedRouting, type ResolvedNestedVariant, type ActiveNestedVariant } from './types.ts';
8
+ /**
9
+ * Register a variant for a manifest
10
+ *
11
+ * @param manifestId - The manifest this variant belongs to
12
+ * @param variant - The variant to register
13
+ */
14
+ export declare function registerVariant(manifestId: string, variant: ManifestVariant): void;
15
+ /**
16
+ * Register multiple variants for a manifest
17
+ *
18
+ * @param manifestId - The manifest these variants belong to
19
+ * @param variants - Array of variants to register
20
+ */
21
+ export declare function registerVariants(manifestId: string, variants: ManifestVariant[]): void;
22
+ /**
23
+ * Get a specific variant by ID
24
+ *
25
+ * @param manifestId - The manifest to look up
26
+ * @param variantId - The variant ID (discriminator value)
27
+ * @returns The variant or undefined
28
+ */
29
+ export declare function getVariant(manifestId: string, variantId: string): ManifestVariant | undefined;
30
+ /**
31
+ * Get all registered variants for a manifest
32
+ *
33
+ * @param manifestId - The manifest to look up
34
+ * @returns Map of variants keyed by ID
35
+ */
36
+ export declare function getAllVariants(manifestId: string): Map<string, ManifestVariant>;
37
+ /**
38
+ * Check if a variant is registered
39
+ *
40
+ * @param manifestId - The manifest to check
41
+ * @param variantId - The variant ID to check
42
+ * @returns Whether the variant is registered
43
+ */
44
+ export declare function hasVariant(manifestId: string, variantId: string): boolean;
45
+ /**
46
+ * Clear all variants for a manifest
47
+ *
48
+ * @param manifestId - The manifest to clear
49
+ */
50
+ export declare function clearVariants(manifestId: string): void;
51
+ /**
52
+ * Clear the entire registry (useful for testing)
53
+ */
54
+ export declare function clearRegistry(): void;
55
+ /**
56
+ * Load variants from a routing configuration
57
+ * Handles both eager and lazy loading, with deduplication
58
+ *
59
+ * @param manifestId - The manifest ID
60
+ * @param routing - The routing configuration
61
+ */
62
+ export declare function loadVariantsFromRouting(manifestId: string, routing: ManifestRouting): Promise<void>;
63
+ /**
64
+ * Resolve a variant from routing based on discriminator value
65
+ *
66
+ * @param manifestId - The manifest ID
67
+ * @param routing - The routing configuration
68
+ * @param discriminatorValue - The current value of the discriminator field
69
+ * @returns Resolved variant information
70
+ */
71
+ export declare function resolveVariant<TConfig extends Record<string, unknown> = Record<string, unknown>>(manifestId: string, routing: ManifestRouting, discriminatorValue: string): Promise<ResolvedVariant<TConfig>>;
72
+ /**
73
+ * Synchronously get a variant (only works if already loaded)
74
+ * Use this when you know variants have been pre-loaded
75
+ *
76
+ * @param manifestId - The manifest ID
77
+ * @param routing - The routing configuration
78
+ * @param discriminatorValue - The current value of the discriminator field
79
+ * @returns The variant or undefined
80
+ */
81
+ export declare function resolveVariantSync<TConfig extends Record<string, unknown> = Record<string, unknown>>(manifestId: string, routing: ManifestRouting, discriminatorValue: string): ManifestVariant<TConfig> | undefined;
82
+ /**
83
+ * Load variants from a nested routing configuration
84
+ * Handles both eager and lazy loading, with deduplication
85
+ *
86
+ * @param manifestId - The base manifest ID
87
+ * @param routing - The nested routing configuration
88
+ */
89
+ export declare function loadNestedVariantsFromRouting(manifestId: string, routing: NestedRouting): Promise<void>;
90
+ /**
91
+ * Resolve a nested variant from routing based on discriminator value
92
+ *
93
+ * @param manifestId - The base manifest ID
94
+ * @param routing - The nested routing configuration
95
+ * @param values - Current form values (used to extract discriminator value)
96
+ * @returns Resolved nested variant information
97
+ */
98
+ export declare function resolveNestedVariant<TConfig extends Record<string, unknown> = Record<string, unknown>>(manifestId: string, routing: NestedRouting, values: Record<string, unknown>): Promise<ResolvedNestedVariant<TConfig>>;
99
+ /**
100
+ * Resolve all nested variants from multiple routing configurations
101
+ *
102
+ * @param manifestId - The base manifest ID
103
+ * @param routings - Array of nested routing configurations
104
+ * @param values - Current form values
105
+ * @returns Array of resolved nested variants
106
+ */
107
+ export declare function resolveAllNestedVariants<TConfig extends Record<string, unknown> = Record<string, unknown>>(manifestId: string, routings: NestedRouting[], values: Record<string, unknown>): Promise<ResolvedNestedVariant<TConfig>[]>;
108
+ /**
109
+ * Get all active nested variants (enabled and resolved)
110
+ *
111
+ * @param manifestId - The base manifest ID
112
+ * @param routings - Array of nested routing configurations
113
+ * @param values - Current form values
114
+ * @returns Map of active variants keyed by path
115
+ */
116
+ export declare function getActiveNestedVariants(manifestId: string, routings: NestedRouting[], values: Record<string, unknown>): Promise<Map<string, ActiveNestedVariant>>;
117
+ /**
118
+ * Synchronously get a nested variant (only works if already loaded)
119
+ *
120
+ * @param manifestId - The base manifest ID
121
+ * @param routing - The nested routing configuration
122
+ * @param discriminatorValue - The discriminator value
123
+ * @returns The variant or undefined
124
+ */
125
+ export declare function resolveNestedVariantSync<TConfig extends Record<string, unknown> = Record<string, unknown>>(manifestId: string, routing: NestedRouting, discriminatorValue: string): ManifestVariant<TConfig> | undefined;
126
+ /**
127
+ * Check if nested variants are loaded for a manifest path
128
+ */
129
+ export declare function areNestedVariantsLoaded(manifestId: string, path: string): boolean;
130
+ /**
131
+ * Get all nested variants for a manifest path
132
+ */
133
+ export declare function getAllNestedVariants(manifestId: string, path: string): Map<string, ManifestVariant>;
134
+ /**
135
+ * Get registry status for debugging
136
+ */
137
+ export declare function getRegistryStatus(): {
138
+ manifests: string[];
139
+ variants: Record<string, string[]>;
140
+ };
141
+ /**
142
+ * Check if variants are loaded for a manifest
143
+ */
144
+ export declare function areVariantsLoaded(manifestId: string): boolean;
145
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/routing/registry.ts"],"names":[],"mappings":"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"}