@k2b/cloud 0.41.0 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/package.json +6 -5
  2. package/src/_internal/bounded-json.ts +14 -2
  3. package/src/_internal/capabilities.ts +87 -8
  4. package/src/_internal/capability-reviews.ts +6 -0
  5. package/src/_internal/capability-timeout.ts +71 -0
  6. package/src/_internal/define-app.ts +145 -89
  7. package/src/_internal/http-drain.ts +56 -0
  8. package/src/_internal/registry-validation.ts +3 -0
  9. package/src/_internal/runtime-context.ts +1 -0
  10. package/src/_internal/status-preserving-ssr.ts +2 -0
  11. package/src/access/PermissionEditor.tsx +16 -17
  12. package/src/access/PrincipalPicker.tsx +45 -10
  13. package/src/access/messages.ts +8 -0
  14. package/src/access/principal-label.ts +18 -0
  15. package/src/access/ui.ts +1 -0
  16. package/src/account/EntitySearch.tsx +5 -4
  17. package/src/ai/action-review.ts +2 -1
  18. package/src/ai/app-skill-store.ts +1 -1
  19. package/src/ai/capabilities.ts +21 -3
  20. package/src/ai/capability-execution.ts +14 -12
  21. package/src/ai/chat/action-card.ts +7 -1
  22. package/src/ai/chat/action-messages.ts +14 -0
  23. package/src/ai/chat/action-question.browser-harness.tsx +12 -0
  24. package/src/ai/chat/action-question.tsx +202 -22
  25. package/src/ai/chat/action-text.ts +1 -1
  26. package/src/ai/chat-tasks.ts +2 -1
  27. package/src/ai/client/controller.ts +150 -32
  28. package/src/ai/client/transport.ts +14 -2
  29. package/src/ai/code-capability-routes.ts +27 -23
  30. package/src/ai/code-runtime-tools.ts +14 -16
  31. package/src/ai/code-source-tools.ts +16 -18
  32. package/src/ai/executor.ts +56 -21
  33. package/src/ai/fetch-file-tool.ts +67 -76
  34. package/src/ai/http.ts +1 -0
  35. package/src/ai/migrate.ts +13 -0
  36. package/src/ai/open-questions.ts +4 -8
  37. package/src/ai/projects.ts +1 -2
  38. package/src/ai/protocol.ts +2 -2
  39. package/src/ai/recent-resources.ts +12 -5
  40. package/src/ai/review-content.ts +77 -0
  41. package/src/ai/routes.ts +69 -31
  42. package/src/ai/runtime.ts +1 -0
  43. package/src/ai/skill-tool.ts +17 -6
  44. package/src/ai/skills-routes.ts +72 -27
  45. package/src/ai/skills.ts +139 -60
  46. package/src/ai/store.ts +168 -33
  47. package/src/ai/types.ts +10 -3
  48. package/src/ai/usage.ts +2 -2
  49. package/src/api/admin-core-settings.ts +15 -2
  50. package/src/api/admin-geo.ts +54 -0
  51. package/src/api/admin-linux-identities.ts +6 -3
  52. package/src/api/admin-outgoing-mail.ts +29 -15
  53. package/src/api/approvals-loader.ts +3 -3
  54. package/src/api/approvals.ts +51 -0
  55. package/src/api/apps.ts +4 -2
  56. package/src/api/capabilities.ts +258 -181
  57. package/src/api/capability-streams.ts +21 -13
  58. package/src/api/cli-plugins.ts +4 -1
  59. package/src/api/geo-glyphs.ts +11 -0
  60. package/src/api/geo.ts +128 -0
  61. package/src/api/help.ts +12 -4
  62. package/src/api/index.ts +5 -0
  63. package/src/api/mcp.ts +46 -38
  64. package/src/api/me-panel-consent.ts +8 -5
  65. package/src/api/search.ts +21 -14
  66. package/src/api/sync-ops.ts +19 -13
  67. package/src/api/widgets.ts +42 -18
  68. package/src/approvals/Approvals.tsx +5 -3
  69. package/src/browser/CloudResourceSearch.browser-harness.tsx +53 -1
  70. package/src/browser/CloudResourceSearch.tsx +3 -13
  71. package/src/browser/PanelLeaveNotice.tsx +18 -0
  72. package/src/browser/navigation-search.ts +78 -25
  73. package/src/browser/panel-leave.ts +69 -0
  74. package/src/browser/panel-messages.ts +12 -0
  75. package/src/browser/panel-slot.ts +173 -24
  76. package/src/browser/panel.ts +3 -0
  77. package/src/browser/resource-search-messages.ts +2 -0
  78. package/src/capabilities/client.ts +28 -1
  79. package/src/capabilities/executions.ts +22 -3
  80. package/src/capabilities/geo-client.ts +57 -0
  81. package/src/capabilities/response.ts +2 -1
  82. package/src/capabilities/review-storage.ts +24 -0
  83. package/src/capabilities/reviews.ts +17 -3
  84. package/src/capabilities/server.ts +36 -16
  85. package/src/cli/access.ts +15 -23
  86. package/src/cli/admin/linux.ts +13 -2
  87. package/src/cli/admin/outgoing-mail.ts +26 -4
  88. package/src/cli/capabilities.ts +19 -0
  89. package/src/config/env.ts +0 -6
  90. package/src/contracts/app-access.ts +48 -0
  91. package/src/contracts/app.ts +4 -1
  92. package/src/contracts/approvals.ts +2 -2
  93. package/src/contracts/avatar.ts +186 -0
  94. package/src/contracts/capabilities.ts +148 -54
  95. package/src/contracts/geo-admin.ts +127 -0
  96. package/src/contracts/geo-map.ts +19 -0
  97. package/src/contracts/geo-route.ts +168 -0
  98. package/src/contracts/geo.ts +248 -0
  99. package/src/contracts/index.ts +4 -0
  100. package/src/contracts/outgoing-mail.ts +17 -4
  101. package/src/contracts/registry.ts +2 -0
  102. package/src/events/app-access.ts +68 -0
  103. package/src/events/live-delivery.ts +128 -0
  104. package/src/events/live.ts +14 -130
  105. package/src/geo/CloudMap.tsx +95 -0
  106. package/src/geo/map-messages.ts +17 -0
  107. package/src/geo/ui.ts +1 -0
  108. package/src/index.ts +2 -0
  109. package/src/server/client-ip.ts +36 -0
  110. package/src/server/index.ts +3 -4
  111. package/src/server/middleware/app-access.ts +312 -0
  112. package/src/server/middleware/auth.ts +1 -1
  113. package/src/server/middleware/invocation.ts +11 -0
  114. package/src/server/middleware/rate-limit.ts +4 -4
  115. package/src/server/services/access.ts +13 -9
  116. package/src/server/services/index.ts +0 -2
  117. package/src/server/services/services.ts +0 -2
  118. package/src/services/accounts/posix.ts +21 -7
  119. package/src/services/allowed-network-fetch.ts +16 -10
  120. package/src/services/app-access-metrics.ts +24 -0
  121. package/src/services/app-access.ts +123 -0
  122. package/src/services/app-discovery.ts +27 -0
  123. package/src/services/approvals/content.ts +40 -0
  124. package/src/services/approvals/index.ts +14 -6
  125. package/src/services/approvals/list.ts +6 -11
  126. package/src/services/approvals/question.ts +11 -7
  127. package/src/services/downstream-budget.ts +87 -0
  128. package/src/services/geo/admin.ts +262 -0
  129. package/src/services/geo/bucket.ts +67 -0
  130. package/src/services/geo/cache.ts +57 -0
  131. package/src/services/geo/costs.ts +5 -0
  132. package/src/services/geo/errors.ts +41 -0
  133. package/src/services/geo/fixtures/README.md +17 -0
  134. package/src/services/geo/fixtures/along.json +355 -0
  135. package/src/services/geo/fixtures/autocomplete.json +218 -0
  136. package/src/services/geo/fixtures/geocode.json +129 -0
  137. package/src/services/geo/fixtures/places.json +355 -0
  138. package/src/services/geo/fixtures/reverse.json +61 -0
  139. package/src/services/geo/fixtures/routing.json +57 -0
  140. package/src/services/geo/geoapify-route.ts +93 -0
  141. package/src/services/geo/geoapify.ts +281 -0
  142. package/src/services/geo/ledger.ts +122 -0
  143. package/src/services/geo/map.ts +160 -0
  144. package/src/services/geo/migrate.ts +25 -0
  145. package/src/services/geo/polyline.ts +184 -0
  146. package/src/services/geo/route-chain.ts +145 -0
  147. package/src/services/geo/route-costs.ts +9 -0
  148. package/src/services/geo/route-geometry.ts +39 -0
  149. package/src/services/geo/route-plan.ts +172 -0
  150. package/src/services/geo/route-service.ts +433 -0
  151. package/src/services/geo/service.ts +300 -0
  152. package/src/services/geo/settings.ts +49 -0
  153. package/src/services/help/index.ts +16 -7
  154. package/src/services/help/types.ts +6 -1
  155. package/src/services/identity/invocation-actor.ts +20 -2
  156. package/src/services/identity/issue-invocation.ts +67 -0
  157. package/src/services/identity/key-ring.ts +5 -3
  158. package/src/services/identity/runtime-config.ts +23 -0
  159. package/src/services/index.ts +9 -0
  160. package/src/services/mandates/index.ts +40 -3
  161. package/src/services/network-security.ts +6 -3
  162. package/src/services/network-transport.ts +99 -0
  163. package/src/services/notifications/catalog.ts +3 -2
  164. package/src/services/notifications/runtime.ts +1 -0
  165. package/src/services/notifications/web-push-transport.ts +45 -38
  166. package/src/services/outgoing-mail/dispatcher.ts +6 -1
  167. package/src/services/outgoing-mail/index.ts +55 -1
  168. package/src/services/outgoing-mail/messages.ts +82 -3
  169. package/src/services/outgoing-mail/resolve-host.ts +2 -2
  170. package/src/services/outgoing-mail/retention.ts +13 -1
  171. package/src/services/outgoing-mail/store.ts +36 -6
  172. package/src/services/outgoing-mail/test-send.ts +34 -4
  173. package/src/services/outgoing-mail/transport.ts +1 -1
  174. package/src/services/pdf/gotenberg.ts +11 -38
  175. package/src/services/pdf/template-preview.ts +1 -1
  176. package/src/services/public-http.ts +28 -40
  177. package/src/services/settings/app.ts +4 -1
  178. package/src/services/settings/core-settings.ts +88 -0
  179. package/src/services/settings/defaults.ts +8 -2
  180. package/src/services/settings/errors.ts +11 -0
  181. package/src/services/settings/geo-budget.ts +40 -0
  182. package/src/services/settings/index.ts +4 -3
  183. package/src/services/settings/store.ts +25 -17
  184. package/src/services/weather/geo.ts +29 -111
  185. package/src/services/weather/index.ts +4 -3
  186. package/src/services/weather/locations.ts +8 -5
  187. package/src/services/weather/migrate.ts +1 -0
  188. package/src/services/weather/settings.ts +0 -16
  189. package/src/shared/__snapshots__/avatar-art.test.ts.snap +5 -0
  190. package/src/shared/avatar-art.ts +400 -0
  191. package/src/shared/index.ts +2 -0
  192. package/src/shared/network-address.ts +22 -3
  193. package/src/shared/template-rendering.ts +36 -4
  194. package/src/shared-text/documents.ts +1 -1
  195. package/src/shared-text/index.ts +2 -0
  196. package/src/shared-text/log.ts +51 -3
  197. package/src/shared-text/snapshots.ts +340 -0
  198. package/src/ssr/AdminLayout.tsx +4 -2
  199. package/src/ssr/CloudShell.island.tsx +6 -0
  200. package/src/ssr/Layout.tsx +65 -15
  201. package/src/ssr/LayoutHelp.browser-harness.tsx +1 -1
  202. package/src/ssr/LayoutHelp.tsx +3 -2
  203. package/src/ssr/PanelRuntime.island.tsx +11 -7
  204. package/src/ssr/PwaLayout.tsx +2 -2
  205. package/src/ssr/RailApps.tsx +6 -0
  206. package/src/ssr/ShellRuntime.island.tsx +23 -7
  207. package/src/ssr/__snapshots__/Layout.unchanged.render.test.tsx.snap +151 -0
  208. package/src/ssr/__snapshots__/LayoutHelp.ssr.render.test.tsx.snap +6 -6
  209. package/src/ssr/admin-navigation.ts +1 -0
  210. package/src/ssr/app-badges.ts +6 -1
  211. package/src/ssr/compact-shell.browser-harness.ts +44 -5
  212. package/src/ssr/help.ts +3 -2
  213. package/src/ssr/index.ts +1 -1
  214. package/src/ssr/layout-context.ts +2 -0
  215. package/src/ssr/mobile-menu-history.ts +4 -0
  216. package/src/ssr/page-swap-fixture/Column.island.tsx +15 -0
  217. package/src/ssr/page-swap-fixture/ProviderProbe.island.tsx +31 -0
  218. package/src/ssr/page-swap.browser-harness.tsx +177 -0
  219. package/src/ssr/page-swap.ts +28 -0
  220. package/src/ssr/page-trail-runtime.ts +32 -13
  221. package/src/ssr/panel-consent.ts +2 -2
  222. package/src/ssr/panel-slot.browser-harness.tsx +3 -0
  223. package/src/ssr/platform-messages.ts +8 -0
  224. package/src/ssr/runtime.ts +17 -0
  225. package/src/ssr/shell-data.tsx +10 -2
  226. package/src/styles/global.css +70 -6
  227. package/src/server/services/geo.ts +0 -215
