fundus 0.17.2 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. package/README.md +60 -121
  2. package/build/client/_app/immutable/assets/2.C-1MfvLQ.css +1 -0
  3. package/build/client/_app/immutable/assets/2.C-1MfvLQ.css.br +0 -0
  4. package/build/client/_app/immutable/assets/2.C-1MfvLQ.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/{3.66PJT3JC.css → 3.q3CUOEpz.css} +1 -1
  6. package/build/client/_app/immutable/assets/3.q3CUOEpz.css.br +0 -0
  7. package/build/client/_app/immutable/assets/3.q3CUOEpz.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/{AssetSourceMenu.Buj2UxUg.css → AssetSourceMenu.CgyMTAb6.css} +1 -1
  9. package/build/client/_app/immutable/assets/AssetSourceMenu.CgyMTAb6.css.br +0 -0
  10. package/build/client/_app/immutable/assets/AssetSourceMenu.CgyMTAb6.css.gz +0 -0
  11. package/build/client/_app/immutable/chunks/Bly9uffh.js +1 -0
  12. package/build/client/_app/immutable/chunks/Bly9uffh.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/Bly9uffh.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/{R0o69z6O.js → BpsKkIFc.js} +1 -1
  15. package/build/client/_app/immutable/chunks/BpsKkIFc.js.br +2 -0
  16. package/build/client/_app/immutable/chunks/BpsKkIFc.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/{jEVVu5G9.js → CrIZjnDr.js} +1 -1
  18. package/build/client/_app/immutable/chunks/CrIZjnDr.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/CrIZjnDr.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/ZGU9Utak.js +108 -0
  21. package/build/client/_app/immutable/chunks/ZGU9Utak.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/ZGU9Utak.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/lw3KP4og.js +2 -0
  24. package/build/client/_app/immutable/chunks/lw3KP4og.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/lw3KP4og.js.gz +0 -0
  26. package/build/client/_app/immutable/entry/{app.DxYfHxs-.js → app.D-lO1MC-.js} +2 -2
  27. package/build/client/_app/immutable/entry/app.D-lO1MC-.js.br +0 -0
  28. package/build/client/_app/immutable/entry/app.D-lO1MC-.js.gz +0 -0
  29. package/build/client/_app/immutable/entry/start.BrSEFrid.js +1 -0
  30. package/build/client/_app/immutable/entry/start.BrSEFrid.js.br +1 -0
  31. package/build/client/_app/immutable/entry/start.BrSEFrid.js.gz +0 -0
  32. package/build/client/_app/immutable/nodes/{0.Do0MsVUC.js → 0.BPGg3A-F.js} +1 -1
  33. package/build/client/_app/immutable/nodes/0.BPGg3A-F.js.br +0 -0
  34. package/build/client/_app/immutable/nodes/0.BPGg3A-F.js.gz +0 -0
  35. package/build/client/_app/immutable/nodes/{1.DhfAdUbg.js → 1.-VJ5Mlss.js} +1 -1
  36. package/build/client/_app/immutable/nodes/1.-VJ5Mlss.js.br +1 -0
  37. package/build/client/_app/immutable/nodes/1.-VJ5Mlss.js.gz +0 -0
  38. package/build/client/_app/immutable/nodes/2.Dhyvb4bF.js +3 -0
  39. package/build/client/_app/immutable/nodes/2.Dhyvb4bF.js.br +0 -0
  40. package/build/client/_app/immutable/nodes/2.Dhyvb4bF.js.gz +0 -0
  41. package/build/client/_app/immutable/nodes/3.D9Fgsq-b.js +1 -0
  42. package/build/client/_app/immutable/nodes/3.D9Fgsq-b.js.br +0 -0
  43. package/build/client/_app/immutable/nodes/3.D9Fgsq-b.js.gz +0 -0
  44. package/build/client/_app/immutable/nodes/{4.gPNAednG.js → 4.DErtysFP.js} +1 -1
  45. package/build/client/_app/immutable/nodes/4.DErtysFP.js.br +0 -0
  46. package/build/client/_app/immutable/nodes/4.DErtysFP.js.gz +0 -0
  47. package/build/client/_app/version.json +1 -1
  48. package/build/client/_app/version.json.br +0 -0
  49. package/build/client/_app/version.json.gz +0 -0
  50. package/build/handler.js +7 -7
  51. package/build/index.js +7 -7
  52. package/build/server/chunks/chunks/{context.js-Dh0ibRIF.js → context.js-BIgcUcEl.js} +216 -604
  53. package/build/server/chunks/chunks/context.js-BIgcUcEl.js.map +1 -0
  54. package/build/server/chunks/chunks/{contract.js-_LTMZBo2.js → contract.js-B6KBK8D9.js} +59 -95
  55. package/build/server/chunks/chunks/contract.js-B6KBK8D9.js.map +1 -0
  56. package/build/server/chunks/chunks/{core.js-CTyKR4bu.js → core.js-Bp-ReC60.js} +38 -38
  57. package/build/server/chunks/chunks/core.js-Bp-ReC60.js.map +1 -0
  58. package/build/server/chunks/chunks/dependencies.js-pUkjICr5.js +45 -0
  59. package/build/server/chunks/chunks/dependencies.js-pUkjICr5.js.map +1 -0
  60. package/build/server/chunks/chunks/{exports.js-gUMFfqhw.js → exports.js-bhKV7cEL.js} +2 -2
  61. package/build/server/chunks/chunks/{exports.js-gUMFfqhw.js.map → exports.js-bhKV7cEL.js.map} +1 -1
  62. package/build/server/chunks/chunks/{http.js-BiqUcAuu.js → http.js-BTq44nR5.js} +2 -2
  63. package/build/server/chunks/chunks/{http.js-BiqUcAuu.js.map → http.js-BTq44nR5.js.map} +1 -1
  64. package/build/server/chunks/chunks/{internal.js-DvC1GD8s.js → internal.js-7MmaxxwZ.js} +3 -3
  65. package/build/server/chunks/chunks/{internal.js-DvC1GD8s.js.map → internal.js-7MmaxxwZ.js.map} +1 -1
  66. package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js.map +1 -1
  67. package/build/server/chunks/chunks/{manifest-membership.js-at1ixQdW.js → manifest-membership.js-Dj3WwZgz.js} +2 -2
  68. package/build/server/chunks/chunks/{manifest-membership.js-at1ixQdW.js.map → manifest-membership.js-Dj3WwZgz.js.map} +1 -1
  69. package/build/server/chunks/chunks/{raw-reconciliation.js-CUH8IIJx.js → raw-reconciliation.js-mWOAOdgL.js} +3 -3
  70. package/build/server/chunks/chunks/raw-reconciliation.js-mWOAOdgL.js.map +1 -0
  71. package/build/server/chunks/chunks/{raw-reconciliation2.js-z4xl5zw2.js → raw-reconciliation2.js-Bo1jJgvd.js} +2 -2
  72. package/build/server/chunks/chunks/{raw-reconciliation2.js-z4xl5zw2.js.map → raw-reconciliation2.js-Bo1jJgvd.js.map} +1 -1
  73. package/build/server/chunks/chunks/{shared.js-nXNT--BO.js → shared.js-B0m3s2U9.js} +2 -2
  74. package/build/server/chunks/chunks/{shared.js-nXNT--BO.js.map → shared.js-B0m3s2U9.js.map} +1 -1
  75. package/build/server/chunks/chunks/{utils.js-C5pr7OK-.js → utils.js-BXV0zq44.js} +3 -3
  76. package/build/server/chunks/chunks/{utils.js-C5pr7OK-.js.map → utils.js-BXV0zq44.js.map} +1 -1
  77. package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-CdDjuW0r.js → _server.ts.js-B_aa_zh7.js} +6 -6
  78. package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-CdDjuW0r.js.map → _server.ts.js-B_aa_zh7.js.map} +1 -1
  79. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-OWM1eORG.js → _server.ts.js-DbEPdkbO.js} +8 -8
  80. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-OWM1eORG.js.map → _server.ts.js-DbEPdkbO.js.map} +1 -1
  81. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-DoG-7ZpZ.js → _server.ts.js-BzA96yBM.js} +8 -8
  82. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-DoG-7ZpZ.js.map → _server.ts.js-BzA96yBM.js.map} +1 -1
  83. package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-CAWjVeGd.js → _server.ts.js-fQAXFRLh.js} +8 -8
  84. package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-CAWjVeGd.js.map → _server.ts.js-fQAXFRLh.js.map} +1 -1
  85. package/build/server/chunks/entries/endpoints/api/assets/_id_/retag/{_server.ts.js-CqS4aALY.js → _server.ts.js-RTBrlhk5.js} +8 -8
  86. package/build/server/chunks/entries/endpoints/api/assets/_id_/retag/{_server.ts.js-CqS4aALY.js.map → _server.ts.js-RTBrlhk5.js.map} +1 -1
  87. package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-Bo_EsYXJ.js → _server.ts.js-Baz4gPRd.js} +8 -8
  88. package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-Bo_EsYXJ.js.map → _server.ts.js-Baz4gPRd.js.map} +1 -1
  89. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-DW4w0XAr.js → _server.ts.js-CnqdPxWQ.js} +8 -8
  90. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-DW4w0XAr.js.map → _server.ts.js-CnqdPxWQ.js.map} +1 -1
  91. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-_MiNPnSy.js → _server.ts.js-bvrtSRDz.js} +8 -8
  92. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-_MiNPnSy.js.map → _server.ts.js-bvrtSRDz.js.map} +1 -1
  93. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-DwbrQnBc.js → _server.ts.js-cgYcVXgU.js} +8 -8
  94. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-DwbrQnBc.js.map → _server.ts.js-cgYcVXgU.js.map} +1 -1
  95. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CEnHQf3b.js → _server.ts.js-DbXw3YEr.js} +8 -8
  96. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CEnHQf3b.js.map → _server.ts.js-DbXw3YEr.js.map} +1 -1
  97. package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-BZDuJZtF.js → _server.ts.js-D0PEYlzG.js} +8 -8
  98. package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-BZDuJZtF.js.map → _server.ts.js-D0PEYlzG.js.map} +1 -1
  99. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-DRgdpKKd.js → _server.ts.js-Dt9Wfgs7.js} +8 -8
  100. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-DRgdpKKd.js.map → _server.ts.js-Dt9Wfgs7.js.map} +1 -1
  101. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-CP5QyIhz.js → _server.ts.js-BBuZYakQ.js} +8 -8
  102. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-CP5QyIhz.js.map → _server.ts.js-BBuZYakQ.js.map} +1 -1
  103. package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-BKEvt065.js → _server.ts.js-DQ_CWMTu.js} +8 -8
  104. package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-BKEvt065.js.map → _server.ts.js-DQ_CWMTu.js.map} +1 -1
  105. package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-C_zihkDS.js → _server.ts.js-B3TVoDCl.js} +8 -8
  106. package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-C_zihkDS.js.map → _server.ts.js-B3TVoDCl.js.map} +1 -1
  107. package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-watkBmy6.js → _server.ts.js--2C2x6Q0.js} +8 -8
  108. package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-watkBmy6.js.map → _server.ts.js--2C2x6Q0.js.map} +1 -1
  109. package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-YtumLIou.js → _server.ts.js-DD2Hz15k.js} +8 -8
  110. package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-YtumLIou.js.map → _server.ts.js-DD2Hz15k.js.map} +1 -1
  111. package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-Dkouuu-M.js → _server.ts.js-Ei98ilB5.js} +8 -8
  112. package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-Dkouuu-M.js.map → _server.ts.js-Ei98ilB5.js.map} +1 -1
  113. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-DwsEQeuf.js → _server.ts.js-NNuDGwyK.js} +8 -8
  114. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-DwsEQeuf.js.map → _server.ts.js-NNuDGwyK.js.map} +1 -1
  115. package/build/server/chunks/entries/endpoints/api/usage/{_server.ts.js-CdQxfhV3.js → _server.ts.js-6_Wl_k0H.js} +8 -8
  116. package/build/server/chunks/entries/endpoints/api/usage/{_server.ts.js-CdQxfhV3.js.map → _server.ts.js-6_Wl_k0H.js.map} +1 -1
  117. package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-DDdMocWj.js → _server.ts.js-DkYQlG9U.js} +6 -6
  118. package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-DDdMocWj.js.map → _server.ts.js-DkYQlG9U.js.map} +1 -1
  119. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-DbzjbH32.js → _server.ts.js-Dft0Zgh3.js} +8 -8
  120. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-DbzjbH32.js.map → _server.ts.js-Dft0Zgh3.js.map} +1 -1
  121. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-K_JbXZsU.js → _server.ts.js-rlV0QRQS.js} +8 -8
  122. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-K_JbXZsU.js.map → _server.ts.js-rlV0QRQS.js.map} +1 -1
  123. package/build/server/chunks/entries/{hooks.server.js-DgZAVFbQ.js → hooks.server.js-C345JVQ2.js} +7 -7
  124. package/build/server/chunks/entries/{hooks.server.js-DgZAVFbQ.js.map → hooks.server.js-C345JVQ2.js.map} +1 -1
  125. package/build/server/chunks/{handler-C4m7sKKb.js → handler-C_S3CtEF.js} +5 -5
  126. package/build/server/chunks/{handler-C4m7sKKb.js.map → handler-C_S3CtEF.js.map} +1 -1
  127. package/build/server/chunks/{index.js-pAnkrzRH.js → index.js-CSCxgyyg.js} +5 -5
  128. package/build/server/chunks/{index.js-pAnkrzRH.js.map → index.js-CSCxgyyg.js.map} +1 -1
  129. package/build/server/chunks/{manifest.js-CXQHeYnS.js → manifest.js-CO6AjAUm.js} +30 -30
  130. package/build/server/chunks/{manifest.js-CXQHeYnS.js.map → manifest.js-CO6AjAUm.js.map} +1 -1
  131. package/build/server/chunks/nodes/{0.js-lmQMhWZd.js → 0.js-CRc8onmc.js} +2 -2
  132. package/build/server/chunks/nodes/{0.js-lmQMhWZd.js.map → 0.js-CRc8onmc.js.map} +1 -1
  133. package/build/server/chunks/nodes/1.js-CZm_Doa7.js +7 -0
  134. package/build/server/chunks/nodes/{1.js-CdH3UJI2.js.map → 1.js-CZm_Doa7.js.map} +1 -1
  135. package/build/server/chunks/nodes/2.js-B92vn1Hu.js +7 -0
  136. package/build/server/chunks/nodes/2.js-B92vn1Hu.js.map +1 -0
  137. package/build/server/chunks/nodes/3.js-C14BP7Jm.js +7 -0
  138. package/build/server/chunks/nodes/3.js-C14BP7Jm.js.map +1 -0
  139. package/build/server/chunks/nodes/4.js-BLNdVCa1.js +7 -0
  140. package/build/server/chunks/nodes/{4.js-DtgDNAZF.js.map → 4.js-BLNdVCa1.js.map} +1 -1
  141. package/dist/config.d.ts +5 -3
  142. package/dist/config.js +3 -2
  143. package/dist/core/api-types.d.ts +7 -22
  144. package/dist/core/config.d.ts +8 -82
  145. package/dist/core/config.js +0 -9
  146. package/dist/core/dependencies.d.ts +52 -0
  147. package/dist/core/dependencies.js +56 -0
  148. package/dist/core/dependency-validation.d.ts +17 -0
  149. package/dist/core/dependency-validation.js +19 -0
  150. package/dist/core/index.d.ts +8 -10
  151. package/dist/core/index.js +4 -5
  152. package/dist/core/library.d.ts +0 -19
  153. package/dist/core/library.js +4 -4
  154. package/dist/core/manifest-membership.d.ts +2 -2
  155. package/dist/core/reference-graph.d.ts +3 -3
  156. package/dist/server/build.js +12 -26
  157. package/dist/server/check.d.ts +3 -13
  158. package/dist/server/check.js +33 -112
  159. package/dist/server/codegen.d.ts +1 -3
  160. package/dist/server/codegen.js +0 -18
  161. package/dist/server/config-loader.d.ts +10 -33
  162. package/dist/server/config-loader.js +87 -156
  163. package/dist/server/index.d.ts +1 -1
  164. package/dist/server/index.js +1 -1
  165. package/dist/server/library-store.d.ts +1 -11
  166. package/dist/server/library-store.js +60 -42
  167. package/dist/server/operations.js +54 -161
  168. package/package.json +1 -1
  169. package/build/client/_app/immutable/assets/2.X44Wyac-.css +0 -1
  170. package/build/client/_app/immutable/assets/2.X44Wyac-.css.br +0 -0
  171. package/build/client/_app/immutable/assets/2.X44Wyac-.css.gz +0 -0
  172. package/build/client/_app/immutable/assets/3.66PJT3JC.css.br +0 -0
  173. package/build/client/_app/immutable/assets/3.66PJT3JC.css.gz +0 -0
  174. package/build/client/_app/immutable/assets/AssetSourceMenu.Buj2UxUg.css.br +0 -0
  175. package/build/client/_app/immutable/assets/AssetSourceMenu.Buj2UxUg.css.gz +0 -0
  176. package/build/client/_app/immutable/chunks/0SQyBKXe.js +0 -108
  177. package/build/client/_app/immutable/chunks/0SQyBKXe.js.br +0 -0
  178. package/build/client/_app/immutable/chunks/0SQyBKXe.js.gz +0 -0
  179. package/build/client/_app/immutable/chunks/DXiUbZ9S.js +0 -2
  180. package/build/client/_app/immutable/chunks/DXiUbZ9S.js.br +0 -0
  181. package/build/client/_app/immutable/chunks/DXiUbZ9S.js.gz +0 -0
  182. package/build/client/_app/immutable/chunks/R0o69z6O.js.br +0 -0
  183. package/build/client/_app/immutable/chunks/R0o69z6O.js.gz +0 -0
  184. package/build/client/_app/immutable/chunks/TrnW_5ju.js +0 -1
  185. package/build/client/_app/immutable/chunks/TrnW_5ju.js.br +0 -0
  186. package/build/client/_app/immutable/chunks/TrnW_5ju.js.gz +0 -0
  187. package/build/client/_app/immutable/chunks/jEVVu5G9.js.br +0 -0
  188. package/build/client/_app/immutable/chunks/jEVVu5G9.js.gz +0 -0
  189. package/build/client/_app/immutable/entry/app.DxYfHxs-.js.br +0 -0
  190. package/build/client/_app/immutable/entry/app.DxYfHxs-.js.gz +0 -0
  191. package/build/client/_app/immutable/entry/start.CdM7ozdO.js +0 -1
  192. package/build/client/_app/immutable/entry/start.CdM7ozdO.js.br +0 -0
  193. package/build/client/_app/immutable/entry/start.CdM7ozdO.js.gz +0 -0
  194. package/build/client/_app/immutable/nodes/0.Do0MsVUC.js.br +0 -0
  195. package/build/client/_app/immutable/nodes/0.Do0MsVUC.js.gz +0 -0
  196. package/build/client/_app/immutable/nodes/1.DhfAdUbg.js.br +0 -1
  197. package/build/client/_app/immutable/nodes/1.DhfAdUbg.js.gz +0 -0
  198. package/build/client/_app/immutable/nodes/2.lLNAdU5s.js +0 -3
  199. package/build/client/_app/immutable/nodes/2.lLNAdU5s.js.br +0 -0
  200. package/build/client/_app/immutable/nodes/2.lLNAdU5s.js.gz +0 -0
  201. package/build/client/_app/immutable/nodes/3.DA8xzCvA.js +0 -1
  202. package/build/client/_app/immutable/nodes/3.DA8xzCvA.js.br +0 -0
  203. package/build/client/_app/immutable/nodes/3.DA8xzCvA.js.gz +0 -0
  204. package/build/client/_app/immutable/nodes/4.gPNAednG.js.br +0 -0
  205. package/build/client/_app/immutable/nodes/4.gPNAednG.js.gz +0 -0
  206. package/build/server/chunks/chunks/context.js-Dh0ibRIF.js.map +0 -1
  207. package/build/server/chunks/chunks/contract.js-_LTMZBo2.js.map +0 -1
  208. package/build/server/chunks/chunks/core.js-CTyKR4bu.js.map +0 -1
  209. package/build/server/chunks/chunks/raw-reconciliation.js-CUH8IIJx.js.map +0 -1
  210. package/build/server/chunks/nodes/1.js-CdH3UJI2.js +0 -7
  211. package/build/server/chunks/nodes/2.js-BHnsJqcE.js +0 -7
  212. package/build/server/chunks/nodes/2.js-BHnsJqcE.js.map +0 -1
  213. package/build/server/chunks/nodes/3.js-cR9NdrYS.js +0 -7
  214. package/build/server/chunks/nodes/3.js-cR9NdrYS.js.map +0 -1
  215. package/build/server/chunks/nodes/4.js-DtgDNAZF.js +0 -7
  216. package/dist/core/library-validation.d.ts +0 -13
  217. package/dist/core/library-validation.js +0 -48
  218. package/dist/core/package-declaration.d.ts +0 -43
  219. package/dist/core/package-declaration.js +0 -80
  220. package/dist/core/package-merge.d.ts +0 -65
  221. package/dist/core/package-merge.js +0 -173
