fundus 0.0.3 → 0.1.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 (205) hide show
  1. package/README.md +28 -3
  2. package/build/client/_app/immutable/assets/{2.wavcNhPC.css → 2.ohi-TClG.css} +1 -1
  3. package/build/client/_app/immutable/assets/2.ohi-TClG.css.br +0 -0
  4. package/build/client/_app/immutable/assets/2.ohi-TClG.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/3.C-toFWI4.css +1 -0
  6. package/build/client/_app/immutable/assets/3.C-toFWI4.css.br +0 -0
  7. package/build/client/_app/immutable/assets/3.C-toFWI4.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/LibraryContextMenu.CMefGNE2.css +1 -0
  9. package/build/client/_app/immutable/assets/LibraryContextMenu.CMefGNE2.css.br +0 -0
  10. package/build/client/_app/immutable/assets/LibraryContextMenu.CMefGNE2.css.gz +0 -0
  11. package/build/client/_app/immutable/chunks/BA62n9FX.js +108 -0
  12. package/build/client/_app/immutable/chunks/BA62n9FX.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/BA62n9FX.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/{BiIto6ft.js → CQsKwm8E.js} +1 -1
  15. package/build/client/_app/immutable/chunks/CQsKwm8E.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/CQsKwm8E.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/{DQ8SXFaX.js → D9-155C9.js} +1 -1
  18. package/build/client/_app/immutable/chunks/D9-155C9.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/D9-155C9.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/{CvY6YsFE.js → DVEDrSOn.js} +1 -1
  21. package/build/client/_app/immutable/chunks/DVEDrSOn.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/DVEDrSOn.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/cznBUb-E.js +1 -0
  24. package/build/client/_app/immutable/chunks/cznBUb-E.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/cznBUb-E.js.gz +0 -0
  26. package/build/client/_app/immutable/entry/{app.ubN0v9bN.js → app.DwQWZs1F.js} +2 -2
  27. package/build/client/_app/immutable/entry/app.DwQWZs1F.js.br +0 -0
  28. package/build/client/_app/immutable/entry/app.DwQWZs1F.js.gz +0 -0
  29. package/build/client/_app/immutable/entry/start.DEpAL_8Q.js +1 -0
  30. package/build/client/_app/immutable/entry/start.DEpAL_8Q.js.br +0 -0
  31. package/build/client/_app/immutable/entry/start.DEpAL_8Q.js.gz +0 -0
  32. package/build/client/_app/immutable/nodes/{0.Dr5ijCIl.js → 0.Sr1WDgiY.js} +1 -1
  33. package/build/client/_app/immutable/nodes/0.Sr1WDgiY.js.br +0 -0
  34. package/build/client/_app/immutable/nodes/0.Sr1WDgiY.js.gz +0 -0
  35. package/build/client/_app/immutable/nodes/{1.DiIGIRAb.js → 1.BwHqv728.js} +1 -1
  36. package/build/client/_app/immutable/nodes/1.BwHqv728.js.br +2 -0
  37. package/build/client/_app/immutable/nodes/1.BwHqv728.js.gz +0 -0
  38. package/build/client/_app/immutable/nodes/2.DidxYIU-.js +3 -0
  39. package/build/client/_app/immutable/nodes/2.DidxYIU-.js.br +0 -0
  40. package/build/client/_app/immutable/nodes/2.DidxYIU-.js.gz +0 -0
  41. package/build/client/_app/immutable/nodes/3.C1AavoTf.js +1 -0
  42. package/build/client/_app/immutable/nodes/3.C1AavoTf.js.br +0 -0
  43. package/build/client/_app/immutable/nodes/3.C1AavoTf.js.gz +0 -0
  44. package/build/client/_app/immutable/nodes/4.D8UoOONM.js +2 -0
  45. package/build/client/_app/immutable/nodes/4.D8UoOONM.js.br +0 -0
  46. package/build/client/_app/immutable/nodes/4.D8UoOONM.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-Bw4WWLhG.js → context.js-CGD-b_vR.js} +24 -34
  53. package/build/server/chunks/chunks/context.js-CGD-b_vR.js.map +1 -0
  54. package/build/server/chunks/chunks/{core.js-DDntpb72.js → core.js-xfrkaQpS.js} +97 -48
  55. package/build/server/chunks/chunks/core.js-xfrkaQpS.js.map +1 -0
  56. package/build/server/chunks/chunks/{exports.js-CLTzaOxn.js → exports.js-B4E0NJIt.js} +2 -2
  57. package/build/server/chunks/chunks/{exports.js-CLTzaOxn.js.map → exports.js-B4E0NJIt.js.map} +1 -1
  58. package/build/server/chunks/chunks/{http.js-Dxoa-jtP.js → http.js-Bu-Ao0Vk.js} +2 -2
  59. package/build/server/chunks/chunks/{http.js-Dxoa-jtP.js.map → http.js-Bu-Ao0Vk.js.map} +1 -1
  60. package/build/server/chunks/chunks/{internal.js-BDBSzJId.js → internal.js-ClSxY3uX.js} +3 -3
  61. package/build/server/chunks/chunks/{internal.js-BDBSzJId.js.map → internal.js-ClSxY3uX.js.map} +1 -1
  62. package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js.map +1 -1
  63. package/build/server/chunks/chunks/{library-store.js-BP8cL-qD.js → library-store.js-CZCDpai0.js} +187 -65
  64. package/build/server/chunks/chunks/library-store.js-CZCDpai0.js.map +1 -0
  65. package/build/server/chunks/chunks/{shared.js-BWXgl1Xf.js → shared.js-CHQOW_GN.js} +2 -2
  66. package/build/server/chunks/chunks/{shared.js-BWXgl1Xf.js.map → shared.js-CHQOW_GN.js.map} +1 -1
  67. package/build/server/chunks/chunks/{utils.js-9oI5Oz0w.js → utils.js-B9L6I-_K.js} +3 -3
  68. package/build/server/chunks/chunks/{utils.js-9oI5Oz0w.js.map → utils.js-B9L6I-_K.js.map} +1 -1
  69. package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-WknZVW_S.js → _server.ts.js-PO5RpNzP.js} +5 -5
  70. package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-WknZVW_S.js.map → _server.ts.js-PO5RpNzP.js.map} +1 -1
  71. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-BrZ__-HZ.js → _server.ts.js-BmgqGEXs.js} +6 -6
  72. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-BrZ__-HZ.js.map → _server.ts.js-BmgqGEXs.js.map} +1 -1
  73. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/_server.ts.js-DnTOlfHs.js +35 -0
  74. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/_server.ts.js-DnTOlfHs.js.map +1 -0
  75. package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-PqADGPXc.js → _server.ts.js-DzdC6OJE.js} +6 -6
  76. package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-PqADGPXc.js.map → _server.ts.js-DzdC6OJE.js.map} +1 -1
  77. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-OqoE5PN-.js → _server.ts.js-DXJNoYAs.js} +6 -6
  78. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-OqoE5PN-.js.map → _server.ts.js-DXJNoYAs.js.map} +1 -1
  79. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-CJ08e1ho.js → _server.ts.js-CqdKXoZL.js} +6 -6
  80. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-CJ08e1ho.js.map → _server.ts.js-CqdKXoZL.js.map} +1 -1
  81. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-DdF3eK2I.js → _server.ts.js-DIuY66jG.js} +6 -6
  82. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-DdF3eK2I.js.map → _server.ts.js-DIuY66jG.js.map} +1 -1
  83. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-Cxt6jsJ5.js → _server.ts.js-D9p-cdJQ.js} +6 -6
  84. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-Cxt6jsJ5.js.map → _server.ts.js-D9p-cdJQ.js.map} +1 -1
  85. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-BWVM2Ntl.js → _server.ts.js-DP1x-xAW.js} +6 -6
  86. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-BWVM2Ntl.js.map → _server.ts.js-DP1x-xAW.js.map} +1 -1
  87. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-Z2bM-qHM.js → _server.ts.js-r1eNMvPd.js} +6 -6
  88. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-Z2bM-qHM.js.map → _server.ts.js-r1eNMvPd.js.map} +1 -1
  89. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-BX9H2Z34.js → _server.ts.js-D-m3BwRj.js} +6 -6
  90. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-BX9H2Z34.js.map → _server.ts.js-D-m3BwRj.js.map} +1 -1
  91. package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-BWHDZ8mz.js → _server.ts.js-3nyAQ3f0.js} +5 -5
  92. package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-BWHDZ8mz.js.map → _server.ts.js-3nyAQ3f0.js.map} +1 -1
  93. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-CR_7mndO.js → _server.ts.js-Ba285FiJ.js} +6 -6
  94. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-CR_7mndO.js.map → _server.ts.js-Ba285FiJ.js.map} +1 -1
  95. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-Cw1PDBvb.js → _server.ts.js-X354l2NP.js} +6 -6
  96. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-Cw1PDBvb.js.map → _server.ts.js-X354l2NP.js.map} +1 -1
  97. package/build/server/chunks/entries/{hooks.server.js-BHoE0yBi.js → hooks.server.js-eZ7H27L4.js} +5 -5
  98. package/build/server/chunks/entries/{hooks.server.js-BHoE0yBi.js.map → hooks.server.js-eZ7H27L4.js.map} +1 -1
  99. package/build/server/chunks/{handler-10cx4zHn.js → handler-Dcc_-rVh.js} +5 -5
  100. package/build/server/chunks/{handler-10cx4zHn.js.map → handler-Dcc_-rVh.js.map} +1 -1
  101. package/build/server/chunks/{index.js-DvPfiC00.js → index.js-DoVHd4mf.js} +5 -5
  102. package/build/server/chunks/{index.js-DvPfiC00.js.map → index.js-DoVHd4mf.js.map} +1 -1
  103. package/build/server/chunks/{manifest.js-DoPjUnzD.js → manifest.js-C_MsDhaa.js} +27 -20
  104. package/build/server/chunks/manifest.js-C_MsDhaa.js.map +1 -0
  105. package/build/server/chunks/nodes/0.js-BP6hHAK9.js +11 -0
  106. package/build/server/chunks/nodes/{0.js-Di3qgAtW.js.map → 0.js-BP6hHAK9.js.map} +1 -1
  107. package/build/server/chunks/nodes/1.js-DKlcrAQP.js +7 -0
  108. package/build/server/chunks/nodes/{1.js-BlWSFIA8.js.map → 1.js-DKlcrAQP.js.map} +1 -1
  109. package/build/server/chunks/nodes/2.js-B-8TTZH_.js +7 -0
  110. package/build/server/chunks/nodes/2.js-B-8TTZH_.js.map +1 -0
  111. package/build/server/chunks/nodes/3.js-Cf7H6K5p.js +7 -0
  112. package/build/server/chunks/nodes/3.js-Cf7H6K5p.js.map +1 -0
  113. package/build/server/chunks/nodes/4.js-JQQZnHWZ.js +7 -0
  114. package/build/server/chunks/nodes/4.js-JQQZnHWZ.js.map +1 -0
  115. package/dist/cli.js +34 -8
  116. package/dist/core/api-types.d.ts +1 -1
  117. package/dist/core/index.d.ts +1 -1
  118. package/dist/core/index.js +1 -1
  119. package/dist/core/ingest.d.ts +9 -1
  120. package/dist/core/ingest.js +10 -19
  121. package/dist/core/plugins/registry.d.ts +16 -0
  122. package/dist/core/plugins/registry.js +52 -0
  123. package/dist/runtime/kind-handlers.d.ts +0 -6
  124. package/dist/runtime/kind-handlers.js +16 -7
  125. package/dist/server/cli-commands.d.ts +2 -1
  126. package/dist/server/cli-commands.js +42 -1
  127. package/dist/server/cli-init.d.ts +1 -1
  128. package/dist/server/cli-init.js +23 -5
  129. package/dist/server/config-loader.d.ts +3 -2
  130. package/dist/server/config-loader.js +24 -48
  131. package/dist/server/index.d.ts +2 -1
  132. package/dist/server/library-store.d.ts +11 -0
  133. package/dist/server/library-store.js +57 -0
  134. package/dist/server/operations.d.ts +3 -1
  135. package/dist/server/operations.js +5 -1
  136. package/dist/server/plugins/audio.d.ts +2 -1
  137. package/dist/server/plugins/audio.js +15 -1
  138. package/dist/server/plugins/chroma-key-video.js +2 -0
  139. package/dist/server/plugins/config.d.ts +13 -0
  140. package/dist/server/plugins/config.js +32 -0
  141. package/dist/server/plugins/contract.d.ts +17 -3
  142. package/dist/server/plugins/image.d.ts +2 -1
  143. package/dist/server/plugins/image.js +14 -1
  144. package/dist/server/plugins/slice.d.ts +2 -1
  145. package/dist/server/plugins/slice.js +14 -1
  146. package/dist/server/plugins/video.d.ts +2 -1
  147. package/dist/server/plugins/video.js +26 -1
  148. package/dist/server/plugins.d.ts +6 -6
  149. package/dist/server/plugins.js +3 -1
  150. package/dist/server/start.d.ts +15 -1
  151. package/dist/server/start.js +84 -5
  152. package/package.json +3 -1
  153. package/build/client/_app/immutable/assets/2.wavcNhPC.css.br +0 -0
  154. package/build/client/_app/immutable/assets/2.wavcNhPC.css.gz +0 -0
  155. package/build/client/_app/immutable/assets/3.Cjh_fXPY.css +0 -1
  156. package/build/client/_app/immutable/assets/3.Cjh_fXPY.css.br +0 -0
  157. package/build/client/_app/immutable/assets/3.Cjh_fXPY.css.gz +0 -0
  158. package/build/client/_app/immutable/assets/LibraryContextMenu.zyZtpKzC.css +0 -1
  159. package/build/client/_app/immutable/assets/LibraryContextMenu.zyZtpKzC.css.br +0 -0
  160. package/build/client/_app/immutable/assets/LibraryContextMenu.zyZtpKzC.css.gz +0 -0
  161. package/build/client/_app/immutable/chunks/BiIto6ft.js.br +0 -0
  162. package/build/client/_app/immutable/chunks/BiIto6ft.js.gz +0 -0
  163. package/build/client/_app/immutable/chunks/CO4RBJfa.js +0 -1
  164. package/build/client/_app/immutable/chunks/CO4RBJfa.js.br +0 -0
  165. package/build/client/_app/immutable/chunks/CO4RBJfa.js.gz +0 -0
  166. package/build/client/_app/immutable/chunks/CvY6YsFE.js.br +0 -0
  167. package/build/client/_app/immutable/chunks/CvY6YsFE.js.gz +0 -0
  168. package/build/client/_app/immutable/chunks/DL0_39Ys.js +0 -5
  169. package/build/client/_app/immutable/chunks/DL0_39Ys.js.br +0 -0
  170. package/build/client/_app/immutable/chunks/DL0_39Ys.js.gz +0 -0
  171. package/build/client/_app/immutable/chunks/DQ8SXFaX.js.br +0 -0
  172. package/build/client/_app/immutable/chunks/DQ8SXFaX.js.gz +0 -0
  173. package/build/client/_app/immutable/chunks/DjdrdRzT.js +0 -1
  174. package/build/client/_app/immutable/chunks/DjdrdRzT.js.br +0 -0
  175. package/build/client/_app/immutable/chunks/DjdrdRzT.js.gz +0 -0
  176. package/build/client/_app/immutable/entry/app.ubN0v9bN.js.br +0 -0
  177. package/build/client/_app/immutable/entry/app.ubN0v9bN.js.gz +0 -0
  178. package/build/client/_app/immutable/entry/start.BW8dBDh6.js +0 -1
  179. package/build/client/_app/immutable/entry/start.BW8dBDh6.js.br +0 -0
  180. package/build/client/_app/immutable/entry/start.BW8dBDh6.js.gz +0 -0
  181. package/build/client/_app/immutable/nodes/0.Dr5ijCIl.js.br +0 -0
  182. package/build/client/_app/immutable/nodes/0.Dr5ijCIl.js.gz +0 -0
  183. package/build/client/_app/immutable/nodes/1.DiIGIRAb.js.br +0 -3
  184. package/build/client/_app/immutable/nodes/1.DiIGIRAb.js.gz +0 -0
  185. package/build/client/_app/immutable/nodes/2.B8KYmQcV.js +0 -3
  186. package/build/client/_app/immutable/nodes/2.B8KYmQcV.js.br +0 -0
  187. package/build/client/_app/immutable/nodes/2.B8KYmQcV.js.gz +0 -0
  188. package/build/client/_app/immutable/nodes/3.B1jc7arT.js +0 -104
  189. package/build/client/_app/immutable/nodes/3.B1jc7arT.js.br +0 -0
  190. package/build/client/_app/immutable/nodes/3.B1jc7arT.js.gz +0 -0
  191. package/build/client/_app/immutable/nodes/4.BPK9n1mH.js +0 -2
  192. package/build/client/_app/immutable/nodes/4.BPK9n1mH.js.br +0 -0
  193. package/build/client/_app/immutable/nodes/4.BPK9n1mH.js.gz +0 -0
  194. package/build/server/chunks/chunks/context.js-Bw4WWLhG.js.map +0 -1
  195. package/build/server/chunks/chunks/core.js-DDntpb72.js.map +0 -1
  196. package/build/server/chunks/chunks/library-store.js-BP8cL-qD.js.map +0 -1
  197. package/build/server/chunks/manifest.js-DoPjUnzD.js.map +0 -1
  198. package/build/server/chunks/nodes/0.js-Di3qgAtW.js +0 -11
  199. package/build/server/chunks/nodes/1.js-BlWSFIA8.js +0 -7
  200. package/build/server/chunks/nodes/2.js-CO9nSPUN.js +0 -7
  201. package/build/server/chunks/nodes/2.js-CO9nSPUN.js.map +0 -1
  202. package/build/server/chunks/nodes/3.js-C2D6xpEO.js +0 -7
  203. package/build/server/chunks/nodes/3.js-C2D6xpEO.js.map +0 -1
  204. package/build/server/chunks/nodes/4.js-B3IuagJW.js +0 -7
  205. package/build/server/chunks/nodes/4.js-B3IuagJW.js.map +0 -1
