@walkthru-earth/objex 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 (367) hide show
  1. package/LICENSE +396 -0
  2. package/README.md +114 -0
  3. package/dist/assets/favicon.svg +17 -0
  4. package/dist/components/CLAUDE.md +44 -0
  5. package/dist/components/browser/Breadcrumb.svelte +50 -0
  6. package/dist/components/browser/Breadcrumb.svelte.d.ts +7 -0
  7. package/dist/components/browser/CreateFolderDialog.svelte +98 -0
  8. package/dist/components/browser/CreateFolderDialog.svelte.d.ts +6 -0
  9. package/dist/components/browser/DeleteConfirmDialog.svelte +90 -0
  10. package/dist/components/browser/DeleteConfirmDialog.svelte.d.ts +8 -0
  11. package/dist/components/browser/DropZone.svelte +83 -0
  12. package/dist/components/browser/DropZone.svelte.d.ts +7 -0
  13. package/dist/components/browser/FileBrowser.svelte +229 -0
  14. package/dist/components/browser/FileBrowser.svelte.d.ts +3 -0
  15. package/dist/components/browser/FileRow.svelte +112 -0
  16. package/dist/components/browser/FileRow.svelte.d.ts +9 -0
  17. package/dist/components/browser/FileTreeSidebar.svelte +559 -0
  18. package/dist/components/browser/FileTreeSidebar.svelte.d.ts +8 -0
  19. package/dist/components/browser/RenameDialog.svelte +101 -0
  20. package/dist/components/browser/RenameDialog.svelte.d.ts +8 -0
  21. package/dist/components/browser/SearchBar.svelte +40 -0
  22. package/dist/components/browser/SearchBar.svelte.d.ts +6 -0
  23. package/dist/components/browser/UploadButton.svelte +65 -0
  24. package/dist/components/browser/UploadButton.svelte.d.ts +3 -0
  25. package/dist/components/editor/CodeMirrorEditor.svelte +404 -0
  26. package/dist/components/editor/CodeMirrorEditor.svelte.d.ts +12 -0
  27. package/dist/components/editor/MilkdownEditor.svelte +98 -0
  28. package/dist/components/editor/MilkdownEditor.svelte.d.ts +9 -0
  29. package/dist/components/editor/SqlEditor.svelte +173 -0
  30. package/dist/components/editor/SqlEditor.svelte.d.ts +7 -0
  31. package/dist/components/editor/SqlResultBlock.svelte +199 -0
  32. package/dist/components/editor/SqlResultBlock.svelte.d.ts +9 -0
  33. package/dist/components/layout/ConnectionDialog.svelte +439 -0
  34. package/dist/components/layout/ConnectionDialog.svelte.d.ts +9 -0
  35. package/dist/components/layout/LocaleToggle.svelte +32 -0
  36. package/dist/components/layout/LocaleToggle.svelte.d.ts +3 -0
  37. package/dist/components/layout/SafeLockToggle.svelte +37 -0
  38. package/dist/components/layout/SafeLockToggle.svelte.d.ts +18 -0
  39. package/dist/components/layout/Sidebar.svelte +314 -0
  40. package/dist/components/layout/Sidebar.svelte.d.ts +3 -0
  41. package/dist/components/layout/StatusBar.svelte +73 -0
  42. package/dist/components/layout/StatusBar.svelte.d.ts +3 -0
  43. package/dist/components/layout/TabBar.svelte +102 -0
  44. package/dist/components/layout/TabBar.svelte.d.ts +7 -0
  45. package/dist/components/layout/ThemeToggle.svelte +52 -0
  46. package/dist/components/layout/ThemeToggle.svelte.d.ts +3 -0
  47. package/dist/components/ui/badge/badge.svelte +49 -0
  48. package/dist/components/ui/badge/badge.svelte.d.ts +32 -0
  49. package/dist/components/ui/badge/index.d.ts +1 -0
  50. package/dist/components/ui/badge/index.js +1 -0
  51. package/dist/components/ui/button/button.svelte +82 -0
  52. package/dist/components/ui/button/button.svelte.d.ts +64 -0
  53. package/dist/components/ui/button/index.d.ts +2 -0
  54. package/dist/components/ui/button/index.js +4 -0
  55. package/dist/components/ui/context-menu/context-menu-checkbox-item.svelte +40 -0
  56. package/dist/components/ui/context-menu/context-menu-checkbox-item.svelte.d.ts +9 -0
  57. package/dist/components/ui/context-menu/context-menu-content.svelte +28 -0
  58. package/dist/components/ui/context-menu/context-menu-content.svelte.d.ts +10 -0
  59. package/dist/components/ui/context-menu/context-menu-group-heading.svelte +21 -0
  60. package/dist/components/ui/context-menu/context-menu-group-heading.svelte.d.ts +7 -0
  61. package/dist/components/ui/context-menu/context-menu-group.svelte +7 -0
  62. package/dist/components/ui/context-menu/context-menu-group.svelte.d.ts +4 -0
  63. package/dist/components/ui/context-menu/context-menu-item.svelte +27 -0
  64. package/dist/components/ui/context-menu/context-menu-item.svelte.d.ts +8 -0
  65. package/dist/components/ui/context-menu/context-menu-label.svelte +24 -0
  66. package/dist/components/ui/context-menu/context-menu-label.svelte.d.ts +8 -0
  67. package/dist/components/ui/context-menu/context-menu-portal.svelte +7 -0
  68. package/dist/components/ui/context-menu/context-menu-portal.svelte.d.ts +3 -0
  69. package/dist/components/ui/context-menu/context-menu-radio-group.svelte +16 -0
  70. package/dist/components/ui/context-menu/context-menu-radio-group.svelte.d.ts +4 -0
  71. package/dist/components/ui/context-menu/context-menu-radio-item.svelte +33 -0
  72. package/dist/components/ui/context-menu/context-menu-radio-item.svelte.d.ts +4 -0
  73. package/dist/components/ui/context-menu/context-menu-separator.svelte +17 -0
  74. package/dist/components/ui/context-menu/context-menu-separator.svelte.d.ts +4 -0
  75. package/dist/components/ui/context-menu/context-menu-shortcut.svelte +20 -0
  76. package/dist/components/ui/context-menu/context-menu-shortcut.svelte.d.ts +5 -0
  77. package/dist/components/ui/context-menu/context-menu-sub-content.svelte +20 -0
  78. package/dist/components/ui/context-menu/context-menu-sub-content.svelte.d.ts +4 -0
  79. package/dist/components/ui/context-menu/context-menu-sub-trigger.svelte +29 -0
  80. package/dist/components/ui/context-menu/context-menu-sub-trigger.svelte.d.ts +8 -0
  81. package/dist/components/ui/context-menu/context-menu-sub.svelte +7 -0
  82. package/dist/components/ui/context-menu/context-menu-sub.svelte.d.ts +3 -0
  83. package/dist/components/ui/context-menu/context-menu-trigger.svelte +7 -0
  84. package/dist/components/ui/context-menu/context-menu-trigger.svelte.d.ts +4 -0
  85. package/dist/components/ui/context-menu/context-menu.svelte +7 -0
  86. package/dist/components/ui/context-menu/context-menu.svelte.d.ts +3 -0
  87. package/dist/components/ui/context-menu/index.d.ts +17 -0
  88. package/dist/components/ui/context-menu/index.js +19 -0
  89. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-group.svelte +16 -0
  90. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-group.svelte.d.ts +4 -0
  91. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +43 -0
  92. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +9 -0
  93. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +29 -0
  94. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte.d.ts +10 -0
  95. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +22 -0
  96. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte.d.ts +8 -0
  97. package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte +7 -0
  98. package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte.d.ts +4 -0
  99. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +27 -0
  100. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte.d.ts +8 -0
  101. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +24 -0
  102. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte.d.ts +8 -0
  103. package/dist/components/ui/dropdown-menu/dropdown-menu-portal.svelte +7 -0
  104. package/dist/components/ui/dropdown-menu/dropdown-menu-portal.svelte.d.ts +3 -0
  105. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +16 -0
  106. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte.d.ts +4 -0
  107. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +33 -0
  108. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts +4 -0
  109. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +17 -0
  110. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte.d.ts +4 -0
  111. package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte +20 -0
  112. package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte.d.ts +5 -0
  113. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +20 -0
  114. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +4 -0
  115. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +29 -0
  116. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts +7 -0
  117. package/dist/components/ui/dropdown-menu/dropdown-menu-sub.svelte +7 -0
  118. package/dist/components/ui/dropdown-menu/dropdown-menu-sub.svelte.d.ts +3 -0
  119. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +7 -0
  120. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte.d.ts +4 -0
  121. package/dist/components/ui/dropdown-menu/dropdown-menu.svelte +7 -0
  122. package/dist/components/ui/dropdown-menu/dropdown-menu.svelte.d.ts +3 -0
  123. package/dist/components/ui/dropdown-menu/index.d.ts +18 -0
  124. package/dist/components/ui/dropdown-menu/index.js +18 -0
  125. package/dist/components/ui/input/index.d.ts +2 -0
  126. package/dist/components/ui/input/index.js +4 -0
  127. package/dist/components/ui/input/input.svelte +52 -0
  128. package/dist/components/ui/input/input.svelte.d.ts +13 -0
  129. package/dist/components/ui/resizable/index.d.ts +4 -0
  130. package/dist/components/ui/resizable/index.js +6 -0
  131. package/dist/components/ui/resizable/resizable-handle.svelte +30 -0
  132. package/dist/components/ui/resizable/resizable-handle.svelte.d.ts +8 -0
  133. package/dist/components/ui/resizable/resizable-pane-group.svelte +20 -0
  134. package/dist/components/ui/resizable/resizable-pane-group.svelte.d.ts +7 -0
  135. package/dist/components/ui/scroll-area/index.d.ts +3 -0
  136. package/dist/components/ui/scroll-area/index.js +5 -0
  137. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte +31 -0
  138. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte.d.ts +4 -0
  139. package/dist/components/ui/scroll-area/scroll-area.svelte +47 -0
  140. package/dist/components/ui/scroll-area/scroll-area.svelte.d.ts +11 -0
  141. package/dist/components/ui/separator/index.d.ts +2 -0
  142. package/dist/components/ui/separator/index.js +4 -0
  143. package/dist/components/ui/separator/separator.svelte +21 -0
  144. package/dist/components/ui/separator/separator.svelte.d.ts +4 -0
  145. package/dist/components/ui/sheet/index.d.ts +11 -0
  146. package/dist/components/ui/sheet/index.js +13 -0
  147. package/dist/components/ui/sheet/sheet-close.svelte +7 -0
  148. package/dist/components/ui/sheet/sheet-close.svelte.d.ts +4 -0
  149. package/dist/components/ui/sheet/sheet-content.svelte +62 -0
  150. package/dist/components/ui/sheet/sheet-content.svelte.d.ts +37 -0
  151. package/dist/components/ui/sheet/sheet-description.svelte +17 -0
  152. package/dist/components/ui/sheet/sheet-description.svelte.d.ts +4 -0
  153. package/dist/components/ui/sheet/sheet-footer.svelte +20 -0
  154. package/dist/components/ui/sheet/sheet-footer.svelte.d.ts +5 -0
  155. package/dist/components/ui/sheet/sheet-header.svelte +20 -0
  156. package/dist/components/ui/sheet/sheet-header.svelte.d.ts +5 -0
  157. package/dist/components/ui/sheet/sheet-overlay.svelte +20 -0
  158. package/dist/components/ui/sheet/sheet-overlay.svelte.d.ts +4 -0
  159. package/dist/components/ui/sheet/sheet-portal.svelte +7 -0
  160. package/dist/components/ui/sheet/sheet-portal.svelte.d.ts +3 -0
  161. package/dist/components/ui/sheet/sheet-title.svelte +13 -0
  162. package/dist/components/ui/sheet/sheet-title.svelte.d.ts +4 -0
  163. package/dist/components/ui/sheet/sheet-trigger.svelte +7 -0
  164. package/dist/components/ui/sheet/sheet-trigger.svelte.d.ts +4 -0
  165. package/dist/components/ui/sheet/sheet.svelte +7 -0
  166. package/dist/components/ui/sheet/sheet.svelte.d.ts +3 -0
  167. package/dist/components/ui/switch/index.d.ts +2 -0
  168. package/dist/components/ui/switch/index.js +4 -0
  169. package/dist/components/ui/switch/switch.svelte +28 -0
  170. package/dist/components/ui/switch/switch.svelte.d.ts +8 -0
  171. package/dist/components/ui/tabs/index.d.ts +5 -0
  172. package/dist/components/ui/tabs/index.js +7 -0
  173. package/dist/components/ui/tabs/tabs-content.svelte +17 -0
  174. package/dist/components/ui/tabs/tabs-content.svelte.d.ts +4 -0
  175. package/dist/components/ui/tabs/tabs-list.svelte +16 -0
  176. package/dist/components/ui/tabs/tabs-list.svelte.d.ts +4 -0
  177. package/dist/components/ui/tabs/tabs-trigger.svelte +20 -0
  178. package/dist/components/ui/tabs/tabs-trigger.svelte.d.ts +4 -0
  179. package/dist/components/ui/tabs/tabs.svelte +19 -0
  180. package/dist/components/ui/tabs/tabs.svelte.d.ts +4 -0
  181. package/dist/components/ui/tooltip/index.d.ts +6 -0
  182. package/dist/components/ui/tooltip/index.js +8 -0
  183. package/dist/components/ui/tooltip/tooltip-content.svelte +52 -0
  184. package/dist/components/ui/tooltip/tooltip-content.svelte.d.ts +11 -0
  185. package/dist/components/ui/tooltip/tooltip-portal.svelte +7 -0
  186. package/dist/components/ui/tooltip/tooltip-portal.svelte.d.ts +4 -0
  187. package/dist/components/ui/tooltip/tooltip-provider.svelte +7 -0
  188. package/dist/components/ui/tooltip/tooltip-provider.svelte.d.ts +4 -0
  189. package/dist/components/ui/tooltip/tooltip-trigger.svelte +7 -0
  190. package/dist/components/ui/tooltip/tooltip-trigger.svelte.d.ts +4 -0
  191. package/dist/components/ui/tooltip/tooltip.svelte +7 -0
  192. package/dist/components/ui/tooltip/tooltip.svelte.d.ts +4 -0
  193. package/dist/components/viewers/ArchiveViewer.svelte +586 -0
  194. package/dist/components/viewers/ArchiveViewer.svelte.d.ts +7 -0
  195. package/dist/components/viewers/CLAUDE.md +60 -0
  196. package/dist/components/viewers/CodeViewer.svelte +553 -0
  197. package/dist/components/viewers/CodeViewer.svelte.d.ts +7 -0
  198. package/dist/components/viewers/CogViewer.svelte +1345 -0
  199. package/dist/components/viewers/CogViewer.svelte.d.ts +7 -0
  200. package/dist/components/viewers/CopcViewer.svelte +25 -0
  201. package/dist/components/viewers/CopcViewer.svelte.d.ts +7 -0
  202. package/dist/components/viewers/DatabaseViewer.svelte +169 -0
  203. package/dist/components/viewers/DatabaseViewer.svelte.d.ts +7 -0
  204. package/dist/components/viewers/FileInfo.svelte +174 -0
  205. package/dist/components/viewers/FileInfo.svelte.d.ts +10 -0
  206. package/dist/components/viewers/FlatGeobufViewer.svelte +755 -0
  207. package/dist/components/viewers/FlatGeobufViewer.svelte.d.ts +7 -0
  208. package/dist/components/viewers/GeoParquetMapViewer.svelte +278 -0
  209. package/dist/components/viewers/GeoParquetMapViewer.svelte.d.ts +17 -0
  210. package/dist/components/viewers/ImageViewer.svelte +233 -0
  211. package/dist/components/viewers/ImageViewer.svelte.d.ts +7 -0
  212. package/dist/components/viewers/LoadProgress.svelte +93 -0
  213. package/dist/components/viewers/LoadProgress.svelte.d.ts +15 -0
  214. package/dist/components/viewers/MapViewer.svelte +234 -0
  215. package/dist/components/viewers/MapViewer.svelte.d.ts +7 -0
  216. package/dist/components/viewers/MarkdownViewer.svelte +478 -0
  217. package/dist/components/viewers/MarkdownViewer.svelte.d.ts +7 -0
  218. package/dist/components/viewers/MediaViewer.svelte +121 -0
  219. package/dist/components/viewers/MediaViewer.svelte.d.ts +7 -0
  220. package/dist/components/viewers/ModelViewer.svelte +164 -0
  221. package/dist/components/viewers/ModelViewer.svelte.d.ts +7 -0
  222. package/dist/components/viewers/NotebookViewer.svelte +389 -0
  223. package/dist/components/viewers/NotebookViewer.svelte.d.ts +7 -0
  224. package/dist/components/viewers/PdfViewer.svelte +278 -0
  225. package/dist/components/viewers/PdfViewer.svelte.d.ts +7 -0
  226. package/dist/components/viewers/PmtilesViewer.svelte +191 -0
  227. package/dist/components/viewers/PmtilesViewer.svelte.d.ts +7 -0
  228. package/dist/components/viewers/QueryHistoryPanel.svelte +159 -0
  229. package/dist/components/viewers/QueryHistoryPanel.svelte.d.ts +8 -0
  230. package/dist/components/viewers/RawViewer.svelte +117 -0
  231. package/dist/components/viewers/RawViewer.svelte.d.ts +7 -0
  232. package/dist/components/viewers/StacMapViewer.svelte +20 -0
  233. package/dist/components/viewers/StacMapViewer.svelte.d.ts +7 -0
  234. package/dist/components/viewers/StyleEditorOverlay.svelte +27 -0
  235. package/dist/components/viewers/StyleEditorOverlay.svelte.d.ts +7 -0
  236. package/dist/components/viewers/TableGrid.svelte +355 -0
  237. package/dist/components/viewers/TableGrid.svelte.d.ts +12 -0
  238. package/dist/components/viewers/TableStatusBar.svelte +92 -0
  239. package/dist/components/viewers/TableStatusBar.svelte.d.ts +11 -0
  240. package/dist/components/viewers/TableToolbar.svelte +382 -0
  241. package/dist/components/viewers/TableToolbar.svelte.d.ts +25 -0
  242. package/dist/components/viewers/TableViewer.svelte +923 -0
  243. package/dist/components/viewers/TableViewer.svelte.d.ts +7 -0
  244. package/dist/components/viewers/ViewerRouter.svelte +70 -0
  245. package/dist/components/viewers/ViewerRouter.svelte.d.ts +7 -0
  246. package/dist/components/viewers/ZarrMapViewer.svelte +288 -0
  247. package/dist/components/viewers/ZarrMapViewer.svelte.d.ts +17 -0
  248. package/dist/components/viewers/ZarrViewer.svelte +256 -0
  249. package/dist/components/viewers/ZarrViewer.svelte.d.ts +7 -0
  250. package/dist/components/viewers/map/AttributeTable.svelte +52 -0
  251. package/dist/components/viewers/map/AttributeTable.svelte.d.ts +8 -0
  252. package/dist/components/viewers/map/MapContainer.svelte +158 -0
  253. package/dist/components/viewers/map/MapContainer.svelte.d.ts +12 -0
  254. package/dist/components/viewers/pmtiles/PmtilesArchiveView.svelte +389 -0
  255. package/dist/components/viewers/pmtiles/PmtilesArchiveView.svelte.d.ts +10 -0
  256. package/dist/components/viewers/pmtiles/PmtilesMapView.svelte +332 -0
  257. package/dist/components/viewers/pmtiles/PmtilesMapView.svelte.d.ts +11 -0
  258. package/dist/components/viewers/pmtiles/PmtilesTileInspector.svelte +373 -0
  259. package/dist/components/viewers/pmtiles/PmtilesTileInspector.svelte.d.ts +12 -0
  260. package/dist/components/viewers/pmtiles/SvgTileRenderer.svelte +112 -0
  261. package/dist/components/viewers/pmtiles/SvgTileRenderer.svelte.d.ts +10 -0
  262. package/dist/file-icons/CLAUDE.md +21 -0
  263. package/dist/file-icons/FileTypeIcon.svelte +74 -0
  264. package/dist/file-icons/FileTypeIcon.svelte.d.ts +9 -0
  265. package/dist/file-icons/index.d.ts +56 -0
  266. package/dist/file-icons/index.js +1070 -0
  267. package/dist/i18n/CLAUDE.md +19 -0
  268. package/dist/i18n/ar.d.ts +1 -0
  269. package/dist/i18n/ar.js +404 -0
  270. package/dist/i18n/en.d.ts +1 -0
  271. package/dist/i18n/en.js +404 -0
  272. package/dist/i18n/index.svelte.d.ts +9 -0
  273. package/dist/i18n/index.svelte.js +27 -0
  274. package/dist/index.d.ts +20 -0
  275. package/dist/index.js +13 -0
  276. package/dist/query/CLAUDE.md +22 -0
  277. package/dist/query/engine.d.ts +56 -0
  278. package/dist/query/engine.js +6 -0
  279. package/dist/query/index.d.ts +4 -0
  280. package/dist/query/index.js +19 -0
  281. package/dist/query/wasm.d.ts +20 -0
  282. package/dist/query/wasm.js +890 -0
  283. package/dist/storage/CLAUDE.md +23 -0
  284. package/dist/storage/adapter.d.ts +21 -0
  285. package/dist/storage/adapter.js +1 -0
  286. package/dist/storage/browser-azure.d.ts +25 -0
  287. package/dist/storage/browser-azure.js +271 -0
  288. package/dist/storage/browser-cloud.d.ts +32 -0
  289. package/dist/storage/browser-cloud.js +293 -0
  290. package/dist/storage/index.d.ts +11 -0
  291. package/dist/storage/index.js +37 -0
  292. package/dist/storage/url-adapter.d.ts +19 -0
  293. package/dist/storage/url-adapter.js +51 -0
  294. package/dist/stores/CLAUDE.md +29 -0
  295. package/dist/stores/browser.svelte.d.ts +28 -0
  296. package/dist/stores/browser.svelte.js +160 -0
  297. package/dist/stores/connections.svelte.d.ts +56 -0
  298. package/dist/stores/connections.svelte.js +272 -0
  299. package/dist/stores/credentials.svelte.d.ts +56 -0
  300. package/dist/stores/credentials.svelte.js +79 -0
  301. package/dist/stores/files.svelte.d.ts +20 -0
  302. package/dist/stores/files.svelte.js +76 -0
  303. package/dist/stores/query-history.svelte.d.ts +16 -0
  304. package/dist/stores/query-history.svelte.js +57 -0
  305. package/dist/stores/safelock.svelte.d.ts +8 -0
  306. package/dist/stores/safelock.svelte.js +52 -0
  307. package/dist/stores/settings.svelte.d.ts +11 -0
  308. package/dist/stores/settings.svelte.js +101 -0
  309. package/dist/stores/tab-resources.svelte.d.ts +25 -0
  310. package/dist/stores/tab-resources.svelte.js +61 -0
  311. package/dist/stores/tabs.svelte.d.ts +17 -0
  312. package/dist/stores/tabs.svelte.js +110 -0
  313. package/dist/types/notebookjs.d.ts +14 -0
  314. package/dist/types.d.ts +47 -0
  315. package/dist/types.js +1 -0
  316. package/dist/utils/CLAUDE.md +54 -0
  317. package/dist/utils/analytics.d.ts +10 -0
  318. package/dist/utils/analytics.js +38 -0
  319. package/dist/utils/archive.d.ts +70 -0
  320. package/dist/utils/archive.js +333 -0
  321. package/dist/utils/column-types.d.ts +5 -0
  322. package/dist/utils/column-types.js +137 -0
  323. package/dist/utils/deck.d.ts +98 -0
  324. package/dist/utils/deck.js +208 -0
  325. package/dist/utils/evidence-context.d.ts +22 -0
  326. package/dist/utils/evidence-context.js +56 -0
  327. package/dist/utils/export.d.ts +2 -0
  328. package/dist/utils/export.js +51 -0
  329. package/dist/utils/format.d.ts +14 -0
  330. package/dist/utils/format.js +56 -0
  331. package/dist/utils/geoarrow.d.ts +32 -0
  332. package/dist/utils/geoarrow.js +672 -0
  333. package/dist/utils/hex.d.ts +10 -0
  334. package/dist/utils/hex.js +27 -0
  335. package/dist/utils/host-detection.d.ts +23 -0
  336. package/dist/utils/host-detection.js +289 -0
  337. package/dist/utils/map-selection.d.ts +12 -0
  338. package/dist/utils/map-selection.js +45 -0
  339. package/dist/utils/markdown-sql.d.ts +30 -0
  340. package/dist/utils/markdown-sql.js +73 -0
  341. package/dist/utils/markdown.d.ts +18 -0
  342. package/dist/utils/markdown.js +146 -0
  343. package/dist/utils/model3d.d.ts +13 -0
  344. package/dist/utils/model3d.js +62 -0
  345. package/dist/utils/parquet-metadata.d.ts +58 -0
  346. package/dist/utils/parquet-metadata.js +228 -0
  347. package/dist/utils/pdf.d.ts +8 -0
  348. package/dist/utils/pdf.js +28 -0
  349. package/dist/utils/pmtiles-tile.d.ts +38 -0
  350. package/dist/utils/pmtiles-tile.js +64 -0
  351. package/dist/utils/pmtiles.d.ts +46 -0
  352. package/dist/utils/pmtiles.js +135 -0
  353. package/dist/utils/shiki.d.ts +8 -0
  354. package/dist/utils/shiki.js +98 -0
  355. package/dist/utils/storage-url.d.ts +64 -0
  356. package/dist/utils/storage-url.js +374 -0
  357. package/dist/utils/url-state.d.ts +40 -0
  358. package/dist/utils/url-state.js +113 -0
  359. package/dist/utils/url.d.ts +27 -0
  360. package/dist/utils/url.js +115 -0
  361. package/dist/utils/wkb.d.ts +43 -0
  362. package/dist/utils/wkb.js +345 -0
  363. package/dist/utils/zarr.d.ts +39 -0
  364. package/dist/utils/zarr.js +204 -0
  365. package/dist/utils.d.ts +12 -0
  366. package/dist/utils.js +5 -0
  367. package/package.json +203 -0
