@dani-builder/strapi-plugin-builder 0.5.0 → 0.6.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 (82) hide show
  1. package/README.md +53 -12
  2. package/dist/server/src/components/blocks/bento-grid.json +1 -0
  3. package/dist/server/src/components/blocks/content.json +1 -0
  4. package/dist/server/src/components/blocks/cta.json +1 -0
  5. package/dist/server/src/components/blocks/faq.json +1 -0
  6. package/dist/server/src/components/blocks/features.json +1 -0
  7. package/dist/server/src/components/blocks/hero.json +1 -0
  8. package/dist/server/src/components/blocks/highlights.json +1 -0
  9. package/dist/server/src/components/blocks/inquiry-form.json +1 -0
  10. package/dist/server/src/components/blocks/logo-cloud.json +1 -0
  11. package/dist/server/src/components/blocks/previews/bento-grid.jpg +0 -0
  12. package/dist/server/src/components/blocks/previews/content.jpg +0 -0
  13. package/dist/server/src/components/blocks/previews/cta.jpg +0 -0
  14. package/dist/server/src/components/blocks/previews/faq.jpg +0 -0
  15. package/dist/server/src/components/blocks/previews/features.jpg +0 -0
  16. package/dist/server/src/components/blocks/previews/hero.jpg +0 -0
  17. package/dist/server/src/components/blocks/previews/highlights.jpg +0 -0
  18. package/dist/server/src/components/blocks/previews/inquiry-form.jpg +0 -0
  19. package/dist/server/src/components/blocks/previews/logo-cloud.jpg +0 -0
  20. package/dist/server/src/components/blocks/previews/pricing.jpg +0 -0
  21. package/dist/server/src/components/blocks/previews/slider.jpg +0 -0
  22. package/dist/server/src/components/blocks/previews/stats.jpg +0 -0
  23. package/dist/server/src/components/blocks/previews/team.jpg +0 -0
  24. package/dist/server/src/components/blocks/previews/testimonials.jpg +0 -0
  25. package/dist/server/src/components/blocks/pricing.json +1 -0
  26. package/dist/server/src/components/blocks/slider.json +1 -0
  27. package/dist/server/src/components/blocks/stats.json +1 -0
  28. package/dist/server/src/components/blocks/team.json +1 -0
  29. package/dist/server/src/components/blocks/testimonials.json +1 -0
  30. package/dist/server/src/config/builder.d.ts +27 -0
  31. package/dist/server/src/config/builder.d.ts.map +1 -0
  32. package/dist/server/src/config/builder.js +80 -0
  33. package/dist/server/src/config/builder.js.map +1 -0
  34. package/dist/server/src/controllers/global.d.ts.map +1 -1
  35. package/dist/server/src/controllers/global.js +5 -2
  36. package/dist/server/src/controllers/global.js.map +1 -1
  37. package/dist/server/src/controllers/index.d.ts.map +1 -1
  38. package/dist/server/src/controllers/index.js +2 -0
  39. package/dist/server/src/controllers/index.js.map +1 -1
  40. package/dist/server/src/controllers/page.d.ts.map +1 -1
  41. package/dist/server/src/controllers/page.js +7 -2
  42. package/dist/server/src/controllers/page.js.map +1 -1
  43. package/dist/server/src/controllers/preview.d.ts +13 -0
  44. package/dist/server/src/controllers/preview.d.ts.map +1 -0
  45. package/dist/server/src/controllers/preview.js +40 -0
  46. package/dist/server/src/controllers/preview.js.map +1 -0
  47. package/dist/server/src/mcp/index.d.ts +4 -0
  48. package/dist/server/src/mcp/index.d.ts.map +1 -0
  49. package/dist/server/src/mcp/index.js +170 -0
  50. package/dist/server/src/mcp/index.js.map +1 -0
  51. package/dist/server/src/mcp/schema.d.ts +32 -0
  52. package/dist/server/src/mcp/schema.d.ts.map +1 -0
  53. package/dist/server/src/mcp/schema.js +102 -0
  54. package/dist/server/src/mcp/schema.js.map +1 -0
  55. package/dist/server/src/register.d.ts.map +1 -1
  56. package/dist/server/src/register.js +12 -1
  57. package/dist/server/src/register.js.map +1 -1
  58. package/dist/server/src/routes/admin.d.ts +14 -0
  59. package/dist/server/src/routes/admin.d.ts.map +1 -0
  60. package/dist/server/src/routes/admin.js +16 -0
  61. package/dist/server/src/routes/admin.js.map +1 -0
  62. package/dist/server/src/routes/content-api.d.ts +1 -1
  63. package/dist/server/src/routes/content-api.d.ts.map +1 -1
  64. package/dist/server/src/routes/content-api.js +1 -1
  65. package/dist/server/src/routes/content-api.js.map +1 -1
  66. package/dist/server/src/routes/index.d.ts +4 -3
  67. package/dist/server/src/routes/index.d.ts.map +1 -1
  68. package/dist/server/src/routes/index.js +2 -0
  69. package/dist/server/src/routes/index.js.map +1 -1
  70. package/dist/server/src/services/populate.d.ts +1 -4
  71. package/dist/server/src/services/populate.d.ts.map +1 -1
  72. package/dist/server/src/services/populate.js +1 -1
  73. package/dist/server/src/services/populate.js.map +1 -1
  74. package/package.json +37 -7
  75. package/dist/server/src/bootstrap.test.d.ts +0 -2
  76. package/dist/server/src/bootstrap.test.d.ts.map +0 -1
  77. package/dist/server/src/bootstrap.test.js +0 -60
  78. package/dist/server/src/bootstrap.test.js.map +0 -1
  79. package/dist/server/src/config/index.test.d.ts +0 -2
  80. package/dist/server/src/config/index.test.d.ts.map +0 -1
  81. package/dist/server/src/config/index.test.js +0 -87
  82. package/dist/server/src/config/index.test.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dani-builder/strapi-plugin-builder",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "Daniworks Builder — reusable CMS components, content types, and smart API for Strapi v5",
