@bendyline/squisq 0.1.2 → 1.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 (349) hide show
  1. package/dist/{themeLibrary-DySHPcgj.d.ts → Doc-1hmT1LZl.d.ts} +1 -42
  2. package/dist/MediaProvider-wpSe21B3.d.ts +66 -0
  3. package/dist/__tests__/animationUtils.test.d.ts +2 -0
  4. package/dist/__tests__/animationUtils.test.d.ts.map +1 -0
  5. package/dist/__tests__/animationUtils.test.js +60 -0
  6. package/dist/__tests__/animationUtils.test.js.map +1 -0
  7. package/dist/__tests__/contentContainer.test.d.ts +2 -0
  8. package/dist/__tests__/contentContainer.test.d.ts.map +1 -0
  9. package/dist/__tests__/contentContainer.test.js +234 -0
  10. package/dist/__tests__/contentContainer.test.js.map +1 -0
  11. package/dist/__tests__/contentExtractor.test.d.ts +2 -0
  12. package/dist/__tests__/contentExtractor.test.d.ts.map +1 -0
  13. package/dist/__tests__/contentExtractor.test.js +151 -0
  14. package/dist/__tests__/contentExtractor.test.js.map +1 -0
  15. package/dist/__tests__/geohash.test.d.ts +2 -0
  16. package/dist/__tests__/geohash.test.d.ts.map +1 -0
  17. package/dist/__tests__/geohash.test.js +87 -0
  18. package/dist/__tests__/geohash.test.js.map +1 -0
  19. package/dist/__tests__/getLayers.test.d.ts +2 -0
  20. package/dist/__tests__/getLayers.test.d.ts.map +1 -0
  21. package/dist/__tests__/getLayers.test.js +167 -0
  22. package/dist/__tests__/getLayers.test.js.map +1 -0
  23. package/dist/__tests__/haversine.test.d.ts +2 -0
  24. package/dist/__tests__/haversine.test.d.ts.map +1 -0
  25. package/dist/__tests__/haversine.test.js +56 -0
  26. package/dist/__tests__/haversine.test.js.map +1 -0
  27. package/dist/__tests__/localForageAdapter.test.d.ts +8 -0
  28. package/dist/__tests__/localForageAdapter.test.d.ts.map +1 -0
  29. package/dist/__tests__/localForageAdapter.test.js +130 -0
  30. package/dist/__tests__/localForageAdapter.test.js.map +1 -0
  31. package/dist/__tests__/markdown.test.d.ts +2 -0
  32. package/dist/__tests__/markdown.test.d.ts.map +1 -0
  33. package/dist/__tests__/markdown.test.js +654 -0
  34. package/dist/__tests__/markdown.test.js.map +1 -0
  35. package/dist/__tests__/markdownToDoc.test.d.ts +2 -0
  36. package/dist/__tests__/markdownToDoc.test.d.ts.map +1 -0
  37. package/dist/__tests__/markdownToDoc.test.js +313 -0
  38. package/dist/__tests__/markdownToDoc.test.js.map +1 -0
  39. package/dist/__tests__/seededRandom.test.d.ts +2 -0
  40. package/dist/__tests__/seededRandom.test.d.ts.map +1 -0
  41. package/dist/__tests__/seededRandom.test.js +125 -0
  42. package/dist/__tests__/seededRandom.test.js.map +1 -0
  43. package/dist/__tests__/slideshowGenerator.test.d.ts +2 -0
  44. package/dist/__tests__/slideshowGenerator.test.d.ts.map +1 -0
  45. package/dist/__tests__/slideshowGenerator.test.js +114 -0
  46. package/dist/__tests__/slideshowGenerator.test.js.map +1 -0
  47. package/dist/__tests__/storage.test.d.ts +2 -0
  48. package/dist/__tests__/storage.test.d.ts.map +1 -0
  49. package/dist/__tests__/storage.test.js +51 -0
  50. package/dist/__tests__/storage.test.js.map +1 -0
  51. package/dist/__tests__/templates.test.d.ts +2 -0
  52. package/dist/__tests__/templates.test.d.ts.map +1 -0
  53. package/dist/__tests__/templates.test.js +217 -0
  54. package/dist/__tests__/templates.test.js.map +1 -0
  55. package/dist/__tests__/timing.test.d.ts +2 -0
  56. package/dist/__tests__/timing.test.d.ts.map +1 -0
  57. package/dist/__tests__/timing.test.js +131 -0
  58. package/dist/__tests__/timing.test.js.map +1 -0
  59. package/dist/chunk-3E5F2XMR.js +129 -0
  60. package/dist/chunk-3E5F2XMR.js.map +1 -0
  61. package/dist/chunk-4CRBS35L.js +292 -0
  62. package/dist/chunk-4CRBS35L.js.map +1 -0
  63. package/dist/chunk-6YJPI6VI.js +35 -0
  64. package/dist/chunk-6YJPI6VI.js.map +1 -0
  65. package/dist/chunk-FVTQSNR7.js +100 -0
  66. package/dist/chunk-FVTQSNR7.js.map +1 -0
  67. package/dist/chunk-V543AI2F.js +1 -0
  68. package/dist/chunk-V543AI2F.js.map +1 -0
  69. package/dist/chunk-VP5SZTZ2.js +792 -0
  70. package/dist/chunk-VP5SZTZ2.js.map +1 -0
  71. package/dist/doc/docToMarkdown.d.ts +41 -0
  72. package/dist/doc/docToMarkdown.d.ts.map +1 -0
  73. package/dist/doc/docToMarkdown.js +88 -0
  74. package/dist/doc/docToMarkdown.js.map +1 -0
  75. package/dist/doc/getLayers.d.ts +65 -0
  76. package/dist/doc/getLayers.d.ts.map +1 -0
  77. package/dist/doc/getLayers.js +103 -0
  78. package/dist/doc/getLayers.js.map +1 -0
  79. package/dist/doc/index.d.ts +9 -3
  80. package/dist/doc/index.d.ts.map +1 -0
  81. package/dist/doc/index.js +6 -125
  82. package/dist/doc/index.js.map +1 -1
  83. package/dist/doc/markdownToDoc.d.ts +68 -0
  84. package/dist/doc/markdownToDoc.d.ts.map +1 -0
  85. package/dist/doc/markdownToDoc.js +225 -0
  86. package/dist/doc/markdownToDoc.js.map +1 -0
  87. package/dist/doc/templates/accentImage.d.ts +59 -0
  88. package/dist/doc/templates/accentImage.d.ts.map +1 -0
  89. package/dist/doc/templates/accentImage.js +275 -0
  90. package/dist/doc/templates/accentImage.js.map +1 -0
  91. package/dist/doc/templates/captionUtils.d.ts +20 -0
  92. package/dist/doc/templates/captionUtils.d.ts.map +1 -0
  93. package/dist/doc/templates/captionUtils.js +29 -0
  94. package/dist/doc/templates/captionUtils.js.map +1 -0
  95. package/dist/doc/templates/comparisonBar.d.ts +13 -0
  96. package/dist/doc/templates/comparisonBar.d.ts.map +1 -0
  97. package/dist/doc/templates/comparisonBar.js +127 -0
  98. package/dist/doc/templates/comparisonBar.js.map +1 -0
  99. package/dist/doc/templates/coverBlock.d.ts +51 -0
  100. package/dist/doc/templates/coverBlock.d.ts.map +1 -0
  101. package/dist/doc/templates/coverBlock.js +125 -0
  102. package/dist/doc/templates/coverBlock.js.map +1 -0
  103. package/dist/doc/templates/dateEvent.d.ts +15 -0
  104. package/dist/doc/templates/dateEvent.d.ts.map +1 -0
  105. package/dist/doc/templates/dateEvent.js +110 -0
  106. package/dist/doc/templates/dateEvent.js.map +1 -0
  107. package/dist/doc/templates/definitionCard.d.ts +13 -0
  108. package/dist/doc/templates/definitionCard.d.ts.map +1 -0
  109. package/dist/doc/templates/definitionCard.js +114 -0
  110. package/dist/doc/templates/definitionCard.js.map +1 -0
  111. package/dist/doc/templates/factCard.d.ts +15 -0
  112. package/dist/doc/templates/factCard.d.ts.map +1 -0
  113. package/dist/doc/templates/factCard.js +100 -0
  114. package/dist/doc/templates/factCard.js.map +1 -0
  115. package/dist/doc/templates/fullBleedQuote.d.ts +13 -0
  116. package/dist/doc/templates/fullBleedQuote.d.ts.map +1 -0
  117. package/dist/doc/templates/fullBleedQuote.js +54 -0
  118. package/dist/doc/templates/fullBleedQuote.js.map +1 -0
  119. package/dist/doc/templates/imageWithCaption.d.ts +13 -0
  120. package/dist/doc/templates/imageWithCaption.d.ts.map +1 -0
  121. package/dist/doc/templates/imageWithCaption.js +142 -0
  122. package/dist/doc/templates/imageWithCaption.js.map +1 -0
  123. package/dist/doc/templates/index.d.ts +104 -0
  124. package/dist/doc/templates/index.d.ts.map +1 -0
  125. package/dist/doc/templates/index.js +442 -0
  126. package/dist/doc/templates/index.js.map +1 -0
  127. package/dist/doc/templates/listBlock.d.ts +13 -0
  128. package/dist/doc/templates/listBlock.d.ts.map +1 -0
  129. package/dist/doc/templates/listBlock.js +89 -0
  130. package/dist/doc/templates/listBlock.js.map +1 -0
  131. package/dist/doc/templates/mapBlock.d.ts +17 -0
  132. package/dist/doc/templates/mapBlock.d.ts.map +1 -0
  133. package/dist/doc/templates/mapBlock.js +112 -0
  134. package/dist/doc/templates/mapBlock.js.map +1 -0
  135. package/dist/doc/templates/persistentLayers.d.ts +39 -0
  136. package/dist/doc/templates/persistentLayers.d.ts.map +1 -0
  137. package/dist/doc/templates/persistentLayers.js +447 -0
  138. package/dist/doc/templates/persistentLayers.js.map +1 -0
  139. package/dist/doc/templates/photoGrid.d.ts +20 -0
  140. package/dist/doc/templates/photoGrid.d.ts.map +1 -0
  141. package/dist/doc/templates/photoGrid.js +172 -0
  142. package/dist/doc/templates/photoGrid.js.map +1 -0
  143. package/dist/doc/templates/pullQuote.d.ts +13 -0
  144. package/dist/doc/templates/pullQuote.d.ts.map +1 -0
  145. package/dist/doc/templates/pullQuote.js +109 -0
  146. package/dist/doc/templates/pullQuote.js.map +1 -0
  147. package/dist/doc/templates/quoteBlock.d.ts +15 -0
  148. package/dist/doc/templates/quoteBlock.d.ts.map +1 -0
  149. package/dist/doc/templates/quoteBlock.js +97 -0
  150. package/dist/doc/templates/quoteBlock.js.map +1 -0
  151. package/dist/doc/templates/sectionHeader.d.ts +14 -0
  152. package/dist/doc/templates/sectionHeader.d.ts.map +1 -0
  153. package/dist/doc/templates/sectionHeader.js +96 -0
  154. package/dist/doc/templates/sectionHeader.js.map +1 -0
  155. package/dist/doc/templates/statHighlight.d.ts +15 -0
  156. package/dist/doc/templates/statHighlight.d.ts.map +1 -0
  157. package/dist/doc/templates/statHighlight.js +99 -0
  158. package/dist/doc/templates/statHighlight.js.map +1 -0
  159. package/dist/doc/templates/titleBlock.d.ts +13 -0
  160. package/dist/doc/templates/titleBlock.d.ts.map +1 -0
  161. package/dist/doc/templates/titleBlock.js +92 -0
  162. package/dist/doc/templates/titleBlock.js.map +1 -0
  163. package/dist/doc/templates/twoColumn.d.ts +15 -0
  164. package/dist/doc/templates/twoColumn.d.ts.map +1 -0
  165. package/dist/doc/templates/twoColumn.js +219 -0
  166. package/dist/doc/templates/twoColumn.js.map +1 -0
  167. package/dist/doc/templates/videoPullQuote.d.ts +20 -0
  168. package/dist/doc/templates/videoPullQuote.d.ts.map +1 -0
  169. package/dist/doc/templates/videoPullQuote.js +118 -0
  170. package/dist/doc/templates/videoPullQuote.js.map +1 -0
  171. package/dist/doc/templates/videoWithCaption.d.ts +20 -0
  172. package/dist/doc/templates/videoWithCaption.d.ts.map +1 -0
  173. package/dist/doc/templates/videoWithCaption.js +104 -0
  174. package/dist/doc/templates/videoWithCaption.js.map +1 -0
  175. package/dist/doc/utils/animationUtils.d.ts +34 -0
  176. package/dist/doc/utils/animationUtils.d.ts.map +1 -0
  177. package/dist/doc/utils/animationUtils.js +110 -0
  178. package/dist/doc/utils/animationUtils.js.map +1 -0
  179. package/dist/doc/utils/themeUtils.d.ts +55 -0
  180. package/dist/doc/utils/themeUtils.d.ts.map +1 -0
  181. package/dist/doc/utils/themeUtils.js +109 -0
  182. package/dist/doc/utils/themeUtils.js.map +1 -0
  183. package/dist/generate/contentExtractor.d.ts +112 -0
  184. package/dist/generate/contentExtractor.d.ts.map +1 -0
  185. package/dist/generate/contentExtractor.js +638 -0
  186. package/dist/generate/contentExtractor.js.map +1 -0
  187. package/dist/generate/index.d.ts +7 -0
  188. package/dist/generate/index.d.ts.map +1 -0
  189. package/dist/generate/index.js +4 -0
  190. package/dist/generate/index.js.map +1 -0
  191. package/dist/generate/slideshowGenerator.d.ts +72 -0
  192. package/dist/generate/slideshowGenerator.d.ts.map +1 -0
  193. package/dist/generate/slideshowGenerator.js +159 -0
  194. package/dist/generate/slideshowGenerator.js.map +1 -0
  195. package/dist/generate/templateMapper.d.ts +23 -0
  196. package/dist/generate/templateMapper.d.ts.map +1 -0
  197. package/dist/generate/templateMapper.js +114 -0
  198. package/dist/generate/templateMapper.js.map +1 -0
  199. package/dist/index.d.ts +9 -8
  200. package/dist/index.d.ts.map +1 -0
  201. package/dist/index.js +8 -216
  202. package/dist/index.js.map +1 -1
  203. package/dist/markdown/convert.d.ts +71 -0
  204. package/dist/markdown/convert.d.ts.map +1 -0
  205. package/dist/markdown/convert.js +746 -0
  206. package/dist/markdown/convert.js.map +1 -0
  207. package/dist/markdown/htmlParse.d.ts +26 -0
  208. package/dist/markdown/htmlParse.d.ts.map +1 -0
  209. package/dist/markdown/htmlParse.js +195 -0
  210. package/dist/markdown/htmlParse.js.map +1 -0
  211. package/dist/markdown/index.d.ts +19 -225
  212. package/dist/markdown/index.d.ts.map +1 -0
  213. package/dist/markdown/index.js +33 -32
  214. package/dist/markdown/index.js.map +1 -1
  215. package/dist/markdown/parse.d.ts +27 -0
  216. package/dist/markdown/parse.d.ts.map +1 -0
  217. package/dist/markdown/parse.js +90 -0
  218. package/dist/markdown/parse.js.map +1 -0
  219. package/dist/markdown/stringify.d.ts +32 -0
  220. package/dist/markdown/stringify.d.ts.map +1 -0
  221. package/dist/markdown/stringify.js +108 -0
  222. package/dist/markdown/stringify.js.map +1 -0
  223. package/dist/markdown/types.d.ts +496 -0
  224. package/dist/markdown/types.d.ts.map +1 -0
  225. package/dist/markdown/types.js +17 -0
  226. package/dist/markdown/types.js.map +1 -0
  227. package/dist/markdown/utils.d.ts +78 -0
  228. package/dist/markdown/utils.d.ts.map +1 -0
  229. package/dist/markdown/utils.js +149 -0
  230. package/dist/markdown/utils.js.map +1 -0
  231. package/dist/random/SeededRandom.d.ts +50 -0
  232. package/dist/random/SeededRandom.d.ts.map +1 -0
  233. package/dist/random/SeededRandom.js +115 -0
  234. package/dist/random/SeededRandom.js.map +1 -0
  235. package/dist/random/index.d.ts +2 -0
  236. package/dist/random/index.d.ts.map +1 -0
  237. package/dist/random/index.js +2 -0
  238. package/dist/random/index.js.map +1 -0
  239. package/dist/schemas/BlockTemplates.d.ts +583 -0
  240. package/dist/schemas/BlockTemplates.d.ts.map +1 -0
  241. package/dist/schemas/BlockTemplates.js +72 -0
  242. package/dist/schemas/BlockTemplates.js.map +1 -0
  243. package/dist/schemas/Doc.d.ts +411 -0
  244. package/dist/schemas/Doc.d.ts.map +1 -0
  245. package/dist/schemas/Doc.js +90 -0
  246. package/dist/schemas/Doc.js.map +1 -0
  247. package/dist/schemas/LayoutStrategy.d.ts +84 -0
  248. package/dist/schemas/LayoutStrategy.d.ts.map +1 -0
  249. package/dist/schemas/LayoutStrategy.js +123 -0
  250. package/dist/schemas/LayoutStrategy.js.map +1 -0
  251. package/dist/schemas/MediaProvider.d.ts +65 -0
  252. package/dist/schemas/MediaProvider.d.ts.map +1 -0
  253. package/dist/schemas/MediaProvider.js +13 -0
  254. package/dist/schemas/MediaProvider.js.map +1 -0
  255. package/dist/schemas/Theme.d.ts +163 -0
  256. package/dist/schemas/Theme.d.ts.map +1 -0
  257. package/dist/schemas/Theme.js +62 -0
  258. package/dist/schemas/Theme.js.map +1 -0
  259. package/dist/schemas/Types.d.ts +14 -0
  260. package/dist/schemas/Types.d.ts.map +1 -0
  261. package/dist/schemas/Types.js +5 -0
  262. package/dist/schemas/Types.js.map +1 -0
  263. package/dist/schemas/Viewport.d.ts +74 -0
  264. package/dist/schemas/Viewport.d.ts.map +1 -0
  265. package/dist/schemas/Viewport.js +63 -0
  266. package/dist/schemas/Viewport.js.map +1 -0
  267. package/dist/schemas/index.d.ts +10 -70
  268. package/dist/schemas/index.d.ts.map +1 -0
  269. package/dist/schemas/index.js +7 -60
  270. package/dist/schemas/index.js.map +1 -1
  271. package/dist/schemas/themeLibrary.d.ts +41 -0
  272. package/dist/schemas/themeLibrary.d.ts.map +1 -0
  273. package/dist/schemas/themeLibrary.js +466 -0
  274. package/dist/schemas/themeLibrary.js.map +1 -0
  275. package/dist/spatial/Geohash.d.ts +85 -0
  276. package/dist/spatial/Geohash.d.ts.map +1 -0
  277. package/dist/spatial/Geohash.js +142 -0
  278. package/dist/spatial/Geohash.js.map +1 -0
  279. package/dist/spatial/Haversine.d.ts +24 -0
  280. package/dist/spatial/Haversine.d.ts.map +1 -0
  281. package/dist/spatial/Haversine.js +48 -0
  282. package/dist/spatial/Haversine.js.map +1 -0
  283. package/dist/spatial/index.d.ts +3 -111
  284. package/dist/spatial/index.d.ts.map +1 -0
  285. package/dist/spatial/index.js +2 -24
  286. package/dist/spatial/index.js.map +1 -1
  287. package/dist/storage/ContentContainer.d.ts +87 -0
  288. package/dist/storage/ContentContainer.d.ts.map +1 -0
  289. package/dist/storage/ContentContainer.js +122 -0
  290. package/dist/storage/ContentContainer.js.map +1 -0
  291. package/dist/storage/LocalForageAdapter.d.ts +36 -0
  292. package/dist/storage/LocalForageAdapter.d.ts.map +1 -0
  293. package/dist/storage/LocalForageAdapter.js +82 -0
  294. package/dist/storage/LocalForageAdapter.js.map +1 -0
  295. package/dist/storage/LocalStorageAdapter.d.ts +16 -0
  296. package/dist/storage/LocalStorageAdapter.d.ts.map +1 -0
  297. package/dist/storage/LocalStorageAdapter.js +50 -0
  298. package/dist/storage/LocalStorageAdapter.js.map +1 -0
  299. package/dist/storage/MediaProviderFromContainer.d.ts +21 -0
  300. package/dist/storage/MediaProviderFromContainer.d.ts.map +1 -0
  301. package/dist/storage/MediaProviderFromContainer.js +79 -0
  302. package/dist/storage/MediaProviderFromContainer.js.map +1 -0
  303. package/dist/storage/MemoryStorageAdapter.d.ts +15 -0
  304. package/dist/storage/MemoryStorageAdapter.d.ts.map +1 -0
  305. package/dist/storage/MemoryStorageAdapter.js +34 -0
  306. package/dist/storage/MemoryStorageAdapter.js.map +1 -0
  307. package/dist/storage/Storage.d.ts +23 -0
  308. package/dist/storage/Storage.d.ts.map +1 -0
  309. package/dist/storage/Storage.js +9 -0
  310. package/dist/storage/Storage.js.map +1 -0
  311. package/dist/storage/index.d.ts +9 -91
  312. package/dist/storage/index.d.ts.map +1 -0
  313. package/dist/storage/index.js +5 -10
  314. package/dist/storage/index.js.map +1 -1
  315. package/dist/story/index.d.ts +3 -2
  316. package/dist/themeLibrary-DR1VRo-8.d.ts +44 -0
  317. package/dist/timing/index.d.ts +4 -0
  318. package/dist/timing/index.d.ts.map +1 -0
  319. package/dist/timing/index.js +3 -0
  320. package/dist/timing/index.js.map +1 -0
  321. package/dist/timing/narrationTiming.d.ts +54 -0
  322. package/dist/timing/narrationTiming.d.ts.map +1 -0
  323. package/dist/timing/narrationTiming.js +190 -0
  324. package/dist/timing/narrationTiming.js.map +1 -0
  325. package/dist/timing/readingTime.d.ts +54 -0
  326. package/dist/timing/readingTime.d.ts.map +1 -0
  327. package/dist/timing/readingTime.js +49 -0
  328. package/dist/timing/readingTime.js.map +1 -0
  329. package/package.json +17 -3
  330. package/src/__tests__/contentContainer.test.ts +282 -0
  331. package/src/__tests__/contentExtractor.test.ts +183 -0
  332. package/src/__tests__/seededRandom.test.ts +142 -0
  333. package/src/__tests__/slideshowGenerator.test.ts +128 -0
  334. package/src/__tests__/timing.test.ts +167 -0
  335. package/src/generate/contentExtractor.ts +808 -0
  336. package/src/generate/index.ts +21 -0
  337. package/src/generate/slideshowGenerator.ts +273 -0
  338. package/src/generate/templateMapper.ts +170 -0
  339. package/src/index.ts +3 -0
  340. package/src/random/SeededRandom.ts +127 -0
  341. package/src/random/index.ts +1 -0
  342. package/src/storage/ContentContainer.ts +200 -0
  343. package/src/storage/MediaProviderFromContainer.ts +92 -0
  344. package/src/storage/index.ts +3 -0
  345. package/src/timing/index.ts +17 -0
  346. package/src/timing/narrationTiming.ts +220 -0
  347. package/src/timing/readingTime.ts +94 -0
  348. package/dist/chunk-VJN7UB2Z.js +0 -145
  349. package/dist/chunk-VJN7UB2Z.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themeLibrary.js","sourceRoot":"","sources":["../../src/schemas/themeLibrary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Geohash Utilities
