{"version":3,"file":"index.mjs","sources":["../../server/src/bootstrap.ts","../../server/src/register.ts","../../server/src/content-types/config.ts","../../server/src/content-types/index.ts","../../server/src/controllers/config.ts","../../server/src/controllers/index.ts","../../server/src/routes/content-api.ts","../../server/src/routes/index.ts","../../server/src/services/config-service.ts","../../server/src/services/index.ts","../../server/src/index.ts"],"sourcesContent":["import type { Core } from '@strapi/strapi';\n\nconst accessActions = [\n    {\n        section: 'plugins',\n        displayName: 'View / Edit Configuration',\n        uid: 'config',\n        pluginName: 'strapi-google-maps',\n    },\n];\n\nconst bootstrap = async ({ strapi }: { strapi: Core.Strapi }) => {\n    // bootstrap phase\n    await strapi.admin.services.permission.actionProvider.registerMany(\n        accessActions\n    );\n};\n\nexport default bootstrap;\n","import type { Core } from '@strapi/strapi';\n\nconst register = ({ strapi }: { strapi: Core.Strapi }) => {\n    strapi.customFields.register({\n        name: 'location-picker',\n        plugin: 'strapi-google-maps',\n        type: 'json',\n    });\n};\n\nexport default register;\n","import { Config } from 'src/interface';\n\nconst schema = {\n    kind: 'singleType',\n    collectionName: 'google_maps_configs',\n    info: {\n        singularName: 'config',\n        pluralName: 'configs',\n        displayName: 'Google Maps Config',\n    },\n    options: {\n        draftAndPublish: false,\n    },\n    pluginOptions: {\n        'content-manager': {\n            visible: false,\n        },\n        'content-type-builder': {\n            visible: false,\n        },\n    },\n    attributes: {\n        googleMapsKey: {\n            type: 'string',\n            default: '',\n            required: true,\n            configurable: false,\n        },\n        defaultLatitude: {\n            type: 'string',\n            default: '',\n            required: true,\n            configurable: false,\n        },\n        defaultLongitude: {\n            type: 'string',\n            default: '',\n            required: true,\n            configurable: false,\n        },\n    },\n};\n\nexport default schema;\n\nexport function sanitizeConfigInput(data: object, ctx: any): Promise<Config> {\n    // @ts-ignore\n    return strapi.contentAPI.sanitize.input(data, schema, { auth: ctx.state.auth });\n}\n","import config from \"./config\";\n\nexport default {\n    config: { schema: config },\n};\n","import { Core } from '@strapi/strapi';\nimport { sanitizeConfigInput } from '../content-types/config';\nimport { Config } from 'src/interface';\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => ({\n    async index(ctx: any) {\n        let config: Config = await strapi\n            .plugin('strapi-google-maps')\n            .service('config')\n            .retrieve();\n\n        if (config.googleMapsKey == '' && process.env.GOOGLE_MAPS_API_KEY) {\n            config.googleMapsKey = process.env.GOOGLE_MAPS_API_KEY;\n        }\n\n        ctx.body = config;\n    },\n\n    async update(ctx: any) {\n        const data: Config = await sanitizeConfigInput(ctx.request.body, ctx);\n\n        const config: Config = await strapi\n            .plugin('strapi-google-maps')\n            .service('config')\n            .update(data);\n\n        ctx.body = config;\n\n    },\n});","import config from './config';\nexport default {\n    config,\n};\n","export default [\n    {\n        method: 'GET',\n        path: '/config',\n        // name of the controller file & the method.\n        handler: 'config.index',\n        config: {\n            // TODO - Fix this\n            // policies: ['admin::isAuthenticatedAdmin'],\n            policies: [],\n            auth: false,\n        },\n    },\n    {\n        method: 'PUT',\n        path: '/config',\n        handler: 'config.update',\n        config: {\n            // TODO - Fix this\n            // policies: [\n            //     'admin::isAuthenticatedAdmin',\n            //     {\n            //         name: 'admin::hasPermissions',\n            //         config: {\n            //             actions: ['plugin::strapi-google-maps.config'],\n            //         },\n            //     },\n            // ],\n            policies: [],\n            auth: false,\n        },\n    },\n];\n","import contentAPIRoutes from './content-api';\n\nconst routes = {\n    'content-api': {\n        type: 'content-api',\n        routes: contentAPIRoutes,\n    },\n};\n\nexport default routes;\n","import { Core } from '@strapi/strapi';\nimport { Config } from 'src/interface';\n\nconst uid = 'plugin::strapi-google-maps.config';\nconst fields = ['googleMapsKey', 'defaultLatitude', 'defaultLongitude'];\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => ({\n    async retrieve(): Promise<Config> {\n        let config: Config | null;\n\n        /* Find existing config */\n        // @ts-ignore\n        config = await strapi.entityService.findMany(uid, {\n            fields,\n        });\n\n        /* Create config if not found */\n        if (!config) {\n            config = (await strapi.db.query(uid).create({\n                data: {},\n                select: fields,\n            })) as Config;\n        }\n\n        return config;\n    },\n\n    async update({ data }): Promise<Config> {\n        /* Retrieve config */\n        let config: Config = await this.retrieve();\n\n        /* Update config */\n        config = (await strapi.db.query(uid).update({\n            where: {\n                id: config.id,\n            },\n            data: {\n                ...data,\n                fields,\n            },\n        })) as Config;\n\n        return config;\n    },\n});","import config from './config-service';\n\nexport default {\n    config,\n};\n","/**\n * Application methods\n */\nimport bootstrap from './bootstrap';\nimport register from './register';\n\n/**\n * Plugin server methods\n */\nimport contentTypes from './content-types';\nimport controllers from './controllers';\nimport routes from './routes';\nimport services from './services';\n\nexport default {\n    register,\n    bootstrap,\n    controllers,\n    routes,\n    services,\n    contentTypes,\n};\n"],"names":["strapi","config"],"mappings":"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"}