@webiny/api-aco 0.0.0-unstable.7f63ea0744 → 0.0.0-unstable.99666aeb00
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/README.md +6 -6
- package/apps/AcoApp.d.ts +16 -0
- package/apps/AcoApp.js +108 -0
- package/apps/AcoApp.js.map +1 -0
- package/apps/AcoApps.d.ts +10 -0
- package/apps/AcoApps.js +76 -0
- package/apps/AcoApps.js.map +1 -0
- package/apps/app.gql.d.ts +3 -0
- package/apps/app.gql.js +58 -0
- package/apps/app.gql.js.map +1 -0
- package/apps/index.d.ts +2 -0
- package/apps/index.js +27 -0
- package/apps/index.js.map +1 -0
- package/createAcoContext.js +50 -13
- package/createAcoContext.js.map +1 -1
- package/createAcoGraphQL.d.ts +2 -2
- package/createAcoGraphQL.js +44 -14
- package/createAcoGraphQL.js.map +1 -1
- package/createAcoModels.js +0 -25
- package/createAcoModels.js.map +1 -1
- package/{createAcoFields.d.ts → fields/index.d.ts} +1 -1
- package/fields/index.js +12 -0
- package/fields/index.js.map +1 -0
- package/fields/location.d.ts +2 -0
- package/fields/location.js +44 -0
- package/fields/location.js.map +1 -0
- package/folder/folder.crud.js +18 -0
- package/folder/folder.crud.js.map +1 -1
- package/folder/folder.gql.js +20 -5
- package/folder/folder.gql.js.map +1 -1
- package/folder/folder.model.d.ts +3 -3
- package/folder/folder.model.js +3 -25
- package/folder/folder.model.js.map +1 -1
- package/folder/folder.so.d.ts +1 -6
- package/folder/folder.so.js +103 -108
- package/folder/folder.so.js.map +1 -1
- package/folder/folder.types.d.ts +9 -3
- package/folder/folder.types.js.map +1 -1
- package/folder/onFolderBeforeDelete.hook.js +40 -27
- package/folder/onFolderBeforeDelete.hook.js.map +1 -1
- package/index.d.ts +5 -1
- package/index.js +48 -6
- package/index.js.map +1 -1
- package/package.json +34 -31
- package/plugins/AcoAppModifierPlugin.d.ts +43 -0
- package/plugins/AcoAppModifierPlugin.js +59 -0
- package/plugins/AcoAppModifierPlugin.js.map +1 -0
- package/plugins/AcoAppRegisterPlugin.d.ts +8 -0
- package/plugins/AcoAppRegisterPlugin.js +22 -0
- package/plugins/AcoAppRegisterPlugin.js.map +1 -0
- package/plugins/index.d.ts +2 -0
- package/plugins/index.js +27 -0
- package/plugins/index.js.map +1 -0
- package/record/graphql/createAppResolvers.d.ts +14 -0
- package/record/graphql/createAppResolvers.js +108 -0
- package/record/graphql/createAppResolvers.js.map +1 -0
- package/record/graphql/createAppSchema.d.ts +9 -0
- package/record/graphql/createAppSchema.js +142 -0
- package/record/graphql/createAppSchema.js.map +1 -0
- package/record/record.crud.js +46 -12
- package/record/record.crud.js.map +1 -1
- package/record/record.gql.d.ts +8 -3
- package/record/record.gql.js +36 -113
- package/record/record.gql.js.map +1 -1
- package/record/record.model.d.ts +10 -4
- package/record/record.model.js +39 -28
- package/record/record.model.js.map +1 -1
- package/record/record.so.d.ts +1 -6
- package/record/record.so.js +112 -62
- package/record/record.so.js.map +1 -1
- package/record/record.types.d.ts +66 -15
- package/record/record.types.js.map +1 -1
- package/types.d.ts +56 -3
- package/types.js +35 -1
- package/types.js.map +1 -1
- package/utils/acoRecordId.d.ts +6 -0
- package/utils/acoRecordId.js +33 -0
- package/utils/acoRecordId.js.map +1 -0
- package/utils/checkPermissions.d.ts +2 -0
- package/utils/checkPermissions.js +14 -0
- package/utils/checkPermissions.js.map +1 -0
- package/utils/createListSort.d.ts +2 -0
- package/utils/createListSort.js +13 -0
- package/utils/createListSort.js.map +1 -0
- package/utils/createModelField.d.ts +0 -1
- package/utils/createModelField.js +2 -4
- package/utils/createModelField.js.map +1 -1
- package/utils/createOperationsWrapper.d.ts +9 -0
- package/utils/createOperationsWrapper.js +29 -0
- package/utils/createOperationsWrapper.js.map +1 -0
- package/utils/getFieldValues.d.ts +4 -1
- package/utils/getFieldValues.js +6 -2
- package/utils/getFieldValues.js.map +1 -1
- package/utils/getFolderAndItsAncestors.d.ts +7 -0
- package/utils/getFolderAndItsAncestors.js +48 -0
- package/utils/getFolderAndItsAncestors.js.map +1 -0
- package/utils/modelFactory.d.ts +3 -3
- package/utils/modelFactory.js +4 -2
- package/utils/modelFactory.js.map +1 -1
- package/utils/resolve.d.ts +2 -1
- package/utils/resolve.js +11 -2
- package/utils/resolve.js.map +1 -1
- package/createAcoCrud.d.ts +0 -2
- package/createAcoCrud.js +0 -17
- package/createAcoCrud.js.map +0 -1
- package/createAcoFields.js +0 -40
- package/createAcoFields.js.map +0 -1
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getFolderAndItsAncestors = void 0;
|
|
7
|
+
const getFolderAndItsAncestors = ({
|
|
8
|
+
id,
|
|
9
|
+
folders
|
|
10
|
+
}) => {
|
|
11
|
+
// Create a Map with folders, using folder.id as key
|
|
12
|
+
const folderMap = new Map();
|
|
13
|
+
folders.forEach(folder => folderMap.set(folder.id, folder));
|
|
14
|
+
const findParents = (next, id) => {
|
|
15
|
+
const folder = folderMap.get(id);
|
|
16
|
+
|
|
17
|
+
// No folder found: return the result
|
|
18
|
+
if (!folder) {
|
|
19
|
+
return next;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// Push the current folder into the accumulator array
|
|
23
|
+
next.push(folder);
|
|
24
|
+
|
|
25
|
+
// No parentId found: return the result
|
|
26
|
+
if (!folder.parentId) {
|
|
27
|
+
return next;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Go ahead and find parent for the current parent
|
|
31
|
+
return findParents(next, folder.parentId);
|
|
32
|
+
};
|
|
33
|
+
const folder = folderMap.get(id);
|
|
34
|
+
|
|
35
|
+
// No folder found: return an empty array
|
|
36
|
+
if (!folder) {
|
|
37
|
+
return [];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// The folder has no parent (it's at root level): return an array with the folder
|
|
41
|
+
if (!folder.parentId) {
|
|
42
|
+
return [folder];
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Recursively find parents for a given folder id
|
|
46
|
+
return findParents([], id);
|
|
47
|
+
};
|
|
48
|
+
exports.getFolderAndItsAncestors = getFolderAndItsAncestors;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getFolderAndItsAncestors","id","folders","folderMap","Map","forEach","folder","set","findParents","next","get","push","parentId"],"sources":["getFolderAndItsAncestors.ts"],"sourcesContent":["import { Folder } from \"~/folder/folder.types\";\n\ninterface GetFolderAndItsAncestorsParams {\n id: string;\n folders: Folder[];\n}\n\nexport const getFolderAndItsAncestors = ({\n id,\n folders\n}: GetFolderAndItsAncestorsParams): Folder[] => {\n // Create a Map with folders, using folder.id as key\n const folderMap = new Map<string, Folder>();\n folders.forEach(folder => folderMap.set(folder.id, folder));\n\n const findParents = (next: Folder[], id: string): Folder[] => {\n const folder = folderMap.get(id);\n\n // No folder found: return the result\n if (!folder) {\n return next;\n }\n\n // Push the current folder into the accumulator array\n next.push(folder);\n\n // No parentId found: return the result\n if (!folder.parentId) {\n return next;\n }\n\n // Go ahead and find parent for the current parent\n return findParents(next, folder.parentId);\n };\n\n const folder = folderMap.get(id);\n\n // No folder found: return an empty array\n if (!folder) {\n return [];\n }\n\n // The folder has no parent (it's at root level): return an array with the folder\n if (!folder.parentId) {\n return [folder];\n }\n\n // Recursively find parents for a given folder id\n return findParents([], id);\n};\n"],"mappings":";;;;;;AAOO,MAAMA,wBAAwB,GAAG,CAAC;EACrCC,EAAE;EACFC;AAC4B,CAAC,KAAe;EAC5C;EACA,MAAMC,SAAS,GAAG,IAAIC,GAAG,EAAkB;EAC3CF,OAAO,CAACG,OAAO,CAACC,MAAM,IAAIH,SAAS,CAACI,GAAG,CAACD,MAAM,CAACL,EAAE,EAAEK,MAAM,CAAC,CAAC;EAE3D,MAAME,WAAW,GAAG,CAACC,IAAc,EAAER,EAAU,KAAe;IAC1D,MAAMK,MAAM,GAAGH,SAAS,CAACO,GAAG,CAACT,EAAE,CAAC;;IAEhC;IACA,IAAI,CAACK,MAAM,EAAE;MACT,OAAOG,IAAI;IACf;;IAEA;IACAA,IAAI,CAACE,IAAI,CAACL,MAAM,CAAC;;IAEjB;IACA,IAAI,CAACA,MAAM,CAACM,QAAQ,EAAE;MAClB,OAAOH,IAAI;IACf;;IAEA;IACA,OAAOD,WAAW,CAACC,IAAI,EAAEH,MAAM,CAACM,QAAQ,CAAC;EAC7C,CAAC;EAED,MAAMN,MAAM,GAAGH,SAAS,CAACO,GAAG,CAACT,EAAE,CAAC;;EAEhC;EACA,IAAI,CAACK,MAAM,EAAE;IACT,OAAO,EAAE;EACb;;EAEA;EACA,IAAI,CAACA,MAAM,CAACM,QAAQ,EAAE;IAClB,OAAO,CAACN,MAAM,CAAC;EACnB;;EAEA;EACA,OAAOE,WAAW,CAAC,EAAE,EAAEP,EAAE,CAAC;AAC9B,CAAC;AAAC"}
|
package/utils/modelFactory.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { CmsModelPlugin } from "@webiny/api-headless-cms";
|
|
2
|
-
import {
|
|
1
|
+
import { CmsModelPlugin, CmsPrivateModelFull } from "@webiny/api-headless-cms";
|
|
2
|
+
import { CmsGroup } from "@webiny/api-headless-cms/types";
|
|
3
3
|
interface Params {
|
|
4
4
|
group: Pick<CmsGroup, "id" | "name">;
|
|
5
5
|
/**
|
|
@@ -9,7 +9,7 @@ interface Params {
|
|
|
9
9
|
*/
|
|
10
10
|
locale?: string;
|
|
11
11
|
tenant?: string;
|
|
12
|
-
modelDefinition: Omit<
|
|
12
|
+
modelDefinition: Omit<CmsPrivateModelFull, "noValidate" | "group">;
|
|
13
13
|
}
|
|
14
14
|
export declare const modelFactory: (params: Params) => CmsModelPlugin;
|
|
15
15
|
export {};
|
package/utils/modelFactory.js
CHANGED
|
@@ -14,10 +14,12 @@ const modelFactory = params => {
|
|
|
14
14
|
tenant,
|
|
15
15
|
modelDefinition
|
|
16
16
|
} = params;
|
|
17
|
-
return (0, _apiHeadlessCms.createCmsModel)((0, _objectSpread2.default)({
|
|
17
|
+
return (0, _apiHeadlessCms.createCmsModel)((0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
18
18
|
group,
|
|
19
19
|
locale,
|
|
20
20
|
tenant
|
|
21
|
-
}, modelDefinition)
|
|
21
|
+
}, modelDefinition), {}, {
|
|
22
|
+
noValidate: true
|
|
23
|
+
}));
|
|
22
24
|
};
|
|
23
25
|
exports.modelFactory = modelFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["modelFactory","params","group","locale","tenant","modelDefinition","createCmsModel"],"sources":["modelFactory.ts"],"sourcesContent":["import { CmsModelPlugin, createCmsModel } from \"@webiny/api-headless-cms\";\nimport {
|
|
1
|
+
{"version":3,"names":["modelFactory","params","group","locale","tenant","modelDefinition","createCmsModel","noValidate"],"sources":["modelFactory.ts"],"sourcesContent":["import { CmsModelPlugin, CmsPrivateModelFull, createCmsModel } from \"@webiny/api-headless-cms\";\nimport { CmsGroup } from \"@webiny/api-headless-cms/types\";\n\ninterface Params {\n group: Pick<CmsGroup, \"id\" | \"name\">;\n /**\n * Locale and tenant do not need to be defined.\n * In that case model is not bound to any locale or tenant.\n * You can bind it to locale, tenant, both or none.\n */\n locale?: string;\n tenant?: string;\n modelDefinition: Omit<CmsPrivateModelFull, \"noValidate\" | \"group\">;\n}\n\nexport const modelFactory = (params: Params): CmsModelPlugin => {\n const { group, locale, tenant, modelDefinition } = params;\n\n return createCmsModel({\n group,\n locale,\n tenant,\n ...modelDefinition,\n noValidate: true\n });\n};\n"],"mappings":";;;;;;;;AAAA;AAeO,MAAMA,YAAY,GAAIC,MAAc,IAAqB;EAC5D,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC,MAAM;IAAEC;EAAgB,CAAC,GAAGJ,MAAM;EAEzD,OAAO,IAAAK,8BAAc;IACjBJ,KAAK;IACLC,MAAM;IACNC;EAAM,GACHC,eAAe;IAClBE,UAAU,EAAE;EAAI,GAClB;AACN,CAAC;AAAC"}
|
package/utils/resolve.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ErrorResponse, ListResponse, Response } from "@webiny/handler-graphql";
|
|
2
2
|
export declare const resolve: (fn: () => Promise<any>) => Promise<ErrorResponse | Response<any>>;
|
|
3
|
+
export declare const resolveList: (fn: () => Promise<any>) => Promise<ErrorResponse | ListResponse<unknown, any>>;
|
package/utils/resolve.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.resolve = void 0;
|
|
6
|
+
exports.resolveList = exports.resolve = void 0;
|
|
7
7
|
var _handlerGraphql = require("@webiny/handler-graphql");
|
|
8
8
|
const resolve = async fn => {
|
|
9
9
|
try {
|
|
@@ -12,4 +12,13 @@ const resolve = async fn => {
|
|
|
12
12
|
return new _handlerGraphql.ErrorResponse(e);
|
|
13
13
|
}
|
|
14
14
|
};
|
|
15
|
-
exports.resolve = resolve;
|
|
15
|
+
exports.resolve = resolve;
|
|
16
|
+
const resolveList = async fn => {
|
|
17
|
+
try {
|
|
18
|
+
const [items, meta] = await fn();
|
|
19
|
+
return new _handlerGraphql.ListResponse(items, meta);
|
|
20
|
+
} catch (e) {
|
|
21
|
+
return new _handlerGraphql.ErrorResponse(e);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
exports.resolveList = resolveList;
|
package/utils/resolve.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["resolve","fn","Response","e","ErrorResponse"],"sources":["resolve.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"names":["resolve","fn","Response","e","ErrorResponse","resolveList","items","meta","ListResponse"],"sources":["resolve.ts"],"sourcesContent":["import { ErrorResponse, ListResponse, Response } from \"@webiny/handler-graphql\";\n\nexport const resolve = async (fn: () => Promise<any>) => {\n try {\n return new Response(await fn());\n } catch (e) {\n return new ErrorResponse(e);\n }\n};\nexport const resolveList = async (fn: () => Promise<any>) => {\n try {\n const [items, meta] = await fn();\n return new ListResponse(items, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n};\n"],"mappings":";;;;;;AAAA;AAEO,MAAMA,OAAO,GAAG,MAAOC,EAAsB,IAAK;EACrD,IAAI;IACA,OAAO,IAAIC,wBAAQ,CAAC,MAAMD,EAAE,EAAE,CAAC;EACnC,CAAC,CAAC,OAAOE,CAAC,EAAE;IACR,OAAO,IAAIC,6BAAa,CAACD,CAAC,CAAC;EAC/B;AACJ,CAAC;AAAC;AACK,MAAME,WAAW,GAAG,MAAOJ,EAAsB,IAAK;EACzD,IAAI;IACA,MAAM,CAACK,KAAK,EAAEC,IAAI,CAAC,GAAG,MAAMN,EAAE,EAAE;IAChC,OAAO,IAAIO,4BAAY,CAACF,KAAK,EAAEC,IAAI,CAAC;EACxC,CAAC,CAAC,OAAOJ,CAAC,EAAE;IACR,OAAO,IAAIC,6BAAa,CAACD,CAAC,CAAC;EAC/B;AACJ,CAAC;AAAC"}
|
package/createAcoCrud.d.ts
DELETED
package/createAcoCrud.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createAcoCrud = void 0;
|
|
7
|
-
var _folder = require("./folder/folder.crud");
|
|
8
|
-
var _record = require("./record/record.crud");
|
|
9
|
-
const createAcoCrud = params => {
|
|
10
|
-
const folderMethods = (0, _folder.createFolderCrudMethods)(params);
|
|
11
|
-
const searchRecordMethods = (0, _record.createSearchRecordCrudMethods)(params);
|
|
12
|
-
return {
|
|
13
|
-
folder: folderMethods,
|
|
14
|
-
search: searchRecordMethods
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
exports.createAcoCrud = createAcoCrud;
|
package/createAcoCrud.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["createAcoCrud","params","folderMethods","createFolderCrudMethods","searchRecordMethods","createSearchRecordCrudMethods","folder","search"],"sources":["createAcoCrud.ts"],"sourcesContent":["import { createFolderCrudMethods } from \"~/folder/folder.crud\";\nimport { createSearchRecordCrudMethods } from \"~/record/record.crud\";\n\nimport { AdvancedContentOrganisation, CreateAcoParams } from \"~/types\";\n\nexport const createAcoCrud = (params: CreateAcoParams): AdvancedContentOrganisation => {\n const folderMethods = createFolderCrudMethods(params);\n const searchRecordMethods = createSearchRecordCrudMethods(params);\n\n return {\n folder: folderMethods,\n search: searchRecordMethods\n };\n};\n"],"mappings":";;;;;;AAAA;AACA;AAIO,MAAMA,aAAa,GAAIC,MAAuB,IAAkC;EACnF,MAAMC,aAAa,GAAG,IAAAC,+BAAuB,EAACF,MAAM,CAAC;EACrD,MAAMG,mBAAmB,GAAG,IAAAC,qCAA6B,EAACJ,MAAM,CAAC;EAEjE,OAAO;IACHK,MAAM,EAAEJ,aAAa;IACrBK,MAAM,EAAEH;EACZ,CAAC;AACL,CAAC;AAAC"}
|
package/createAcoFields.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createAcoFields = void 0;
|
|
7
|
-
// Creating an internal JSON field, we are using it inside the `record` type
|
|
8
|
-
const jsonField = {
|
|
9
|
-
name: "cms-model-field-to-graphql-json",
|
|
10
|
-
type: "cms-model-field-to-graphql",
|
|
11
|
-
fieldType: "wby-aco-json",
|
|
12
|
-
isSortable: false,
|
|
13
|
-
isSearchable: false,
|
|
14
|
-
read: {
|
|
15
|
-
createTypeField({
|
|
16
|
-
field
|
|
17
|
-
}) {
|
|
18
|
-
return `${field.fieldId}: JSON`;
|
|
19
|
-
},
|
|
20
|
-
createGetFilters({
|
|
21
|
-
field
|
|
22
|
-
}) {
|
|
23
|
-
return `${field.fieldId}: JSON`;
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
manage: {
|
|
27
|
-
createTypeField({
|
|
28
|
-
field
|
|
29
|
-
}) {
|
|
30
|
-
return `${field.fieldId}: JSON`;
|
|
31
|
-
},
|
|
32
|
-
createInputField({
|
|
33
|
-
field
|
|
34
|
-
}) {
|
|
35
|
-
return field.fieldId + ": JSON";
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
const createAcoFields = () => [jsonField];
|
|
40
|
-
exports.createAcoFields = createAcoFields;
|
package/createAcoFields.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["jsonField","name","type","fieldType","isSortable","isSearchable","read","createTypeField","field","fieldId","createGetFilters","manage","createInputField","createAcoFields"],"sources":["createAcoFields.ts"],"sourcesContent":["import { CmsModelFieldToGraphQLPlugin } from \"@webiny/api-headless-cms/types\";\n\n// Creating an internal JSON field, we are using it inside the `record` type\nconst jsonField: CmsModelFieldToGraphQLPlugin = {\n name: \"cms-model-field-to-graphql-json\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"wby-aco-json\",\n isSortable: false,\n isSearchable: false,\n read: {\n createTypeField({ field }) {\n return `${field.fieldId}: JSON`;\n },\n createGetFilters({ field }) {\n return `${field.fieldId}: JSON`;\n }\n },\n manage: {\n createTypeField({ field }) {\n return `${field.fieldId}: JSON`;\n },\n createInputField({ field }) {\n return field.fieldId + \": JSON\";\n }\n }\n};\n\nexport const createAcoFields = (): CmsModelFieldToGraphQLPlugin[] => [jsonField];\n"],"mappings":";;;;;;AAEA;AACA,MAAMA,SAAuC,GAAG;EAC5CC,IAAI,EAAE,iCAAiC;EACvCC,IAAI,EAAE,4BAA4B;EAClCC,SAAS,EAAE,cAAc;EACzBC,UAAU,EAAE,KAAK;EACjBC,YAAY,EAAE,KAAK;EACnBC,IAAI,EAAE;IACFC,eAAe,CAAC;MAAEC;IAAM,CAAC,EAAE;MACvB,OAAQ,GAAEA,KAAK,CAACC,OAAQ,QAAO;IACnC,CAAC;IACDC,gBAAgB,CAAC;MAAEF;IAAM,CAAC,EAAE;MACxB,OAAQ,GAAEA,KAAK,CAACC,OAAQ,QAAO;IACnC;EACJ,CAAC;EACDE,MAAM,EAAE;IACJJ,eAAe,CAAC;MAAEC;IAAM,CAAC,EAAE;MACvB,OAAQ,GAAEA,KAAK,CAACC,OAAQ,QAAO;IACnC,CAAC;IACDG,gBAAgB,CAAC;MAAEJ;IAAM,CAAC,EAAE;MACxB,OAAOA,KAAK,CAACC,OAAO,GAAG,QAAQ;IACnC;EACJ;AACJ,CAAC;AAEM,MAAMI,eAAe,GAAG,MAAsC,CAACb,SAAS,CAAC;AAAC"}
|