@@ -1,7 +1,7 @@
1
- import { a as plugins, b as audioPlugin, d as chromaKeyVideoPlugin, v as videoPlugin, s as slicePlugin, e as imagePlugin, n as normalizeFolderPath, g as canonicalizeParameters, h as folderOfRawPath, j as rawFileNameOfPath, f as folderPathError, k as parentFolderPath, l as folderNameError, m as joinFolderPath, o as folderNameOf, q as isFolderOrDescendant, t as replaceFolderPrefix, u as portableFolderPathKey, c as compareCodeUnits, w as isCustomFfmpegVideoPreset, x as processedSliceInsets, y as defaultInsetsForSize, F as FOLDER_SENTINEL, r as rawFilePathError, z as materializeFfmpegCommand, A as slicedAxesFor, B as isAssetReference, C as validateVideoPreset, V as VIDEO_BUILT_IN_PRESETS, D as validateAudioPreset, E as AUDIO_BUILT_IN_PRESETS, G as validateImagePreset, I as IMAGE_BUILT_IN_PRESETS, S as SLICE_BUILT_IN_PRESETS } from './core.js-CTyKR4bu.js';
2
- import { a as assetIdError, c as collectAllReferences, b as computeLibraryMembership, r as referenceErrors, m as manifestNameError, d as allDeliveredAssetIds, t as topologicalReferenceOrder } from './manifest-membership.js-at1ixQdW.js';
1
+ import { a as plugins, b as audioPlugin, d as chromaKeyVideoPlugin, v as videoPlugin, s as slicePlugin, e as imagePlugin, n as normalizeFolderPath, g as canonicalizeParameters, h as folderOfRawPath, j as rawFileNameOfPath, f as folderPathError, k as parentFolderPath, l as folderNameError, m as joinFolderPath, o as folderNameOf, q as isFolderOrDescendant, t as replaceFolderPrefix, u as portableFolderPathKey, c as compareCodeUnits, w as isCustomFfmpegVideoPreset, x as processedSliceInsets, y as defaultInsetsForSize, F as FOLDER_SENTINEL, r as rawFilePathError, z as materializeFfmpegCommand, A as slicedAxesFor, B as isAssetReference, C as validateVideoPreset, V as VIDEO_BUILT_IN_PRESETS, D as validateAudioPreset, E as AUDIO_BUILT_IN_PRESETS, G as validateImagePreset, I as IMAGE_BUILT_IN_PRESETS, S as SLICE_BUILT_IN_PRESETS } from './core.js-Bp-ReC60.js';
2
+ import { a as assetIdError, r as referenceErrors, c as collectAllReferences, b as computeLibraryMembership, m as manifestNameError, d as allDeliveredAssetIds, t as topologicalReferenceOrder } from './manifest-membership.js-Dj3WwZgz.js';
3
3
  import { m as manifestColorError, a as manifestEmojiError } from './manifest-appearance.js-DTk355LQ.js';
