@baseplate-dev/project-builder-lib 0.1.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 (569) hide show
  1. package/LICENSE +390 -0
  2. package/dist/compiler/admin-crud-input-spec.d.ts +26 -0
  3. package/dist/compiler/admin-crud-input-spec.d.ts.map +1 -0
  4. package/dist/compiler/admin-crud-input-spec.js +29 -0
  5. package/dist/compiler/admin-crud-input-spec.js.map +1 -0
  6. package/dist/compiler/app-compiler-spec.d.ts +36 -0
  7. package/dist/compiler/app-compiler-spec.d.ts.map +1 -0
  8. package/dist/compiler/app-compiler-spec.js +42 -0
  9. package/dist/compiler/app-compiler-spec.js.map +1 -0
  10. package/dist/compiler/index.d.ts +5 -0
  11. package/dist/compiler/index.d.ts.map +1 -0
  12. package/dist/compiler/index.js +4 -0
  13. package/dist/compiler/index.js.map +1 -0
  14. package/dist/compiler/model-transformer-compiler-spec.d.ts +25 -0
  15. package/dist/compiler/model-transformer-compiler-spec.d.ts.map +1 -0
  16. package/dist/compiler/model-transformer-compiler-spec.js +29 -0
  17. package/dist/compiler/model-transformer-compiler-spec.js.map +1 -0
  18. package/dist/compiler/types.d.ts +2 -0
  19. package/dist/compiler/types.d.ts.map +1 -0
  20. package/dist/compiler/types.js +2 -0
  21. package/dist/compiler/types.js.map +1 -0
  22. package/dist/constants/colors.d.ts +294 -0
  23. package/dist/constants/colors.d.ts.map +1 -0
  24. package/dist/constants/colors.js +307 -0
  25. package/dist/constants/colors.js.map +1 -0
  26. package/dist/constants/index.d.ts +3 -0
  27. package/dist/constants/index.d.ts.map +1 -0
  28. package/dist/constants/index.js +3 -0
  29. package/dist/constants/index.js.map +1 -0
  30. package/dist/constants/theme-colors.d.ts +397 -0
  31. package/dist/constants/theme-colors.d.ts.map +1 -0
  32. package/dist/constants/theme-colors.js +247 -0
  33. package/dist/constants/theme-colors.js.map +1 -0
  34. package/dist/definition/apps/app-utils.d.ts +11 -0
  35. package/dist/definition/apps/app-utils.d.ts.map +1 -0
  36. package/dist/definition/apps/app-utils.js +30 -0
  37. package/dist/definition/apps/app-utils.js.map +1 -0
  38. package/dist/definition/feature/feature-utils.d.ts +27 -0
  39. package/dist/definition/feature/feature-utils.d.ts.map +1 -0
  40. package/dist/definition/feature/feature-utils.js +81 -0
  41. package/dist/definition/feature/feature-utils.js.map +1 -0
  42. package/dist/definition/index.d.ts +10 -0
  43. package/dist/definition/index.d.ts.map +1 -0
  44. package/dist/definition/index.js +10 -0
  45. package/dist/definition/index.js.map +1 -0
  46. package/dist/definition/model/enum-utils.d.ts +9 -0
  47. package/dist/definition/model/enum-utils.d.ts.map +1 -0
  48. package/dist/definition/model/enum-utils.js +15 -0
  49. package/dist/definition/model/enum-utils.js.map +1 -0
  50. package/dist/definition/model/model-field-utils.d.ts +17 -0
  51. package/dist/definition/model/model-field-utils.d.ts.map +1 -0
  52. package/dist/definition/model/model-field-utils.js +85 -0
  53. package/dist/definition/model/model-field-utils.js.map +1 -0
  54. package/dist/definition/model/model-transformer-utils.d.ts +11 -0
  55. package/dist/definition/model/model-transformer-utils.d.ts.map +1 -0
  56. package/dist/definition/model/model-transformer-utils.js +13 -0
  57. package/dist/definition/model/model-transformer-utils.js.map +1 -0
  58. package/dist/definition/model/model-utils.d.ts +32 -0
  59. package/dist/definition/model/model-utils.d.ts.map +1 -0
  60. package/dist/definition/model/model-utils.js +59 -0
  61. package/dist/definition/model/model-utils.js.map +1 -0
  62. package/dist/definition/plugins/index.d.ts +2 -0
  63. package/dist/definition/plugins/index.d.ts.map +1 -0
  64. package/dist/definition/plugins/index.js +2 -0
  65. package/dist/definition/plugins/index.js.map +1 -0
  66. package/dist/definition/plugins/plugin-utils.d.ts +14 -0
  67. package/dist/definition/plugins/plugin-utils.d.ts.map +1 -0
  68. package/dist/definition/plugins/plugin-utils.js +44 -0
  69. package/dist/definition/plugins/plugin-utils.js.map +1 -0
  70. package/dist/definition/project-definition-container.d.ts +65 -0
  71. package/dist/definition/project-definition-container.d.ts.map +1 -0
  72. package/dist/definition/project-definition-container.js +118 -0
  73. package/dist/definition/project-definition-container.js.map +1 -0
  74. package/dist/definition/project-definition-container.test-helper.d.ts +5 -0
  75. package/dist/definition/project-definition-container.test-helper.d.ts.map +1 -0
  76. package/dist/definition/project-definition-container.test-helper.js +36 -0
  77. package/dist/definition/project-definition-container.test-helper.js.map +1 -0
  78. package/dist/feature-flags/flags.d.ts +3 -0
  79. package/dist/feature-flags/flags.d.ts.map +1 -0
  80. package/dist/feature-flags/flags.js +2 -0
  81. package/dist/feature-flags/flags.js.map +1 -0
  82. package/dist/feature-flags/index.d.ts +2 -0
  83. package/dist/feature-flags/index.d.ts.map +1 -0
  84. package/dist/feature-flags/index.js +2 -0
  85. package/dist/feature-flags/index.js.map +1 -0
  86. package/dist/index.d.ts +14 -0
  87. package/dist/index.js +13 -0
  88. package/dist/index.js.map +1 -0
  89. package/dist/migrations/index.d.ts +15 -0
  90. package/dist/migrations/index.d.ts.map +1 -0
  91. package/dist/migrations/index.js +68 -0
  92. package/dist/migrations/index.js.map +1 -0
  93. package/dist/migrations/migration-005-primaryUniqueRefs.d.ts +37 -0
  94. package/dist/migrations/migration-005-primaryUniqueRefs.d.ts.map +1 -0
  95. package/dist/migrations/migration-005-primaryUniqueRefs.js +40 -0
  96. package/dist/migrations/migration-005-primaryUniqueRefs.js.map +1 -0
  97. package/dist/migrations/migration-006-individual-service-controllers.d.ts +42 -0
  98. package/dist/migrations/migration-006-individual-service-controllers.d.ts.map +1 -0
  99. package/dist/migrations/migration-006-individual-service-controllers.js +31 -0
  100. package/dist/migrations/migration-006-individual-service-controllers.js.map +1 -0
  101. package/dist/migrations/migration-007-model-graphql.d.ts +59 -0
  102. package/dist/migrations/migration-007-model-graphql.d.ts.map +1 -0
  103. package/dist/migrations/migration-007-model-graphql.js +62 -0
  104. package/dist/migrations/migration-007-model-graphql.js.map +1 -0
  105. package/dist/migrations/migration-008-anonymous-public-role.d.ts +22 -0
  106. package/dist/migrations/migration-008-anonymous-public-role.d.ts.map +1 -0
  107. package/dist/migrations/migration-008-anonymous-public-role.js +52 -0
  108. package/dist/migrations/migration-008-anonymous-public-role.js.map +1 -0
  109. package/dist/migrations/migration-009-rename-refs.d.ts +2 -0
  110. package/dist/migrations/migration-009-rename-refs.d.ts.map +1 -0
  111. package/dist/migrations/migration-009-rename-refs.js +59 -0
  112. package/dist/migrations/migration-009-rename-refs.js.map +1 -0
  113. package/dist/migrations/migration-010-hex-to-oklch.d.ts +2 -0
  114. package/dist/migrations/migration-010-hex-to-oklch.d.ts.map +1 -0
  115. package/dist/migrations/migration-010-hex-to-oklch.js +24 -0
  116. package/dist/migrations/migration-010-hex-to-oklch.js.map +1 -0
  117. package/dist/migrations/migration-011-plugin-id.d.ts +2 -0
  118. package/dist/migrations/migration-011-plugin-id.d.ts.map +1 -0
  119. package/dist/migrations/migration-011-plugin-id.js +10 -0
  120. package/dist/migrations/migration-011-plugin-id.js.map +1 -0
  121. package/dist/migrations/migration-012-migrate-auth-config.d.ts +36 -0
  122. package/dist/migrations/migration-012-migrate-auth-config.d.ts.map +1 -0
  123. package/dist/migrations/migration-012-migrate-auth-config.js +48 -0
  124. package/dist/migrations/migration-012-migrate-auth-config.js.map +1 -0
  125. package/dist/migrations/migration-013-move-general-settings.d.ts +38 -0
  126. package/dist/migrations/migration-013-move-general-settings.d.ts.map +1 -0
  127. package/dist/migrations/migration-013-move-general-settings.js +22 -0
  128. package/dist/migrations/migration-013-move-general-settings.js.map +1 -0
  129. package/dist/migrations/migration-014-migrate-plugin-ids.d.ts +21 -0
  130. package/dist/migrations/migration-014-migrate-plugin-ids.d.ts.map +1 -0
  131. package/dist/migrations/migration-014-migrate-plugin-ids.js +32 -0
  132. package/dist/migrations/migration-014-migrate-plugin-ids.js.map +1 -0
  133. package/dist/migrations/transform-json-path.d.ts +13 -0
  134. package/dist/migrations/transform-json-path.d.ts.map +1 -0
  135. package/dist/migrations/transform-json-path.js +66 -0
  136. package/dist/migrations/transform-json-path.js.map +1 -0
  137. package/dist/migrations/types.d.ts +29 -0
  138. package/dist/migrations/types.d.ts.map +1 -0
  139. package/dist/migrations/types.js +4 -0
  140. package/dist/migrations/types.js.map +1 -0
  141. package/dist/migrations/utils.d.ts +3 -0
  142. package/dist/migrations/utils.d.ts.map +1 -0
  143. package/dist/migrations/utils.js +10 -0
  144. package/dist/migrations/utils.js.map +1 -0
  145. package/dist/parser/index.d.ts +3 -0
  146. package/dist/parser/index.d.ts.map +1 -0
  147. package/dist/parser/index.js +2 -0
  148. package/dist/parser/index.js.map +1 -0
  149. package/dist/parser/parser.d.ts +35 -0
  150. package/dist/parser/parser.d.ts.map +1 -0
  151. package/dist/parser/parser.js +84 -0
  152. package/dist/parser/parser.js.map +1 -0
  153. package/dist/parser/types.d.ts +8 -0
  154. package/dist/parser/types.d.ts.map +1 -0
  155. package/dist/parser/types.js +2 -0
  156. package/dist/parser/types.js.map +1 -0
  157. package/dist/plugin-tools/index.d.ts +2 -0
  158. package/dist/plugin-tools/index.d.ts.map +1 -0
  159. package/dist/plugin-tools/index.js +2 -0
  160. package/dist/plugin-tools/index.js.map +1 -0
  161. package/dist/plugin-tools/plugin-loader.d.ts +16 -0
  162. package/dist/plugin-tools/plugin-loader.d.ts.map +1 -0
  163. package/dist/plugin-tools/plugin-loader.js +166 -0
  164. package/dist/plugin-tools/plugin-loader.js.map +1 -0
  165. package/dist/plugins/imports/index.d.ts +3 -0
  166. package/dist/plugins/imports/index.d.ts.map +1 -0
  167. package/dist/plugins/imports/index.js +3 -0
  168. package/dist/plugins/imports/index.js.map +1 -0
  169. package/dist/plugins/imports/loader.d.ts +23 -0
  170. package/dist/plugins/imports/loader.d.ts.map +1 -0
  171. package/dist/plugins/imports/loader.js +81 -0
  172. package/dist/plugins/imports/loader.js.map +1 -0
  173. package/dist/plugins/imports/types.d.ts +27 -0
  174. package/dist/plugins/imports/types.d.ts.map +1 -0
  175. package/dist/plugins/imports/types.js +4 -0
  176. package/dist/plugins/imports/types.js.map +1 -0
  177. package/dist/plugins/index.d.ts +7 -0
  178. package/dist/plugins/index.d.ts.map +1 -0
  179. package/dist/plugins/index.js +7 -0
  180. package/dist/plugins/index.js.map +1 -0
  181. package/dist/plugins/manifest/manifest.d.ts +13 -0
  182. package/dist/plugins/manifest/manifest.d.ts.map +1 -0
  183. package/dist/plugins/manifest/manifest.js +6 -0
  184. package/dist/plugins/manifest/manifest.js.map +1 -0
  185. package/dist/plugins/metadata/index.d.ts +2 -0
  186. package/dist/plugins/metadata/index.d.ts.map +1 -0
  187. package/dist/plugins/metadata/index.js +2 -0
  188. package/dist/plugins/metadata/index.js.map +1 -0
  189. package/dist/plugins/metadata/types.d.ts +163 -0
  190. package/dist/plugins/metadata/types.d.ts.map +1 -0
  191. package/dist/plugins/metadata/types.js +59 -0
  192. package/dist/plugins/metadata/types.js.map +1 -0
  193. package/dist/plugins/migrations/index.d.ts +2 -0
  194. package/dist/plugins/migrations/index.d.ts.map +1 -0
  195. package/dist/plugins/migrations/index.js +2 -0
  196. package/dist/plugins/migrations/index.js.map +1 -0
  197. package/dist/plugins/migrations/run-migrations.d.ts +4 -0
  198. package/dist/plugins/migrations/run-migrations.d.ts.map +1 -0
  199. package/dist/plugins/migrations/run-migrations.js +30 -0
  200. package/dist/plugins/migrations/run-migrations.js.map +1 -0
  201. package/dist/plugins/schema/common.d.ts +6 -0
  202. package/dist/plugins/schema/common.d.ts.map +1 -0
  203. package/dist/plugins/schema/common.js +2 -0
  204. package/dist/plugins/schema/common.js.map +1 -0
  205. package/dist/plugins/schema/index.d.ts +4 -0
  206. package/dist/plugins/schema/index.d.ts.map +1 -0
  207. package/dist/plugins/schema/index.js +4 -0
  208. package/dist/plugins/schema/index.js.map +1 -0
  209. package/dist/plugins/schema/parser.d.ts +19 -0
  210. package/dist/plugins/schema/parser.d.ts.map +1 -0
  211. package/dist/plugins/schema/parser.js +41 -0
  212. package/dist/plugins/schema/parser.js.map +1 -0
  213. package/dist/plugins/schema/store.d.ts +8 -0
  214. package/dist/plugins/schema/store.d.ts.map +1 -0
  215. package/dist/plugins/schema/store.js +21 -0
  216. package/dist/plugins/schema/store.js.map +1 -0
  217. package/dist/plugins/schema/zod-with-plugins.d.ts +12 -0
  218. package/dist/plugins/schema/zod-with-plugins.d.ts.map +1 -0
  219. package/dist/plugins/schema/zod-with-plugins.js +26 -0
  220. package/dist/plugins/schema/zod-with-plugins.js.map +1 -0
  221. package/dist/plugins/spec/auth-config-spec.d.ts +21 -0
  222. package/dist/plugins/spec/auth-config-spec.d.ts.map +1 -0
  223. package/dist/plugins/spec/auth-config-spec.js +6 -0
  224. package/dist/plugins/spec/auth-config-spec.js.map +1 -0
  225. package/dist/plugins/spec/config-spec.d.ts +31 -0
  226. package/dist/plugins/spec/config-spec.d.ts.map +1 -0
  227. package/dist/plugins/spec/config-spec.js +58 -0
  228. package/dist/plugins/spec/config-spec.js.map +1 -0
  229. package/dist/plugins/spec/index.d.ts +5 -0
  230. package/dist/plugins/spec/index.d.ts.map +1 -0
  231. package/dist/plugins/spec/index.js +5 -0
  232. package/dist/plugins/spec/index.js.map +1 -0
  233. package/dist/plugins/spec/types.d.ts +29 -0
  234. package/dist/plugins/spec/types.d.ts.map +1 -0
  235. package/dist/plugins/spec/types.js +17 -0
  236. package/dist/plugins/spec/types.js.map +1 -0
  237. package/dist/plugins/spec/web-config-spec.d.ts +22 -0
  238. package/dist/plugins/spec/web-config-spec.d.ts.map +1 -0
  239. package/dist/plugins/spec/web-config-spec.js +23 -0
  240. package/dist/plugins/spec/web-config-spec.js.map +1 -0
  241. package/dist/references/deserialize-schema.d.ts +4 -0
  242. package/dist/references/deserialize-schema.d.ts.map +1 -0
  243. package/dist/references/deserialize-schema.js +68 -0
  244. package/dist/references/deserialize-schema.js.map +1 -0
  245. package/dist/references/fix-ref-deletions.d.ts +22 -0
  246. package/dist/references/fix-ref-deletions.d.ts.map +1 -0
  247. package/dist/references/fix-ref-deletions.js +99 -0
  248. package/dist/references/fix-ref-deletions.js.map +1 -0
  249. package/dist/references/index.d.ts +6 -0
  250. package/dist/references/index.d.ts.map +1 -0
  251. package/dist/references/index.js +6 -0
  252. package/dist/references/index.js.map +1 -0
  253. package/dist/references/parse-schema-with-references.d.ts +14 -0
  254. package/dist/references/parse-schema-with-references.d.ts.map +1 -0
  255. package/dist/references/parse-schema-with-references.js +16 -0
  256. package/dist/references/parse-schema-with-references.js.map +1 -0
  257. package/dist/references/ref-builder.d.ts +346 -0
  258. package/dist/references/ref-builder.d.ts.map +1 -0
  259. package/dist/references/ref-builder.js +494 -0
  260. package/dist/references/ref-builder.js.map +1 -0
  261. package/dist/references/resolve-zod-ref-payload-names.d.ts +26 -0
  262. package/dist/references/resolve-zod-ref-payload-names.d.ts.map +1 -0
  263. package/dist/references/resolve-zod-ref-payload-names.js +52 -0
  264. package/dist/references/resolve-zod-ref-payload-names.js.map +1 -0
  265. package/dist/references/serialize-schema.d.ts +5 -0
  266. package/dist/references/serialize-schema.d.ts.map +1 -0
  267. package/dist/references/serialize-schema.js +22 -0
  268. package/dist/references/serialize-schema.js.map +1 -0
  269. package/dist/references/types.d.ts +126 -0
  270. package/dist/references/types.d.ts.map +1 -0
  271. package/dist/references/types.js +59 -0
  272. package/dist/references/types.js.map +1 -0
  273. package/dist/schema/apps/admin/app.d.ts +1144 -0
  274. package/dist/schema/apps/admin/app.d.ts.map +1 -0
  275. package/dist/schema/apps/admin/app.js +27 -0
  276. package/dist/schema/apps/admin/app.js.map +1 -0
  277. package/dist/schema/apps/admin/index.d.ts +3 -0
  278. package/dist/schema/apps/admin/index.d.ts.map +1 -0
  279. package/dist/schema/apps/admin/index.js +3 -0
  280. package/dist/schema/apps/admin/index.js.map +1 -0
  281. package/dist/schema/apps/admin/sections/base.d.ts +9 -0
  282. package/dist/schema/apps/admin/sections/base.d.ts.map +1 -0
  283. package/dist/schema/apps/admin/sections/base.js +15 -0
  284. package/dist/schema/apps/admin/sections/base.js.map +1 -0
  285. package/dist/schema/apps/admin/sections/crud-form/admin-crud-input.d.ts +11 -0
  286. package/dist/schema/apps/admin/sections/crud-form/admin-crud-input.d.ts.map +1 -0
  287. package/dist/schema/apps/admin/sections/crud-form/admin-crud-input.js +11 -0
  288. package/dist/schema/apps/admin/sections/crud-form/admin-crud-input.js.map +1 -0
  289. package/dist/schema/apps/admin/sections/crud-form/admin-input-spec.d.ts +17 -0
  290. package/dist/schema/apps/admin/sections/crud-form/admin-input-spec.d.ts.map +1 -0
  291. package/dist/schema/apps/admin/sections/crud-form/admin-input-spec.js +30 -0
  292. package/dist/schema/apps/admin/sections/crud-form/admin-input-spec.js.map +1 -0
  293. package/dist/schema/apps/admin/sections/crud-form/built-in-input.d.ts +138 -0
  294. package/dist/schema/apps/admin/sections/crud-form/built-in-input.d.ts.map +1 -0
  295. package/dist/schema/apps/admin/sections/crud-form/built-in-input.js +101 -0
  296. package/dist/schema/apps/admin/sections/crud-form/built-in-input.js.map +1 -0
  297. package/dist/schema/apps/admin/sections/crud-form/index.d.ts +5 -0
  298. package/dist/schema/apps/admin/sections/crud-form/index.d.ts.map +1 -0
  299. package/dist/schema/apps/admin/sections/crud-form/index.js +5 -0
  300. package/dist/schema/apps/admin/sections/crud-form/index.js.map +1 -0
  301. package/dist/schema/apps/admin/sections/crud-form/types.d.ts +19 -0
  302. package/dist/schema/apps/admin/sections/crud-form/types.d.ts.map +1 -0
  303. package/dist/schema/apps/admin/sections/crud-form/types.js +14 -0
  304. package/dist/schema/apps/admin/sections/crud-form/types.js.map +1 -0
  305. package/dist/schema/apps/admin/sections/crud.d.ts +988 -0
  306. package/dist/schema/apps/admin/sections/crud.d.ts.map +1 -0
  307. package/dist/schema/apps/admin/sections/crud.js +101 -0
  308. package/dist/schema/apps/admin/sections/crud.js.map +1 -0
  309. package/dist/schema/apps/admin/sections/index.d.ts +5 -0
  310. package/dist/schema/apps/admin/sections/index.d.ts.map +1 -0
  311. package/dist/schema/apps/admin/sections/index.js +5 -0
  312. package/dist/schema/apps/admin/sections/index.js.map +1 -0
  313. package/dist/schema/apps/admin/sections/types.d.ts +2 -0
  314. package/dist/schema/apps/admin/sections/types.d.ts.map +1 -0
  315. package/dist/schema/apps/admin/sections/types.js +6 -0
  316. package/dist/schema/apps/admin/sections/types.js.map +1 -0
  317. package/dist/schema/apps/backend/index.d.ts +49 -0
  318. package/dist/schema/apps/backend/index.d.ts.map +1 -0
  319. package/dist/schema/apps/backend/index.js +15 -0
  320. package/dist/schema/apps/backend/index.js.map +1 -0
  321. package/dist/schema/apps/base.d.ts +25 -0
  322. package/dist/schema/apps/base.d.ts.map +1 -0
  323. package/dist/schema/apps/base.js +16 -0
  324. package/dist/schema/apps/base.js.map +1 -0
  325. package/dist/schema/apps/index.d.ts +6 -0
  326. package/dist/schema/apps/index.d.ts.map +1 -0
  327. package/dist/schema/apps/index.js +6 -0
  328. package/dist/schema/apps/index.js.map +1 -0
  329. package/dist/schema/apps/types.d.ts +6 -0
  330. package/dist/schema/apps/types.d.ts.map +1 -0
  331. package/dist/schema/apps/types.js +6 -0
  332. package/dist/schema/apps/types.js.map +1 -0
  333. package/dist/schema/apps/web/index.d.ts +49 -0
  334. package/dist/schema/apps/web/index.d.ts.map +1 -0
  335. package/dist/schema/apps/web/index.js +22 -0
  336. package/dist/schema/apps/web/index.js.map +1 -0
  337. package/dist/schema/auth/index.d.ts +2 -0
  338. package/dist/schema/auth/index.d.ts.map +1 -0
  339. package/dist/schema/auth/index.js +3 -0
  340. package/dist/schema/auth/index.js.map +1 -0
  341. package/dist/schema/creator/index.d.ts +2 -0
  342. package/dist/schema/creator/index.d.ts.map +1 -0
  343. package/dist/schema/creator/index.js +2 -0
  344. package/dist/schema/creator/index.js.map +1 -0
  345. package/dist/schema/creator/schema-creator.d.ts +4 -0
  346. package/dist/schema/creator/schema-creator.d.ts.map +1 -0
  347. package/dist/schema/creator/schema-creator.js +4 -0
  348. package/dist/schema/creator/schema-creator.js.map +1 -0
  349. package/dist/schema/creator/types.d.ts +14 -0
  350. package/dist/schema/creator/types.d.ts.map +1 -0
  351. package/dist/schema/creator/types.js +2 -0
  352. package/dist/schema/creator/types.js.map +1 -0
  353. package/dist/schema/features/feature.d.ts +33 -0
  354. package/dist/schema/features/feature.d.ts.map +1 -0
  355. package/dist/schema/features/feature.js +21 -0
  356. package/dist/schema/features/feature.js.map +1 -0
  357. package/dist/schema/features/index.d.ts +3 -0
  358. package/dist/schema/features/index.d.ts.map +1 -0
  359. package/dist/schema/features/index.js +3 -0
  360. package/dist/schema/features/index.js.map +1 -0
  361. package/dist/schema/features/theme.d.ts +208 -0
  362. package/dist/schema/features/theme.d.ts.map +1 -0
  363. package/dist/schema/features/theme.js +34 -0
  364. package/dist/schema/features/theme.js.map +1 -0
  365. package/dist/schema/index.d.ts +11 -0
  366. package/dist/schema/index.d.ts.map +1 -0
  367. package/dist/schema/index.js +11 -0
  368. package/dist/schema/index.js.map +1 -0
  369. package/dist/schema/models/enums.d.ts +97 -0
  370. package/dist/schema/models/enums.d.ts.map +1 -0
  371. package/dist/schema/models/enums.js +25 -0
  372. package/dist/schema/models/enums.js.map +1 -0
  373. package/dist/schema/models/graphql.d.ts +181 -0
  374. package/dist/schema/models/graphql.d.ts.map +1 -0
  375. package/dist/schema/models/graphql.js +96 -0
  376. package/dist/schema/models/graphql.js.map +1 -0
  377. package/dist/schema/models/index.d.ts +1692 -0
  378. package/dist/schema/models/index.d.ts.map +1 -0
  379. package/dist/schema/models/index.js +220 -0
  380. package/dist/schema/models/index.js.map +1 -0
  381. package/dist/schema/models/mocks.d.ts +6 -0
  382. package/dist/schema/models/mocks.d.ts.map +1 -0
  383. package/dist/schema/models/mocks.js +55 -0
  384. package/dist/schema/models/mocks.js.map +1 -0
  385. package/dist/schema/models/transformers/built-in-transformers.d.ts +71 -0
  386. package/dist/schema/models/transformers/built-in-transformers.d.ts.map +1 -0
  387. package/dist/schema/models/transformers/built-in-transformers.js +59 -0
  388. package/dist/schema/models/transformers/built-in-transformers.js.map +1 -0
  389. package/dist/schema/models/transformers/index.d.ts +5 -0
  390. package/dist/schema/models/transformers/index.d.ts.map +1 -0
  391. package/dist/schema/models/transformers/index.js +5 -0
  392. package/dist/schema/models/transformers/index.js.map +1 -0
  393. package/dist/schema/models/transformers/model-transformer-spec.d.ts +17 -0
  394. package/dist/schema/models/transformers/model-transformer-spec.d.ts.map +1 -0
  395. package/dist/schema/models/transformers/model-transformer-spec.js +40 -0
  396. package/dist/schema/models/transformers/model-transformer-spec.js.map +1 -0
  397. package/dist/schema/models/transformers/transformers.d.ts +11 -0
  398. package/dist/schema/models/transformers/transformers.d.ts.map +1 -0
  399. package/dist/schema/models/transformers/transformers.js +11 -0
  400. package/dist/schema/models/transformers/transformers.js.map +1 -0
  401. package/dist/schema/models/transformers/types.d.ts +23 -0
  402. package/dist/schema/models/transformers/types.d.ts.map +1 -0
  403. package/dist/schema/models/transformers/types.js +12 -0
  404. package/dist/schema/models/transformers/types.js.map +1 -0
  405. package/dist/schema/models/types.d.ts +9 -0
  406. package/dist/schema/models/types.d.ts.map +1 -0
  407. package/dist/schema/models/types.js +14 -0
  408. package/dist/schema/models/types.js.map +1 -0
  409. package/dist/schema/plugins/definition.d.ts +128 -0
  410. package/dist/schema/plugins/definition.d.ts.map +1 -0
  411. package/dist/schema/plugins/definition.js +28 -0
  412. package/dist/schema/plugins/definition.js.map +1 -0
  413. package/dist/schema/plugins/entity-types.d.ts +2 -0
  414. package/dist/schema/plugins/entity-types.d.ts.map +1 -0
  415. package/dist/schema/plugins/entity-types.js +3 -0
  416. package/dist/schema/plugins/entity-types.js.map +1 -0
  417. package/dist/schema/plugins/index.d.ts +3 -0
  418. package/dist/schema/plugins/index.d.ts.map +1 -0
  419. package/dist/schema/plugins/index.js +3 -0
  420. package/dist/schema/plugins/index.js.map +1 -0
  421. package/dist/schema/project-definition.d.ts +2877 -0
  422. package/dist/schema/project-definition.d.ts.map +1 -0
  423. package/dist/schema/project-definition.js +34 -0
  424. package/dist/schema/project-definition.js.map +1 -0
  425. package/dist/schema/settings.d.ts +228 -0
  426. package/dist/schema/settings.d.ts.map +1 -0
  427. package/dist/schema/settings.js +32 -0
  428. package/dist/schema/settings.js.map +1 -0
  429. package/dist/schema/template-extractor/index.d.ts +25 -0
  430. package/dist/schema/template-extractor/index.d.ts.map +1 -0
  431. package/dist/schema/template-extractor/index.js +18 -0
  432. package/dist/schema/template-extractor/index.js.map +1 -0
  433. package/dist/schema/utils/validation.d.ts +8 -0
  434. package/dist/schema/utils/validation.d.ts.map +1 -0
  435. package/dist/schema/utils/validation.js +18 -0
  436. package/dist/schema/utils/validation.js.map +1 -0
  437. package/dist/tools/index.d.ts +2 -0
  438. package/dist/tools/index.d.ts.map +1 -0
  439. package/dist/tools/index.js +2 -0
  440. package/dist/tools/index.js.map +1 -0
  441. package/dist/tools/model-merger/index.d.ts +2 -0
  442. package/dist/tools/model-merger/index.d.ts.map +1 -0
  443. package/dist/tools/model-merger/index.js +2 -0
  444. package/dist/tools/model-merger/index.js.map +1 -0
  445. package/dist/tools/model-merger/model-merger.d.ts +376 -0
  446. package/dist/tools/model-merger/model-merger.d.ts.map +1 -0
  447. package/dist/tools/model-merger/model-merger.js +229 -0
  448. package/dist/tools/model-merger/model-merger.js.map +1 -0
  449. package/dist/types/field-types.d.ts +3 -0
  450. package/dist/types/field-types.d.ts.map +1 -0
  451. package/dist/types/field-types.js +13 -0
  452. package/dist/types/field-types.js.map +1 -0
  453. package/dist/types/files.d.ts +8 -0
  454. package/dist/types/files.d.ts.map +1 -0
  455. package/dist/types/files.js +2 -0
  456. package/dist/types/files.js.map +1 -0
  457. package/dist/utils/color-conversions.d.ts +20 -0
  458. package/dist/utils/color-conversions.d.ts.map +1 -0
  459. package/dist/utils/color-conversions.js +38 -0
  460. package/dist/utils/color-conversions.js.map +1 -0
  461. package/dist/utils/color-names.d.ts +18 -0
  462. package/dist/utils/color-names.d.ts.map +1 -0
  463. package/dist/utils/color-names.js +54 -0
  464. package/dist/utils/color-names.js.map +1 -0
  465. package/dist/utils/definition-diff/definition-diff.d.ts +68 -0
  466. package/dist/utils/definition-diff/definition-diff.d.ts.map +1 -0
  467. package/dist/utils/definition-diff/definition-diff.js +149 -0
  468. package/dist/utils/definition-diff/definition-diff.js.map +1 -0
  469. package/dist/utils/definition-diff/index.d.ts +2 -0
  470. package/dist/utils/definition-diff/index.d.ts.map +1 -0
  471. package/dist/utils/definition-diff/index.js +2 -0
  472. package/dist/utils/definition-diff/index.js.map +1 -0
  473. package/dist/utils/index.d.ts +6 -0
  474. package/dist/utils/index.d.ts.map +1 -0
  475. package/dist/utils/index.js +6 -0
  476. package/dist/utils/index.js.map +1 -0
  477. package/dist/utils/path.d.ts +5 -0
  478. package/dist/utils/path.d.ts.map +1 -0
  479. package/dist/utils/path.js +27 -0
  480. package/dist/utils/path.js.map +1 -0
  481. package/dist/utils/strip.d.ts +18 -0
  482. package/dist/utils/strip.d.ts.map +1 -0
  483. package/dist/utils/strip.js +37 -0
  484. package/dist/utils/strip.js.map +1 -0
  485. package/dist/utils/theme.d.ts +10 -0
  486. package/dist/utils/theme.d.ts.map +1 -0
  487. package/dist/utils/theme.js +58 -0
  488. package/dist/utils/theme.js.map +1 -0
  489. package/dist/web/components/FeatureComboboxField.d.ts +17 -0
  490. package/dist/web/components/FeatureComboboxField.d.ts.map +1 -0
  491. package/dist/web/components/FeatureComboboxField.js +38 -0
  492. package/dist/web/components/FeatureComboboxField.js.map +1 -0
  493. package/dist/web/components/ModelComboboxField.d.ts +17 -0
  494. package/dist/web/components/ModelComboboxField.d.ts.map +1 -0
  495. package/dist/web/components/ModelComboboxField.js +38 -0
  496. package/dist/web/components/ModelComboboxField.js.map +1 -0
  497. package/dist/web/components/ModelMergerResultAlert.d.ts +8 -0
  498. package/dist/web/components/ModelMergerResultAlert.d.ts.map +1 -0
  499. package/dist/web/components/ModelMergerResultAlert.js +10 -0
  500. package/dist/web/components/ModelMergerResultAlert.js.map +1 -0
  501. package/dist/web/components/index.d.ts +4 -0
  502. package/dist/web/components/index.d.ts.map +1 -0
  503. package/dist/web/components/index.js +4 -0
  504. package/dist/web/components/index.js.map +1 -0
  505. package/dist/web/contexts/error-handler.d.ts +7 -0
  506. package/dist/web/contexts/error-handler.d.ts.map +1 -0
  507. package/dist/web/contexts/error-handler.js +3 -0
  508. package/dist/web/contexts/error-handler.js.map +1 -0
  509. package/dist/web/contexts/index.d.ts +2 -0
  510. package/dist/web/contexts/index.d.ts.map +1 -0
  511. package/dist/web/contexts/index.js +2 -0
  512. package/dist/web/contexts/index.js.map +1 -0
  513. package/dist/web/hooks/index.d.ts +8 -0
  514. package/dist/web/hooks/index.d.ts.map +1 -0
  515. package/dist/web/hooks/index.js +8 -0
  516. package/dist/web/hooks/index.js.map +1 -0
  517. package/dist/web/hooks/useBlockDirtyFormNavigate.d.ts +3 -0
  518. package/dist/web/hooks/useBlockDirtyFormNavigate.d.ts.map +1 -0
  519. package/dist/web/hooks/useBlockDirtyFormNavigate.js +14 -0
  520. package/dist/web/hooks/useBlockDirtyFormNavigate.js.map +1 -0
  521. package/dist/web/hooks/useBlockUnsavedChangesNavigate.d.ts +7 -0
  522. package/dist/web/hooks/useBlockUnsavedChangesNavigate.d.ts.map +1 -0
  523. package/dist/web/hooks/useBlockUnsavedChangesNavigate.js +47 -0
  524. package/dist/web/hooks/useBlockUnsavedChangesNavigate.js.map +1 -0
  525. package/dist/web/hooks/useBlockerDialog.d.ts +44 -0
  526. package/dist/web/hooks/useBlockerDialog.d.ts.map +1 -0
  527. package/dist/web/hooks/useBlockerDialog.js +77 -0
  528. package/dist/web/hooks/useBlockerDialog.js.map +1 -0
  529. package/dist/web/hooks/useErrorHandler.d.ts +3 -0
  530. package/dist/web/hooks/useErrorHandler.d.ts.map +1 -0
  531. package/dist/web/hooks/useErrorHandler.js +10 -0
  532. package/dist/web/hooks/useErrorHandler.js.map +1 -0
  533. package/dist/web/hooks/usePluginEnhancedSchema.d.ts +4 -0
  534. package/dist/web/hooks/usePluginEnhancedSchema.d.ts.map +1 -0
  535. package/dist/web/hooks/usePluginEnhancedSchema.js +8 -0
  536. package/dist/web/hooks/usePluginEnhancedSchema.js.map +1 -0
  537. package/dist/web/hooks/useProjectDefinition.d.ts +65 -0
  538. package/dist/web/hooks/useProjectDefinition.d.ts.map +1 -0
  539. package/dist/web/hooks/useProjectDefinition.js +10 -0
  540. package/dist/web/hooks/useProjectDefinition.js.map +1 -0
  541. package/dist/web/hooks/useResettableForm.d.ts +3 -0
  542. package/dist/web/hooks/useResettableForm.d.ts.map +1 -0
  543. package/dist/web/hooks/useResettableForm.js +29 -0
  544. package/dist/web/hooks/useResettableForm.js.map +1 -0
  545. package/dist/web/index.d.ts +6 -0
  546. package/dist/web/index.d.ts.map +1 -0
  547. package/dist/web/index.js +6 -0
  548. package/dist/web/index.js.map +1 -0
  549. package/dist/web/specs/admin-crud-input-web-spec.d.ts +36 -0
  550. package/dist/web/specs/admin-crud-input-web-spec.d.ts.map +1 -0
  551. package/dist/web/specs/admin-crud-input-web-spec.js +35 -0
  552. package/dist/web/specs/admin-crud-input-web-spec.js.map +1 -0
  553. package/dist/web/specs/index.d.ts +3 -0
  554. package/dist/web/specs/index.d.ts.map +1 -0
  555. package/dist/web/specs/index.js +3 -0
  556. package/dist/web/specs/index.js.map +1 -0
  557. package/dist/web/specs/model-transformer-web-spec.d.ts +40 -0
  558. package/dist/web/specs/model-transformer-web-spec.d.ts.map +1 -0
  559. package/dist/web/specs/model-transformer-web-spec.js +35 -0
  560. package/dist/web/specs/model-transformer-web-spec.js.map +1 -0
  561. package/dist/web/utils/form.d.ts +2 -0
  562. package/dist/web/utils/form.d.ts.map +1 -0
  563. package/dist/web/utils/form.js +6 -0
  564. package/dist/web/utils/form.js.map +1 -0
  565. package/dist/web/utils/index.d.ts +2 -0
  566. package/dist/web/utils/index.d.ts.map +1 -0
  567. package/dist/web/utils/index.js +2 -0
  568. package/dist/web/utils/index.js.map +1 -0
  569. package/package.json +78 -0
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Represents a schema migration.
3
+ *
4
+ * @template TInputConfig - The type of the input configuration.
5
+ * @template TOutputConfig - The type of the output configuration.
6
+ */
7
+ export interface SchemaMigration<TInputConfig = any, TOutputConfig = any> {
8
+ /**
9
+ * The version of the migration. Must be sequential.
10
+ */
11
+ version: number;
12
+ /**
13
+ * The name of the migration.
14
+ */
15
+ name: string;
16
+ /**
17
+ * A description of the migration.
18
+ */
19
+ description: string;
20
+ /**
21
+ * Migrate the configuration.
22
+ *
23
+ * @param config - The configuration to migrate.
24
+ * @returns The migrated configuration.
25
+ */
26
+ migrate: (config: TInputConfig) => TOutputConfig;
27
+ }
28
+ export declare function createSchemaMigration<TInputConfig, TOutputConfig>(migration: SchemaMigration<TInputConfig, TOutputConfig>): SchemaMigration<TInputConfig, TOutputConfig>;
29
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/migrations/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,eAAe,CAAC,YAAY,GAAG,GAAG,EAAE,aAAa,GAAG,GAAG;IACtE;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,OAAO,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,aAAa,CAAC;CAClD;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,aAAa,EAC/D,SAAS,EAAE,eAAe,CAAC,YAAY,EAAE,aAAa,CAAC,GACtD,eAAe,CAAC,YAAY,EAAE,aAAa,CAAC,CAE9C"}
@@ -0,0 +1,4 @@
1
+ export function createSchemaMigration(migration) {
2
+ return migration;
3
+ }
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/migrations/types.ts"],"names":[],"mappings":"AA6BA,MAAM,UAAU,qBAAqB,CACnC,SAAuD;IAEvD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function stripUndefinedChildren<T extends Record<string, unknown>>(obj: T): T;
2
+ export declare function undefinedIfEmptyObject<T extends Record<string, unknown>>(obj: T): T | undefined;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/migrations/utils.ts"],"names":[],"mappings":"AAEA,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtE,GAAG,EAAE,CAAC,GACL,CAAC,CAEH;AAED,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtE,GAAG,EAAE,CAAC,GACL,CAAC,GAAG,SAAS,CAIf"}
@@ -0,0 +1,10 @@
1
+ import { pickBy } from 'es-toolkit';
2
+ export function stripUndefinedChildren(obj) {
3
+ return pickBy(obj, (value) => value !== undefined);
4
+ }
5
+ export function undefinedIfEmptyObject(obj) {
6
+ return Object.keys(obj).every((key) => obj[key] === undefined)
7
+ ? undefined
8
+ : obj;
9
+ }
10
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/migrations/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,MAAM,UAAU,sBAAsB,CACpC,GAAM;IAEN,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAM,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,GAAM;IAEN,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;QAC5D,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,GAAG,CAAC;AACV,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './parser.js';
2
+ export type * from './types.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,mBAAmB,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './parser.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { PluginStore } from '#src/plugins/imports/types.js';
2
+ import type { PluginImplementationStore, ZodPluginWrapper } from '#src/plugins/index.js';
3
+ import type { ResolvedZodRefPayload } from '#src/references/types.js';
4
+ import type { ProjectDefinition, ProjectDefinitionSchema } from '#src/schema/project-definition.js';
5
+ import type { SchemaParserContext } from './types.js';
6
+ /**
7
+ * Creates a plugin implementation store from the project definition and plugin store,
8
+ * initializing the set of plugins enabled in the project definition.
9
+ *
10
+ * @param pluginStore The plugin store to use
11
+ * @param projectDefinition The project definition to use
12
+ * @returns The plugin implementation store
13
+ */
14
+ export declare function createPluginImplementationStore(pluginStore: PluginStore, projectDefinition: unknown): PluginImplementationStore;
15
+ /**
16
+ * Creates a project definition schema with the given context.
17
+ *
18
+ * @param projectDefinition The project definition to create a schema for
19
+ * @param context The context to use
20
+ * @return The project definition schema
21
+ */
22
+ export declare function createProjectDefinitionSchemaWithContext(projectDefinition: unknown, context: SchemaParserContext): ZodPluginWrapper<ProjectDefinitionSchema>;
23
+ export declare function parseProjectDefinitionWithContext(projectDefinition: unknown, context: SchemaParserContext): ProjectDefinition;
24
+ /**
25
+ * Parses a project definition and obtains entities/references from it.
26
+ *
27
+ * @param projectDefinition The project definition to parse
28
+ * @param context The context to use
29
+ * @returns The parsed project definition with entities/references
30
+ */
31
+ export declare function parseProjectDefinitionWithReferences(projectDefinition: unknown, context: SchemaParserContext): {
32
+ definition: ResolvedZodRefPayload<ProjectDefinition>;
33
+ pluginStore: PluginImplementationStore;
34
+ };
35
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAEV,yBAAyB,EAGzB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,mCAAmC,CAAC;AAS3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAOtD;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,OAAO,GACzB,yBAAyB,CA2C3B;AAED;;;;;;GAMG;AACH,wBAAgB,wCAAwC,CACtD,iBAAiB,EAAE,OAAO,EAC1B,OAAO,EAAE,mBAAmB,GAC3B,gBAAgB,CAAC,uBAAuB,CAAC,CAU3C;AAED,wBAAgB,iCAAiC,CAC/C,iBAAiB,EAAE,OAAO,EAC1B,OAAO,EAAE,mBAAmB,GAC3B,iBAAiB,CAMnB;AAED;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAClD,iBAAiB,EAAE,OAAO,EAC1B,OAAO,EAAE,mBAAmB,GAC3B;IACD,UAAU,EAAE,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IACrD,WAAW,EAAE,yBAAyB,CAAC;CACxC,CAOA"}
@@ -0,0 +1,84 @@
1
+ import { z } from 'zod';
2
+ import { initializePlugins } from '#src/plugins/imports/loader.js';
3
+ import { pluginConfigSpec, zPluginWrapper } from '#src/plugins/index.js';
4
+ import { parseSchemaWithReferences } from '#src/references/parse-schema-with-references.js';
5
+ import { adminCrudInputSpec, modelTransformerSpec } from '#src/schema/index.js';
6
+ import { basePluginDefinitionSchema } from '#src/schema/plugins/definition.js';
7
+ import { createProjectDefinitionSchema } from '#src/schema/project-definition.js';
8
+ const COMMON_SPEC_IMPLEMENTATIONS = [pluginConfigSpec, modelTransformerSpec, adminCrudInputSpec];
9
+ /**
10
+ * Creates a plugin implementation store from the project definition and plugin store,
11
+ * initializing the set of plugins enabled in the project definition.
12
+ *
13
+ * @param pluginStore The plugin store to use
14
+ * @param projectDefinition The project definition to use
15
+ * @returns The plugin implementation store
16
+ */
17
+ export function createPluginImplementationStore(pluginStore, projectDefinition) {
18
+ const { availablePlugins, builtinSpecImplementations = [] } = pluginStore;
19
+ const pluginData = z
20
+ .object({
21
+ plugins: z.array(basePluginDefinitionSchema).optional(),
22
+ })
23
+ .parse(projectDefinition);
24
+ const { plugins = [] } = pluginData;
25
+ // initialize plugins
26
+ const initialImplementations = [
27
+ ...COMMON_SPEC_IMPLEMENTATIONS,
28
+ ...builtinSpecImplementations,
29
+ ];
30
+ const specImplementations = {};
31
+ for (const spec of initialImplementations) {
32
+ if ('type' in spec) {
33
+ if (typeof spec.defaultInitializer !== 'function') {
34
+ throw new TypeError(`Spec ${spec.type} does not have a defaultInitializer function!`);
35
+ }
36
+ specImplementations[spec.name] = spec.defaultInitializer();
37
+ }
38
+ else {
39
+ specImplementations[spec.spec.name] = spec.implementation;
40
+ }
41
+ }
42
+ const pluginsWithModules = plugins.map((p) => {
43
+ const plugin = availablePlugins.find(({ metadata }) => metadata.name === p.name && metadata.packageName === p.packageName);
44
+ const pluginName = `${p.packageName}/${p.name}`;
45
+ if (!plugin) {
46
+ throw new Error(`Unable to find plugin ${pluginName}!`);
47
+ }
48
+ return {
49
+ id: plugin.metadata.id,
50
+ name: pluginName,
51
+ pluginModules: plugin.modules,
52
+ };
53
+ });
54
+ return initializePlugins(pluginsWithModules, specImplementations);
55
+ }
56
+ /**
57
+ * Creates a project definition schema with the given context.
58
+ *
59
+ * @param projectDefinition The project definition to create a schema for
60
+ * @param context The context to use
61
+ * @return The project definition schema
62
+ */
63
+ export function createProjectDefinitionSchemaWithContext(projectDefinition, context) {
64
+ const { pluginStore } = context;
65
+ const pluginImplementationStore = createPluginImplementationStore(pluginStore, projectDefinition);
66
+ return zPluginWrapper(createProjectDefinitionSchema({ plugins: pluginImplementationStore }), pluginImplementationStore);
67
+ }
68
+ export function parseProjectDefinitionWithContext(projectDefinition, context) {
69
+ const schema = createProjectDefinitionSchemaWithContext(projectDefinition, context);
70
+ return schema.parse(projectDefinition);
71
+ }
72
+ /**
73
+ * Parses a project definition and obtains entities/references from it.
74
+ *
75
+ * @param projectDefinition The project definition to parse
76
+ * @param context The context to use
77
+ * @returns The parsed project definition with entities/references
78
+ */
79
+ export function parseProjectDefinitionWithReferences(projectDefinition, context) {
80
+ const schema = createProjectDefinitionSchemaWithContext(projectDefinition, context);
81
+ const definition = parseSchemaWithReferences(schema, projectDefinition);
82
+ return { definition, pluginStore: schema._def.pluginStore };
83
+ }
84
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { PluginStore } from '#src/plugins/imports/types.js';
2
+ /**
3
+ * The context available to the schema parser, including the plugin store.
4
+ */
5
+ export interface SchemaParserContext {
6
+ pluginStore: PluginStore;
7
+ }
8
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/parser/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,WAAW,CAAC;CAC1B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/parser/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from './plugin-loader.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin-tools/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './plugin-loader.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin-tools/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { PluginMetadataWithPaths } from '../plugins/index.js';
2
+ /**
3
+ * Finds the available plugins in a package.
4
+ */
5
+ export declare function loadPluginsInPackage(pluginPackageDirectory: string, packageName: string): Promise<PluginMetadataWithPaths[]>;
6
+ export declare function rewriteDistToSrc(directory: string): string;
7
+ interface GetModuleFederationTargetsOptions {
8
+ /**
9
+ * Rewrites the plugin directory to a different path. Useful when
10
+ * the source plugin directory is different than the compiled code.
11
+ */
12
+ rewritePluginDirectory?: (directory: string) => string;
13
+ }
14
+ export declare function getModuleFederationTargets(pluginPackageDirectory: string, options?: GetModuleFederationTargetsOptions): Promise<Record<string, string>>;
15
+ export {};
16
+ //# sourceMappingURL=plugin-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-loader.d.ts","sourceRoot":"","sources":["../../src/plugin-tools/plugin-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAGV,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAiM7B;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,sBAAsB,EAAE,MAAM,EAC9B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAqBpC;AA6BD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,UAAU,iCAAiC;IACzC;;;OAGG;IACH,sBAAsB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;CACxD;AAED,wBAAsB,0BAA0B,CAC9C,sBAAsB,EAAE,MAAM,EAC9B,OAAO,GAAE,iCAAsC,GAC9C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAuCjC"}
@@ -0,0 +1,166 @@
1
+ import { globby } from 'globby';
2
+ import fs from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { pluginManifestJsonSchema, pluginMetadataSchema, } from '../plugins/index.js';
5
+ class PluginLoaderError extends Error {
6
+ constructor(message, innerError) {
7
+ super(`Error loading plugin (${message}): ${innerError instanceof Error ? innerError.message : String(innerError)}`);
8
+ Object.defineProperty(this, "innerError", {
9
+ enumerable: true,
10
+ configurable: true,
11
+ writable: true,
12
+ value: innerError
13
+ });
14
+ this.name = 'PluginLoaderError';
15
+ }
16
+ }
17
+ async function fileExists(path) {
18
+ return fs
19
+ .access(path)
20
+ .then(() => true)
21
+ .catch(() => false);
22
+ }
23
+ async function readManifestJson(pluginPackagePath) {
24
+ const manifestJsonPath = path.join(pluginPackagePath, 'manifest.json');
25
+ if (!(await fileExists(manifestJsonPath))) {
26
+ throw new Error(`Package ${pluginPackagePath} does not have a valid manifest.json file.`);
27
+ }
28
+ return await fs
29
+ .readFile(manifestJsonPath, 'utf8')
30
+ .then((data) => pluginManifestJsonSchema.parse(JSON.parse(data)));
31
+ }
32
+ async function readMetadataJson(directory) {
33
+ const metadataJsonFilename = path.join(directory, 'metadata.json');
34
+ try {
35
+ if (!(await fileExists(metadataJsonFilename))) {
36
+ throw new Error(`Plugin metadata file not found: ${metadataJsonFilename}`);
37
+ }
38
+ return await fs
39
+ .readFile(metadataJsonFilename, 'utf8')
40
+ .then((data) => pluginMetadataSchema.parse(JSON.parse(data)));
41
+ }
42
+ catch (error) {
43
+ throw new PluginLoaderError(`Unable to read plugin metadata ${metadataJsonFilename}`, error);
44
+ }
45
+ }
46
+ const ENTRYPOINT_TYPES = ['node', 'web', 'common'];
47
+ const NODE_ENTRYPOINT_TYPES = new Set(['node', 'common']);
48
+ const WEB_ENTRYPOINT_TYPES = new Set(['web', 'common']);
49
+ /**
50
+ * Look for a file that exists with a JS extension (.js(x), .ts(x))
51
+ */
52
+ async function findJavascriptFile(pathWithoutExtension) {
53
+ const candidatePaths = ['ts', 'js', 'tsx', 'jsx'].map((extension) => `${pathWithoutExtension}.${extension}`);
54
+ for (const path of candidatePaths) {
55
+ if (await fileExists(path)) {
56
+ return path;
57
+ }
58
+ }
59
+ return undefined;
60
+ }
61
+ async function getPluginEntrypoints(metadata, pluginDirectory) {
62
+ try {
63
+ const { moduleDirectories = ['.'] } = metadata;
64
+ // find all module directories
65
+ const moduleDirectoryPaths = moduleDirectories.map((moduleDirectory) => path.join(pluginDirectory, moduleDirectory));
66
+ const moduleEntrypoints = await Promise.all(moduleDirectoryPaths.map(async (moduleDirectoryPath) => await Promise.all(ENTRYPOINT_TYPES.map(async (entrypoint) => {
67
+ const entrypointPath = await findJavascriptFile(path.join(moduleDirectoryPath, entrypoint));
68
+ if (!entrypointPath) {
69
+ return;
70
+ }
71
+ return { type: entrypoint, path: entrypointPath };
72
+ }))));
73
+ return moduleEntrypoints.flat().filter((x) => x !== undefined);
74
+ }
75
+ catch (error) {
76
+ throw new PluginLoaderError(`Unable to find plugin entrypoints in ${pluginDirectory}`, error);
77
+ }
78
+ }
79
+ function getWebEntrypointImport(pluginName, pluginDirectory, entrypointPath) {
80
+ const pathWithoutExtension = entrypointPath.replace(/\.[jt]sx?$/, '');
81
+ const relativeEntrypoint = path
82
+ .relative(pluginDirectory, pathWithoutExtension)
83
+ .replace(/\\/g, '/');
84
+ return `${pluginName}/${relativeEntrypoint}`;
85
+ }
86
+ async function populatePluginMetadataWithPaths(metadata, packageName, pluginDirectory, webBuildDirectory) {
87
+ try {
88
+ const entrypoints = await getPluginEntrypoints(metadata, pluginDirectory);
89
+ const nodeEntrypoints = entrypoints.filter((n) => NODE_ENTRYPOINT_TYPES.has(n.type));
90
+ const webEntrypoints = entrypoints.filter((n) => WEB_ENTRYPOINT_TYPES.has(n.type));
91
+ return {
92
+ ...metadata,
93
+ // URL safe ID
94
+ id: `${packageName
95
+ .replace(/^@/, '')
96
+ .replace(/[^a-z0-9/]+/g, '-')
97
+ .replace(/\//g, '_')}_${metadata.name.replace(/[^a-z0-9]+/g, '-')}`,
98
+ packageName,
99
+ pluginDirectory,
100
+ webBuildDirectory,
101
+ nodeModulePaths: nodeEntrypoints.map((e) => e.path),
102
+ webModulePaths: webEntrypoints.map((e) => getWebEntrypointImport(metadata.name, pluginDirectory, e.path)),
103
+ };
104
+ }
105
+ catch (error) {
106
+ throw new PluginLoaderError('Unable to populate plugin metadata with paths', error);
107
+ }
108
+ }
109
+ async function getPluginDirectories(pluginPackageDirectory, plugins) {
110
+ const pluginDirectories = await globby(plugins, {
111
+ cwd: pluginPackageDirectory,
112
+ onlyDirectories: true,
113
+ expandDirectories: false,
114
+ });
115
+ return pluginDirectories.map((pluginDirectory) => path.join(pluginPackageDirectory, pluginDirectory));
116
+ }
117
+ /**
118
+ * Finds the available plugins in a package.
119
+ */
120
+ export async function loadPluginsInPackage(pluginPackageDirectory, packageName) {
121
+ // Look for manifest.json file
122
+ const manifest = await readManifestJson(pluginPackageDirectory);
123
+ const pluginDirectories = await getPluginDirectories(pluginPackageDirectory, manifest.plugins);
124
+ // Load the plugins
125
+ const plugins = await Promise.all(pluginDirectories.map(async (directory) => {
126
+ const metadata = await readMetadataJson(directory);
127
+ return populatePluginMetadataWithPaths(metadata, packageName, directory, path.join(pluginPackageDirectory, manifest.webBuild));
128
+ }));
129
+ return plugins;
130
+ }
131
+ async function getModuleFederationTargetsForPlugin(metadata, pluginDirectory, pluginPackageDirectory) {
132
+ const entrypoints = await getPluginEntrypoints(metadata, pluginDirectory);
133
+ const pluginTargets = entrypoints
134
+ .filter((e) => WEB_ENTRYPOINT_TYPES.has(e.type))
135
+ .map((entrypoint) => {
136
+ const entrypointImport = getWebEntrypointImport(metadata.name, pluginDirectory, entrypoint.path);
137
+ const relativePath = path.relative(pluginPackageDirectory, entrypoint.path);
138
+ return {
139
+ [entrypointImport]: relativePath,
140
+ };
141
+ });
142
+ return Object.assign({}, ...pluginTargets.flat());
143
+ }
144
+ export function rewriteDistToSrc(directory) {
145
+ return directory.replace(/^dist\//, 'src/');
146
+ }
147
+ export async function getModuleFederationTargets(pluginPackageDirectory, options = {}) {
148
+ const { rewritePluginDirectory } = options;
149
+ const manifest = await readManifestJson(pluginPackageDirectory);
150
+ const pluginDirectories = await getPluginDirectories(pluginPackageDirectory, manifest.plugins.map((plugin) => rewritePluginDirectory ? rewritePluginDirectory(plugin) : plugin));
151
+ const rewrittenPluginDirectories = rewritePluginDirectory
152
+ ? pluginDirectories.map((directory) => {
153
+ const relativeDirectory = path.relative(pluginPackageDirectory, directory);
154
+ return path.join(pluginPackageDirectory, rewritePluginDirectory(relativeDirectory));
155
+ })
156
+ : pluginDirectories;
157
+ const targets = await Promise.all(rewrittenPluginDirectories.map(async (directory) => {
158
+ const metadata = await readMetadataJson(directory);
159
+ return getModuleFederationTargetsForPlugin(metadata, directory, pluginPackageDirectory);
160
+ }));
161
+ if (targets.length === 0) {
162
+ throw new Error(`No module federation targets found in ${pluginPackageDirectory}`);
163
+ }
164
+ return Object.assign({}, ...targets);
165
+ }
166
+ //# sourceMappingURL=plugin-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-loader.js","sourceRoot":"","sources":["../../src/plugin-tools/plugin-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { initializePlugins } from './loader.js';
2
+ export * from './types.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/imports/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,cAAc,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { initializePlugins } from './loader.js';
2
+ export * from './types.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/imports/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,cAAc,YAAY,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { PluginSpecImplementation } from '../spec/types.js';
2
+ import type { KeyedPluginPlatformModule } from './types.js';
3
+ import { PluginImplementationStore } from '../schema/store.js';
4
+ export interface PluginWithPlatformModules {
5
+ id: string;
6
+ name: string;
7
+ pluginModules: KeyedPluginPlatformModule[];
8
+ }
9
+ interface KeyedPlatformModuleWithPlugin extends KeyedPluginPlatformModule {
10
+ id: string;
11
+ name: string;
12
+ pluginId: string;
13
+ pluginName: string;
14
+ }
15
+ export declare function extractPlatformModulesFromPlugins(plugins: PluginWithPlatformModules[]): KeyedPlatformModuleWithPlugin[];
16
+ export declare function getOrderedPluginModuleInitializationSteps(pluginModules: KeyedPlatformModuleWithPlugin[], initialSpecImplementations: Record<string, PluginSpecImplementation>): string[];
17
+ export declare function initializeOrderedPluginModules(orderedPluginModules: KeyedPlatformModuleWithPlugin[], initialSpecImplementations: Partial<Record<string, PluginSpecImplementation>>): Partial<Record<string, PluginSpecImplementation>>;
18
+ /**
19
+ * Initialize the plugins based on their interdependencies and creates a store of the plugin implementations
20
+ */
21
+ export declare function initializePlugins(plugins: PluginWithPlatformModules[], initialSpecImplementations: Record<string, PluginSpecImplementation>): PluginImplementationStore;
22
+ export {};
23
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/plugins/imports/loader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,yBAAyB,EAAE,CAAC;CAC5C;AAED,UAAU,6BAA8B,SAAQ,yBAAyB;IACvE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,yBAAyB,EAAE,GACnC,6BAA6B,EAAE,CAUjC;AAED,wBAAgB,yCAAyC,CACvD,aAAa,EAAE,6BAA6B,EAAE,EAC9C,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,GACnE,MAAM,EAAE,CAgDV;AAED,wBAAgB,8BAA8B,CAC5C,oBAAoB,EAAE,6BAA6B,EAAE,EACrD,0BAA0B,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,GAC5E,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CA4BnD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,yBAAyB,EAAE,EACpC,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,GACnE,yBAAyB,CAc3B"}
@@ -0,0 +1,81 @@
1
+ import { toposortOrdered } from '@baseplate-dev/utils';
2
+ import { keyBy, mapValues } from 'es-toolkit';
3
+ import { stripUndefinedValues } from '#src/utils/strip.js';
4
+ import { PluginImplementationStore } from '../schema/store.js';
5
+ export function extractPlatformModulesFromPlugins(plugins) {
6
+ return plugins.flatMap((plugin) => plugin.pluginModules.map((m) => ({
7
+ ...m,
8
+ id: `${plugin.id}/${m.key}`,
9
+ name: `${plugin.name}/${m.key}`,
10
+ pluginId: plugin.id,
11
+ pluginName: plugin.name,
12
+ })));
13
+ }
14
+ export function getOrderedPluginModuleInitializationSteps(pluginModules, initialSpecImplementations) {
15
+ const pluginModulesById = keyBy(pluginModules, (p) => p.id);
16
+ // create export map of plugin ID to export spec name
17
+ const pluginModuleIdByExport = mapValues(initialSpecImplementations, () => 'built-in');
18
+ for (const { name, module, id } of pluginModules) {
19
+ for (const m of Object.values(module.exports ?? {})) {
20
+ const exportName = m.name;
21
+ if (exportName in pluginModuleIdByExport) {
22
+ const existingPlugin = pluginModulesById[pluginModuleIdByExport[exportName]];
23
+ throw new Error(`Duplicate export from plugins found ${exportName} (${name} and ${existingPlugin.name})`);
24
+ }
25
+ pluginModuleIdByExport[exportName] = id;
26
+ }
27
+ }
28
+ // create list of plugin to plugin dependencies
29
+ const edges = pluginModules.flatMap(({ module, name, id }) => Object.values(module.dependencies ?? {})
30
+ .map((m) => {
31
+ const resolvedDep = pluginModuleIdByExport[m.name];
32
+ if (!resolvedDep) {
33
+ if (m.isOptional) {
34
+ return undefined;
35
+ }
36
+ throw new Error(`Cannot resolve plugin dependency for ${name} (${m.name})`);
37
+ }
38
+ if (resolvedDep === 'built-in') {
39
+ return undefined;
40
+ }
41
+ return [resolvedDep, id];
42
+ })
43
+ .filter((x) => x !== undefined));
44
+ const nodes = pluginModules.map((p) => p.id);
45
+ return toposortOrdered(nodes, edges);
46
+ }
47
+ export function initializeOrderedPluginModules(orderedPluginModules, initialSpecImplementations) {
48
+ const specImplementations = { ...initialSpecImplementations };
49
+ for (const { name, module, pluginId } of orderedPluginModules) {
50
+ const dependencies = module.dependencies
51
+ ? stripUndefinedValues(mapValues(module.dependencies, (dep) => {
52
+ const implementation = specImplementations[dep.name];
53
+ if (!implementation && !dep.isOptional) {
54
+ throw new Error(`Plugin ${name} missing dependency ${dep.name}`);
55
+ }
56
+ return implementation;
57
+ }))
58
+ : {};
59
+ const context = { pluginId };
60
+ const exports = module.initialize(dependencies, context);
61
+ Object.entries(module.exports ?? {}).map(([key, spec]) => {
62
+ const exportedImplementation = exports[key];
63
+ if (!exportedImplementation) {
64
+ throw new Error(`Plugin ${name} did not return required export ${key}`);
65
+ }
66
+ specImplementations[spec.name] = exportedImplementation;
67
+ });
68
+ }
69
+ return specImplementations;
70
+ }
71
+ /**
72
+ * Initialize the plugins based on their interdependencies and creates a store of the plugin implementations
73
+ */
74
+ export function initializePlugins(plugins, initialSpecImplementations) {
75
+ const pluginModules = extractPlatformModulesFromPlugins(plugins);
76
+ const pluginModulesById = keyBy(pluginModules, (p) => p.id);
77
+ const orderedModuleIds = getOrderedPluginModuleInitializationSteps(pluginModules, initialSpecImplementations);
78
+ const specImplementations = initializeOrderedPluginModules(orderedModuleIds.map((p) => pluginModulesById[p]), initialSpecImplementations);
79
+ return new PluginImplementationStore(specImplementations);
80
+ }
81
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/plugins/imports/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { PluginMetadataWithPaths } from '../metadata/types.js';
2
+ import type { InitializedPluginSpec, PluginSpec, PluginSpecImplementationFromSpec, PluginSpecWithInitializer } from '../spec/types.js';
3
+ export type PluginSpecMap = Record<string, PluginSpec>;
4
+ export type ExtractPluginImplementationFromSpecMap<T extends PluginSpecMap> = {
5
+ [TKey in keyof T]: PluginSpecImplementationFromSpec<T[TKey]>;
6
+ };
7
+ export interface PluginInitializerContext {
8
+ pluginId: string;
9
+ }
10
+ export interface PluginPlatformModule<TImports extends PluginSpecMap = PluginSpecMap, TExports extends PluginSpecMap = PluginSpecMap> {
11
+ dependencies?: TImports;
12
+ exports?: TExports;
13
+ initialize: (dependencies: ExtractPluginImplementationFromSpecMap<TImports>, context: PluginInitializerContext) => ExtractPluginImplementationFromSpecMap<TExports>;
14
+ }
15
+ export declare function createPlatformPluginExport<TImports extends PluginSpecMap, TExports extends PluginSpecMap>(config: PluginPlatformModule<TImports, TExports>): PluginPlatformModule<TImports, TExports>;
16
+ export interface KeyedPluginPlatformModule {
17
+ key: string;
18
+ module: PluginPlatformModule;
19
+ }
20
+ export interface PluginStore {
21
+ availablePlugins: {
22
+ metadata: PluginMetadataWithPaths;
23
+ modules: KeyedPluginPlatformModule[];
24
+ }[];
25
+ builtinSpecImplementations?: (InitializedPluginSpec | PluginSpecWithInitializer)[];
26
+ }
27
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/imports/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EACV,qBAAqB,EACrB,UAAU,EACV,gCAAgC,EAChC,yBAAyB,EAC1B,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAEvD,MAAM,MAAM,sCAAsC,CAAC,CAAC,SAAS,aAAa,IAAI;KAC3E,IAAI,IAAI,MAAM,CAAC,GAAG,gCAAgC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;CAC7D,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB,CACnC,QAAQ,SAAS,aAAa,GAAG,aAAa,EAC9C,QAAQ,SAAS,aAAa,GAAG,aAAa;IAE9C,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,CACV,YAAY,EAAE,sCAAsC,CAAC,QAAQ,CAAC,EAC9D,OAAO,EAAE,wBAAwB,KAC9B,sCAAsC,CAAC,QAAQ,CAAC,CAAC;CACvD;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,SAAS,aAAa,EAC9B,QAAQ,SAAS,aAAa,EAE9B,MAAM,EAAE,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAC/C,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAE1C;AAED,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,gBAAgB,EAAE;QAChB,QAAQ,EAAE,uBAAuB,CAAC;QAClC,OAAO,EAAE,yBAAyB,EAAE,CAAC;KACtC,EAAE,CAAC;IACJ,0BAA0B,CAAC,EAAE,CACzB,qBAAqB,GACrB,yBAAyB,CAC5B,EAAE,CAAC;CACL"}