uomtiles 0.1.0 → 0.1.2

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 (203) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{BQlj8Xoe.js → 0hm88Oke.js} +1 -1
  3. package/.output/public/_nuxt/BNfSclJ4.js +1 -0
  4. package/.output/public/_nuxt/BYzlinOr2.js +1 -0
  5. package/.output/public/_nuxt/{BiWblTbb2.js → Bd1EvHmY.js} +1 -1
  6. package/.output/public/_nuxt/Be4dNlar.js +1 -0
  7. package/.output/public/_nuxt/{C4qlzA4o.js → C7fHMLd7.js} +1 -1
  8. package/.output/public/_nuxt/CQ8inUdm.js +1 -0
  9. package/.output/public/_nuxt/{C_0VY3Cv2.js → CU486JdV2.js} +2 -2
  10. package/.output/public/_nuxt/Cc_JfSB1.js +1 -0
  11. package/.output/public/_nuxt/CgcnoKpi.js +1 -0
  12. package/.output/public/_nuxt/{CgdzV712.js → CovBj6WN.js} +1 -1
  13. package/.output/public/_nuxt/CyZDc0eO2.js +1 -0
  14. package/.output/public/_nuxt/{DtFVCXI9.js → CzFefJH0.js} +1 -1
  15. package/.output/public/_nuxt/{DL1MZZLI.js → D-t0hXHB.js} +1 -1
  16. package/.output/public/_nuxt/D3Pl7yw22.js +1 -0
  17. package/.output/public/_nuxt/D4gbGuiW.js +1 -0
  18. package/.output/public/_nuxt/{DkcySee1.js → DDp9lK3g.js} +1 -1
  19. package/.output/public/_nuxt/DIIXHC50.js +1 -0
  20. package/.output/public/_nuxt/DWFUvzz0.js +1 -0
  21. package/.output/public/_nuxt/D_VoD6-f.js +1 -0
  22. package/.output/public/_nuxt/{q7DkoVkj.js → DaQqwE3R.js} +6 -6
  23. package/.output/public/_nuxt/DfXX-x_z.js +1 -0
  24. package/.output/public/_nuxt/Dgyf2aNY.js +1 -0
  25. package/.output/public/_nuxt/DpIPeY5m.js +1 -0
  26. package/.output/public/_nuxt/GM5myUL22.js +1 -0
  27. package/.output/public/_nuxt/IC4wc76W.js +1 -0
  28. package/.output/public/_nuxt/IfL46N3Z.js +1 -0
  29. package/.output/public/_nuxt/{Oxy7pKSk.js → KEU2l6zJ.js} +1 -1
  30. package/.output/public/_nuxt/{DC3bhq63.js → Q79ec-Ro.js} +1 -1
  31. package/.output/public/_nuxt/SEETjfdJ.js +1 -0
  32. package/.output/public/_nuxt/builds/latest.json +1 -1
  33. package/.output/public/_nuxt/builds/meta/2c4adba2-91b5-44e4-91d3-50a61695207b.json +1 -0
  34. package/.output/public/_nuxt/entry.CZ_dkjcs.css +1 -0
  35. package/.output/public/_nuxt/{ByRlKR9F.js → nGp0t_eD.js} +1 -1
  36. package/.output/server/chunks/_/config.mjs +58 -6
  37. package/.output/server/chunks/_/config.mjs.map +1 -1
  38. package/.output/server/chunks/_/export.mjs +7 -0
  39. package/.output/server/chunks/_/export.mjs.map +1 -0
  40. package/.output/server/chunks/_/file-workspace.mjs +153 -58
  41. package/.output/server/chunks/_/file-workspace.mjs.map +1 -1
  42. package/.output/server/chunks/_/map-service.mjs +7 -7
  43. package/.output/server/chunks/_/map-service.mjs.map +1 -1
  44. package/.output/server/chunks/_/pixel-diff.mjs +1 -1
  45. package/.output/server/chunks/_/uom-auth.mjs +7 -7
  46. package/.output/server/chunks/_/uom-auth.mjs.map +1 -1
  47. package/.output/server/chunks/_/uom-map.mjs +6 -6
  48. package/.output/server/chunks/_/uom-map.mjs.map +1 -1
  49. package/.output/server/chunks/build/Alert-DHVVSgdD.mjs +1074 -0
  50. package/.output/server/chunks/build/Alert-DHVVSgdD.mjs.map +1 -0
  51. package/.output/server/chunks/build/{Alert-0ngTJXxP.mjs → CompletedTaskSelect-CKTpyHS3.mjs} +31 -725
  52. package/.output/server/chunks/build/CompletedTaskSelect-CKTpyHS3.mjs.map +1 -0
  53. package/.output/server/chunks/build/{PopperArrow-Bqfdf2Et.mjs → DashboardSidebarToggle-CUI9NSow.mjs} +567 -5
  54. package/.output/server/chunks/build/DashboardSidebarToggle-CUI9NSow.mjs.map +1 -0
  55. package/.output/server/chunks/build/{Empty-CkW3mADt.mjs → Empty-BGIn09cL.mjs} +2 -2
  56. package/.output/server/chunks/build/{Empty-CkW3mADt.mjs.map → Empty-BGIn09cL.mjs.map} +1 -1
  57. package/.output/server/chunks/build/{FocusScope-Cf0lg0zt.mjs → FocusScope-DNZVMnza.mjs} +2 -2
  58. package/.output/server/chunks/build/{FocusScope-Cf0lg0zt.mjs.map → FocusScope-DNZVMnza.mjs.map} +1 -1
  59. package/.output/server/chunks/build/{FormField-CEUZHcv7.mjs → FormField-DnJWfrKE.mjs} +2 -2
  60. package/.output/server/chunks/build/{FormField-CEUZHcv7.mjs.map → FormField-DnJWfrKE.mjs.map} +1 -1
  61. package/.output/server/chunks/build/{Input-BeNavYXb.mjs → Input-AdlINKtJ.mjs} +1 -1
  62. package/.output/server/chunks/build/{Input-BeNavYXb.mjs.map → Input-AdlINKtJ.mjs.map} +1 -1
  63. package/.output/server/chunks/build/{MapBaseLayerTabs-4445J6yh.mjs → MapBaseLayerTabs-CRl5Zwlr.mjs} +15 -9
  64. package/.output/server/chunks/build/{MapBaseLayerTabs-4445J6yh.mjs.map → MapBaseLayerTabs-CRl5Zwlr.mjs.map} +1 -1
  65. package/.output/server/chunks/build/{Modal-DNZtVxca.mjs → Modal-CozaqIp1.mjs} +13 -5
  66. package/.output/server/chunks/build/{Modal-DNZtVxca.mjs.map → Modal-CozaqIp1.mjs.map} +1 -1
  67. package/.output/server/chunks/build/{OnlineMap-CKwiuqUY.mjs → OnlineMap-cFSicmkV.mjs} +1 -1
  68. package/.output/server/chunks/build/{OnlineMap-CKwiuqUY.mjs.map → OnlineMap-cFSicmkV.mjs.map} +1 -1
  69. package/.output/server/chunks/build/{Pagination-CDHx4HTZ.mjs → Pagination-GvNCxmOW.mjs} +1 -1
  70. package/.output/server/chunks/build/{Pagination-CDHx4HTZ.mjs.map → Pagination-GvNCxmOW.mjs.map} +1 -1
  71. package/.output/server/chunks/build/{Slider-D-n8Y0CX.mjs → Slider-zQx1c7hB.mjs} +10 -25
  72. package/.output/server/chunks/build/Slider-zQx1c7hB.mjs.map +1 -0
  73. package/.output/server/chunks/build/{Tooltip-CkpSktvJ.mjs → Tooltip-DNUdH4oF.mjs} +3 -4
  74. package/.output/server/chunks/build/{Tooltip-CkpSktvJ.mjs.map → Tooltip-DNUdH4oF.mjs.map} +1 -1
  75. package/.output/server/chunks/build/{advanced-D1onodoF.mjs → advanced-5ZGMUBqC.mjs} +17 -18
  76. package/.output/server/chunks/build/advanced-5ZGMUBqC.mjs.map +1 -0
  77. package/.output/server/chunks/build/clamp-CdZXprXk.mjs +65 -0
  78. package/.output/server/chunks/build/clamp-CdZXprXk.mjs.map +1 -0
  79. package/.output/server/chunks/build/{compare-DmSAW8oA.mjs → compare-CtgF4Anj.mjs} +17 -17
  80. package/.output/server/chunks/build/{compare-DmSAW8oA.mjs.map → compare-CtgF4Anj.mjs.map} +1 -1
  81. package/.output/server/chunks/build/{dashboard-BJxrZ19n.mjs → dashboard-GneN-WPG.mjs} +25 -10
  82. package/.output/server/chunks/build/{dashboard-BJxrZ19n.mjs.map → dashboard-GneN-WPG.mjs.map} +1 -1
  83. package/.output/server/chunks/build/{details-CBMqXYyo.mjs → details-CgufnL1d.mjs} +4 -4
  84. package/.output/server/chunks/build/{details-CBMqXYyo.mjs.map → details-CgufnL1d.mjs.map} +1 -1
  85. package/.output/server/chunks/build/error-404-D9aQjJRn.mjs +1 -1
  86. package/.output/server/chunks/build/error-500-BNyA3wrb.mjs +1 -1
  87. package/.output/server/chunks/build/{interval-BxUMpo78.mjs → interval-9B2MrM2e.mjs} +2 -2
  88. package/.output/server/chunks/build/{interval-BxUMpo78.mjs.map → interval-9B2MrM2e.mjs.map} +1 -1
  89. package/.output/server/chunks/build/{login-lbtjN0MV.mjs → login-Cf5EiCE4.mjs} +8 -8
  90. package/.output/server/chunks/build/{login-lbtjN0MV.mjs.map → login-Cf5EiCE4.mjs.map} +1 -1
  91. package/.output/server/chunks/build/{pages-Ba0Eixbd.mjs → pages-0c5sp_lv.mjs} +8 -9
  92. package/.output/server/chunks/build/pages-0c5sp_lv.mjs.map +1 -0
  93. package/.output/server/chunks/build/{services-DuJwjAB8.mjs → services-BB49kSpd.mjs} +16 -16
  94. package/.output/server/chunks/build/{services-DuJwjAB8.mjs.map → services-BB49kSpd.mjs.map} +1 -1
  95. package/.output/server/chunks/build/{tasks-D_Q5EDnn.mjs → tasks-Aa8PwjVL.mjs} +5 -5
  96. package/.output/server/chunks/build/{tasks-D_Q5EDnn.mjs.map → tasks-Aa8PwjVL.mjs.map} +1 -1
  97. package/.output/server/chunks/build/tasks-BRcMLuRW.mjs +6121 -0
  98. package/.output/server/chunks/build/tasks-BRcMLuRW.mjs.map +1 -0
  99. package/.output/server/chunks/nitro/nitro.mjs +254 -257
  100. package/.output/server/chunks/routes/api/auth/login.post.mjs +1 -1
  101. package/.output/server/chunks/routes/api/auth/login.post.mjs.map +1 -1
  102. package/.output/server/chunks/routes/api/auth/send-sms.post.mjs +2 -2
  103. package/.output/server/chunks/routes/api/auth/send-sms.post.mjs.map +1 -1
  104. package/.output/server/chunks/routes/api/map/base/_baseLayer/_zoom/_tileX/_tileY_.get.mjs +2 -2
  105. package/.output/server/chunks/routes/api/map/base/_baseLayer/_zoom/_tileX/_tileY_.get.mjs.map +1 -1
  106. package/.output/server/chunks/routes/api/map/base/status.get.mjs +24 -0
  107. package/.output/server/chunks/routes/api/map/base/status.get.mjs.map +1 -0
  108. package/.output/server/chunks/routes/api/map/live/status.get.mjs +1 -1
  109. package/.output/server/chunks/routes/api/map/live/status.get.mjs.map +1 -1
  110. package/.output/server/chunks/routes/api/map/online/_layerGroup/_zoom/_tileX/_tileY_.get.mjs +3 -3
  111. package/.output/server/chunks/routes/api/map/online/_layerGroup/_zoom/_tileX/_tileY_.get.mjs.map +1 -1
  112. package/.output/server/chunks/routes/api/map/online-root/_layerGroup/_rootX/_rootY_.get.mjs +3 -3
  113. package/.output/server/chunks/routes/api/map/online-root/_layerGroup/_rootX/_rootY_.get.mjs.map +1 -1
  114. package/.output/server/chunks/routes/api/map-service/config.post.mjs +1 -0
  115. package/.output/server/chunks/routes/api/map-service/config.post.mjs.map +1 -1
  116. package/.output/server/chunks/routes/api/map-service/file.post.mjs +4 -3
  117. package/.output/server/chunks/routes/api/map-service/file.post.mjs.map +1 -1
  118. package/.output/server/chunks/routes/api/map-service/source.post.mjs +1 -0
  119. package/.output/server/chunks/routes/api/map-service/source.post.mjs.map +1 -1
  120. package/.output/server/chunks/routes/api/map-service/status.get.mjs +1 -0
  121. package/.output/server/chunks/routes/api/map-service/status.get.mjs.map +1 -1
  122. package/.output/server/chunks/routes/api/workspace/_filename/analysis.get.mjs +4 -3
  123. package/.output/server/chunks/routes/api/workspace/_filename/analysis.get.mjs.map +1 -1
  124. package/.output/server/chunks/routes/api/workspace/_filename/download.get.mjs +2 -1
  125. package/.output/server/chunks/routes/api/workspace/_filename/download.get.mjs.map +1 -1
  126. package/.output/server/chunks/routes/api/workspace/_filename/export/_format_.get.mjs +11 -4
  127. package/.output/server/chunks/routes/api/workspace/_filename/export/_format_.get.mjs.map +1 -1
  128. package/.output/server/chunks/routes/api/workspace/_filename/export-estimate.get.mjs +39 -0
  129. package/.output/server/chunks/routes/api/workspace/_filename/export-estimate.get.mjs.map +1 -0
  130. package/.output/server/chunks/routes/api/workspace/_filename/tile.get.mjs +3 -2
  131. package/.output/server/chunks/routes/api/workspace/_filename/tile.get.mjs.map +1 -1
  132. package/.output/server/chunks/routes/api/workspace/_filename/tiles.get.mjs +2 -1
  133. package/.output/server/chunks/routes/api/workspace/_filename/tiles.get.mjs.map +1 -1
  134. package/.output/server/chunks/routes/api/workspace/_filename_.delete.mjs +2 -1
  135. package/.output/server/chunks/routes/api/workspace/_filename_.delete.mjs.map +1 -1
  136. package/.output/server/chunks/routes/api/workspace/compare/batch.get.mjs +1 -0
  137. package/.output/server/chunks/routes/api/workspace/compare/batch.get.mjs.map +1 -1
  138. package/.output/server/chunks/routes/api/workspace/compare.post.mjs +1 -0
  139. package/.output/server/chunks/routes/api/workspace/compare.post.mjs.map +1 -1
  140. package/.output/server/chunks/routes/api/workspace/fetch.post.mjs +1 -0
  141. package/.output/server/chunks/routes/api/workspace/fetch.post.mjs.map +1 -1
  142. package/.output/server/chunks/routes/api/workspace/files.get.mjs +1 -0
  143. package/.output/server/chunks/routes/api/workspace/files.get.mjs.map +1 -1
  144. package/.output/server/chunks/routes/api/workspace/files.post.mjs +4 -3
  145. package/.output/server/chunks/routes/api/workspace/files.post.mjs.map +1 -1
  146. package/.output/server/chunks/routes/api/workspace/stop.post.mjs +2 -1
  147. package/.output/server/chunks/routes/api/workspace/stop.post.mjs.map +1 -1
  148. package/.output/server/chunks/routes/api/workspace/tasks.post.mjs +2 -1
  149. package/.output/server/chunks/routes/api/workspace/tasks.post.mjs.map +1 -1
  150. package/.output/server/chunks/routes/renderer.mjs +2 -2
  151. package/.output/server/chunks/routes/services/wms.get.mjs +3 -2
  152. package/.output/server/chunks/routes/services/wms.get.mjs.map +1 -1
  153. package/.output/server/chunks/routes/services/wmts.get.mjs +3 -2
  154. package/.output/server/chunks/routes/services/wmts.get.mjs.map +1 -1
  155. package/.output/server/chunks/virtual/entry.mjs +149 -149
  156. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  157. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  158. package/.output/server/chunks/virtual/styles.mjs +1 -1
  159. package/.output/server/package.json +1 -1
  160. package/README.md +7 -1
  161. package/dist/package.json +68 -0
  162. package/dist/shared/export.js +4 -0
  163. package/dist/shared/types/export.js +1 -0
  164. package/dist/src/cli.js +20 -3
  165. package/dist/src/config.js +2 -0
  166. package/dist/src/core/grid-renderer.js +29 -15
  167. package/dist/src/core/png.js +59 -6
  168. package/dist/src/core/shell.js +37 -0
  169. package/dist/src/core/uomtiles.js +98 -14
  170. package/package.json +1 -1
  171. package/.output/public/_nuxt/1d1PDhA4.js +0 -1
  172. package/.output/public/_nuxt/981KwFWf.js +0 -1
  173. package/.output/public/_nuxt/B30dSvM4.js +0 -1
  174. package/.output/public/_nuxt/BRkljK8J.js +0 -1
  175. package/.output/public/_nuxt/B_MqTg2k2.js +0 -1
  176. package/.output/public/_nuxt/BrPwntMr.js +0 -1
  177. package/.output/public/_nuxt/BskybydR.js +0 -1
  178. package/.output/public/_nuxt/C7HxHbxA.js +0 -1
  179. package/.output/public/_nuxt/CPuhwLY1.js +0 -1
  180. package/.output/public/_nuxt/Ce26t8_Y.js +0 -1
  181. package/.output/public/_nuxt/CfW544W5.js +0 -1
  182. package/.output/public/_nuxt/D1wVNWS0.js +0 -1
  183. package/.output/public/_nuxt/Dz7VMlHR.js +0 -1
  184. package/.output/public/_nuxt/NL65vbjG2.js +0 -1
  185. package/.output/public/_nuxt/Pik8or8N2.js +0 -1
  186. package/.output/public/_nuxt/XZ59tThl.js +0 -1
  187. package/.output/public/_nuxt/ZpWjFsgV.js +0 -1
  188. package/.output/public/_nuxt/builds/meta/9f85104e-738d-4a74-8daa-40b136ce17d5.json +0 -1
  189. package/.output/public/_nuxt/dXz6dFgW2.js +0 -1
  190. package/.output/public/_nuxt/entry.P6tFNE31.css +0 -1
  191. package/.output/public/_nuxt/j0MRD-c3.js +0 -1
  192. package/.output/public/_nuxt/zZ1EGR7Y.js +0 -1
  193. package/.output/server/chunks/build/Alert-0ngTJXxP.mjs.map +0 -1
  194. package/.output/server/chunks/build/DashboardSidebarToggle-pncTaIJq.mjs +0 -569
  195. package/.output/server/chunks/build/DashboardSidebarToggle-pncTaIJq.mjs.map +0 -1
  196. package/.output/server/chunks/build/PopperArrow-Bqfdf2Et.mjs.map +0 -1
  197. package/.output/server/chunks/build/ScrollArea-BQK3em8b.mjs +0 -379
  198. package/.output/server/chunks/build/ScrollArea-BQK3em8b.mjs.map +0 -1
  199. package/.output/server/chunks/build/Slider-D-n8Y0CX.mjs.map +0 -1
  200. package/.output/server/chunks/build/advanced-D1onodoF.mjs.map +0 -1
  201. package/.output/server/chunks/build/pages-Ba0Eixbd.mjs.map +0 -1
  202. package/.output/server/chunks/build/tasks-CyN9x492.mjs +0 -915
  203. package/.output/server/chunks/build/tasks-CyN9x492.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"config.mjs","sources":["../../../../src/core/png.ts","../../../../src/bbox.ts","../../../../src/config.ts"],"names":[],"mappings":";;AAEA,MAAM,SAAA,GAAY,MAAA,CAAO,IAAA,CAAK,kBAAA,EAAoB,KAAK,CAAA;AACvD,MAAM,SAAA,GAAY,IAAI,WAAA,CAAY,GAAG,CAAA;AACrC,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,GAAA,EAAK,CAAA,EAAA,EAAK;AAC5B,EAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA,EAAA,EAAK,KAAA,GAAQ,KAAA,GAAQ,CAAA,GAAI,UAAA,GAAc,KAAA,KAAU,CAAA,GAAK,KAAA,KAAU,CAAA;AACvF,EAAA,SAAA,CAAU,CAAC,IAAI,KAAA,KAAU,CAAA;AAC3B;AAEA,SAAS,MAAM,IAAA,EAA0B;AACvC,EAAA,IAAI,GAAA,GAAM,UAAA;AACV,EAAA,KAAA,MAAW,IAAA,IAAQ,MAAM,GAAA,GAAM,SAAA,CAAA,CAAW,MAAM,IAAA,IAAQ,GAAI,IAAM,GAAA,KAAQ,CAAA;AAC1E,EAAA,OAAA,CAAQ,MAAM,UAAA,MAAgB,CAAA;AAChC;AAEA,SAAS,KAAA,CAAM,MAAc,IAAA,EAA0B;AACrD,EAAA,MAAM,SAAA,GAAY,MAAA,CAAO,IAAA,CAAK,IAAA,EAAM,OAAO,CAAA;AAC3C,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA;AAC7B,EAAA,MAAM,MAAA,GAAS,MAAA,CAAO,WAAA,CAAY,IAAA,CAAK,SAAS,EAAE,CAAA;AAClD,EAAA,MAAA,CAAO,aAAA,CAAc,IAAA,CAAK,MAAA,EAAQ,CAAC,CAAA;AACnC,EAAA,SAAA,CAAU,IAAA,CAAK,QAAQ,CAAC,CAAA;AACxB,EAAA,IAAA,CAAK,IAAA,CAAK,QAAQ,CAAC,CAAA;AACnB,EAAA,MAAA,CAAO,aAAA,CAAc,KAAA,CAAM,MAAA,CAAO,MAAA,CAAO,CAAC,SAAA,EAAW,IAAI,CAAC,CAAC,CAAA,EAAG,IAAA,CAAK,MAAA,GAAS,CAAC,CAAA;AAC7E,EAAA,OAAO,MAAA;AACT;AAWA,SAAS,gBAAA,CAAiB,KAAiB,wBAAA,EAA+C;AApC1F,EAAA,IAAA,EAAA;AAqCE,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,IAAA,CAAK,GAAG,CAAA;AAC7B,EAAA,IAAI,CAAC,KAAA,CAAM,QAAA,CAAS,CAAA,EAAG,CAAC,CAAA,CAAE,MAAA,CAAO,SAAS,CAAA,EAAG,MAAM,IAAI,KAAA,CAAM,wCAAwC,CAAA;AACrG,EAAA,IAAI,MAAA,GAAS,CAAA;AACb,EAAA,IAAI,KAAA,GAAQ,GAAG,MAAA,GAAS,CAAA,EAAG,WAAW,CAAA,EAAG,SAAA,GAAY,IAAI,SAAA,GAAY,EAAA;AACrE,EAAA,IAAI,KAAA,GAAQ,IAAI,UAAA,CAAW,CAAC,CAAA;AAC5B,EAAA,IAAI,cAAA,GAAiB,CAAA;AACrB,EAAA,MAAM,OAAiB,EAAC;AACxB,EAAA,MAAM,aAAuB,EAAC;AAC9B,EAAA,OAAO,MAAA,GAAS,EAAA,IAAM,KAAA,CAAM,MAAA,EAAQ;AAClC,IAAA,MAAM,MAAA,GAAS,KAAA,CAAM,YAAA,CAAa,MAAM,CAAA;AACxC,IAAA,IAAI,MAAA,GAAS,SAAS,EAAA,GAAK,KAAA,CAAM,QAAQ,MAAM,IAAI,MAAM,yBAAyB,CAAA;AAClF,IAAA,MAAM,OAAO,KAAA,CAAM,QAAA,CAAS,SAAS,MAAA,GAAS,CAAA,EAAG,SAAS,CAAC,CAAA;AAC3D,IAAA,UAAA,CAAW,KAAK,IAAI,CAAA;AACpB,IAAA,MAAM,OAAO,KAAA,CAAM,QAAA,CAAS,SAAS,CAAA,EAAG,MAAA,GAAS,IAAI,MAAM,CAAA;AAC3D,IAAA,MAAM,QAAA,GAAW,KAAA,CAAM,YAAA,CAAa,MAAA,GAAS,IAAI,MAAM,CAAA;AACvD,IAAA,IAAI,MAAM,KAAA,CAAM,QAAA,CAAS,MAAA,GAAS,CAAA,EAAG,SAAS,CAAA,GAAI,MAAM,CAAC,CAAA,KAAM,UAAU,MAAM,IAAI,KAAA,CAAM,CAAA,YAAA,EAAe,IAAI,CAAA,IAAA,CAAM,CAAA;AAClH,IAAA,IAAI,SAAS,MAAA,EAAQ;AACnB,MAAA,KAAA,GAAQ,IAAA,CAAK,aAAa,CAAC,CAAA;AAAG,MAAA,MAAA,GAAS,IAAA,CAAK,aAAa,CAAC,CAAA;AAAG,MAAA,QAAA,GAAW,KAAK,CAAC,CAAA;AAAI,MAAA,SAAA,GAAY,KAAK,CAAC,CAAA;AAAI,MAAA,SAAA,GAAY,KAAK,EAAE,CAAA;AAC3H,MAAA,IAAI,IAAA,CAAK,EAAE,CAAA,KAAM,CAAA,IAAK,IAAA,CAAK,EAAE,CAAA,KAAM,CAAA,EAAG,MAAM,IAAI,KAAA,CAAM,kDAAkD,CAAA;AAAA,IAC1G,CAAA,MAAA,IAAW,SAAS,MAAA,EAAQ;AAC1B,MAAA,IAAI,IAAA,CAAK,MAAA,KAAW,CAAA,IAAK,IAAA,CAAK,MAAA,GAAS,CAAA,KAAM,CAAA,IAAK,IAAA,CAAK,MAAA,GAAS,GAAA,EAAK,MAAM,IAAI,MAAM,yBAAyB,CAAA;AAC9G,MAAA,cAAA,GAAiB,KAAK,MAAA,GAAS,CAAA;AAAA,IACjC,WAAW,IAAA,KAAS,MAAA,EAAQ,KAAA,GAAQ,UAAA,CAAW,KAAK,IAAI,CAAA;AAAA,SAAA,IAC/C,IAAA,KAAS,MAAA,EAAQ,IAAA,CAAK,IAAA,CAAK,IAAI,CAAA;AAAA,SAAA,IAC/B,SAAS,MAAA,EAAQ;AACxB,MAAA,MAAA,IAAU,MAAA,GAAS,EAAA;AACnB,MAAA;AAAA,IACF;AACA,IAAA,MAAA,IAAU,MAAA,GAAS,EAAA;AAAA,EACrB;AACA,EAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAAkB,UAAA,CAAW,SAAS,KAAA,GAAQ,CAAA,IACjE,WAAW,EAAA,CAAG,EAAE,MAAM,MAAA,IAAU,UAAA,CAAW,MAAM,KAAA,EAAO,EAAE,EAAE,KAAA,CAAM,CAAA,IAAA,KAAQ,SAAS,MAAM,CAAA;AAC3F,EAAA,MAAM,QAAA,GAAW,UAAA,CAAW,CAAC,CAAA,KAAM,UAAU,UAAA,CAAW,CAAC,CAAA,KAAM,MAAA,IAAU,UAAA,CAAW,CAAC,CAAA,KAAM,MAAA,IAAU,YAAY,CAAC,CAAA;AAClH,EAAA,IAAI,kBAAA,GAAqB,CAAA;AACzB,EAAA,IAAI,UAAA,CAAW,kBAAkB,CAAA,KAAM,MAAA,EAAQ,kBAAA,EAAA;AAC/C,EAAA,IAAI,UAAA,CAAW,kBAAkB,CAAA,KAAM,MAAA,EAAQ,kBAAA,EAAA;AAC/C,EAAA,MAAM,eAAA,GAA8C,UAAA,CAAW,CAAC,CAAA,KAAM,MAAA,IAAU,UAAA,CAAW,CAAC,CAAA,KAAM,MAAA,IAAU,WAAA,CAAY,kBAAkB,CAAA;AAC1I,EAAA,IAAK,CAAC,QAAA,IAAY,CAAC,eAAA,IAAoB,MAAA,KAAW,MAAM,MAAA,EAAQ;AAC9D,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,2BAAA,EAA8B,WAAW,IAAA,CAAK,GAAG,CAAC,CAAA,CAAE,CAAA;AAAA,EACtE;AACA,EAAA,IAAI,SAAS,CAAA,IAAK,MAAA,IAAU,CAAA,IAAK,SAAA,KAAc,KAAK,CAAC,CAAC,CAAA,EAAG,CAAA,EAAG,GAAG,CAAC,CAAA,CAAE,SAAS,QAAQ,CAAA,IAAK,cAAc,CAAA,EAAG;AACvG,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,wBAAA,EAA2B,KAAK,CAAA,CAAA,EAAI,MAAM,CAAA,OAAA,EAAU,QAAQ,CAAA,MAAA,EAAS,SAAS,CAAA,WAAA,EAAc,SAAS,CAAA,CAAE,CAAA;AAAA,EACzH;AACA,EAAA,IAAI,cAAA,KAAmB,KAAK,KAAA,CAAM,MAAA,GAAS,gBAAgB,MAAM,IAAI,MAAM,sCAAsC,CAAA;AACjH,EAAA,IAAI,sBAAA,GAAyB,KAAA;AAC7B,EAAA,KAAA,IAAS,KAAA,GAAQ,CAAA,EAAG,KAAA,GAAQ,cAAA,EAAgB,KAAA,EAAA,EAAS;AACnD,IAAA,IAAA,CAAA,CAAK,EAAA,GAAA,KAAA,CAAM,KAAK,CAAA,KAAX,IAAA,GAAA,EAAA,GAAgB,QAAQ,GAAA,EAAK;AAChC,MAAA,sBAAA,GAAyB,IAAA;AACzB,MAAA;AAAA,IACF;AAAA,EACF;AACA,EAAA,IAAI,CAAC,sBAAA,EAAwB;AAC3B,IAAA,OAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,QAAA,EAAqC,cAAA,EAAgB,OAAA,EAAS,IAAI,UAAA,CAAW,KAAA,GAAQ,MAAM,CAAA,EAAG,KAAA,EAAM;AAAA,EAC9H;AACA,EAAA,MAAM,QAAA,GAAW,IAAA,CAAK,IAAA,CAAK,KAAA,GAAQ,WAAW,CAAC,CAAA;AAC/C,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,MAAA,CAAO,IAAI,CAAA;AACrC,EAAA,MAAM,oBAAA,GAAA,CAAwB,WAAW,CAAA,IAAK,MAAA;AAC9C,EAAA,MAAM,WAAW,WAAA,CAAY,UAAA,EAAY,EAAE,eAAA,EAAiB,sBAAsB,CAAA;AAClF,EAAA,IAAI,SAAS,MAAA,KAAW,oBAAA,EAAsB,MAAM,IAAI,MAAM,kCAAkC,CAAA;AAChG,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,WAAA,CAAY,QAAA,GAAW,MAAM,CAAA;AACjD,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,MAAA,EAAQ,CAAA,EAAA,EAAK;AAC/B,IAAA,MAAM,MAAA,GAAS,QAAA,CAAS,CAAA,IAAK,QAAA,GAAW,CAAA,CAAE,CAAA;AAC1C,IAAA,MAAM,MAAA,GAAS,CAAA,IAAK,QAAA,GAAW,CAAA,CAAA,GAAK,CAAA;AACpC,IAAA,MAAM,SAAS,CAAA,GAAI,QAAA;AACnB,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,QAAA,EAAU,CAAA,EAAA,EAAK;AACjC,MAAA,MAAM,GAAA,GAAM,QAAA,CAAS,MAAA,GAAS,CAAC,CAAA;AAC/B,MAAA,MAAM,OAAO,CAAA,GAAI,CAAA,GAAI,KAAK,MAAA,GAAS,CAAA,GAAI,CAAC,CAAA,GAAK,CAAA;AAC7C,MAAA,MAAM,KAAK,CAAA,GAAI,CAAA,GAAI,KAAK,MAAA,GAAS,QAAA,GAAW,CAAC,CAAA,GAAK,CAAA;AAClD,MAAA,MAAM,MAAA,GAAS,CAAA,GAAI,CAAA,IAAK,CAAA,GAAI,CAAA,GAAI,KAAK,MAAA,GAAS,QAAA,GAAW,CAAA,GAAI,CAAC,CAAA,GAAK,CAAA;AACnE,MAAA,IAAI,MAAA,KAAW,CAAA,EAAG,IAAA,CAAK,MAAA,GAAS,CAAC,CAAA,GAAI,GAAA;AAAA,WAAA,IAC5B,WAAW,CAAA,EAAG,IAAA,CAAK,SAAS,CAAC,CAAA,GAAK,MAAM,IAAA,GAAQ,GAAA;AAAA,WAAA,IAChD,WAAW,CAAA,EAAG,IAAA,CAAK,SAAS,CAAC,CAAA,GAAK,MAAM,EAAA,GAAM,GAAA;AAAA,WAAA,IAC9C,MAAA,KAAW,CAAA,EAAG,IAAA,CAAK,MAAA,GAAS,CAAC,CAAA,GAAK,GAAA,GAAM,IAAA,CAAK,KAAA,CAAA,CAAO,IAAA,GAAO,EAAA,IAAM,CAAC,CAAA,GAAK,GAAA;AAAA,WAAA,IACvE,WAAW,CAAA,EAAG;AACrB,QAAA,MAAM,CAAA,GAAI,OAAO,EAAA,GAAK,MAAA;AACtB,QAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAI,CAAA,GAAI,IAAI,GAAG,EAAA,GAAK,IAAA,CAAK,GAAA,CAAI,CAAA,GAAI,EAAE,CAAA,EAAG,EAAA,GAAK,IAAA,CAAK,GAAA,CAAI,IAAI,MAAM,CAAA;AAC9E,QAAA,IAAA,CAAK,MAAA,GAAS,CAAC,CAAA,GAAK,GAAA,IAAO,EAAA,IAAM,EAAA,IAAM,EAAA,IAAM,EAAA,GAAK,IAAA,GAAO,EAAA,IAAM,EAAA,GAAK,EAAA,GAAK,MAAA,CAAA,GAAW,GAAA;AAAA,MACtF,OAAO,MAAM,IAAI,KAAA,CAAM,CAAA,8BAAA,EAAiC,MAAM,CAAA,CAAE,CAAA;AAAA,IAClE;AAAA,EACF;AACA,EAAA,MAAM,OAAA,GAAU,IAAI,UAAA,CAAW,KAAA,GAAQ,MAAM,CAAA;AAC7C,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,MAAA,EAAQ,CAAA,EAAA,WAAc,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,EAAO,CAAA,EAAA,EAAK;AAC/D,IAAA,MAAM,gBAAgB,CAAA,GAAI,QAAA;AAC1B,IAAA,MAAM,MAAA,GAAS,KAAK,CAAA,GAAI,QAAA,GAAW,KAAK,KAAA,CAAM,CAAA,GAAI,aAAa,CAAC,CAAA;AAChE,IAAA,MAAM,KAAA,GAAQ,CAAA,GAAI,QAAA,IAAY,CAAA,GAAI,aAAA,GAAgB,CAAA,CAAA;AAClD,IAAA,OAAA,CAAQ,IAAI,KAAA,GAAQ,CAAC,IAAK,MAAA,IAAU,KAAA,GAAA,CAAW,KAAK,QAAA,IAAY,CAAA;AAChE,IAAA,IAAI,OAAA,CAAQ,IAAI,KAAA,GAAQ,CAAC,KAAM,cAAA,EAAgB,MAAM,IAAI,KAAA,CAAM,qCAAqC,CAAA;AAAA,EACtG;AACA,EAAA,OAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,QAAA,EAAqC,cAAA,EAAgB,SAAS,KAAA,EAAM;AAC9F;AAMA,SAAS,SAAA,CAAU,KAAA,EAAmB,aAAA,EAAwB,cAAA,GAAiB,aAAA,EAA2B;AApI1G,EAAA,IAAA,EAAA,EAAA,EAAA;AAqIE,EAAA,IAAsB,CAAc,KAAA,CAAM,UAAU,aAAA,IAAiB,KAAA,CAAM,WAAW,cAAA,CAAA,EAAiB;AACrG,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,iBAAA,EAAoB,KAAA,CAAM,KAAK,CAAA,CAAA,EAAI,KAAA,CAAM,MAAM,CAAA,WAAA,EAAc,aAAa,CAAA,CAAA,EAAI,cAAc,CAAA,CAAE,CAAA;AAAA,EAChH;AACA,EAAA,MAAM,IAAA,GAAO,IAAI,UAAA,CAAW,KAAA,CAAM,QAAQ,MAAM,CAAA;AAChD,EAAA,IAAI,sBAAA,GAAyB,KAAA;AAC7B,EAAA,KAAA,IAAS,KAAA,GAAQ,CAAA,EAAG,KAAA,GAAQ,KAAA,CAAM,gBAAgB,KAAA,EAAA,EAAS;AACzD,IAAA,IAAA,CAAA,CAAK,WAAM,KAAA,CAAM,KAAK,CAAA,KAAjB,IAAA,GAAA,EAAA,GAAsB,QAAQ,GAAA,EAAK;AACtC,MAAA,sBAAA,GAAyB,IAAA;AACzB,MAAA;AAAA,IACF;AAAA,EACF;AACA,EAAA,IAAI,CAAC,wBAAwB,OAAO,IAAA;AACpC,EAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,KAAK,MAAA,EAAQ,CAAA,EAAA,QAAU,EAAA,GAAA,KAAA,CAAM,KAAA,CAAM,MAAM,OAAA,CAAQ,CAAC,CAAE,CAAA,KAA7B,IAAA,GAAA,EAAA,GAAkC,QAAQ,GAAA,EAAK,IAAA,CAAK,CAAC,CAAA,GAAI,CAAA;AACpG,EAAA,OAAO,IAAA;AACT;AAMO,SAAS,wBAAA,CAAyB,GAAA,EAAiB,aAAA,EAAwB,cAAA,GAAiB,aAAA,EAA2B;AAC5H,EAAA,OAAO,UAAU,gBAAA,CAAiB,GAAS,CAAA,EAAG,eAAe,cAAc,CAAA;AAC7E;AAEO,SAAS,gBAAA,CAAiB,KAAA,EAAe,MAAA,EAAgB,OAAA,EAAqB,SAAqB,KAAA,EAA2B;AACnI,EAAA,IAAI,QAAQ,MAAA,KAAW,KAAA,GAAQ,QAAQ,MAAM,IAAI,WAAW,4CAA4C,CAAA;AACxG,EAAA,IAAI,OAAA,CAAQ,MAAA,KAAW,CAAA,IAAK,OAAA,CAAQ,SAAS,CAAA,KAAM,CAAA,IAAK,OAAA,CAAQ,MAAA,GAAS,CAAA,GAAI,GAAA,EAAK,MAAM,IAAI,WAAW,6BAA6B,CAAA;AACpI,EAAA,MAAM,GAAA,GAAM,MAAA,CAAO,WAAA,CAAA,CAAa,KAAA,GAAQ,KAAK,MAAM,CAAA;AACnD,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,MAAA,EAAQ,CAAA,EAAA,EAAK;AAC/B,IAAA,GAAA,CAAI,CAAA,IAAK,KAAA,GAAQ,CAAA,CAAE,CAAA,GAAI,CAAA;AACvB,IAAA,GAAA,CAAI,GAAA,CAAI,OAAA,CAAQ,QAAA,CAAS,CAAA,GAAI,KAAA,EAAA,CAAQ,CAAA,GAAI,CAAA,IAAK,KAAK,CAAA,EAAG,CAAA,IAAK,KAAA,GAAQ,CAAA,CAAA,GAAK,CAAC,CAAA;AAAA,EAC3E;AACA,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,KAAA,CAAM,EAAE,CAAA;AAC5B,EAAA,IAAA,CAAK,aAAA,CAAc,OAAO,CAAC,CAAA;AAAG,EAAA,IAAA,CAAK,aAAA,CAAc,QAAQ,CAAC,CAAA;AAC1D,EAAA,IAAA,CAAK,CAAC,CAAA,GAAI,CAAA;AAAG,EAAA,IAAA,CAAK,CAAC,CAAA,GAAI,CAAA;AAAG,EAAA,IAAA,CAAK,EAAE,CAAA,GAAI,CAAA;AAAG,EAAA,IAAA,CAAK,EAAE,CAAA,GAAI,CAAA;AAAG,EAAA,IAAA,CAAK,EAAE,CAAA,GAAI,CAAA;AACjE,EAAA,OAAO,MAAA,CAAO,MAAA,CAAO,CAAC,SAAA,EAAW,MAAM,MAAA,EAAQ,IAAI,CAAA,EAAG,KAAA,CAAM,MAAA,EAAQ,OAAO,CAAA,EAAG,KAAA,CAAM,QAAQ,KAAK,CAAA,EAAG,KAAA,CAAM,MAAA,EAAQ,WAAA,CAAY,GAAA,EAAK,EAAE,KAAA,EAAO,GAAG,CAAC,CAAA,EAAG,KAAA,CAAM,QAAQ,MAAA,CAAO,KAAA,CAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AACpL;AAEO,SAAS,mBAAA,CAAoB,IAAA,EAAkB,KAAA,GAAQ,GAAA,EAAK,SAAS,GAAA,EAAa;AACvF,EAAA,OAAO,iBAAiB,KAAA,EAAO,MAAA,EAAQ,IAAA,EAAM,UAAA,CAAW,GAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,EAAA,EAAM,KAAM,GAAI,CAAA,EAAG,WAAW,EAAA,CAAG,CAAA,EAAG,GAAG,CAAC,CAAA;AAC9G;;AC7KO,MAAM,OAAA,GAAU,oBAAA;AAIhB,SAAS,cAAA,CAAe,CAAA,EAAW,CAAA,EAAW,CAAA,EAAqB;AACxE,EAAA,MAAM,KAAK,CAAA,GAAI,OAAA,GAAU,IAAA,CAAK,GAAA,CAAI,GAAG,CAAC,CAAA;AACtC,EAAA,MAAM,IAAA,GAAO,CAAC,OAAA,GAAU,CAAA,GAAI,EAAA;AAC5B,EAAA,MAAM,IAAA,GAAO,UAAU,CAAA,GAAI,EAAA;AAC3B,EAAA,OAAO,EAAE,MAAM,IAAA,EAAM,IAAA,GAAO,IAAI,IAAA,EAAM,IAAA,GAAO,IAAI,IAAA,EAAK;AACxD;AAEO,SAAS,YAAA,CAAa,GAAA,EAAa,GAAA,EAAa,CAAA,EAAqC;AAC1F,EAAA,MAAM,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,CAAC,CAAA;AACvB,EAAA,MAAM,IAAI,IAAA,CAAK,KAAA,CAAA,CAAO,GAAA,GAAM,GAAA,IAAO,MAAM,CAAC,CAAA;AAC1C,EAAA,MAAM,MAAA,GAAS,GAAA,GAAM,IAAA,CAAK,EAAA,GAAK,GAAA;AAC/B,EAAA,MAAM,IAAI,IAAA,CAAK,KAAA,CAAA,CAAO,IAAI,IAAA,CAAK,GAAA,CAAI,KAAK,GAAA,CAAI,MAAM,IAAI,CAAA,GAAI,IAAA,CAAK,IAAI,MAAM,CAAC,IAAI,IAAA,CAAK,EAAA,IAAM,IAAI,CAAC,CAAA;AAC9F,EAAA,OAAO,EAAE,GAAG,CAAA,EAAE;AAChB;AAgBO,SAAS,gBAAA,CAAiB,CAAA,EAAW,MAAA,EAAgB,MAAA,EAAgB,QAAgB,MAAA,EAAgB;AAC1G,EAAA,MAAM,CAAA,GAAI,YAAA,CAAa,MAAA,EAAQ,MAAA,EAAQ,CAAC,CAAA;AACxC,EAAA,MAAM,CAAA,GAAI,YAAA,CAAa,MAAA,EAAQ,MAAA,EAAQ,CAAC,CAAA;AACxC,EAAA,OAAO;AAAA,IACL,MAAM,IAAA,CAAK,GAAA,CAAI,CAAA,CAAE,CAAA,EAAG,EAAE,CAAC,CAAA;AAAA,IACvB,MAAM,IAAA,CAAK,GAAA,CAAI,CAAA,CAAE,CAAA,EAAG,EAAE,CAAC,CAAA;AAAA,IACvB,MAAM,IAAA,CAAK,GAAA,CAAI,CAAA,CAAE,CAAA,EAAG,EAAE,CAAC,CAAA;AAAA,IACvB,MAAM,IAAA,CAAK,GAAA,CAAI,CAAA,CAAE,CAAA,EAAG,EAAE,CAAC;AAAA,GACzB;AACF;AAEO,SAAS,UAAA,CAAW,GAAW,CAAA,EAAmB;AACvD,EAAA,OAAA,CAAQ,CAAA,IAAK,KAAK,CAAA,GAAI,CAAA;AACxB;;ACpCO,MAAM,yBAAA,GAA4B;AAAA,EACvC,CAAC,QAAA,EAAU,QAAA,EAAU,QAAA,EAAU,QAAQ,CAAA;AAAA,EACvC,CAAC,QAAA,EAAU,QAAA,EAAU,QAAQ,CAAA;AAAA,EAC7B,CAAC,QAAA,EAAU,QAAA,EAAU,UAAU,QAAA,EAAU,QAAA,EAAU,UAAU,QAAQ,CAAA;AAAA,EACrE,CAAC,QAAA,EAAU,QAAA,EAAU,QAAA,EAAU,QAAA,EAAU,UAAU,QAAQ,CAAA;AAAA,EAC3D,CAAC,QAAA,EAAU,QAAA,EAAU,QAAA,EAAU,UAAU,QAAQ,CAAA;AAAA,EACjD,CAAC,QAAA,EAAU,QAAA,EAAU,QAAA,EAAU,UAAU,QAAQ;AACnD;AAEO,MAAM,UAAA,GAAa;AAEnB,MAAM,aAAA,GAAgB;AAAA,EAC3B,MAAA,EAAQ,EAAA;AAAA,EACR,MAAA,EAAQ,IAAA;AAAA,EACR,MAAA,EAAQ,KAAA;AAAA,EACR,MAAA,EAAQ;AACV;AAGO,MAAM,QAAA,GAAW;;;;"}
