buro26-strapi-graphql 0.0.1 → 0.0.3
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.
- package/package.json +2 -3
- package/server/index.d.mts +38 -0
- package/server/index.d.ts +38 -0
- package/server/index.js +96 -0
- package/server/index.js.map +1 -0
- package/server/index.mjs +66 -0
- package/server/index.mjs.map +1 -0
package/package.json
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "buro26-strapi-graphql",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "Extension and utilities for Strapi GraphQL",
|
|
5
|
-
"main": "./strapi-server.js",
|
|
6
|
-
"module": "./server/server.mjs",
|
|
7
5
|
"types": "./server/server.d.ts",
|
|
8
6
|
"files": [
|
|
9
7
|
"dist",
|
|
8
|
+
"server",
|
|
10
9
|
"package.json",
|
|
11
10
|
"strapi-server.js"
|
|
12
11
|
],
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Strapi } from '@strapi/strapi';
|
|
2
|
+
|
|
3
|
+
interface GraphQLExtension {
|
|
4
|
+
/**
|
|
5
|
+
* Called when the extension is initialized, use this to perform any initialization logic
|
|
6
|
+
* E.g. disabled CRUDs
|
|
7
|
+
* @see https://docs.strapi.io/developer-docs/latest/plugins/graphql.html#disabling-operations-in-the-shadow-crud
|
|
8
|
+
*/
|
|
9
|
+
init?: () => void;
|
|
10
|
+
/**
|
|
11
|
+
* Return array the types for the extension
|
|
12
|
+
* Use Nexus to define types
|
|
13
|
+
*/
|
|
14
|
+
getTypes: () => any[];
|
|
15
|
+
/**
|
|
16
|
+
* Return resolvers for the extension
|
|
17
|
+
* Return an object with Query and Mutation resolvers
|
|
18
|
+
*/
|
|
19
|
+
resolvers: () => {
|
|
20
|
+
Query: any;
|
|
21
|
+
Mutation: any;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Return resolver config for the extension
|
|
25
|
+
* This is used to configure middlewares and other resolver options
|
|
26
|
+
* @see https://docs.strapi.io/developer-docs/latest/plugins/graphql.html#extending-the-schema
|
|
27
|
+
*/
|
|
28
|
+
getResolverConfig: () => any;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
declare const createGraphQLExtension: (factory: (strapi: Strapi) => GraphQLExtension) => GraphQLExtension;
|
|
32
|
+
declare const _default: {
|
|
33
|
+
register: ({ strapi }: {
|
|
34
|
+
strapi: Strapi;
|
|
35
|
+
}) => Promise<void>;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export { createGraphQLExtension, _default as default };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Strapi } from '@strapi/strapi';
|
|
2
|
+
|
|
3
|
+
interface GraphQLExtension {
|
|
4
|
+
/**
|
|
5
|
+
* Called when the extension is initialized, use this to perform any initialization logic
|
|
6
|
+
* E.g. disabled CRUDs
|
|
7
|
+
* @see https://docs.strapi.io/developer-docs/latest/plugins/graphql.html#disabling-operations-in-the-shadow-crud
|
|
8
|
+
*/
|
|
9
|
+
init?: () => void;
|
|
10
|
+
/**
|
|
11
|
+
* Return array the types for the extension
|
|
12
|
+
* Use Nexus to define types
|
|
13
|
+
*/
|
|
14
|
+
getTypes: () => any[];
|
|
15
|
+
/**
|
|
16
|
+
* Return resolvers for the extension
|
|
17
|
+
* Return an object with Query and Mutation resolvers
|
|
18
|
+
*/
|
|
19
|
+
resolvers: () => {
|
|
20
|
+
Query: any;
|
|
21
|
+
Mutation: any;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Return resolver config for the extension
|
|
25
|
+
* This is used to configure middlewares and other resolver options
|
|
26
|
+
* @see https://docs.strapi.io/developer-docs/latest/plugins/graphql.html#extending-the-schema
|
|
27
|
+
*/
|
|
28
|
+
getResolverConfig: () => any;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
declare const createGraphQLExtension: (factory: (strapi: Strapi) => GraphQLExtension) => GraphQLExtension;
|
|
32
|
+
declare const _default: {
|
|
33
|
+
register: ({ strapi }: {
|
|
34
|
+
strapi: Strapi;
|
|
35
|
+
}) => Promise<void>;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export { createGraphQLExtension, _default as default };
|
package/server/index.js
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/index.ts
|
|
31
|
+
var src_exports = {};
|
|
32
|
+
__export(src_exports, {
|
|
33
|
+
createGraphQLExtension: () => createGraphQLExtension,
|
|
34
|
+
default: () => src_default
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(src_exports);
|
|
37
|
+
|
|
38
|
+
// src/utils/files.ts
|
|
39
|
+
var import_fs = __toESM(require("fs"));
|
|
40
|
+
var getAllFiles = (dirPath, arrayOfFiles = []) => {
|
|
41
|
+
const files = import_fs.default.readdirSync(dirPath);
|
|
42
|
+
files.forEach((file) => {
|
|
43
|
+
if (import_fs.default.statSync(dirPath + "/" + file).isDirectory()) {
|
|
44
|
+
arrayOfFiles = getAllFiles(dirPath + "/" + file, arrayOfFiles);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (!dirPath.endsWith("/graphql") && !dirPath.includes("/graphql/")) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const ext = require(`${dirPath}/${file.replace(".js", "")}`);
|
|
51
|
+
if (!ext) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
arrayOfFiles.push({
|
|
55
|
+
...ext,
|
|
56
|
+
...ext.default || {}
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
return arrayOfFiles;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
// src/register.ts
|
|
63
|
+
var import_nexus = require("nexus");
|
|
64
|
+
var register = async ({ strapi: strapi2 }) => {
|
|
65
|
+
console.log({
|
|
66
|
+
dirs: strapi2.dirs
|
|
67
|
+
});
|
|
68
|
+
const extensions = [
|
|
69
|
+
...getAllFiles(strapi2.dirs.dist.src)
|
|
70
|
+
];
|
|
71
|
+
const extensionService = strapi2.plugin("graphql").service("extension");
|
|
72
|
+
extensionService.use(() => ({
|
|
73
|
+
plugins: [
|
|
74
|
+
(0, import_nexus.fieldAuthorizePlugin)()
|
|
75
|
+
]
|
|
76
|
+
}));
|
|
77
|
+
for (const extension of extensions) {
|
|
78
|
+
extension?.init ? extension.init() : null;
|
|
79
|
+
extensionService.use(() => ({
|
|
80
|
+
types: extension?.getTypes?.() ?? [],
|
|
81
|
+
resolvers: extension?.resolvers?.() ?? { Query: {}, Mutation: {} },
|
|
82
|
+
resolversConfig: extension?.getResolverConfig?.() ?? {}
|
|
83
|
+
}));
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
// src/index.ts
|
|
88
|
+
var createGraphQLExtension = (factory) => factory(strapi);
|
|
89
|
+
var src_default = {
|
|
90
|
+
register
|
|
91
|
+
};
|
|
92
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
93
|
+
0 && (module.exports = {
|
|
94
|
+
createGraphQLExtension
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/utils/files.ts","../src/register.ts"],"sourcesContent":["import {register} from \"@/register\";\r\nimport {type Strapi} from \"@strapi/strapi\";\r\nimport {type GraphQLExtension} from \"@/types\";\r\n\r\nexport const createGraphQLExtension = (factory: (strapi: Strapi) => GraphQLExtension): GraphQLExtension => factory(strapi)\r\n\r\nexport default {\r\n register,\r\n}","import fs from \"fs\";\r\nimport {GraphQLExtension} from \"@/types\";\r\n\r\nexport const getAllFiles = (dirPath: string, arrayOfFiles: GraphQLExtension[] = []): GraphQLExtension[] => {\r\n const files = fs.readdirSync(dirPath)\r\n\r\n files.forEach((file) => {\r\n if (fs.statSync(dirPath + \"/\" + file).isDirectory()) {\r\n arrayOfFiles = getAllFiles(dirPath + \"/\" + file, arrayOfFiles)\r\n\r\n return\r\n }\r\n\r\n if (!dirPath.endsWith('/graphql') && !dirPath.includes('/graphql/')) {\r\n return\r\n }\r\n\r\n const ext = require(`${dirPath}/${file.replace('.js', '')}`)\r\n\r\n if (!ext) {\r\n return\r\n }\r\n\r\n arrayOfFiles.push({\r\n ...ext,\r\n ...(ext.default || {})\r\n })\r\n })\r\n\r\n return arrayOfFiles\r\n}","import {type Strapi} from \"@strapi/strapi\";\r\nimport {GraphQLExtension} from \"@/types\";\r\nimport {getAllFiles} from \"@/utils/files\";\r\nimport {fieldAuthorizePlugin} from \"nexus\";\r\n\r\n\r\nexport const register = async ({strapi}: { strapi: Strapi }) => {\r\n console.log({\r\n dirs: strapi.dirs,\r\n })\r\n const extensions: GraphQLExtension[] = [\r\n ...getAllFiles(strapi.dirs.dist.src),\r\n ]\r\n const extensionService = strapi.plugin('graphql').service('extension')\r\n\r\n extensionService.use(() => ({\r\n plugins: [\r\n fieldAuthorizePlugin(),\r\n ]\r\n }))\r\n\r\n for (const extension of extensions) {\r\n extension?.init ? extension.init() : null\r\n extensionService.use(() => ({\r\n types: extension?.getTypes?.() ?? [],\r\n resolvers: extension?.resolvers?.() ?? {Query: {}, Mutation: {}},\r\n resolversConfig: extension?.getResolverConfig?.() ?? {},\r\n }))\r\n }\r\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,gBAAe;AAGR,IAAM,cAAc,CAAC,SAAiB,eAAmC,CAAC,MAA0B;AACvG,QAAM,QAAQ,UAAAA,QAAG,YAAY,OAAO;AAEpC,QAAM,QAAQ,CAAC,SAAS;AACpB,QAAI,UAAAA,QAAG,SAAS,UAAU,MAAM,IAAI,EAAE,YAAY,GAAG;AACjD,qBAAe,YAAY,UAAU,MAAM,MAAM,YAAY;AAE7D;AAAA,IACJ;AAEA,QAAI,CAAC,QAAQ,SAAS,UAAU,KAAK,CAAC,QAAQ,SAAS,WAAW,GAAG;AACjE;AAAA,IACJ;AAEA,UAAM,MAAM,QAAQ,GAAG,OAAO,IAAI,KAAK,QAAQ,OAAO,EAAE,CAAC,EAAE;AAE3D,QAAI,CAAC,KAAK;AACN;AAAA,IACJ;AAEA,iBAAa,KAAK;AAAA,MACd,GAAG;AAAA,MACH,GAAI,IAAI,WAAW,CAAC;AAAA,IACxB,CAAC;AAAA,EACL,CAAC;AAED,SAAO;AACX;;;AC3BA,mBAAmC;AAG5B,IAAM,WAAW,OAAO,EAAC,QAAAC,QAAM,MAA0B;AAC5D,UAAQ,IAAI;AAAA,IACR,MAAMA,QAAO;AAAA,EACjB,CAAC;AACD,QAAM,aAAiC;AAAA,IACnC,GAAG,YAAYA,QAAO,KAAK,KAAK,GAAG;AAAA,EACvC;AACA,QAAM,mBAAmBA,QAAO,OAAO,SAAS,EAAE,QAAQ,WAAW;AAErE,mBAAiB,IAAI,OAAO;AAAA,IACxB,SAAS;AAAA,UACL,mCAAqB;AAAA,IACzB;AAAA,EACJ,EAAE;AAEF,aAAW,aAAa,YAAY;AAChC,eAAW,OAAO,UAAU,KAAK,IAAI;AACrC,qBAAiB,IAAI,OAAO;AAAA,MACxB,OAAO,WAAW,WAAW,KAAK,CAAC;AAAA,MACnC,WAAW,WAAW,YAAY,KAAK,EAAC,OAAO,CAAC,GAAG,UAAU,CAAC,EAAC;AAAA,MAC/D,iBAAiB,WAAW,oBAAoB,KAAK,CAAC;AAAA,IAC1D,EAAE;AAAA,EACN;AACJ;;;AFzBO,IAAM,yBAAyB,CAAC,YAAoE,QAAQ,MAAM;AAEzH,IAAO,cAAQ;AAAA,EACX;AACJ;","names":["fs","strapi"]}
|
package/server/index.mjs
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
2
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
3
|
+
}) : x)(function(x) {
|
|
4
|
+
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
5
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
// src/utils/files.ts
|
|
9
|
+
import fs from "fs";
|
|
10
|
+
var getAllFiles = (dirPath, arrayOfFiles = []) => {
|
|
11
|
+
const files = fs.readdirSync(dirPath);
|
|
12
|
+
files.forEach((file) => {
|
|
13
|
+
if (fs.statSync(dirPath + "/" + file).isDirectory()) {
|
|
14
|
+
arrayOfFiles = getAllFiles(dirPath + "/" + file, arrayOfFiles);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (!dirPath.endsWith("/graphql") && !dirPath.includes("/graphql/")) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const ext = __require(`${dirPath}/${file.replace(".js", "")}`);
|
|
21
|
+
if (!ext) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
arrayOfFiles.push({
|
|
25
|
+
...ext,
|
|
26
|
+
...ext.default || {}
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
return arrayOfFiles;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
// src/register.ts
|
|
33
|
+
import { fieldAuthorizePlugin } from "nexus";
|
|
34
|
+
var register = async ({ strapi: strapi2 }) => {
|
|
35
|
+
console.log({
|
|
36
|
+
dirs: strapi2.dirs
|
|
37
|
+
});
|
|
38
|
+
const extensions = [
|
|
39
|
+
...getAllFiles(strapi2.dirs.dist.src)
|
|
40
|
+
];
|
|
41
|
+
const extensionService = strapi2.plugin("graphql").service("extension");
|
|
42
|
+
extensionService.use(() => ({
|
|
43
|
+
plugins: [
|
|
44
|
+
fieldAuthorizePlugin()
|
|
45
|
+
]
|
|
46
|
+
}));
|
|
47
|
+
for (const extension of extensions) {
|
|
48
|
+
extension?.init ? extension.init() : null;
|
|
49
|
+
extensionService.use(() => ({
|
|
50
|
+
types: extension?.getTypes?.() ?? [],
|
|
51
|
+
resolvers: extension?.resolvers?.() ?? { Query: {}, Mutation: {} },
|
|
52
|
+
resolversConfig: extension?.getResolverConfig?.() ?? {}
|
|
53
|
+
}));
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
// src/index.ts
|
|
58
|
+
var createGraphQLExtension = (factory) => factory(strapi);
|
|
59
|
+
var src_default = {
|
|
60
|
+
register
|
|
61
|
+
};
|
|
62
|
+
export {
|
|
63
|
+
createGraphQLExtension,
|
|
64
|
+
src_default as default
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/files.ts","../src/register.ts","../src/index.ts"],"sourcesContent":["import fs from \"fs\";\r\nimport {GraphQLExtension} from \"@/types\";\r\n\r\nexport const getAllFiles = (dirPath: string, arrayOfFiles: GraphQLExtension[] = []): GraphQLExtension[] => {\r\n const files = fs.readdirSync(dirPath)\r\n\r\n files.forEach((file) => {\r\n if (fs.statSync(dirPath + \"/\" + file).isDirectory()) {\r\n arrayOfFiles = getAllFiles(dirPath + \"/\" + file, arrayOfFiles)\r\n\r\n return\r\n }\r\n\r\n if (!dirPath.endsWith('/graphql') && !dirPath.includes('/graphql/')) {\r\n return\r\n }\r\n\r\n const ext = require(`${dirPath}/${file.replace('.js', '')}`)\r\n\r\n if (!ext) {\r\n return\r\n }\r\n\r\n arrayOfFiles.push({\r\n ...ext,\r\n ...(ext.default || {})\r\n })\r\n })\r\n\r\n return arrayOfFiles\r\n}","import {type Strapi} from \"@strapi/strapi\";\r\nimport {GraphQLExtension} from \"@/types\";\r\nimport {getAllFiles} from \"@/utils/files\";\r\nimport {fieldAuthorizePlugin} from \"nexus\";\r\n\r\n\r\nexport const register = async ({strapi}: { strapi: Strapi }) => {\r\n console.log({\r\n dirs: strapi.dirs,\r\n })\r\n const extensions: GraphQLExtension[] = [\r\n ...getAllFiles(strapi.dirs.dist.src),\r\n ]\r\n const extensionService = strapi.plugin('graphql').service('extension')\r\n\r\n extensionService.use(() => ({\r\n plugins: [\r\n fieldAuthorizePlugin(),\r\n ]\r\n }))\r\n\r\n for (const extension of extensions) {\r\n extension?.init ? extension.init() : null\r\n extensionService.use(() => ({\r\n types: extension?.getTypes?.() ?? [],\r\n resolvers: extension?.resolvers?.() ?? {Query: {}, Mutation: {}},\r\n resolversConfig: extension?.getResolverConfig?.() ?? {},\r\n }))\r\n }\r\n}","import {register} from \"@/register\";\r\nimport {type Strapi} from \"@strapi/strapi\";\r\nimport {type GraphQLExtension} from \"@/types\";\r\n\r\nexport const createGraphQLExtension = (factory: (strapi: Strapi) => GraphQLExtension): GraphQLExtension => factory(strapi)\r\n\r\nexport default {\r\n register,\r\n}"],"mappings":";;;;;;;;AAAA,OAAO,QAAQ;AAGR,IAAM,cAAc,CAAC,SAAiB,eAAmC,CAAC,MAA0B;AACvG,QAAM,QAAQ,GAAG,YAAY,OAAO;AAEpC,QAAM,QAAQ,CAAC,SAAS;AACpB,QAAI,GAAG,SAAS,UAAU,MAAM,IAAI,EAAE,YAAY,GAAG;AACjD,qBAAe,YAAY,UAAU,MAAM,MAAM,YAAY;AAE7D;AAAA,IACJ;AAEA,QAAI,CAAC,QAAQ,SAAS,UAAU,KAAK,CAAC,QAAQ,SAAS,WAAW,GAAG;AACjE;AAAA,IACJ;AAEA,UAAM,MAAM,UAAQ,GAAG,OAAO,IAAI,KAAK,QAAQ,OAAO,EAAE,CAAC,EAAE;AAE3D,QAAI,CAAC,KAAK;AACN;AAAA,IACJ;AAEA,iBAAa,KAAK;AAAA,MACd,GAAG;AAAA,MACH,GAAI,IAAI,WAAW,CAAC;AAAA,IACxB,CAAC;AAAA,EACL,CAAC;AAED,SAAO;AACX;;;AC3BA,SAAQ,4BAA2B;AAG5B,IAAM,WAAW,OAAO,EAAC,QAAAA,QAAM,MAA0B;AAC5D,UAAQ,IAAI;AAAA,IACR,MAAMA,QAAO;AAAA,EACjB,CAAC;AACD,QAAM,aAAiC;AAAA,IACnC,GAAG,YAAYA,QAAO,KAAK,KAAK,GAAG;AAAA,EACvC;AACA,QAAM,mBAAmBA,QAAO,OAAO,SAAS,EAAE,QAAQ,WAAW;AAErE,mBAAiB,IAAI,OAAO;AAAA,IACxB,SAAS;AAAA,MACL,qBAAqB;AAAA,IACzB;AAAA,EACJ,EAAE;AAEF,aAAW,aAAa,YAAY;AAChC,eAAW,OAAO,UAAU,KAAK,IAAI;AACrC,qBAAiB,IAAI,OAAO;AAAA,MACxB,OAAO,WAAW,WAAW,KAAK,CAAC;AAAA,MACnC,WAAW,WAAW,YAAY,KAAK,EAAC,OAAO,CAAC,GAAG,UAAU,CAAC,EAAC;AAAA,MAC/D,iBAAiB,WAAW,oBAAoB,KAAK,CAAC;AAAA,IAC1D,EAAE;AAAA,EACN;AACJ;;;ACzBO,IAAM,yBAAyB,CAAC,YAAoE,QAAQ,MAAM;AAEzH,IAAO,cAAQ;AAAA,EACX;AACJ;","names":["strapi"]}
|