nebula-cms 0.1.3 → 0.1.5

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 (381) hide show
  1. package/README.md +3 -1
  2. package/dist/astro/index.d.ts +43 -0
  3. package/dist/astro/index.d.ts.map +1 -0
  4. package/dist/astro/index.js +223 -0
  5. package/{src → dist}/client/Admin.svelte +20 -11
  6. package/dist/client/Admin.svelte.d.ts +11 -0
  7. package/dist/client/Admin.svelte.d.ts.map +1 -0
  8. package/dist/client/components/BackendPicker.svelte.d.ts +4 -0
  9. package/dist/client/components/BackendPicker.svelte.d.ts.map +1 -0
  10. package/dist/client/components/DraftChip.svelte.d.ts +10 -0
  11. package/dist/client/components/DraftChip.svelte.d.ts.map +1 -0
  12. package/dist/client/components/MetadataForm.svelte.d.ts +12 -0
  13. package/dist/client/components/MetadataForm.svelte.d.ts.map +1 -0
  14. package/dist/client/components/ThemeToggle.svelte.d.ts +19 -0
  15. package/dist/client/components/ThemeToggle.svelte.d.ts.map +1 -0
  16. package/dist/client/components/dialogs/DeleteDraftDialog.svelte.d.ts +11 -0
  17. package/dist/client/components/dialogs/DeleteDraftDialog.svelte.d.ts.map +1 -0
  18. package/{src → dist}/client/components/dialogs/FilenameDialog.svelte +1 -2
  19. package/dist/client/components/dialogs/FilenameDialog.svelte.d.ts +13 -0
  20. package/dist/client/components/dialogs/FilenameDialog.svelte.d.ts.map +1 -0
  21. package/dist/client/components/editor/EditorPane.svelte.d.ts +4 -0
  22. package/dist/client/components/editor/EditorPane.svelte.d.ts.map +1 -0
  23. package/dist/client/components/editor/EditorTabs.svelte.d.ts +8 -0
  24. package/dist/client/components/editor/EditorTabs.svelte.d.ts.map +1 -0
  25. package/dist/client/components/editor/EditorToolbar.svelte.d.ts +4 -0
  26. package/dist/client/components/editor/EditorToolbar.svelte.d.ts.map +1 -0
  27. package/dist/client/components/editor/FormatSelector.svelte.d.ts +4 -0
  28. package/dist/client/components/editor/FormatSelector.svelte.d.ts.map +1 -0
  29. package/dist/client/components/editor/Toolbar.svelte.d.ts +19 -0
  30. package/dist/client/components/editor/Toolbar.svelte.d.ts.map +1 -0
  31. package/dist/client/components/fields/ArrayField.svelte.d.ts +15 -0
  32. package/dist/client/components/fields/ArrayField.svelte.d.ts.map +1 -0
  33. package/dist/client/components/fields/ArrayItem.svelte.d.ts +28 -0
  34. package/dist/client/components/fields/ArrayItem.svelte.d.ts.map +1 -0
  35. package/dist/client/components/fields/BooleanField.svelte.d.ts +16 -0
  36. package/dist/client/components/fields/BooleanField.svelte.d.ts.map +1 -0
  37. package/dist/client/components/fields/DateField.svelte.d.ts +16 -0
  38. package/dist/client/components/fields/DateField.svelte.d.ts.map +1 -0
  39. package/dist/client/components/fields/EnumField.svelte.d.ts +17 -0
  40. package/dist/client/components/fields/EnumField.svelte.d.ts.map +1 -0
  41. package/dist/client/components/fields/FieldWrapper.svelte.d.ts +18 -0
  42. package/dist/client/components/fields/FieldWrapper.svelte.d.ts.map +1 -0
  43. package/dist/client/components/fields/NumberField.svelte.d.ts +16 -0
  44. package/dist/client/components/fields/NumberField.svelte.d.ts.map +1 -0
  45. package/dist/client/components/fields/ObjectField.svelte.d.ts +16 -0
  46. package/dist/client/components/fields/ObjectField.svelte.d.ts.map +1 -0
  47. package/dist/client/components/fields/SchemaField.svelte.d.ts +16 -0
  48. package/dist/client/components/fields/SchemaField.svelte.d.ts.map +1 -0
  49. package/dist/client/components/fields/StringField.svelte.d.ts +16 -0
  50. package/dist/client/components/fields/StringField.svelte.d.ts.map +1 -0
  51. package/{src → dist}/client/components/sidebar/AdminSidebar.svelte +2 -4
  52. package/dist/client/components/sidebar/AdminSidebar.svelte.d.ts +19 -0
  53. package/dist/client/components/sidebar/AdminSidebar.svelte.d.ts.map +1 -0
  54. package/dist/client/components/sidebar/AdminSidebarSort.svelte.d.ts +12 -0
  55. package/dist/client/components/sidebar/AdminSidebarSort.svelte.d.ts.map +1 -0
  56. package/dist/client/css/icons.css +29 -0
  57. package/dist/client/index.d.ts +2 -0
  58. package/dist/client/index.d.ts.map +1 -0
  59. package/dist/client/js/drafts/merge.svelte.d.ts +24 -0
  60. package/dist/client/js/drafts/merge.svelte.d.ts.map +1 -0
  61. package/dist/client/js/drafts/merge.svelte.js +106 -0
  62. package/dist/client/js/drafts/ops.svelte.d.ts +31 -0
  63. package/dist/client/js/drafts/ops.svelte.d.ts.map +1 -0
  64. package/dist/client/js/drafts/ops.svelte.js +182 -0
  65. package/dist/client/js/drafts/storage.d.ts +45 -0
  66. package/dist/client/js/drafts/storage.d.ts.map +1 -0
  67. package/dist/client/js/drafts/storage.js +76 -0
  68. package/dist/client/js/drafts/workers/diff.d.ts +2 -0
  69. package/dist/client/js/drafts/workers/diff.d.ts.map +1 -0
  70. package/dist/client/js/drafts/workers/diff.js +20 -0
  71. package/dist/client/js/editor/editor.svelte.d.ts +124 -0
  72. package/dist/client/js/editor/editor.svelte.d.ts.map +1 -0
  73. package/dist/client/js/editor/editor.svelte.js +294 -0
  74. package/dist/client/js/editor/languages.d.ts +11 -0
  75. package/dist/client/js/editor/languages.d.ts.map +1 -0
  76. package/dist/client/js/editor/languages.js +93 -0
  77. package/dist/client/js/editor/link-wrap.d.ts +6 -0
  78. package/dist/client/js/editor/link-wrap.d.ts.map +1 -0
  79. package/{src/client/js/editor/link-wrap.ts → dist/client/js/editor/link-wrap.js} +17 -24
  80. package/dist/client/js/editor/markdown-shortcuts.d.ts +4 -0
  81. package/dist/client/js/editor/markdown-shortcuts.d.ts.map +1 -0
  82. package/dist/client/js/editor/markdown-shortcuts.js +219 -0
  83. package/dist/client/js/handlers/admin.d.ts +64 -0
  84. package/dist/client/js/handlers/admin.d.ts.map +1 -0
  85. package/dist/client/js/handlers/admin.js +186 -0
  86. package/dist/client/js/state/dialogs.svelte.d.ts +16 -0
  87. package/dist/client/js/state/dialogs.svelte.d.ts.map +1 -0
  88. package/dist/client/js/state/dialogs.svelte.js +28 -0
  89. package/dist/client/js/state/router.svelte.d.ts +44 -0
  90. package/dist/client/js/state/router.svelte.d.ts.map +1 -0
  91. package/dist/client/js/state/router.svelte.js +141 -0
  92. package/dist/client/js/state/schema.svelte.d.ts +51 -0
  93. package/dist/client/js/state/schema.svelte.d.ts.map +1 -0
  94. package/{src/client/js/state/schema.svelte.ts → dist/client/js/state/schema.svelte.js} +55 -70
  95. package/dist/client/js/state/state.svelte.d.ts +68 -0
  96. package/dist/client/js/state/state.svelte.d.ts.map +1 -0
  97. package/dist/client/js/state/state.svelte.js +300 -0
  98. package/dist/client/js/state/theme.svelte.d.ts +24 -0
  99. package/dist/client/js/state/theme.svelte.d.ts.map +1 -0
  100. package/{src/client/js/state/theme.svelte.ts → dist/client/js/state/theme.svelte.js} +54 -91
  101. package/dist/client/js/storage/adapter.d.ts +130 -0
  102. package/dist/client/js/storage/adapter.d.ts.map +1 -0
  103. package/dist/client/js/storage/adapter.js +5 -0
  104. package/dist/client/js/storage/client.d.ts +72 -0
  105. package/dist/client/js/storage/client.d.ts.map +1 -0
  106. package/dist/client/js/storage/client.js +121 -0
  107. package/dist/client/js/storage/db.d.ts +8 -0
  108. package/dist/client/js/storage/db.d.ts.map +1 -0
  109. package/dist/client/js/storage/db.js +35 -0
  110. package/dist/client/js/storage/fsa.d.ts +51 -0
  111. package/dist/client/js/storage/fsa.d.ts.map +1 -0
  112. package/dist/client/js/storage/fsa.js +91 -0
  113. package/dist/client/js/storage/github.d.ts +62 -0
  114. package/dist/client/js/storage/github.d.ts.map +1 -0
  115. package/dist/client/js/storage/github.js +216 -0
  116. package/dist/client/js/storage/storage.d.ts +32 -0
  117. package/dist/client/js/storage/storage.d.ts.map +1 -0
  118. package/dist/client/js/storage/storage.js +68 -0
  119. package/dist/client/js/storage/workers/frontmatter.d.ts +2 -0
  120. package/dist/client/js/storage/workers/frontmatter.d.ts.map +1 -0
  121. package/dist/client/js/storage/workers/frontmatter.js +253 -0
  122. package/dist/client/js/storage/workers/storage.d.ts +2 -0
  123. package/dist/client/js/storage/workers/storage.d.ts.map +1 -0
  124. package/dist/client/js/storage/workers/storage.js +167 -0
  125. package/dist/client/js/storage/workers/toml-parser.d.ts +2 -0
  126. package/dist/client/js/storage/workers/toml-parser.d.ts.map +1 -0
  127. package/dist/client/js/storage/workers/toml-parser.js +75 -0
  128. package/dist/client/js/storage/workers/yaml-parser.d.ts +2 -0
  129. package/dist/client/js/storage/workers/yaml-parser.d.ts.map +1 -0
  130. package/dist/client/js/storage/workers/yaml-parser.js +100 -0
  131. package/dist/client/js/utils/file-types.d.ts +58 -0
  132. package/dist/client/js/utils/file-types.d.ts.map +1 -0
  133. package/{src/client/js/utils/file-types.ts → dist/client/js/utils/file-types.js} +75 -107
  134. package/dist/client/js/utils/format.d.ts +8 -0
  135. package/dist/client/js/utils/format.d.ts.map +1 -0
  136. package/{src/client/js/utils/format.ts → dist/client/js/utils/format.js} +5 -6
  137. package/dist/client/js/utils/frontmatter.d.ts +12 -0
  138. package/dist/client/js/utils/frontmatter.d.ts.map +1 -0
  139. package/dist/client/js/utils/frontmatter.js +29 -0
  140. package/dist/client/js/utils/schema-utils.d.ts +110 -0
  141. package/dist/client/js/utils/schema-utils.d.ts.map +1 -0
  142. package/dist/client/js/utils/schema-utils.js +242 -0
  143. package/dist/client/js/utils/slug.d.ts +8 -0
  144. package/dist/client/js/utils/slug.d.ts.map +1 -0
  145. package/{src/client/js/utils/slug.ts → dist/client/js/utils/slug.js} +6 -7
  146. package/dist/client/js/utils/sort.d.ts +41 -0
  147. package/dist/client/js/utils/sort.d.ts.map +1 -0
  148. package/dist/client/js/utils/sort.js +65 -0
  149. package/dist/client/js/utils/stable-stringify.d.ts +8 -0
  150. package/dist/client/js/utils/stable-stringify.d.ts.map +1 -0
  151. package/dist/client/js/utils/stable-stringify.js +23 -0
  152. package/dist/client/js/utils/url-utils.d.ts +11 -0
  153. package/dist/client/js/utils/url-utils.d.ts.map +1 -0
  154. package/{src/client/js/utils/url-utils.ts → dist/client/js/utils/url-utils.js} +22 -23
  155. package/dist/client/types/browser-apis.d.ts +39 -0
  156. package/dist/types.d.ts +22 -0
  157. package/dist/types.d.ts.map +1 -0
  158. package/dist/types.js +1 -0
  159. package/package.json +13 -3
  160. package/.github/workflows/ci.yml +0 -27
  161. package/.github/workflows/publish.yml +0 -34
  162. package/.mcp.json +0 -12
  163. package/.prettierignore +0 -5
  164. package/.prettierrc.cjs +0 -22
  165. package/AGENTS.md +0 -183
  166. package/playground/astro.config.mjs +0 -7
  167. package/playground/node_modules/.bin/astro +0 -21
  168. package/playground/node_modules/.vite/deps/@astrojs_svelte_client__js.js +0 -85
  169. package/playground/node_modules/.vite/deps/@astrojs_svelte_client__js.js.map +0 -7
  170. package/playground/node_modules/.vite/deps/_metadata.json +0 -184
  171. package/playground/node_modules/.vite/deps/astro___aria-query.js +0 -6776
  172. package/playground/node_modules/.vite/deps/astro___aria-query.js.map +0 -7
  173. package/playground/node_modules/.vite/deps/astro___axobject-query.js +0 -3754
  174. package/playground/node_modules/.vite/deps/astro___axobject-query.js.map +0 -7
  175. package/playground/node_modules/.vite/deps/astro___html-escaper.js +0 -34
  176. package/playground/node_modules/.vite/deps/astro___html-escaper.js.map +0 -7
  177. package/playground/node_modules/.vite/deps/chunk-AJXJMYAF.js +0 -0
  178. package/playground/node_modules/.vite/deps/chunk-AJXJMYAF.js.map +0 -7
  179. package/playground/node_modules/.vite/deps/chunk-BUSYA2B4.js +0 -8
  180. package/playground/node_modules/.vite/deps/chunk-BUSYA2B4.js.map +0 -7
  181. package/playground/node_modules/.vite/deps/chunk-CNYJBM5F.js +0 -21
  182. package/playground/node_modules/.vite/deps/chunk-CNYJBM5F.js.map +0 -7
  183. package/playground/node_modules/.vite/deps/chunk-DBPNBGEI.js +0 -223
  184. package/playground/node_modules/.vite/deps/chunk-DBPNBGEI.js.map +0 -7
  185. package/playground/node_modules/.vite/deps/chunk-FPEUJ7DG.js +0 -27
  186. package/playground/node_modules/.vite/deps/chunk-FPEUJ7DG.js.map +0 -7
  187. package/playground/node_modules/.vite/deps/chunk-MHDZ3SK7.js +0 -1005
  188. package/playground/node_modules/.vite/deps/chunk-MHDZ3SK7.js.map +0 -7
  189. package/playground/node_modules/.vite/deps/chunk-RBDTDTPY.js +0 -204
  190. package/playground/node_modules/.vite/deps/chunk-RBDTDTPY.js.map +0 -7
  191. package/playground/node_modules/.vite/deps/chunk-RJGEXL5C.js +0 -688
  192. package/playground/node_modules/.vite/deps/chunk-RJGEXL5C.js.map +0 -7
  193. package/playground/node_modules/.vite/deps/chunk-YL4MIWGJ.js +0 -5099
  194. package/playground/node_modules/.vite/deps/chunk-YL4MIWGJ.js.map +0 -7
  195. package/playground/node_modules/.vite/deps/chunk-ZOV3DWEJ.js +0 -4376
  196. package/playground/node_modules/.vite/deps/chunk-ZOV3DWEJ.js.map +0 -7
  197. package/playground/node_modules/.vite/deps/chunk-ZP4UNCSN.js +0 -23
  198. package/playground/node_modules/.vite/deps/chunk-ZP4UNCSN.js.map +0 -7
  199. package/playground/node_modules/.vite/deps/chunk-ZREFNRZZ.js +0 -148
  200. package/playground/node_modules/.vite/deps/chunk-ZREFNRZZ.js.map +0 -7
  201. package/playground/node_modules/.vite/deps/package.json +0 -3
  202. package/playground/node_modules/.vite/deps/smol-toml.js +0 -843
  203. package/playground/node_modules/.vite/deps/smol-toml.js.map +0 -7
  204. package/playground/node_modules/.vite/deps/svelte.js +0 -55
  205. package/playground/node_modules/.vite/deps/svelte.js.map +0 -7
  206. package/playground/node_modules/.vite/deps/svelte___clsx.js +0 -9
  207. package/playground/node_modules/.vite/deps/svelte___clsx.js.map +0 -7
  208. package/playground/node_modules/.vite/deps/svelte_animate.js +0 -57
  209. package/playground/node_modules/.vite/deps/svelte_animate.js.map +0 -7
  210. package/playground/node_modules/.vite/deps/svelte_attachments.js +0 -15
  211. package/playground/node_modules/.vite/deps/svelte_attachments.js.map +0 -7
  212. package/playground/node_modules/.vite/deps/svelte_easing.js +0 -67
  213. package/playground/node_modules/.vite/deps/svelte_easing.js.map +0 -7
  214. package/playground/node_modules/.vite/deps/svelte_events.js +0 -11
  215. package/playground/node_modules/.vite/deps/svelte_events.js.map +0 -7
  216. package/playground/node_modules/.vite/deps/svelte_internal.js +0 -5
  217. package/playground/node_modules/.vite/deps/svelte_internal.js.map +0 -7
  218. package/playground/node_modules/.vite/deps/svelte_internal_client.js +0 -402
  219. package/playground/node_modules/.vite/deps/svelte_internal_client.js.map +0 -7
  220. package/playground/node_modules/.vite/deps/svelte_internal_disclose-version.js +0 -10
  221. package/playground/node_modules/.vite/deps/svelte_internal_disclose-version.js.map +0 -7
  222. package/playground/node_modules/.vite/deps/svelte_internal_flags_async.js +0 -8
  223. package/playground/node_modules/.vite/deps/svelte_internal_flags_async.js.map +0 -7
  224. package/playground/node_modules/.vite/deps/svelte_internal_flags_legacy.js +0 -8
  225. package/playground/node_modules/.vite/deps/svelte_internal_flags_legacy.js.map +0 -7
  226. package/playground/node_modules/.vite/deps/svelte_internal_flags_tracing.js +0 -8
  227. package/playground/node_modules/.vite/deps/svelte_internal_flags_tracing.js.map +0 -7
  228. package/playground/node_modules/.vite/deps/svelte_legacy.js +0 -35
  229. package/playground/node_modules/.vite/deps/svelte_legacy.js.map +0 -7
  230. package/playground/node_modules/.vite/deps/svelte_motion.js +0 -545
  231. package/playground/node_modules/.vite/deps/svelte_motion.js.map +0 -7
  232. package/playground/node_modules/.vite/deps/svelte_reactivity.js +0 -29
  233. package/playground/node_modules/.vite/deps/svelte_reactivity.js.map +0 -7
  234. package/playground/node_modules/.vite/deps/svelte_reactivity_window.js +0 -127
  235. package/playground/node_modules/.vite/deps/svelte_reactivity_window.js.map +0 -7
  236. package/playground/node_modules/.vite/deps/svelte_store.js +0 -103
  237. package/playground/node_modules/.vite/deps/svelte_store.js.map +0 -7
  238. package/playground/node_modules/.vite/deps/svelte_transition.js +0 -208
  239. package/playground/node_modules/.vite/deps/svelte_transition.js.map +0 -7
  240. package/playground/package.json +0 -16
  241. package/playground/pnpm-lock.yaml +0 -3167
  242. package/playground/src/content/authors/jane-doe.json +0 -8
  243. package/playground/src/content/config/build.toml +0 -2
  244. package/playground/src/content/courses/web-fundamentals.json +0 -29
  245. package/playground/src/content/docs/advanced.mdx +0 -6
  246. package/playground/src/content/docs/intro.md +0 -6
  247. package/playground/src/content/guides/getting-started.mdx +0 -6
  248. package/playground/src/content/posts/hello-world.md +0 -7
  249. package/playground/src/content/products/t-shirt.json +0 -16
  250. package/playground/src/content/recipes/pancakes.mdoc +0 -8
  251. package/playground/src/content/settings/site.yml +0 -2
  252. package/playground/src/content.config.ts +0 -198
  253. package/playground/src/env.d.ts +0 -1
  254. package/playground/src/pages/index.astro +0 -11
  255. package/playground/src/pages/nebula.astro +0 -14
  256. package/pnpm-workspace.yaml +0 -2
  257. package/scripts/subset-icons.mjs +0 -178
  258. package/src/astro/index.ts +0 -295
  259. package/src/client/js/drafts/merge.svelte.ts +0 -121
  260. package/src/client/js/drafts/ops.svelte.ts +0 -227
  261. package/src/client/js/drafts/storage.ts +0 -108
  262. package/src/client/js/drafts/workers/diff.ts +0 -40
  263. package/src/client/js/editor/editor.svelte.ts +0 -343
  264. package/src/client/js/editor/languages.ts +0 -98
  265. package/src/client/js/editor/markdown-shortcuts.ts +0 -261
  266. package/src/client/js/handlers/admin.ts +0 -246
  267. package/src/client/js/state/dialogs.svelte.ts +0 -35
  268. package/src/client/js/state/router.svelte.ts +0 -156
  269. package/src/client/js/state/state.svelte.ts +0 -334
  270. package/src/client/js/storage/adapter.ts +0 -102
  271. package/src/client/js/storage/client.ts +0 -150
  272. package/src/client/js/storage/db.ts +0 -36
  273. package/src/client/js/storage/fsa.ts +0 -110
  274. package/src/client/js/storage/github.ts +0 -297
  275. package/src/client/js/storage/storage.ts +0 -83
  276. package/src/client/js/storage/workers/frontmatter.ts +0 -320
  277. package/src/client/js/storage/workers/storage.ts +0 -177
  278. package/src/client/js/storage/workers/toml-parser.ts +0 -106
  279. package/src/client/js/storage/workers/yaml-parser.ts +0 -132
  280. package/src/client/js/utils/frontmatter.ts +0 -38
  281. package/src/client/js/utils/schema-utils.ts +0 -295
  282. package/src/client/js/utils/sort.ts +0 -84
  283. package/src/client/js/utils/stable-stringify.ts +0 -27
  284. package/src/types.ts +0 -25
  285. package/svelte.config.js +0 -4
  286. package/tests/astro/build.test.ts +0 -63
  287. package/tests/astro/index.test.ts +0 -689
  288. package/tests/client/components/Admin.test.ts +0 -446
  289. package/tests/client/components/BackendPicker.test.ts +0 -239
  290. package/tests/client/components/DraftChip.test.ts +0 -53
  291. package/tests/client/components/MetadataForm.test.ts +0 -164
  292. package/tests/client/components/dialogs/DeleteDraftDialog.test.ts +0 -91
  293. package/tests/client/components/dialogs/FilenameDialog.test.ts +0 -209
  294. package/tests/client/components/dialogs/dialog-stubs.ts +0 -19
  295. package/tests/client/components/editor/EditorPane.test.ts +0 -100
  296. package/tests/client/components/editor/EditorTabs.test.ts +0 -253
  297. package/tests/client/components/editor/EditorToolbar.test.ts +0 -252
  298. package/tests/client/components/editor/fixtures.ts +0 -31
  299. package/tests/client/components/fields/ArrayField.test.ts +0 -197
  300. package/tests/client/components/fields/BooleanField.test.ts +0 -206
  301. package/tests/client/components/fields/DateField.test.ts +0 -210
  302. package/tests/client/components/fields/EnumField.test.ts +0 -246
  303. package/tests/client/components/fields/NumberField.test.ts +0 -240
  304. package/tests/client/components/fields/ObjectField.test.ts +0 -157
  305. package/tests/client/components/fields/SchemaField.test.ts +0 -190
  306. package/tests/client/components/fields/StringField.test.ts +0 -223
  307. package/tests/client/components/sidebar/AdminSidebar.test.ts +0 -285
  308. package/tests/client/components/sidebar/AdminSidebarSort.test.ts +0 -135
  309. package/tests/client/components/sidebar/sort-mock.ts +0 -23
  310. package/tests/client/js/drafts/fixtures.ts +0 -22
  311. package/tests/client/js/drafts/merge.test.ts +0 -282
  312. package/tests/client/js/drafts/ops.test.ts +0 -658
  313. package/tests/client/js/drafts/storage.test.ts +0 -200
  314. package/tests/client/js/drafts/workers/diff.test.ts +0 -165
  315. package/tests/client/js/editor/editor.test.ts +0 -616
  316. package/tests/client/js/editor/link-wrap.test.ts +0 -225
  317. package/tests/client/js/editor/markdown-shortcuts.test.ts +0 -370
  318. package/tests/client/js/handlers/admin.test.ts +0 -467
  319. package/tests/client/js/state/router.test.ts +0 -619
  320. package/tests/client/js/state/schema.test.ts +0 -266
  321. package/tests/client/js/state/state.test.ts +0 -328
  322. package/tests/client/js/storage/adapter.test.ts +0 -115
  323. package/tests/client/js/storage/client.test.ts +0 -250
  324. package/tests/client/js/storage/db.test.ts +0 -59
  325. package/tests/client/js/storage/fsa.test.ts +0 -284
  326. package/tests/client/js/storage/github.test.ts +0 -349
  327. package/tests/client/js/storage/mock-port.ts +0 -95
  328. package/tests/client/js/storage/storage.test.ts +0 -77
  329. package/tests/client/js/storage/workers/frontmatter.test.ts +0 -479
  330. package/tests/client/js/storage/workers/storage.test.ts +0 -299
  331. package/tests/client/js/storage/workers/toml-parser.test.ts +0 -169
  332. package/tests/client/js/storage/workers/yaml-parser.test.ts +0 -168
  333. package/tests/client/js/utils/file-types.test.ts +0 -268
  334. package/tests/client/js/utils/frontmatter.test.ts +0 -87
  335. package/tests/client/js/utils/schema-utils.test.ts +0 -318
  336. package/tests/client/js/utils/slug.test.ts +0 -58
  337. package/tests/client/js/utils/sort.test.ts +0 -276
  338. package/tests/client/js/utils/stable-stringify.test.ts +0 -68
  339. package/tests/client/js/utils/url-utils.test.ts +0 -70
  340. package/tests/e2e/backend-connection.test.ts +0 -301
  341. package/tests/e2e/draft-lifecycle.test.ts +0 -388
  342. package/tests/e2e/editing.test.ts +0 -355
  343. package/tests/e2e/github-adapter.test.ts +0 -330
  344. package/tests/e2e/helpers/mock-adapter.ts +0 -166
  345. package/tests/e2e/helpers/test-app.ts +0 -155
  346. package/tests/e2e/navigation.test.ts +0 -358
  347. package/tests/e2e/publishing.test.ts +0 -345
  348. package/tests/e2e/unsaved-changes.test.ts +0 -317
  349. package/tests/setup.ts +0 -2
  350. package/tests/stubs/codemirror.ts +0 -197
  351. package/tsconfig.json +0 -19
  352. package/vitest.config.ts +0 -178
  353. /package/{src → dist}/client/components/BackendPicker.svelte +0 -0
  354. /package/{src → dist}/client/components/DraftChip.svelte +0 -0
  355. /package/{src → dist}/client/components/MetadataForm.svelte +0 -0
  356. /package/{src → dist}/client/components/ThemeToggle.svelte +0 -0
  357. /package/{src → dist}/client/components/dialogs/DeleteDraftDialog.svelte +0 -0
  358. /package/{src → dist}/client/components/editor/EditorPane.svelte +0 -0
  359. /package/{src → dist}/client/components/editor/EditorTabs.svelte +0 -0
  360. /package/{src → dist}/client/components/editor/EditorToolbar.svelte +0 -0
  361. /package/{src → dist}/client/components/editor/FormatSelector.svelte +0 -0
  362. /package/{src → dist}/client/components/editor/Toolbar.svelte +0 -0
  363. /package/{src → dist}/client/components/fields/ArrayField.svelte +0 -0
  364. /package/{src → dist}/client/components/fields/ArrayItem.svelte +0 -0
  365. /package/{src → dist}/client/components/fields/BooleanField.svelte +0 -0
  366. /package/{src → dist}/client/components/fields/DateField.svelte +0 -0
  367. /package/{src → dist}/client/components/fields/EnumField.svelte +0 -0
  368. /package/{src → dist}/client/components/fields/FieldWrapper.svelte +0 -0
  369. /package/{src → dist}/client/components/fields/NumberField.svelte +0 -0
  370. /package/{src → dist}/client/components/fields/ObjectField.svelte +0 -0
  371. /package/{src → dist}/client/components/fields/SchemaField.svelte +0 -0
  372. /package/{src → dist}/client/components/fields/StringField.svelte +0 -0
  373. /package/{src → dist}/client/components/sidebar/AdminSidebarSort.svelte +0 -0
  374. /package/{src → dist}/client/css/a11y.css +0 -0
  375. /package/{src → dist}/client/css/btn.css +0 -0
  376. /package/{src → dist}/client/css/dialog.css +0 -0
  377. /package/{src → dist}/client/css/field-input.css +0 -0
  378. /package/{src → dist}/client/css/reset.css +0 -0
  379. /package/{src → dist}/client/css/theme.css +0 -0
  380. /package/{src/client/index.ts → dist/client/index.js} +0 -0
  381. /package/{src → dist}/virtual.d.ts +0 -0
