feat(geo-map): add live traffic visualization and traffic-aware routing with pluggable providers and UI integration

This commit is contained in:
2026-02-05 15:07:33 +00:00
parent 1a0fceadc0
commit df690dc329
22 changed files with 2238 additions and 181 deletions

96
pnpm-lock.yaml generated
View File

@@ -40,14 +40,14 @@ importers:
specifier: ^3.1.8
version: 3.1.8(@push.rocks/smartserve@2.0.1)(socks@2.8.7)(typescript@5.9.3)
'@git.zone/tswatch':
specifier: ^3.0.1
version: 3.0.1(@tiptap/pm@2.27.2)
specifier: ^3.1.0
version: 3.1.0(@tiptap/pm@2.27.2)
'@push.rocks/projectinfo':
specifier: ^5.0.2
version: 5.0.2
'@types/node':
specifier: ^25.2.0
version: 25.2.0
specifier: ^25.2.1
version: 25.2.1
packages:
@@ -263,6 +263,9 @@ packages:
'@cloudflare/workers-types@4.20260203.0':
resolution: {integrity: sha512-XD2uglpGbVppjXXLuAdalKkcTi/i4TyQSx0w/ijJbvrR1Cfm7zNkxtvFBNy3tBNxZOiFIJtw5bszifQB1eow6A==}
'@cloudflare/workers-types@4.20260205.0':
resolution: {integrity: sha512-LTnpvcodmiuMwxmbrO2Fd0+Avbm2UVLLJxT8J2pRWPfoM44gmbIecXwOPZmDAMeadKWrBsQ+B0sloQAhUu5fpA==}
'@configvault.io/interfaces@1.0.17':
resolution: {integrity: sha512-bEcCUR2VBDJsTin8HQh8Uw/mlYl2v8A3jMIaQ+MTB9Hrqd6CZL2dL7iJdWyFl/3EIX+LDxWFR+Oq7liIq7w+1Q==}
@@ -486,8 +489,8 @@ packages:
resolution: {integrity: sha512-nmiLGeOkKMkLDyIk5BUBLx5ExskFbKHKlPdrWCARPVFkU4cAAiuIyJWVfLwISoS0TO/zSInLqArPwIc76yvaNw==}
hasBin: true
'@git.zone/tswatch@3.0.1':
resolution: {integrity: sha512-vrAkKM5ff/e1BLNkrIRXnTIkMyjl/uW49c1cYaw2nYGloM6/wT1FSwYjwh6BcDkHIYMnzS30SOy9jSYRptW/iw==}
'@git.zone/tswatch@3.1.0':
resolution: {integrity: sha512-R2ZI+j1OKVgd0zTbtGtJjyt7r2kF0Z4nl8neolHuQL+jpr16i2NHVfVK92uIeeZDnJSqo5vf7Syt0XeQ4rz2HA==}
hasBin: true
'@happy-dom/global-registrator@15.11.7':
@@ -1029,6 +1032,9 @@ packages:
'@push.rocks/taskbuffer@3.5.0':
resolution: {integrity: sha512-Y9WwIEIyp6oVFdj06j84tfrZIvjhbMb3DF52rYxlTeYLk3W7RPhSg1bGPCbtkXWeKdBrSe37V90BkOG7Qq8Pqg==}
'@push.rocks/taskbuffer@4.2.0':
resolution: {integrity: sha512-ttoBe5y/WXkAo5/wSMcC/Y4Zbyw4XG8kwAsEaqnAPCxa3M9MI1oV/yM1e9gU1IH97HVPidzbTxRU5/PcHDdUsg==}
'@push.rocks/webrequest@3.0.37':
resolution: {integrity: sha512-fLN7kP6GeHFxE4UH4r9C9pjcQb0QkJxHeAMwXvbOqB9hh0MFNKhtGU7GoaTn8SVRGRMPc9UqZVNwo6u5l8Wn0A==}
@@ -1748,11 +1754,11 @@ packages:
'@types/node-forge@1.3.14':
resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==}
'@types/node@22.19.8':
resolution: {integrity: sha512-ebO/Yl+EAvVe8DnMfi+iaAyIqYdK0q/q0y0rw82INWEKJOBe6b/P3YWE8NW7oOlF/nXFNrHwhARrN/hdgDkraA==}
'@types/node@22.19.9':
resolution: {integrity: sha512-PD03/U8g1F9T9MI+1OBisaIARhSzeidsUjQaf51fOxrfjeiKN9bLVO06lHuHYjxdnqLWJijJHfqXPSJri2EM2A==}
'@types/node@25.2.0':
resolution: {integrity: sha512-DZ8VwRFUNzuqJ5khrvwMXHmvPe+zGayJhr2CDNiKB1WBE1ST8Djl00D0IC4vvNmHMdj6DlbYRIaFE7WHjlDl5w==}
'@types/node@25.2.1':
resolution: {integrity: sha512-CPrnr8voK8vC6eEtyRzvMpgp3VyVRhgclonE7qYi6P9sXwYb59ucfrnmFBTaP0yUi8Gk4yZg/LlTJULGxvTNsg==}
'@types/ping@0.4.4':
resolution: {integrity: sha512-ifvo6w2f5eJYlXm+HiVx67iJe8WZp87sfa683nlqED5Vnt9Z93onkokNoWqOG21EaE8fMxyKPobE+mkPEyxsdw==}
@@ -4114,7 +4120,7 @@ snapshots:
'@api.global/typedrequest': 3.2.5
'@api.global/typedrequest-interfaces': 3.0.19
'@api.global/typedsocket': 4.1.0(@push.rocks/smartserve@2.0.1)
'@cloudflare/workers-types': 4.20260203.0
'@cloudflare/workers-types': 4.20260205.0
'@design.estate/dees-catalog': 3.42.0(@tiptap/pm@2.27.2)
'@design.estate/dees-comms': 1.0.30
'@push.rocks/lik': 6.2.2
@@ -4689,6 +4695,8 @@ snapshots:
'@cloudflare/workers-types@4.20260203.0': {}
'@cloudflare/workers-types@4.20260205.0': {}
'@configvault.io/interfaces@1.0.17':
dependencies:
'@api.global/typedrequest-interfaces': 3.0.19
@@ -5021,7 +5029,7 @@ snapshots:
- utf-8-validate
- vue
'@git.zone/tswatch@3.0.1(@tiptap/pm@2.27.2)':
'@git.zone/tswatch@3.1.0(@tiptap/pm@2.27.2)':
dependencies:
'@api.global/typedserver': 8.3.0(@tiptap/pm@2.27.2)
'@git.zone/tsbundle': 2.8.3
@@ -5037,7 +5045,7 @@ snapshots:
'@push.rocks/smartlog-destination-local': 9.0.2
'@push.rocks/smartshell': 3.3.0
'@push.rocks/smartwatch': 6.3.0
'@push.rocks/taskbuffer': 3.5.0
'@push.rocks/taskbuffer': 4.2.0
transitivePeerDependencies:
- '@nuxt/kit'
- '@swc/helpers'
@@ -5070,7 +5078,7 @@ snapshots:
'@inquirer/figures': 1.0.15
'@inquirer/type': 2.0.0
'@types/mute-stream': 0.0.4
'@types/node': 22.19.8
'@types/node': 22.19.9
'@types/wrap-ansi': 3.0.0
ansi-escapes: 4.3.2
cli-width: 4.1.0
@@ -6215,6 +6223,22 @@ snapshots:
- supports-color
- vue
'@push.rocks/taskbuffer@4.2.0':
dependencies:
'@design.estate/dees-element': 2.1.6
'@push.rocks/lik': 6.2.2
'@push.rocks/smartdelay': 3.0.5
'@push.rocks/smartlog': 3.1.10
'@push.rocks/smartpromise': 4.2.3
'@push.rocks/smartrx': 3.0.10
'@push.rocks/smarttime': 4.1.1
'@push.rocks/smartunique': 3.0.9
transitivePeerDependencies:
- '@nuxt/kit'
- react
- supports-color
- vue
'@push.rocks/webrequest@3.0.37':
dependencies:
'@push.rocks/smartdelay': 3.0.5
@@ -6942,27 +6966,27 @@ snapshots:
'@types/bn.js@5.2.0':
dependencies:
'@types/node': 25.2.0
'@types/node': 25.2.1
'@types/body-parser@1.19.6':
dependencies:
'@types/connect': 3.4.38
'@types/node': 25.2.0
'@types/node': 25.2.1
'@types/buffer-json@2.0.3': {}
'@types/clean-css@4.2.11':
dependencies:
'@types/node': 25.2.0
'@types/node': 25.2.1
source-map: 0.6.1
'@types/connect@3.4.38':
dependencies:
'@types/node': 25.2.0
'@types/node': 25.2.1
'@types/cors@2.8.19':
dependencies:
'@types/node': 25.2.0
'@types/node': 25.2.1
'@types/debug@4.1.12':
dependencies:
@@ -6970,7 +6994,7 @@ snapshots:
'@types/dns-packet@5.6.5':
dependencies:
'@types/node': 25.2.0
'@types/node': 25.2.1
'@types/elliptic@6.4.18':
dependencies:
@@ -6978,7 +7002,7 @@ snapshots:
'@types/express-serve-static-core@5.1.1':
dependencies:
'@types/node': 25.2.0
'@types/node': 25.2.1
'@types/qs': 6.14.0
'@types/range-parser': 1.2.7
'@types/send': 1.2.1
@@ -6991,19 +7015,19 @@ snapshots:
'@types/from2@2.3.6':
dependencies:
'@types/node': 25.2.0
'@types/node': 25.2.1
'@types/fs-extra@11.0.4':
dependencies:
'@types/jsonfile': 6.1.4
'@types/node': 25.2.0
'@types/node': 25.2.1
'@types/geojson@7946.0.16': {}
'@types/glob@8.1.0':
dependencies:
'@types/minimatch': 5.1.2
'@types/node': 25.2.0
'@types/node': 25.2.1
'@types/hast@3.0.4':
dependencies:
@@ -7025,7 +7049,7 @@ snapshots:
'@types/jsonfile@6.1.4':
dependencies:
'@types/node': 25.2.0
'@types/node': 25.2.1
'@types/linkify-it@5.0.0': {}
@@ -7048,17 +7072,17 @@ snapshots:
'@types/mute-stream@0.0.4':
dependencies:
'@types/node': 25.2.0
'@types/node': 25.2.1
'@types/node-forge@1.3.14':
dependencies:
'@types/node': 25.2.0
'@types/node': 25.2.1
'@types/node@22.19.8':
'@types/node@22.19.9':
dependencies:
undici-types: 6.21.0
'@types/node@25.2.0':
'@types/node@25.2.1':
dependencies:
undici-types: 7.16.0
@@ -7076,12 +7100,12 @@ snapshots:
'@types/send@1.2.1':
dependencies:
'@types/node': 25.2.0
'@types/node': 25.2.1
'@types/serve-static@2.2.0':
dependencies:
'@types/http-errors': 2.0.5
'@types/node': 25.2.0
'@types/node': 25.2.1
'@types/supercluster@7.1.3':
dependencies:
@@ -7091,11 +7115,11 @@ snapshots:
'@types/tar-stream@3.1.4':
dependencies:
'@types/node': 25.2.0
'@types/node': 25.2.1
'@types/through2@2.0.41':
dependencies:
'@types/node': 25.2.0
'@types/node': 25.2.1
'@types/trusted-types@2.0.7': {}
@@ -7121,11 +7145,11 @@ snapshots:
'@types/ws@8.18.1':
dependencies:
'@types/node': 25.2.0
'@types/node': 25.2.1
'@types/yauzl@2.10.3':
dependencies:
'@types/node': 25.2.0
'@types/node': 25.2.1
optional: true
'@ungap/structured-clone@1.3.0': {}
@@ -7559,7 +7583,7 @@ snapshots:
engine.io@6.6.4:
dependencies:
'@types/cors': 2.8.19
'@types/node': 25.2.0
'@types/node': 25.2.1
accepts: 1.3.8
base64id: 2.0.0
cookie: 0.7.2