@@ -0,0 +1,204 @@
1
+ /**
2
+ * Zarr metadata parsing utilities.
3
+ *
4
+ * Handles consolidated metadata for both Zarr v2 (.zmetadata) and v3 (zarr.json),
5
+ * plus a zarrita fallback for non-consolidated stores.
6
+ */
7
+ /** Dimension-like variable names treated as coordinates. */
8
+ const DIM_LIKE_NAMES = new Set([
9
+ 'x',
10
+ 'y',
11
+ 'lat',
12
+ 'lon',
13
+ 'latitude',
14
+ 'longitude',
15
+ 'time',
16
+ 'init_time',
17
+ 'lead_time',
18
+ 'valid_time',
19
+ 'spatial_ref'
20
+ ]);
21
+ /** Guess dimension names from shape length when metadata is absent. */
22
+ export function inferDims(name, shape) {
23
+ if (shape.length === 4)
24
+ return ['init_time', 'lead_time', 'y', 'x'];
25
+ if (shape.length === 3)
26
+ return ['time', 'y', 'x'];
27
+ if (shape.length === 2)
28
+ return ['y', 'x'];
29
+ if (shape.length === 1)
30
+ return [name];
31
+ return shape.map((_, i) => `dim_${i}`);
32
+ }
33
+ /** Format shape array for display: `[3 × 256 × 512]` or `scalar`. */
34
+ export function formatShape(shape) {
35
+ if (shape.length === 0)
36
+ return 'scalar';
37
+ return `[${shape.join(' × ')}]`;
38
+ }
39
+ /** Collect coordinate variable names from `coordinates` attributes across all entries. */
40
+ function collectCoordNames(entries) {
41
+ const names = new Set();
42
+ for (const [, info] of entries) {
43
+ const coordStr = info.attributes?.coordinates;
44
+ if (typeof coordStr === 'string') {
45
+ for (const c of coordStr.split(/\s+/))
46
+ names.add(c);
47
+ }
48
+ }
49
+ return names;
50
+ }
51
+ /** Parse Zarr v3 consolidated metadata (zarr.json). */
52
+ export function parseV3Consolidated(data) {
53
+ const meta = data.consolidated_metadata?.metadata ?? {};
54
+ const attrs = data.attributes ?? {};
55
+ const vars = [];
56
+ const coords = [];
57
+ let srAttrs = null;
58
+ const coordNames = collectCoordNames(Object.entries(meta));
59
+ for (const [name, info] of Object.entries(meta)) {
60
+ if (!info.shape)
61
+ continue;
62
+ const v = {
63
+ name,
64
+ shape: info.shape,
65
+ dtype: info.data_type ?? 'unknown',
66
+ dims: info.attributes?._ARRAY_DIMENSIONS ?? inferDims(name, info.shape),
67
+ chunks: info.chunk_grid?.configuration?.chunk_shape ?? [],
68
+ attributes: info.attributes ?? {}
69
+ };
70
+ if (name === 'spatial_ref') {
71
+ srAttrs = v.attributes;
72
+ coords.push(v);
73
+ }
74
+ else if (coordNames.has(name) || DIM_LIKE_NAMES.has(name) || v.shape.length <= 1) {
75
+ coords.push(v);
76
+ }
77
+ else {
78
+ vars.push(v);
79
+ }
80
+ }
81
+ return { storeAttrs: attrs, variables: vars, coords, spatialRefAttrs: srAttrs };
82
+ }
83
+ /** Parse Zarr v2 consolidated metadata (.zmetadata). */
84
+ export function parseV2Consolidated(data) {
85
+ const meta = data.metadata ?? {};
86
+ const attrs = meta['.zattrs'] ?? {};
87
+ const vars = [];
88
+ const coords = [];
89
+ let srAttrs = null;
90
+ const arrayKeys = Object.keys(meta).filter((k) => k.endsWith('/.zarray'));
91
+ // Collect coordinate names from variable attributes
92
+ const coordNames = new Set();
93
+ for (const key of arrayKeys) {
94
+ const name = key.replace('/.zarray', '');
95
+ const varAttrs = meta[`${name}/.zattrs`] ?? {};
96
+ const coordStr = varAttrs.coordinates;
97
+ if (typeof coordStr === 'string') {
98
+ for (const c of coordStr.split(/\s+/))
99
+ coordNames.add(c);
100
+ }
101
+ }
102
+ for (const key of arrayKeys) {
103
+ const name = key.replace('/.zarray', '');
104
+ const zarray = meta[key];
105
+ const varAttrs = meta[`${name}/.zattrs`] ?? {};
106
+ const v = {
107
+ name,
108
+ shape: zarray.shape ?? [],
109
+ dtype: zarray.dtype ?? 'unknown',
110
+ dims: varAttrs._ARRAY_DIMENSIONS ?? [],
111
+ chunks: zarray.chunks ?? [],
112
+ attributes: varAttrs
113
+ };
114
+ if (name === 'spatial_ref') {
115
+ srAttrs = v.attributes;
116
+ coords.push(v);
117
+ }
118
+ else if (coordNames.has(name) || DIM_LIKE_NAMES.has(name) || v.shape.length <= 1) {
119
+ coords.push(v);
120
+ }
121
+ else {
122
+ vars.push(v);
123
+ }
124
+ }
125
+ return { storeAttrs: attrs, variables: vars, coords, spatialRefAttrs: srAttrs };
126
+ }
127
+ /**
128
+ * Fetch consolidated metadata from a Zarr store URL.
129
+ * Tries v3 (zarr.json) first, then v2 (.zmetadata).
130
+ */
131
+ export async function fetchConsolidated(storeUrl) {
132
+ // Try Zarr v3 zarr.json
133
+ try {
134
+ const res = await fetch(`${storeUrl}/zarr.json`);
135
+ if (res.ok) {
136
+ const data = await res.json();
137
+ if (data.zarr_format === 3) {
138
+ if (data.consolidated_metadata) {
139
+ return { ...parseV3Consolidated(data), zarrVersion: 3 };
140
+ }
141
+ // v3 without consolidated metadata — skip v2 probe
142
+ return null;
143
+ }
144
+ }
145
+ }
146
+ catch {
147
+ /* ignore */
148
+ }
149
+ // Try Zarr v2 .zmetadata
150
+ try {
151
+ const res = await fetch(`${storeUrl}/.zmetadata`);
152
+ if (res.ok) {
153
+ const data = await res.json();
154
+ if (data.metadata) {
155
+ return { ...parseV2Consolidated(data), zarrVersion: 2 };
156
+ }
157
+ }
158
+ }
159
+ catch {
160
+ /* ignore */
161
+ }
162
+ return null;
163
+ }
164
+ /**
165
+ * Fallback: probe a Zarr store using zarrita when consolidated metadata is unavailable.
166
+ * @param storeName - Display name for the root array (e.g. file name without .zarr)
167
+ */
168
+ export async function probeWithZarrita(storeUrl, storeName) {
169
+ const zarrita = await import('zarrita');
170
+ const store = new zarrita.FetchStore(storeUrl);
171
+ try {
172
+ const arr = await zarrita.open(store, { kind: 'array' });
173
+ const v = {
174
+ name: storeName,
175
+ shape: arr.shape ?? [],
176
+ dtype: String(arr.dtype ?? 'unknown'),
177
+ dims: arr.attrs?._ARRAY_DIMENSIONS ?? [],
178
+ chunks: arr.chunks ?? [],
179
+ attributes: arr.attrs ?? {}
180
+ };
181
+ return {
182
+ storeAttrs: {},
183
+ variables: [v],
184
+ coords: [],
185
+ spatialRefAttrs: null,
186
+ zarrVersion: null
187
+ };
188
+ }
189
+ catch {
190
+ try {
191
+ await zarrita.open(store, { kind: 'group' });
192
+ return {
193
+ storeAttrs: {},
194
+ variables: [],
195
+ coords: [],
196
+ spatialRefAttrs: null,
197
+ zarrVersion: null
198
+ };
199
+ }
200
+ catch {
201
+ return null;
202
+ }
203
+ }
204
+ }
@@ -0,0 +1,12 @@
1
+ import { type ClassValue } from 'clsx';
2
+ export declare function cn(...inputs: ClassValue[]): string;
3
+ export type WithoutChild<T> = T extends {
4
+ child?: any;
5
+ } ? Omit<T, 'child'> : T;
6
+ export type WithoutChildren<T> = T extends {
7
+ children?: any;
8
+ } ? Omit<T, 'children'> : T;
9
+ export type WithoutChildrenOrChild<T> = WithoutChildren<WithoutChild<T>>;
10
+ export type WithElementRef<T, U extends HTMLElement = HTMLElement> = T & {
11
+ ref?: U | null;
12
+ };
package/dist/utils.js ADDED
@@ -0,0 +1,5 @@
1
+ import { clsx } from 'clsx';
2
+ import { twMerge } from 'tailwind-merge';
3
+ export function cn(...inputs) {
4
+ return twMerge(clsx(inputs));
5
+ }
package/package.json ADDED
@@ -0,0 +1,203 @@
1
+ {
2
+ "name": "@walkthru-earth/objex",
3
+ "version": "0.1.0",
4
+ "description": "Svelte 5 components and utilities for exploring geospatial object storage — S3, GCS, Azure, R2",
5
+ "author": "Youssef Harby <yharby@walkthru.earth>",
6
+ "license": "CC-BY-4.0",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/walkthru-earth/objex.git"
10
+ },
11
+ "type": "module",
12
+ "svelte": "./dist/index.js",
13
+ "types": "./dist/index.d.ts",
14
+ "exports": {
15
+ ".": {
16
+ "types": "./dist/index.d.ts",
17
+ "svelte": "./dist/index.js"
18
+ },
19
+ "./storage": {
20
+ "types": "./dist/storage/index.d.ts",
21
+ "svelte": "./dist/storage/index.js"
22
+ },
23
+ "./query": {
24
+ "types": "./dist/query/engine.d.ts",
25
+ "svelte": "./dist/query/engine.js"
26
+ },
27
+ "./utils/wkb": {
28
+ "types": "./dist/utils/wkb.d.ts",
29
+ "svelte": "./dist/utils/wkb.js"
30
+ },
31
+ "./utils/geoarrow": {
32
+ "types": "./dist/utils/geoarrow.d.ts",
33
+ "svelte": "./dist/utils/geoarrow.js"
34
+ },
35
+ "./utils/storage-url": {
36
+ "types": "./dist/utils/storage-url.d.ts",
37
+ "svelte": "./dist/utils/storage-url.js"
38
+ },
39
+ "./utils/parquet-metadata": {
40
+ "types": "./dist/utils/parquet-metadata.d.ts",
41
+ "svelte": "./dist/utils/parquet-metadata.js"
42
+ },
43
+ "./utils/format": {
44
+ "types": "./dist/utils/format.d.ts",
45
+ "svelte": "./dist/utils/format.js"
46
+ },
47
+ "./utils/hex": {
48
+ "types": "./dist/utils/hex.d.ts",
49
+ "svelte": "./dist/utils/hex.js"
50
+ },
51
+ "./utils/column-types": {
52
+ "types": "./dist/utils/column-types.d.ts",
53
+ "svelte": "./dist/utils/column-types.js"
54
+ },
55
+ "./file-icons": {
56
+ "types": "./dist/file-icons/index.d.ts",
57
+ "svelte": "./dist/file-icons/index.js"
58
+ },
59
+ "./types": {
60
+ "types": "./dist/types.d.ts",
61
+ "svelte": "./dist/types.js"
62
+ }
63
+ },
64
+ "files": [
65
+ "dist",
66
+ "!dist/**/*.test.*"
67
+ ],
68
+ "sideEffects": [
69
+ "**/*.css"
70
+ ],
71
+ "engines": {
72
+ "node": ">=20",
73
+ "pnpm": ">=10"
74
+ },
75
+ "peerDependencies": {
76
+ "@sveltejs/kit": "^2",
77
+ "svelte": "^5"
78
+ },
79
+ "peerDependenciesMeta": {
80
+ "maplibre-gl": {
81
+ "optional": true
82
+ },
83
+ "deck.gl": {
84
+ "optional": true
85
+ },
86
+ "@deck.gl/core": {
87
+ "optional": true
88
+ },
89
+ "@deck.gl/layers": {
90
+ "optional": true
91
+ },
92
+ "@deck.gl/geo-layers": {
93
+ "optional": true
94
+ },
95
+ "@deck.gl/mapbox": {
96
+ "optional": true
97
+ },
98
+ "@duckdb/duckdb-wasm": {
99
+ "optional": true
100
+ },
101
+ "apache-arrow": {
102
+ "optional": true
103
+ },
104
+ "hyparquet": {
105
+ "optional": true
106
+ },
107
+ "hyparquet-compressors": {
108
+ "optional": true
109
+ }
110
+ },
111
+ "devDependencies": {
112
+ "@biomejs/biome": "^2.4.4",
113
+ "@changesets/changelog-github": "^0.5.2",
114
+ "@changesets/cli": "^2.29.8",
115
+ "@internationalized/date": "^3.11.0",
116
+ "@lucide/svelte": "^0.561.0",
117
+ "@sveltejs/adapter-static": "^3.0.10",
118
+ "@sveltejs/kit": "^2.53.0",
119
+ "@sveltejs/package": "^2.5.7",
120
+ "@sveltejs/vite-plugin-svelte": "^6.2.4",
121
+ "@tailwindcss/forms": "^0.5.11",
122
+ "@tailwindcss/typography": "^0.5.19",
123
+ "@tailwindcss/vite": "^4.2.0",
124
+ "bits-ui": "^2.16.2",
125
+ "clsx": "^2.1.1",
126
+ "lefthook": "^2.1.1",
127
+ "paneforge": "^1.0.2",
128
+ "publint": "^0.3.17",
129
+ "svelte": "^5.53.2",
130
+ "svelte-check": "^4.4.3",
131
+ "tailwind-merge": "^3.5.0",
132
+ "tailwind-variants": "^3.2.2",
133
+ "tailwindcss": "^4.2.0",
134
+ "tw-animate-css": "^1.4.0",
135
+ "typescript": "^5.9.3",
136
+ "vite": "^7.3.1"
137
+ },
138
+ "dependencies": {
139
+ "@babylonjs/core": "^8.52.0",
140
+ "@babylonjs/loaders": "^8.52.0",
141
+ "@carbonplan/zarr-layer": "^0.3.1",
142
+ "@codemirror/autocomplete": "^6.20.0",
143
+ "@codemirror/commands": "^6.10.2",
144
+ "@codemirror/lang-sql": "^6.10.0",
145
+ "@codemirror/language": "^6.12.1",
146
+ "@codemirror/state": "^6.5.4",
147
+ "@codemirror/theme-one-dark": "^6.1.3",
148
+ "@codemirror/view": "^6.39.15",
149
+ "@deck.gl/core": "^9.2.9",
150
+ "@deck.gl/geo-layers": "^9.2.9",
151
+ "@deck.gl/layers": "^9.2.9",
152
+ "@deck.gl/mapbox": "^9.2.9",
153
+ "@deck.gl/mesh-layers": "^9.2.9",
154
+ "@developmentseed/deck.gl-geotiff": "^0.2.0",
155
+ "@duckdb/duckdb-wasm": "1.33.1-dev19.0",
156
+ "@fontsource/cairo": "^5.2.7",
157
+ "@geoarrow/deck.gl-layers": "^0.3.1",
158
+ "@luma.gl/core": "^9.2.6",
159
+ "@mapbox/vector-tile": "^2.0.4",
160
+ "@milkdown/kit": "^7.18.0",
161
+ "@milkdown/theme-nord": "^7.18.0",
162
+ "@repeaterjs/repeater": "^3.0.6",
163
+ "@zip.js/zip.js": "^2.8.21",
164
+ "ansi_up": "^6.0.6",
165
+ "apache-arrow": "^21.1.0",
166
+ "aws4fetch": "^1.0.20",
167
+ "chart.js": "^4.5.1",
168
+ "deck.gl": "^9.2.9",
169
+ "flatgeobuf": "^4.4.0",
170
+ "geotiff": "^3.0.3",
171
+ "geotiff-geokeys-to-proj4": "^2024.4.13",
172
+ "hyparquet": "^1.25.0",
173
+ "hyparquet-compressors": "^1.1.1",
174
+ "lz-string": "^1.5.0",
175
+ "maplibre-gl": "^5.18.0",
176
+ "marked": "^17.0.3",
177
+ "mermaid": "^11.12.3",
178
+ "notebookjs": "^0.8.3",
179
+ "pbf": "^4.0.1",
180
+ "pdfjs-dist": "^5.4.624",
181
+ "pmtiles": "^4.4.0",
182
+ "posthog-js": "^1.352.0",
183
+ "proj4": "^2.20.2",
184
+ "shiki": "^3.22.0",
185
+ "sql-formatter": "^15.7.2",
186
+ "svelte-chartjs": "^3.1.5",
187
+ "yaml": "^2.8.2",
188
+ "zarrita": "^0.6.1"
189
+ },
190
+ "scripts": {
191
+ "dev": "vite dev",
192
+ "build": "vite build",
193
+ "preview": "vite preview",
194
+ "package": "svelte-kit sync && svelte-package -o dist && publint",
195
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
196
+ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
197
+ "lint": "biome lint src/ packages/",
198
+ "lint:fix": "biome lint --fix src/ packages/",
199
+ "format": "biome format --write src/ packages/",
200
+ "format:check": "biome format src/ packages/",
201
+ "ci:publish": "pnpm run package && pnpm --filter @walkthru-earth/objex-utils run build && pnpm publish -r --access public --no-git-checks --provenance"
202
+ }
203
+ }