5
5
  "license": "MIT",
6
6
  "strapi": {
@@ -13,16 +13,32 @@
13
13
  "./package.json": "./package.json",
14
14
  "./strapi-server": {
15
15
  "types": "./dist/server/src/index.d.ts",
16
- "source": "./server/src/index.ts",
17
16
  "require": "./dist/server/src/index.js",
18
17
  "default": "./dist/server/src/index.js"
19
18
  },
19
+ "./config": {
20
+ "types": "./dist/server/src/config/builder.d.ts",
21
+ "require": "./dist/server/src/config/builder.js",
22
+ "default": "./dist/server/src/config/builder.js"
23
+ },
20
24
  "./types": {
21
25
  "types": "./dist/server/src/types/index.d.ts",
22
- "source": "./server/src/types/index.ts",
23
26
  "default": "./dist/server/src/types/index.js"
24
27
  }
25
28
  },
29
+ "typesVersions": {
30
+ "*": {
31
+ "config": [
32
+ "dist/server/src/config/builder.d.ts"
33
+ ],
34
+ "strapi-server": [
35
+ "dist/server/src/index.d.ts"
36
+ ],
37
+ "types": [
38
+ "dist/server/src/types/index.d.ts"
39
+ ]
40
+ }
41
+ },
26
42
  "files": [
27
43
  "dist",
28
44
  "strapi-server.js",
@@ -40,15 +56,28 @@
40
56
  },
41
57
  "dependencies": {},
42
58
  "devDependencies": {
43
- "@strapi/strapi": "5.51.2",
59
+ "@strapi/strapi": "5.54.0",
60
+ "@strapi/utils": "5.54.0",
44
61
  "@types/node": "^26",
45
- "typescript": "^6.0.3"
62
+ "eslint": "^10.8.1",
63
+ "typescript": "^6.0.3",
64
+ "@repo/eslint-config": "0.0.0"
46
65
  },
47
66
  "peerDependencies": {
48
- "@strapi/strapi": "^5.0.0",
67
+ "@strapi/provider-upload-aws-s3": "^5.0.0",
68
+ "@strapi/strapi": "^5.49.0",
69
+ "@strapi/utils": "^5.49.0",
49
70
  "@strapi/plugin-color-picker": "^5.0.0",
50
71
  "@d3levvv/strapi-react-icons-plugin": "^1.0.0"
51
72
  },