@@ -0,0 +1,129 @@
1
+ {
2
+ "type": "FeatureCollection",
3
+ "features": [
4
+ {
5
+ "type": "Feature",
6
+ "properties": {
7
+ "datasource": {
8
+ "sourcename": "openstreetmap",
9
+ "attribution": "© OpenStreetMap contributors",
10
+ "license": "Open Database License",
11
+ "url": "https://www.openstreetmap.org/copyright"
12
+ },
13
+ "name": "Asian Art Museum of San Francisco",
14
+ "country": "United States",
15
+ "country_code": "us",
16
+ "state": "California",
17
+ "city": "San Francisco",
18
+ "postcode": "94102",
19
+ "district": "Civic Center",
20
+ "suburb": "Civic Center",
21
+ "street": "Larkin Street",
22
+ "housenumber": "200",
23
+ "iso3166_2": "US-CA",
24
+ "lon": -122.4159922,
25
+ "lat": 37.780315,
26
+ "state_code": "CA",
27
+ "result_type": "amenity",
28
+ "formatted": "Asian Art Museum of San Francisco, 200 Larkin Street, San Francisco, CA 94102, United States of America",
29
+ "address_line1": "Asian Art Museum of San Francisco",
30
+ "address_line2": "200 Larkin Street, San Francisco, CA 94102, United States of America",
31
+ "category": "entertainment.museum",
32
+ "timezone": {
33
+ "name": "America/Los_Angeles",
34
+ "offset_STD": "-08:00",
35
+ "offset_DST": "-07:00",
36
+ "offset_STD_seconds": -28800,
37
+ "offset_DST_seconds": -25200,
38
+ "abbreviation_STD": "PST",
39
+ "abbreviation_DST": "PDT"
40
+ },
41
+ "plus_code": "849VQHJM+4J",
42
+ "plus_code_short": "JM+4J San Francisco, California, United States",
43
+ "rank": {
44
+ "importance": 0.40308494416412793,
45
+ "popularity": 7.947566780780423,
46
+ "confidence": 1,
47
+ "confidence_city_level": 1,
48
+ "confidence_street_level": 1,
49
+ "confidence_building_level": 1,
50
+ "match_type": "inner_part"
51
+ },
52
+ "place_id": "510899bf9d9f9a5ec05904caa65ce1e34240f00102f901052f770100000000c00201920321417369616e20417274204d757365756d206f662053616e204672616e636973636f"
53
+ },
54
+ "geometry": {
55
+ "type": "Point",
56
+ "coordinates": [-122.4159922, 37.780315]
57
+ },
58
+ "bbox": [-122.4166302, 37.7799687, -122.4153648, 37.7805223]
59
+ },
60
+ {
61
+ "type": "Feature",
62
+ "properties": {
63
+ "datasource": {
64
+ "sourcename": "openstreetmap",
65
+ "attribution": "© OpenStreetMap contributors",
66
+ "license": "Open Database License",
67
+ "url": "https://www.openstreetmap.org/copyright"
68
+ },
69
+ "name": "Asian Art Museum Cafe",
70
+ "country": "United States",
71
+ "country_code": "us",
72
+ "state": "California",
73
+ "city": "San Francisco",
74
+ "postcode": "94102",
75
+ "district": "Civic Center",
76
+ "suburb": "Civic Center",
77
+ "street": "Larkin Street",
78
+ "housenumber": "200",
79
+ "iso3166_2": "US-CA",
80
+ "lon": -122.4160624,
81
+ "lat": 37.780058,
82
+ "state_code": "CA",
83
+ "result_type": "amenity",
84
+ "formatted": "Asian Art Museum Cafe, 200 Larkin Street, San Francisco, CA 94102, United States of America",
85
+ "address_line1": "Asian Art Museum Cafe",
86
+ "address_line2": "200 Larkin Street, San Francisco, CA 94102, United States of America",
87
+ "category": "catering.cafe",
88
+ "timezone": {
89
+ "name": "America/Los_Angeles",
90
+ "offset_STD": "-08:00",
91
+ "offset_DST": "-07:00",
92
+ "offset_STD_seconds": -28800,
93
+ "offset_DST_seconds": -25200,
94
+ "abbreviation_STD": "PST",
95
+ "abbreviation_DST": "PDT"
96
+ },
97
+ "plus_code": "849VQHJM+2H",
98
+ "plus_code_short": "JM+2H San Francisco, California, United States",
99
+ "rank": {
100
+ "importance": 8.251392385743523e-5,
101
+ "popularity": 7.947566780780423,
102
+ "confidence": 1,
103
+ "confidence_city_level": 1,
104
+ "confidence_street_level": 1,
105
+ "confidence_building_level": 1,
106
+ "match_type": "inner_part"
107
+ },
108
+ "place_id": "51194630c4a09a5ec059d87dc7f0d8e34240f00103f901792d95a702000000c00201920315417369616e20417274204d757365756d2043616665"
109
+ },
110
+ "geometry": {
111
+ "type": "Point",
112
+ "coordinates": [-122.4160624, 37.780058]
113
+ },
114
+ "bbox": [-122.4161124, 37.780008, -122.4160124, 37.780108]
115
+ }
116
+ ],
117
+ "query": {
118
+ "text": "200 Larkin Street, San Francisco, CA 94102, United States",
119
+ "parsed": {
120
+ "housenumber": "200",
121
+ "street": "larkin street",
122
+ "postcode": "94102",
123
+ "city": "san francisco",
124
+ "state": "ca",
125
+ "country": "united states",
126
+ "expected_type": "building"
127
+ }
128
+ }
129
+ }
@@ -0,0 +1,355 @@
1
+ {
2
+ "type": "FeatureCollection",
3
+ "features": [
4
+ {
5
+ "type": "Feature",
6
+ "properties": {
7
+ "name": "Dollar General",
8
+ "country": "United States",
9
+ "country_code": "us",
10
+ "region": "West Tennessee",
11
+ "state": "Tennessee",
12
+ "county": "Shelby County",
13
+ "city": "Memphis",
14
+ "postcode": "38122",
15
+ "street": "Summer Avenue",
16
+ "housenumber": "4111",
17
+ "iso3166_2": "US-TN",
18
+ "lon": -89.9237661,
19
+ "lat": 35.1484713,
20
+ "state_code": "TN",
21
+ "formatted": "Dollar General, 4111 Summer Avenue, Memphis, TN 38122, United States of America",
22
+ "address_line1": "Dollar General",
23
+ "address_line2": "4111 Summer Avenue, Memphis, TN 38122, United States of America",
24
+ "categories": ["commercial", "commercial.discount_store"],
25
+ "details": ["details", "details.contact"],
26
+ "datasource": {
27
+ "sourcename": "openstreetmap",
28
+ "attribution": "© OpenStreetMap contributors",
29
+ "license": "Open Database License",
30
+ "url": "https://www.openstreetmap.org/copyright",
31
+ "raw": {
32
+ "name": "Dollar General",
33
+ "shop": "variety_store",
34
+ "brand": "Dollar General",
35
+ "phone": "+1-901-452-1618",
36
+ "osm_id": 4944605516,
37
+ "website": "https://www.dollargeneral.com/store-directory/tn/memphis/11958",
38
+ "osm_type": "n",
39
+ "addr:city": "Memphis",
40
+ "addr:state": "TN",
41
+ "addr:street": "Summer Avenue",
42
+ "addr:postcode": 38122,
43
+ "opening_hours": "Mo-Su 8:00-22:00",
44
+ "brand:wikidata": "Q145168",
45
+ "addr:housenumber": 4111
46
+ }
47
+ },
48
+ "website": "https://www.dollargeneral.com/store-directory/tn/memphis/11958",
49
+ "opening_hours": "Mo-Su 8:00-22:00",
50
+ "brand": "Dollar General",
51
+ "brand_details": {
52
+ "wikidata": "Q145168"
53
+ },
54
+ "contact": {
55
+ "phone": "+1-901-452-1618"
56
+ },
57
+ "commercial": {
58
+ "type": "variety_store"
59
+ },
60
+ "distance": 943,
61
+ "place_id": "51d229d9fb1e7b56c059b938881b01934140f00103f9014cb1b8260100000092030e446f6c6c61722047656e6572616c"
62
+ },
63
+ "geometry": {
64
+ "type": "Point",
65
+ "coordinates": [-89.9237661, 35.148471299662056]
66
+ }
67
+ },
68
+ {
69
+ "type": "Feature",
70
+ "properties": {
71
+ "name": "Jiffy Lube",
72
+ "country": "United States",
73
+ "country_code": "us",
74
+ "region": "West Tennessee",
75
+ "state": "Tennessee",
76
+ "county": "Shelby County",
77
+ "city": "Memphis",
78
+ "postcode": "38122",
79
+ "street": "North Graham Street",
80
+ "housenumber": "630",
81
+ "iso3166_2": "US-TN",
82
+ "lon": -89.927624,
83
+ "lat": 35.1483556,
84
+ "state_code": "TN",
85
+ "formatted": "Jiffy Lube, 630 North Graham Street, Memphis, TN 38122, United States of America",
86
+ "address_line1": "Jiffy Lube",
87
+ "address_line2": "630 North Graham Street, Memphis, TN 38122, United States of America",
88
+ "categories": [
89
+ "building",
90
+ "building.commercial",
91
+ "commercial",
92
+ "service",
93
+ "service.vehicle",
94
+ "service.vehicle.repair",
95
+ "service.vehicle.repair.car"
96
+ ],
97
+ "details": ["details", "details.contact"],
98
+ "datasource": {
99
+ "sourcename": "openstreetmap",
100
+ "attribution": "© OpenStreetMap contributors",
101
+ "license": "Open Database License",
102
+ "url": "https://www.openstreetmap.org/copyright",
103
+ "raw": {
104
+ "name": "Jiffy Lube",
105
+ "shop": "car_repair",
106
+ "brand": "Jiffy Lube",
107
+ "phone": "+1-901-458-1292",
108
+ "osm_id": 836214347,
109
+ "building": "yes",
110
+ "osm_type": "w",
111
+ "addr:city": "Memphis",
112
+ "addr:state": "TN",
113
+ "addr:street": "North Graham Street",
114
+ "addr:postcode": 38122,
115
+ "opening_hours": "Mo-Sa 07:00-19:00; Su 10:00-17:00",
116
+ "brand:wikidata": "Q6192247",
117
+ "addr:housenumber": 630,
118
+ "service:vehicle:oil_change": "yes"
119
+ }
120
+ },
121
+ "opening_hours": "Mo-Sa 07:00-19:00; Su 10:00-17:00",
122
+ "brand": "Jiffy Lube",
123
+ "brand_details": {
124
+ "wikidata": "Q6192247"
125
+ },
126
+ "contact": {
127
+ "phone": "+1-901-458-1292"
128
+ },
129
+ "commercial": {
130
+ "type": "car_repair"
131
+ },
132
+ "distance": 656,
133
+ "place_id": "51be96d8305e7b56c05944fd8c50fd924140f00102f9014b9ed7310000000092030a4a69666679204c756265"
134
+ },
135
+ "geometry": {
136
+ "type": "Point",
137
+ "coordinates": [-89.92762395049337, 35.14835554966206]
138
+ }
139
+ },
140
+ {
141
+ "type": "Feature",
142
+ "properties": {
143
+ "name": "Duke's Automotive",
144
+ "country": "United States",
145
+ "country_code": "us",
146
+ "region": "West Tennessee",
147
+ "state": "Tennessee",
148
+ "county": "Shelby County",
149
+ "city": "Memphis",
150
+ "postcode": "38122",
151
+ "street": "North Graham Street",
152
+ "housenumber": "596",
153
+ "iso3166_2": "US-TN",
154
+ "lon": -89.927658,
155
+ "lat": 35.1480699,
156
+ "state_code": "TN",
157
+ "formatted": "Duke's Automotive, 596 North Graham Street, Memphis, TN 38122, United States of America",
158
+ "address_line1": "Duke's Automotive",
159
+ "address_line2": "596 North Graham Street, Memphis, TN 38122, United States of America",
160
+ "categories": ["commercial", "service", "service.vehicle", "service.vehicle.repair", "service.vehicle.repair.car"],
161
+ "details": ["details", "details.contact"],
162
+ "datasource": {
163
+ "sourcename": "openstreetmap",
164
+ "attribution": "© OpenStreetMap contributors",
165
+ "license": "Open Database License",
166
+ "url": "https://www.openstreetmap.org/copyright",
167
+ "raw": {
168
+ "name": "Duke's Automotive",
169
+ "shop": "car_repair",
170
+ "phone": "+1-901-323-9837",
171
+ "osm_id": 4944605520,
172
+ "osm_type": "n",
173
+ "addr:city": "Memphis",
174
+ "addr:state": "TN",
175
+ "addr:street": "North Graham Street",
176
+ "addr:postcode": 38122,
177
+ "opening_hours": "Mo-Fr 07:30-17:30",
178
+ "addr:housenumber": 596,
179
+ "service:vehicle:car_parts": "yes",
180
+ "service:vehicle:car_repair": "yes"
181
+ }
182
+ },
183
+ "opening_hours": "Mo-Fr 07:30-17:30",
184
+ "contact": {
185
+ "phone": "+1-901-323-9837"
186
+ },
187
+ "commercial": {
188
+ "type": "car_repair"
189
+ },
190
+ "distance": 641,
191
+ "place_id": "51daf7a8bf5e7b56c059044958f4f3924140f00103f90150b1b8260100000092031144756b652773204175746f6d6f74697665"
192
+ },
193
+ "geometry": {
194
+ "type": "Point",
195
+ "coordinates": [-89.92765799999998, 35.14806989966203]
196
+ }
197
+ },
198
+ {
199
+ "type": "Feature",
200
+ "properties": {
201
+ "name": "High Point Terrace Shopping Center",
202
+ "country": "United States",
203
+ "country_code": "us",
204
+ "region": "West Tennessee",
205
+ "state": "Tennessee",
206
+ "county": "Shelby County",
207
+ "city": "Memphis",
208
+ "postcode": "38122",
209
+ "street": "Philwood Avenue",
210
+ "iso3166_2": "US-TN",
211
+ "lon": -89.9376452,
212
+ "lat": 35.1449256,
213
+ "state_code": "TN",
214
+ "formatted": "High Point Terrace Shopping Center, Philwood Avenue, Memphis, TN 38122, United States of America",
215
+ "address_line1": "High Point Terrace Shopping Center",
216
+ "address_line2": "Philwood Avenue, Memphis, TN 38122, United States of America",
217
+ "categories": ["commercial", "commercial.shopping_mall"],
218
+ "details": [],
219
+ "datasource": {
220
+ "sourcename": "openstreetmap",
221
+ "attribution": "© OpenStreetMap contributors",
222
+ "license": "Open Database License",
223
+ "url": "https://www.openstreetmap.org/copyright",
224
+ "raw": {
225
+ "name": "High Point Terrace Shopping Center",
226
+ "shop": "mall",
227
+ "osm_id": 223786578,
228
+ "osm_type": "w"
229
+ }
230
+ },
231
+ "commercial": {
232
+ "type": "mall"
233
+ },
234
+ "distance": 463,
235
+ "place_id": "51b289f860027c56c05948730bec8c924140f00102f90152b6560d000000009203224869676820506f696e7420546572726163652053686f7070696e672043656e746572"
236
+ },
237
+ "geometry": {
238
+ "type": "Point",
239
+ "coordinates": [-89.93764518996502, 35.1449255996618]
240
+ }
241
+ },
242
+ {
243
+ "type": "Feature",
244
+ "properties": {
245
+ "name": "High Point Barber Shop",
246
+ "country": "United States",
247
+ "country_code": "us",
248
+ "region": "West Tennessee",
249
+ "state": "Tennessee",
250
+ "county": "Shelby County",
251
+ "city": "Memphis",
252
+ "postcode": "38122",
253
+ "street": "High Point Terrace",
254
+ "housenumber": "477",
255
+ "iso3166_2": "US-TN",
256
+ "lon": -89.9378035,
257
+ "lat": 35.1447958,
258
+ "state_code": "TN",
259
+ "formatted": "High Point Barber Shop, 477 High Point Terrace, Memphis, TN 38122, United States of America",
260
+ "address_line1": "High Point Barber Shop",
261
+ "address_line2": "477 High Point Terrace, Memphis, TN 38122, United States of America",
262
+ "categories": ["commercial", "service", "service.beauty", "service.beauty.hairdresser"],
263
+ "details": ["details.contact", "details.payment"],
264
+ "datasource": {
265
+ "sourcename": "openstreetmap",
266
+ "attribution": "© OpenStreetMap contributors",
267
+ "license": "Open Database License",
268
+ "url": "https://www.openstreetmap.org/copyright",
269
+ "raw": {
270
+ "name": "High Point Barber Shop",
271
+ "shop": "hairdresser",
272
+ "phone": "+1-901-715-8883",
273
+ "osm_id": 12613343782,
274
+ "osm_type": "n",
275
+ "addr:city": "Memphis",
276
+ "addr:unit": "#C",
277
+ "addr:state": "TN",
278
+ "addr:street": "High Point Terrace",
279
+ "hairdresser": "barber",
280
+ "payment:cash": "yes",
281
+ "addr:postcode": 38122,
282
+ "addr:housenumber": 477
283
+ }
284
+ },
285
+ "contact": {
286
+ "phone": "+1-901-715-8883"
287
+ },
288
+ "payment_options": {
289
+ "cash": true
290
+ },
291
+ "commercial": {
292
+ "type": "hairdresser"
293
+ },
294
+ "distance": 500,
295
+ "place_id": "51c2a4f8f8047c56c059a11234ab88924140f00103f901265ad0ef020000009203164869676820506f696e74204261726265722053686f70"
296
+ },
297
+ "geometry": {
298
+ "type": "Point",
299
+ "coordinates": [-89.9378035, 35.144795799661786]
300
+ }
301
+ },
302
+ {
303
+ "type": "Feature",
304
+ "properties": {
305
+ "name": "High Point Grocery",
306
+ "country": "United States",
307
+ "country_code": "us",
308
+ "region": "West Tennessee",
309
+ "state": "Tennessee",
310
+ "county": "Shelby County",
311
+ "city": "Memphis",
312
+ "hamlet": "Hedgemoor",
313
+ "postcode": "38122",
314
+ "street": "High Point Terrace",
315
+ "housenumber": "469",
316
+ "iso3166_2": "US-TN",
317
+ "lon": -89.9376722,
318
+ "lat": 35.1444938,
319
+ "state_code": "TN",
320
+ "formatted": "High Point Grocery, 469 High Point Terrace, Memphis, TN 38122, United States of America",
321
+ "address_line1": "High Point Grocery",
322
+ "address_line2": "469 High Point Terrace, Memphis, TN 38122, United States of America",
323
+ "categories": ["commercial", "commercial.supermarket"],
324
+ "details": ["details"],
325
+ "datasource": {
326
+ "sourcename": "openstreetmap",
327
+ "attribution": "© OpenStreetMap contributors",
328
+ "license": "Open Database License",
329
+ "url": "https://www.openstreetmap.org/copyright",
330
+ "raw": {
331
+ "name": "High Point Grocery",
332
+ "shop": "supermarket",
333
+ "osm_id": 2326594332,
334
+ "twitter": "https://twitter.com/HighPointGrocer/",
335
+ "website": "https://www.highpointgrocery.com/",
336
+ "osm_type": "n",
337
+ "addr:street": "High Point Terrace",
338
+ "addr:postcode": 38122,
339
+ "addr:housenumber": 469
340
+ }
341
+ },
342
+ "website": "https://www.highpointgrocery.com/",
343
+ "commercial": {
344
+ "type": "supermarket"
345
+ },
346
+ "distance": 483,
347
+ "place_id": "51935742d2027c56c059d402d8c57e924140f00103f9011c03ad8a000000009203124869676820506f696e742047726f63657279"
348
+ },
349
+ "geometry": {
350
+ "type": "Point",
351
+ "coordinates": [-89.9376722, 35.144493799661774]
352
+ }
353
+ }
354
+ ]
355
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "type": "FeatureCollection",
3
+ "features": [
4
+ {
5
+ "type": "Feature",
6
+ "properties": {
7
+ "datasource": {
8
+ "sourcename": "openstreetmap",
9
+ "attribution": "© OpenStreetMap contributors",
10
+ "license": "Open Database License",
11
+ "url": "https://www.openstreetmap.org/copyright"
12
+ },
13
+ "name": "Old Saint Stephens Church",
14
+ "country": "United States",
15
+ "country_code": "us",
16
+ "state": "Massachusetts",
17
+ "county": "Suffolk County",
18
+ "city": "Boston",
19
+ "postcode": "02109",
20
+ "suburb": "North End",
21
+ "street": "Clark Street",
22
+ "housenumber": "24",
23
+ "iso3166_2": "US-MA",
24
+ "lon": -71.0526773,
25
+ "lat": 42.3653541,
26
+ "state_code": "MA",
27
+ "distance": 0,
28
+ "result_type": "amenity",
29
+ "formatted": "Old Saint Stephens Church, 24 Clark Street, Boston, MA 02109, United States of America",
30
+ "address_line1": "Old Saint Stephens Church",
31
+ "address_line2": "24 Clark Street, Boston, MA 02109, United States of America",
32
+ "timezone": {
33
+ "name": "America/New_York",
34
+ "offset_STD": "-05:00",
35
+ "offset_DST": "-04:00",
36
+ "offset_STD_seconds": -18000,
37
+ "offset_DST_seconds": -14400,
38
+ "abbreviation_STD": "EST",
39
+ "abbreviation_DST": "EDT"
40
+ },
41
+ "plus_code": "87JC9W8W+4W",
42
+ "plus_code_short": "8W+4W, 02109 Boston, United States",
43
+ "rank": {
44
+ "importance": 0.14389741120638372,
45
+ "popularity": 8.536661234137748
46
+ },
47
+ "place_id": "51762f9c105fc351c059d17a53ecc32e4540f00102f901ddf3530e00000000c002019203194f6c64205361696e74205374657068656e7320436875726368"
48
+ },
49
+ "geometry": {
50
+ "type": "Point",
51
+ "coordinates": [-71.0526773, 42.3653541]
52
+ },
53
+ "bbox": [-71.0529219, 42.3651972, -71.0524232, 42.365485]
54
+ }
55
+ ],
56
+ "query": {
57
+ "lat": 42.365344,
58
+ "lon": -71.052655,
59
+ "plus_code": "87JC9W8W+4W"
60
+ }
61
+ }
@@ -0,0 +1,57 @@
1
+ {
2
+ "results": [
3
+ {
4
+ "mode": "drive",
5
+ "units": "metric",
6
+ "distance_units": "meters",
7
+ "distance": 3000,
8
+ "time": 300,
9
+ "waypoints": [
10
+ {
11
+ "location": [10, 48],
12
+ "original_index": 0
13
+ },
14
+ {
15
+ "location": [10.01, 48.01],
16
+ "original_index": 1
17
+ },
18
+ {
19
+ "location": [10.02, 48.02],
20
+ "original_index": 2
21
+ }
22
+ ],
23
+ "legs": [
24
+ {
25
+ "distance": 1500,
26
+ "time": 150
27
+ },
28
+ {
29
+ "distance": 1500,
30
+ "time": 150
31
+ }
32
+ ],
33
+ "geometry": [
34
+ [
35
+ {
36
+ "lon": 10,
37
+ "lat": 48
38
+ },
39
+ {
40
+ "lon": 10.01,
41
+ "lat": 48.01
42
+ }
43
+ ],
44
+ [
45
+ {
46
+ "lon": 10.01,
47
+ "lat": 48.01
48
+ },
49
+ {
50
+ "lon": 10.02,
51
+ "lat": 48.02
52
+ }
53
+ ]
54
+ ]
55
+ }
56
+ ]
57
+ }