3
+ *
4
+ * Provides geohash encoding/decoding and spatial utilities using the standard
5
+ * ngeohash library for core operations, plus custom utilities for overlap checking
6
+ * and distance calculation.
7
+ *
8
+ * Geohashes are a hierarchical spatial indexing system that divides the world
9
+ * into a grid of cells. Each additional character narrows the area by ~1/32.
10
+ *
11
+ * Precision guide:
12
+ * - 4 chars: ~39km x 19km (used for tile indexing)
13
+ * - 5 chars: ~5km x 5km
14
+ * - 6 chars: ~1.2km x 0.6km
15
+ */
16
+ /**
17
+ * Encode latitude/longitude to a geohash string.
18
+ * Uses the standard ngeohash library.
19
+ */
20
+ export declare function encodeGeohash(lat: number, lng: number, precision?: number): string;
21
+ /**
22
+ * Decode a geohash to latitude/longitude center with error bounds.
23
+ * Uses the standard ngeohash library.
24
+ */
25
+ export declare function decodeGeohash(hash: string): {
26
+ lat: number;
27
+ lng: number;
28
+ latErr: number;
29
+ lngErr: number;
30
+ };
31
+ /**
32
+ * Get the 8 neighboring geohash cells.
33
+ * Returns up to 8 neighbors (fewer at poles or antimeridian).
34
+ * Uses the standard ngeohash library.
35
+ */
36
+ export declare function getNeighbors(hash: string): string[];
37
+ /**
38
+ * Get a 3x3 grid of geohash4 cells (center + 8 neighbors).
39
+ * Used for landing bonus expansions in Fly mode.
40
+ *
41
+ * @param geohash4 - Center geohash4 cell
42
+ * @returns Array of 9 geohash4 cells (center first, then neighbors)
43
+ *
44
+ * @example
45
+ * getGeohash4Neighbors('c23n')
46
+ * // => ['c23n', 'c23p', 'c23q', 'c23j', 'c23m', 'c23k', 'c23h', 'c23e', 'c23s']
47
+ */
48
+ export declare function getGeohash4Neighbors(geohash4: string): string[];
49
+ /**
50
+ * Get the prefix of a geohash at a given precision.
51
+ * Simple helper for extracting geohash prefixes for directory organization.
52
+ */
53
+ export declare function getGeohashPrefix(geohash: string, precision: number): string;
54
+ /**
55
+ * Convert a geohash prefix to a hierarchical path.
56
+ *
57
+ * Examples:
58
+ * "9mud" -> "9/m/u/d"
59
+ * "9q8y" -> "9/q/8/y"
60
+ * "c24k" -> "c/2/4/k"
61
+ *
62
+ * This is used for organizing files in hierarchical directories to avoid
63
+ * thousands of folders in a single directory, which causes filesystem
64
+ * performance issues.
65
+ */
66
+ export declare function geohashToHierarchicalPath(geohash4: string): string;
67
+ /**
68
+ * Compute all geohash cells along the path between two geohash cells.
69
+ * Interpolates lat/lng points between the centers of `from` and `to`,
70
+ * encoding each to a geohash at the given precision, and returns the
71
+ * deduplicated list of intermediate cells (excluding `from` and `to`).
72
+ */
73
+ export declare function getGeohashPath(from: string, to: string, precision?: number): string[];
74
+ /**
75
+ * Check if a geohash cell overlaps with a bounding box.
76
+ * Custom implementation (not available in ngeohash).
77
+ */
78
+ export declare function geohashOverlapsBounds(hash: string, bounds: {
79
+ north: number;
80
+ south: number;
81
+ east: number;
82
+ west: number;
83
+ }): boolean;
84
+ export { haversineDistance } from './Haversine.js';
85
+ //# sourceMappingURL=Geohash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Geohash.d.ts","sourceRoot":"","sources":["../../src/spatial/Geohash.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,SAAI,GAAG,MAAM,CAE7E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAQA;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEnD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAM/D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMlE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,SAAI,GAAG,MAAM,EAAE,CAiChF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnE,OAAO,CAcT;AAID,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Geohash Utilities
3
+ *
4
+ * Provides geohash encoding/decoding and spatial utilities using the standard
5
+ * ngeohash library for core operations, plus custom utilities for overlap checking
6
+ * and distance calculation.
7
+ *
8
+ * Geohashes are a hierarchical spatial indexing system that divides the world
9
+ * into a grid of cells. Each additional character narrows the area by ~1/32.
10
+ *
11
+ * Precision guide:
12
+ * - 4 chars: ~39km x 19km (used for tile indexing)
13
+ * - 5 chars: ~5km x 5km
14
+ * - 6 chars: ~1.2km x 0.6km
15
+ */
16
+ import ngeohash from 'ngeohash';
17
+ /**
18
+ * Encode latitude/longitude to a geohash string.
19
+ * Uses the standard ngeohash library.
20
+ */
21
+ export function encodeGeohash(lat, lng, precision = 9) {
22
+ return ngeohash.encode(lat, lng, precision);
23
+ }
24
+ /**
25
+ * Decode a geohash to latitude/longitude center with error bounds.
26
+ * Uses the standard ngeohash library.
27
+ */
28
+ export function decodeGeohash(hash) {
29
+ const result = ngeohash.decode(hash);
30
+ return {
31
+ lat: result.latitude,
32
+ lng: result.longitude,
33
+ latErr: result.error.latitude,
34
+ lngErr: result.error.longitude,
35
+ };
36
+ }
37
+ /**
38
+ * Get the 8 neighboring geohash cells.
39
+ * Returns up to 8 neighbors (fewer at poles or antimeridian).
40
+ * Uses the standard ngeohash library.
41
+ */
42
+ export function getNeighbors(hash) {
43
+ return ngeohash.neighbors(hash);
44
+ }
45
+ /**
46
+ * Get a 3x3 grid of geohash4 cells (center + 8 neighbors).
47
+ * Used for landing bonus expansions in Fly mode.
48
+ *
49
+ * @param geohash4 - Center geohash4 cell
50
+ * @returns Array of 9 geohash4 cells (center first, then neighbors)
51
+ *
52
+ * @example
53
+ * getGeohash4Neighbors('c23n')
54
+ * // => ['c23n', 'c23p', 'c23q', 'c23j', 'c23m', 'c23k', 'c23h', 'c23e', 'c23s']
55
+ */
56
+ export function getGeohash4Neighbors(geohash4) {
57
+ if (geohash4.length !== 4) {
58
+ throw new Error(`getGeohash4Neighbors requires 4-char geohash, got: ${geohash4}`);
59
+ }
60
+ const neighbors = getNeighbors(geohash4);
61
+ return [geohash4, ...neighbors];
62
+ }
63
+ /**
64
+ * Get the prefix of a geohash at a given precision.
65
+ * Simple helper for extracting geohash prefixes for directory organization.
66
+ */
67
+ export function getGeohashPrefix(geohash, precision) {
68
+ return geohash.slice(0, precision);
69
+ }
70
+ /**
71
+ * Convert a geohash prefix to a hierarchical path.
72
+ *
73
+ * Examples:
74
+ * "9mud" -> "9/m/u/d"
75
+ * "9q8y" -> "9/q/8/y"
76
+ * "c24k" -> "c/2/4/k"
77
+ *
78
+ * This is used for organizing files in hierarchical directories to avoid
79
+ * thousands of folders in a single directory, which causes filesystem
80
+ * performance issues.
81
+ */
82
+ export function geohashToHierarchicalPath(geohash4) {
83
+ if (geohash4.length !== 4) {
84
+ throw new Error(`geohashToHierarchicalPath requires 4-char geohash, got: ${geohash4}`);
85
+ }
86
+ const [c1, c2, c3, c4] = geohash4.split('');
87
+ return `${c1}/${c2}/${c3}/${c4}`;
88
+ }
89
+ /**
90
+ * Compute all geohash cells along the path between two geohash cells.
91
+ * Interpolates lat/lng points between the centers of `from` and `to`,
92
+ * encoding each to a geohash at the given precision, and returns the
93
+ * deduplicated list of intermediate cells (excluding `from` and `to`).
94
+ */
95
+ export function getGeohashPath(from, to, precision = 4) {
96
+ if (from === to)
97
+ return [];
98
+ const fromCenter = decodeGeohash(from);
99
+ const toCenter = decodeGeohash(to);
100
+ // Compute approximate distance to determine step count
101
+ const dLat = Math.abs(toCenter.lat - fromCenter.lat);
102
+ const dLng = Math.abs(toCenter.lng - fromCenter.lng);
103
+ // Rough km: 1 degree lat ≈ 111km, 1 degree lng ≈ 111km * cos(midLat)
104
+ const midLatRad = ((fromCenter.lat + toCenter.lat) / 2) * (Math.PI / 180);
105
+ const approxKm = Math.sqrt((dLat * 111) ** 2 + (dLng * 111 * Math.cos(midLatRad)) ** 2);
106
+ // Step every ~15km to avoid skipping any geohash4 cell (~39x19km)
107
+ const steps = Math.max(2, Math.ceil(approxKm / 15));
108
+ const seen = new Set();
109
+ seen.add(from);
110
+ seen.add(to);
111
+ const path = [];
112
+ for (let i = 1; i < steps; i++) {
113
+ const t = i / steps;
114
+ const lat = fromCenter.lat + t * (toCenter.lat - fromCenter.lat);
115
+ const lng = fromCenter.lng + t * (toCenter.lng - fromCenter.lng);
116
+ const hash = encodeGeohash(lat, lng, precision);
117
+ if (!seen.has(hash)) {
118
+ seen.add(hash);
119
+ path.push(hash);
120
+ }
121
+ }
122
+ return path;
123
+ }
124
+ /**
125
+ * Check if a geohash cell overlaps with a bounding box.
126
+ * Custom implementation (not available in ngeohash).
127
+ */
128
+ export function geohashOverlapsBounds(hash, bounds) {
129
+ const { lat, lng, latErr, lngErr } = decodeGeohash(hash);
130
+ const hashNorth = lat + latErr;
131
+ const hashSouth = lat - latErr;
132
+ const hashEast = lng + lngErr;
133
+ const hashWest = lng - lngErr;
134
+ return !(hashNorth < bounds.south ||
135
+ hashSouth > bounds.north ||
136
+ hashEast < bounds.west ||
137
+ hashWest > bounds.east);
138
+ }
139
+ // haversineDistance is now in shared/spatial/Haversine.ts (canonical location).
140
+ // Re-export for backwards compatibility with existing imports.
141
+ export { haversineDistance } from './Haversine.js';
142
+ //# sourceMappingURL=Geohash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Geohash.js","sourceRoot":"","sources":["../../src/spatial/Geohash.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Haversine Distance Calculation
3
+ *
4
+ * Provides accurate distance calculation between two geographic coordinates
5
+ * using the Haversine formula, which accounts for Earth's curvature.
6
+ */
7
+ import type { Coordinates } from '../schemas/Types.js';
8
+ /**
9
+ * Calculate distance between two coordinates using Haversine formula.
10
+ *
11
+ * @param from Start coordinates
12
+ * @param to End coordinates
13
+ * @returns Distance in kilometers
14
+ */
15
+ export declare function haversineDistance(from: Coordinates, to: Coordinates): number;
16
+ /**
17
+ * Calculate bearing from one coordinate to another.
18
+ *
19
+ * @param from Start coordinates
20
+ * @param to End coordinates
21
+ * @returns Bearing in degrees (0-360, where 0 = north, 90 = east)
22
+ */
23
+ export declare function calculateBearing(from: Coordinates, to: Coordinates): number;
24
+ //# sourceMappingURL=Haversine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Haversine.d.ts","sourceRoot":"","sources":["../../src/spatial/Haversine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,GAAG,MAAM,CAgB5E;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,GAAG,MAAM,CAU3E"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Haversine Distance Calculation
3
+ *
4
+ * Provides accurate distance calculation between two geographic coordinates
5
+ * using the Haversine formula, which accounts for Earth's curvature.
6
+ */
7
+ /**
8
+ * Calculate distance between two coordinates using Haversine formula.
9
+ *
10
+ * @param from Start coordinates
11
+ * @param to End coordinates
12
+ * @returns Distance in kilometers
13
+ */
14
+ export function haversineDistance(from, to) {
15
+ const R = 6371; // Earth's radius in kilometers
16
+ const dLat = toRadians(to.lat - from.lat);
17
+ const dLng = toRadians(to.lng - from.lng);
18
+ const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
19
+ Math.cos(toRadians(from.lat)) *
20
+ Math.cos(toRadians(to.lat)) *
21
+ Math.sin(dLng / 2) *
22
+ Math.sin(dLng / 2);
23
+ const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
24
+ return R * c;
25
+ }
26
+ /**
27
+ * Calculate bearing from one coordinate to another.
28
+ *
29
+ * @param from Start coordinates
30
+ * @param to End coordinates
31
+ * @returns Bearing in degrees (0-360, where 0 = north, 90 = east)
32
+ */
33
+ export function calculateBearing(from, to) {
34
+ const dLng = toRadians(to.lng - from.lng);
35
+ const lat1 = toRadians(from.lat);
36
+ const lat2 = toRadians(to.lat);
37
+ const x = Math.sin(dLng) * Math.cos(lat2);
38
+ const y = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1) * Math.cos(lat2) * Math.cos(dLng);
39
+ const bearing = Math.atan2(x, y);
40
+ return ((bearing * 180) / Math.PI + 360) % 360;
41
+ }
42
+ /**
43
+ * Convert degrees to radians.
44
+ */
45
+ function toRadians(degrees) {
46
+ return (degrees * Math.PI) / 180;
47
+ }
48
+ //# sourceMappingURL=Haversine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Haversine.js","sourceRoot":"","sources":["../../src/spatial/Haversine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAiB,EAAE,EAAe;IAClE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,+BAA+B;IAE/C,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAE1C,MAAM,CAAC,GACL,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAEvB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEzD,OAAO,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAiB,EAAE,EAAe;IACjE,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAE/B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAE7F,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjC,OAAO,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AACnC,CAAC"}
@@ -1,111 +1,3 @@
1
- import { C as Coordinates } from '../Types-sh2VRxfo.js';
2
-
3
- /**
4
- * Haversine Distance Calculation
5
- *
6
- * Provides accurate distance calculation between two geographic coordinates
7
- * using the Haversine formula, which accounts for Earth's curvature.
8
- */
9
-
10
- /**
11
- * Calculate distance between two coordinates using Haversine formula.
12
- *
13
- * @param from Start coordinates
14
- * @param to End coordinates
15
- * @returns Distance in kilometers
16
- */
17
- declare function haversineDistance(from: Coordinates, to: Coordinates): number;
18
- /**
19
- * Calculate bearing from one coordinate to another.
20
- *
21
- * @param from Start coordinates
22
- * @param to End coordinates
23
- * @returns Bearing in degrees (0-360, where 0 = north, 90 = east)
24
- */
25
- declare function calculateBearing(from: Coordinates, to: Coordinates): number;
26
-
27
- /**
28
- * Geohash Utilities
29
- *
30
- * Provides geohash encoding/decoding and spatial utilities using the standard
31
- * ngeohash library for core operations, plus custom utilities for overlap checking
32
- * and distance calculation.
33
- *
34
- * Geohashes are a hierarchical spatial indexing system that divides the world
35
- * into a grid of cells. Each additional character narrows the area by ~1/32.
36
- *
37
- * Precision guide:
38
- * - 4 chars: ~39km x 19km (used for tile indexing)
39
- * - 5 chars: ~5km x 5km
40
- * - 6 chars: ~1.2km x 0.6km
41
- */
42
- /**
43
- * Encode latitude/longitude to a geohash string.
44
- * Uses the standard ngeohash library.
45
- */
46
- declare function encodeGeohash(lat: number, lng: number, precision?: number): string;
47
- /**
48
- * Decode a geohash to latitude/longitude center with error bounds.
49
- * Uses the standard ngeohash library.
50
- */
51
- declare function decodeGeohash(hash: string): {
52
- lat: number;
53
- lng: number;
54
- latErr: number;
55
- lngErr: number;
56
- };
57
- /**
58
- * Get the 8 neighboring geohash cells.
59
- * Returns up to 8 neighbors (fewer at poles or antimeridian).
60
- * Uses the standard ngeohash library.
61
- */
62
- declare function getNeighbors(hash: string): string[];
63
- /**
64
- * Get a 3x3 grid of geohash4 cells (center + 8 neighbors).
65
- * Used for landing bonus expansions in Fly mode.
66
- *
67
- * @param geohash4 - Center geohash4 cell
68
- * @returns Array of 9 geohash4 cells (center first, then neighbors)
69
- *
70
- * @example
71
- * getGeohash4Neighbors('c23n')
72
- * // => ['c23n', 'c23p', 'c23q', 'c23j', 'c23m', 'c23k', 'c23h', 'c23e', 'c23s']
73
- */
74
- declare function getGeohash4Neighbors(geohash4: string): string[];
75
- /**
76
- * Get the prefix of a geohash at a given precision.
77
- * Simple helper for extracting geohash prefixes for directory organization.
78
- */
79
- declare function getGeohashPrefix(geohash: string, precision: number): string;
80
- /**
81
- * Convert a geohash prefix to a hierarchical path.
82
- *
83
- * Examples:
84
- * "9mud" -> "9/m/u/d"
85
- * "9q8y" -> "9/q/8/y"
86
- * "c24k" -> "c/2/4/k"
87
- *
88
- * This is used for organizing files in hierarchical directories to avoid
89
- * thousands of folders in a single directory, which causes filesystem
90
- * performance issues.
91
- */
92
- declare function geohashToHierarchicalPath(geohash4: string): string;
93
- /**
94
- * Compute all geohash cells along the path between two geohash cells.
95
- * Interpolates lat/lng points between the centers of `from` and `to`,
96
- * encoding each to a geohash at the given precision, and returns the
97
- * deduplicated list of intermediate cells (excluding `from` and `to`).
98
- */
99
- declare function getGeohashPath(from: string, to: string, precision?: number): string[];
100
- /**
101
- * Check if a geohash cell overlaps with a bounding box.
102
- * Custom implementation (not available in ngeohash).
103
- */
104
- declare function geohashOverlapsBounds(hash: string, bounds: {
105
- north: number;
106
- south: number;
107
- east: number;
108
- west: number;
109
- }): boolean;
110
-
111
- export { calculateBearing, decodeGeohash, encodeGeohash, geohashOverlapsBounds, geohashToHierarchicalPath, getGeohash4Neighbors, getGeohashPath, getGeohashPrefix, getNeighbors, haversineDistance };
1
+ export * from './Haversine.js';
2
+ export * from './Geohash.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/spatial/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
@@ -1,25 +1,3 @@
1
- import {
2
- calculateBearing,
3
- decodeGeohash,
4
- encodeGeohash,
5
- geohashOverlapsBounds,
6
- geohashToHierarchicalPath,
7
- getGeohash4Neighbors,
8
- getGeohashPath,
9
- getGeohashPrefix,
10
- getNeighbors,
11
- haversineDistance
12
- } from "../chunk-7UDSRZKG.js";
13
- export {
14
- calculateBearing,
15
- decodeGeohash,
16
- encodeGeohash,
17
- geohashOverlapsBounds,
18
- geohashToHierarchicalPath,
19
- getGeohash4Neighbors,
20
- getGeohashPath,
21
- getGeohashPrefix,
22
- getNeighbors,
23
- haversineDistance
24
- };
1
+ export * from './Haversine.js';
2
+ export * from './Geohash.js';
25
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/spatial/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * ContentContainer — virtual file system for document containers.
3
+ *
4
+ * A Squisq document is more than just markdown: it's a container of files
5
+ * including the primary markdown document, images, audio, timing data, and
6
+ * other media. ContentContainer provides an abstract async file system
7
+ * interface for reading, writing, and listing these files.
8
+ *
9
+ * Paths are forward-slash separated strings relative to the container root
10
+ * (e.g., 'images/hero.jpg', 'index.md'). No leading slash.
11
+ *
12
+ * Implementations:
13
+ * - MemoryContentContainer — in-memory Map (for zip import, tests, transient use)
14
+ * - SlotContentContainer — backed by IndexedDB slot storage (in the site package)
15
+ */
16
+ /**
17
+ * Metadata about a file in a ContentContainer.
18
+ */
19
+ export interface ContentEntry {
20
+ /** Relative path within the container (e.g., 'images/hero.jpg') */
21
+ path: string;
22
+ /** MIME type (e.g., 'image/jpeg') */
23
+ mimeType: string;
24
+ /** File size in bytes */
25
+ size: number;
26
+ }
27
+ /**
28
+ * Abstract async file system for document containers.
29
+ *
30
+ * All paths are forward-slash separated, relative to the container root,
31
+ * with no leading slash. Example: 'images/hero.jpg', 'index.md'.
32
+ */
33
+ export interface ContentContainer {
34
+ /** Read a file's binary content. Returns null if the file does not exist. */
35
+ readFile(path: string): Promise<ArrayBuffer | null>;
36
+ /** Write a file. Creates or overwrites. */
37
+ writeFile(path: string, data: ArrayBuffer | Uint8Array, mimeType?: string): Promise<void>;
38
+ /** Remove a file. No-op if the file does not exist. */
39
+ removeFile(path: string): Promise<void>;
40
+ /**
41
+ * List files in the container.
42
+ * @param prefix — Optional path prefix to filter by (e.g., 'images/')
43
+ */
44
+ listFiles(prefix?: string): Promise<ContentEntry[]>;
45
+ /** Check whether a file exists. */
46
+ exists(path: string): Promise<boolean>;
47
+ /**
48
+ * Find the primary markdown document path.
49
+ *
50
+ * Discovery order: index.md → doc.md → document.md → first *.md at root.
51
+ * Returns null if no markdown file is found at the root level.
52
+ */
53
+ getDocumentPath(): Promise<string | null>;
54
+ /**
55
+ * Convenience: read the primary markdown document as a UTF-8 string.
56
+ * Returns null if no markdown file is found.
57
+ */
58
+ readDocument(): Promise<string | null>;
59
+ /**
60
+ * Convenience: write a markdown document.
61
+ * @param markdown — The markdown content
62
+ * @param filename — Filename to use (defaults to 'index.md')
63
+ */
64
+ writeDocument(markdown: string, filename?: string): Promise<void>;
65
+ }
66
+ /**
67
+ * Find the primary markdown path from a list of file entries.
68
+ * Exported for reuse by other ContentContainer implementations.
69
+ */
70
+ export declare function findDocumentPath(entries: ContentEntry[]): string | null;
71
+ /**
72
+ * In-memory ContentContainer backed by a Map.
73
+ *
74
+ * Used for zip import (deserialize into memory), tests, and transient operations.
75
+ */
76
+ export declare class MemoryContentContainer implements ContentContainer {
77
+ private files;
78
+ readFile(path: string): Promise<ArrayBuffer | null>;
79
+ writeFile(path: string, data: ArrayBuffer | Uint8Array, mimeType?: string): Promise<void>;
80
+ removeFile(path: string): Promise<void>;
81
+ listFiles(prefix?: string): Promise<ContentEntry[]>;
82
+ exists(path: string): Promise<boolean>;
83
+ getDocumentPath(): Promise<string | null>;
84
+ readDocument(): Promise<string | null>;
85
+ writeDocument(markdown: string, filename?: string): Promise<void>;
86
+ }
87
+ //# sourceMappingURL=ContentContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentContainer.d.ts","sourceRoot":"","sources":["../../src/storage/ContentContainer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAEpD,2CAA2C;IAC3C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1F,uDAAuD;IACvD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAEpD,mCAAmC;IACnC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC;;;;;OAKG;IACH,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAE1C;;;OAGG;IACH,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEvC;;;;OAIG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE;AAQD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,GAAG,IAAI,CAavE;AAWD;;;;GAIG;AACH,qBAAa,sBAAuB,YAAW,gBAAgB;IAC7D,OAAO,CAAC,KAAK,CAAiC;IAExC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAInD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzF,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAanD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAItC,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIzC,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQtC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAKxE"}