uomtiles 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.output/nitro.json +15 -0
- package/.output/public/_nuxt/1d1PDhA4.js +1 -0
- package/.output/public/_nuxt/3B2XYGg4.js +1 -0
- package/.output/public/_nuxt/981KwFWf.js +1 -0
- package/.output/public/_nuxt/B30dSvM4.js +1 -0
- package/.output/public/_nuxt/BN1Gp4Dm.js +1 -0
- package/.output/public/_nuxt/BQlj8Xoe.js +6 -0
- package/.output/public/_nuxt/BRkljK8J.js +1 -0
- package/.output/public/_nuxt/BSdHYVlE2.js +1 -0
- package/.output/public/_nuxt/B_MqTg2k2.js +1 -0
- package/.output/public/_nuxt/BiWblTbb2.js +64 -0
- package/.output/public/_nuxt/BrPwntMr.js +1 -0
- package/.output/public/_nuxt/BskybydR.js +1 -0
- package/.output/public/_nuxt/ByRlKR9F.js +1 -0
- package/.output/public/_nuxt/C0Zdl2EE2.js +1 -0
- package/.output/public/_nuxt/C4qlzA4o.js +1 -0
- package/.output/public/_nuxt/C7HxHbxA.js +1 -0
- package/.output/public/_nuxt/C97TfNgP.js +3 -0
- package/.output/public/_nuxt/CNs_Ozdc.js +1 -0
- package/.output/public/_nuxt/CPuhwLY1.js +1 -0
- package/.output/public/_nuxt/CVE291Pi.js +1 -0
- package/.output/public/_nuxt/C_0VY3Cv2.js +4 -0
- package/.output/public/_nuxt/Ce26t8_Y.js +1 -0
- package/.output/public/_nuxt/CfW544W5.js +1 -0
- package/.output/public/_nuxt/CgMd2Y5s.js +2 -0
- package/.output/public/_nuxt/CgdzV712.js +1 -0
- package/.output/public/_nuxt/D1wVNWS0.js +1 -0
- package/.output/public/_nuxt/DC3bhq63.js +1 -0
- package/.output/public/_nuxt/DK3Fl9T5.js +1 -0
- package/.output/public/_nuxt/DL1MZZLI.js +1 -0
- package/.output/public/_nuxt/DXm-42Fi.js +1 -0
- package/.output/public/_nuxt/Djg3Kzfv.js +1 -0
- package/.output/public/_nuxt/DkcySee1.js +1 -0
- package/.output/public/_nuxt/DmN-PKW1.js +1 -0
- package/.output/public/_nuxt/DtFVCXI9.js +1 -0
- package/.output/public/_nuxt/Dz7VMlHR.js +1 -0
- package/.output/public/_nuxt/NL65vbjG2.js +1 -0
- package/.output/public/_nuxt/Oxy7pKSk.js +3 -0
- package/.output/public/_nuxt/Pik8or8N2.js +1 -0
- package/.output/public/_nuxt/XZ59tThl.js +1 -0
- package/.output/public/_nuxt/ZpWjFsgV.js +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -0
- package/.output/public/_nuxt/builds/meta/9f85104e-738d-4a74-8daa-40b136ce17d5.json +1 -0
- package/.output/public/_nuxt/dXz6dFgW2.js +1 -0
- package/.output/public/_nuxt/entry.P6tFNE31.css +1 -0
- package/.output/public/_nuxt/error-404.Biv0P6cJ.css +1 -0
- package/.output/public/_nuxt/error-500.8ok468rV.css +1 -0
- package/.output/public/_nuxt/j0MRD-c3.js +1 -0
- package/.output/public/_nuxt/local-pixel-diff.worker-C6RdZoCq.js +2 -0
- package/.output/public/_nuxt/maplibre-gl-worker.nfnkSQvL.mjs +6 -0
- package/.output/public/_nuxt/nearest-area.worker-iSLH0Y_s.js +2 -0
- package/.output/public/_nuxt/q7DkoVkj.js +828 -0
- package/.output/public/_nuxt/raster-tile.worker-BFlOgJig.js +2 -0
- package/.output/public/_nuxt/services._3nQizF8.css +1 -0
- package/.output/public/_nuxt/sql-wasm.DfANybxk.wasm +0 -0
- package/.output/public/_nuxt/tile-diff.worker-CvWWI_eu.js +1 -0
- package/.output/public/_nuxt/zZ1EGR7Y.js +1 -0
- package/.output/public/apple-touch-icon.png +0 -0
- package/.output/public/favicon.ico +0 -0
- package/.output/public/favicon.svg +8 -0
- package/.output/public/icon-192.png +0 -0
- package/.output/public/icon-512.png +0 -0
- package/.output/public/site.webmanifest +11 -0
- package/.output/server/chunks/_/config.mjs +208 -0
- package/.output/server/chunks/_/config.mjs.map +1 -0
- package/.output/server/chunks/_/data-directory.mjs +24 -0
- package/.output/server/chunks/_/data-directory.mjs.map +1 -0
- package/.output/server/chunks/_/error-500.mjs +20 -0
- package/.output/server/chunks/_/error-500.mjs.map +1 -0
- package/.output/server/chunks/_/file-workspace.mjs +910 -0
- package/.output/server/chunks/_/file-workspace.mjs.map +1 -0
- package/.output/server/chunks/_/icons.mjs +6269 -0
- package/.output/server/chunks/_/icons.mjs.map +1 -0
- package/.output/server/chunks/_/map-service.mjs +233 -0
- package/.output/server/chunks/_/map-service.mjs.map +1 -0
- package/.output/server/chunks/_/missing-tile.mjs +104 -0
- package/.output/server/chunks/_/missing-tile.mjs.map +1 -0
- package/.output/server/chunks/_/pixel-diff.mjs +78 -0
- package/.output/server/chunks/_/pixel-diff.mjs.map +1 -0
- package/.output/server/chunks/_/uom-auth.mjs +334 -0
- package/.output/server/chunks/_/uom-auth.mjs.map +1 -0
- package/.output/server/chunks/_/uom-map.mjs +265 -0
- package/.output/server/chunks/_/uom-map.mjs.map +1 -0
- package/.output/server/chunks/build/Alert-0ngTJXxP.mjs +5076 -0
- package/.output/server/chunks/build/Alert-0ngTJXxP.mjs.map +1 -0
- package/.output/server/chunks/build/DashboardSidebarToggle-pncTaIJq.mjs +569 -0
- package/.output/server/chunks/build/DashboardSidebarToggle-pncTaIJq.mjs.map +1 -0
- package/.output/server/chunks/build/Empty-CkW3mADt.mjs +359 -0
- package/.output/server/chunks/build/Empty-CkW3mADt.mjs.map +1 -0
- package/.output/server/chunks/build/FocusScope-Cf0lg0zt.mjs +207 -0
- package/.output/server/chunks/build/FocusScope-Cf0lg0zt.mjs.map +1 -0
- package/.output/server/chunks/build/FormField-CEUZHcv7.mjs +278 -0
- package/.output/server/chunks/build/FormField-CEUZHcv7.mjs.map +1 -0
- package/.output/server/chunks/build/Input-BeNavYXb.mjs +592 -0
- package/.output/server/chunks/build/Input-BeNavYXb.mjs.map +1 -0
- package/.output/server/chunks/build/MapBaseLayerTabs-4445J6yh.mjs +2003 -0
- package/.output/server/chunks/build/MapBaseLayerTabs-4445J6yh.mjs.map +1 -0
- package/.output/server/chunks/build/Modal-DNZtVxca.mjs +1326 -0
- package/.output/server/chunks/build/Modal-DNZtVxca.mjs.map +1 -0
- package/.output/server/chunks/build/OnlineMap-CKwiuqUY.mjs +146 -0
- package/.output/server/chunks/build/OnlineMap-CKwiuqUY.mjs.map +1 -0
- package/.output/server/chunks/build/Pagination-CDHx4HTZ.mjs +1025 -0
- package/.output/server/chunks/build/Pagination-CDHx4HTZ.mjs.map +1 -0
- package/.output/server/chunks/build/PopperArrow-Bqfdf2Et.mjs +2066 -0
- package/.output/server/chunks/build/PopperArrow-Bqfdf2Et.mjs.map +1 -0
- package/.output/server/chunks/build/ScrollArea-BQK3em8b.mjs +379 -0
- package/.output/server/chunks/build/ScrollArea-BQK3em8b.mjs.map +1 -0
- package/.output/server/chunks/build/Slider-D-n8Y0CX.mjs +1087 -0
- package/.output/server/chunks/build/Slider-D-n8Y0CX.mjs.map +1 -0
- package/.output/server/chunks/build/Tooltip-CkpSktvJ.mjs +1345 -0
- package/.output/server/chunks/build/Tooltip-CkpSktvJ.mjs.map +1 -0
- package/.output/server/chunks/build/_virtual_public-CeOptKUP.mjs +7 -0
- package/.output/server/chunks/build/_virtual_public-CeOptKUP.mjs.map +1 -0
- package/.output/server/chunks/build/advanced-D1onodoF.mjs +1430 -0
- package/.output/server/chunks/build/advanced-D1onodoF.mjs.map +1 -0
- package/.output/server/chunks/build/compare-DmSAW8oA.mjs +1093 -0
- package/.output/server/chunks/build/compare-DmSAW8oA.mjs.map +1 -0
- package/.output/server/chunks/build/dashboard-BJxrZ19n.mjs +3217 -0
- package/.output/server/chunks/build/dashboard-BJxrZ19n.mjs.map +1 -0
- package/.output/server/chunks/build/details-CBMqXYyo.mjs +3714 -0
- package/.output/server/chunks/build/details-CBMqXYyo.mjs.map +1 -0
- package/.output/server/chunks/build/error-404-D9aQjJRn.mjs +86 -0
- package/.output/server/chunks/build/error-404-D9aQjJRn.mjs.map +1 -0
- package/.output/server/chunks/build/error-404-styles.DciiguV6.mjs +9 -0
- package/.output/server/chunks/build/error-404-styles.DciiguV6.mjs.map +1 -0
- package/.output/server/chunks/build/error-500-BNyA3wrb.mjs +74 -0
- package/.output/server/chunks/build/error-500-BNyA3wrb.mjs.map +1 -0
- package/.output/server/chunks/build/error-500-styles.C562DYMR.mjs +9 -0
- package/.output/server/chunks/build/error-500-styles.C562DYMR.mjs.map +1 -0
- package/.output/server/chunks/build/esm-Dp2lJXbp.mjs +1121 -0
- package/.output/server/chunks/build/esm-Dp2lJXbp.mjs.map +1 -0
- package/.output/server/chunks/build/interval-BxUMpo78.mjs +411 -0
- package/.output/server/chunks/build/interval-BxUMpo78.mjs.map +1 -0
- package/.output/server/chunks/build/login-lbtjN0MV.mjs +642 -0
- package/.output/server/chunks/build/login-lbtjN0MV.mjs.map +1 -0
- package/.output/server/chunks/build/pages-Ba0Eixbd.mjs +220 -0
- package/.output/server/chunks/build/pages-Ba0Eixbd.mjs.map +1 -0
- package/.output/server/chunks/build/services-DuJwjAB8.mjs +3005 -0
- package/.output/server/chunks/build/services-DuJwjAB8.mjs.map +1 -0
- package/.output/server/chunks/build/services-styles.eoO16BY9.mjs +9 -0
- package/.output/server/chunks/build/services-styles.eoO16BY9.mjs.map +1 -0
- package/.output/server/chunks/build/tasks-CyN9x492.mjs +915 -0
- package/.output/server/chunks/build/tasks-CyN9x492.mjs.map +1 -0
- package/.output/server/chunks/build/tasks-D_Q5EDnn.mjs +87 -0
- package/.output/server/chunks/build/tasks-D_Q5EDnn.mjs.map +1 -0
- package/.output/server/chunks/nitro/nitro.mjs +6215 -0
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -0
- package/.output/server/chunks/routes/api/auth/captcha.post.mjs +21 -0
- package/.output/server/chunks/routes/api/auth/captcha.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/auth/login.post.mjs +27 -0
- package/.output/server/chunks/routes/api/auth/login.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/auth/logout.post.mjs +22 -0
- package/.output/server/chunks/routes/api/auth/logout.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/auth/map-token.post.mjs +22 -0
- package/.output/server/chunks/routes/api/auth/map-token.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/auth/send-sms.post.mjs +31 -0
- package/.output/server/chunks/routes/api/auth/send-sms.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/auth/status.get.mjs +21 -0
- package/.output/server/chunks/routes/api/auth/status.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/map/base/_baseLayer/_zoom/_tileX/_tileY_.get.mjs +44 -0
- package/.output/server/chunks/routes/api/map/base/_baseLayer/_zoom/_tileX/_tileY_.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/map/live/status.get.mjs +32 -0
- package/.output/server/chunks/routes/api/map/live/status.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/map/online/_layerGroup/_zoom/_tileX/_tileY_.get.mjs +48 -0
- package/.output/server/chunks/routes/api/map/online/_layerGroup/_zoom/_tileX/_tileY_.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/map/online-root/_layerGroup/_rootX/_rootY_.get.mjs +46 -0
- package/.output/server/chunks/routes/api/map/online-root/_layerGroup/_rootX/_rootY_.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/map-service/config.post.mjs +38 -0
- package/.output/server/chunks/routes/api/map-service/config.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/map-service/file.post.mjs +41 -0
- package/.output/server/chunks/routes/api/map-service/file.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/map-service/source.post.mjs +35 -0
- package/.output/server/chunks/routes/api/map-service/source.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/map-service/status.get.mjs +32 -0
- package/.output/server/chunks/routes/api/map-service/status.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workspace/_filename/analysis.get.mjs +47 -0
- package/.output/server/chunks/routes/api/workspace/_filename/analysis.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workspace/_filename/download.get.mjs +38 -0
- package/.output/server/chunks/routes/api/workspace/_filename/download.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workspace/_filename/export/_format_.get.mjs +42 -0
- package/.output/server/chunks/routes/api/workspace/_filename/export/_format_.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workspace/_filename/tile.get.mjs +48 -0
- package/.output/server/chunks/routes/api/workspace/_filename/tile.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workspace/_filename/tiles.get.mjs +45 -0
- package/.output/server/chunks/routes/api/workspace/_filename/tiles.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workspace/_filename_.delete.mjs +32 -0
- package/.output/server/chunks/routes/api/workspace/_filename_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workspace/compare/batch.get.mjs +38 -0
- package/.output/server/chunks/routes/api/workspace/compare/batch.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workspace/compare.post.mjs +33 -0
- package/.output/server/chunks/routes/api/workspace/compare.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workspace/fetch.post.mjs +33 -0
- package/.output/server/chunks/routes/api/workspace/fetch.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workspace/files.get.mjs +27 -0
- package/.output/server/chunks/routes/api/workspace/files.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workspace/files.post.mjs +38 -0
- package/.output/server/chunks/routes/api/workspace/files.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workspace/stop.post.mjs +32 -0
- package/.output/server/chunks/routes/api/workspace/stop.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workspace/tasks.post.mjs +36 -0
- package/.output/server/chunks/routes/api/workspace/tasks.post.mjs.map +1 -0
- package/.output/server/chunks/routes/renderer.mjs +422 -0
- package/.output/server/chunks/routes/renderer.mjs.map +1 -0
- package/.output/server/chunks/routes/services/wms.get.mjs +54 -0
- package/.output/server/chunks/routes/services/wms.get.mjs.map +1 -0
- package/.output/server/chunks/routes/services/wmts.get.mjs +54 -0
- package/.output/server/chunks/routes/services/wmts.get.mjs.map +1 -0
- package/.output/server/chunks/virtual/_virtual_spa-template.mjs +4 -0
- package/.output/server/chunks/virtual/_virtual_spa-template.mjs.map +1 -0
- package/.output/server/chunks/virtual/entry.mjs +18545 -0
- package/.output/server/chunks/virtual/entry.mjs.map +1 -0
- package/.output/server/chunks/virtual/precomputed.mjs +4 -0
- package/.output/server/chunks/virtual/precomputed.mjs.map +1 -0
- package/.output/server/chunks/virtual/styles.mjs +10 -0
- package/.output/server/chunks/virtual/styles.mjs.map +1 -0
- package/.output/server/index.mjs +12 -0
- package/.output/server/index.mjs.map +1 -0
- package/.output/server/node_modules/@babel/parser/lib/index.js +14611 -0
- package/.output/server/node_modules/@babel/parser/package.json +50 -0
- package/.output/server/node_modules/@iconify/utils/lib/colors/index.js +295 -0
- package/.output/server/node_modules/@iconify/utils/lib/colors/keywords.js +701 -0
- package/.output/server/node_modules/@iconify/utils/lib/css/common.js +75 -0
- package/.output/server/node_modules/@iconify/utils/lib/css/format.js +39 -0
- package/.output/server/node_modules/@iconify/utils/lib/css/icon.js +47 -0
- package/.output/server/node_modules/@iconify/utils/lib/css/icons.js +128 -0
- package/.output/server/node_modules/@iconify/utils/lib/customisations/bool.js +19 -0
- package/.output/server/node_modules/@iconify/utils/lib/customisations/defaults.js +13 -0
- package/.output/server/node_modules/@iconify/utils/lib/customisations/flip.js +17 -0
- package/.output/server/node_modules/@iconify/utils/lib/customisations/merge.js +16 -0
- package/.output/server/node_modules/@iconify/utils/lib/customisations/rotate.js +30 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/cleanup.js +78 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/convert.js +100 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/data.js +28 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/format.js +58 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/parse.js +48 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/base.js +203 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/create.js +33 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/numbers.js +132 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/similar.js +165 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/tree.js +79 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/replace/find.js +92 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/replace/replace.js +26 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/test/components.js +76 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/test/missing.js +66 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/test/name.js +45 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/test/parse.js +103 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/test/similar.js +36 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/test/tree.js +92 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/test/variations.js +62 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon/defaults.js +25 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon/merge.js +16 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon/name.js +57 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon/square.js +33 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon/transformations.js +12 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/convert-info.js +125 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/expand.js +19 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icon.js +25 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icons.js +36 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/minify.js +91 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/parse.js +46 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/tree.js +23 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/validate-basic.js +42 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/validate.js +123 -0
- package/.output/server/node_modules/@iconify/utils/lib/index.js +52 -0
- package/.output/server/node_modules/@iconify/utils/lib/loader/custom.js +30 -0
- package/.output/server/node_modules/@iconify/utils/lib/loader/loader.js +26 -0
- package/.output/server/node_modules/@iconify/utils/lib/loader/modern.js +27 -0
- package/.output/server/node_modules/@iconify/utils/lib/loader/utils.js +105 -0
- package/.output/server/node_modules/@iconify/utils/lib/misc/objects.js +26 -0
- package/.output/server/node_modules/@iconify/utils/lib/misc/strings.js +26 -0
- package/.output/server/node_modules/@iconify/utils/lib/misc/title.js +9 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/build.js +113 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/defs.js +31 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/encode-svg-for-css.js +13 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/html.js +9 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/id.js +41 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/inner-html.js +22 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/parse.js +67 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/pretty.js +54 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/size.js +27 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/trim.js +7 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/url.js +22 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/viewbox.js +8 -0
- package/.output/server/node_modules/@iconify/utils/package.json +119 -0
- package/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +6801 -0
- package/.output/server/node_modules/@vue/compiler-core/package.json +58 -0
- package/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +692 -0
- package/.output/server/node_modules/@vue/compiler-dom/package.json +57 -0
- package/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +1420 -0
- package/.output/server/node_modules/@vue/compiler-ssr/package.json +34 -0
- package/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +1903 -0
- package/.output/server/node_modules/@vue/reactivity/package.json +55 -0
- package/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +6976 -0
- package/.output/server/node_modules/@vue/runtime-core/package.json +52 -0
- package/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +1841 -0
- package/.output/server/node_modules/@vue/runtime-dom/package.json +60 -0
- package/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +904 -0
- package/.output/server/node_modules/@vue/server-renderer/package.json +53 -0
- package/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +609 -0
- package/.output/server/node_modules/@vue/shared/package.json +47 -0
- package/.output/server/node_modules/consola/dist/chunks/prompt.mjs +280 -0
- package/.output/server/node_modules/consola/dist/core.mjs +512 -0
- package/.output/server/node_modules/consola/dist/index.mjs +651 -0
- package/.output/server/node_modules/consola/dist/shared/consola.DRwqZj3T.mjs +72 -0
- package/.output/server/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs +288 -0
- package/.output/server/node_modules/consola/package.json +136 -0
- package/.output/server/node_modules/devalue/index.js +17 -0
- package/.output/server/node_modules/devalue/package.json +39 -0
- package/.output/server/node_modules/devalue/src/base64.js +60 -0
- package/.output/server/node_modules/devalue/src/constants.js +12 -0
- package/.output/server/node_modules/devalue/src/operations.js +193 -0
- package/.output/server/node_modules/devalue/src/parse.js +270 -0
- package/.output/server/node_modules/devalue/src/stringify.js +428 -0
- package/.output/server/node_modules/devalue/src/uneval.js +582 -0
- package/.output/server/node_modules/devalue/src/utils.js +185 -0
- package/.output/server/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
- package/.output/server/node_modules/entities/dist/commonjs/decode.js +568 -0
- package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-html.js +7 -0
- package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +7 -0
- package/.output/server/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js +21 -0
- package/.output/server/node_modules/entities/dist/commonjs/internal/decode-shared.js +31 -0
- package/.output/server/node_modules/entities/dist/commonjs/package.json +3 -0
- package/.output/server/node_modules/entities/package.json +120 -0
- package/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +344 -0
- package/.output/server/node_modules/estree-walker/package.json +37 -0
- package/.output/server/node_modules/fflate/esm/index.mjs +2710 -0
- package/.output/server/node_modules/fflate/package.json +128 -0
- package/.output/server/node_modules/fnv1a-64/dist/index.mjs +95 -0
- package/.output/server/node_modules/fnv1a-64/package.json +75 -0
- package/.output/server/node_modules/hookable/dist/index.mjs +257 -0
- package/.output/server/node_modules/hookable/package.json +53 -0
- package/.output/server/node_modules/nostics/dist/formatters/ansi.mjs +19 -0
- package/.output/server/node_modules/nostics/dist/index.mjs +187 -0
- package/.output/server/node_modules/nostics/package.json +125 -0
- package/.output/server/node_modules/object-identity/index.js +60 -0
- package/.output/server/node_modules/object-identity/package.json +40 -0
- package/.output/server/node_modules/p-limit/index.js +104 -0
- package/.output/server/node_modules/p-limit/package.json +58 -0
- package/.output/server/node_modules/pmtiles/dist/esm/index.js +2 -0
- package/.output/server/node_modules/pmtiles/package.json +50 -0
- package/.output/server/node_modules/source-map-js/lib/array-set.js +121 -0
- package/.output/server/node_modules/source-map-js/lib/base64-vlq.js +140 -0
- package/.output/server/node_modules/source-map-js/lib/base64.js +67 -0
- package/.output/server/node_modules/source-map-js/lib/binary-search.js +111 -0
- package/.output/server/node_modules/source-map-js/lib/mapping-list.js +79 -0
- package/.output/server/node_modules/source-map-js/lib/quick-sort.js +132 -0
- package/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
- package/.output/server/node_modules/source-map-js/lib/source-map-generator.js +444 -0
- package/.output/server/node_modules/source-map-js/lib/source-node.js +413 -0
- package/.output/server/node_modules/source-map-js/lib/util.js +594 -0
- package/.output/server/node_modules/source-map-js/package.json +71 -0
- package/.output/server/node_modules/source-map-js/source-map.js +8 -0
- package/.output/server/node_modules/tailwindcss/dist/chunk-DCG7AFIE.mjs +1 -0
- package/.output/server/node_modules/tailwindcss/dist/colors.mjs +1 -0
- package/.output/server/node_modules/tailwindcss/package.json +89 -0
- package/.output/server/node_modules/ufo/dist/index.mjs +645 -0
- package/.output/server/node_modules/ufo/package.json +48 -0
- package/.output/server/node_modules/unhead/dist/client.mjs +22 -0
- package/.output/server/node_modules/unhead/dist/index.mjs +52 -0
- package/.output/server/node_modules/unhead/dist/legacy.mjs +33 -0
- package/.output/server/node_modules/unhead/dist/minify.mjs +183 -0
- package/.output/server/node_modules/unhead/dist/parser.mjs +518 -0
- package/.output/server/node_modules/unhead/dist/plugins.mjs +631 -0
- package/.output/server/node_modules/unhead/dist/scripts.node.mjs +6 -0
- package/.output/server/node_modules/unhead/dist/server.mjs +99 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.BEmVMkeA.mjs +673 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.BGFxPGPQ.mjs +47 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.BQWSw36o.mjs +192 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.Bb4d5b9h.mjs +67 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.BdK3SLPN.mjs +585 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.Bf_fPVYA.mjs +6 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.Bm4Y6XQI.mjs +17 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.C3b2Ipoj.mjs +223 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.CGPOfp5O.mjs +32 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.CHEy9ana.mjs +7 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.CTjuIdzk.mjs +27 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.CfKy3Kuq.mjs +196 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.D7HkBzZn.mjs +59 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.DNKiVLV7.mjs +400 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.MC5RsXLj.mjs +19 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.jEy9BmRq.mjs +264 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.tQnRaXfX.mjs +240 -0
- package/.output/server/node_modules/unhead/dist/stream/client.mjs +28 -0
- package/.output/server/node_modules/unhead/dist/stream/iife.mjs +2 -0
- package/.output/server/node_modules/unhead/dist/stream/server.mjs +264 -0
- package/.output/server/node_modules/unhead/dist/utils.mjs +7 -0
- package/.output/server/node_modules/unhead/package.json +179 -0
- package/.output/server/node_modules/vue/dist/vue.cjs.js +80 -0
- package/.output/server/node_modules/vue/dist/vue.cjs.prod.js +66 -0
- package/.output/server/node_modules/vue/index.js +7 -0
- package/.output/server/node_modules/vue/index.mjs +1 -0
- package/.output/server/node_modules/vue/package.json +112 -0
- package/.output/server/node_modules/vue/server-renderer/index.mjs +1 -0
- package/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +278 -0
- package/.output/server/node_modules/vue-bundle-renderer/package.json +54 -0
- package/.output/server/node_modules/yocto-queue/index.js +90 -0
- package/.output/server/node_modules/yocto-queue/package.json +48 -0
- package/.output/server/node_modules/zod/index.js +4 -0
- package/.output/server/node_modules/zod/package.json +135 -0
- package/.output/server/node_modules/zod/v4/classic/checks.js +1 -0
- package/.output/server/node_modules/zod/v4/classic/coerce.js +17 -0
- package/.output/server/node_modules/zod/v4/classic/compat.js +31 -0
- package/.output/server/node_modules/zod/v4/classic/errors.js +48 -0
- package/.output/server/node_modules/zod/v4/classic/external.js +20 -0
- package/.output/server/node_modules/zod/v4/classic/from-json-schema.js +599 -0
- package/.output/server/node_modules/zod/v4/classic/iso.js +30 -0
- package/.output/server/node_modules/zod/v4/classic/package.json +7 -0
- package/.output/server/node_modules/zod/v4/classic/parse.js +15 -0
- package/.output/server/node_modules/zod/v4/classic/schemas.js +1395 -0
- package/.output/server/node_modules/zod/v4/core/api.js +1087 -0
- package/.output/server/node_modules/zod/v4/core/checks.js +575 -0
- package/.output/server/node_modules/zod/v4/core/core.js +78 -0
- package/.output/server/node_modules/zod/v4/core/doc.js +35 -0
- package/.output/server/node_modules/zod/v4/core/errors.js +185 -0
- package/.output/server/node_modules/zod/v4/core/index.js +16 -0
- package/.output/server/node_modules/zod/v4/core/json-schema-generator.js +95 -0
- package/.output/server/node_modules/zod/v4/core/json-schema-processors.js +601 -0
- package/.output/server/node_modules/zod/v4/core/json-schema.js +1 -0
- package/.output/server/node_modules/zod/v4/core/package.json +7 -0
- package/.output/server/node_modules/zod/v4/core/parse.js +93 -0
- package/.output/server/node_modules/zod/v4/core/regexes.js +139 -0
- package/.output/server/node_modules/zod/v4/core/registries.js +51 -0
- package/.output/server/node_modules/zod/v4/core/schemas.js +2239 -0
- package/.output/server/node_modules/zod/v4/core/to-json-schema.js +448 -0
- package/.output/server/node_modules/zod/v4/core/util.js +674 -0
- package/.output/server/node_modules/zod/v4/core/versions.js +5 -0
- package/.output/server/node_modules/zod/v4/locales/ar.js +106 -0
- package/.output/server/node_modules/zod/v4/locales/az.js +105 -0
- package/.output/server/node_modules/zod/v4/locales/be.js +156 -0
- package/.output/server/node_modules/zod/v4/locales/bg.js +120 -0
- package/.output/server/node_modules/zod/v4/locales/ca.js +107 -0
- package/.output/server/node_modules/zod/v4/locales/cs.js +111 -0
- package/.output/server/node_modules/zod/v4/locales/da.js +115 -0
- package/.output/server/node_modules/zod/v4/locales/de.js +108 -0
- package/.output/server/node_modules/zod/v4/locales/el.js +109 -0
- package/.output/server/node_modules/zod/v4/locales/en.js +113 -0
- package/.output/server/node_modules/zod/v4/locales/eo.js +109 -0
- package/.output/server/node_modules/zod/v4/locales/es.js +132 -0
- package/.output/server/node_modules/zod/v4/locales/fa.js +114 -0
- package/.output/server/node_modules/zod/v4/locales/fi.js +112 -0
- package/.output/server/node_modules/zod/v4/locales/fr-CA.js +107 -0
- package/.output/server/node_modules/zod/v4/locales/fr.js +125 -0
- package/.output/server/node_modules/zod/v4/locales/he.js +214 -0
- package/.output/server/node_modules/zod/v4/locales/hr.js +122 -0
- package/.output/server/node_modules/zod/v4/locales/hu.js +108 -0
- package/.output/server/node_modules/zod/v4/locales/hy.js +147 -0
- package/.output/server/node_modules/zod/v4/locales/id.js +106 -0
- package/.output/server/node_modules/zod/v4/locales/index.js +52 -0
- package/.output/server/node_modules/zod/v4/locales/is.js +109 -0
- package/.output/server/node_modules/zod/v4/locales/it.js +108 -0
- package/.output/server/node_modules/zod/v4/locales/ja.js +107 -0
- package/.output/server/node_modules/zod/v4/locales/ka.js +112 -0
- package/.output/server/node_modules/zod/v4/locales/kh.js +5 -0
- package/.output/server/node_modules/zod/v4/locales/km.js +110 -0
- package/.output/server/node_modules/zod/v4/locales/ko.js +111 -0
- package/.output/server/node_modules/zod/v4/locales/lt.js +203 -0
- package/.output/server/node_modules/zod/v4/locales/mk.js +109 -0
- package/.output/server/node_modules/zod/v4/locales/ms.js +107 -0
- package/.output/server/node_modules/zod/v4/locales/nl.js +110 -0
- package/.output/server/node_modules/zod/v4/locales/no.js +108 -0
- package/.output/server/node_modules/zod/v4/locales/ota.js +109 -0
- package/.output/server/node_modules/zod/v4/locales/package.json +7 -0
- package/.output/server/node_modules/zod/v4/locales/pl.js +109 -0
- package/.output/server/node_modules/zod/v4/locales/ps.js +114 -0
- package/.output/server/node_modules/zod/v4/locales/pt.js +108 -0
- package/.output/server/node_modules/zod/v4/locales/ro.js +119 -0
- package/.output/server/node_modules/zod/v4/locales/ru.js +156 -0
- package/.output/server/node_modules/zod/v4/locales/sl.js +109 -0
- package/.output/server/node_modules/zod/v4/locales/sv.js +110 -0
- package/.output/server/node_modules/zod/v4/locales/ta.js +110 -0
- package/.output/server/node_modules/zod/v4/locales/th.js +110 -0
- package/.output/server/node_modules/zod/v4/locales/tr.js +105 -0
- package/.output/server/node_modules/zod/v4/locales/ua.js +5 -0
- package/.output/server/node_modules/zod/v4/locales/uk.js +108 -0
- package/.output/server/node_modules/zod/v4/locales/ur.js +110 -0
- package/.output/server/node_modules/zod/v4/locales/uz.js +110 -0
- package/.output/server/node_modules/zod/v4/locales/vi.js +108 -0
- package/.output/server/node_modules/zod/v4/locales/yo.js +107 -0
- package/.output/server/node_modules/zod/v4/locales/zh-CN.js +109 -0
- package/.output/server/node_modules/zod/v4/locales/zh-TW.js +107 -0
- package/.output/server/package.json +37 -0
- package/LICENSE +3 -0
- package/README.md +125 -0
- package/dist/src/bbox.js +55 -0
- package/dist/src/cli.js +255 -0
- package/dist/src/config.js +56 -0
- package/dist/src/core/fetch-process.js +19 -0
- package/dist/src/core/grid-renderer.js +149 -0
- package/dist/src/core/lease.js +103 -0
- package/dist/src/core/paths.js +13 -0
- package/dist/src/core/png.js +192 -0
- package/dist/src/core/raster-style.js +33 -0
- package/dist/src/core/uomtiles.js +307 -0
- package/dist/src/fetcher.js +208 -0
- package/dist/src/geographic-grid.js +162 -0
- package/dist/src/grid-crawl.js +478 -0
- package/dist/src/mask-image.js +16 -0
- package/dist/src/official-grid.js +51 -0
- package/dist/src/quality.js +30 -0
- package/dist/src/token.js +206 -0
- package/package.json +68 -0
- package/public/apple-touch-icon.png +0 -0
- package/public/favicon.ico +0 -0
- package/public/favicon.svg +8 -0
- package/public/icon-192.png +0 -0
- package/public/icon-512.png +0 -0
- package/public/site.webmanifest +11 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import * as util from "../core/util.js";
|
|
2
|
+
const error = () => {
|
|
3
|
+
const Sizable = {
|
|
4
|
+
string: { unit: "àmi", verb: "ní" },
|
|
5
|
+
file: { unit: "bytes", verb: "ní" },
|
|
6
|
+
array: { unit: "nkan", verb: "ní" },
|
|
7
|
+
set: { unit: "nkan", verb: "ní" },
|
|
8
|
+
};
|
|
9
|
+
function getSizing(origin) {
|
|
10
|
+
return Sizable[origin] ?? null;
|
|
11
|
+
}
|
|
12
|
+
const FormatDictionary = {
|
|
13
|
+
regex: "ẹ̀rọ ìbáwọlé",
|
|
14
|
+
email: "àdírẹ́sì ìmẹ́lì",
|
|
15
|
+
url: "URL",
|
|
16
|
+
emoji: "emoji",
|
|
17
|
+
uuid: "UUID",
|
|
18
|
+
uuidv4: "UUIDv4",
|
|
19
|
+
uuidv6: "UUIDv6",
|
|
20
|
+
nanoid: "nanoid",
|
|
21
|
+
guid: "GUID",
|
|
22
|
+
cuid: "cuid",
|
|
23
|
+
cuid2: "cuid2",
|
|
24
|
+
ulid: "ULID",
|
|
25
|
+
xid: "XID",
|
|
26
|
+
ksuid: "KSUID",
|
|
27
|
+
datetime: "àkókò ISO",
|
|
28
|
+
date: "ọjọ́ ISO",
|
|
29
|
+
time: "àkókò ISO",
|
|
30
|
+
duration: "àkókò tó pé ISO",
|
|
31
|
+
ipv4: "àdírẹ́sì IPv4",
|
|
32
|
+
ipv6: "àdírẹ́sì IPv6",
|
|
33
|
+
cidrv4: "àgbègbè IPv4",
|
|
34
|
+
cidrv6: "àgbègbè IPv6",
|
|
35
|
+
base64: "ọ̀rọ̀ tí a kọ́ ní base64",
|
|
36
|
+
base64url: "ọ̀rọ̀ base64url",
|
|
37
|
+
json_string: "ọ̀rọ̀ JSON",
|
|
38
|
+
e164: "nọ́mbà E.164",
|
|
39
|
+
jwt: "JWT",
|
|
40
|
+
template_literal: "ẹ̀rọ ìbáwọlé",
|
|
41
|
+
};
|
|
42
|
+
const TypeDictionary = {
|
|
43
|
+
nan: "NaN",
|
|
44
|
+
number: "nọ́mbà",
|
|
45
|
+
array: "akopọ",
|
|
46
|
+
};
|
|
47
|
+
return (issue) => {
|
|
48
|
+
switch (issue.code) {
|
|
49
|
+
case "invalid_type": {
|
|
50
|
+
const expected = TypeDictionary[issue.expected] ?? issue.expected;
|
|
51
|
+
const receivedType = util.parsedType(issue.input);
|
|
52
|
+
const received = TypeDictionary[receivedType] ?? receivedType;
|
|
53
|
+
if (/^[A-Z]/.test(issue.expected)) {
|
|
54
|
+
return `Ìbáwọlé aṣìṣe: a ní láti fi instanceof ${issue.expected}, àmọ̀ a rí ${received}`;
|
|
55
|
+
}
|
|
56
|
+
return `Ìbáwọlé aṣìṣe: a ní láti fi ${expected}, àmọ̀ a rí ${received}`;
|
|
57
|
+
}
|
|
58
|
+
case "invalid_value":
|
|
59
|
+
if (issue.values.length === 1)
|
|
60
|
+
return `Ìbáwọlé aṣìṣe: a ní láti fi ${util.stringifyPrimitive(issue.values[0])}`;
|
|
61
|
+
return `Àṣàyàn aṣìṣe: yan ọ̀kan lára ${util.joinValues(issue.values, "|")}`;
|
|
62
|
+
case "too_big": {
|
|
63
|
+
const adj = issue.inclusive ? "<=" : "<";
|
|
64
|
+
const sizing = getSizing(issue.origin);
|
|
65
|
+
if (sizing)
|
|
66
|
+
return `Tó pọ̀ jù: a ní láti jẹ́ pé ${issue.origin ?? "iye"} ${sizing.verb} ${adj}${issue.maximum} ${sizing.unit}`;
|
|
67
|
+
return `Tó pọ̀ jù: a ní láti jẹ́ ${adj}${issue.maximum}`;
|
|
68
|
+
}
|
|
69
|
+
case "too_small": {
|
|
70
|
+
const adj = issue.inclusive ? ">=" : ">";
|
|
71
|
+
const sizing = getSizing(issue.origin);
|
|
72
|
+
if (sizing)
|
|
73
|
+
return `Kéré ju: a ní láti jẹ́ pé ${issue.origin} ${sizing.verb} ${adj}${issue.minimum} ${sizing.unit}`;
|
|
74
|
+
return `Kéré ju: a ní láti jẹ́ ${adj}${issue.minimum}`;
|
|
75
|
+
}
|
|
76
|
+
case "invalid_format": {
|
|
77
|
+
const _issue = issue;
|
|
78
|
+
if (_issue.format === "starts_with")
|
|
79
|
+
return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bẹ̀rẹ̀ pẹ̀lú "${_issue.prefix}"`;
|
|
80
|
+
if (_issue.format === "ends_with")
|
|
81
|
+
return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ parí pẹ̀lú "${_issue.suffix}"`;
|
|
82
|
+
if (_issue.format === "includes")
|
|
83
|
+
return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ ní "${_issue.includes}"`;
|
|
84
|
+
if (_issue.format === "regex")
|
|
85
|
+
return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bá àpẹẹrẹ mu ${_issue.pattern}`;
|
|
86
|
+
return `Aṣìṣe: ${FormatDictionary[_issue.format] ?? issue.format}`;
|
|
87
|
+
}
|
|
88
|
+
case "not_multiple_of":
|
|
89
|
+
return `Nọ́mbà aṣìṣe: gbọ́dọ̀ jẹ́ èyà pípín ti ${issue.divisor}`;
|
|
90
|
+
case "unrecognized_keys":
|
|
91
|
+
return `Bọtìnì àìmọ̀: ${util.joinValues(issue.keys, ", ")}`;
|
|
92
|
+
case "invalid_key":
|
|
93
|
+
return `Bọtìnì aṣìṣe nínú ${issue.origin}`;
|
|
94
|
+
case "invalid_union":
|
|
95
|
+
return "Ìbáwọlé aṣìṣe";
|
|
96
|
+
case "invalid_element":
|
|
97
|
+
return `Iye aṣìṣe nínú ${issue.origin}`;
|
|
98
|
+
default:
|
|
99
|
+
return "Ìbáwọlé aṣìṣe";
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
export default function () {
|
|
104
|
+
return {
|
|
105
|
+
localeError: error(),
|
|
106
|
+
};
|
|
107
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import * as util from "../core/util.js";
|
|
2
|
+
const error = () => {
|
|
3
|
+
const Sizable = {
|
|
4
|
+
string: { unit: "字符", verb: "包含" },
|
|
5
|
+
file: { unit: "字节", verb: "包含" },
|
|
6
|
+
array: { unit: "项", verb: "包含" },
|
|
7
|
+
set: { unit: "项", verb: "包含" },
|
|
8
|
+
};
|
|
9
|
+
function getSizing(origin) {
|
|
10
|
+
return Sizable[origin] ?? null;
|
|
11
|
+
}
|
|
12
|
+
const FormatDictionary = {
|
|
13
|
+
regex: "输入",
|
|
14
|
+
email: "电子邮件",
|
|
15
|
+
url: "URL",
|
|
16
|
+
emoji: "表情符号",
|
|
17
|
+
uuid: "UUID",
|
|
18
|
+
uuidv4: "UUIDv4",
|
|
19
|
+
uuidv6: "UUIDv6",
|
|
20
|
+
nanoid: "nanoid",
|
|
21
|
+
guid: "GUID",
|
|
22
|
+
cuid: "cuid",
|
|
23
|
+
cuid2: "cuid2",
|
|
24
|
+
ulid: "ULID",
|
|
25
|
+
xid: "XID",
|
|
26
|
+
ksuid: "KSUID",
|
|
27
|
+
datetime: "ISO日期时间",
|
|
28
|
+
date: "ISO日期",
|
|
29
|
+
time: "ISO时间",
|
|
30
|
+
duration: "ISO时长",
|
|
31
|
+
ipv4: "IPv4地址",
|
|
32
|
+
ipv6: "IPv6地址",
|
|
33
|
+
cidrv4: "IPv4网段",
|
|
34
|
+
cidrv6: "IPv6网段",
|
|
35
|
+
base64: "base64编码字符串",
|
|
36
|
+
base64url: "base64url编码字符串",
|
|
37
|
+
json_string: "JSON字符串",
|
|
38
|
+
e164: "E.164号码",
|
|
39
|
+
jwt: "JWT",
|
|
40
|
+
template_literal: "输入",
|
|
41
|
+
};
|
|
42
|
+
const TypeDictionary = {
|
|
43
|
+
nan: "NaN",
|
|
44
|
+
number: "数字",
|
|
45
|
+
array: "数组",
|
|
46
|
+
null: "空值(null)",
|
|
47
|
+
};
|
|
48
|
+
return (issue) => {
|
|
49
|
+
switch (issue.code) {
|
|
50
|
+
case "invalid_type": {
|
|
51
|
+
const expected = TypeDictionary[issue.expected] ?? issue.expected;
|
|
52
|
+
const receivedType = util.parsedType(issue.input);
|
|
53
|
+
const received = TypeDictionary[receivedType] ?? receivedType;
|
|
54
|
+
if (/^[A-Z]/.test(issue.expected)) {
|
|
55
|
+
return `无效输入:期望 instanceof ${issue.expected},实际接收 ${received}`;
|
|
56
|
+
}
|
|
57
|
+
return `无效输入:期望 ${expected},实际接收 ${received}`;
|
|
58
|
+
}
|
|
59
|
+
case "invalid_value":
|
|
60
|
+
if (issue.values.length === 1)
|
|
61
|
+
return `无效输入:期望 ${util.stringifyPrimitive(issue.values[0])}`;
|
|
62
|
+
return `无效选项:期望以下之一 ${util.joinValues(issue.values, "|")}`;
|
|
63
|
+
case "too_big": {
|
|
64
|
+
const adj = issue.inclusive ? "<=" : "<";
|
|
65
|
+
const sizing = getSizing(issue.origin);
|
|
66
|
+
if (sizing)
|
|
67
|
+
return `数值过大:期望 ${issue.origin ?? "值"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? "个元素"}`;
|
|
68
|
+
return `数值过大:期望 ${issue.origin ?? "值"} ${adj}${issue.maximum.toString()}`;
|
|
69
|
+
}
|
|
70
|
+
case "too_small": {
|
|
71
|
+
const adj = issue.inclusive ? ">=" : ">";
|
|
72
|
+
const sizing = getSizing(issue.origin);
|
|
73
|
+
if (sizing) {
|
|
74
|
+
return `数值过小:期望 ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;
|
|
75
|
+
}
|
|
76
|
+
return `数值过小:期望 ${issue.origin} ${adj}${issue.minimum.toString()}`;
|
|
77
|
+
}
|
|
78
|
+
case "invalid_format": {
|
|
79
|
+
const _issue = issue;
|
|
80
|
+
if (_issue.format === "starts_with")
|
|
81
|
+
return `无效字符串:必须以 "${_issue.prefix}" 开头`;
|
|
82
|
+
if (_issue.format === "ends_with")
|
|
83
|
+
return `无效字符串:必须以 "${_issue.suffix}" 结尾`;
|
|
84
|
+
if (_issue.format === "includes")
|
|
85
|
+
return `无效字符串:必须包含 "${_issue.includes}"`;
|
|
86
|
+
if (_issue.format === "regex")
|
|
87
|
+
return `无效字符串:必须满足正则表达式 ${_issue.pattern}`;
|
|
88
|
+
return `无效${FormatDictionary[_issue.format] ?? issue.format}`;
|
|
89
|
+
}
|
|
90
|
+
case "not_multiple_of":
|
|
91
|
+
return `无效数字:必须是 ${issue.divisor} 的倍数`;
|
|
92
|
+
case "unrecognized_keys":
|
|
93
|
+
return `出现未知的键(key): ${util.joinValues(issue.keys, ", ")}`;
|
|
94
|
+
case "invalid_key":
|
|
95
|
+
return `${issue.origin} 中的键(key)无效`;
|
|
96
|
+
case "invalid_union":
|
|
97
|
+
return "无效输入";
|
|
98
|
+
case "invalid_element":
|
|
99
|
+
return `${issue.origin} 中包含无效值(value)`;
|
|
100
|
+
default:
|
|
101
|
+
return `无效输入`;
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
export default function () {
|
|
106
|
+
return {
|
|
107
|
+
localeError: error(),
|
|
108
|
+
};
|
|
109
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import * as util from "../core/util.js";
|
|
2
|
+
const error = () => {
|
|
3
|
+
const Sizable = {
|
|
4
|
+
string: { unit: "字元", verb: "擁有" },
|
|
5
|
+
file: { unit: "位元組", verb: "擁有" },
|
|
6
|
+
array: { unit: "項目", verb: "擁有" },
|
|
7
|
+
set: { unit: "項目", verb: "擁有" },
|
|
8
|
+
};
|
|
9
|
+
function getSizing(origin) {
|
|
10
|
+
return Sizable[origin] ?? null;
|
|
11
|
+
}
|
|
12
|
+
const FormatDictionary = {
|
|
13
|
+
regex: "輸入",
|
|
14
|
+
email: "郵件地址",
|
|
15
|
+
url: "URL",
|
|
16
|
+
emoji: "emoji",
|
|
17
|
+
uuid: "UUID",
|
|
18
|
+
uuidv4: "UUIDv4",
|
|
19
|
+
uuidv6: "UUIDv6",
|
|
20
|
+
nanoid: "nanoid",
|
|
21
|
+
guid: "GUID",
|
|
22
|
+
cuid: "cuid",
|
|
23
|
+
cuid2: "cuid2",
|
|
24
|
+
ulid: "ULID",
|
|
25
|
+
xid: "XID",
|
|
26
|
+
ksuid: "KSUID",
|
|
27
|
+
datetime: "ISO 日期時間",
|
|
28
|
+
date: "ISO 日期",
|
|
29
|
+
time: "ISO 時間",
|
|
30
|
+
duration: "ISO 期間",
|
|
31
|
+
ipv4: "IPv4 位址",
|
|
32
|
+
ipv6: "IPv6 位址",
|
|
33
|
+
cidrv4: "IPv4 範圍",
|
|
34
|
+
cidrv6: "IPv6 範圍",
|
|
35
|
+
base64: "base64 編碼字串",
|
|
36
|
+
base64url: "base64url 編碼字串",
|
|
37
|
+
json_string: "JSON 字串",
|
|
38
|
+
e164: "E.164 數值",
|
|
39
|
+
jwt: "JWT",
|
|
40
|
+
template_literal: "輸入",
|
|
41
|
+
};
|
|
42
|
+
const TypeDictionary = {
|
|
43
|
+
nan: "NaN",
|
|
44
|
+
};
|
|
45
|
+
return (issue) => {
|
|
46
|
+
switch (issue.code) {
|
|
47
|
+
case "invalid_type": {
|
|
48
|
+
const expected = TypeDictionary[issue.expected] ?? issue.expected;
|
|
49
|
+
const receivedType = util.parsedType(issue.input);
|
|
50
|
+
const received = TypeDictionary[receivedType] ?? receivedType;
|
|
51
|
+
if (/^[A-Z]/.test(issue.expected)) {
|
|
52
|
+
return `無效的輸入值:預期為 instanceof ${issue.expected},但收到 ${received}`;
|
|
53
|
+
}
|
|
54
|
+
return `無效的輸入值:預期為 ${expected},但收到 ${received}`;
|
|
55
|
+
}
|
|
56
|
+
case "invalid_value":
|
|
57
|
+
if (issue.values.length === 1)
|
|
58
|
+
return `無效的輸入值:預期為 ${util.stringifyPrimitive(issue.values[0])}`;
|
|
59
|
+
return `無效的選項:預期為以下其中之一 ${util.joinValues(issue.values, "|")}`;
|
|
60
|
+
case "too_big": {
|
|
61
|
+
const adj = issue.inclusive ? "<=" : "<";
|
|
62
|
+
const sizing = getSizing(issue.origin);
|
|
63
|
+
if (sizing)
|
|
64
|
+
return `數值過大:預期 ${issue.origin ?? "值"} 應為 ${adj}${issue.maximum.toString()} ${sizing.unit ?? "個元素"}`;
|
|
65
|
+
return `數值過大:預期 ${issue.origin ?? "值"} 應為 ${adj}${issue.maximum.toString()}`;
|
|
66
|
+
}
|
|
67
|
+
case "too_small": {
|
|
68
|
+
const adj = issue.inclusive ? ">=" : ">";
|
|
69
|
+
const sizing = getSizing(issue.origin);
|
|
70
|
+
if (sizing) {
|
|
71
|
+
return `數值過小:預期 ${issue.origin} 應為 ${adj}${issue.minimum.toString()} ${sizing.unit}`;
|
|
72
|
+
}
|
|
73
|
+
return `數值過小:預期 ${issue.origin} 應為 ${adj}${issue.minimum.toString()}`;
|
|
74
|
+
}
|
|
75
|
+
case "invalid_format": {
|
|
76
|
+
const _issue = issue;
|
|
77
|
+
if (_issue.format === "starts_with") {
|
|
78
|
+
return `無效的字串:必須以 "${_issue.prefix}" 開頭`;
|
|
79
|
+
}
|
|
80
|
+
if (_issue.format === "ends_with")
|
|
81
|
+
return `無效的字串:必須以 "${_issue.suffix}" 結尾`;
|
|
82
|
+
if (_issue.format === "includes")
|
|
83
|
+
return `無效的字串:必須包含 "${_issue.includes}"`;
|
|
84
|
+
if (_issue.format === "regex")
|
|
85
|
+
return `無效的字串:必須符合格式 ${_issue.pattern}`;
|
|
86
|
+
return `無效的 ${FormatDictionary[_issue.format] ?? issue.format}`;
|
|
87
|
+
}
|
|
88
|
+
case "not_multiple_of":
|
|
89
|
+
return `無效的數字:必須為 ${issue.divisor} 的倍數`;
|
|
90
|
+
case "unrecognized_keys":
|
|
91
|
+
return `無法識別的鍵值${issue.keys.length > 1 ? "們" : ""}:${util.joinValues(issue.keys, "、")}`;
|
|
92
|
+
case "invalid_key":
|
|
93
|
+
return `${issue.origin} 中有無效的鍵值`;
|
|
94
|
+
case "invalid_union":
|
|
95
|
+
return "無效的輸入值";
|
|
96
|
+
case "invalid_element":
|
|
97
|
+
return `${issue.origin} 中有無效的值`;
|
|
98
|
+
default:
|
|
99
|
+
return `無效的輸入值`;
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
export default function () {
|
|
104
|
+
return {
|
|
105
|
+
localeError: error(),
|
|
106
|
+
};
|
|
107
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "uomtiles-prod",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"private": true,
|
|
6
|
+
"dependencies": {
|
|
7
|
+
"@babel/parser": "7.29.8",
|
|
8
|
+
"@iconify/utils": "3.1.4",
|
|
9
|
+
"@vue/compiler-core": "3.5.41",
|
|
10
|
+
"@vue/compiler-dom": "3.5.41",
|
|
11
|
+
"@vue/compiler-ssr": "3.5.41",
|
|
12
|
+
"@vue/reactivity": "3.5.41",
|
|
13
|
+
"@vue/runtime-core": "3.5.41",
|
|
14
|
+
"@vue/runtime-dom": "3.5.41",
|
|
15
|
+
"@vue/server-renderer": "3.5.41",
|
|
16
|
+
"@vue/shared": "3.5.41",
|
|
17
|
+
"consola": "3.4.2",
|
|
18
|
+
"devalue": "5.9.0",
|
|
19
|
+
"entities": "7.0.1",
|
|
20
|
+
"estree-walker": "2.0.2",
|
|
21
|
+
"fflate": "0.8.3",
|
|
22
|
+
"fnv1a-64": "0.1.2",
|
|
23
|
+
"hookable": "6.1.1",
|
|
24
|
+
"nostics": "1.2.0",
|
|
25
|
+
"object-identity": "0.2.3",
|
|
26
|
+
"p-limit": "6.2.0",
|
|
27
|
+
"pmtiles": "4.5.0",
|
|
28
|
+
"source-map-js": "1.2.1",
|
|
29
|
+
"tailwindcss": "4.3.3",
|
|
30
|
+
"ufo": "1.6.4",
|
|
31
|
+
"unhead": "3.3.2",
|
|
32
|
+
"vue": "3.5.41",
|
|
33
|
+
"vue-bundle-renderer": "2.3.2",
|
|
34
|
+
"yocto-queue": "1.2.2",
|
|
35
|
+
"zod": "4.4.3"
|
|
36
|
+
}
|
|
37
|
+
}
|
package/LICENSE
ADDED
package/README.md
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="public/favicon.svg" width="72" height="72" alt="UOM适飞地图">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
# UOM适飞地图
|
|
6
|
+
|
|
7
|
+
本地运行的 UOM 适飞空域预览、下载、对比和发布工具。每次地图下载保存为可断点续传的 `.uomtiles` SQLite 工作文件,并可导出标准 MBTiles 或 PMTiles。
|
|
8
|
+
|
|
9
|
+
## 快速开始
|
|
10
|
+
|
|
11
|
+
需要 Node.js 22.13 或更高版本(使用内建 `node:sqlite`)。
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npx uomtiles
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
命令会启动本地 Web 工作台并打开浏览器。首次使用时通过手机号登录 UOM;凭据只写入本机 `~/.uomtiles/auth.json`,权限为 `0600`,不会写入任务文件或导出文件。
|
|
18
|
+
|
|
19
|
+
工作台包含五个功能:
|
|
20
|
+
|
|
21
|
+
- 在线地图预览:代理 UOM 官方实时地图,不把 token 发送给浏览器。
|
|
22
|
+
- 地图下载任务:创建、导入和管理 `.uomtiles` 任务;完成任务可查看和导出,未完成任务可断点续传。
|
|
23
|
+
- 地图版本对比:分别选择或拖入 `.uomtiles`、`.mbtiles`、`.pmtiles`,在浏览器 Worker 中执行逐瓦片 alpha 像素 diff,并同步移动、滑块或叠加审阅。
|
|
24
|
+
- 地图高级功能:选择本地地图文件后,可按当前位置和最小面积寻找多个最近的适飞区域。
|
|
25
|
+
- 地图服务管理:从任务文件启用本地 WMS/WMTS 服务,并配置颜色与透明度。
|
|
26
|
+
|
|
27
|
+
浏览器负责登录、文件选择和并行像素计算。所选文件以流式方式导入本机工作区,不会整文件读入浏览器或 Node 内存;SQLite 事务、写入 lease、抓取、动态瓦片和导出由本地 Node 核心实现,CLI 与 Nuxt 服务端复用同一套代码。
|
|
28
|
+
|
|
29
|
+
## CLI
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# 验证固定账户文件,并实际请求 UOM SSO
|
|
33
|
+
npx uomtiles whoami
|
|
34
|
+
|
|
35
|
+
# 创建以当前昵称和时间命名的工作文件并前台显示进度
|
|
36
|
+
npx uomtiles fetch
|
|
37
|
+
|
|
38
|
+
# 创建或从 checkpoint 继续指定任务
|
|
39
|
+
npx uomtiles fetch china-2026-08-21.uomtiles
|
|
40
|
+
|
|
41
|
+
# 转入后台下载
|
|
42
|
+
npx uomtiles fetch -d china-2026-08-21.uomtiles
|
|
43
|
+
|
|
44
|
+
# 查看文件摘要
|
|
45
|
+
npx uomtiles inspect china-2026-08-21.uomtiles
|
|
46
|
+
|
|
47
|
+
# 生成干净的标准发布文件
|
|
48
|
+
npx uomtiles export china-2026-08-21.uomtiles china.mbtiles
|
|
49
|
+
npx uomtiles export china-2026-08-21.uomtiles china.pmtiles
|
|
50
|
+
|
|
51
|
+
# 可重复性检查;不一致时退出码为 2
|
|
52
|
+
npx uomtiles diff first.uomtiles second.uomtiles repeatability.json
|
|
53
|
+
|
|
54
|
+
# 将旧任务数据库复制迁移为工作文件;源文件不修改
|
|
55
|
+
npx uomtiles migrate legacy.mbtiles task.uomtiles
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
PMTiles 导出调用 Protomaps `pmtiles convert`。可用 `UOMTILES_PMTILES_COMMAND` 指定命令路径。
|
|
59
|
+
|
|
60
|
+
发布包不依赖 `sharp`、`better-sqlite3` 或 `sqlite3` 等原生 addon。SQLite、PNG inflate/deflate 和文件操作分别使用 Node 内建的 `node:sqlite`、`node:zlib` 与 `node:fs`;PMTiles 读取使用纯 JavaScript `pmtiles` 包。PMTiles 转换器是可选的外部 CLI,只有执行 PMTiles 导出时才需要。
|
|
61
|
+
|
|
62
|
+
## 文件格式
|
|
63
|
+
|
|
64
|
+
`.uomtiles` 是 UOMTiles schema v1 SQLite 工作数据库,包含:
|
|
65
|
+
|
|
66
|
+
- z9 root 事务 checkpoint、状态、重试和 heartbeat;
|
|
67
|
+
- 从官方 z12 位图恢复的全局 `2^18` 等经纬网格矩形;
|
|
68
|
+
- 仅 z12 物化 PNG 源瓦片;
|
|
69
|
+
- 发布者昵称、抓取起止时间、source z12、grid level 18 和工具版本;
|
|
70
|
+
- 审阅记录与后续局部修复扩展表。
|
|
71
|
+
|
|
72
|
+
每个 `.uomtiles` 内的 `uomtiles_leases` 表保存 writer lease。抓取、导出等写操作只锁定自己的任务文件,因此不同任务可以并行;同一任务仍然只能有一个 writer。抢占使用 `BEGIN IMMEDIATE`,运行时每 10 秒续租,默认 30 秒过期,因此进程崩溃后无需删除独立 lockfile,也不会永久阻塞续传。工作台通过扫描这些 lease 感知 CLI 后台进程,并按 lease 中的 PID 停止对应任务。
|
|
73
|
+
|
|
74
|
+
`.uomtiles` 预览时从 canonical geometry 动态生成 z0-z18:z0-z8 使用四子瓦片 OR 缩小,z9-z18 直接按全局经纬网格光栅化,输出只有透明或不透明像素,不做图像插值。MBTiles/PMTiles 导出会实际写入 z0-z14,因此常用外部查看器在已发布层级内不会把 z12 模糊插值放大。导出文件只保留标准 `metadata` / `tiles` 表,并使用扩展 metadata 记录发布者昵称与抓取时间;手机号、session token、地图 token 不会嵌入。
|
|
75
|
+
|
|
76
|
+
## 项目结构
|
|
77
|
+
|
|
78
|
+
```text
|
|
79
|
+
app/ Nuxt 4 客户端应用、页面、布局和浏览器 composables
|
|
80
|
+
server/ Nitro API 路由与仅服务端的任务、认证、地图代理逻辑
|
|
81
|
+
shared/ 浏览器与服务端共享的纯 TypeScript DTO
|
|
82
|
+
src/ CLI 与服务端共同复用的抓取、SQLite、PNG 和导出核心
|
|
83
|
+
core/ .uomtiles schema、SQLite lease、路径与 PNG codec
|
|
84
|
+
*.test.ts 单模块测试伴随源码放置;Nuxt runtime 测试使用 *.nuxt.test.ts
|
|
85
|
+
research/ 历史逆向、旧管线和像素实验,不进入发布包
|
|
86
|
+
data/ 本地认证、运行状态、缓存和任务文件,始终忽略提交
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Nuxt 使用 v4 默认 `app/` source directory;`server/` 与 `shared/` 保持根级目录。CLI 源码使用 Node 原生 TypeScript type stripping 直接开发运行,发布前由 `tsconfig.cli.json` 编译到被忽略的 `dist/`。Nuxt/Nitro 生产输出写入被忽略的 `.output/`。
|
|
90
|
+
|
|
91
|
+
## 抓取模型
|
|
92
|
+
|
|
93
|
+
生产抓取固定使用已验证的 z12 官方数据,不接受用户修改层级参数:
|
|
94
|
+
|
|
95
|
+
1. 按中国范围的 6030 个 z9 root 请求 z12 supertile。
|
|
96
|
+
2. 将透明位图矢量化为全局 `2^18` 等经纬网格上的直角矩形。
|
|
97
|
+
3. 每个 root 在单独 SQLite 事务内提交 geometry、checksum 和 z12 内容瓦片。
|
|
98
|
+
4. 全部 root 完成后只保留 z12 源瓦片;其他层级按需生成,导出时物化 z0-z14。
|
|
99
|
+
|
|
100
|
+
相邻层一次 exact 不用于推断更深层级。z12 的选择来自瑞云观及中国东南西北复杂区域的真实 z13/z14 交叉验证。
|
|
101
|
+
|
|
102
|
+
## 开发
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
pnpm install
|
|
106
|
+
pnpm dev
|
|
107
|
+
pnpm typecheck
|
|
108
|
+
pnpm test
|
|
109
|
+
pnpm build
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
测试使用一个 Vitest 入口和两个 projects。纯 Node/TypeScript 测试以 `a.test.ts` 伴随 `a.ts` 放置,在快速的 Node environment 中运行;依赖 Nuxt auto-import、`useState` 或组件运行时的测试使用同目录 `a.nuxt.test.ts`,由 `@nuxt/test-utils` 的 Nuxt environment 运行。两类测试统一由 `pnpm test` 执行。
|
|
113
|
+
|
|
114
|
+
常用环境变量:
|
|
115
|
+
|
|
116
|
+
- `UOMTILES_DATA_DIR`:账户和 Web 工作区目录。`npx uomtiles` 默认使用 `~/.uomtiles`,仓库内 `pnpm dev` 默认使用 `./data`。
|
|
117
|
+
- `UOMTILES_AUTH_FILE`:CLI 固定认证文件。
|
|
118
|
+
- `UOMTILES_PORT`:本地 Web 首选端口,默认 `4173`。
|
|
119
|
+
- `UOMTILES_PMTILES_COMMAND`:PMTiles 转换命令。
|
|
120
|
+
|
|
121
|
+
## 品牌与许可
|
|
122
|
+
|
|
123
|
+
产品图标使用 [Lucide `map-pinned`](https://icones.js.org/collection/lucide?s=map-pinned),通过 Iconify/Icones 获取,依照 Lucide ISC License 使用。
|
|
124
|
+
|
|
125
|
+
源代码版权与使用限制见 [LICENSE](LICENSE)。
|
package/dist/src/bbox.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export const EARTH_R = 20037508.342789244;
|
|
2
|
+
export function tileToMercBBox(z, x, y) {
|
|
3
|
+
const ts = 2 * EARTH_R / Math.pow(2, z);
|
|
4
|
+
const minx = -EARTH_R + x * ts;
|
|
5
|
+
const maxy = EARTH_R - y * ts;
|
|
6
|
+
return { minx, miny: maxy - ts, maxx: minx + ts, maxy };
|
|
7
|
+
}
|
|
8
|
+
export function lonLatToTile(lon, lat, z) {
|
|
9
|
+
const n = Math.pow(2, z);
|
|
10
|
+
const x = Math.floor((lon + 180) / 360 * n);
|
|
11
|
+
const latRad = lat * Math.PI / 180;
|
|
12
|
+
const y = Math.floor((1 - Math.log(Math.tan(latRad) + 1 / Math.cos(latRad)) / Math.PI) / 2 * n);
|
|
13
|
+
return { x, y };
|
|
14
|
+
}
|
|
15
|
+
export function mercToLonLat(mx, my) {
|
|
16
|
+
return {
|
|
17
|
+
lon: mx / EARTH_R * 180,
|
|
18
|
+
lat: 180 / Math.PI * (2 * Math.atan(Math.exp(my / EARTH_R * Math.PI)) - Math.PI / 2),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export function tileBBoxLonLat(z, x, y) {
|
|
22
|
+
const b = tileToMercBBox(z, x, y);
|
|
23
|
+
const sw = mercToLonLat(b.minx, b.miny);
|
|
24
|
+
const ne = mercToLonLat(b.maxx, b.maxy);
|
|
25
|
+
return { lonMin: sw.lon, latMin: sw.lat, lonMax: ne.lon, latMax: ne.lat };
|
|
26
|
+
}
|
|
27
|
+
export function tileRangeForBBox(z, lonMin, latMin, lonMax, latMax) {
|
|
28
|
+
const a = lonLatToTile(lonMin, latMax, z);
|
|
29
|
+
const b = lonLatToTile(lonMax, latMin, z);
|
|
30
|
+
return {
|
|
31
|
+
xMin: Math.min(a.x, b.x),
|
|
32
|
+
xMax: Math.max(a.x, b.x),
|
|
33
|
+
yMin: Math.min(a.y, b.y),
|
|
34
|
+
yMax: Math.max(a.y, b.y),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export function xyzYToTmsY(z, y) {
|
|
38
|
+
return (1 << z) - 1 - y;
|
|
39
|
+
}
|
|
40
|
+
export function tmsYToXyzY(z, tmsY) {
|
|
41
|
+
return (1 << z) - 1 - tmsY;
|
|
42
|
+
}
|
|
43
|
+
export function bboxToZxy(bbox, width, height) {
|
|
44
|
+
if (width !== 256 || height !== 256)
|
|
45
|
+
return null;
|
|
46
|
+
const span = bbox.maxx - bbox.minx;
|
|
47
|
+
const zApprox = Math.log2(2 * EARTH_R / span);
|
|
48
|
+
const z = Math.round(zApprox);
|
|
49
|
+
if (Math.abs(zApprox - z) > 1e-3)
|
|
50
|
+
return null;
|
|
51
|
+
const ts = 2 * EARTH_R / Math.pow(2, z);
|
|
52
|
+
const x = Math.round((bbox.minx + EARTH_R) / ts);
|
|
53
|
+
const y = Math.round((EARTH_R - bbox.maxy) / ts);
|
|
54
|
+
return { z, x, y };
|
|
55
|
+
}
|