@@ -0,0 +1,141 @@
1
+ /*
2
+ * Parsed route state for the admin SPA.
3
+ * The base path is set at build time via virtual:nebula/config so both
4
+ * client-side code and the Vite dev server share the same value.
5
+ */
6
+ import config from 'virtual:nebula/config';
7
+ // Build-time constant — configured via the Astro integration
8
+ const basePath = config.basePath;
9
+ /*
10
+ * Current route, reactive via Svelte 5 runes.
11
+ * Defaults to 'home' during SSR where location is unavailable;
12
+ * the client re-initializes from the real pathname on hydration.
13
+ */
14
+ let route = $state(typeof location !== 'undefined'
15
+ ? parsePathname(location.pathname)
16
+ : { view: 'home' });
17
+ export const nav = {
18
+ // Current parsed admin route.
19
+ get route() {
20
+ return route;
21
+ },
22
+ };
23
+ /**
24
+ * Builds an absolute path under the configured basePath by joining segments.
25
+ * Handles the root basePath case ('/') without producing double slashes.
26
+ * @param {...string} segments - Path segments to append (e.g. 'authors', 'my-post')
27
+ * @return {string} The joined path (e.g. '/admin/authors/my-post' or '/authors/my-post')
28
+ */
29
+ export function adminPath(...segments) {
30
+ if (segments.length === 0)
31
+ return basePath;
32
+ const prefix = basePath === '/' ? '' : basePath;
33
+ return prefix + '/' + segments.join('/');
34
+ }
35
+ /**
36
+ * Checks whether a pathname falls under the configured basePath.
37
+ * Matches the basePath exactly or as a prefix followed by '/'.
38
+ * @param {string} pathname - The URL pathname to test
39
+ * @return {boolean} True if the pathname is within the basePath
40
+ */
41
+ function isUnderBasePath(pathname) {
42
+ // When basePath is '/', every absolute path is under it
43
+ if (basePath === '/')
44
+ return pathname.startsWith('/');
45
+ return pathname === basePath || pathname.startsWith(basePath + '/');
46
+ }
47
+ /**
48
+ * Parses a pathname into an AdminRoute by stripping the basePath prefix.
49
+ * @param {string} pathname - The URL pathname to parse
50
+ * @return {AdminRoute} The route corresponding to the given pathname
51
+ */
52
+ function parsePathname(pathname) {
53
+ /*
54
+ * Strip the basePath prefix at a segment boundary, then split the remainder.
55
+ * Must mirror isUnderBasePath's boundary check to avoid false matches
56
+ * (e.g. basePath '/cms' should not match pathname '/cmsextra/posts').
57
+ */
58
+ const underBase = isUnderBasePath(pathname);
59
+ const rest = underBase ? pathname.slice(basePath.length) : pathname;
60
+ const segments = rest.split('/').filter(Boolean);
61
+ /*
62
+ * Draft URLs use a 2-segment pattern: {basePath}/{collection}/draft-{draftId}
63
+ * This keeps the same URL depth as regular files so Astro static paths work.
64
+ */
65
+ if (segments.length >= 2 && segments[1].startsWith('draft-')) {
66
+ return {
67
+ view: 'draft',
68
+ collection: segments[0],
69
+ draftId: segments[1].slice('draft-'.length),
70
+ };
71
+ }
72
+ if (segments.length >= 2) {
73
+ return { view: 'file', collection: segments[0], slug: segments[1] };
74
+ }
75
+ if (segments.length === 1) {
76
+ return { view: 'collection', collection: segments[0] };
77
+ }
78
+ return { view: 'home' };
79
+ }
80
+ /**
81
+ * Navigates to a path within the admin SPA using the Navigation API.
82
+ * @param {string} path - The path to navigate to (e.g., '/admin/posts')
83
+ * @return {void}
84
+ */
85
+ export function navigate(path) {
86
+ navigation.navigate(path);
87
+ }
88
+ // Callback to check if the editor has unsaved changes
89
+ let dirtyChecker = null;
90
+ /**
91
+ * Registers a function that returns whether the editor has unsaved changes.
92
+ * @param {() => boolean} checker - Function returning true if there are unsaved changes
93
+ * @return {void}
94
+ */
95
+ export function registerDirtyChecker(checker) {
96
+ dirtyChecker = checker;
97
+ }
98
+ // Guard against duplicate listener registration (e.g., HMR remount)
99
+ let initialized = false;
100
+ /**
101
+ * Initializes the Navigation API listener, intercepting navigations under the
102
+ * configured basePath and updating reactive route state.
103
+ * Safe to call multiple times — registers the listener only once.
104
+ * @return {void}
105
+ */
106
+ export function initRouter() {
107
+ if (initialized)
108
+ return;
109
+ initialized = true;
110
+ navigation.addEventListener('navigate', (event) => {
111
+ const url = new URL(event.destination.url);
112
+ // Only intercept navigations within the configured basePath
113
+ if (!isUnderBasePath(url.pathname))
114
+ return;
115
+ // Don't intercept downloads or hash-only changes
116
+ if (event.hashChange || event.downloadRequest)
117
+ return;
118
+ if (!event.canIntercept)
119
+ return;
120
+ /*
121
+ * Block navigation if editor has unsaved changes and user cancels.
122
+ * This check must happen before event.intercept() — if it were inside the
123
+ * handler, the URL would already be updated by the time the user cancels.
124
+ */
125
+ if (dirtyChecker?.() &&
126
+ !confirm('You have unsaved changes. Leave without saving?')) {
127
+ event.preventDefault();
128
+ return;
129
+ }
130
+ event.intercept({
131
+ async handler() {
132
+ route = parsePathname(url.pathname);
133
+ },
134
+ });
135
+ });
136
+ window.addEventListener('beforeunload', (event) => {
137
+ if (dirtyChecker?.()) {
138
+ event.preventDefault();
139
+ }
140
+ });
141
+ }
@@ -0,0 +1,51 @@
1
+ type JsonSchema = Record<string, unknown>;
2
+ export declare const schema: {
3
+ readonly active: JsonSchema | null;
4
+ };
5
+ /**
6
+ * Fetches all collection schemas in parallel and caches them.
7
+ * Call once on app startup so schema-derived state is available before the first collection renders.
8
+ * @return {Promise<void>}
9
+ */
10
+ export declare function prefetchAllSchemas(): Promise<void>;
11
+ /**
12
+ * Fetches and caches the JSON Schema for a collection, then sets the reactive schema state.
13
+ * @param {string} collection - The collection name to fetch the schema for
14
+ * @return {Promise<void>}
15
+ */
16
+ export declare function fetchSchema(collection: string): Promise<void>;
17
+ /**
18
+ * Returns true if the collection's schema has a date-time property, indicating it supports date-based sorting.
19
+ * Requires prefetchAllSchemas to have been called; returns false if the schema isn't cached yet.
20
+ * @param {string} collection - The collection name to check
21
+ * @return {boolean} True if any property in the schema uses the date-time format
22
+ */
23
+ export declare function collectionHasDates(collection: string): boolean;
24
+ /**
25
+ * Returns the display title for a collection from its cached schema.
26
+ * Returns null if the schema hasn't been fetched or has no title.
27
+ * @param {string} collection - The collection name
28
+ * @return {string | null} The schema title, or null
29
+ */
30
+ export declare function getCollectionTitle(collection: string): string | null;
31
+ /**
32
+ * Returns the description for a collection from its cached schema.
33
+ * Returns null if the schema hasn't been fetched or has no description.
34
+ * @param {string} collection - The collection name
35
+ * @return {string | null} The schema description, or null
36
+ */
37
+ export declare function getCollectionDescription(collection: string): string | null;
38
+ /**
39
+ * Returns the resolved file extensions for a collection from its cached schema.
40
+ * Falls back to ['.md', '.mdx'] if the schema hasn't been fetched or declares no files.
41
+ * @param {string} collection - The collection name
42
+ * @return {string[]} Array of file extensions
43
+ */
44
+ export declare function getSchemaExtensions(collection: string): string[];
45
+ /**
46
+ * Clears the active schema.
47
+ * @return {void}
48
+ */
49
+ export declare function clearSchema(): void;
50
+ export {};
51
+ //# sourceMappingURL=schema.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.svelte.d.ts","sourceRoot":"","sources":["../../../../src/client/js/state/schema.svelte.ts"],"names":[],"mappings":"AASA,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAQ1C,eAAO,MAAM,MAAM;qBAEH,UAAU,GAAG,IAAI;CAGhC,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAYxD;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAcnE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAM9D;AAgBD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEpE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE1E;AAUD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAKhE;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC"}
@@ -2,80 +2,68 @@
2
2
  * Reactive schema state for the admin SPA.
