@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,142 @@
1
+ /**
2
+ * Extension Registry
3
+ *
4
+ * Global registry for surface-specific manifest extensions.
5
+ * Extensions self-register on import from surface entry points.
6
+ */
7
+ // Registry Storage
8
+ /**
9
+ * Global registry - maps "manifestId:surface" to extension
10
+ * Uses BaseRecord as the common type for storage
11
+ */
12
+ const extensions = new Map();
13
+ /**
14
+ * Cache for loaded extensions (with components resolved)
15
+ */
16
+ const loadedCache = new Map();
17
+ // Registration
18
+ /**
19
+ * Build registry key from manifest ID and surface
20
+ */
21
+ function buildKey(manifestId, surface) {
22
+ return `${manifestId}:${surface}`;
23
+ }
24
+ /**
25
+ * Register a surface extension for a manifest
26
+ */
27
+ export function registerExtension(extension) {
28
+ const key = buildKey(extension.manifestId, extension.surface);
29
+ if (extensions.has(key)) {
30
+ console.warn(`[ExtensionRegistry] Extension for "${extension.manifestId}" on "${extension.surface}" already registered. Skipping.`);
31
+ return;
32
+ }
33
+ // Registry stores base type; callers retrieve with their specific generic
34
+ extensions.set(key, extension);
35
+ }
36
+ // Retrieval
37
+ /**
38
+ * Get a registered extension (not yet loaded)
39
+ */
40
+ export function getExtension(manifestId, surface) {
41
+ return extensions.get(buildKey(manifestId, surface)) ?? null;
42
+ }
43
+ /**
44
+ * Check if an extension exists
45
+ */
46
+ export function hasExtension(manifestId, surface) {
47
+ return extensions.has(buildKey(manifestId, surface));
48
+ }
49
+ /**
50
+ * Get all registered extension keys
51
+ */
52
+ export function getAllExtensionKeys() {
53
+ return Array.from(extensions.keys());
54
+ }
55
+ /**
56
+ * Get all extensions for a specific surface
57
+ */
58
+ export function getExtensionsForSurface(surface) {
59
+ return Array.from(extensions.values()).filter((ext) => ext.surface === surface);
60
+ }
61
+ // Loading (Lazy Component Resolution)
62
+ /**
63
+ * Load an extension, resolving all lazy loaders
64
+ */
65
+ export async function loadExtension(manifestId, surface) {
66
+ const key = buildKey(manifestId, surface);
67
+ // Check cache first
68
+ const cached = loadedCache.get(key);
69
+ if (cached) {
70
+ // Cache stores base type; caller retrieves with their specific generic
71
+ return cached;
72
+ }
73
+ // Get the raw extension
74
+ const extension = getExtension(manifestId, surface);
75
+ if (!extension) {
76
+ return null;
77
+ }
78
+ // Resolve all field override loaders in parallel
79
+ const loadedOverrides = {};
80
+ if (extension.fieldOverrides) {
81
+ const entries = Object.entries(extension.fieldOverrides);
82
+ const loadPromises = entries.map(async ([fieldKey, override]) => {
83
+ if (override.loader) {
84
+ const loaded = await override.loader();
85
+ return [
86
+ fieldKey,
87
+ {
88
+ component: loaded.component,
89
+ props: { ...override.props, ...loaded.props },
90
+ propsFactory: override.propsFactory,
91
+ hidden: override.hidden,
92
+ render: override.render
93
+ }
94
+ ];
95
+ }
96
+ return [
97
+ fieldKey,
98
+ {
99
+ component: override.component,
100
+ props: override.props,
101
+ propsFactory: override.propsFactory,
102
+ hidden: override.hidden,
103
+ render: override.render
104
+ }
105
+ ];
106
+ });
107
+ const results = await Promise.all(loadPromises);
108
+ for (const [fieldKey, override] of results) {
109
+ loadedOverrides[fieldKey] = override;
110
+ }
111
+ }
112
+ // Build loaded extension
113
+ const loaded = {
114
+ manifestId: extension.manifestId,
115
+ surface: extension.surface,
116
+ fieldOverrides: loadedOverrides,
117
+ renderHeader: extension.renderHeader,
118
+ renderFooter: extension.renderFooter,
119
+ renderListRow: extension.renderListRow,
120
+ renderEmpty: extension.renderEmpty,
121
+ renderCreate: extension.renderCreate,
122
+ renderEdit: extension.renderEdit
123
+ };
124
+ // Cache and return
125
+ loadedCache.set(key, loaded);
126
+ return loaded;
127
+ }
128
+ // Cache Management
129
+ /**
130
+ * Clear the loaded extension cache
131
+ */
132
+ export function clearExtensionCache() {
133
+ loadedCache.clear();
134
+ }
135
+ /**
136
+ * Clear all registered extensions (for testing)
137
+ */
138
+ export function clearAllExtensions() {
139
+ extensions.clear();
140
+ loadedCache.clear();
141
+ }
142
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/extensions/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Surface-Specific Manifest Extensions
3
+ *
4
+ * Enables surface-specific (TUI/Web/CLI) component overrides for manifests.
5
+ * Extensions are loaded on-demand like the tools/manifests.ts pattern.
6
+ */
7
+ import type { ConfigFieldMeta } from '../manifest/types.ts';
8
+ import type { CRUDViewMode, BaseRecord } from '../crud/shared.ts';
9
+ export type { BaseRecord } from '../crud/shared.ts';
10
+ /**
11
+ * Supported surface types
12
+ */
13
+ export type ExtensionSurface = 'tui' | 'web' | 'cli';
14
+ /**
15
+ * Lazy component loader - returns component and optional props
16
+ */
17
+ export type LazyComponentLoader<T = unknown> = () => Promise<{
18
+ component: T;
19
+ props?: Record<string, unknown>;
20
+ }>;
21
+ /**
22
+ * Component override with lazy loading support
23
+ */
24
+ export interface LazyComponentOverride {
25
+ /** Lazy loader for the component */
26
+ loader?: LazyComponentLoader;
27
+ /** Pre-loaded component (alternative to loader) */
28
+ component?: unknown;
29
+ /** Factory to generate props from field and context */
30
+ propsFactory?: (field: ConfigFieldMeta, context: {
31
+ values: Record<string, unknown>;
32
+ mode: 'create' | 'edit';
33
+ }) => Record<string, unknown>;
34
+ /** Additional static props */
35
+ props?: Record<string, unknown>;
36
+ /** Hide this field entirely */
37
+ hidden?: boolean;
38
+ /** Custom render function */
39
+ render?: (field: ConfigFieldMeta, defaultRender: () => unknown) => unknown;
40
+ }
41
+ /**
42
+ * View render context for custom create/edit views
43
+ */
44
+ export interface ViewRenderContext<T extends BaseRecord = BaseRecord> {
45
+ /** Current record (undefined for create mode) */
46
+ record?: T;
47
+ /** Submit handler */
48
+ onSubmit: (values: T) => void;
49
+ /** Cancel/back handler */
50
+ onCancel: () => void;
51
+ /** Whether a save operation is in progress */
52
+ isSubmitting?: boolean;
53
+ }
54
+ /**
55
+ * Surface-specific extension for a manifest
56
+ */
57
+ export interface ManifestSurfaceExtension<T extends BaseRecord = BaseRecord> {
58
+ /** Manifest ID this extension applies to */
59
+ manifestId: string;
60
+ /** Surface this extension is for */
61
+ surface: ExtensionSurface;
62
+ /** Field-level component overrides */
63
+ fieldOverrides?: Record<string, LazyComponentOverride>;
64
+ /** Custom header renderer */
65
+ renderHeader?: (mode: CRUDViewMode, record?: T) => unknown;
66
+ /** Custom footer renderer */
67
+ renderFooter?: (mode: CRUDViewMode, record?: T) => unknown;
68
+ /** Custom list row renderer */
69
+ renderListRow?: (record: T, defaultRender: () => unknown) => unknown;
70
+ /** Custom empty state renderer */
71
+ renderEmpty?: () => unknown;
72
+ /**
73
+ * Custom create view renderer.
74
+ * When provided, replaces the entire create form with a custom component.
75
+ * Use for wizard-style flows or complex template-based creation.
76
+ */
77
+ renderCreate?: (context: ViewRenderContext<T>) => unknown;
78
+ /**
79
+ * Custom edit view renderer.
80
+ * When provided, replaces the entire edit form with a custom component.
81
+ */
82
+ renderEdit?: (context: ViewRenderContext<T>) => unknown;
83
+ }
84
+ /**
85
+ * An extension with components already loaded
86
+ */
87
+ export interface LoadedExtension<T extends BaseRecord = BaseRecord> extends Omit<ManifestSurfaceExtension<T>, 'fieldOverrides'> {
88
+ /** Loaded component overrides (loaders resolved) */
89
+ fieldOverrides: Record<string, {
90
+ component?: unknown;
91
+ props?: Record<string, unknown>;
92
+ propsFactory?: LazyComponentOverride['propsFactory'];
93
+ hidden?: boolean;
94
+ render?: LazyComponentOverride['render'];
95
+ }>;
96
+ /** Custom create view renderer */
97
+ renderCreate?: ManifestSurfaceExtension<T>['renderCreate'];
98
+ /** Custom edit view renderer */
99
+ renderEdit?: ManifestSurfaceExtension<T>['renderEdit'];
100
+ }
101
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/extensions/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Surface-Specific Manifest Extensions
3
+ *
4
+ * Enables surface-specific (TUI/Web/CLI) component overrides for manifests.
5
+ * Extensions are loaded on-demand like the tools/manifests.ts pattern.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/extensions/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Field Resolver
3
+ *
4
+ * Maps manifest field definitions to component types and resolves field state.
5
+ * Also provides default resolution based on context.
6
+ */
7
+ import type { z } from 'zod/v4';
8
+ import type { ConfigManifest, ConfigFieldMeta, FieldComponent, ConfigContext } from '../../manifest/types.ts';
9
+ import type { ResolvedField, ComponentOverride } from './types.ts';
10
+ /**
11
+ * Infer component type from field metadata
12
+ */
13
+ export declare function inferFieldComponent(fieldMeta: ConfigFieldMeta): FieldComponent;
14
+ /**
15
+ * Get default value for a field considering context
16
+ */
17
+ export declare function getFieldDefault(fieldMeta: ConfigFieldMeta, context: {
18
+ hardware?: string;
19
+ environment?: string;
20
+ surface?: string;
21
+ }): unknown;
22
+ /**
23
+ * Resolve all fields from a manifest
24
+ */
25
+ export declare function resolveFields(manifest: ConfigManifest, values: Record<string, unknown>, overrides?: Record<string, ComponentOverride>, context?: {
26
+ hardware?: string;
27
+ environment?: string;
28
+ surface?: string;
29
+ }): ResolvedField[];
30
+ /**
31
+ * Group resolved fields by their group ID
32
+ */
33
+ export declare function groupFields(fields: ResolvedField[], _groups?: ConfigManifest['groups']): Map<string | undefined, ResolvedField[]>;
34
+ /**
35
+ * Resolve default value for a single field with full context
36
+ */
37
+ export declare function resolveFieldDefault(_fieldPath: string, fieldMeta: ConfigFieldMeta, schemaDefault: unknown, ctx: ConfigContext): unknown;
38
+ /**
39
+ * Resolve default values for a manifest based on context
40
+ */
41
+ export declare function resolveDefaults<T extends z.ZodTypeAny>(manifest: ConfigManifest<T>, ctx: ConfigContext): z.infer<T>;
42
+ //# sourceMappingURL=field-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-resolver.d.ts","sourceRoot":"","sources":["../../../src/form/core/field-resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,CAAC,EAAyB,MAAM,QAAQ,CAAC;AACvD,OAAO,KAAK,EACX,cAAc,EACd,eAAe,EACf,cAAc,EACd,aAAa,EACb,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGnE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,eAAe,GAAG,cAAc,CAc9E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC9B,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACpE,OAAO,CA2BT;AA0FD;;GAEG;AACH,wBAAgB,aAAa,CAC5B,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAM,EACjD,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACzE,aAAa,EAAE,CAmCjB;AA4BD;;GAEG;AACH,wBAAgB,WAAW,CAC1B,MAAM,EAAE,aAAa,EAAE,EACvB,OAAO,GAAE,cAAc,CAAC,QAAQ,CAAM,GACpC,GAAG,CAAC,MAAM,GAAG,SAAS,EAAE,aAAa,EAAE,CAAC,CAY1C;AA0DD;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,eAAe,EAC1B,aAAa,EAAE,OAAO,EACtB,GAAG,EAAE,aAAa,GAChB,OAAO,CAkCT;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EACrD,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,EAC3B,GAAG,EAAE,aAAa,GAChB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAwBZ"}
@@ -0,0 +1,293 @@
1
+ import { getUIMeta } from "../../schema/extend-zod.js";
2
+ /**
3
+ * Infer component type from field metadata
4
+ */
5
+ export function inferFieldComponent(fieldMeta) {
6
+ // Explicit component takes precedence
7
+ if (fieldMeta.ui.component) {
8
+ return fieldMeta.ui.component;
9
+ }
10
+ // Infer from options presence
11
+ if (fieldMeta.options && fieldMeta.options.length > 0) {
12
+ // Few options = radio, many = select
13
+ return fieldMeta.options.length <= 4 ? 'radio-group' : 'select';
14
+ }
15
+ // Default to input
16
+ return 'input';
17
+ }
18
+ /**
19
+ * Get default value for a field considering context
20
+ */
21
+ export function getFieldDefault(fieldMeta, context) {
22
+ const defaults = fieldMeta.defaults;
23
+ if (!defaults)
24
+ return undefined;
25
+ // Check surface-specific default
26
+ if (context.surface && defaults.bySurface?.[context.surface]) {
27
+ return defaults.bySurface[context.surface];
28
+ }
29
+ // Check hardware-specific default
30
+ if (context.hardware &&
31
+ defaults.byHardware?.[context.hardware]) {
32
+ return defaults.byHardware[context.hardware];
33
+ }
34
+ // Check environment-specific default
35
+ if (context.environment &&
36
+ defaults.byEnvironment?.[context.environment]) {
37
+ return defaults.byEnvironment[context.environment];
38
+ }
39
+ // Return base default
40
+ return defaults.base;
41
+ }
42
+ /**
43
+ * Get a value at a dot-notation path from an object
44
+ * Supports both flat keys (e.g., obj['configuration.apiKey'])
45
+ * and nested objects (e.g., obj.configuration.apiKey)
46
+ */
47
+ function getValueAtPath(obj, path) {
48
+ // First try direct key lookup (for flat form values)
49
+ if (path in obj) {
50
+ return obj[path];
51
+ }
52
+ // Then try dot-notation path lookup (for nested objects)
53
+ const parts = path.split('.');
54
+ let current = obj;
55
+ for (const part of parts) {
56
+ if (current == null || typeof current !== 'object') {
57
+ return undefined;
58
+ }
59
+ current = current[part];
60
+ }
61
+ return current;
62
+ }
63
+ /**
64
+ * Get a schema at a dot-notation path
65
+ * Drills down through nested ZodObject shapes
66
+ */
67
+ function getSchemaAtPath(rootSchema, path) {
68
+ const parts = path.split('.');
69
+ let current = rootSchema;
70
+ for (const part of parts) {
71
+ if (!current)
72
+ return undefined;
73
+ // Try to get shape from current schema
74
+ const zodObj = current;
75
+ if (zodObj.shape && typeof zodObj.shape === 'object') {
76
+ current = zodObj.shape[part];
77
+ }
78
+ else {
79
+ return undefined;
80
+ }
81
+ }
82
+ return current;
83
+ }
84
+ /**
85
+ * Type guard to check if a manifest has a recordSchema property
86
+ */
87
+ function hasRecordSchema(manifest) {
88
+ return 'recordSchema' in manifest && manifest.recordSchema != null;
89
+ }
90
+ /**
91
+ * Extract field schemas from a manifest's Zod schema
92
+ * Handles dot-notation field keys for nested fields
93
+ */
94
+ function extractFieldSchemas(manifest) {
95
+ const schemas = {};
96
+ // Use recordSchema if available (for RecordManifests), otherwise use schema
97
+ const baseSchema = hasRecordSchema(manifest) ? manifest.recordSchema : manifest.schema;
98
+ if (!baseSchema || typeof baseSchema !== 'object' || !('_zod' in baseSchema)) {
99
+ return schemas;
100
+ }
101
+ // For each field key in the manifest, try to find its schema
102
+ for (const key of Object.keys(manifest.fields)) {
103
+ if (key.includes('.')) {
104
+ // Dot-notation path - drill down into nested schemas
105
+ const fieldSchema = getSchemaAtPath(baseSchema, key);
106
+ if (fieldSchema) {
107
+ schemas[key] = fieldSchema;
108
+ }
109
+ }
110
+ else {
111
+ // Top-level field - get directly from shape
112
+ const zodSchema = baseSchema;
113
+ if (zodSchema.shape && zodSchema.shape[key]) {
114
+ schemas[key] = zodSchema.shape[key];
115
+ }
116
+ }
117
+ }
118
+ return schemas;
119
+ }
120
+ /**
121
+ * Resolve all fields from a manifest
122
+ */
123
+ export function resolveFields(manifest, values, overrides = {}, context = {}) {
124
+ const fields = [];
125
+ const fieldSchemas = extractFieldSchemas(manifest);
126
+ for (const [key, meta] of Object.entries(manifest.fields)) {
127
+ const override = overrides[key];
128
+ const fieldSchema = fieldSchemas[key];
129
+ // Skip if override says hidden
130
+ if (override?.hidden)
131
+ continue;
132
+ // Check if schema has UI metadata that should override manifest meta
133
+ const schemaUIMeta = fieldSchema ? getUIMeta(fieldSchema) : undefined;
134
+ const enhancedMeta = schemaUIMeta ? mergeUIMeta(meta, schemaUIMeta) : meta;
135
+ const resolved = {
136
+ key,
137
+ meta: enhancedMeta,
138
+ component: inferFieldComponent(enhancedMeta),
139
+ // Use path-based access for nested fields (e.g., configuration.apiKey)
140
+ value: getValueAtPath(values, key) ?? getFieldDefault(enhancedMeta, context),
141
+ visible: true, // Will be evaluated by visibility module
142
+ disabled: false, // Will be evaluated by visibility module
143
+ required: false, // Will be evaluated by visibility module
144
+ override,
145
+ fieldSchema
146
+ };
147
+ fields.push(resolved);
148
+ }
149
+ // Sort by order
150
+ fields.sort((a, b) => (a.meta.ui.order ?? 999) - (b.meta.ui.order ?? 999));
151
+ return fields;
152
+ }
153
+ /**
154
+ * Merge schema UI metadata into field meta
155
+ */
156
+ function mergeUIMeta(meta, schemaUI) {
157
+ if (!schemaUI)
158
+ return meta;
159
+ return {
160
+ ...meta,
161
+ ui: {
162
+ ...meta.ui,
163
+ // Schema UI overrides manifest UI where defined
164
+ ...(schemaUI.label && { label: schemaUI.label }),
165
+ ...(schemaUI.description && { description: schemaUI.description }),
166
+ ...(schemaUI.helpText && { helpText: schemaUI.helpText }),
167
+ ...(schemaUI.placeholder && { placeholder: schemaUI.placeholder }),
168
+ ...(schemaUI.order !== undefined && { order: schemaUI.order }),
169
+ ...(schemaUI.group && { group: schemaUI.group }),
170
+ ...(schemaUI.component && { component: schemaUI.component }),
171
+ ...(schemaUI.hidden !== undefined && { hidden: schemaUI.hidden })
172
+ }
173
+ };
174
+ }
175
+ /**
176
+ * Group resolved fields by their group ID
177
+ */
178
+ export function groupFields(fields, _groups = []) {
179
+ const grouped = new Map();
180
+ for (const field of fields) {
181
+ const groupId = field.meta.ui.group;
182
+ if (!grouped.has(groupId)) {
183
+ grouped.set(groupId, []);
184
+ }
185
+ grouped.get(groupId).push(field);
186
+ }
187
+ return grouped;
188
+ }
189
+ // Default Resolution (formerly in registry/resolution.ts)
190
+ /**
191
+ * Get defaults from a Zod schema
192
+ */
193
+ function getSchemaDefaults(schema) {
194
+ const result = {};
195
+ // Handle ZodObject
196
+ const zodObj = schema;
197
+ if (zodObj.shape && typeof zodObj.shape === 'object') {
198
+ for (const [key, fieldSchema] of Object.entries(zodObj.shape)) {
199
+ const def = fieldSchema._def;
200
+ if (def?.defaultValue !== undefined) {
201
+ result[key] =
202
+ typeof def.defaultValue === 'function'
203
+ ? def.defaultValue()
204
+ : def.defaultValue;
205
+ }
206
+ }
207
+ }
208
+ return result;
209
+ }
210
+ /**
211
+ * Get nested value from object using dot notation
212
+ */
213
+ function getNestedValue(obj, path) {
214
+ const parts = path.split('.');
215
+ let current = obj;
216
+ for (const part of parts) {
217
+ if (current == null || typeof current !== 'object') {
218
+ return undefined;
219
+ }
220
+ current = current[part];
221
+ }
222
+ return current;
223
+ }
224
+ /**
225
+ * Set nested value in object using dot notation
226
+ */
227
+ function setNestedValue(obj, path, value) {
228
+ const parts = path.split('.');
229
+ let current = obj;
230
+ for (let i = 0; i < parts.length - 1; i++) {
231
+ const part = parts[i];
232
+ if (!(part in current) || typeof current[part] !== 'object') {
233
+ current[part] = {};
234
+ }
235
+ current = current[part];
236
+ }
237
+ current[parts[parts.length - 1]] = value;
238
+ }
239
+ /**
240
+ * Resolve default value for a single field with full context
241
+ */
242
+ export function resolveFieldDefault(_fieldPath, fieldMeta, schemaDefault, ctx) {
243
+ const defaults = fieldMeta.defaults;
244
+ if (!defaults) {
245
+ return schemaDefault;
246
+ }
247
+ // Check for custom resolver
248
+ if (defaults.resolver) {
249
+ return defaults.resolver(ctx);
250
+ }
251
+ // Check hardware-specific default
252
+ if (defaults.byHardware?.[ctx.hardware] !== undefined) {
253
+ return defaults.byHardware[ctx.hardware];
254
+ }
255
+ // Check environment-specific default
256
+ if (defaults.byEnvironment?.[ctx.environment] !== undefined) {
257
+ return defaults.byEnvironment[ctx.environment];
258
+ }
259
+ // Check surface-specific default
260
+ if (defaults.bySurface?.[ctx.surface] !== undefined) {
261
+ return defaults.bySurface[ctx.surface];
262
+ }
263
+ // Use base default
264
+ if (defaults.base !== undefined) {
265
+ return defaults.base;
266
+ }
267
+ // Fall back to schema default
268
+ return schemaDefault;
269
+ }
270
+ /**
271
+ * Resolve default values for a manifest based on context
272
+ */
273
+ export function resolveDefaults(manifest, ctx) {
274
+ const result = {};
275
+ // Get defaults from schema
276
+ const schemaDefaults = getSchemaDefaults(manifest.schema);
277
+ // Merge with field-specific defaults
278
+ for (const [fieldPath, fieldMeta] of Object.entries(manifest.fields)) {
279
+ const schemaDefault = getNestedValue(schemaDefaults, fieldPath);
280
+ const resolvedDefault = resolveFieldDefault(fieldPath, fieldMeta, schemaDefault, ctx);
281
+ if (resolvedDefault !== undefined) {
282
+ setNestedValue(result, fieldPath, resolvedDefault);
283
+ }
284
+ }
285
+ // Merge schema defaults for fields without explicit metadata
286
+ for (const [key, value] of Object.entries(schemaDefaults)) {
287
+ if (!(key in result) && value !== undefined) {
288
+ result[key] = value;
289
+ }
290
+ }
291
+ return result;
292
+ }
293
+ //# sourceMappingURL=field-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-resolver.js","sourceRoot":"","sources":["../../../src/form/core/field-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Field Grouping
3
+ *
4
+ * Organize fields into groups for UI rendering
5
+ */
6
+ import type { ConfigManifest, ConfigFieldGroup, ConfigContext } from '../../manifest/types.ts';
7
+ import type { ResolvedField, ResolvedGroup } from './types.ts';
8
+ /**
9
+ * Resolve groups with their fields and visibility
10
+ */
11
+ export declare function resolveGroups(manifest: ConfigManifest, fields: ResolvedField[], values: Record<string, unknown>, context: ConfigContext): ResolvedGroup[];
12
+ /**
13
+ * Get fields for a specific group
14
+ */
15
+ export declare function getGroupFields(groupId: string, fields: ResolvedField[]): ResolvedField[];
16
+ /**
17
+ * Check if a group should be collapsed by default
18
+ */
19
+ export declare function isGroupCollapsed(group: ConfigFieldGroup, userPreferences?: Record<string, boolean>): boolean;
20
+ //# sourceMappingURL=groups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../../src/form/core/groups.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG/D;;GAEG;AACH,wBAAgB,aAAa,CAC5B,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,aAAa,EAAE,EACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,aAAa,GACpB,aAAa,EAAE,CAuDjB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAExF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,gBAAgB,EACvB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvC,OAAO,CAQT"}