fundus 0.0.4 → 0.2.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 (224) hide show
  1. package/README.md +49 -8
  2. package/build/client/_app/immutable/assets/0.inkPq3ni.css +1 -0
  3. package/build/client/_app/immutable/assets/0.inkPq3ni.css.br +0 -0
  4. package/build/client/_app/immutable/assets/0.inkPq3ni.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/3.ChSpCG-T.css +1 -0
  6. package/build/client/_app/immutable/assets/3.ChSpCG-T.css.br +0 -0
  7. package/build/client/_app/immutable/assets/3.ChSpCG-T.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/{LibraryContextMenu.CMefGNE2.css → LibraryContextMenu.BYvU4SY7.css} +1 -1
  9. package/build/client/_app/immutable/assets/LibraryContextMenu.BYvU4SY7.css.br +0 -0
  10. package/build/client/_app/immutable/assets/LibraryContextMenu.BYvU4SY7.css.gz +0 -0
  11. package/build/client/_app/immutable/assets/ManifestSelector.Il8p28r8.css +1 -0
  12. package/build/client/_app/immutable/assets/ManifestSelector.Il8p28r8.css.br +0 -0
  13. package/build/client/_app/immutable/assets/ManifestSelector.Il8p28r8.css.gz +0 -0
  14. package/build/client/_app/immutable/chunks/BAEZPv6c.js +1 -0
  15. package/build/client/_app/immutable/chunks/BAEZPv6c.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/BAEZPv6c.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/{DVEQFclp.js → ByVSyIj7.js} +1 -1
  18. package/build/client/_app/immutable/chunks/ByVSyIj7.js.br +1 -0
  19. package/build/client/_app/immutable/chunks/ByVSyIj7.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/C8W3KwDq.js +1 -0
  21. package/build/client/_app/immutable/chunks/C8W3KwDq.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/C8W3KwDq.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/CP-bnOxU.js +1 -0
  24. package/build/client/_app/immutable/chunks/CP-bnOxU.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/CP-bnOxU.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/{CNRz3sSw.js → D65cSBhe.js} +2 -2
  27. package/build/client/_app/immutable/chunks/D65cSBhe.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/D65cSBhe.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/Db8LRH6X.js +108 -0
  30. package/build/client/_app/immutable/chunks/Db8LRH6X.js.br +0 -0
  31. package/build/client/_app/immutable/chunks/Db8LRH6X.js.gz +0 -0
  32. package/build/client/_app/immutable/chunks/TZFh8bT7.js +1 -0
  33. package/build/client/_app/immutable/chunks/TZFh8bT7.js.br +0 -0
  34. package/build/client/_app/immutable/chunks/TZFh8bT7.js.gz +0 -0
  35. package/build/client/_app/immutable/entry/app.nM6SgHKJ.js +2 -0
  36. package/build/client/_app/immutable/entry/app.nM6SgHKJ.js.br +0 -0
  37. package/build/client/_app/immutable/entry/app.nM6SgHKJ.js.gz +0 -0
  38. package/build/client/_app/immutable/entry/start.DNXvkhtP.js +1 -0
  39. package/build/client/_app/immutable/entry/start.DNXvkhtP.js.br +0 -0
  40. package/build/client/_app/immutable/entry/start.DNXvkhtP.js.gz +0 -0
  41. package/build/client/_app/immutable/nodes/0.QeXQNCp2.js +2 -0
  42. package/build/client/_app/immutable/nodes/0.QeXQNCp2.js.br +0 -0
  43. package/build/client/_app/immutable/nodes/0.QeXQNCp2.js.gz +0 -0
  44. package/build/client/_app/immutable/nodes/1.dMklHTc2.js +1 -0
  45. package/build/client/_app/immutable/nodes/1.dMklHTc2.js.br +0 -0
  46. package/build/client/_app/immutable/nodes/1.dMklHTc2.js.gz +0 -0
  47. package/build/client/_app/immutable/nodes/2.CW4VMcIP.js +3 -0
  48. package/build/client/_app/immutable/nodes/2.CW4VMcIP.js.br +0 -0
  49. package/build/client/_app/immutable/nodes/2.CW4VMcIP.js.gz +0 -0
  50. package/build/client/_app/immutable/nodes/3.CTiY_pbK.js +1 -0
  51. package/build/client/_app/immutable/nodes/3.CTiY_pbK.js.br +0 -0
  52. package/build/client/_app/immutable/nodes/3.CTiY_pbK.js.gz +0 -0
  53. package/build/client/_app/immutable/nodes/4.Dgxx52FJ.js +2 -0
  54. package/build/client/_app/immutable/nodes/4.Dgxx52FJ.js.br +0 -0
  55. package/build/client/_app/immutable/nodes/4.Dgxx52FJ.js.gz +0 -0
  56. package/build/client/_app/version.json +1 -1
  57. package/build/client/_app/version.json.br +0 -0
  58. package/build/client/_app/version.json.gz +0 -0
  59. package/build/client/favicon.svg +4 -0
  60. package/build/client/favicon.svg.br +0 -0
  61. package/build/client/favicon.svg.gz +0 -0
  62. package/build/handler.js +7 -7
  63. package/build/index.js +7 -7
  64. package/build/server/chunks/chunks/{context.js-BUZqFfWG.js → context.js-B77ZAVLi.js} +405 -31
  65. package/build/server/chunks/chunks/context.js-B77ZAVLi.js.map +1 -0
  66. package/build/server/chunks/chunks/{core.js-xfrkaQpS.js → core.js-EA_ysb1J.js} +130 -3
  67. package/build/server/chunks/chunks/core.js-EA_ysb1J.js.map +1 -0
  68. package/build/server/chunks/chunks/{exports.js-C0rwMMtk.js → exports.js-DvhE7Ffd.js} +2 -2
  69. package/build/server/chunks/chunks/{exports.js-C0rwMMtk.js.map → exports.js-DvhE7Ffd.js.map} +1 -1
  70. package/build/server/chunks/chunks/{http.js-DvopzwKh.js → http.js-DyoR9XRI.js} +5 -3
  71. package/build/server/chunks/chunks/http.js-DyoR9XRI.js.map +1 -0
  72. package/build/server/chunks/chunks/{internal.js-DGo2jPcg.js → internal.js-Dn37LrAW.js} +4 -4
  73. package/build/server/chunks/chunks/{internal.js-DGo2jPcg.js.map → internal.js-Dn37LrAW.js.map} +1 -1
  74. package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js.map +1 -1
  75. package/build/server/chunks/chunks/{library-store.js-ZLudCJlT.js → library-store.js-DJ-JRE-g.js} +388 -20
  76. package/build/server/chunks/chunks/library-store.js-DJ-JRE-g.js.map +1 -0
  77. package/build/server/chunks/chunks/{shared.js-B1gC9MiJ.js → shared.js-Dob0TlTu.js} +2 -2
  78. package/build/server/chunks/chunks/{shared.js-B1gC9MiJ.js.map → shared.js-Dob0TlTu.js.map} +1 -1
  79. package/build/server/chunks/chunks/{utils.js-DnEJ3UjO.js → utils.js-B4YimMxv.js} +3 -3
  80. package/build/server/chunks/chunks/{utils.js-DnEJ3UjO.js.map → utils.js-B4YimMxv.js.map} +1 -1
  81. package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-Cq5gXVQT.js → _server.ts.js-H4Pq1KAE.js} +4 -5
  82. package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-Cq5gXVQT.js.map → _server.ts.js-H4Pq1KAE.js.map} +1 -1
  83. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-RXbedi8q.js → _server.ts.js-BI3KHSfE.js} +5 -6
  84. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-RXbedi8q.js.map → _server.ts.js-BI3KHSfE.js.map} +1 -1
  85. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/_server.ts.js-BlNYUbXX.js +34 -0
  86. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/_server.ts.js-BlNYUbXX.js.map +1 -0
  87. package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-D7Qae9vU.js → _server.ts.js-j-_N540j.js} +9 -7
  88. package/build/server/chunks/entries/endpoints/api/assets/_server.ts.js-j-_N540j.js.map +1 -0
  89. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-DtO20kgB.js → _server.ts.js-BHKobzAg.js} +5 -6
  90. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-DtO20kgB.js.map → _server.ts.js-BHKobzAg.js.map} +1 -1
  91. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-BUebPbd5.js → _server.ts.js-BFKjIOCv.js} +5 -6
  92. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-BUebPbd5.js.map → _server.ts.js-BFKjIOCv.js.map} +1 -1
  93. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-BjT2qPMT.js → _server.ts.js-BxZeVw8y.js} +5 -6
  94. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-BjT2qPMT.js.map → _server.ts.js-BxZeVw8y.js.map} +1 -1
  95. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-DYRLsoT7.js → _server.ts.js-CO36U_CT.js} +5 -6
  96. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-DYRLsoT7.js.map → _server.ts.js-CO36U_CT.js.map} +1 -1
  97. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-BbN2fGNN.js → _server.ts.js-CBlg1Bkl.js} +5 -6
  98. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-BbN2fGNN.js.map → _server.ts.js-CBlg1Bkl.js.map} +1 -1
  99. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-b_MKZ41b.js → _server.ts.js-DcGLCjIs.js} +5 -6
  100. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-b_MKZ41b.js.map → _server.ts.js-DcGLCjIs.js.map} +1 -1
  101. package/build/server/chunks/entries/endpoints/api/raw/adopt/_server.ts.js-AqhtjOiL.js +32 -0
  102. package/build/server/chunks/entries/endpoints/api/raw/adopt/_server.ts.js-AqhtjOiL.js.map +1 -0
  103. package/build/server/chunks/entries/endpoints/api/raw/edited/accept/_server.ts.js-CSa6-DcU.js +30 -0
  104. package/build/server/chunks/entries/endpoints/api/raw/edited/accept/_server.ts.js-CSa6-DcU.js.map +1 -0
  105. package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/_server.ts.js-DnzZUoAo.js +30 -0
  106. package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/_server.ts.js-DnzZUoAo.js.map +1 -0
  107. package/build/server/chunks/entries/endpoints/api/reconcile/_server.ts.js-B0KMprKq.js +33 -0
  108. package/build/server/chunks/entries/endpoints/api/reconcile/_server.ts.js-B0KMprKq.js.map +1 -0
  109. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-evEfMpvn.js → _server.ts.js-B1N9o1Ne.js} +5 -6
  110. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-evEfMpvn.js.map → _server.ts.js-B1N9o1Ne.js.map} +1 -1
  111. package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-C04XE_1w.js → _server.ts.js-B6HbnRqq.js} +4 -5
  112. package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-C04XE_1w.js.map → _server.ts.js-B6HbnRqq.js.map} +1 -1
  113. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-DB8TdoEv.js → _server.ts.js-7wzPyG9v.js} +5 -6
  114. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-DB8TdoEv.js.map → _server.ts.js-7wzPyG9v.js.map} +1 -1
  115. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-BrpaijZO.js → _server.ts.js-BWztxYge.js} +5 -6
  116. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-BrpaijZO.js.map → _server.ts.js-BWztxYge.js.map} +1 -1
  117. package/build/server/chunks/entries/{hooks.server.js-BJJwZW_I.js → hooks.server.js-CVKLksJ1.js} +4 -5
  118. package/build/server/chunks/entries/{hooks.server.js-BJJwZW_I.js.map → hooks.server.js-CVKLksJ1.js.map} +1 -1
  119. package/build/server/chunks/{handler-DnbS2t1B.js → handler-DZ2Sps4a.js} +5 -5
  120. package/build/server/chunks/{handler-DnbS2t1B.js.map → handler-DZ2Sps4a.js.map} +1 -1
  121. package/build/server/chunks/{index.js-g77q3Boj.js → index.js-CdmTWQz8.js} +5 -5
  122. package/build/server/chunks/{index.js-g77q3Boj.js.map → index.js-CdmTWQz8.js.map} +1 -1
  123. package/build/server/chunks/{manifest.js-qmEXbstS.js → manifest.js-GhfNr35x.js} +57 -22
  124. package/build/server/chunks/manifest.js-GhfNr35x.js.map +1 -0
  125. package/build/server/chunks/nodes/0.js-DGT86_i-.js +11 -0
  126. package/build/server/chunks/nodes/0.js-DGT86_i-.js.map +1 -0
  127. package/build/server/chunks/nodes/1.js-DQgYreU0.js +7 -0
  128. package/build/server/chunks/nodes/{1.js-H-qwo4GJ.js.map → 1.js-DQgYreU0.js.map} +1 -1
  129. package/build/server/chunks/nodes/2.js-DItreSrX.js +7 -0
  130. package/build/server/chunks/nodes/2.js-DItreSrX.js.map +1 -0
  131. package/build/server/chunks/nodes/3.js-bE1dJ_6v.js +7 -0
  132. package/build/server/chunks/nodes/3.js-bE1dJ_6v.js.map +1 -0
  133. package/build/server/chunks/nodes/4.js-BebbMVXy.js +7 -0
  134. package/build/server/chunks/nodes/{4.js-BKL7LSSm.js.map → 4.js-BebbMVXy.js.map} +1 -1
  135. package/dist/cli.js +32 -9
  136. package/dist/core/api-types.d.ts +39 -1
  137. package/dist/core/index.d.ts +3 -2
  138. package/dist/core/index.js +2 -1
  139. package/dist/core/ingest.d.ts +2 -0
  140. package/dist/core/ingest.js +7 -0
  141. package/dist/core/raw-path.d.ts +8 -0
  142. package/dist/core/raw-path.js +63 -0
  143. package/dist/server/build.js +11 -2
  144. package/dist/server/check.d.ts +5 -1
  145. package/dist/server/check.js +80 -28
  146. package/dist/server/cli-commands.d.ts +3 -2
  147. package/dist/server/cli-commands.js +47 -4
  148. package/dist/server/cli-init.d.ts +1 -1
  149. package/dist/server/cli-init.js +38 -5
  150. package/dist/server/http.js +5 -1
  151. package/dist/server/index.d.ts +1 -1
  152. package/dist/server/library-store.d.ts +23 -0
  153. package/dist/server/library-store.js +82 -14
  154. package/dist/server/operations.d.ts +12 -2
  155. package/dist/server/operations.js +391 -31
  156. package/dist/server/processing/processor.js +3 -0
  157. package/dist/server/raw-reconciliation.d.ts +53 -0
  158. package/dist/server/raw-reconciliation.js +338 -0
  159. package/dist/server/raw-safety.d.ts +10 -0
  160. package/dist/server/raw-safety.js +73 -0
  161. package/dist/server/start.d.ts +4 -2
  162. package/dist/server/start.js +43 -11
  163. package/package.json +1 -1
  164. package/build/client/_app/immutable/assets/0.DLhIsYA_.css +0 -1
  165. package/build/client/_app/immutable/assets/0.DLhIsYA_.css.br +0 -0
  166. package/build/client/_app/immutable/assets/0.DLhIsYA_.css.gz +0 -0
  167. package/build/client/_app/immutable/assets/3.JwgtcTEd.css +0 -1
  168. package/build/client/_app/immutable/assets/3.JwgtcTEd.css.br +0 -0
  169. package/build/client/_app/immutable/assets/3.JwgtcTEd.css.gz +0 -0
  170. package/build/client/_app/immutable/assets/LibraryContextMenu.CMefGNE2.css.br +0 -0
  171. package/build/client/_app/immutable/assets/LibraryContextMenu.CMefGNE2.css.gz +0 -0
  172. package/build/client/_app/immutable/chunks/CNRz3sSw.js.br +0 -0
  173. package/build/client/_app/immutable/chunks/CNRz3sSw.js.gz +0 -0
  174. package/build/client/_app/immutable/chunks/CO4RBJfa.js +0 -1
  175. package/build/client/_app/immutable/chunks/CO4RBJfa.js.br +0 -0
  176. package/build/client/_app/immutable/chunks/CO4RBJfa.js.gz +0 -0
  177. package/build/client/_app/immutable/chunks/DOpBpjxS.js +0 -108
  178. package/build/client/_app/immutable/chunks/DOpBpjxS.js.br +0 -0
  179. package/build/client/_app/immutable/chunks/DOpBpjxS.js.gz +0 -0
  180. package/build/client/_app/immutable/chunks/DVEQFclp.js.br +0 -1
  181. package/build/client/_app/immutable/chunks/DVEQFclp.js.gz +0 -0
  182. package/build/client/_app/immutable/chunks/DiFoWL2c.js +0 -1
  183. package/build/client/_app/immutable/chunks/DiFoWL2c.js.br +0 -0
  184. package/build/client/_app/immutable/chunks/DiFoWL2c.js.gz +0 -0
  185. package/build/client/_app/immutable/chunks/DkADHpZF.js +0 -1
  186. package/build/client/_app/immutable/chunks/DkADHpZF.js.br +0 -0
  187. package/build/client/_app/immutable/chunks/DkADHpZF.js.gz +0 -0
  188. package/build/client/_app/immutable/entry/app.CKgtYXQb.js +0 -2
  189. package/build/client/_app/immutable/entry/app.CKgtYXQb.js.br +0 -0
  190. package/build/client/_app/immutable/entry/app.CKgtYXQb.js.gz +0 -0
  191. package/build/client/_app/immutable/entry/start.CYZu5qE1.js +0 -1
  192. package/build/client/_app/immutable/entry/start.CYZu5qE1.js.br +0 -0
  193. package/build/client/_app/immutable/entry/start.CYZu5qE1.js.gz +0 -0
  194. package/build/client/_app/immutable/nodes/0.I_1SApYQ.js +0 -2
  195. package/build/client/_app/immutable/nodes/0.I_1SApYQ.js.br +0 -0
  196. package/build/client/_app/immutable/nodes/0.I_1SApYQ.js.gz +0 -0
  197. package/build/client/_app/immutable/nodes/1.v6eUTnWq.js +0 -1
  198. package/build/client/_app/immutable/nodes/1.v6eUTnWq.js.br +0 -2
  199. package/build/client/_app/immutable/nodes/1.v6eUTnWq.js.gz +0 -0
  200. package/build/client/_app/immutable/nodes/2.DoA7Dfl-.js +0 -3
  201. package/build/client/_app/immutable/nodes/2.DoA7Dfl-.js.br +0 -0
  202. package/build/client/_app/immutable/nodes/2.DoA7Dfl-.js.gz +0 -0
  203. package/build/client/_app/immutable/nodes/3.C-DO70Bs.js +0 -1
  204. package/build/client/_app/immutable/nodes/3.C-DO70Bs.js.br +0 -0
  205. package/build/client/_app/immutable/nodes/3.C-DO70Bs.js.gz +0 -0
  206. package/build/client/_app/immutable/nodes/4.CALOuSyz.js +0 -2
  207. package/build/client/_app/immutable/nodes/4.CALOuSyz.js.br +0 -0
  208. package/build/client/_app/immutable/nodes/4.CALOuSyz.js.gz +0 -0
  209. package/build/server/chunks/chunks/context.js-BUZqFfWG.js.map +0 -1
  210. package/build/server/chunks/chunks/core.js-xfrkaQpS.js.map +0 -1
  211. package/build/server/chunks/chunks/folder-path.js-ytx9ucgg.js +0 -64
  212. package/build/server/chunks/chunks/folder-path.js-ytx9ucgg.js.map +0 -1
  213. package/build/server/chunks/chunks/http.js-DvopzwKh.js.map +0 -1
  214. package/build/server/chunks/chunks/library-store.js-ZLudCJlT.js.map +0 -1
  215. package/build/server/chunks/entries/endpoints/api/assets/_server.ts.js-D7Qae9vU.js.map +0 -1
  216. package/build/server/chunks/manifest.js-qmEXbstS.js.map +0 -1
  217. package/build/server/chunks/nodes/0.js-Bk6IZ-vD.js +0 -11
  218. package/build/server/chunks/nodes/0.js-Bk6IZ-vD.js.map +0 -1
  219. package/build/server/chunks/nodes/1.js-H-qwo4GJ.js +0 -7
  220. package/build/server/chunks/nodes/2.js-DRpXVLwp.js +0 -7
  221. package/build/server/chunks/nodes/2.js-DRpXVLwp.js.map +0 -1
  222. package/build/server/chunks/nodes/3.js-CDEzNFeU.js +0 -7
  223. package/build/server/chunks/nodes/3.js-CDEzNFeU.js.map +0 -1
  224. package/build/server/chunks/nodes/4.js-BKL7LSSm.js +0 -7
