@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,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,218 @@
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": "New Orleans",
14
+ "other_names": {
15
+ "name:br": "Orleañs Nevez",
16
+ "name:es": "Nueva Orleans",
17
+ "name:fr": "La Nouvelle-Orléans",
18
+ "name:ja": "ニューオーリンズ",
19
+ "name:ko": "뉴올리언스",
20
+ "name:oc": "Nòva Orleans",
21
+ "name:ru": "Новый Орлеан",
22
+ "name:uk": "Новий Орлеан",
23
+ "name:vi": "Ngọc Lân",
24
+ "name:zh": "新奥尔良;紐奧良",
25
+ "loc_name": "NOLA",
26
+ "name:chr": "ᏄᎣᎵᏂᏏᏱ",
27
+ "short_name": "N.O.",
28
+ "alt_name:uk": "Ню Орлєанс",
29
+ "alt_name:vi": "New Orleans;Tân Linh",
30
+ "loc_name:en": "NOLA",
31
+ "loc_name:vi": "Ngọc Lân;Níu Liên",
32
+ "name:zh-Hans": "新奥尔良",
33
+ "name:zh-Hant": "紐奧良",
34
+ "name:am": "ኑ ኦርሌንዝ",
35
+ "name:an": "Nueva Orleans",
36
+ "name:ar": "نيو أورلينز",
37
+ "name:az": "Nyu-Orlean",
38
+ "name:be": "Новы Арлеан",
39
+ "name:bg": "Ню Орлиънс",
40
+ "name:bn": "নিয় অরলিন্স",
41
+ "name:ca": "Nova Orleans",
42
+ "name:ce": "Нью-Орлеан",
43
+ "name:cv": "Нью-Орлеан",
44
+ "name:el": "Νέα Ορλεάνη",
45
+ "name:eo": "Nov-Orleano",
46
+ "name:fa": "نیواورلئان",
47
+ "name:gl": "Nova Orleáns",
48
+ "name:he": "ניו אורלינס",
49
+ "name:hi": "न्यू ओर्लियंस",
50
+ "name:ht": "Nouvèl Òleyan",
51
+ "name:hy": "Նոր Օռլեան",
52
+ "name:io": "New-Orleans",
53
+ "name:ka": "ახალი ორლეანი",
54
+ "name:kk": "Жаңа Орлеан",
55
+ "name:kn": "ಹೊಸ ಒರ್ಲೀನ್ಸ್",
56
+ "name:ky": "Жаңы Орлеан",
57
+ "name:la": "Nova Aurelia",
58
+ "name:lt": "Naujasis Orleanas",
59
+ "name:lv": "Ņūorleāna",
60
+ "name:mk": "Њу Орлеанс",
61
+ "name:ml": "ന്യൂ ഓർലിയൻസ് നഗരം",
62
+ "name:mn": "Шинэ Орлеан",
63
+ "name:mr": "न्यू ऑर्लिन्स",
64
+ "name:nv": "Tónteel Biihílį́ Hatsoh",
65
+ "name:os": "Ног Орлеан",
66
+ "name:pl": "Nowy Orlean",
67
+ "name:pt": "Nova Orleães",
68
+ "name:sa": "न्‍यू आर्लीन्‍स",
69
+ "name:sr": "Њу Орлеанс",
70
+ "name:ta": "நியூ ஓர்லென்ஸ்",
71
+ "name:th": "นิวออร์ลีนส์",
72
+ "name:tt": "Яңа Орлеан",
73
+ "name:ug": "Yéngi Orléan",
74
+ "name:ur": "نیو اورلینز",
75
+ "name:uz": "Yangi Orlean",
76
+ "name:yi": "ניו ארלינס",
77
+ "name:pronunciation": "nu ˈɔːrlənz",
78
+ "name:en:pronunciation": "nu ˈɔːrlənz",
79
+ "name:zh-Hant-CN": "新奧爾良"
80
+ },
81
+ "country": "United States",
82
+ "country_code": "us",
83
+ "state": "Louisiana",
84
+ "county": "Orleans Parish",
85
+ "city": "New Orleans",
86
+ "iso3166_2": "US-LA",
87
+ "lon": -90.0733934,
88
+ "lat": 29.9561422,
89
+ "state_code": "LA",
90
+ "result_type": "city",
91
+ "formatted": "New Orleans, LA, United States of America",
92
+ "address_line1": "New Orleans, LA",
93
+ "address_line2": "United States of America",
94
+ "category": "administrative",
95
+ "timezone": {
96
+ "name": "America/Chicago",
97
+ "offset_STD": "-06:00",
98
+ "offset_DST": "-05:00",
99
+ "offset_STD_seconds": -21600,
100
+ "offset_DST_seconds": -18000,
101
+ "abbreviation_STD": "CST",
102
+ "abbreviation_DST": "CDT"
103
+ },
104
+ "plus_code": "76XFXW4G+FJ",
105
+ "plus_code_short": "4G+FJ New Orleans, Orleans Parish, United States",
106
+ "rank": {
107
+ "importance": 0.7240046227015887,
108
+ "confidence": 1,
109
+ "confidence_city_level": 1,
110
+ "match_type": "full_match"
111
+ },
112
+ "place_id": "51812f3b7ab28456c059535337bcc5f43d40f00101f9012d03020000000000c0020892030b4e6577204f726c65616e73"
113
+ },
114
+ "geometry": {
115
+ "type": "Point",
116
+ "coordinates": [-90.0733934, 29.9561422]
117
+ },
118
+ "bbox": [-90.1399307, 29.8654809, -89.6251763, 30.1994687]
119
+ },
120
+ {
121
+ "type": "Feature",
122
+ "properties": {
123
+ "datasource": {
124
+ "sourcename": "openstreetmap",
125
+ "attribution": "© OpenStreetMap contributors",
126
+ "license": "Open Database License",
127
+ "url": "https://www.openstreetmap.org/copyright"
128
+ },
129
+ "name": "Orléans",
130
+ "other_names": {
131
+ "name:ar": "أرليانش",
132
+ "name:br": "Orleañs",
133
+ "name:el": "Ορλεάνη",
134
+ "name:eo": "Orleano",
135
+ "name:es": "Orleans",
136
+ "name:he": "אורליאן",
137
+ "name:ja": "オルレアン",
138
+ "name:la": "Cenabum",
139
+ "name:lt": "Orleanas",
140
+ "name:oc": "Orleans",
141
+ "name:pl": "Orlean",
142
+ "name:pt": "Orleães",
143
+ "name:ru": "Орлеан",
144
+ "name:sr": "Орлеан",
145
+ "name:uk": "Орлеан",
146
+ "alt_name:ar": "أورليان;أليانش;أورليون",
147
+ "name:bn": "ওর্ল্যোন্",
148
+ "name:hi": "ऒर्ल्योन",
149
+ "name:hy": "Օռլեան",
150
+ "name:ka": "ორლეანი",
151
+ "name:kn": "ಒರ್ಲ್ಯೋನ್",
152
+ "name:ko": "오를레앙",
153
+ "name:mk": "Орлеан",
154
+ "name:mr": "ऒर्ल्योन्",
155
+ "name:ta": "ஒர்ல்யோன்",
156
+ "name:te": "ఒర్ల్యోన్",
157
+ "name:th": "ออร์เลอ็อง",
158
+ "name:zh": "奥尔良",
159
+ "old_name:it": "Orleano",
160
+ "name:zh-Hans": "奥尔良",
161
+ "name:zh-Hant": "奧爾良"
162
+ },
163
+ "country": "France",
164
+ "country_code": "fr",
165
+ "region": "Metropolitan France",
166
+ "state": "Centre-Val de Loire",
167
+ "county": "Loiret",
168
+ "city": "Orléans",
169
+ "municipality": "Orléans",
170
+ "postcode": "45000",
171
+ "iso3166_2": "FR-CVL",
172
+ "iso3166_2_sublevel": "FR-45",
173
+ "lon": 1.9086066,
174
+ "lat": 47.9027336,
175
+ "state_code": "CVL",
176
+ "state_COG": "24",
177
+ "result_type": "city",
178
+ "department_COG": "45",
179
+ "NUTS_3": "FRB06",
180
+ "formatted": "Orléans, CVL, France",
181
+ "address_line1": "Orléans",
182
+ "address_line2": "Orléans, CVL, France",
183
+ "category": "administrative",
184
+ "timezone": {
185
+ "name": "Europe/Paris",
186
+ "offset_STD": "+01:00",
187
+ "offset_DST": "+02:00",
188
+ "offset_STD_seconds": 3600,
189
+ "offset_DST_seconds": 7200,
190
+ "abbreviation_STD": "CET",
191
+ "abbreviation_DST": "CEST"
192
+ },
193
+ "plus_code": "8FV3WW35+3C",
194
+ "plus_code_short": "35+3C Orléans, Loiret, France",
195
+ "rank": {
196
+ "importance": 0.6713646548396663,
197
+ "confidence": 1,
198
+ "confidence_city_level": 1,
199
+ "match_type": "full_match"
200
+ },
201
+ "place_id": "5145e0fe12a789fe3f590b804cc68cf34740f00101f9016740020000000000c002089203084f726cc3a9616e73"
202
+ },
203
+ "geometry": {
204
+ "type": "Point",
205
+ "coordinates": [1.9086066, 47.9027336]
206
+ },
207
+ "bbox": [1.8757578, 47.8132802, 1.9487114, 47.9335581]
208
+ }
209
+ ],
210
+ "query": {
211
+ "text": "Orle",
212
+ "parsed": {
213
+ "city": "orle",
214
+ "expected_type": "unknown"
215
+ },
216
+ "categories": []
217
+ }
218
+ }