1
+ {"version":3,"file":"config.mjs","sources":["../../../../src/core/png.ts","../../../../src/bbox.ts","../../../../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ const EXPORT_MIN_ZOOM = 0;
2
+ const EXPORT_MAX_ZOOM = 18;
3
+ const DEFAULT_EXPORT_MIN_ZOOM = 0;
4
+ const DEFAULT_EXPORT_MAX_ZOOM = 14;
5
+
6
+ export { DEFAULT_EXPORT_MAX_ZOOM as D, EXPORT_MIN_ZOOM as E, EXPORT_MAX_ZOOM as a, DEFAULT_EXPORT_MIN_ZOOM as b };
7
+ //# sourceMappingURL=export.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.mjs","sources":["../../../../shared/export.ts"],"names":[],"mappings":"AAAO,MAAM,eAAA,GAAkB;AACxB,MAAM,eAAA,GAAkB;AACxB,MAAM,uBAAA,GAA0B;AAChC,MAAM,uBAAA,GAA0B;;;;"}
@@ -3,13 +3,14 @@ import { open as open$1 } from 'node:fs/promises';
3
3
  import { statSync, existsSync, mkdirSync, unlinkSync, renameSync, createReadStream, mkdtempSync, rmSync, createWriteStream, chmodSync, openSync, readSync, closeSync, readdirSync } from 'node:fs';
4
4
  import { DatabaseSync } from 'node:sqlite';
5
5
  import { PMTiles, tileIdToZxy, bytesToHeader } from 'pmtiles';
6
- import { a as encodeCanonicalMask, b as tileRangeForBBox, C as CHINA_BBOX_LL, x as xyzYToTmsY } from './config.mjs';
6
+ import { a as encodeCanonicalMask, b as tileRangeForBBox, C as CHINA_BBOX_LL, x as xyzYToTmsY, U as UOMTILES_VERSION, d as decodeCanonicalAlphaMask } from './config.mjs';
7
7
  import { randomUUID } from 'node:crypto';
8
8
  import { dirname, extname, resolve, basename, sep } from 'node:path';
9
9
  import { hostname, tmpdir } from 'node:os';
10
10
  import { execFile, spawn } from 'node:child_process';
11
11
  import { pipeline } from 'node:stream/promises';
12
12
  import { promisify } from 'node:util';
13
+ import { b as DEFAULT_EXPORT_MIN_ZOOM, D as DEFAULT_EXPORT_MAX_ZOOM, E as EXPORT_MIN_ZOOM, a as EXPORT_MAX_ZOOM } from './export.mjs';
13
14
  import { s as serverDataDirectory, w as workspaceDirectory, a as accountFile } from './data-directory.mjs';
14
15
 
15
16
  const GEOGRAPHIC_GRID_LEVEL = 18;
@@ -95,7 +96,6 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
95
96
  const ROOT_ZOOM = 9;
96
97
  const SOURCE_ZOOM = 12;
97
98
  const DYNAMIC_MAX_ZOOM = 18;
98
- const PUBLISH_MAX_ZOOM = 14;
99
99
  const sourceRootSize = 256 * 2 ** (SOURCE_ZOOM - ROOT_ZOOM);
100
100
  function decodeRectangles(value) {
101
101
  if (value.byteLength % 8 !== 0) throw new Error("invalid grid rectangle payload");
@@ -203,27 +203,41 @@ class GeographicGridRenderer {
203
203
  return;
204
204
  }
205
205
  const scale = 2 ** (z - SOURCE_ZOOM);
206
- for (const root of this.roots.values()) for (const rect of root.rects) {
206
+ const worldMax = 2 ** z - 1;
207
+ const roots = [...this.roots.values()].sort((left, right) => left.x - right.x || left.y - right.y);
208
+ for (const root of roots) {
209
+ const rows = /* @__PURE__ */ new Map();
207
210
  const sourceX0 = root.x * sourceRootSize;
208
211
  const sourceY0 = root.y * sourceRootSize;
209
- const pixelX0 = Math.round((sourceX0 + root.xLines[rect.col0]) * scale);
210
- const pixelY0 = Math.round((sourceY0 + root.yLines[rect.row0]) * scale);
211
- const pixelX1 = Math.round((sourceX0 + root.xLines[rect.col1]) * scale);
212
- const pixelY1 = Math.round((sourceY0 + root.yLines[rect.row1]) * scale);
213
- if (pixelX0 >= pixelX1 || pixelY0 >= pixelY1) continue;
214
- const x0 = Math.floor(pixelX0 / 256), y0 = Math.floor(pixelY0 / 256);
215
- const x1 = Math.floor((pixelX1 - 1) / 256), y1 = Math.floor((pixelY1 - 1) / 256);
216
- const worldMax = 2 ** z - 1;
217
- for (let tileY = Math.max(0, y0); tileY <= Math.min(worldMax, y1); tileY++) {
218
- for (let tileX = Math.max(0, x0); tileX <= Math.min(worldMax, x1); tileX++) coordinates.add(`${tileX}/${tileY}`);
212
+ for (const rect of root.rects) {
213
+ const pixelX0 = Math.round((sourceX0 + root.xLines[rect.col0]) * scale);
214
+ const pixelY0 = Math.round((sourceY0 + root.yLines[rect.row0]) * scale);
215
+ const pixelX1 = Math.round((sourceX0 + root.xLines[rect.col1]) * scale);
216
+ const pixelY1 = Math.round((sourceY0 + root.yLines[rect.row1]) * scale);
217
+ if (pixelX0 >= pixelX1 || pixelY0 >= pixelY1) continue;
218
+ const x0 = Math.max(0, Math.floor(pixelX0 / 256));
219
+ const y0 = Math.max(0, Math.floor(pixelY0 / 256));
220
+ const x1 = Math.min(worldMax, Math.floor((pixelX1 - 1) / 256));
221
+ const y1 = Math.min(worldMax, Math.floor((pixelY1 - 1) / 256));
222
+ for (let tileY = y0; tileY <= y1; tileY++) {
223
+ const intervals = rows.get(tileY) || [];
224
+ intervals.push([x0, x1]);
225
+ rows.set(tileY, intervals);
226
+ }
227
+ }
228
+ for (const tileY of [...rows.keys()].sort((left, right) => left - right)) {
229
+ const intervals = rows.get(tileY).sort((left, right) => left[0] - right[0] || left[1] - right[1]);
230
+ let [start, end] = intervals[0];
231
+ for (let index = 1; index <= intervals.length; index++) {
232
+ const next = intervals[index];
233
+ if (next && next[0] <= end + 1) {
234
+ end = Math.max(end, next[1]);
235
+ continue;
236
+ }
237
+ for (let tileX = start; tileX <= end; tileX++) yield { z, x: tileX, y: tileY };
238
+ if (next) [start, end] = next;
239
+ }
219
240
  }
220
- }
221
- for (const coordinate of [...coordinates].sort((left, right) => {
222
- const [leftX, leftY] = left.split("/").map(Number), [rightX, rightY] = right.split("/").map(Number);
223
- return leftX - rightX || leftY - rightY;
224
- })) {
225
- const [x, y] = coordinate.split("/").map(Number);
226
- yield { z, x, y };
227
241
  }
228
242
  }
229
243
  }
@@ -479,6 +493,7 @@ function acquireSqliteLease(databasePath, resource, leaseMs = DEFAULT_LEASE_MS)
479
493
 
480
494
  const execFileAsync = promisify(execFile);
481
495
  const UOMTILES_SCHEMA_VERSION = 1;
496
+ const MIN_NONEMPTY_PNG_BYTES = 120;
482
497
  function tables(db) {
483
498
  return new Set(db.prepare("SELECT name FROM sqlite_master WHERE type='table'").all().map((row) => row.name));
484
499
  }
@@ -486,6 +501,58 @@ function metadata(db) {
486
501
  if (!tables(db).has("metadata")) return {};
487
502
  return Object.fromEntries(db.prepare("SELECT name,value FROM metadata").all().map((row) => [row.name, row.value]));
488
503
  }
504
+ function exportZoomRange(options = {}) {
505
+ var _a, _b;
506
+ const minZoom = (_a = options.minZoom) != null ? _a : DEFAULT_EXPORT_MIN_ZOOM;
507
+ const maxZoom = (_b = options.maxZoom) != null ? _b : DEFAULT_EXPORT_MAX_ZOOM;
508
+ if (!Number.isInteger(minZoom) || minZoom < EXPORT_MIN_ZOOM || minZoom > EXPORT_MAX_ZOOM) {
509
+ throw new RangeError(`\u6700\u5C0F\u5BFC\u51FA\u5C42\u7EA7\u5FC5\u987B\u662F z${EXPORT_MIN_ZOOM}\u2013z${EXPORT_MAX_ZOOM} \u7684\u6574\u6570`);
510
+ }
511
+ if (!Number.isInteger(maxZoom) || maxZoom < EXPORT_MIN_ZOOM || maxZoom > EXPORT_MAX_ZOOM) {
512
+ throw new RangeError(`\u6700\u5927\u5BFC\u51FA\u5C42\u7EA7\u5FC5\u987B\u662F z${EXPORT_MIN_ZOOM}\u2013z${EXPORT_MAX_ZOOM} \u7684\u6574\u6570`);
513
+ }
514
+ if (minZoom > maxZoom) throw new RangeError("\u6700\u5C0F\u5BFC\u51FA\u5C42\u7EA7\u4E0D\u80FD\u5927\u4E8E\u6700\u5927\u5BFC\u51FA\u5C42\u7EA7");
515
+ return { minZoom, maxZoom };
516
+ }
517
+ function projectedLevel(summary, zoom) {
518
+ const reencodedPngRatio = zoom <= 8 ? 0.93 : Math.max(0.58, 0.93 - (zoom - 8) * 0.075);
519
+ const known = new Map(summary.tiles.map((level) => [level.z, level]));
520
+ const exact = known.get(zoom);
521
+ if (exact) return {
522
+ tileCount: exact.count,
523
+ pngBytes: Math.max(exact.count * MIN_NONEMPTY_PNG_BYTES, Math.round(exact.bytes * reencodedPngRatio)),
524
+ tileCountExact: true
525
+ };
526
+ const levels = [...known.values()].sort((left, right) => left.z - right.z);
527
+ const base = levels.reduce((nearest, level) => Math.abs(level.z - zoom) < Math.abs(nearest.z - zoom) ? level : nearest, levels[0]);
528
+ if (!base) return { tileCount: 0, pngBytes: 0, tileCountExact: false };
529
+ const baseRatio = base.z <= 8 ? 0.93 : Math.max(0.58, 0.93 - (base.z - 8) * 0.075);
530
+ const baseAverage = Math.max(MIN_NONEMPTY_PNG_BYTES, base.bytes / Math.max(1, base.count) * baseRatio);
531
+ const distance = Math.abs(zoom - base.z);
532
+ if (zoom > base.z) {
533
+ const tileCount2 = Math.max(1, Math.round(base.count * 3.75 ** distance));
534
+ const average2 = MIN_NONEMPTY_PNG_BYTES + (baseAverage - MIN_NONEMPTY_PNG_BYTES) * 0.55 ** distance;
535
+ return { tileCount: tileCount2, pngBytes: Math.round(tileCount2 * average2), tileCountExact: false };
536
+ }
537
+ const tileCount = Math.max(1, Math.round(base.count / 3.5 ** distance));
538
+ const average = Math.min(1600, baseAverage * 1.25 ** distance);
539
+ return { tileCount, pngBytes: Math.round(tileCount * average), tileCountExact: false };
540
+ }
541
+ function estimateExport(source, format, options = {}) {
542
+ const range = exportZoomRange(options);
543
+ const summary = inspectUomtiles(source);
544
+ const levels = [];
545
+ let tileCount = 0;
546
+ let pngBytes = 0;
547
+ for (let zoom = range.minZoom; zoom <= range.maxZoom; zoom++) {
548
+ const level = projectedLevel(summary, zoom);
549
+ tileCount += level.tileCount;
550
+ pngBytes += level.pngBytes;
551
+ levels.push({ zoom, tileCount: level.tileCount, estimatedBytes: level.pngBytes, tileCountExact: level.tileCountExact });
552
+ }
553
+ const estimatedBytes = format === "mbtiles" ? pngBytes + tileCount * 80 + 128 * 1024 : Math.round(pngBytes * 0.82 + tileCount * 16 + 64 * 1024);
554
+ return { ...range, format, estimatedBytes, tileCount, levels, omitsEmptyTiles: true };
555
+ }
489
556
  function initializeUomtiles(path, publisher) {
490
557
  mkdirSync(dirname(path), { recursive: true });
491
558
  const db = new DatabaseSync(path);
@@ -531,7 +598,7 @@ function initializeUomtiles(path, publisher) {
531
598
  createdAt,
532
599
  meta.crawl_started_at || null,
533
600
  finishedAt,
534
- process.env.npm_package_version || "0.1.0"
601
+ UOMTILES_VERSION
535
602
  );
536
603
  }
537
604
  const upsert = db.prepare("INSERT OR REPLACE INTO metadata(name,value) VALUES(?,?)");
@@ -570,10 +637,11 @@ function inspectUomtiles(path) {
570
637
  db.close();
571
638
  }
572
639
  }
573
- function exportMbtiles(source, target) {
574
- var _a, _b;
640
+ function exportMbtiles(source, target, options = {}) {
641
+ var _a, _b, _c;
575
642
  const input = resolve(source);
576
643
  const output = resolve(target);
644
+ const range = exportZoomRange(options);
577
645
  if (extname(output).toLowerCase() !== ".mbtiles") throw new Error("MBTiles \u8F93\u51FA\u6587\u4EF6\u5FC5\u987B\u4F7F\u7528 .mbtiles \u6269\u5C55\u540D");
578
646
  const lock = acquireSqliteLease(input, "writer");
579
647
  const temporary = `${output}.${process.pid}.tmp`;
@@ -581,27 +649,44 @@ function exportMbtiles(source, target) {
581
649
  mkdirSync(dirname(output), { recursive: true });
582
650
  const sourceDb = new DatabaseSync(input, { readOnly: true });
583
651
  const outputDb = new DatabaseSync(temporary);
652
+ let complete = false;
584
653
  try {
585
654
  outputDb.exec(`PRAGMA journal_mode=OFF; PRAGMA synchronous=OFF;
586
655
  CREATE TABLE metadata(name TEXT PRIMARY KEY,value TEXT NOT NULL);
587
656
  CREATE TABLE tiles(zoom_level INTEGER NOT NULL,tile_column INTEGER NOT NULL,tile_row INTEGER NOT NULL,tile_data BLOB NOT NULL,
588
657
  PRIMARY KEY(zoom_level,tile_column,tile_row));`);
589
658
  const insertMeta = outputDb.prepare("INSERT INTO metadata(name,value) VALUES(?,?)");
590
- const standard = /* @__PURE__ */ new Set(["name", "type", "version", "description", "format", "bounds", "center", "minzoom", "attribution"]);
591
659
  const meta = metadata(sourceDb);
592
660
  outputDb.exec("BEGIN");
593
- for (const name of standard) if (meta[name]) insertMeta.run(name, meta[name]);
594
661
  const summary = inspectUomtiles(input);
662
+ const bounds = meta.bounds || "73,17.5,135.5,54";
663
+ const [west, south, east, north] = bounds.split(",").map(Number);
664
+ const sourceCenter = (_a = meta.center) == null ? void 0 : _a.split(",").map(Number);
665
+ const centerZoom = Math.min(range.maxZoom, Math.max(range.minZoom, Number.isFinite(sourceCenter == null ? void 0 : sourceCenter[2]) ? sourceCenter[2] : 9));
666
+ const center = `${Number.isFinite(sourceCenter == null ? void 0 : sourceCenter[0]) ? sourceCenter[0] : (west + east) / 2},${Number.isFinite(sourceCenter == null ? void 0 : sourceCenter[1]) ? sourceCenter[1] : (south + north) / 2},${centerZoom}`;
667
+ const standard = {
668
+ name: meta.name || "UOM\u9002\u98DE\u5730\u56FE",
669
+ format: "png",
670
+ bounds,
671
+ center,
672
+ minzoom: String(range.minZoom),
673
+ maxzoom: String(range.maxZoom),
674
+ type: "overlay",
675
+ version: UOMTILES_VERSION,
676
+ description: meta.description || "UOM\u9002\u98DE\u7A7A\u57DF",
677
+ attribution: meta.attribution || "CAAC UOM"
678
+ };
679
+ for (const [name, value] of Object.entries(standard)) insertMeta.run(name, value);
595
680
  insertMeta.run("uomtiles:publisher", summary.publisher || "unknown");
596
681
  insertMeta.run("uomtiles:fetched_at", summary.finishedAt || summary.startedAt || "unknown");
597
- insertMeta.run("uomtiles:source_zoom", String((_a = summary.sourceZoom) != null ? _a : "unknown"));
598
- insertMeta.run("uomtiles:grid_level", String((_b = summary.gridLevel) != null ? _b : "unknown"));
682
+ insertMeta.run("uomtiles:source_zoom", String((_b = summary.sourceZoom) != null ? _b : "unknown"));
683
+ insertMeta.run("uomtiles:grid_level", String((_c = summary.gridLevel) != null ? _c : "unknown"));
684
+ insertMeta.run("uomtiles:tool_version", UOMTILES_VERSION);
599
685
  const renderer = new GeographicGridRenderer(input);
600
- insertMeta.run("maxzoom", String(renderer.available ? PUBLISH_MAX_ZOOM : Math.max(0, ...summary.tiles.map((tile) => tile.z))));
601
686
  const insertTile = outputDb.prepare("INSERT INTO tiles VALUES(?,?,?,?)");
602
687
  let copied = 0;
603
688
  if (renderer.available) {
604
- for (let z = 0; z <= PUBLISH_MAX_ZOOM; z++) for (const coordinate of renderer.contentCoordinates(z)) {
689
+ for (let z = range.minZoom; z <= range.maxZoom; z++) for (const coordinate of renderer.contentCoordinates(z)) {
605
690
  const tile = renderer.renderTile(z, coordinate.x, coordinate.y);
606
691
  if (!tile) continue;
607
692
  insertTile.run(z, coordinate.x, xyzYToTmsY(z, coordinate.y), tile);
@@ -609,7 +694,9 @@ function exportMbtiles(source, target) {
609
694
  if (copied % 1e3 === 0) lock.heartbeat();
610
695
  }
611
696
  } else {
612
- for (const row of sourceDb.prepare("SELECT zoom_level,tile_column,tile_row,tile_data FROM tiles ORDER BY zoom_level,tile_column,tile_row").iterate()) {
697
+ for (const row of sourceDb.prepare(`SELECT zoom_level,tile_column,tile_row,tile_data FROM tiles
698
+ WHERE zoom_level BETWEEN ? AND ? ORDER BY zoom_level,tile_column,tile_row`).iterate(range.minZoom, range.maxZoom)) {
699
+ if (!decodeCanonicalAlphaMask(row.tile_data, 256).some(Boolean)) continue;
613
700
  insertTile.run(row.zoom_level, row.tile_column, row.tile_row, row.tile_data);
614
701
  copied++;
615
702
  if (copied % 1e3 === 0) lock.heartbeat();
@@ -617,7 +704,8 @@ function exportMbtiles(source, target) {
617
704
  }
618
705
  lock.heartbeat();
619
706
  outputDb.exec("COMMIT");
620
- outputDb.exec("CREATE UNIQUE INDEX tile_index ON tiles(zoom_level,tile_column,tile_row); PRAGMA optimize;");
707
+ outputDb.exec("PRAGMA optimize;");
708
+ complete = true;
621
709
  } catch (error) {
622
710
  try {
623
711
  outputDb.exec("ROLLBACK");
@@ -628,21 +716,23 @@ function exportMbtiles(source, target) {
628
716
  outputDb.close();
629
717
  sourceDb.close();
630
718
  lock.release();
719
+ if (!complete && existsSync(temporary)) unlinkSync(temporary);
631
720
  }
632
721
  if (existsSync(output)) unlinkSync(output);
633
722
  renameSync(temporary, output);
634
723
  return inspectUomtiles(output);
635
724
  }
636
- async function exportTiles(source, target, pmtilesCommand = process.env.UOMTILES_PMTILES_COMMAND || "pmtiles") {
725
+ async function exportTiles(source, target, options = {}) {
637
726
  const extension = extname(target).toLowerCase();
638
727
  if (extension === ".mbtiles") {
639
- exportMbtiles(source, target);
728
+ exportMbtiles(source, target, options);
640
729
  return;
641
730
  }
642
731
  if (extension !== ".pmtiles") throw new Error("\u8F93\u51FA\u6587\u4EF6\u5FC5\u987B\u4F7F\u7528 .mbtiles \u6216 .pmtiles \u6269\u5C55\u540D");
643
732
  const intermediate = `${resolve(target)}.${process.pid}.mbtiles`;
733
+ const pmtilesCommand = options.pmtilesCommand || process.env.UOMTILES_PMTILES_COMMAND || "pmtiles";
644
734
  try {
645
- exportMbtiles(source, intermediate);
735
+ exportMbtiles(source, intermediate, options);
646
736
  await execFileAsync(pmtilesCommand, ["convert", intermediate, resolve(target), "--force", "--quiet"], { timeout: 30 * 6e4 });
647
737
  } catch (error) {
648
738
  if ((error == null ? void 0 : error.code) === "ENOENT") throw new Error(`\u627E\u4E0D\u5230 ${pmtilesCommand}\uFF1B\u8BF7\u5B89\u88C5 Protomaps pmtiles CLI \u6216\u8BBE\u7F6E UOMTILES_PMTILES_COMMAND`);
@@ -695,10 +785,10 @@ function removeOrphanWorkspaceSidecars(directory) {
695
785
  function cleanWorkspaceFilename(filename) {
696
786
  const candidate = filename.trim();
697
787
  if (!candidate || basename(candidate) !== candidate || candidate.includes("/") || candidate.includes("\\") || candidate.includes("\0")) {
698
- throw createError({ statusCode: 400, statusMessage: "\u6587\u4EF6\u540D\u4E0D\u5408\u6CD5" });
788
+ throw createError({ statusCode: 400, message: "\u6587\u4EF6\u540D\u4E0D\u5408\u6CD5" });
699
789
  }
700
790
  const clean = candidate.replace(/[^a-zA-Z0-9._\u4e00-\u9fff-]+/g, "_");
701
- if (!clean || clean === "." || clean === "..") throw createError({ statusCode: 400, statusMessage: "\u6587\u4EF6\u540D\u4E0D\u5408\u6CD5" });
791
+ if (!clean || clean === "." || clean === "..") throw createError({ statusCode: 400, message: "\u6587\u4EF6\u540D\u4E0D\u5408\u6CD5" });
702
792
  return clean;
703
793
  }
704
794
  function entries() {
@@ -711,20 +801,20 @@ function safeFilename(filename) {
711
801
  try {
712
802
  candidate = decodeURIComponent(filename);
713
803
  } catch {
714
- throw createError({ statusCode: 400, statusMessage: "\u5DE5\u4F5C\u533A\u6587\u4EF6\u540D\u7F16\u7801\u4E0D\u5408\u6CD5" });
804
+ throw createError({ statusCode: 400, message: "\u5DE5\u4F5C\u533A\u6587\u4EF6\u540D\u7F16\u7801\u4E0D\u5408\u6CD5" });
715
805
  }
716
806
  if (!candidate || candidate === "." || candidate === ".." || basename(candidate) !== candidate || candidate.includes("\\") || candidate.includes("\0")) {
717
- throw createError({ statusCode: 400, statusMessage: "\u5DE5\u4F5C\u533A\u6587\u4EF6\u540D\u4E0D\u5408\u6CD5" });
807
+ throw createError({ statusCode: 400, message: "\u5DE5\u4F5C\u533A\u6587\u4EF6\u540D\u4E0D\u5408\u6CD5" });
718
808
  }
719
809
  const workspaceRoot = root();
720
810
  const target = resolve(workspaceRoot, candidate);
721
- if (!target.startsWith(`${workspaceRoot}${sep}`)) throw createError({ statusCode: 400, statusMessage: "\u5DE5\u4F5C\u533A\u6587\u4EF6\u8DEF\u5F84\u4E0D\u5408\u6CD5" });
811
+ if (!target.startsWith(`${workspaceRoot}${sep}`)) throw createError({ statusCode: 400, message: "\u5DE5\u4F5C\u533A\u6587\u4EF6\u8DEF\u5F84\u4E0D\u5408\u6CD5" });
722
812
  return candidate;
723
813
  }
724
814
  function resolveWorkspaceFile(filename) {
725
815
  const candidate = safeFilename(filename);
726
816
  const found = entries().find((entry) => entry.filename === candidate);
727
- if (!found) throw createError({ statusCode: 404, statusMessage: "\u5DE5\u4F5C\u533A\u6587\u4EF6\u4E0D\u5B58\u5728" });
817
+ if (!found) throw createError({ statusCode: 404, message: "\u5DE5\u4F5C\u533A\u6587\u4EF6\u4E0D\u5B58\u5728" });
728
818
  return found;
729
819
  }
730
820
  function validateTileFile(path, kind) {
@@ -777,17 +867,17 @@ function listWorkspaceFiles() {
777
867
  async function importWorkspaceFile(filename, input) {
778
868
  const clean = cleanWorkspaceFilename(filename);
779
869
  const extension = extname(clean).slice(1).toLowerCase();
780
- if (extension !== "uomtiles") throw createError({ statusCode: 400, statusMessage: "\u5DE5\u4F5C\u533A\u4EC5\u652F\u6301 .uomtiles \u4EFB\u52A1\u6587\u4EF6" });
870
+ if (extension !== "uomtiles") throw createError({ statusCode: 400, message: "\u5DE5\u4F5C\u533A\u4EC5\u652F\u6301 .uomtiles \u4EFB\u52A1\u6587\u4EF6" });
781
871
  const target = resolve(root(), clean);
782
- if (entries().some((entry) => entry.filename.toLocaleLowerCase() === clean.toLocaleLowerCase())) throw createError({ statusCode: 409, statusMessage: "\u5DE5\u4F5C\u533A\u4E2D\u5DF2\u5B58\u5728\u540C\u540D\u6587\u4EF6" });
872
+ if (entries().some((entry) => entry.filename.toLocaleLowerCase() === clean.toLocaleLowerCase())) throw createError({ statusCode: 409, message: "\u5DE5\u4F5C\u533A\u4E2D\u5DF2\u5B58\u5728\u540C\u540D\u6587\u4EF6" });
783
873
  const temporary = `${target}.${process.pid}.${randomUUID()}.tmp`;
784
874
  try {
785
875
  await pipeline(input, createWriteStream(temporary, { flags: "wx", mode: 384 }));
786
- if (statSync(temporary).size === 0) throw createError({ statusCode: 400, statusMessage: "\u6587\u4EF6\u4E3A\u7A7A" });
876
+ if (statSync(temporary).size === 0) throw createError({ statusCode: 400, message: "\u6587\u4EF6\u4E3A\u7A7A" });
787
877
  try {
788
878
  validateTileFile(temporary, "uomtiles");
789
879
  } catch (error) {
790
- throw createError({ statusCode: 400, statusMessage: `\u6587\u4EF6\u683C\u5F0F\u65E0\u6548\uFF1A${error instanceof Error ? error.message : String(error)}` });
880
+ throw createError({ statusCode: 400, message: `\u6587\u4EF6\u683C\u5F0F\u65E0\u6548\uFF1A${error instanceof Error ? error.message : String(error)}` });
791
881
  }
792
882
  renameSync(temporary, target);
793
883
  } catch (error) {
@@ -800,14 +890,14 @@ function createWorkspaceTask(filename, publisher) {
800
890
  const clean = cleanWorkspaceFilename(filename);
801
891
  const extension = extname(clean);
802
892
  if (extension && extension.toLowerCase() !== ".uomtiles" || clean === ".uomtiles") {
803
- throw createError({ statusCode: 400, statusMessage: "\u4EFB\u52A1\u6587\u4EF6\u5FC5\u987B\u4F7F\u7528 .uomtiles \u6269\u5C55\u540D" });
893
+ throw createError({ statusCode: 400, message: "\u4EFB\u52A1\u6587\u4EF6\u5FC5\u987B\u4F7F\u7528 .uomtiles \u6269\u5C55\u540D" });
804
894
  }
805
895
  const name = extension ? `${clean.slice(0, -extension.length)}.uomtiles` : `${clean}.uomtiles`;
806
896
  if (entries().some((entry) => entry.filename.toLocaleLowerCase() === name.toLocaleLowerCase())) {
807
- throw createError({ statusCode: 409, statusMessage: "\u540C\u540D\u4EFB\u52A1\u6587\u4EF6\u5DF2\u5B58\u5728" });
897
+ throw createError({ statusCode: 409, message: "\u540C\u540D\u4EFB\u52A1\u6587\u4EF6\u5DF2\u5B58\u5728" });
808
898
  }
809
899
  const storedName = name;
810
- if (existsSync(resolve(root(), storedName))) throw createError({ statusCode: 409, statusMessage: "\u5DE5\u4F5C\u533A\u4E2D\u5DF2\u5B58\u5728\u540C\u540D\u6587\u4EF6" });
900
+ if (existsSync(resolve(root(), storedName))) throw createError({ statusCode: 409, message: "\u5DE5\u4F5C\u533A\u4E2D\u5DF2\u5B58\u5728\u540C\u540D\u6587\u4EF6" });
811
901
  const target = resolve(root(), storedName);
812
902
  const temporary = `${target}.${process.pid}.${randomUUID()}.tmp`;
813
903
  try {
@@ -821,10 +911,10 @@ function createWorkspaceTask(filename, publisher) {
821
911
  return listWorkspaceFiles().find((entry) => entry.filename === storedName);
822
912
  }
823
913
  function deleteWorkspaceFile(filename) {
824
- if (workers.has(filename)) throw createError({ statusCode: 409, statusMessage: "\u4E0B\u8F7D\u4E2D\u7684\u4EFB\u52A1\u4E0D\u80FD\u5220\u9664\uFF0C\u8BF7\u5148\u505C\u6B62\u4E0B\u8F7D" });
914
+ if (workers.has(filename)) throw createError({ statusCode: 409, message: "\u4E0B\u8F7D\u4E2D\u7684\u4EFB\u52A1\u4E0D\u80FD\u5220\u9664\uFF0C\u8BF7\u5148\u505C\u6B62\u4E0B\u8F7D" });
825
915
  const file = resolveWorkspaceFile(filename);
826
- if (file.kind !== "uomtiles") throw createError({ statusCode: 400, statusMessage: "\u53EA\u80FD\u5220\u9664\u5730\u56FE\u4E0B\u8F7D\u4EFB\u52A1" });
827
- if (hasActiveSqliteLease(file.path, "writer")) throw createError({ statusCode: 409, statusMessage: "\u4EFB\u52A1\u6B63\u5728\u88AB\u5176\u4ED6\u8FDB\u7A0B\u4F7F\u7528\uFF0C\u6682\u65F6\u4E0D\u80FD\u5220\u9664" });
916
+ if (file.kind !== "uomtiles") throw createError({ statusCode: 400, message: "\u53EA\u80FD\u5220\u9664\u5730\u56FE\u4E0B\u8F7D\u4EFB\u52A1" });
917
+ if (hasActiveSqliteLease(file.path, "writer")) throw createError({ statusCode: 409, message: "\u4EFB\u52A1\u6B63\u5728\u88AB\u5176\u4ED6\u8FDB\u7A0B\u4F7F\u7528\uFF0C\u6682\u65F6\u4E0D\u80FD\u5220\u9664" });
828
918
  unlinkSync(file.path);
829
919
  for (const suffix of ["-wal", "-shm"]) {
830
920
  const sidecar = `${file.path}${suffix}`;
@@ -833,16 +923,16 @@ function deleteWorkspaceFile(filename) {
833
923
  }
834
924
  function startWorkspaceFetch(filename) {
835
925
  const file = resolveWorkspaceFile(filename);
836
- if (file.kind !== "uomtiles") throw createError({ statusCode: 400, statusMessage: "\u53EA\u6709 .uomtiles \u652F\u6301\u6293\u53D6\u548C\u65AD\u70B9\u7EED\u4F20" });
926
+ if (file.kind !== "uomtiles") throw createError({ statusCode: 400, message: "\u53EA\u6709 .uomtiles \u652F\u6301\u6293\u53D6\u548C\u65AD\u70B9\u7EED\u4F20" });
837
927
  if (hasActiveSqliteLease(file.path, "writer") || workers.has(file.filename)) {
838
- throw createError({ statusCode: 409, statusMessage: "\u8BE5\u4EFB\u52A1\u6B63\u5728\u4E0B\u8F7D" });
928
+ throw createError({ statusCode: 409, message: "\u8BE5\u4EFB\u52A1\u6B63\u5728\u4E0B\u8F7D" });
839
929
  }
840
- if (!existsSync(authPath())) throw createError({ statusCode: 401, statusMessage: "\u8BF7\u5148\u767B\u5F55 UOM" });
930
+ if (!existsSync(authPath())) throw createError({ statusCode: 401, message: "\u8BF7\u5148\u767B\u5F55 UOM" });
841
931
  let spec;
842
932
  try {
843
933
  spec = decodeFetchProcess(process.env[FETCH_PROCESS_ENV]);
844
934
  } catch (error) {
845
- throw createError({ statusCode: 500, statusMessage: error instanceof Error ? error.message : String(error) });
935
+ throw createError({ statusCode: 500, message: error instanceof Error ? error.message : String(error) });
846
936
  }
847
937
  const child = spawn(spec.command, spec.args, {
848
938
  cwd: process.cwd(),
@@ -881,13 +971,18 @@ function stopWorkspaceFetch(filename) {
881
971
  }
882
972
  return listWorkspaceFiles();
883
973
  }
884
- async function ensureWorkspaceExport(filename, format) {
974
+ function estimateWorkspaceExport(filename, format, range) {
975
+ const file = resolveWorkspaceFile(filename);
976
+ if (file.kind !== "uomtiles") throw createError({ statusCode: 400, message: "\u4EC5 .uomtiles \u53EF\u5BFC\u51FA" });
977
+ return estimateExport(file.path, format, range);
978
+ }
979
+ async function ensureWorkspaceExport(filename, format, range) {
885
980
  const file = resolveWorkspaceFile(filename);
886
- if (file.kind !== "uomtiles") throw createError({ statusCode: 400, statusMessage: "\u4EC5 .uomtiles \u53EF\u5BFC\u51FA" });
981
+ if (file.kind !== "uomtiles") throw createError({ statusCode: 400, message: "\u4EC5 .uomtiles \u53EF\u5BFC\u51FA" });
887
982
  const directory = mkdtempSync(resolve(tmpdir(), "uomtiles-export-"));
888
983
  const output = resolve(directory, `${file.filename.replace(/\.uomtiles$/i, "")}.${format}`);
889
984
  try {
890
- await exportTiles(file.path, output, String(useRuntimeConfig().pmtilesCommand || "pmtiles"));
985
+ await exportTiles(file.path, output, { ...range, pmtilesCommand: String(useRuntimeConfig().pmtilesCommand || "pmtiles") });
891
986
  return output;
892
987
  } catch (error) {
893
988
  rmSync(directory, { recursive: true, force: true });
@@ -906,5 +1001,5 @@ function workspaceReadStream(filename) {
906
1001
  return { file, stream: createReadStream(file.path) };
907
1002
  }
908
1003
 
909
- export { workspaceTileProgress as a, readWorkspaceTile as b, readTileFiles as c, deleteWorkspaceFile as d, ensureWorkspaceExport as e, tileFileCoordinates as f, stopWorkspaceFetch as g, createWorkspaceTask as h, importWorkspaceFile as i, cleanWorkspaceFilename as j, hasActiveSqliteLease as k, listWorkspaceFiles as l, resolveWorkspaceFile as r, startWorkspaceFetch as s, tileFileCoordinatesAtZoom as t, validateTileFile as v, workspaceReadStream as w };
1004
+ export { ensureWorkspaceExport as a, workspaceTileProgress as b, readWorkspaceTile as c, deleteWorkspaceFile as d, estimateWorkspaceExport as e, readTileFiles as f, tileFileCoordinates as g, stopWorkspaceFetch as h, importWorkspaceFile as i, createWorkspaceTask as j, cleanWorkspaceFilename as k, listWorkspaceFiles as l, hasActiveSqliteLease as m, resolveWorkspaceFile as r, startWorkspaceFetch as s, tileFileCoordinatesAtZoom as t, validateTileFile as v, workspaceReadStream as w };
910
1005
  //# sourceMappingURL=file-workspace.mjs.map