@@ -10,13 +10,13 @@ return {
10
10
  assets: new Set([]),
11
11
  mimeTypes: {},
12
12
  _: {
13
- client: {start:"_app/immutable/entry/start.BW8dBDh6.js",app:"_app/immutable/entry/app.ubN0v9bN.js",imports:["_app/immutable/entry/start.BW8dBDh6.js","_app/immutable/chunks/CvY6YsFE.js","_app/immutable/chunks/CNRz3sSw.js","_app/immutable/entry/app.ubN0v9bN.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.DEpAL_8Q.js",app:"_app/immutable/entry/app.DwQWZs1F.js",imports:["_app/immutable/entry/start.DEpAL_8Q.js","_app/immutable/chunks/DVEDrSOn.js","_app/immutable/chunks/CNRz3sSw.js","_app/immutable/entry/app.DwQWZs1F.js","_app/immutable/chunks/CNRz3sSw.js","_app/immutable/chunks/xihTtKlq.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
14
14
  nodes: [
15
- __memo(() => import('./nodes/0.js-Di3qgAtW.js')),
16
- __memo(() => import('./nodes/1.js-BlWSFIA8.js')),
17
- __memo(() => import('./nodes/2.js-CO9nSPUN.js')),
18
- __memo(() => import('./nodes/3.js-C2D6xpEO.js')),
19
- __memo(() => import('./nodes/4.js-B3IuagJW.js'))
15
+ __memo(() => import('./nodes/0.js-BP6hHAK9.js')),
16
+ __memo(() => import('./nodes/1.js-DKlcrAQP.js')),
17
+ __memo(() => import('./nodes/2.js-B-8TTZH_.js')),
18
+ __memo(() => import('./nodes/3.js-Cf7H6K5p.js')),
19
+ __memo(() => import('./nodes/4.js-JQQZnHWZ.js'))
20
20
  ],
21
21
  remotes: {
22
22
 
@@ -34,70 +34,77 @@ return {
34
34
  pattern: /^\/api\/assets\/?$/,
35
35
  params: [],
36
36
  page: null,
37
- endpoint: __memo(() => import('./entries/endpoints/api/assets/_server.ts.js-PqADGPXc.js'))
37
+ endpoint: __memo(() => import('./entries/endpoints/api/assets/_server.ts.js-DzdC6OJE.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-OqoE5PN-.js'))
44
+ endpoint: __memo(() => import('./entries/endpoints/api/assets/delete/_server.ts.js-DXJNoYAs.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-CJ08e1ho.js'))
51
+ endpoint: __memo(() => import('./entries/endpoints/api/assets/move/_server.ts.js-CqdKXoZL.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-BrZ__-HZ.js'))
58
+ endpoint: __memo(() => import('./entries/endpoints/api/assets/_id_/_server.ts.js-BmgqGEXs.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-DnTOlfHs.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-Cxt6jsJ5.js'))
72
+ endpoint: __memo(() => import('./entries/endpoints/api/folders/_server.ts.js-D9p-cdJQ.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-DdF3eK2I.js'))
79
+ endpoint: __memo(() => import('./entries/endpoints/api/folders/_path_/_server.ts.js-DIuY66jG.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-Z2bM-qHM.js'))
86
+ endpoint: __memo(() => import('./entries/endpoints/api/manifests/_server.ts.js-r1eNMvPd.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-BWVM2Ntl.js'))
93
+ endpoint: __memo(() => import('./entries/endpoints/api/manifests/_name_/_server.ts.js-DP1x-xAW.js'))
87
94
  },
88
95
  {
89
96
  id: "/api/state",
90
97
  pattern: /^\/api\/state\/?$/,
91
98
  params: [],
92
99
  page: null,
93
- endpoint: __memo(() => import('./entries/endpoints/api/state/_server.ts.js-BX9H2Z34.js'))
100
+ endpoint: __memo(() => import('./entries/endpoints/api/state/_server.ts.js-D-m3BwRj.js'))
94
101
  },
95
102
  {
96
103
  id: "/api/[...path]",
97
104
  pattern: /^\/api(?:\/([^]*))?\/?$/,
98
105
  params: [{"name":"path","optional":false,"rest":true,"chained":true}],
99
106
  page: null,
100
- endpoint: __memo(() => import('./entries/endpoints/api/_...path_/_server.ts.js-WknZVW_S.js'))
107
+ endpoint: __memo(() => import('./entries/endpoints/api/_...path_/_server.ts.js-PO5RpNzP.js'))
101
108
  },
102
109
  {
103
110
  id: "/asset/[id]",
@@ -111,21 +118,21 @@ return {
111
118
  pattern: /^\/files\/proxy(?:\/([^]*))?\/?$/,
112
119
  params: [{"name":"path","optional":false,"rest":true,"chained":true}],
113
120
  page: null,
114
- endpoint: __memo(() => import('./entries/endpoints/files/proxy/_...path_/_server.ts.js-CR_7mndO.js'))
121
+ endpoint: __memo(() => import('./entries/endpoints/files/proxy/_...path_/_server.ts.js-Ba285FiJ.js'))
115
122
  },
116
123
  {
117
124
  id: "/files/raw/[...path]",
118
125
  pattern: /^\/files\/raw(?:\/([^]*))?\/?$/,
119
126
  params: [{"name":"path","optional":false,"rest":true,"chained":true}],
120
127
  page: null,
121
- endpoint: __memo(() => import('./entries/endpoints/files/raw/_...path_/_server.ts.js-Cw1PDBvb.js'))
128
+ endpoint: __memo(() => import('./entries/endpoints/files/raw/_...path_/_server.ts.js-X354l2NP.js'))
122
129
  },
123
130
  {
124
131
  id: "/files/[...path]",
125
132
  pattern: /^\/files(?:\/([^]*))?\/?$/,
126
133
  params: [{"name":"path","optional":false,"rest":true,"chained":true}],
127
134
  page: null,
128
- endpoint: __memo(() => import('./entries/endpoints/files/_...path_/_server.ts.js-BWHDZ8mz.js'))
135
+ endpoint: __memo(() => import('./entries/endpoints/files/_...path_/_server.ts.js-3nyAQ3f0.js'))
129
136
  },
130
137
  {
131
138
  id: "/manifests",
@@ -146,4 +153,4 @@ return {
146
153
  })();
147
154
 
148
155
  export { manifest as m };
149
- //# sourceMappingURL=manifest.js-DoPjUnzD.js.map
156
+ //# sourceMappingURL=manifest.js-C_MsDhaa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js-C_MsDhaa.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([]),\n\tmimeTypes: {},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.DEpAL_8Q.js\",app:\"_app/immutable/entry/app.DwQWZs1F.js\",imports:[\"_app/immutable/entry/start.DEpAL_8Q.js\",\"_app/immutable/chunks/DVEDrSOn.js\",\"_app/immutable/chunks/CNRz3sSw.js\",\"_app/immutable/entry/app.DwQWZs1F.js\",\"_app/immutable/chunks/CNRz3sSw.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/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.Sr1WDgiY.js","_app/immutable/chunks/CNRz3sSw.js","_app/immutable/chunks/DVEDrSOn.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/D9-155C9.js","_app/immutable/chunks/cznBUb-E.js"];
7
+ const stylesheets = ["_app/immutable/assets/0.DLhIsYA_.css"];
8
+ const fonts = [];
9
+
10
+ export { fonts, imports, index, stylesheets, universal, universal_id };
11
+ //# sourceMappingURL=0.js-BP6hHAK9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"0.js-Di3qgAtW.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.Dr5ijCIl.js\",\"_app/immutable/chunks/CNRz3sSw.js\",\"_app/immutable/chunks/CvY6YsFE.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/DQ8SXFaX.js\",\"_app/immutable/chunks/CO4RBJfa.js\"];\nexport const stylesheets = [\"_app/immutable/assets/0.DLhIsYA_.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;AACpO,MAAC,WAAW,GAAG,CAAC,sCAAsC;AACtD,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"0.js-BP6hHAK9.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.Sr1WDgiY.js\",\"_app/immutable/chunks/CNRz3sSw.js\",\"_app/immutable/chunks/DVEDrSOn.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/D9-155C9.js\",\"_app/immutable/chunks/cznBUb-E.js\"];\nexport const stylesheets = [\"_app/immutable/assets/0.DLhIsYA_.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;AACpO,MAAC,WAAW,GAAG,CAAC,sCAAsC;AACtD,MAAC,KAAK,GAAG;;;;"}
@@ -0,0 +1,7 @@
1
+ const index = 1;
2
+ const imports = ["_app/immutable/nodes/1.BwHqv728.js","_app/immutable/chunks/CNRz3sSw.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/D9-155C9.js","_app/immutable/chunks/DVEDrSOn.js"];
3
+ const stylesheets = [];
4
+ const fonts = [];
5
+
6
+ export { fonts, imports, index, stylesheets };
7
+ //# sourceMappingURL=1.js-DKlcrAQP.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"1.js-BlWSFIA8.js","sources":["../../../../.svelte-kit/output/server/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nexport const imports = [\"_app/immutable/nodes/1.DiIGIRAb.js\",\"_app/immutable/chunks/CNRz3sSw.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/DQ8SXFaX.js\",\"_app/immutable/chunks/CvY6YsFE.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-DKlcrAQP.js","sources":["../../../../.svelte-kit/output/server/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nexport const imports = [\"_app/immutable/nodes/1.BwHqv728.js\",\"_app/immutable/chunks/CNRz3sSw.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/D9-155C9.js\",\"_app/immutable/chunks/DVEDrSOn.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.DidxYIU-.js","_app/immutable/chunks/CNRz3sSw.js","_app/immutable/chunks/DVEDrSOn.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/cznBUb-E.js","_app/immutable/chunks/BA62n9FX.js","_app/immutable/chunks/CQsKwm8E.js"];
3
+ const stylesheets = ["_app/immutable/assets/ConfirmDialog.BdKlitwi.css","_app/immutable/assets/LibraryContextMenu.CMefGNE2.css","_app/immutable/assets/2.ohi-TClG.css"];
4
+ const fonts = [];
5
+
6
+ export { fonts, imports, index, stylesheets };
7
+ //# sourceMappingURL=2.js-B-8TTZH_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2.js-B-8TTZH_.js","sources":["../../../../.svelte-kit/output/server/nodes/2.js"],"sourcesContent":["\n\nexport const index = 2;\nexport const imports = [\"_app/immutable/nodes/2.DidxYIU-.js\",\"_app/immutable/chunks/CNRz3sSw.js\",\"_app/immutable/chunks/DVEDrSOn.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/cznBUb-E.js\",\"_app/immutable/chunks/BA62n9FX.js\",\"_app/immutable/chunks/CQsKwm8E.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ConfirmDialog.BdKlitwi.css\",\"_app/immutable/assets/LibraryContextMenu.CMefGNE2.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;AACxQ,MAAC,WAAW,GAAG,CAAC,kDAAkD,CAAC,uDAAuD,CAAC,sCAAsC;AACjK,MAAC,KAAK,GAAG;;;;"}
@@ -0,0 +1,7 @@
1
+ const index = 3;
2
+ const imports = ["_app/immutable/nodes/3.C1AavoTf.js","_app/immutable/chunks/CNRz3sSw.js","_app/immutable/chunks/DVEDrSOn.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/D9-155C9.js","_app/immutable/chunks/cznBUb-E.js","_app/immutable/chunks/BA62n9FX.js","_app/immutable/chunks/CQsKwm8E.js"];
3
+ const stylesheets = ["_app/immutable/assets/ConfirmDialog.BdKlitwi.css","_app/immutable/assets/LibraryContextMenu.CMefGNE2.css","_app/immutable/assets/3.C-toFWI4.css"];
4
+ const fonts = [];
5
+
6
+ export { fonts, imports, index, stylesheets };
7
+ //# sourceMappingURL=3.js-Cf7H6K5p.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3.js-Cf7H6K5p.js","sources":["../../../../.svelte-kit/output/server/nodes/3.js"],"sourcesContent":["\n\nexport const index = 3;\nexport const imports = [\"_app/immutable/nodes/3.C1AavoTf.js\",\"_app/immutable/chunks/CNRz3sSw.js\",\"_app/immutable/chunks/DVEDrSOn.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/D9-155C9.js\",\"_app/immutable/chunks/cznBUb-E.js\",\"_app/immutable/chunks/BA62n9FX.js\",\"_app/immutable/chunks/CQsKwm8E.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ConfirmDialog.BdKlitwi.css\",\"_app/immutable/assets/LibraryContextMenu.CMefGNE2.css\",\"_app/immutable/assets/3.C-toFWI4.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,kDAAkD,CAAC,uDAAuD,CAAC,sCAAsC;AACjK,MAAC,KAAK,GAAG;;;;"}
@@ -0,0 +1,7 @@
1
+ const index = 4;
2
+ const imports = ["_app/immutable/nodes/4.D8UoOONM.js","_app/immutable/chunks/CNRz3sSw.js","_app/immutable/chunks/DVEDrSOn.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/cznBUb-E.js","_app/immutable/chunks/CQsKwm8E.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-JQQZnHWZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"4.js-JQQZnHWZ.js","sources":["../../../../.svelte-kit/output/server/nodes/4.js"],"sourcesContent":["\n\nexport const index = 4;\nexport const imports = [\"_app/immutable/nodes/4.D8UoOONM.js\",\"_app/immutable/chunks/CNRz3sSw.js\",\"_app/immutable/chunks/DVEDrSOn.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/cznBUb-E.js\",\"_app/immutable/chunks/CQsKwm8E.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 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,23 +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
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. 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.
139
144
 
140
145
  Every edit autosaves: write library → process affected assets →
141
146
  regenerate manifest modules — the same chain the CLI mutations run.
142
147
 
143
148
  Flags:
144
- --help this help
149
+ --port port to listen on (default: 7583; use 0 to choose a free port)
150
+ --no-open do not open the editor in a browser
151
+ --help this help
145
152
 
146
153
  Example:
147
- cd my-host-app && npx fundus start
154
+ cd my-host-app && npx fundus start --port 8080
148
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
+ }
149
168
  const command = process.argv[2];
150
169
  const commandArguments = process.argv.slice(3);
151
170
  if (command === 'init') {
@@ -159,14 +178,21 @@ else if (command === 'check') {
159
178
  }
160
179
  else if (command === 'start') {
161
180
  await runCommandGroup(async () => {
162
- const parsed = parseArguments(commandArguments, { help: { 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');
163
186
  requirePositionals(parsed, [], 'fundus start');
164
187
  if (parsed.flags.help) {
165
188
  console.log(START_HELP);
166
189
  return;
167
190
  }
168
191
  const { runStart } = await import('./server/start.js');
169
- await runStart(process.cwd());
192
+ await runStart(process.cwd(), {
193
+ openBrowser: parsed.flags['no-open'] !== true,
194
+ port: parsePort(parsed.flags.port)
195
+ });
170
196
  });
171
197
  }
172
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;
@@ -4,7 +4,7 @@ export { ROOT_FOLDER, FOLDER_SENTINEL, folderNameError, folderPathError, normali
4
4
  export { RESERVED_ASSET_IDS, isValidAssetId, assetIdError, manifestNameError } from './asset-id.js';
5
5
  export type { ManifestColor } from './manifest-appearance.js';
6
6
  export { MANIFEST_COLORS, MANIFEST_EMOJIS, isManifestColor, isManifestEmoji, resolveManifestColor, manifestColorError, manifestEmojiError } from './manifest-appearance.js';
7
- export { acceptedExtensions, typesForFileName, proposeAssetId } from './ingest.js';
7
+ export { acceptedExtensions, acceptedExtensionsForType, typesForFileName, proposeAssetId } from './ingest.js';
8
8
  export { canonicalizeParameters, compareCodeUnits } from './canonicalize.js';
9
9
  export type { FundusConfig } from './config.js';
10
10
  export { defineConfig } from './config.js';
@@ -2,7 +2,7 @@ export { createEmptyLibrary, parseLibrary, serializeLibrary } from './library.js
2
2
  export { ROOT_FOLDER, FOLDER_SENTINEL, folderNameError, folderPathError, normalizeFolderPath, portableFolderPathKey, parentFolderPath, folderNameOf, joinFolderPath, folderOfRawPath, rawFileNameOfPath, isFolderOrDescendant, replaceFolderPrefix } from './folder-path.js';
3
3
  export { RESERVED_ASSET_IDS, isValidAssetId, assetIdError, manifestNameError } from './asset-id.js';
4
4
  export { MANIFEST_COLORS, MANIFEST_EMOJIS, isManifestColor, isManifestEmoji, resolveManifestColor, manifestColorError, manifestEmojiError } from './manifest-appearance.js';
5
- export { acceptedExtensions, typesForFileName, proposeAssetId } from './ingest.js';
5
+ export { acceptedExtensions, acceptedExtensionsForType, typesForFileName, proposeAssetId } from './ingest.js';
6
6
  export { canonicalizeParameters, compareCodeUnits } from './canonicalize.js';
7
7
  export { defineConfig } from './config.js';
8
8
  export { createZeroInsets, defaultInsetsForSize, slicedAxesFor, maxInset, maxOverdraw } from './slice-data.js';
@@ -1,8 +1,16 @@
1
+ /**
2
+ * Ingestion helpers shared by every ingest surface: the editor's
3
+ * drag & drop dialog and the CLI's `asset ingest` command both resolve a
4
+ * dropped file name to its candidate asset types and propose an asset id the
5
+ * same way — one implementation, in core.
6
+ */
1
7
  import type { AssetTypePluginDescriptor } from './plugins/contract.js';
2
- /** The built-in descriptors, in registration order (image before slice, video before chroma-key-video). */
8
+ /** The registered descriptors, in registration order. */
3
9
  export declare const BUILT_IN_DESCRIPTORS: AssetTypePluginDescriptor<unknown, unknown>[];
4
10
  /** Unique HTML file-picker accept extensions derived from descriptor claims. */
5
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[];
6
14
  /**
7
15
  * Types an ingested file of this extension could become — derived from the
8
16
  * descriptors' `accepts` claims. Raster images and video containers are
@@ -1,28 +1,19 @@
1
- /**
2
- * Ingestion helpers shared by every ingest surface: the editor's
3
- * drag & drop dialog and the CLI's `asset ingest` command both resolve a
4
- * dropped file name to its candidate asset types and propose an asset id the
5
- * same way — one implementation, in core.
6
- */
7
- import { audioPlugin } from './plugins/audio.js';
8
- import { chromaKeyVideoPlugin } from './plugins/chroma-key-video.js';
9
- import { imagePlugin } from './plugins/image.js';
10
- import { slicePlugin } from './plugins/slice.js';
11
- import { videoPlugin } from './plugins/video.js';
12
- /** The built-in descriptors, in registration order (image before slice, video before chroma-key-video). */
13
- export const BUILT_IN_DESCRIPTORS = [
14
- imagePlugin,
15
- slicePlugin,
16
- videoPlugin,
17
- chromaKeyVideoPlugin,
18
- audioPlugin
19
- ];
1
+ import { plugins } from './plugins/registry.js';
2
+ /** The registered descriptors, in registration order. */
3
+ export const BUILT_IN_DESCRIPTORS = plugins.values();
20
4
  /** Unique HTML file-picker accept extensions derived from descriptor claims. */
21
5
  export function acceptedExtensions(descriptors = BUILT_IN_DESCRIPTORS) {
22
6
  return [...new Set(descriptors.flatMap((descriptor) => descriptor.accepts))]
23
7
  .sort()
24
8
  .map((extension) => `.${extension}`);
25
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
+ }
26
17
  /**
27
18
  * Types an ingested file of this extension could become — derived from the
28
19
  * descriptors' `accepts` claims. Raster images and video containers are
@@ -0,0 +1,16 @@
1
+ import type { AssetTypePluginDescriptor } from './contract.js';
2
+ export type RegisteredPlugin = AssetTypePluginDescriptor<unknown, unknown>;
3
+ export declare class PluginRegistry {
4
+ #private;
5
+ register(plugin: RegisteredPlugin): void;
6
+ has(type: string): boolean;
7
+ values(): RegisteredPlugin[];
8
+ types(): string[];
9
+ /**
10
+ * Select the environment-specific implementation for every registered
11
+ * plugin. Unregistered catalogue entries remain dormant; a registered
12
+ * plugin without the requested facet fails immediately during startup.
13
+ */
14
+ project<T>(catalogue: Readonly<Record<string, T>>, facet: string): Record<string, T>;
15
+ }
16
+ export declare const plugins: PluginRegistry;
@@ -0,0 +1,52 @@
1
+ /**
2
+ * The composition root for Fundus asset-type plugins.
3
+ *
4
+ * A plugin is registered exactly once here. Environment-specific surfaces
5
+ * (server processing, editor panels, runtime handlers) keep their imports on
6
+ * the correct side of SvelteKit's browser/server boundary and project this
7
+ * registered set onto their local implementation catalogues.
8
+ */
9
+ import { audioPlugin } from './audio.js';
10
+ import { chromaKeyVideoPlugin } from './chroma-key-video.js';
11
+ import { imagePlugin } from './image.js';
12
+ import { slicePlugin } from './slice.js';
13
+ import { videoPlugin } from './video.js';
14
+ export class PluginRegistry {
15
+ #byType = new Map();
16
+ register(plugin) {
17
+ if (this.#byType.has(plugin.type)) {
18
+ throw new Error(`Plugin type "${plugin.type}" is already registered.`);
19
+ }
20
+ this.#byType.set(plugin.type, plugin);
21
+ }
22
+ has(type) {
23
+ return this.#byType.has(type);
24
+ }
25
+ values() {
26
+ return [...this.#byType.values()];
27
+ }
28
+ types() {
29
+ return [...this.#byType.keys()];
30
+ }
31
+ /**
32
+ * Select the environment-specific implementation for every registered
33
+ * plugin. Unregistered catalogue entries remain dormant; a registered
34
+ * plugin without the requested facet fails immediately during startup.
35
+ */
36
+ project(catalogue, facet) {
37
+ const projected = Object.create(null);
38
+ for (const type of this.#byType.keys()) {
39
+ if (!Object.hasOwn(catalogue, type)) {
40
+ throw new Error(`Registered plugin "${type}" has no ${facet}.`);
41
+ }
42
+ projected[type] = catalogue[type];
43
+ }
44
+ return projected;
45
+ }
46
+ }
47
+ export const plugins = new PluginRegistry();
48
+ plugins.register(imagePlugin);
49
+ plugins.register(slicePlugin);
50
+ plugins.register(videoPlugin);
51
+ plugins.register(chromaKeyVideoPlugin);
52
+ plugins.register(audioPlugin);
@@ -37,12 +37,6 @@ export interface KindRuntimeHandler {
37
37
  */
38
38
  release?(resources: KindHandlerResources): void;
39
39
  }
40
- /**
41
- * Entry kinds whose delivered file is retained as an object URL by
42
- * `preload()` while held. A chroma-key-video's own `src` is a video file, so
43
- * it retains too; its inlined mask/fallback entries are `image` kind and
44
- * follow the image handler via the source walk.
45
- */
46
40
  export declare const RETAINED_KINDS: ReadonlySet<string>;
47
41
  /**
48
42
  * Whether a source of `kind` decodes under the given per-kind preload options
@@ -1,3 +1,4 @@
1
+ import { plugins } from '../core/plugins/registry.js';
1
2
  import { resolveRetainedSource } from './preload-registry.js';
2
3
  /** The playable URL hosts feed to their own audio engine. */
3
4
  export function audioSourceOf(entry) {
@@ -11,7 +12,12 @@ const IMAGE_BACKED_KINDS = new Set(['image', 'slice']);
11
12
  * it retains too; its inlined mask/fallback entries are `image` kind and
12
13
  * follow the image handler via the source walk.
13
14
  */
14
- export const RETAINED_KINDS = new Set(['video', 'chroma-key-video', 'audio']);
15
+ const RETAINED_KIND_CATALOGUE = new Set([
16
+ 'video',
17
+ 'chroma-key-video',
18
+ 'audio'
19
+ ]);
20
+ export const RETAINED_KINDS = new Set([...RETAINED_KIND_CATALOGUE].filter((kind) => plugins.has(kind)));
15
21
  /**
16
22
  * Whether a source of `kind` decodes under the given per-kind preload options
17
23
  * (options are namespaced per plugin type, like `plugins.<type>` in
@@ -83,12 +89,15 @@ const unknownKindHandler = {
83
89
  return {};
84
90
  }
85
91
  };
86
- /** The statically registered first-party handlers. */
87
- const handlerByKind = new Map([
88
- ['image', imageBackedHandler('image')],
89
- ['slice', imageBackedHandler('slice')],
90
- ...[...RETAINED_KINDS].map((kind) => [kind, retainedMediaHandler])
91
- ]);
92
+ const runtimeHandlerCatalogue = {
93
+ image: imageBackedHandler('image'),
94
+ slice: imageBackedHandler('slice'),
95
+ video: retainedMediaHandler,
96
+ 'chroma-key-video': retainedMediaHandler,
97
+ audio: retainedMediaHandler
98
+ };
99
+ /** The runtime facets of the centrally registered plugins. */
100
+ const handlerByKind = new Map(Object.entries(plugins.project(runtimeHandlerCatalogue, 'runtime handler')));
92
101
  /** The runtime handler owning `kind`'s preload/release strategy (fallback for unknown kinds). */
93
102
  export function runtimeHandlerFor(kind) {
94
103
  return handlerByKind.get(kind) ?? unknownKindHandler;
@@ -1,9 +1,10 @@
1
1
  export declare const STATE_HELP = "fundus state \u2014 the full project state in one document\n\nUsage: fundus state [--json]\n\nThe agent's one-stop overview: every asset (type, raw file, parameters,\nexplicit + passive manifest memberships, proxy status, reference edges,\nwarnings), every manifest (members, delivered bytes), library-level\nvalidation issues, and the available preset names per asset type.\n\nFlags:\n --json print {\"ok\": true, \"state\": <FundusStateDto>} on stdout\n --help this help\n\nRead-only: nothing is processed or written.\n\nExample:\n fundus state --json | jq '.state.assets[].id'\n";
2
2
  export declare function runStateCommand(argumentList: string[]): Promise<void>;
3
- export declare const ASSET_HELP = "fundus asset \u2014 inspect and mutate assets\n\nUsage: fundus asset <subcommand> \u2026\n\nEvery mutation runs the full editor autosave chain: write library \u2192\nprocess affected assets \u2192 regenerate manifest modules. There is no\nseparate apply/sync step. All subcommands accept --json (a single JSON\ndocument on stdout) and --help.\n\nSubcommands:\n list list assets (--manifest, --type, --warnings-only)\n show one asset in detail\n ingest copy a file into the raw dir as a typed asset\n set merge parameters and/or replace manifest membership\n rename rename an asset id\n move move an asset to a folder or root\n delete delete an asset (record, raw file, proxies)\n\nRun `fundus asset <subcommand> --help` for the focused page (flags,\nsemantics, an example) \u2014 e.g. `fundus asset set --help` documents the\n--parameters merge rules.\n";
3
+ export declare const ASSET_HELP = "fundus asset \u2014 inspect and mutate assets\n\nUsage: fundus asset <subcommand> \u2026\n\nEvery mutation runs the full editor autosave chain: write library \u2192\nprocess affected assets \u2192 regenerate manifest modules. There is no\nseparate apply/sync step. All subcommands accept --json (a single JSON\ndocument on stdout) and --help.\n\nSubcommands:\n list list assets (--manifest, --type, --warnings-only)\n show one asset in detail\n ingest copy a file into the raw dir as a typed asset\n replace replace an asset's raw file while preserving its metadata\n set merge parameters and/or replace manifest membership\n rename rename an asset id\n move move an asset to a folder or root\n delete delete an asset (record, raw file, proxies)\n\nRun `fundus asset <subcommand> --help` for the focused page (flags,\nsemantics, an example) \u2014 e.g. `fundus asset set --help` documents the\n--parameters merge rules.\n";
4
4
  export declare const ASSET_LIST_HELP: string;
5
5
  export declare const ASSET_SHOW_HELP = "fundus asset show \u2014 one asset in detail\n\nUsage: fundus asset show <id> [--json]\n\nPrints the asset's raw file, content hash, parameters, explicit +\npassive manifest memberships, proxy status, reference edges (outgoing\nand incoming), and warnings.\n\nFlags:\n --json print {\"ok\": true, \"asset\": <AssetStateDto>}\n --help this help\n\nRead-only: nothing is processed or written.\n\nExample:\n fundus asset show navigationPanel --json\n";
6
6
  export declare const ASSET_INGEST_HELP: string;
7
+ export declare const ASSET_REPLACE_HELP = "fundus asset replace \u2014 replace an asset's raw file\n\nUsage: fundus asset replace <id> <file> [--json]\n\nReplaces the stored raw file and content hash while preserving the asset's\nid, type, folder, parameters, references, and manifest memberships. The new\nfile must have an extension accepted by the existing asset type. Runs the full\nautosave chain, so delivered assets are reprocessed and manifests regenerated.\n\nFlags:\n --json print {\"ok\": true, \"asset\": <AssetStateDto>, \"issues\": [\u2026]}\n --help this help\n\nExample:\n fundus asset replace navigationPanel ./exports/navigation_panel_v2.png --json\n";
7
8
  export declare const ASSET_SET_HELP = "fundus asset set \u2014 update an asset's parameters and/or memberships\n\nUsage: fundus asset set <id> [--parameters <json>] [--manifests <a,b>] [--json]\n\nAt least one of --parameters/--manifests is required. Runs the full\nautosave chain (write library \u2192 process \u2192 regenerate manifest modules).\n\nFlags:\n --parameters <json> SHALLOW MERGE at the top level onto the current\n parameters, then plugin validation:\n {\"preset\": \"webp-hq\"} sets one field,\n keeps the others\n {\"chromaKey\": {\u2026}} replaces the whole\n chromaKey object\n {\"mask\": null} clears an optional\n field\n {\"mask\": {\"$asset\": \"someImage\"}}\n sets an asset\n reference\n --manifests <a,b> REPLACES the explicit membership set (declarative,\n idempotent); --manifests \"\" clears it\n --json print {\"ok\": true, \"asset\": <AssetStateDto>, \"issues\": [\u2026]}\n --help this help\n\nThe mutation is validated first and rejected (exit 1, nothing written)\nif it would leave the library invalid \u2014 e.g. a reference to a missing\nasset, a reference cycle, or an unknown manifest name. Ingest reference\ntargets before pointing at them.\n\nExample:\n fundus asset set characterIdle \\\n --parameters '{\"mask\": {\"$asset\": \"characterIdleMask\"}}' --json\n";
8
9
  export declare const ASSET_RENAME_HELP = "fundus asset rename \u2014 rename an asset id\n\nUsage: fundus asset rename <id> <newId> [--json]\n\nRenames the asset's id (the raw file keeps its name \u2014 ids are the\nstable key) and re-hashes its proxy under the new id via the autosave\nchain. Fails if another asset references <id> \u2014 update the referrers\nfirst \u2014 or if <newId> is taken or invalid.\n\nFlags:\n --json print {\"ok\": true, \"asset\": <AssetStateDto>, \"issues\": [\u2026]}\n --help this help\n\nExample:\n fundus asset rename sidebarPanel navigationPanel --json\n";
9
10
  export declare const ASSET_DELETE_HELP = "fundus asset delete \u2014 delete an asset\n\nUsage: fundus asset delete <id> [--json]\n\nDeletes the library record, its raw file, and its proxies, then\nregenerates the affected manifest modules. Fails if another asset\nreferences it \u2014 remove the references first.\n\nFlags:\n --json print {\"ok\": true, \"deletedAssetId\": \"<id>\", \"issues\": [\u2026]}\n --help this help\n\nExample:\n fundus asset delete obsoleteBanner --json\n";