@@ -7,16 +7,16 @@ function __memo(fn) {
7
7
  return {
8
8
  appDir: "_app",
9
9
  appPath: "_app",
10
- assets: new Set([]),
11
- mimeTypes: {},
10
+ assets: new Set(["favicon.svg"]),
11
+ mimeTypes: {".svg":"image/svg+xml"},
12
12
  _: {
13
- client: {start:"_app/immutable/entry/start.CYZu5qE1.js",app:"_app/immutable/entry/app.CKgtYXQb.js",imports:["_app/immutable/entry/start.CYZu5qE1.js","_app/immutable/chunks/DiFoWL2c.js","_app/immutable/chunks/CNRz3sSw.js","_app/immutable/entry/app.CKgtYXQb.js","_app/immutable/chunks/CNRz3sSw.js","_app/immutable/chunks/xihTtKlq.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
13
+ client: {start:"_app/immutable/entry/start.DNXvkhtP.js",app:"_app/immutable/entry/app.nM6SgHKJ.js",imports:["_app/immutable/entry/start.DNXvkhtP.js","_app/immutable/chunks/C8W3KwDq.js","_app/immutable/chunks/D65cSBhe.js","_app/immutable/entry/app.nM6SgHKJ.js","_app/immutable/chunks/D65cSBhe.js","_app/immutable/chunks/xihTtKlq.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
14
14
  nodes: [
15
- __memo(() => import('./nodes/0.js-Bk6IZ-vD.js')),
16
- __memo(() => import('./nodes/1.js-H-qwo4GJ.js')),
17
- __memo(() => import('./nodes/2.js-DRpXVLwp.js')),
18
- __memo(() => import('./nodes/3.js-CDEzNFeU.js')),
19
- __memo(() => import('./nodes/4.js-BKL7LSSm.js'))
15
+ __memo(() => import('./nodes/0.js-DGT86_i-.js')),
16
+ __memo(() => import('./nodes/1.js-DQgYreU0.js')),
17
+ __memo(() => import('./nodes/2.js-DItreSrX.js')),
18
+ __memo(() => import('./nodes/3.js-bE1dJ_6v.js')),
19
+ __memo(() => import('./nodes/4.js-BebbMVXy.js'))
20
20
  ],
21
21
  remotes: {
22
22
 
@@ -34,70 +34,105 @@ return {
34
34
  pattern: /^\/api\/assets\/?$/,
35
35
  params: [],
36
36
  page: null,
37
- endpoint: __memo(() => import('./entries/endpoints/api/assets/_server.ts.js-D7Qae9vU.js'))
37
+ endpoint: __memo(() => import('./entries/endpoints/api/assets/_server.ts.js-j-_N540j.js'))
38
38
  },
39
39
  {
40
40
  id: "/api/assets/delete",
41
41
  pattern: /^\/api\/assets\/delete\/?$/,
42
42
  params: [],
43
43
  page: null,
44
- endpoint: __memo(() => import('./entries/endpoints/api/assets/delete/_server.ts.js-DtO20kgB.js'))
44
+ endpoint: __memo(() => import('./entries/endpoints/api/assets/delete/_server.ts.js-BHKobzAg.js'))
45
45
  },
46
46
  {
47
47
  id: "/api/assets/move",
48
48
  pattern: /^\/api\/assets\/move\/?$/,
49
49
  params: [],
50
50
  page: null,
51
- endpoint: __memo(() => import('./entries/endpoints/api/assets/move/_server.ts.js-BUebPbd5.js'))
51
+ endpoint: __memo(() => import('./entries/endpoints/api/assets/move/_server.ts.js-BFKjIOCv.js'))
52
52
  },
53
53
  {
54
54
  id: "/api/assets/[id]",
55
55
  pattern: /^\/api\/assets\/([^/]+?)\/?$/,
56
56
  params: [{"name":"id","optional":false,"rest":false,"chained":false}],
57
57
  page: null,
58
- endpoint: __memo(() => import('./entries/endpoints/api/assets/_id_/_server.ts.js-RXbedi8q.js'))
58
+ endpoint: __memo(() => import('./entries/endpoints/api/assets/_id_/_server.ts.js-BI3KHSfE.js'))
59
+ },
60
+ {
61
+ id: "/api/assets/[id]/raw",
62
+ pattern: /^\/api\/assets\/([^/]+?)\/raw\/?$/,
63
+ params: [{"name":"id","optional":false,"rest":false,"chained":false}],
64
+ page: null,
65
+ endpoint: __memo(() => import('./entries/endpoints/api/assets/_id_/raw/_server.ts.js-BlNYUbXX.js'))
59
66
  },
60
67
  {
61
68
  id: "/api/folders",
62
69
  pattern: /^\/api\/folders\/?$/,
63
70
  params: [],
64
71
  page: null,
65
- endpoint: __memo(() => import('./entries/endpoints/api/folders/_server.ts.js-DYRLsoT7.js'))
72
+ endpoint: __memo(() => import('./entries/endpoints/api/folders/_server.ts.js-CO36U_CT.js'))
66
73
  },
67
74
  {
68
75
  id: "/api/folders/[path]",
69
76
  pattern: /^\/api\/folders\/([^/]+?)\/?$/,
70
77
  params: [{"name":"path","optional":false,"rest":false,"chained":false}],
71
78
  page: null,
72
- endpoint: __memo(() => import('./entries/endpoints/api/folders/_path_/_server.ts.js-BjT2qPMT.js'))
79
+ endpoint: __memo(() => import('./entries/endpoints/api/folders/_path_/_server.ts.js-BxZeVw8y.js'))
73
80
  },
74
81
  {
75
82
  id: "/api/manifests",
76
83
  pattern: /^\/api\/manifests\/?$/,
77
84
  params: [],
78
85
  page: null,
79
- endpoint: __memo(() => import('./entries/endpoints/api/manifests/_server.ts.js-b_MKZ41b.js'))
86
+ endpoint: __memo(() => import('./entries/endpoints/api/manifests/_server.ts.js-DcGLCjIs.js'))
80
87
  },
81
88
  {
82
89
  id: "/api/manifests/[name]",
83
90
  pattern: /^\/api\/manifests\/([^/]+?)\/?$/,
84
91
  params: [{"name":"name","optional":false,"rest":false,"chained":false}],
85
92
  page: null,
86
- endpoint: __memo(() => import('./entries/endpoints/api/manifests/_name_/_server.ts.js-BbN2fGNN.js'))
93
+ endpoint: __memo(() => import('./entries/endpoints/api/manifests/_name_/_server.ts.js-CBlg1Bkl.js'))
94
+ },
95
+ {
96
+ id: "/api/raw/adopt",
97
+ pattern: /^\/api\/raw\/adopt\/?$/,
98
+ params: [],
99
+ page: null,
100
+ endpoint: __memo(() => import('./entries/endpoints/api/raw/adopt/_server.ts.js-AqhtjOiL.js'))
101
+ },
102
+ {
103
+ id: "/api/raw/edited/accept",
104
+ pattern: /^\/api\/raw\/edited\/accept\/?$/,
105
+ params: [],
106
+ page: null,
107
+ endpoint: __memo(() => import('./entries/endpoints/api/raw/edited/accept/_server.ts.js-CSa6-DcU.js'))
108
+ },
109
+ {
110
+ id: "/api/raw/edited/dismiss",
111
+ pattern: /^\/api\/raw\/edited\/dismiss\/?$/,
112
+ params: [],
113
+ page: null,
114
+ endpoint: __memo(() => import('./entries/endpoints/api/raw/edited/dismiss/_server.ts.js-DnzZUoAo.js'))
115
+ },
116
+ {
117
+ id: "/api/reconcile",
118
+ pattern: /^\/api\/reconcile\/?$/,
119
+ params: [],
120
+ page: null,
121
+ endpoint: __memo(() => import('./entries/endpoints/api/reconcile/_server.ts.js-B0KMprKq.js'))
87
122
  },
88
123
  {
89
124
  id: "/api/state",
90
125
  pattern: /^\/api\/state\/?$/,
91
126
  params: [],
92
127
  page: null,
93
- endpoint: __memo(() => import('./entries/endpoints/api/state/_server.ts.js-evEfMpvn.js'))
128
+ endpoint: __memo(() => import('./entries/endpoints/api/state/_server.ts.js-B1N9o1Ne.js'))
94
129
  },
95
130
  {
96
131
  id: "/api/[...path]",
97
132
  pattern: /^\/api(?:\/([^]*))?\/?$/,
98
133
  params: [{"name":"path","optional":false,"rest":true,"chained":true}],
99
134
  page: null,
100
- endpoint: __memo(() => import('./entries/endpoints/api/_...path_/_server.ts.js-Cq5gXVQT.js'))
135
+ endpoint: __memo(() => import('./entries/endpoints/api/_...path_/_server.ts.js-H4Pq1KAE.js'))
101
136
  },
102
137
  {
103
138
  id: "/asset/[id]",
@@ -111,21 +146,21 @@ return {
111
146
  pattern: /^\/files\/proxy(?:\/([^]*))?\/?$/,
112
147
  params: [{"name":"path","optional":false,"rest":true,"chained":true}],
113
148
  page: null,
114
- endpoint: __memo(() => import('./entries/endpoints/files/proxy/_...path_/_server.ts.js-DB8TdoEv.js'))
149
+ endpoint: __memo(() => import('./entries/endpoints/files/proxy/_...path_/_server.ts.js-7wzPyG9v.js'))
115
150
  },
116
151
  {
117
152
  id: "/files/raw/[...path]",
118
153
  pattern: /^\/files\/raw(?:\/([^]*))?\/?$/,
119
154
  params: [{"name":"path","optional":false,"rest":true,"chained":true}],
120
155
  page: null,
121
- endpoint: __memo(() => import('./entries/endpoints/files/raw/_...path_/_server.ts.js-BrpaijZO.js'))
156
+ endpoint: __memo(() => import('./entries/endpoints/files/raw/_...path_/_server.ts.js-BWztxYge.js'))
122
157
  },
123
158
  {
124
159
  id: "/files/[...path]",
125
160
  pattern: /^\/files(?:\/([^]*))?\/?$/,
126
161
  params: [{"name":"path","optional":false,"rest":true,"chained":true}],
127
162
  page: null,
128
- endpoint: __memo(() => import('./entries/endpoints/files/_...path_/_server.ts.js-C04XE_1w.js'))
163
+ endpoint: __memo(() => import('./entries/endpoints/files/_...path_/_server.ts.js-B6HbnRqq.js'))
129
164
  },
130
165
  {
131
166
  id: "/manifests",
@@ -146,4 +181,4 @@ return {
146
181
  })();
147
182
 
148
183
  export { manifest as m };
149
- //# sourceMappingURL=manifest.js-qmEXbstS.js.map
184
+ //# sourceMappingURL=manifest.js-GhfNr35x.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js-GhfNr35x.js","sources":["../../../.svelte-kit/output/server/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"favicon.svg\"]),\n\tmimeTypes: {\".svg\":\"image/svg+xml\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.DNXvkhtP.js\",app:\"_app/immutable/entry/app.nM6SgHKJ.js\",imports:[\"_app/immutable/entry/start.DNXvkhtP.js\",\"_app/immutable/chunks/C8W3KwDq.js\",\"_app/immutable/chunks/D65cSBhe.js\",\"_app/immutable/entry/app.nM6SgHKJ.js\",\"_app/immutable/chunks/D65cSBhe.js\",\"_app/immutable/chunks/xihTtKlq.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 2 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/assets\",\n\t\t\t\tpattern: /^\\/api\\/assets\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/assets/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/assets/delete\",\n\t\t\t\tpattern: /^\\/api\\/assets\\/delete\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/assets/delete/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/assets/move\",\n\t\t\t\tpattern: /^\\/api\\/assets\\/move\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/assets/move/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/assets/[id]\",\n\t\t\t\tpattern: /^\\/api\\/assets\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/assets/_id_/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/assets/[id]/raw\",\n\t\t\t\tpattern: /^\\/api\\/assets\\/([^/]+?)\\/raw\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/assets/_id_/raw/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/folders\",\n\t\t\t\tpattern: /^\\/api\\/folders\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/folders/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/folders/[path]\",\n\t\t\t\tpattern: /^\\/api\\/folders\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"path\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/folders/_path_/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/manifests\",\n\t\t\t\tpattern: /^\\/api\\/manifests\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/manifests/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/manifests/[name]\",\n\t\t\t\tpattern: /^\\/api\\/manifests\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"name\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/manifests/_name_/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/raw/adopt\",\n\t\t\t\tpattern: /^\\/api\\/raw\\/adopt\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/raw/adopt/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/raw/edited/accept\",\n\t\t\t\tpattern: /^\\/api\\/raw\\/edited\\/accept\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/raw/edited/accept/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/raw/edited/dismiss\",\n\t\t\t\tpattern: /^\\/api\\/raw\\/edited\\/dismiss\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/raw/edited/dismiss/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/reconcile\",\n\t\t\t\tpattern: /^\\/api\\/reconcile\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/reconcile/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/state\",\n\t\t\t\tpattern: /^\\/api\\/state\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/state/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/[...path]\",\n\t\t\t\tpattern: /^\\/api(?:\\/([^]*))?\\/?$/,\n\t\t\t\tparams: [{\"name\":\"path\",\"optional\":false,\"rest\":true,\"chained\":true}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/_...path_/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/asset/[id]\",\n\t\t\t\tpattern: /^\\/asset\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 3 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/files/proxy/[...path]\",\n\t\t\t\tpattern: /^\\/files\\/proxy(?:\\/([^]*))?\\/?$/,\n\t\t\t\tparams: [{\"name\":\"path\",\"optional\":false,\"rest\":true,\"chained\":true}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/files/proxy/_...path_/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/files/raw/[...path]\",\n\t\t\t\tpattern: /^\\/files\\/raw(?:\\/([^]*))?\\/?$/,\n\t\t\t\tparams: [{\"name\":\"path\",\"optional\":false,\"rest\":true,\"chained\":true}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/files/raw/_...path_/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/files/[...path]\",\n\t\t\t\tpattern: /^\\/files(?:\\/([^]*))?\\/?$/,\n\t\t\t\tparams: [{\"name\":\"path\",\"optional\":false,\"rest\":true,\"chained\":true}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/files/_...path_/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/manifests\",\n\t\t\t\tpattern: /^\\/manifests\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 4 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ const index = 0;
2
+ const universal = {
3
+ "ssr": false
4
+ };
5
+ const universal_id = "src/routes/+layout.ts";
6
+ const imports = ["_app/immutable/nodes/0.QeXQNCp2.js","_app/immutable/chunks/D65cSBhe.js","_app/immutable/chunks/C8W3KwDq.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/ByVSyIj7.js","_app/immutable/chunks/BAEZPv6c.js","_app/immutable/chunks/CP-bnOxU.js"];
7
+ const stylesheets = ["_app/immutable/assets/ManifestSelector.Il8p28r8.css","_app/immutable/assets/0.inkPq3ni.css"];
8
+ const fonts = [];
9
+
10
+ export { fonts, imports, index, stylesheets, universal, universal_id };
11
+ //# sourceMappingURL=0.js-DGT86_i-.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"0.js-DGT86_i-.js","sources":["../../../../.svelte-kit/output/server/nodes/0.js"],"sourcesContent":["\n\nexport const index = 0;\nexport const universal = {\n \"ssr\": false\n};\nexport const universal_id = \"src/routes/+layout.ts\";\nexport const imports = [\"_app/immutable/nodes/0.QeXQNCp2.js\",\"_app/immutable/chunks/D65cSBhe.js\",\"_app/immutable/chunks/C8W3KwDq.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/ByVSyIj7.js\",\"_app/immutable/chunks/BAEZPv6c.js\",\"_app/immutable/chunks/CP-bnOxU.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ManifestSelector.Il8p28r8.css\",\"_app/immutable/assets/0.inkPq3ni.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACT,MAAC,SAAS,GAAG;AACzB,EAAE,KAAK,EAAE;AACT;AACY,MAAC,YAAY,GAAG;AAChB,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACxQ,MAAC,WAAW,GAAG,CAAC,qDAAqD,CAAC,sCAAsC;AAC5G,MAAC,KAAK,GAAG;;;;"}
@@ -0,0 +1,7 @@
1
+ const index = 1;
2
+ const imports = ["_app/immutable/nodes/1.dMklHTc2.js","_app/immutable/chunks/D65cSBhe.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/ByVSyIj7.js","_app/immutable/chunks/C8W3KwDq.js"];
3
+ const stylesheets = [];
4
+ const fonts = [];
5
+
6
+ export { fonts, imports, index, stylesheets };
7
+ //# sourceMappingURL=1.js-DQgYreU0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"1.js-H-qwo4GJ.js","sources":["../../../../.svelte-kit/output/server/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nexport const imports = [\"_app/immutable/nodes/1.v6eUTnWq.js\",\"_app/immutable/chunks/CNRz3sSw.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/DVEQFclp.js\",\"_app/immutable/chunks/DiFoWL2c.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACT,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAChM,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"1.js-DQgYreU0.js","sources":["../../../../.svelte-kit/output/server/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nexport const imports = [\"_app/immutable/nodes/1.dMklHTc2.js\",\"_app/immutable/chunks/D65cSBhe.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/ByVSyIj7.js\",\"_app/immutable/chunks/C8W3KwDq.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACT,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAChM,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
@@ -0,0 +1,7 @@
1
+ const index = 2;
2
+ const imports = ["_app/immutable/nodes/2.CW4VMcIP.js","_app/immutable/chunks/D65cSBhe.js","_app/immutable/chunks/C8W3KwDq.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/BAEZPv6c.js","_app/immutable/chunks/Db8LRH6X.js","_app/immutable/chunks/CP-bnOxU.js","_app/immutable/chunks/TZFh8bT7.js"];
3
+ const stylesheets = ["_app/immutable/assets/ManifestSelector.Il8p28r8.css","_app/immutable/assets/ConfirmDialog.BdKlitwi.css","_app/immutable/assets/LibraryContextMenu.BYvU4SY7.css","_app/immutable/assets/2.ohi-TClG.css"];
4
+ const fonts = [];
5
+
6
+ export { fonts, imports, index, stylesheets };
7
+ //# sourceMappingURL=2.js-DItreSrX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2.js-DItreSrX.js","sources":["../../../../.svelte-kit/output/server/nodes/2.js"],"sourcesContent":["\n\nexport const index = 2;\nexport const imports = [\"_app/immutable/nodes/2.CW4VMcIP.js\",\"_app/immutable/chunks/D65cSBhe.js\",\"_app/immutable/chunks/C8W3KwDq.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/BAEZPv6c.js\",\"_app/immutable/chunks/Db8LRH6X.js\",\"_app/immutable/chunks/CP-bnOxU.js\",\"_app/immutable/chunks/TZFh8bT7.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ManifestSelector.Il8p28r8.css\",\"_app/immutable/assets/ConfirmDialog.BdKlitwi.css\",\"_app/immutable/assets/LibraryContextMenu.BYvU4SY7.css\",\"_app/immutable/assets/2.ohi-TClG.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACT,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5S,MAAC,WAAW,GAAG,CAAC,qDAAqD,CAAC,kDAAkD,CAAC,uDAAuD,CAAC,sCAAsC;AACvN,MAAC,KAAK,GAAG;;;;"}
@@ -0,0 +1,7 @@
1
+ const index = 3;
2
+ const imports = ["_app/immutable/nodes/3.CTiY_pbK.js","_app/immutable/chunks/D65cSBhe.js","_app/immutable/chunks/C8W3KwDq.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/ByVSyIj7.js","_app/immutable/chunks/BAEZPv6c.js","_app/immutable/chunks/Db8LRH6X.js","_app/immutable/chunks/CP-bnOxU.js","_app/immutable/chunks/TZFh8bT7.js"];
3
+ const stylesheets = ["_app/immutable/assets/ManifestSelector.Il8p28r8.css","_app/immutable/assets/ConfirmDialog.BdKlitwi.css","_app/immutable/assets/LibraryContextMenu.BYvU4SY7.css","_app/immutable/assets/3.ChSpCG-T.css"];
4
+ const fonts = [];
5
+
6
+ export { fonts, imports, index, stylesheets };
7
+ //# sourceMappingURL=3.js-bE1dJ_6v.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3.js-bE1dJ_6v.js","sources":["../../../../.svelte-kit/output/server/nodes/3.js"],"sourcesContent":["\n\nexport const index = 3;\nexport const imports = [\"_app/immutable/nodes/3.CTiY_pbK.js\",\"_app/immutable/chunks/D65cSBhe.js\",\"_app/immutable/chunks/C8W3KwDq.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/ByVSyIj7.js\",\"_app/immutable/chunks/BAEZPv6c.js\",\"_app/immutable/chunks/Db8LRH6X.js\",\"_app/immutable/chunks/CP-bnOxU.js\",\"_app/immutable/chunks/TZFh8bT7.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ManifestSelector.Il8p28r8.css\",\"_app/immutable/assets/ConfirmDialog.BdKlitwi.css\",\"_app/immutable/assets/LibraryContextMenu.BYvU4SY7.css\",\"_app/immutable/assets/3.ChSpCG-T.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACT,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAChV,MAAC,WAAW,GAAG,CAAC,qDAAqD,CAAC,kDAAkD,CAAC,uDAAuD,CAAC,sCAAsC;AACvN,MAAC,KAAK,GAAG;;;;"}
@@ -0,0 +1,7 @@
1
+ const index = 4;
2
+ const imports = ["_app/immutable/nodes/4.Dgxx52FJ.js","_app/immutable/chunks/D65cSBhe.js","_app/immutable/chunks/C8W3KwDq.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/BAEZPv6c.js","_app/immutable/chunks/TZFh8bT7.js"];
3
+ const stylesheets = ["_app/immutable/assets/ConfirmDialog.BdKlitwi.css","_app/immutable/assets/4.p004hmEN.css"];
4
+ const fonts = [];
5
+
6
+ export { fonts, imports, index, stylesheets };
7
+ //# sourceMappingURL=4.js-BebbMVXy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"4.js-BKL7LSSm.js","sources":["../../../../.svelte-kit/output/server/nodes/4.js"],"sourcesContent":["\n\nexport const index = 4;\nexport const imports = [\"_app/immutable/nodes/4.CALOuSyz.js\",\"_app/immutable/chunks/CNRz3sSw.js\",\"_app/immutable/chunks/DiFoWL2c.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/CO4RBJfa.js\",\"_app/immutable/chunks/DkADHpZF.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ConfirmDialog.BdKlitwi.css\",\"_app/immutable/assets/4.p004hmEN.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACT,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpO,MAAC,WAAW,GAAG,CAAC,kDAAkD,CAAC,sCAAsC;AACzG,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"4.js-BebbMVXy.js","sources":["../../../../.svelte-kit/output/server/nodes/4.js"],"sourcesContent":["\n\nexport const index = 4;\nexport const imports = [\"_app/immutable/nodes/4.Dgxx52FJ.js\",\"_app/immutable/chunks/D65cSBhe.js\",\"_app/immutable/chunks/C8W3KwDq.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/BAEZPv6c.js\",\"_app/immutable/chunks/TZFh8bT7.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ConfirmDialog.BdKlitwi.css\",\"_app/immutable/assets/4.p004hmEN.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACT,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpO,MAAC,WAAW,GAAG,CAAC,kDAAkD,CAAC,sCAAsC;AACzG,MAAC,KAAK,GAAG;;;;"}
package/dist/cli.js CHANGED
@@ -25,7 +25,7 @@ const ROOT_HELP = `fundus — asset management for SvelteKit hosts
25
25
  Usage: fundus <command> … (run in the host project root, next to fundus.config.ts)
26
26
 
27
27
  Setup:
28
- init create a template fundus.config.ts
28
+ init create a config and default main manifest
29
29
 
30
30
  Inspect:
31
31
  state the full project state: assets, manifests,
@@ -39,6 +39,7 @@ Mutate (each runs the editor autosave chain: write library → process
39
39
  affected assets → regenerate manifest modules):
40
40
  asset ingest <file> copy a file into the raw dir as a typed asset
41
41
  (--type, --id, --manifests, --parameters)
42
+ asset replace <id> <file> replace an asset's raw file, preserving metadata
42
43
  asset set <id> merge parameters and/or replace manifest
43
44
  membership (--parameters, --manifests)
44
45
  asset rename <id> <newId> rename an asset id
@@ -54,7 +55,8 @@ affected assets → regenerate manifest modules):
54
55
  manifest delete <name> delete a manifest and strip memberships
55
56
 
56
57
  Pipeline:
57
- start [--no-open] serve the Fundus SvelteKit editor and API
58
+ start [--port <number>] [--no-open]
59
+ serve the Fundus SvelteKit editor and API
58
60
  build process stale proxies, prune orphans,
59
61
  regenerate all manifest modules
60
62
  check verify without writing: validation, proxies
@@ -76,6 +78,7 @@ Exit codes: 0 success · 1 expected error · 2 unexpected crash.
76
78
  Typical agent lifecycle:
77
79
  fundus manifest create mainCatalog --json
78
80
  fundus asset ingest ./exports/navigation_panel@2x.png --type slice --json
81
+ fundus asset replace navigationPanel ./exports/navigation_panel_v2.png --json
79
82
  fundus asset set navigationPanel --parameters '{"mode": "three-horizontal"}' \\
80
83
  --manifests mainCatalog --json
81
84
  fundus check
@@ -129,26 +132,39 @@ async function runCommandGroup(run) {
129
132
  }
130
133
  const START_HELP = `fundus start — serve the Fundus SvelteKit editor and API
131
134
 
132
- Usage: fundus start [--no-open]
135
+ Usage: fundus start [--port <number>] [--no-open]
133
136
 
134
137
  Serves the client-rendered editor and fs/processing REST API for the project
135
138
  this is run in (the directory containing fundus.config.ts). The library
136
139
  is re-read per request; mutations regenerate their derived artifacts.
137
140
  The editor and endpoints run in the SvelteKit Node application shipped in the
138
- npm package at http://127.0.0.1:7583 by default. Set FUNDUS_API_PORT to use a
139
- different port. Once the server is ready, Fundus opens the editor in your
140
- default browser. The command fails if that build is missing. Stop with Ctrl-C.
141
+ npm package at http://127.0.0.1:7583 by default. Once the server is ready,
142
+ Fundus opens the editor in your default browser. The command fails if that
143
+ build is missing. Stop with Ctrl-C.
141
144
 
142
145
  Every edit autosaves: write library → process affected assets →
143
146
  regenerate manifest modules — the same chain the CLI mutations run.
144
147
 
145
148
  Flags:
149
+ --port port to listen on (default: 7583; use 0 to choose a free port)
146
150
  --no-open do not open the editor in a browser
147
151
  --help this help
148
152
 
149
153
  Example:
150
- cd my-host-app && npx fundus start
154
+ cd my-host-app && npx fundus start --port 8080
151
155
  `;
156
+ function parsePort(value) {
157
+ if (value === undefined)
158
+ return 7583;
159
+ if (typeof value !== 'string' || !/^\d+$/.test(value)) {
160
+ throw new CliUsageError('Flag "--port" must be an integer between 0 and 65535.');
161
+ }
162
+ const port = Number(value);
163
+ if (!Number.isSafeInteger(port) || port > 65_535) {
164
+ throw new CliUsageError('Flag "--port" must be an integer between 0 and 65535.');
165
+ }
166
+ return port;
167
+ }
152
168
  const command = process.argv[2];
153
169
  const commandArguments = process.argv.slice(3);
154
170
  if (command === 'init') {
@@ -162,14 +178,21 @@ else if (command === 'check') {
162
178
  }
163
179
  else if (command === 'start') {
164
180
  await runCommandGroup(async () => {
165
- const parsed = parseArguments(commandArguments, { help: { takesValue: false }, 'no-open': { takesValue: false } }, 'fundus start');
181
+ const parsed = parseArguments(commandArguments, {
182
+ help: { takesValue: false },
183
+ 'no-open': { takesValue: false },
184
+ port: { takesValue: true }
185
+ }, 'fundus start');
166
186
  requirePositionals(parsed, [], 'fundus start');
167
187
  if (parsed.flags.help) {
168
188
  console.log(START_HELP);
169
189
  return;
170
190
  }
171
191
  const { runStart } = await import('./server/start.js');
172
- await runStart(process.cwd(), { openBrowser: parsed.flags['no-open'] !== true });
192
+ await runStart(process.cwd(), {
193
+ openBrowser: parsed.flags['no-open'] !== true,
194
+ port: parsePort(parsed.flags.port)
195
+ });
173
196
  });
174
197
  }
175
198
  else if (command === 'state') {
@@ -44,7 +44,7 @@ export interface AssetStateDto {
44
44
  raw: string;
45
45
  /** Explicit folder path, or the empty string for the implicit root. */
46
46
  folder: string;
47
- /** URL the Fundus server serves the raw file under (`/files/raw/<fileName>`). */
47
+ /** Cache-busted URL the Fundus server serves the raw file under. */
48
48
  rawUrl: string;
49
49
  rawHash: string;
50
50
  parameters: unknown;
@@ -89,6 +89,44 @@ export interface FundusStateDto {
89
89
  * passive members), deduplicated — the preload-budget number.
90
90
  */
91
91
  manifestDeliveredBytes: Record<string, number>;
92
+ /** External raw files waiting for an explicit editor decision. */
93
+ rawIngestionQueue: RawIngestionQueueItemDto[];
94
+ }
95
+ export interface NewRawIngestionQueueItemDto {
96
+ kind: 'new';
97
+ token: string;
98
+ path: string;
99
+ hash: string;
100
+ compatibleTypes: string[];
101
+ proposedId: string;
102
+ }
103
+ export interface EditedRawIngestionQueueItemDto {
104
+ kind: 'edited';
105
+ token: string;
106
+ path: string;
107
+ hash: string;
108
+ assetId: string;
109
+ currentType: string;
110
+ compatibleTypes: string[];
111
+ }
112
+ export interface UnsupportedRawIngestionQueueItemDto {
113
+ kind: 'unsupported';
114
+ token: string;
115
+ path: string;
116
+ reason: string;
117
+ hash?: string;
118
+ }
119
+ export type RawIngestionQueueItemDto = NewRawIngestionQueueItemDto | EditedRawIngestionQueueItemDto | UnsupportedRawIngestionQueueItemDto;
120
+ export interface AdoptRawFileRequestDto {
121
+ token: string;
122
+ id: string;
123
+ type: string;
124
+ /** Explicit manifest memberships selected while adopting the file. */
125
+ manifests?: string[];
126
+ }
127
+ export interface ResolveEditedRawFileRequestDto {
128
+ token: string;
129
+ type?: string;
92
130
  }
93
131
  export interface ValidationIssueDto {
94
132
  assetId?: string;
@@ -1,10 +1,11 @@
1
1
  export type { AssetId, ManifestName, AssetRecord, ManifestRecord, Library } from './library.js';
2
2
  export { createEmptyLibrary, parseLibrary, serializeLibrary } from './library.js';
3
+ export { rawFileNameError, rawFilePathError, portableRawPathKey, isFundusTransactionName } from './raw-path.js';
3
4
  export { ROOT_FOLDER, FOLDER_SENTINEL, folderNameError, folderPathError, normalizeFolderPath, portableFolderPathKey, parentFolderPath, folderNameOf, joinFolderPath, folderOfRawPath, rawFileNameOfPath, isFolderOrDescendant, replaceFolderPrefix } from './folder-path.js';
4
5
  export { RESERVED_ASSET_IDS, isValidAssetId, assetIdError, manifestNameError } from './asset-id.js';
5
6
  export type { ManifestColor } from './manifest-appearance.js';
6
7
  export { MANIFEST_COLORS, MANIFEST_EMOJIS, isManifestColor, isManifestEmoji, resolveManifestColor, manifestColorError, manifestEmojiError } from './manifest-appearance.js';
7
- export { acceptedExtensions, typesForFileName, proposeAssetId } from './ingest.js';
8
+ export { acceptedExtensions, acceptedExtensionsForType, typesForFileName, proposeAssetId } from './ingest.js';
8
9
  export { canonicalizeParameters, compareCodeUnits } from './canonicalize.js';
9
10
  export type { FundusConfig } from './config.js';
10
11
  export { defineConfig } from './config.js';
@@ -13,7 +14,7 @@ export { createZeroInsets, defaultInsetsForSize, slicedAxesFor, maxInset, maxOve
13
14
  export type { ImageManifestEntry, SliceManifestEntry, VideoManifestEntry, ChromaKeyVideoManifestEntry, AudioManifestEntry, ManifestEntryData, ManifestEntry, ImagePreloadOptions, SlicePreloadOptions, VideoPreloadOptions, ChromaKeyVideoPreloadOptions, AudioPreloadOptions, PreloadOptions } from './manifest-entry.js';
14
15
  export type { ChromaKeyParameters } from './chroma-key.js';
15
16
  export { DEFAULT_CHROMA_KEY_PARAMETERS, validateChromaKeyParameters } from './chroma-key.js';
16
- export type { AssetStateDto, AssetReferenceLinkDto, AssetReferencesDto, PassiveManifestMembershipDto, PassiveMemberDto, ManifestMembershipDto, ProxyStateDto, FundusStateDto, ValidationIssueDto, PatchAssetRequestDto, CreateFolderRequestDto, PatchFolderRequestDto, MoveAssetsRequestDto, DeleteAssetsRequestDto, CreateManifestRequestDto, PatchManifestRequestDto, ApiErrorDto } from './api-types.js';
17
+ export type { AssetStateDto, AssetReferenceLinkDto, AssetReferencesDto, PassiveManifestMembershipDto, PassiveMemberDto, ManifestMembershipDto, ProxyStateDto, FundusStateDto, ValidationIssueDto, PatchAssetRequestDto, CreateFolderRequestDto, PatchFolderRequestDto, MoveAssetsRequestDto, DeleteAssetsRequestDto, CreateManifestRequestDto, PatchManifestRequestDto, RawIngestionQueueItemDto, NewRawIngestionQueueItemDto, EditedRawIngestionQueueItemDto, UnsupportedRawIngestionQueueItemDto, AdoptRawFileRequestDto, ResolveEditedRawFileRequestDto, ApiErrorDto } from './api-types.js';
17
18
  export type { AssetReference, CollectedReference } from './asset-reference.js';
18
19
  export { isAssetReference } from './asset-reference.js';
19
20
  export type { PluginDescriptorRegistry, ReferencesByAsset } from './reference-graph.js';
@@ -1,8 +1,9 @@
1
1
  export { createEmptyLibrary, parseLibrary, serializeLibrary } from './library.js';
2
+ export { rawFileNameError, rawFilePathError, portableRawPathKey, isFundusTransactionName } from './raw-path.js';
2
3
  export { ROOT_FOLDER, FOLDER_SENTINEL, folderNameError, folderPathError, normalizeFolderPath, portableFolderPathKey, parentFolderPath, folderNameOf, joinFolderPath, folderOfRawPath, rawFileNameOfPath, isFolderOrDescendant, replaceFolderPrefix } from './folder-path.js';
3
4
  export { RESERVED_ASSET_IDS, isValidAssetId, assetIdError, manifestNameError } from './asset-id.js';
4
5
  export { MANIFEST_COLORS, MANIFEST_EMOJIS, isManifestColor, isManifestEmoji, resolveManifestColor, manifestColorError, manifestEmojiError } from './manifest-appearance.js';
5
- export { acceptedExtensions, typesForFileName, proposeAssetId } from './ingest.js';
6
+ export { acceptedExtensions, acceptedExtensionsForType, typesForFileName, proposeAssetId } from './ingest.js';
6
7
  export { canonicalizeParameters, compareCodeUnits } from './canonicalize.js';
7
8
  export { defineConfig } from './config.js';
8
9
  export { createZeroInsets, defaultInsetsForSize, slicedAxesFor, maxInset, maxOverdraw } from './slice-data.js';
@@ -9,6 +9,8 @@ import type { AssetTypePluginDescriptor } from './plugins/contract.js';
9
9
  export declare const BUILT_IN_DESCRIPTORS: AssetTypePluginDescriptor<unknown, unknown>[];
10
10
  /** Unique HTML file-picker accept extensions derived from descriptor claims. */
11
11
  export declare function acceptedExtensions(descriptors?: AssetTypePluginDescriptor<unknown, unknown>[]): string[];
12
+ /** HTML file-picker extensions accepted by one registered asset type. */
13
+ export declare function acceptedExtensionsForType(type: string, descriptors?: AssetTypePluginDescriptor<unknown, unknown>[]): string[];
12
14
  /**
13
15
  * Types an ingested file of this extension could become — derived from the
14
16
  * descriptors' `accepts` claims. Raster images and video containers are
@@ -7,6 +7,13 @@ export function acceptedExtensions(descriptors = BUILT_IN_DESCRIPTORS) {
7
7
  .sort()
8
8
  .map((extension) => `.${extension}`);
9
9
  }
10
+ /** HTML file-picker extensions accepted by one registered asset type. */
11
+ export function acceptedExtensionsForType(type, descriptors = BUILT_IN_DESCRIPTORS) {
12
+ return (descriptors
13
+ .find((descriptor) => descriptor.type === type)
14
+ ?.accepts.map((extension) => `.${extension}`)
15
+ .sort() ?? []);
16
+ }
10
17
  /**
11
18
  * Types an ingested file of this extension could become — derived from the
12
19
  * descriptors' `accepts` claims. Raster images and video containers are
@@ -0,0 +1,8 @@
1
+ /** Whether a name is an exact Fundus-owned, short-lived transaction artifact. */
2
+ export declare function isFundusTransactionName(name: string): boolean;
3
+ /** Validate one portable, externally-owned raw-file name. */
4
+ export declare function rawFileNameError(name: string): string | null;
5
+ /** Validate a portable POSIX-relative raw path without permitting traversal. */
6
+ export declare function rawFilePathError(path: string): string | null;
7
+ /** Portable case/normalization collision key for complete raw paths. */
8
+ export declare function portableRawPathKey(path: string): string;
@@ -0,0 +1,63 @@
1
+ import { FOLDER_SENTINEL, folderNameError, normalizeFolderPath } from './folder-path.js';
2
+ const CONTROL_CHARACTERS = /[\u0000-\u001f\u007f]/;
3
+ const WINDOWS_FORBIDDEN_CHARACTERS = /[<>:"|?*]/;
4
+ const WINDOWS_RESERVED_NAME = /^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\..*)?$/i;
5
+ const UUID_PATTERN = '[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}';
6
+ const FUNDUS_TRANSACTION_NAME = new RegExp(`^(?:\\.fundus-replace-${UUID_PATTERN}\\.tmp|\\.fundus-delete(?:-assets)?-${UUID_PATTERN})$`, 'i');
7
+ const FUNDUS_TRANSACTION_SUFFIX = new RegExp(`\\.fundus-(?:replace-)?${UUID_PATTERN}$`, 'i');
8
+ /** Whether a name is an exact Fundus-owned, short-lived transaction artifact. */
9
+ export function isFundusTransactionName(name) {
10
+ return FUNDUS_TRANSACTION_NAME.test(name) || FUNDUS_TRANSACTION_SUFFIX.test(name);
11
+ }
12
+ /** Validate one portable, externally-owned raw-file name. */
13
+ export function rawFileNameError(name) {
14
+ if (name.length === 0)
15
+ return 'Raw file names must not be empty.';
16
+ if (name !== name.normalize('NFC'))
17
+ return 'Raw file names must be Unicode-normalized (NFC).';
18
+ if (name !== name.trim())
19
+ return 'Raw file names must not start or end with whitespace.';
20
+ if (name === '.' || name === '..')
21
+ return `"${name}" is not a valid raw file name.`;
22
+ if (name.includes('/') || name.includes('\\'))
23
+ return 'Raw file names must not contain path separators.';
24
+ if (CONTROL_CHARACTERS.test(name))
25
+ return 'Raw file names must not contain control characters.';
26
+ if (WINDOWS_FORBIDDEN_CHARACTERS.test(name)) {
27
+ return 'Raw file names must not contain Windows-reserved characters (: * ? " < > |).';
28
+ }
29
+ if (name.endsWith('.'))
30
+ return 'Raw file names must not end with a dot.';
31
+ if (name.toLocaleLowerCase('en-US') === FOLDER_SENTINEL) {
32
+ return `"${name}" is reserved for Fundus folder management.`;
33
+ }
34
+ if (WINDOWS_RESERVED_NAME.test(name))
35
+ return `"${name}" is a reserved filesystem name.`;
36
+ if (isFundusTransactionName(name))
37
+ return `"${name}" is reserved for Fundus transactions.`;
38
+ return null;
39
+ }
40
+ /** Validate a portable POSIX-relative raw path without permitting traversal. */
41
+ export function rawFilePathError(path) {
42
+ if (path.length === 0 || path.startsWith('/') || path.endsWith('/') || path.includes('\\')) {
43
+ return `Unsafe raw file path "${path}".`;
44
+ }
45
+ const segments = path.split('/');
46
+ for (const segment of segments.slice(0, -1)) {
47
+ const problem = folderNameError(segment);
48
+ if (problem)
49
+ return `Invalid raw file path "${path}": ${problem}`;
50
+ if (isFundusTransactionName(segment)) {
51
+ return `Invalid raw file path "${path}": "${segment}" is reserved for Fundus transactions.`;
52
+ }
53
+ if (segment !== segment.normalize('NFC')) {
54
+ return `Raw file path "${path}" is not Unicode-normalized (NFC).`;
55
+ }
56
+ }
57
+ const fileProblem = rawFileNameError(segments.at(-1) ?? '');
58
+ return fileProblem ? `Invalid raw file path "${path}": ${fileProblem}` : null;
59
+ }
60
+ /** Portable case/normalization collision key for complete raw paths. */
61
+ export function portableRawPathKey(path) {
62
+ return normalizeFolderPath(path).toLocaleLowerCase('en-US');
63
+ }
@@ -9,16 +9,25 @@ import { processAssets } from './processing/processor.js';
9
9
  import { generateManifestModules } from './codegen.js';
10
10
  import { serverPluginsByType } from './plugins.js';
11
11
  import { formatCheckFinding } from './check.js';
12
+ import { typesForFileName } from '../core/index.js';
13
+ import { classifyRawDirectory } from './raw-reconciliation.js';
14
+ import { rawSafetyIssues } from './raw-safety.js';
12
15
  export async function runBuild(projectRoot, registry = serverPluginsByType) {
13
16
  const config = await loadConfig(projectRoot);
14
17
  const store = new LibraryStore(config, registry);
15
18
  const library = await store.read();
16
- await store.syncFolders(library);
17
- const issues = await store.validate(library);
19
+ const descriptors = Object.values(registry).map((plugin) => plugin.descriptor);
20
+ const compatibleTypes = (path) => typesForFileName(path, descriptors);
21
+ const classification = await classifyRawDirectory(config.rawDir, library, (path) => compatibleTypes(path).length > 0);
22
+ const issues = [
23
+ ...(await store.validate(library)),
24
+ ...rawSafetyIssues(library, classification, compatibleTypes)
25
+ ];
18
26
  if (issues.length > 0) {
19
27
  const lines = issues.map((issue) => ` - ${formatCheckFinding({ kind: 'validation', assetId: issue.assetId, message: issue.message })}`);
20
28
  throw new Error(`Library validation failed:\n${lines.join('\n')}`);
21
29
  }
30
+ await store.syncFolders(library);
22
31
  const processing = await processAssets(config, library, registry);
23
32
  const codegen = await generateManifestModules(config, library, processing.proxies, registry);
24
33
  return { processing, codegen };