73
+ "peerDependenciesMeta": {
74
+ "@strapi/utils": {
75
+ "optional": true
76
+ },
77
+ "@strapi/provider-upload-aws-s3": {
78
+ "optional": true
79
+ }
80
+ },
52
81
  "keywords": [
53
82
  "strapi",
54
83
  "strapi-v5",
@@ -64,9 +93,10 @@
64
93
  "homepage": "https://github.com/HJ-company/daniworks-builder-v2/tree/main/packages/strapi-plugin-builder#readme",
65
94
  "author": "HJ-company",
66
95
  "scripts": {
67
- "build": "pnpm run clean && tsc && node -e \"const fs=require('fs'),p=require('path'),src='server/src/components',dst='dist/server/src/components';(function cp(s,d){fs.mkdirSync(d,{recursive:true});fs.readdirSync(s).forEach(f=>{const sp=p.join(s,f),dp=p.join(d,f);fs.statSync(sp).isDirectory()?cp(sp,dp):f.endsWith('.json')&&fs.copyFileSync(sp,dp);})})(src,dst)\"",
96
+ "build": "pnpm run clean && tsc && node -e \"const fs=require('fs'),p=require('path'),src='server/src/components',dst='dist/server/src/components';(function cp(s,d){fs.mkdirSync(d,{recursive:true});fs.readdirSync(s).forEach(f=>{const sp=p.join(s,f),dp=p.join(d,f);fs.statSync(sp).isDirectory()?cp(sp,dp):['.json','.jpg'].includes(p.extname(f))&&fs.copyFileSync(sp,dp);})})(src,dst)\"",
68
97
  "check-types": "tsc --noEmit -p tsconfig.check-types.json",
69
98
  "clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
99
+ "lint": "eslint server/src --max-warnings 0",
70
100
  "test": "vitest run",
71
101
  "smoke:content-types": "node scripts/smoke-plugin-content-types.mjs"
72
102
  }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=bootstrap.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bootstrap.test.d.ts","sourceRoot":"","sources":["../../../server/src/bootstrap.test.ts"],"names":[],"mappings":""}
@@ -1,60 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const vitest_1 = require("vitest");
7
- const bootstrap_1 = __importDefault(require("./bootstrap"));
8
- function createStrapi(serializerInstalled, autoReload = false) {
9
- const registerOverrides = vitest_1.vi.fn();
10
- const buildBlocksPopulate = vitest_1.vi.fn();
11
- const warn = vitest_1.vi.fn();
12
- const plugins = serializerInstalled
13
- ? { agent: { services: { serializer: { registerOverrides } } } }
14
- : {};
15
- return {
16
- config: { get: vitest_1.vi.fn(() => autoReload) },
17
- log: { warn },
18
- plugins,
19
- plugin: vitest_1.vi.fn((name) => {
20
- if (name === "builder")
21
- return { service: () => ({ buildBlocksPopulate }) };
22
- return { service: () => ({ registerOverrides }) };
23
- }),
24
- registerOverrides,
25
- buildBlocksPopulate,
26
- warn,
27
- };
28
- }
29
- (0, vitest_1.describe)("builder bootstrap", () => {
30
- (0, vitest_1.it)("does not access agent services when the optional plugin is absent", () => {
31
- const strapi = createStrapi(false);
32
- (0, bootstrap_1.default)({ strapi: strapi });
33
- (0, vitest_1.expect)(strapi.buildBlocksPopulate).toHaveBeenCalledOnce();
34
- (0, vitest_1.expect)(strapi.plugin).toHaveBeenCalledTimes(1);
35
- });
36
- (0, vitest_1.it)("registers the empty serializer override set when agent is installed", () => {
37
- const strapi = createStrapi(true);
38
- (0, bootstrap_1.default)({ strapi: strapi });
39
- (0, vitest_1.expect)(strapi.registerOverrides).toHaveBeenCalledWith({});
40
- });
41
- (0, vitest_1.it)("does not access an unrelated plugin registered as agent", () => {
42
- const strapi = createStrapi(false);
43
- strapi.plugins.agent = {};
44
- (0, bootstrap_1.default)({ strapi: strapi });
45
- (0, vitest_1.expect)(strapi.registerOverrides).not.toHaveBeenCalled();
46
- (0, vitest_1.expect)(strapi.plugin).toHaveBeenCalledTimes(1);
47
- });
48
- (0, vitest_1.it)("warns once about CTB component editing in development", () => {
49
- const strapi = createStrapi(false, true);
50
- (0, bootstrap_1.default)({ strapi: strapi });
51
- (0, vitest_1.expect)(strapi.warn).toHaveBeenCalledOnce();
52
- (0, vitest_1.expect)(strapi.warn).toHaveBeenCalledWith(vitest_1.expect.stringContaining("builder.config"));
53
- });
54
- (0, vitest_1.it)("does not warn about CTB component editing in production", () => {
55
- const strapi = createStrapi(false, false);
56
- (0, bootstrap_1.default)({ strapi: strapi });
57
- (0, vitest_1.expect)(strapi.warn).not.toHaveBeenCalled();
58
- });
59
- });
60
- //# sourceMappingURL=bootstrap.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bootstrap.test.js","sourceRoot":"","sources":["../../../server/src/bootstrap.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../../server/src/config/index.test.ts"],"names":[],"mappings":""}
@@ -1,87 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const vitest_1 = require("vitest");
7
- const index_1 = __importDefault(require("./index"));
8
- function mergedConfig(value) {
9
- const defaults = index_1.default.default();
10
- return {
11
- blocks: {
12
- ...defaults.blocks,
13
- ...value.blocks,
14
- },
15
- components: value.components ?? defaults.components,
16
- };
17
- }
18
- (0, vitest_1.describe)('builder config', () => {
19
- (0, vitest_1.it)('provides empty additive extension defaults', () => {
20
- (0, vitest_1.expect)(index_1.default.default()).toEqual({
21
- blocks: { extra: {}, includeInGlobal: true },
22
- components: {},
23
- });
24
- });
25
- (0, vitest_1.it)('accepts a blocks-only partial config after Strapi default merging', () => {
26
- const value = mergedConfig({
27
- blocks: {
28
- extra: { 'custom.dynamic-hero': { populate: { section: true } } },
29
- },
30
- });
31
- (0, vitest_1.expect)(() => index_1.default.validator(value)).not.toThrow();
32
- (0, vitest_1.expect)(value.blocks.includeInGlobal).toBe(true);
33
- });
34
- (0, vitest_1.it)('accepts a components-only partial config after Strapi default merging', () => {
35
- (0, vitest_1.expect)(() => index_1.default.validator(mergedConfig({
36
- components: {
37
- 'blocks.hero': { attributes: { badgeText: { type: 'string' } } },
38
- },
39
- }))).not.toThrow();
40
- });
41
- (0, vitest_1.it)('rejects overwriting an existing component attribute', () => {
42
- (0, vitest_1.expect)(() => index_1.default.validator(mergedConfig({
43
- components: {
44
- 'blocks.hero': { attributes: { variant: { type: 'string' } } },
45
- },
46
- }))).toThrow('cannot overwrite existing attribute: "variant"');
47
- });
48
- (0, vitest_1.it)('rejects deleting a component attribute', () => {
49
- (0, vitest_1.expect)(() => index_1.default.validator(mergedConfig({
50
- components: { 'blocks.hero': { attributes: { badgeText: null } } },
51
- }))).toThrow('attributes["badgeText"] must be an object');
52
- });
53
- (0, vitest_1.it)('rejects an unknown component UID', () => {
54
- (0, vitest_1.expect)(() => index_1.default.validator(mergedConfig({
55
- components: {
56
- 'blocks.unknown': { attributes: { badgeText: { type: 'string' } } },
57
- },
58
- }))).toThrow('references unknown component UID: "blocks.unknown"');
59
- });
60
- vitest_1.it.each([
61
- [{ block: {}, blocks: index_1.default.default().blocks, components: {} }, 'config'],
62
- [
63
- {
64
- blocks: {
65
- ...index_1.default.default().blocks,
66
- includeInGlobals: false,
67
- },
68
- components: {},
69
- },
70
- 'config.blocks',
71
- ],
72
- ])('rejects unknown config keys', (value, path) => {
73
- (0, vitest_1.expect)(() => index_1.default.validator(value)).toThrow(`${path} has unknown key`);
74
- });
75
- vitest_1.it.each([
76
- [{ type: 'not-a-strapi-type' }, 'type is unsupported'],
77
- [{ type: 'string', required: true }, 'cannot be required or unique'],
78
- [{ type: 'string', unique: true }, 'cannot be required or unique'],
79
- ])('rejects unsafe additive attributes', (attribute, message) => {
80
- (0, vitest_1.expect)(() => index_1.default.validator(mergedConfig({
81
- components: {
82
- 'blocks.hero': { attributes: { badgeText: attribute } },
83
- },
84
- }))).toThrow(message);
85
- });
86
- });
87
- //# sourceMappingURL=index.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../server/src/config/index.test.ts"],"names":[],"mappings":";;;;;AAAA,mCAA8C;AAE9C,oDAA6B;AAE7B,SAAS,YAAY,CAAC,KAA8B;IAClD,MAAM,QAAQ,GAAG,eAAM,CAAC,OAAO,EAAE,CAAC;IAClC,OAAO;QACL,MAAM,EAAE;YACN,GAAG,QAAQ,CAAC,MAAM;YAClB,GAAI,KAAK,CAAC,MAA6B;SACxC;QACD,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU;KACpD,CAAC;AACJ,CAAC;AAED,IAAA,iBAAQ,EAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,IAAA,WAAE,EAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,IAAA,eAAM,EAAC,eAAM,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC;YAC/B,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;YAC5C,UAAU,EAAE,EAAE;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,KAAK,GAAG,YAAY,CAAC;YACzB,MAAM,EAAE;gBACN,KAAK,EAAE,EAAE,qBAAqB,EAAE,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;aAClE;SACF,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,eAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACpD,IAAA,eAAM,EAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,IAAA,eAAM,EAAC,GAAG,EAAE,CACV,eAAM,CAAC,SAAS,CACd,YAAY,CAAC;YACX,UAAU,EAAE;gBACV,aAAa,EAAE,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;aACjE;SACF,CAAC,CACH,CACF,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,IAAA,eAAM,EAAC,GAAG,EAAE,CACV,eAAM,CAAC,SAAS,CACd,YAAY,CAAC;YACX,UAAU,EAAE;gBACV,aAAa,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;aAC/D;SACF,CAAC,CACH,CACF,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,IAAA,eAAM,EAAC,GAAG,EAAE,CACV,eAAM,CAAC,SAAS,CACd,YAAY,CAAC;YACX,UAAU,EAAE,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE;SACnE,CAAC,CACH,CACF,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,IAAA,eAAM,EAAC,GAAG,EAAE,CACV,eAAM,CAAC,SAAS,CACd,YAAY,CAAC;YACX,UAAU,EAAE;gBACV,gBAAgB,EAAE,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;aACpE;SACF,CAAC,CACH,CACF,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,WAAE,CAAC,IAAI,CAAC;QACN,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,eAAM,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC;QAC1E;YACE;gBACE,MAAM,EAAE;oBACN,GAAG,eAAM,CAAC,OAAO,EAAE,CAAC,MAAM;oBAC1B,gBAAgB,EAAE,KAAK;iBACxB;gBACD,UAAU,EAAE,EAAE;aACf;YACD,eAAe;SAChB;KACF,CAAC,CAAC,6BAA6B,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAChD,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,eAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,kBAAkB,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,WAAE,CAAC,IAAI,CAAC;QACN,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,qBAAqB,CAAC;QACtD,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,8BAA8B,CAAC;QACpE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,8BAA8B,CAAC;KACnE,CAAC,CAAC,oCAAoC,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;QAC9D,IAAA,eAAM,EAAC,GAAG,EAAE,CACV,eAAM,CAAC,SAAS,CACd,YAAY,CAAC;YACX,UAAU,EAAE;gBACV,aAAa,EAAE,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE;aACxD;SACF,CAAC,CACH,CACF,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}