strapi-plugin-map-box 0.0.1

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 (44) hide show
  1. package/README.md +4 -0
  2. package/dist/_chunks/en-B4KWt_jN.js +5 -0
  3. package/dist/_chunks/en-B4KWt_jN.js.map +1 -0
  4. package/dist/_chunks/en-Byx4XI2L.mjs +5 -0
  5. package/dist/_chunks/en-Byx4XI2L.mjs.map +1 -0
  6. package/dist/admin/index.js +419 -0
  7. package/dist/admin/index.js.map +1 -0
  8. package/dist/admin/index.mjs +417 -0
  9. package/dist/admin/index.mjs.map +1 -0
  10. package/dist/admin/src/components/Initializer.d.ts +5 -0
  11. package/dist/admin/src/components/PluginIcon.d.ts +2 -0
  12. package/dist/admin/src/components/custom-field/MapBoxField/DebugInfo.d.ts +14 -0
  13. package/dist/admin/src/components/custom-field/MapBoxField/MapSearch.d.ts +9 -0
  14. package/dist/admin/src/components/custom-field/MapBoxField/hooks.d.ts +29 -0
  15. package/dist/admin/src/components/custom-field/MapBoxField/index.d.ts +19 -0
  16. package/dist/admin/src/components/custom-field/MapBoxField/styles.d.ts +6 -0
  17. package/dist/admin/src/components/custom-field/MapBoxField/types.d.ts +22 -0
  18. package/dist/admin/src/index.d.ts +10 -0
  19. package/dist/admin/src/pages/App.d.ts +2 -0
  20. package/dist/admin/src/pages/HomePage.d.ts +2 -0
  21. package/dist/admin/src/pluginId.d.ts +1 -0
  22. package/dist/admin/src/utils/getTranslation.d.ts +2 -0
  23. package/dist/server/index.js +116 -0
  24. package/dist/server/index.js.map +1 -0
  25. package/dist/server/index.mjs +117 -0
  26. package/dist/server/index.mjs.map +1 -0
  27. package/dist/server/src/bootstrap.d.ts +5 -0
  28. package/dist/server/src/config/index.d.ts +5 -0
  29. package/dist/server/src/content-types/index.d.ts +2 -0
  30. package/dist/server/src/controllers/controller.d.ts +8 -0
  31. package/dist/server/src/controllers/index.d.ts +9 -0
  32. package/dist/server/src/destroy.d.ts +5 -0
  33. package/dist/server/src/index.d.ts +54 -0
  34. package/dist/server/src/middlewares/index.d.ts +2 -0
  35. package/dist/server/src/policies/index.d.ts +2 -0
  36. package/dist/server/src/register.d.ts +5 -0
  37. package/dist/server/src/routes/admin-api.d.ts +9 -0
  38. package/dist/server/src/routes/content-api.d.ts +2 -0
  39. package/dist/server/src/routes/index.d.ts +18 -0
  40. package/dist/server/src/services/index.d.ts +11 -0
  41. package/dist/server/src/services/service.d.ts +33 -0
  42. package/dist/server/src/utils/index.d.ts +4 -0
  43. package/dist/types.d.ts +6 -0
  44. package/package.json +89 -0
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ const bootstrap = ({ strapi: strapi2 }) => {
3
+ };
4
+ const destroy = ({ strapi: strapi2 }) => {
5
+ };
6
+ const register = ({ strapi: strapi2 }) => {
7
+ strapi2.customFields.register({
8
+ name: "map-box",
9
+ type: "json"
10
+ });
11
+ };
12
+ const config = {
13
+ default: {},
14
+ validator() {
15
+ }
16
+ };
17
+ const contentTypes = {};
18
+ function getPluginConfig(name) {
19
+ const config2 = strapi.plugin("strapi-plugin-map-box").config(name);
20
+ return config2;
21
+ }
22
+ const controller = ({ strapi: strapi2 }) => ({
23
+ async locationSearch(ctx) {
24
+ const query = ctx.params.query;
25
+ console.log("Query from URL:", query);
26
+ const result = await strapi2.plugin("strapi-plugin-map-box").service("service").locationSearch(query);
27
+ ctx.body = result;
28
+ },
29
+ async getSettings(ctx) {
30
+ const result = getPluginConfig("public");
31
+ console.log("result from getSettings", result);
32
+ ctx.body = result;
33
+ }
34
+ });
35
+ const controllers = {
36
+ controller
37
+ };
38
+ const middlewares = {};
39
+ const policies = {};
40
+ const contentAPIRoutes = [];
41
+ const adminAPIRoutes = [
42
+ {
43
+ method: "GET",
44
+ path: "/location-search/:query",
45
+ handler: "controller.locationSearch",
46
+ config: {
47
+ policies: ["admin::isAuthenticatedAdmin"]
48
+ }
49
+ },
50
+ {
51
+ method: "GET",
52
+ path: "/get-settings",
53
+ handler: "controller.getSettings",
54
+ config: {
55
+ policies: ["admin::isAuthenticatedAdmin"]
56
+ }
57
+ }
58
+ ];
59
+ const routes = {
60
+ "content-api": {
61
+ type: "content-api",
62
+ routes: contentAPIRoutes
63
+ },
64
+ "admin-api": {
65
+ type: "admin",
66
+ routes: adminAPIRoutes
67
+ }
68
+ };
69
+ const service = ({ strapi: strapi2 }) => ({
70
+ async locationSearch(query) {
71
+ try {
72
+ const pluginSettings = getPluginConfig("public");
73
+ console.log("pluginSettings", pluginSettings);
74
+ if (!pluginSettings.accessToken) {
75
+ return {
76
+ error: "MapBox access token is not configured. Please add your access token in the plugin settings.",
77
+ features: []
78
+ };
79
+ }
80
+ const MAPBOX_ACCESS_TOKEN = pluginSettings.accessToken;
81
+ console.log("MAPBOX_ACCESS_TOKEN", MAPBOX_ACCESS_TOKEN);
82
+ console.log("Searching for:", query);
83
+ const response = await fetch(
84
+ `https://api.mapbox.com/geocoding/v5/mapbox.places/${encodeURIComponent(query)}.json?access_token=${MAPBOX_ACCESS_TOKEN}`
85
+ );
86
+ if (!response.ok) {
87
+ throw new Error(`HTTP error! status: ${response.status}`);
88
+ }
89
+ const data = await response.json();
90
+ return data;
91
+ } catch (error) {
92
+ console.error("Error searching location:", error);
93
+ return {
94
+ error: error instanceof Error ? error.message : "An error occurred",
95
+ features: []
96
+ };
97
+ }
98
+ }
99
+ });
100
+ const services = {
101
+ service
102
+ };
103
+ const index = {
104
+ register,
105
+ bootstrap,
106
+ destroy,
107
+ config,
108
+ controllers,
109
+ routes,
110
+ services,
111
+ contentTypes,
112
+ policies,
113
+ middlewares
114
+ };
115
+ module.exports = index;
116
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../server/src/bootstrap.ts","../../server/src/destroy.ts","../../server/src/register.ts","../../server/src/config/index.ts","../../server/src/content-types/index.ts","../../server/src/utils/index.ts","../../server/src/controllers/controller.ts","../../server/src/controllers/index.ts","../../server/src/middlewares/index.ts","../../server/src/policies/index.ts","../../server/src/routes/content-api.ts","../../server/src/routes/admin-api.ts","../../server/src/routes/index.ts","../../server/src/services/service.ts","../../server/src/services/index.ts","../../server/src/index.ts"],"sourcesContent":["import type { Core } from '@strapi/strapi';\n\nconst bootstrap = ({ strapi }: { strapi: Core.Strapi }) => {\n // bootstrap phase\n};\n\nexport default bootstrap;\n","import type { Core } from '@strapi/strapi';\n\nconst destroy = ({ strapi }: { strapi: Core.Strapi }) => {\n // destroy phase\n};\n\nexport default destroy;\n","import type { Core } from '@strapi/strapi';\n\nconst register = ({ strapi }: { strapi: Core.Strapi }) => {\n strapi.customFields.register({\n name: 'map-box',\n type: 'json',\n });\n};\n\nexport default register;\n\n","export default {\n default: {},\n validator() {},\n};\n","export default {};\n","import { config } from '../../../types';\n\nexport function getPluginConfig(name: string) {\n const config = strapi.plugin('strapi-plugin-map-box').config<config['public']>(name);\n return config;\n}\n\n","import type { Core } from '@strapi/strapi';\nimport { getPluginConfig } from '../utils';\n\nconst controller = ({ strapi }: { strapi: Core.Strapi }) => ({\n async locationSearch(ctx) {\n // Extract query from URL path\n const query = ctx.params.query;\n console.log('Query from URL:', query);\n\n const result = await strapi\n .plugin('strapi-plugin-map-box')\n .service('service')\n .locationSearch(query);\n\n ctx.body = result;\n },\n\n async getSettings(ctx) {\n const result = getPluginConfig('public')\n console.log('result from getSettings', result);\n ctx.body = result;\n },\n});\n\nexport default controller;\n","import controller from './controller';\n\nexport default {\n controller,\n};\n","export default {};\n","export default {};\n","export default [\n \n];\n","export default [\n {\n method: 'GET',\n path: '/location-search/:query',\n handler: 'controller.locationSearch',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/get-settings',\n handler: 'controller.getSettings',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n];\n","import contentAPIRoutes from './content-api';\nimport adminAPIRoutes from './admin-api';\n\nconst routes = {\n 'content-api': {\n type: 'content-api',\n routes: contentAPIRoutes,\n },\n 'admin-api': {\n type: 'admin',\n routes: adminAPIRoutes,\n },\n};\n\nexport default routes;","import type { Core } from '@strapi/strapi';\nimport { getPluginConfig } from '../utils';\n\nexport interface MapboxFeature {\n id: string;\n type: string;\n place_type: string[];\n relevance: number;\n properties: {\n mapbox_id: string;\n wikidata?: string;\n };\n text: string;\n place_name: string;\n center: [number, number];\n geometry: {\n type: string;\n coordinates: [number, number];\n };\n}\n\nexport interface MapboxResponse {\n type: string;\n query: string[];\n features: MapboxFeature[];\n attribution: string;\n}\n\ninterface MapBoxConfig {\n accessToken: string;\n}\n\nconst service = ({ strapi }: { strapi: Core.Strapi }) => ({\n async locationSearch(query: string) {\n try {\n const pluginSettings = getPluginConfig('public');\n\n console.log('pluginSettings', pluginSettings);\n\n if (!pluginSettings.accessToken) {\n return {\n error:\n 'MapBox access token is not configured. Please add your access token in the plugin settings.',\n features: [],\n };\n }\n\n const MAPBOX_ACCESS_TOKEN = pluginSettings.accessToken;\n console.log('MAPBOX_ACCESS_TOKEN', MAPBOX_ACCESS_TOKEN);\n console.log('Searching for:', query);\n\n const response = await fetch(\n `https://api.mapbox.com/geocoding/v5/mapbox.places/${encodeURIComponent(query)}.json?access_token=${MAPBOX_ACCESS_TOKEN}`\n );\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const data = (await response.json()) as MapboxResponse;\n return data;\n } catch (error) {\n console.error('Error searching location:', error);\n return {\n error: error instanceof Error ? error.message : 'An error occurred',\n features: [],\n };\n }\n },\n});\n\nexport default service;\n","import service from './service';\n\nexport default {\n service,\n};\n","/**\n * Application methods\n */\nimport bootstrap from './bootstrap';\nimport destroy from './destroy';\nimport register from './register';\n\n/**\n * Plugin server methods\n */\nimport config from './config';\nimport contentTypes from './content-types';\nimport controllers from './controllers';\nimport middlewares from './middlewares';\nimport policies from './policies';\nimport routes from './routes';\nimport services from './services';\n\nexport default {\n register,\n bootstrap,\n destroy,\n config,\n controllers,\n routes,\n services,\n contentTypes,\n policies,\n middlewares,\n};\n"],"names":["strapi","config"],"mappings":";AAEA,MAAM,YAAY,CAAC,EAAE,QAAAA,cAAsC;AAE3D;ACFA,MAAM,UAAU,CAAC,EAAE,QAAAA,cAAsC;AAEzD;ACFA,MAAM,WAAW,CAAC,EAAE,QAAAA,cAAsC;AACxD,EAAAA,QAAO,aAAa,SAAS;AAAA,IAC3B,MAAM;AAAA,IACN,MAAM;AAAA,EAAA,CACP;AACH;ACPA,MAAe,SAAA;AAAA,EACb,SAAS,CAAC;AAAA,EACV,YAAY;AAAA,EAAA;AACd;ACHA,MAAA,eAAe,CAAC;ACET,SAAS,gBAAgB,MAAc;AAC5C,QAAMC,UAAS,OAAO,OAAO,uBAAuB,EAAE,OAAyB,IAAI;AAC5EA,SAAAA;AACT;ACFA,MAAM,aAAa,CAAC,EAAE,QAAAD,eAAuC;AAAA,EAC3D,MAAM,eAAe,KAAK;AAElB,UAAA,QAAQ,IAAI,OAAO;AACjB,YAAA,IAAI,mBAAmB,KAAK;AAE9B,UAAA,SAAS,MAAMA,QAClB,OAAO,uBAAuB,EAC9B,QAAQ,SAAS,EACjB,eAAe,KAAK;AAEvB,QAAI,OAAO;AAAA,EACb;AAAA,EAEA,MAAM,YAAY,KAAK;AACf,UAAA,SAAS,gBAAgB,QAAQ;AAC/B,YAAA,IAAI,2BAA2B,MAAM;AAC7C,QAAI,OAAO;AAAA,EAAA;AAEf;ACpBA,MAAe,cAAA;AAAA,EACb;AACF;ACJA,MAAA,cAAe,CAAC;ACAhB,MAAA,WAAe,CAAC;ACAhB,MAAA,mBAAe,CAEf;ACFA,MAAe,iBAAA;AAAA,EACb;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,QAAQ;AAAA,MACN,UAAU,CAAC,6BAA6B;AAAA,IAAA;AAAA,EAE5C;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,QAAQ;AAAA,MACN,UAAU,CAAC,6BAA6B;AAAA,IAAA;AAAA,EAC1C;AAEJ;ACdA,MAAM,SAAS;AAAA,EACb,eAAe;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,QAAQ;AAAA,EAAA;AAEZ;ACoBA,MAAM,UAAU,CAAC,EAAE,QAAAA,eAAuC;AAAA,EACxD,MAAM,eAAe,OAAe;AAC9B,QAAA;AACI,YAAA,iBAAiB,gBAAgB,QAAQ;AAEvC,cAAA,IAAI,kBAAkB,cAAc;AAExC,UAAA,CAAC,eAAe,aAAa;AACxB,eAAA;AAAA,UACL,OACE;AAAA,UACF,UAAU,CAAA;AAAA,QACZ;AAAA,MAAA;AAGF,YAAM,sBAAsB,eAAe;AACnC,cAAA,IAAI,uBAAuB,mBAAmB;AAC9C,cAAA,IAAI,kBAAkB,KAAK;AAEnC,YAAM,WAAW,MAAM;AAAA,QACrB,qDAAqD,mBAAmB,KAAK,CAAC,sBAAsB,mBAAmB;AAAA,MACzH;AAEI,UAAA,CAAC,SAAS,IAAI;AAChB,cAAM,IAAI,MAAM,uBAAuB,SAAS,MAAM,EAAE;AAAA,MAAA;AAGpD,YAAA,OAAQ,MAAM,SAAS,KAAK;AAC3B,aAAA;AAAA,aACA,OAAO;AACN,cAAA,MAAM,6BAA6B,KAAK;AACzC,aAAA;AAAA,QACL,OAAO,iBAAiB,QAAQ,MAAM,UAAU;AAAA,QAChD,UAAU,CAAA;AAAA,MACZ;AAAA,IAAA;AAAA,EACF;AAEJ;ACnEA,MAAe,WAAA;AAAA,EACb;AACF;ACcA,MAAe,QAAA;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;"}
@@ -0,0 +1,117 @@
1
+ const bootstrap = ({ strapi: strapi2 }) => {
2
+ };
3
+ const destroy = ({ strapi: strapi2 }) => {
4
+ };
5
+ const register = ({ strapi: strapi2 }) => {
6
+ strapi2.customFields.register({
7
+ name: "map-box",
8
+ type: "json"
9
+ });
10
+ };
11
+ const config = {
12
+ default: {},
13
+ validator() {
14
+ }
15
+ };
16
+ const contentTypes = {};
17
+ function getPluginConfig(name) {
18
+ const config2 = strapi.plugin("strapi-plugin-map-box").config(name);
19
+ return config2;
20
+ }
21
+ const controller = ({ strapi: strapi2 }) => ({
22
+ async locationSearch(ctx) {
23
+ const query = ctx.params.query;
24
+ console.log("Query from URL:", query);
25
+ const result = await strapi2.plugin("strapi-plugin-map-box").service("service").locationSearch(query);
26
+ ctx.body = result;
27
+ },
28
+ async getSettings(ctx) {
29
+ const result = getPluginConfig("public");
30
+ console.log("result from getSettings", result);
31
+ ctx.body = result;
32
+ }
33
+ });
34
+ const controllers = {
35
+ controller
36
+ };
37
+ const middlewares = {};
38
+ const policies = {};
39
+ const contentAPIRoutes = [];
40
+ const adminAPIRoutes = [
41
+ {
42
+ method: "GET",
43
+ path: "/location-search/:query",
44
+ handler: "controller.locationSearch",
45
+ config: {
46
+ policies: ["admin::isAuthenticatedAdmin"]
47
+ }
48
+ },
49
+ {
50
+ method: "GET",
51
+ path: "/get-settings",
52
+ handler: "controller.getSettings",
53
+ config: {
54
+ policies: ["admin::isAuthenticatedAdmin"]
55
+ }
56
+ }
57
+ ];
58
+ const routes = {
59
+ "content-api": {
60
+ type: "content-api",
61
+ routes: contentAPIRoutes
62
+ },
63
+ "admin-api": {
64
+ type: "admin",
65
+ routes: adminAPIRoutes
66
+ }
67
+ };
68
+ const service = ({ strapi: strapi2 }) => ({
69
+ async locationSearch(query) {
70
+ try {
71
+ const pluginSettings = getPluginConfig("public");
72
+ console.log("pluginSettings", pluginSettings);
73
+ if (!pluginSettings.accessToken) {
74
+ return {
75
+ error: "MapBox access token is not configured. Please add your access token in the plugin settings.",
76
+ features: []
77
+ };
78
+ }
79
+ const MAPBOX_ACCESS_TOKEN = pluginSettings.accessToken;
80
+ console.log("MAPBOX_ACCESS_TOKEN", MAPBOX_ACCESS_TOKEN);
81
+ console.log("Searching for:", query);
82
+ const response = await fetch(
83
+ `https://api.mapbox.com/geocoding/v5/mapbox.places/${encodeURIComponent(query)}.json?access_token=${MAPBOX_ACCESS_TOKEN}`
84
+ );
85
+ if (!response.ok) {
86
+ throw new Error(`HTTP error! status: ${response.status}`);
87
+ }
88
+ const data = await response.json();
89
+ return data;
90
+ } catch (error) {
91
+ console.error("Error searching location:", error);
92
+ return {
93
+ error: error instanceof Error ? error.message : "An error occurred",
94
+ features: []
95
+ };
96
+ }
97
+ }
98
+ });
99
+ const services = {
100
+ service
101
+ };
102
+ const index = {
103
+ register,
104
+ bootstrap,
105
+ destroy,
106
+ config,
107
+ controllers,
108
+ routes,
109
+ services,
110
+ contentTypes,
111
+ policies,
112
+ middlewares
113
+ };
114
+ export {
115
+ index as default
116
+ };
117
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../server/src/bootstrap.ts","../../server/src/destroy.ts","../../server/src/register.ts","../../server/src/config/index.ts","../../server/src/content-types/index.ts","../../server/src/utils/index.ts","../../server/src/controllers/controller.ts","../../server/src/controllers/index.ts","../../server/src/middlewares/index.ts","../../server/src/policies/index.ts","../../server/src/routes/content-api.ts","../../server/src/routes/admin-api.ts","../../server/src/routes/index.ts","../../server/src/services/service.ts","../../server/src/services/index.ts","../../server/src/index.ts"],"sourcesContent":["import type { Core } from '@strapi/strapi';\n\nconst bootstrap = ({ strapi }: { strapi: Core.Strapi }) => {\n // bootstrap phase\n};\n\nexport default bootstrap;\n","import type { Core } from '@strapi/strapi';\n\nconst destroy = ({ strapi }: { strapi: Core.Strapi }) => {\n // destroy phase\n};\n\nexport default destroy;\n","import type { Core } from '@strapi/strapi';\n\nconst register = ({ strapi }: { strapi: Core.Strapi }) => {\n strapi.customFields.register({\n name: 'map-box',\n type: 'json',\n });\n};\n\nexport default register;\n\n","export default {\n default: {},\n validator() {},\n};\n","export default {};\n","import { config } from '../../../types';\n\nexport function getPluginConfig(name: string) {\n const config = strapi.plugin('strapi-plugin-map-box').config<config['public']>(name);\n return config;\n}\n\n","import type { Core } from '@strapi/strapi';\nimport { getPluginConfig } from '../utils';\n\nconst controller = ({ strapi }: { strapi: Core.Strapi }) => ({\n async locationSearch(ctx) {\n // Extract query from URL path\n const query = ctx.params.query;\n console.log('Query from URL:', query);\n\n const result = await strapi\n .plugin('strapi-plugin-map-box')\n .service('service')\n .locationSearch(query);\n\n ctx.body = result;\n },\n\n async getSettings(ctx) {\n const result = getPluginConfig('public')\n console.log('result from getSettings', result);\n ctx.body = result;\n },\n});\n\nexport default controller;\n","import controller from './controller';\n\nexport default {\n controller,\n};\n","export default {};\n","export default {};\n","export default [\n \n];\n","export default [\n {\n method: 'GET',\n path: '/location-search/:query',\n handler: 'controller.locationSearch',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/get-settings',\n handler: 'controller.getSettings',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n];\n","import contentAPIRoutes from './content-api';\nimport adminAPIRoutes from './admin-api';\n\nconst routes = {\n 'content-api': {\n type: 'content-api',\n routes: contentAPIRoutes,\n },\n 'admin-api': {\n type: 'admin',\n routes: adminAPIRoutes,\n },\n};\n\nexport default routes;","import type { Core } from '@strapi/strapi';\nimport { getPluginConfig } from '../utils';\n\nexport interface MapboxFeature {\n id: string;\n type: string;\n place_type: string[];\n relevance: number;\n properties: {\n mapbox_id: string;\n wikidata?: string;\n };\n text: string;\n place_name: string;\n center: [number, number];\n geometry: {\n type: string;\n coordinates: [number, number];\n };\n}\n\nexport interface MapboxResponse {\n type: string;\n query: string[];\n features: MapboxFeature[];\n attribution: string;\n}\n\ninterface MapBoxConfig {\n accessToken: string;\n}\n\nconst service = ({ strapi }: { strapi: Core.Strapi }) => ({\n async locationSearch(query: string) {\n try {\n const pluginSettings = getPluginConfig('public');\n\n console.log('pluginSettings', pluginSettings);\n\n if (!pluginSettings.accessToken) {\n return {\n error:\n 'MapBox access token is not configured. Please add your access token in the plugin settings.',\n features: [],\n };\n }\n\n const MAPBOX_ACCESS_TOKEN = pluginSettings.accessToken;\n console.log('MAPBOX_ACCESS_TOKEN', MAPBOX_ACCESS_TOKEN);\n console.log('Searching for:', query);\n\n const response = await fetch(\n `https://api.mapbox.com/geocoding/v5/mapbox.places/${encodeURIComponent(query)}.json?access_token=${MAPBOX_ACCESS_TOKEN}`\n );\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const data = (await response.json()) as MapboxResponse;\n return data;\n } catch (error) {\n console.error('Error searching location:', error);\n return {\n error: error instanceof Error ? error.message : 'An error occurred',\n features: [],\n };\n }\n },\n});\n\nexport default service;\n","import service from './service';\n\nexport default {\n service,\n};\n","/**\n * Application methods\n */\nimport bootstrap from './bootstrap';\nimport destroy from './destroy';\nimport register from './register';\n\n/**\n * Plugin server methods\n */\nimport config from './config';\nimport contentTypes from './content-types';\nimport controllers from './controllers';\nimport middlewares from './middlewares';\nimport policies from './policies';\nimport routes from './routes';\nimport services from './services';\n\nexport default {\n register,\n bootstrap,\n destroy,\n config,\n controllers,\n routes,\n services,\n contentTypes,\n policies,\n middlewares,\n};\n"],"names":["strapi","config"],"mappings":"AAEA,MAAM,YAAY,CAAC,EAAE,QAAAA,cAAsC;AAE3D;ACFA,MAAM,UAAU,CAAC,EAAE,QAAAA,cAAsC;AAEzD;ACFA,MAAM,WAAW,CAAC,EAAE,QAAAA,cAAsC;AACxD,EAAAA,QAAO,aAAa,SAAS;AAAA,IAC3B,MAAM;AAAA,IACN,MAAM;AAAA,EAAA,CACP;AACH;ACPA,MAAe,SAAA;AAAA,EACb,SAAS,CAAC;AAAA,EACV,YAAY;AAAA,EAAA;AACd;ACHA,MAAA,eAAe,CAAC;ACET,SAAS,gBAAgB,MAAc;AAC5C,QAAMC,UAAS,OAAO,OAAO,uBAAuB,EAAE,OAAyB,IAAI;AAC5EA,SAAAA;AACT;ACFA,MAAM,aAAa,CAAC,EAAE,QAAAD,eAAuC;AAAA,EAC3D,MAAM,eAAe,KAAK;AAElB,UAAA,QAAQ,IAAI,OAAO;AACjB,YAAA,IAAI,mBAAmB,KAAK;AAE9B,UAAA,SAAS,MAAMA,QAClB,OAAO,uBAAuB,EAC9B,QAAQ,SAAS,EACjB,eAAe,KAAK;AAEvB,QAAI,OAAO;AAAA,EACb;AAAA,EAEA,MAAM,YAAY,KAAK;AACf,UAAA,SAAS,gBAAgB,QAAQ;AAC/B,YAAA,IAAI,2BAA2B,MAAM;AAC7C,QAAI,OAAO;AAAA,EAAA;AAEf;ACpBA,MAAe,cAAA;AAAA,EACb;AACF;ACJA,MAAA,cAAe,CAAC;ACAhB,MAAA,WAAe,CAAC;ACAhB,MAAA,mBAAe,CAEf;ACFA,MAAe,iBAAA;AAAA,EACb;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,QAAQ;AAAA,MACN,UAAU,CAAC,6BAA6B;AAAA,IAAA;AAAA,EAE5C;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,QAAQ;AAAA,MACN,UAAU,CAAC,6BAA6B;AAAA,IAAA;AAAA,EAC1C;AAEJ;ACdA,MAAM,SAAS;AAAA,EACb,eAAe;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,QAAQ;AAAA,EAAA;AAEZ;ACoBA,MAAM,UAAU,CAAC,EAAE,QAAAA,eAAuC;AAAA,EACxD,MAAM,eAAe,OAAe;AAC9B,QAAA;AACI,YAAA,iBAAiB,gBAAgB,QAAQ;AAEvC,cAAA,IAAI,kBAAkB,cAAc;AAExC,UAAA,CAAC,eAAe,aAAa;AACxB,eAAA;AAAA,UACL,OACE;AAAA,UACF,UAAU,CAAA;AAAA,QACZ;AAAA,MAAA;AAGF,YAAM,sBAAsB,eAAe;AACnC,cAAA,IAAI,uBAAuB,mBAAmB;AAC9C,cAAA,IAAI,kBAAkB,KAAK;AAEnC,YAAM,WAAW,MAAM;AAAA,QACrB,qDAAqD,mBAAmB,KAAK,CAAC,sBAAsB,mBAAmB;AAAA,MACzH;AAEI,UAAA,CAAC,SAAS,IAAI;AAChB,cAAM,IAAI,MAAM,uBAAuB,SAAS,MAAM,EAAE;AAAA,MAAA;AAGpD,YAAA,OAAQ,MAAM,SAAS,KAAK;AAC3B,aAAA;AAAA,aACA,OAAO;AACN,cAAA,MAAM,6BAA6B,KAAK;AACzC,aAAA;AAAA,QACL,OAAO,iBAAiB,QAAQ,MAAM,UAAU;AAAA,QAChD,UAAU,CAAA;AAAA,MACZ;AAAA,IAAA;AAAA,EACF;AAEJ;ACnEA,MAAe,WAAA;AAAA,EACb;AACF;ACcA,MAAe,QAAA;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;"}
@@ -0,0 +1,5 @@
1
+ import type { Core } from '@strapi/strapi';
2
+ declare const bootstrap: ({ strapi }: {
3
+ strapi: Core.Strapi;
4
+ }) => void;
5
+ export default bootstrap;
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ default: {};
3
+ validator(): void;
4
+ };
5
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: {};
2
+ export default _default;
@@ -0,0 +1,8 @@
1
+ import type { Core } from '@strapi/strapi';
2
+ declare const controller: ({ strapi }: {
3
+ strapi: Core.Strapi;
4
+ }) => {
5
+ locationSearch(ctx: any): Promise<void>;
6
+ getSettings(ctx: any): Promise<void>;
7
+ };
8
+ export default controller;
@@ -0,0 +1,9 @@
1
+ declare const _default: {
2
+ controller: ({ strapi }: {
3
+ strapi: import("@strapi/types/dist/core").Strapi;
4
+ }) => {
5
+ locationSearch(ctx: any): Promise<void>;
6
+ getSettings(ctx: any): Promise<void>;
7
+ };
8
+ };
9
+ export default _default;
@@ -0,0 +1,5 @@
1
+ import type { Core } from '@strapi/strapi';
2
+ declare const destroy: ({ strapi }: {
3
+ strapi: Core.Strapi;
4
+ }) => void;
5
+ export default destroy;
@@ -0,0 +1,54 @@
1
+ declare const _default: {
2
+ register: ({ strapi }: {
3
+ strapi: import("@strapi/types/dist/core").Strapi;
4
+ }) => void;
5
+ bootstrap: ({ strapi }: {
6
+ strapi: import("@strapi/types/dist/core").Strapi;
7
+ }) => void;
8
+ destroy: ({ strapi }: {
9
+ strapi: import("@strapi/types/dist/core").Strapi;
10
+ }) => void;
11
+ config: {
12
+ default: {};
13
+ validator(): void;
14
+ };
15
+ controllers: {
16
+ controller: ({ strapi }: {
17
+ strapi: import("@strapi/types/dist/core").Strapi;
18
+ }) => {
19
+ locationSearch(ctx: any): Promise<void>;
20
+ getSettings(ctx: any): Promise<void>;
21
+ };
22
+ };
23
+ routes: {
24
+ 'content-api': {
25
+ type: string;
26
+ routes: any[];
27
+ };
28
+ 'admin-api': {
29
+ type: string;
30
+ routes: {
31
+ method: string;
32
+ path: string;
33
+ handler: string;
34
+ config: {
35
+ policies: string[];
36
+ };
37
+ }[];
38
+ };
39
+ };
40
+ services: {
41
+ service: ({ strapi }: {
42
+ strapi: import("@strapi/types/dist/core").Strapi;
43
+ }) => {
44
+ locationSearch(query: string): Promise<import("./services/service").MapboxResponse | {
45
+ error: string;
46
+ features: any[];
47
+ }>;
48
+ };
49
+ };
50
+ contentTypes: {};
51
+ policies: {};
52
+ middlewares: {};
53
+ };
54
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: {};
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: {};
2
+ export default _default;
@@ -0,0 +1,5 @@
1
+ import type { Core } from '@strapi/strapi';
2
+ declare const register: ({ strapi }: {
3
+ strapi: Core.Strapi;
4
+ }) => void;
5
+ export default register;
@@ -0,0 +1,9 @@
1
+ declare const _default: {
2
+ method: string;
3
+ path: string;
4
+ handler: string;
5
+ config: {
6
+ policies: string[];
7
+ };
8
+ }[];
9
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: any[];
2
+ export default _default;
@@ -0,0 +1,18 @@
1
+ declare const routes: {
2
+ 'content-api': {
3
+ type: string;
4
+ routes: any[];
5
+ };
6
+ 'admin-api': {
7
+ type: string;
8
+ routes: {
9
+ method: string;
10
+ path: string;
11
+ handler: string;
12
+ config: {
13
+ policies: string[];
14
+ };
15
+ }[];
16
+ };
17
+ };
18
+ export default routes;
@@ -0,0 +1,11 @@
1
+ declare const _default: {
2
+ service: ({ strapi }: {
3
+ strapi: import("@strapi/types/dist/core").Strapi;
4
+ }) => {
5
+ locationSearch(query: string): Promise<import("./service").MapboxResponse | {
6
+ error: string;
7
+ features: any[];
8
+ }>;
9
+ };
10
+ };
11
+ export default _default;
@@ -0,0 +1,33 @@
1
+ import type { Core } from '@strapi/strapi';
2
+ export interface MapboxFeature {
3
+ id: string;
4
+ type: string;
5
+ place_type: string[];
6
+ relevance: number;
7
+ properties: {
8
+ mapbox_id: string;
9
+ wikidata?: string;
10
+ };
11
+ text: string;
12
+ place_name: string;
13
+ center: [number, number];
14
+ geometry: {
15
+ type: string;
16
+ coordinates: [number, number];
17
+ };
18
+ }
19
+ export interface MapboxResponse {
20
+ type: string;
21
+ query: string[];
22
+ features: MapboxFeature[];
23
+ attribution: string;
24
+ }
25
+ declare const service: ({ strapi }: {
26
+ strapi: Core.Strapi;
27
+ }) => {
28
+ locationSearch(query: string): Promise<MapboxResponse | {
29
+ error: string;
30
+ features: any[];
31
+ }>;
32
+ };
33
+ export default service;
@@ -0,0 +1,4 @@
1
+ export declare function getPluginConfig(name: string): {
2
+ accessToken: string;
3
+ debugMode: boolean;
4
+ };
@@ -0,0 +1,6 @@
1
+ export type config = {
2
+ public: {
3
+ accessToken: string;
4
+ debugMode: boolean;
5
+ };
6
+ };
package/package.json ADDED
@@ -0,0 +1,89 @@
1
+ {
2
+ "version": "0.0.1",
3
+ "keywords": [
4
+ "mapbox",
5
+ "map",
6
+ "location",
7
+ "mapbox-plugin",
8
+ "mapbox-map",
9
+ "mapbox-location"
10
+ ],
11
+ "type": "commonjs",
12
+ "exports": {
13
+ "./package.json": "./package.json",
14
+ "./strapi-admin": {
15
+ "types": "./dist/admin/src/index.d.ts",
16
+ "source": "./admin/src/index.ts",
17
+ "import": "./dist/admin/index.mjs",
18
+ "require": "./dist/admin/index.js",
19
+ "default": "./dist/admin/index.js"
20
+ },
21
+ "./strapi-server": {
22
+ "types": "./dist/server/src/index.d.ts",
23
+ "source": "./server/src/index.ts",
24
+ "import": "./dist/server/index.mjs",
25
+ "require": "./dist/server/index.js",
26
+ "default": "./dist/server/index.js"
27
+ }
28
+ },
29
+ "files": [
30
+ "dist"
31
+ ],
32
+ "scripts": {
33
+ "build": "strapi-plugin build",
34
+ "watch": "strapi-plugin watch",
35
+ "watch:link": "strapi-plugin watch:link",
36
+ "verify": "strapi-plugin verify",
37
+ "test:ts:front": "run -T tsc -p admin/tsconfig.json",
38
+ "test:ts:back": "run -T tsc -p server/tsconfig.json"
39
+ },
40
+ "dependencies": {
41
+ "@mapbox/search-js-react": "^1.1.0",
42
+ "@strapi/design-system": "^2.0.0-rc.25",
43
+ "@strapi/icons": "^2.0.0-rc.25",
44
+ "mapbox-gl": "^3.12.0",
45
+ "react-intl": "^7.1.11",
46
+ "react-map-gl": "^8.0.4",
47
+ "use-debounce": "^10.0.5"
48
+ },
49
+ "devDependencies": {
50
+ "@strapi/sdk-plugin": "^5.3.2",
51
+ "@strapi/strapi": "^5.15.1",
52
+ "@strapi/typescript-utils": "^5.15.1",
53
+ "@types/mapbox-gl": "^3.4.1",
54
+ "@types/react": "^19.1.8",
55
+ "@types/react-dom": "^19.1.6",
56
+ "prettier": "^3.5.3",
57
+ "react": "^18.3.1",
58
+ "react-dom": "^18.3.1",
59
+ "react-router-dom": "^6.30.1",
60
+ "styled-components": "^6.1.18",
61
+ "typescript": "^5.8.3"
62
+ },
63
+ "peerDependencies": {
64
+ "@strapi/sdk-plugin": "^5.3.2",
65
+ "@strapi/strapi": "^5.15.1",
66
+ "react": "^18.3.1",
67
+ "react-dom": "^18.3.1",
68
+ "react-router-dom": "^6.30.1",
69
+ "styled-components": "^6.1.18"
70
+ },
71
+ "strapi": {
72
+ "kind": "plugin",
73
+ "name": "strapi-plugin-map-box",
74
+ "displayName": "MapBox",
75
+ "description": "This plugin allows you to add a map field to your Strapi content types. It uses MapBox to display the map and search for locations."
76
+ },
77
+ "repository": {
78
+ "type": "git",
79
+ "url": "https://github.com/PaulBratslavsky/strapi-plugin-map-box"
80
+ },
81
+ "name": "strapi-plugin-map-box",
82
+ "description": "MapBox map field.",
83
+ "author": {
84
+ "name": "Paul Bratslavsky",
85
+ "email": "paul.braatslavsky@strapi.io",
86
+ "url": "https://github.com/PaulBratslavsky"
87
+ },
88
+ "license": "MIT"
89
+ }