3
3
  * Fetches, caches, and exposes JSON Schemas for content collections.
4
4
  */
5
-
6
5
  import schemas from 'virtual:nebula/collections';
7
6
  import { getExtensionsForSchema } from '../utils/file-types';
8
-
9
- // JSON Schema object type.
10
- type JsonSchema = Record<string, unknown>;
11
-
12
7
  // Cache of fetched schemas keyed by collection name
13
- const cache = new Map<string, JsonSchema>();
14
-
8
+ const cache = new Map();
15
9
  // Currently active schema for the selected collection
16
- let activeSchema = $state<JsonSchema | null>(null);
17
-
10
+ let activeSchema = $state(null);
18
11
  export const schema = {
19
- // The loaded JSON Schema for the active collection, or null.
20
- get active(): JsonSchema | null {
21
- return activeSchema;
22
- },
12
+ // The loaded JSON Schema for the active collection, or null.
13
+ get active() {
14
+ return activeSchema;
15
+ },
23
16
  };
24
-
25
17
  /**
26
18
  * Fetches all collection schemas in parallel and caches them.
27
19
  * Call once on app startup so schema-derived state is available before the first collection renders.
28
20
  * @return {Promise<void>}
29
21
  */
30
- export async function prefetchAllSchemas(): Promise<void> {
31
- const entries = Object.entries(schemas);
32
- const results = await Promise.all(
33
- entries.map(async ([name, url]) => {
34
- const response = await fetch(url);
35
- const data = (await response.json()) as JsonSchema;
36
- return [name, data] as const;
37
- }),
38
- );
39
- for (const [name, data] of results) {
40
- cache.set(name, data);
41
- }
22
+ export async function prefetchAllSchemas() {
23
+ const entries = Object.entries(schemas);
24
+ const results = await Promise.all(entries.map(async ([name, url]) => {
25
+ const response = await fetch(url);
26
+ const data = (await response.json());
27
+ return [name, data];
28
+ }));
29
+ for (const [name, data] of results) {
30
+ cache.set(name, data);
31
+ }
42
32
  }
43
-
44
33
  /**
45
34
  * Fetches and caches the JSON Schema for a collection, then sets the reactive schema state.
46
35
  * @param {string} collection - The collection name to fetch the schema for
47
36
  * @return {Promise<void>}
48
37
  */
49
- export async function fetchSchema(collection: string): Promise<void> {
50
- const cached = cache.get(collection);
51
- if (cached) {
52
- activeSchema = cached;
53
- return;
54
- }
55
-
56
- const url = schemas[collection];
57
- if (!url) return;
58
-
59
- const response = await fetch(url);
60
- const data = (await response.json()) as JsonSchema;
61
- cache.set(collection, data);
62
- activeSchema = data;
38
+ export async function fetchSchema(collection) {
39
+ const cached = cache.get(collection);
40
+ if (cached) {
41
+ activeSchema = cached;
42
+ return;
43
+ }
44
+ const url = schemas[collection];
45
+ if (!url)
46
+ return;
47
+ const response = await fetch(url);
48
+ const data = (await response.json());
49
+ cache.set(collection, data);
50
+ activeSchema = data;
63
51
  }
64
-
65
52
  /**
66
53
  * Returns true if the collection's schema has a date-time property, indicating it supports date-based sorting.
67
54
  * Requires prefetchAllSchemas to have been called; returns false if the schema isn't cached yet.
68
55
  * @param {string} collection - The collection name to check
69
56
  * @return {boolean} True if any property in the schema uses the date-time format
70
57
  */
71
- export function collectionHasDates(collection: string): boolean {
72
- const s = cache.get(collection);
73
- if (!s) return false;
74
- const props = s['properties'] as Record<string, JsonSchema> | undefined;
75
- if (!props) return false;
76
- return Object.values(props).some((p) => p['format'] === 'date-time');
58
+ export function collectionHasDates(collection) {
59
+ const s = cache.get(collection);
60
+ if (!s)
61
+ return false;
62
+ const props = s['properties'];
63
+ if (!props)
64
+ return false;
65
+ return Object.values(props).some((p) => p['format'] === 'date-time');
77
66
  }
78
-
79
67
  /**
80
68
  * Reads a top-level string field from a collection's cached schema.
81
69
  * Returns null if the schema isn't cached or the field is absent/non-string.
@@ -83,33 +71,31 @@ export function collectionHasDates(collection: string): boolean {
83
71
  * @param {string} field - The schema field to read (e.g. 'title', 'description')
84
72
  * @return {string | null} The field value, or null
85
73
  */
86
- function getStringField(collection: string, field: string): string | null {
87
- const s = cache.get(collection);
88
- if (!s) return null;
89
- const value = s[field];
90
- return typeof value === 'string' ? value : null;
74
+ function getStringField(collection, field) {
75
+ const s = cache.get(collection);
76
+ if (!s)
77
+ return null;
78
+ const value = s[field];
79
+ return typeof value === 'string' ? value : null;
91
80
  }
92
-
93
81
  /**
94
82
  * Returns the display title for a collection from its cached schema.
95
83
  * Returns null if the schema hasn't been fetched or has no title.
96
84
  * @param {string} collection - The collection name
97
85
  * @return {string | null} The schema title, or null
98
86
  */
99
- export function getCollectionTitle(collection: string): string | null {
100
- return getStringField(collection, 'title');
87
+ export function getCollectionTitle(collection) {
88
+ return getStringField(collection, 'title');
101
89
  }
102
-
103
90
  /**
104
91
  * Returns the description for a collection from its cached schema.
105
92
  * Returns null if the schema hasn't been fetched or has no description.
106
93
  * @param {string} collection - The collection name
107
94
  * @return {string | null} The schema description, or null
108
95
  */
109
- export function getCollectionDescription(collection: string): string | null {
110
- return getStringField(collection, 'description');
96
+ export function getCollectionDescription(collection) {
97
+ return getStringField(collection, 'description');
111
98
  }
112
-
113
99
  /*
114
100
  * Known race condition: if a caller invokes getSchemaExtensions before
115
101
  * prefetchAllSchemas() has completed, the schema won't be cached yet and the
@@ -117,24 +103,23 @@ export function getCollectionDescription(collection: string): string | null {
117
103
  * mitigates this by awaiting initPromise, which includes prefetchAllSchemas().
118
104
  * If the ordering changes, callers should await prefetchAllSchemas() first.
119
105
  */
120
-
121
106
  /**
122
107
  * Returns the resolved file extensions for a collection from its cached schema.
123
108
  * Falls back to ['.md', '.mdx'] if the schema hasn't been fetched or declares no files.
124
109
  * @param {string} collection - The collection name
125
110
  * @return {string[]} Array of file extensions
126
111
  */
127
- export function getSchemaExtensions(collection: string): string[] {
128
- const s = cache.get(collection);
129
- if (!s) return ['.md', '.mdx'];
130
- const extensions = getExtensionsForSchema(s);
131
- return extensions.length > 0 ? extensions : ['.md', '.mdx'];
112
+ export function getSchemaExtensions(collection) {
113
+ const s = cache.get(collection);
114
+ if (!s)
115
+ return ['.md', '.mdx'];
116
+ const extensions = getExtensionsForSchema(s);
117
+ return extensions.length > 0 ? extensions : ['.md', '.mdx'];
132
118
  }
133
-
134
119
  /**
135
120
  * Clears the active schema.
136
121
  * @return {void}
137
122
  */
138
- export function clearSchema(): void {
139
- activeSchema = null;
123
+ export function clearSchema() {
124
+ activeSchema = null;
140
125
  }
@@ -0,0 +1,68 @@
1
+ import { StorageClient } from '../storage/client';
2
+ import { drafts, refreshDrafts } from '../drafts/merge.svelte';
3
+ export { drafts, refreshDrafts };
4
+ export type ContentItem = {
5
+ filename: string;
6
+ data: Record<string, unknown>;
7
+ };
8
+ type PermissionState = 'granted' | 'prompt' | 'denied';
9
+ type BackendType = 'fsa' | 'github' | null;
10
+ export declare const collections: string[];
11
+ export declare const storageClient: StorageClient;
12
+ export declare const backend: {
13
+ readonly type: BackendType;
14
+ readonly ready: boolean;
15
+ readonly permission: PermissionState;
16
+ };
17
+ export declare const content: {
18
+ readonly list: ContentItem[];
19
+ readonly loading: boolean;
20
+ readonly error: string | null;
21
+ };
22
+ /**
23
+ * Restores a stored backend config from IndexedDB and initializes the SharedWorker.
24
+ * @return {Promise<void>}
25
+ */
26
+ export declare function restoreBackend(): Promise<void>;
27
+ /**
28
+ * Re-requests FSA permission. Must be called from a user gesture.
29
+ * @return {Promise<void>}
30
+ */
31
+ export declare function requestPermission(): Promise<void>;
32
+ /**
33
+ * Opens the directory picker and initializes the FSA backend. Must be called from a user gesture.
34
+ * @return {Promise<void>}
35
+ */
36
+ export declare function pickDirectory(): Promise<void>;
37
+ /**
38
+ * Connects to a GitHub repository via PAT and persists the config.
39
+ * @param {string} token - GitHub Personal Access Token
40
+ * @param {string} repo - Repository in "owner/repo" format
41
+ * @return {Promise<void>}
42
+ */
43
+ export declare function connectGitHub(token: string, repo: string): Promise<void>;
44
+ /**
45
+ * Disconnects the backend, clears credentials, and resets all state.
46
+ * @return {Promise<void>}
47
+ */
48
+ export declare function disconnect(): Promise<void>;
49
+ /**
50
+ * Loads a collection. Serves from cache instantly if available, then background refreshes.
51
+ * @param {string} collection - The collection name to load
52
+ * @return {void}
53
+ */
54
+ export declare function loadCollection(collection: string): void;
55
+ /**
56
+ * Forces a background reload, keeping the sidebar visible.
57
+ * @param {string} collection - The collection to reload
58
+ * @return {void}
59
+ */
60
+ export declare function reloadCollection(collection: string): void;
61
+ /**
62
+ * Optimistically updates a single item's frontmatter in the content list and cache.
63
+ * @param {string} filename - The filename to update
64
+ * @param {Record<string, unknown>} data - The new frontmatter data
65
+ * @return {void}
66
+ */
67
+ export declare function updateContentItem(filename: string, data: Record<string, unknown>): void;
68
+ //# sourceMappingURL=state.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.svelte.d.ts","sourceRoot":"","sources":["../../../../src/client/js/state/state.svelte.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EACL,MAAM,EAEN,aAAa,EAEd,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;AAGjC,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,CAAC;AAGF,KAAK,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEvD,KAAK,WAAW,GAAG,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAE3C,eAAO,MAAM,WAAW,UAA8B,CAAC;AAoBvD,eAAO,MAAM,aAAa,EAErB,aAAa,CAAC;AAQnB,eAAO,MAAM,OAAO;mBAEN,WAAW;oBAIV,OAAO;yBAIF,eAAe;CAGlC,CAAC;AAEF,eAAO,MAAM,OAAO;mBAEN,WAAW,EAAE;sBAIV,OAAO;oBAIT,MAAM,GAAG,IAAI;CAG3B,CAAC;AAoEF;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA6CpD;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAcvD;AAED;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAcnD;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;;GAGG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAehD;AAYD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAYvD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAGzD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,IAAI,CAMN"}