4
- import { v as verifyStableRawFile } from './raw-reconciliation2.js-z4xl5zw2.js';
4
+ import { v as verifyStableRawFile } from './raw-reconciliation2.js-Bo1jJgvd.js';
5
5
  import { join, extname, dirname, isAbsolute, basename, resolve } from 'node:path';
6
6
  import { existsSync } from 'node:fs';
7
7
  import { readFile, mkdir, writeFile, rename, unlink, rm, stat, readdir, mkdtemp } from 'node:fs/promises';
@@ -148,49 +148,6 @@ function serializeLibrary(library) {
148
148
  }), null, " ")}\n`;
149
149
  }
150
150
  //#endregion
151
- //#region src/lib/core/library-validation.ts
152
- function flatLibraryIssues(library, plugins) {
153
- const issues = [];
154
- for (const [name, record] of Object.entries(library.manifests)) {
155
- const nameProblem = manifestNameError(name);
156
- if (nameProblem) issues.push({ message: nameProblem });
157
- if (record.color !== void 0) {
158
- const colorProblem = manifestColorError(record.color);
159
- if (colorProblem) issues.push({ message: `Manifest "${name}": ${colorProblem}` });
160
- }
161
- if (record.emoji !== void 0) {
162
- const emojiProblem = manifestEmojiError(record.emoji);
163
- if (emojiProblem) issues.push({ message: `Manifest "${name}": ${emojiProblem}` });
164
- }
165
- }
166
- for (const [assetId, record] of Object.entries(library.assets)) {
167
- const idProblem = assetIdError(assetId);
168
- if (idProblem) issues.push({
169
- assetId,
170
- message: idProblem
171
- });
172
- const plugin = plugins[record.type];
173
- if (!plugin) issues.push({
174
- assetId,
175
- message: `Unknown asset type "${record.type}".`
176
- });
177
- else try {
178
- plugin.validateParameters(record.parameters);
179
- } catch (cause) {
180
- issues.push({
181
- assetId,
182
- message: `Invalid parameters: ${cause instanceof Error ? cause.message : String(cause)}`
183
- });
184
- }
185
- for (const manifest of record.manifests) if (!library.manifests[manifest]) issues.push({
186
- assetId,
187
- message: `Unknown manifest "${manifest}".`
188
- });
189
- }
190
- issues.push(...referenceErrors(library, collectAllReferences(library, plugins)));
191
- return issues;
192
- }
193
- //#endregion
194
151
  //#region src/lib/server/processing/ffmpeg.ts
195
152
  /**
196
153
  * The ffmpeg/ffprobe toolchain layer: binary resolution (bundled `-static`
@@ -914,18 +871,6 @@ function kebabCaseFromCamel(name) {
914
871
  function manifestModuleFileName(manifestName) {
915
872
  return `${kebabCaseFromCamel(manifestName)}.generated.ts`;
916
873
  }
917
- /** Two manifest names that would generate the same kebab-case module file. */
918
- function manifestModuleCollisionIssues(manifests) {
919
- const issues = [];
920
- const namesByModuleFile = /* @__PURE__ */ new Map();
921
- for (const name of Object.keys(manifests)) {
922
- const fileName = manifestModuleFileName(name);
923
- const existingName = namesByModuleFile.get(fileName);
924
- if (existingName !== void 0) issues.push({ message: `Manifests "${existingName}" and "${name}" would both generate "${fileName}".` });
925
- else namesByModuleFile.set(fileName, name);
926
- }
927
- return issues;
928
- }
929
874
  /**
930
875
  * Build the entry data codegen emits for one asset — delegated to
931
876
  * the owning server plugin's `buildManifestEntry`. Reference fields
@@ -1358,8 +1303,7 @@ var LibraryStore = class {
1358
1303
  const folder = options.folder === void 0 ? "" : normalizeFolderPath(options.folder);
1359
1304
  this.#requireFolder(library, folder);
1360
1305
  const manifests = [...new Set(options.manifests ?? [])].sort();
1361
- const validManifests = this.#validManifestNames(library);
1362
- for (const manifest of manifests) if (!validManifests.has(manifest)) throw new Error(`Unknown manifest "${manifest}".`);
1306
+ for (const manifest of manifests) if (!Object.hasOwn(library.manifests, manifest)) throw new Error(`Unknown manifest "${manifest}".`);
1363
1307
  const rawDirectory = join(this.#config.rawDir, folder);
1364
1308
  await mkdir(rawDirectory, { recursive: true });
1365
1309
  const storedName = this.#uniqueRawName(sanitizeFileName(options.fileName), folder);
@@ -1369,16 +1313,12 @@ var LibraryStore = class {
1369
1313
  let installed = false;
1370
1314
  try {
1371
1315
  await writeFile(temporaryPath, options.bytes);
1372
- let parameters;
1373
- if (options.parametersOverride !== void 0) parameters = options.parametersOverride;
1374
- else {
1375
- parameters = plugin.descriptor.validateParameters(plugin.descriptor.defaultParameters(plugin.pluginConfig(this.#config)));
1376
- if (prepareParameters) parameters = plugin.descriptor.validateParameters(await prepareParameters({
1377
- rawPath: temporaryPath,
1378
- rawFileName: storedName,
1379
- parameters
1380
- }));
1381
- }
1316
+ let parameters = plugin.descriptor.validateParameters(plugin.descriptor.defaultParameters(plugin.pluginConfig(this.#config)));
1317
+ if (prepareParameters) parameters = plugin.descriptor.validateParameters(await prepareParameters({
1318
+ rawPath: temporaryPath,
1319
+ rawFileName: storedName,
1320
+ parameters
1321
+ }));
1382
1322
  const record = {
1383
1323
  type: options.type,
1384
1324
  raw: storedPath,
@@ -1424,7 +1364,7 @@ var LibraryStore = class {
1424
1364
  if (sourceOptions) {
1425
1365
  const currentSource = record.importSource ? canonicalizeParameters(record.importSource) : null;
1426
1366
  if (record.raw !== sourceOptions.expected.raw || record.rawHash !== sourceOptions.expected.rawHash || record.type !== sourceOptions.expected.type || currentSource !== sourceOptions.expected.canonicalSource) throw new Error("stale-import");
1427
- const { verifyStableRawFile } = await import('./raw-reconciliation.js-CUH8IIJx.js');
1367
+ const { verifyStableRawFile } = await import('./raw-reconciliation.js-mWOAOdgL.js');
1428
1368
  try {
1429
1369
  await verifyStableRawFile(join(this.#config.rawDir, record.raw), sourceOptions.expected.rawHash);
1430
1370
  } catch {
@@ -1490,7 +1430,7 @@ var LibraryStore = class {
1490
1430
  const record = this.#requireAsset(library, id);
1491
1431
  if (record.raw !== expected.raw || record.rawHash !== expected.rawHash || record.type !== expected.type || !record.importSource || canonicalizeParameters(record.importSource) !== expected.canonicalSource) throw new Error("stale-import");
1492
1432
  const absolutePath = join(this.#config.rawDir, record.raw);
1493
- const { verifyStableRawFile } = await import('./raw-reconciliation.js-CUH8IIJx.js');
1433
+ const { verifyStableRawFile } = await import('./raw-reconciliation.js-mWOAOdgL.js');
1494
1434
  try {
1495
1435
  await verifyStableRawFile(absolutePath, expected.rawHash);
1496
1436
  } catch {
@@ -1543,7 +1483,7 @@ var LibraryStore = class {
1543
1483
  const renamed = newId !== oldId;
1544
1484
  if (renamed && Object.hasOwn(library.assets, newId)) throw new Error(`An asset with id "${newId}" already exists.`);
1545
1485
  const absolutePath = join(this.#config.rawDir, record.raw);
1546
- const { verifyStableRawFile } = await import('./raw-reconciliation.js-CUH8IIJx.js');
1486
+ const { verifyStableRawFile } = await import('./raw-reconciliation.js-mWOAOdgL.js');
1547
1487
  try {
1548
1488
  await verifyStableRawFile(absolutePath, expected.rawHash);
1549
1489
  } catch {
@@ -1608,8 +1548,7 @@ var LibraryStore = class {
1608
1548
  const library = await this.read();
1609
1549
  const record = this.#requireAsset(library, id);
1610
1550
  const unique = [...new Set(manifests)];
1611
- const validManifests = this.#validManifestNames(library);
1612
- for (const name of unique) if (!validManifests.has(name)) throw new Error(`Unknown manifest "${name}".`);
1551
+ for (const name of unique) if (!Object.hasOwn(library.manifests, name)) throw new Error(`Unknown manifest "${name}".`);
1613
1552
  record.manifests = unique.sort();
1614
1553
  await this.write(library);
1615
1554
  return library;
@@ -1980,8 +1919,7 @@ var LibraryStore = class {
1980
1919
  * type, dangling raw pointer, invalid parameters, unknown manifest names,
1981
1920
  * and reference errors (dangling target, type mismatch, cycles).
1982
1921
  */
1983
- async validate(library, options = {}) {
1984
- const flatSpace = options.flatSpace ?? true;
1922
+ async validate(library) {
1985
1923
  const issues = [];
1986
1924
  const folderKeys = /* @__PURE__ */ new Map();
1987
1925
  for (const folder of library.folders) {
@@ -1996,7 +1934,44 @@ var LibraryStore = class {
1996
1934
  if (parent !== "" && !library.folders.includes(parent)) issues.push({ message: `Folder "${folder}" has missing parent "${parent}".` });
1997
1935
  for (const root of [this.#config.rawDir, this.#config.proxyDir]) if (!existsSync(join(root, folder, ".gitkeep"))) issues.push({ message: `Folder "${folder}" is not mirrored with a .gitkeep in ${root}.` });
1998
1936
  }
1937
+ for (const [name, record] of Object.entries(library.manifests)) {
1938
+ const nameProblem = manifestNameError(name);
1939
+ if (nameProblem) issues.push({ message: nameProblem });
1940
+ if (record.color !== void 0) {
1941
+ const colorProblem = manifestColorError(record.color);
1942
+ if (colorProblem) issues.push({ message: `Manifest "${name}": ${colorProblem}` });
1943
+ }
1944
+ if (record.emoji !== void 0) {
1945
+ const emojiProblem = manifestEmojiError(record.emoji);
1946
+ if (emojiProblem) issues.push({ message: `Manifest "${name}": ${emojiProblem}` });
1947
+ }
1948
+ }
1949
+ const namesByModuleFile = /* @__PURE__ */ new Map();
1950
+ for (const name of Object.keys(library.manifests)) {
1951
+ const fileName = manifestModuleFileName(name);
1952
+ const existingName = namesByModuleFile.get(fileName);
1953
+ if (existingName !== void 0) issues.push({ message: `Manifests "${existingName}" and "${name}" would both generate "${fileName}".` });
1954
+ else namesByModuleFile.set(fileName, name);
1955
+ }
1999
1956
  for (const [assetId, record] of Object.entries(library.assets)) {
1957
+ const idProblem = assetIdError(assetId);
1958
+ if (idProblem) issues.push({
1959
+ assetId,
1960
+ message: idProblem
1961
+ });
1962
+ const plugin = this.#registry[record.type];
1963
+ if (!plugin) issues.push({
1964
+ assetId,
1965
+ message: `Unknown asset type "${record.type}".`
1966
+ });
1967
+ else try {
1968
+ plugin.descriptor.validateParameters(record.parameters);
1969
+ } catch (cause) {
1970
+ issues.push({
1971
+ assetId,
1972
+ message: `Invalid parameters: ${cause instanceof Error ? cause.message : String(cause)}`
1973
+ });
1974
+ }
2000
1975
  try {
2001
1976
  assertSafeRelativeFilePath(record.raw);
2002
1977
  } catch (cause) {
@@ -2014,11 +1989,12 @@ var LibraryStore = class {
2014
1989
  assetId,
2015
1990
  message: `Raw file "${record.raw}" is missing from the raw directory.`
2016
1991
  });
1992
+ for (const manifest of record.manifests) if (!library.manifests[manifest]) issues.push({
1993
+ assetId,
1994
+ message: `Unknown manifest "${manifest}".`
1995
+ });
2017
1996
  }
2018
- if (flatSpace) {
2019
- issues.push(...flatLibraryIssues(library, descriptorsByType(this.#registry)));
2020
- issues.push(...manifestModuleCollisionIssues(library.manifests));
2021
- }
1997
+ issues.push(...referenceErrors(library, collectAllReferences(library, descriptorsByType(this.#registry))));
2022
1998
  return issues;
2023
1999
  }
2024
2000
  async #deleteProxiesOf(assetId) {
@@ -2032,18 +2008,6 @@ var LibraryStore = class {
2032
2008
  if (!Object.hasOwn(library.assets, id)) throw new Error(`Unknown asset "${id}".`);
2033
2009
  return library.assets[id];
2034
2010
  }
2035
- /**
2036
- * Valid manifest names for asset membership: the host library's own manifests
2037
- * plus any a configured Package introduces. The effective (merged) library
2038
- * unions both, so a host asset (or slot fill) may be placed into a
2039
- * Package-introduced manifest — validating against the host manifests alone
2040
- * would wrongly reject that placement.
2041
- */
2042
- #validManifestNames(library) {
2043
- const names = new Set(Object.keys(library.manifests));
2044
- for (const pkg of this.#config.packages ?? []) for (const name of Object.keys(pkg.declaration.manifests)) names.add(name);
2045
- return names;
2046
- }
2047
2011
  /** Resolve a non-colliding raw file name, appending `-1`, `-2`, … before the extension. */
2048
2012
  #uniqueRawName(fileName, folder) {
2049
2013
  if (!existsSync(join(this.#config.rawDir, folder, fileName))) return fileName;
@@ -2080,5 +2044,5 @@ function invalidInput(message) {
2080
2044
  throw new SourceImportError("invalid-input", message);
2081
2045
  }
2082
2046
 
2083
- export { LibraryStore as L, SourceImportError as S, serializeLibrary as a, serverPluginForType as b, manifestModuleCollisionIssues as c, descriptorsByType as d, encodeRelativePathForUrl as e, flatLibraryIssues as f, generateManifestModules as g, invalidInput as h, isRecord as i, parseLibrary as j, isRecord$1 as k, locateGeneratedAssetDeclaration as l, manifestModuleFileName as m, assertSafeKey as n, parseManifestRecord as o, processAssets as p, parseImportSource as q, readCurrentProxy as r, serverPluginsByType as s, assertSafeRelativeFilePath as t };
2084
- //# sourceMappingURL=contract.js-_LTMZBo2.js.map
2047
+ export { LibraryStore as L, SourceImportError as S, serializeLibrary as a, serverPluginForType as b, invalidInput as c, descriptorsByType as d, encodeRelativePathForUrl as e, parseLibrary as f, generateManifestModules as g, assertSafeRelativeFilePath as h, isRecord as i, locateGeneratedAssetDeclaration as l, manifestModuleFileName as m, processAssets as p, readCurrentProxy as r, serverPluginsByType as s };
2048
+ //# sourceMappingURL=contract.js-B6KBK8D9.js.map