@webiny/api-website-builder 6.0.0-alpha.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.
- package/LICENSE +21 -0
- package/README.md +33 -0
- package/WebsiteBuilderContextSetup.d.ts +12 -0
- package/WebsiteBuilderContextSetup.js +91 -0
- package/WebsiteBuilderContextSetup.js.map +1 -0
- package/constants.d.ts +3 -0
- package/constants.js +11 -0
- package/constants.js.map +1 -0
- package/createWebsiteBuilder.d.ts +2 -0
- package/createWebsiteBuilder.js +16 -0
- package/createWebsiteBuilder.js.map +1 -0
- package/createWebsiteBuilderGraphQL.d.ts +4 -0
- package/createWebsiteBuilderGraphQL.js +124 -0
- package/createWebsiteBuilderGraphQL.js.map +1 -0
- package/index.d.ts +3 -0
- package/index.js +23 -0
- package/index.js.map +1 -0
- package/package.json +54 -0
- package/page/CmsPagesStorage.d.ts +23 -0
- package/page/CmsPagesStorage.js +106 -0
- package/page/CmsPagesStorage.js.map +1 -0
- package/page/page.crud.d.ts +3 -0
- package/page/page.crud.js +208 -0
- package/page/page.crud.js.map +1 -0
- package/page/page.gql.d.ts +10 -0
- package/page/page.gql.js +380 -0
- package/page/page.gql.js.map +1 -0
- package/page/page.model.d.ts +3 -0
- package/page/page.model.js +50 -0
- package/page/page.model.js.map +1 -0
- package/page/page.modelModifier.d.ts +23 -0
- package/page/page.modelModifier.js +56 -0
- package/page/page.modelModifier.js.map +1 -0
- package/page/page.types.d.ts +307 -0
- package/page/page.types.js +7 -0
- package/page/page.types.js.map +1 -0
- package/page/useCases/CreatePage/CreatePage.d.ts +7 -0
- package/page/useCases/CreatePage/CreatePage.js +19 -0
- package/page/useCases/CreatePage/CreatePage.js.map +1 -0
- package/page/useCases/CreatePage/CreatePageWithEvents.d.ts +9 -0
- package/page/useCases/CreatePage/CreatePageWithEvents.js +25 -0
- package/page/useCases/CreatePage/CreatePageWithEvents.js.map +1 -0
- package/page/useCases/CreatePage/ICreatePage.d.ts +4 -0
- package/page/useCases/CreatePage/ICreatePage.js +7 -0
- package/page/useCases/CreatePage/ICreatePage.js.map +1 -0
- package/page/useCases/CreatePage/index.d.ts +15 -0
- package/page/useCases/CreatePage/index.js +18 -0
- package/page/useCases/CreatePage/index.js.map +1 -0
- package/page/useCases/CreatePageRevisionFrom/CreatePageRevisionFrom.d.ts +7 -0
- package/page/useCases/CreatePageRevisionFrom/CreatePageRevisionFrom.js +17 -0
- package/page/useCases/CreatePageRevisionFrom/CreatePageRevisionFrom.js.map +1 -0
- package/page/useCases/CreatePageRevisionFrom/CreatePageRevisionFromWithEvents.d.ts +10 -0
- package/page/useCases/CreatePageRevisionFrom/CreatePageRevisionFromWithEvents.js +32 -0
- package/page/useCases/CreatePageRevisionFrom/CreatePageRevisionFromWithEvents.js.map +1 -0
- package/page/useCases/CreatePageRevisionFrom/ICreatePageRevisionFrom.d.ts +4 -0
- package/page/useCases/CreatePageRevisionFrom/ICreatePageRevisionFrom.js +7 -0
- package/page/useCases/CreatePageRevisionFrom/ICreatePageRevisionFrom.js.map +1 -0
- package/page/useCases/CreatePageRevisionFrom/index.d.ts +16 -0
- package/page/useCases/CreatePageRevisionFrom/index.js +18 -0
- package/page/useCases/CreatePageRevisionFrom/index.js.map +1 -0
- package/page/useCases/DeletePage/DeletePage.d.ts +7 -0
- package/page/useCases/DeletePage/DeletePage.js +17 -0
- package/page/useCases/DeletePage/DeletePage.js.map +1 -0
- package/page/useCases/DeletePage/DeletePageWithEvents.d.ts +10 -0
- package/page/useCases/DeletePage/DeletePageWithEvents.js +30 -0
- package/page/useCases/DeletePage/DeletePageWithEvents.js.map +1 -0
- package/page/useCases/DeletePage/IDeletePage.d.ts +4 -0
- package/page/useCases/DeletePage/IDeletePage.js +7 -0
- package/page/useCases/DeletePage/IDeletePage.js.map +1 -0
- package/page/useCases/DeletePage/index.d.ts +16 -0
- package/page/useCases/DeletePage/index.js +18 -0
- package/page/useCases/DeletePage/index.js.map +1 -0
- package/page/useCases/DuplicatePage/DuplicatePage.d.ts +9 -0
- package/page/useCases/DuplicatePage/DuplicatePage.js +43 -0
- package/page/useCases/DuplicatePage/DuplicatePage.js.map +1 -0
- package/page/useCases/DuplicatePage/DuplicatePageWithEvents.d.ts +10 -0
- package/page/useCases/DuplicatePage/DuplicatePageWithEvents.js +36 -0
- package/page/useCases/DuplicatePage/DuplicatePageWithEvents.js.map +1 -0
- package/page/useCases/DuplicatePage/IDuplicatePage.d.ts +4 -0
- package/page/useCases/DuplicatePage/IDuplicatePage.js +7 -0
- package/page/useCases/DuplicatePage/IDuplicatePage.js.map +1 -0
- package/page/useCases/DuplicatePage/index.d.ts +16 -0
- package/page/useCases/DuplicatePage/index.js +18 -0
- package/page/useCases/DuplicatePage/index.js.map +1 -0
- package/page/useCases/GetPageById/GetPageById.d.ts +7 -0
- package/page/useCases/GetPageById/GetPageById.js +17 -0
- package/page/useCases/GetPageById/GetPageById.js.map +1 -0
- package/page/useCases/GetPageById/IGetPageById.d.ts +4 -0
- package/page/useCases/GetPageById/IGetPageById.js +7 -0
- package/page/useCases/GetPageById/IGetPageById.js.map +1 -0
- package/page/useCases/GetPageById/index.d.ts +9 -0
- package/page/useCases/GetPageById/index.js +16 -0
- package/page/useCases/GetPageById/index.js.map +1 -0
- package/page/useCases/GetPageByPath/GetPageByPath.d.ts +11 -0
- package/page/useCases/GetPageByPath/GetPageByPath.js +28 -0
- package/page/useCases/GetPageByPath/GetPageByPath.js.map +1 -0
- package/page/useCases/GetPageByPath/IGetPageByPath.d.ts +4 -0
- package/page/useCases/GetPageByPath/IGetPageByPath.js +7 -0
- package/page/useCases/GetPageByPath/IGetPageByPath.js.map +1 -0
- package/page/useCases/GetPageByPath/index.d.ts +9 -0
- package/page/useCases/GetPageByPath/index.js +16 -0
- package/page/useCases/GetPageByPath/index.js.map +1 -0
- package/page/useCases/GetPageRevisions/GetPageRevisions.d.ts +7 -0
- package/page/useCases/GetPageRevisions/GetPageRevisions.js +17 -0
- package/page/useCases/GetPageRevisions/GetPageRevisions.js.map +1 -0
- package/page/useCases/GetPageRevisions/IGetPageById.d.ts +4 -0
- package/page/useCases/GetPageRevisions/IGetPageById.js +7 -0
- package/page/useCases/GetPageRevisions/IGetPageById.js.map +1 -0
- package/page/useCases/GetPageRevisions/index.d.ts +9 -0
- package/page/useCases/GetPageRevisions/index.js +16 -0
- package/page/useCases/GetPageRevisions/index.js.map +1 -0
- package/page/useCases/ListPages/IListPages.d.ts +5 -0
- package/page/useCases/ListPages/IListPages.js +7 -0
- package/page/useCases/ListPages/IListPages.js.map +1 -0
- package/page/useCases/ListPages/ListPages.d.ts +8 -0
- package/page/useCases/ListPages/ListPages.js +17 -0
- package/page/useCases/ListPages/ListPages.js.map +1 -0
- package/page/useCases/ListPages/index.d.ts +9 -0
- package/page/useCases/ListPages/index.js +16 -0
- package/page/useCases/ListPages/index.js.map +1 -0
- package/page/useCases/MovePage/IMovePage.d.ts +4 -0
- package/page/useCases/MovePage/IMovePage.js +7 -0
- package/page/useCases/MovePage/IMovePage.js.map +1 -0
- package/page/useCases/MovePage/MovePage.d.ts +7 -0
- package/page/useCases/MovePage/MovePage.js +17 -0
- package/page/useCases/MovePage/MovePage.js.map +1 -0
- package/page/useCases/MovePage/MovePageWithEvents.d.ts +10 -0
- package/page/useCases/MovePage/MovePageWithEvents.js +36 -0
- package/page/useCases/MovePage/MovePageWithEvents.js.map +1 -0
- package/page/useCases/MovePage/index.d.ts +16 -0
- package/page/useCases/MovePage/index.js +18 -0
- package/page/useCases/MovePage/index.js.map +1 -0
- package/page/useCases/PublishPage/IPublishPage.d.ts +4 -0
- package/page/useCases/PublishPage/IPublishPage.js +7 -0
- package/page/useCases/PublishPage/IPublishPage.js.map +1 -0
- package/page/useCases/PublishPage/PublishPage.d.ts +7 -0
- package/page/useCases/PublishPage/PublishPage.js +17 -0
- package/page/useCases/PublishPage/PublishPage.js.map +1 -0
- package/page/useCases/PublishPage/PublishPageWithEvents.d.ts +10 -0
- package/page/useCases/PublishPage/PublishPageWithEvents.js +31 -0
- package/page/useCases/PublishPage/PublishPageWithEvents.js.map +1 -0
- package/page/useCases/PublishPage/index.d.ts +16 -0
- package/page/useCases/PublishPage/index.js +18 -0
- package/page/useCases/PublishPage/index.js.map +1 -0
- package/page/useCases/UnpublishPage/IUnpublishPage.d.ts +4 -0
- package/page/useCases/UnpublishPage/IUnpublishPage.js +7 -0
- package/page/useCases/UnpublishPage/IUnpublishPage.js.map +1 -0
- package/page/useCases/UnpublishPage/UnpublishPage.d.ts +7 -0
- package/page/useCases/UnpublishPage/UnpublishPage.js +17 -0
- package/page/useCases/UnpublishPage/UnpublishPage.js.map +1 -0
- package/page/useCases/UnpublishPage/UnpublishPageWithEvents.d.ts +10 -0
- package/page/useCases/UnpublishPage/UnpublishPageWithEvents.js +31 -0
- package/page/useCases/UnpublishPage/UnpublishPageWithEvents.js.map +1 -0
- package/page/useCases/UnpublishPage/index.d.ts +16 -0
- package/page/useCases/UnpublishPage/index.js +18 -0
- package/page/useCases/UnpublishPage/index.js.map +1 -0
- package/page/useCases/UpdatePage/IUpdatePage.d.ts +4 -0
- package/page/useCases/UpdatePage/IUpdatePage.js +7 -0
- package/page/useCases/UpdatePage/IUpdatePage.js.map +1 -0
- package/page/useCases/UpdatePage/UpdatePage.d.ts +7 -0
- package/page/useCases/UpdatePage/UpdatePage.js +20 -0
- package/page/useCases/UpdatePage/UpdatePage.js.map +1 -0
- package/page/useCases/UpdatePage/UpdatePageWithEvents.d.ts +10 -0
- package/page/useCases/UpdatePage/UpdatePageWithEvents.js +40 -0
- package/page/useCases/UpdatePage/UpdatePageWithEvents.js.map +1 -0
- package/page/useCases/UpdatePage/index.d.ts +16 -0
- package/page/useCases/UpdatePage/index.js +18 -0
- package/page/useCases/UpdatePage/index.js.map +1 -0
- package/page/useCases/index.d.ts +9 -0
- package/page/useCases/index.js +106 -0
- package/page/useCases/index.js.map +1 -0
- package/types.d.ts +33 -0
- package/types.js +7 -0
- package/types.js.map +1 -0
- package/utils/ensureAuthentication.d.ts +2 -0
- package/utils/ensureAuthentication.js +16 -0
- package/utils/ensureAuthentication.js.map +1 -0
- package/utils/resolve.d.ts +3 -0
- package/utils/resolve.js +26 -0
- package/utils/resolve.js.map +1 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) Webiny
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# @webiny/api-aco
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@webiny/api-aco)
|
|
4
|
+
[](https://www.npmjs.com/package/@webiny/api-aco)
|
|
5
|
+
[](https://github.com/prettier/prettier)
|
|
6
|
+
[](http://makeapullrequest.com)
|
|
7
|
+
|
|
8
|
+
## Install
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
npm install --save @webiny/api-aco
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Or if you prefer yarn:
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
yarn add @webiny/api-aco
|
|
18
|
+
```
|
|
19
|
+
## Testing
|
|
20
|
+
|
|
21
|
+
To run tests api-aco tests with targeted storage operations loaded use:
|
|
22
|
+
|
|
23
|
+
### DynamoDB
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
yarn test packages/api-aco/* --keyword=cms:ddb --keyword=aco:base
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### DynamoDB + ElasticSearch
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
yarn test packages/api-aco/* --keyword=cms:ddb-es --keyword=aco:base
|
|
33
|
+
```
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { WebsiteBuilderContext, WebsiteBuilderContextObject } from "./types";
|
|
2
|
+
export declare class WebsiteBuilderContextSetup {
|
|
3
|
+
private readonly context;
|
|
4
|
+
constructor(context: WebsiteBuilderContext);
|
|
5
|
+
setupContext(): Promise<WebsiteBuilderContextObject>;
|
|
6
|
+
private getLocaleCode;
|
|
7
|
+
private getIdentity;
|
|
8
|
+
private getTenantId;
|
|
9
|
+
private getPermissions;
|
|
10
|
+
private setupPageCmsStorageOperations;
|
|
11
|
+
private getModel;
|
|
12
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.WebsiteBuilderContextSetup = void 0;
|
|
8
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
9
|
+
var _apiHeadlessCms = require("@webiny/api-headless-cms");
|
|
10
|
+
var _page = require("./page/page.model");
|
|
11
|
+
var _createWebsiteBuilder = require("./createWebsiteBuilder");
|
|
12
|
+
var _page2 = require("./page/page.modelModifier");
|
|
13
|
+
var _CmsPagesStorage = require("./page/CmsPagesStorage");
|
|
14
|
+
class WebsiteBuilderContextSetup {
|
|
15
|
+
constructor(context) {
|
|
16
|
+
this.context = context;
|
|
17
|
+
}
|
|
18
|
+
async setupContext() {
|
|
19
|
+
const storageOperations = {};
|
|
20
|
+
const pageStorageOps = await this.context.security.withoutAuthorization(() => {
|
|
21
|
+
return this.setupPageCmsStorageOperations();
|
|
22
|
+
});
|
|
23
|
+
if (pageStorageOps) {
|
|
24
|
+
storageOperations.pages = pageStorageOps;
|
|
25
|
+
return (0, _createWebsiteBuilder.createWebsiteBuilder)({
|
|
26
|
+
storageOperations,
|
|
27
|
+
getTenantId: this.getTenantId.bind(this),
|
|
28
|
+
getLocaleCode: this.getLocaleCode.bind(this),
|
|
29
|
+
getIdentity: this.getIdentity.bind(this),
|
|
30
|
+
getPermissions: this.getPermissions.bind(this),
|
|
31
|
+
// TODO: maybe this is no longer necessary, as this wil be managed by CMS?
|
|
32
|
+
WEBINY_VERSION: this.context.WEBINY_VERSION
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
return {};
|
|
36
|
+
}
|
|
37
|
+
getLocaleCode() {
|
|
38
|
+
const locale = this.context.i18n.getContentLocale();
|
|
39
|
+
if (!locale) {
|
|
40
|
+
throw new _error.default("Missing locale on context.i18n locale in File Manager API.", "LOCALE_ERROR");
|
|
41
|
+
}
|
|
42
|
+
return locale.code;
|
|
43
|
+
}
|
|
44
|
+
getIdentity() {
|
|
45
|
+
return this.context.security.getIdentity();
|
|
46
|
+
}
|
|
47
|
+
getTenantId() {
|
|
48
|
+
return this.context.tenancy.getCurrentTenant().id;
|
|
49
|
+
}
|
|
50
|
+
async getPermissions(name) {
|
|
51
|
+
return this.context.security.getPermissions(name);
|
|
52
|
+
}
|
|
53
|
+
async setupPageCmsStorageOperations() {
|
|
54
|
+
if (!(await (0, _apiHeadlessCms.isHeadlessCmsReady)(this.context))) {
|
|
55
|
+
console.log("Installation pending!");
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// This registers code plugins (model group, models)
|
|
60
|
+
const pageModelDefinition = (0, _page.createPageModel)();
|
|
61
|
+
const modelModifiers = this.context.plugins.byType(_page2.CmsModelModifierPlugin.type);
|
|
62
|
+
for (const modifier of modelModifiers) {
|
|
63
|
+
await modifier.modifyModel(pageModelDefinition);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Finally, register all plugins
|
|
67
|
+
this.context.plugins.register([new _apiHeadlessCms.CmsModelPlugin(pageModelDefinition)]);
|
|
68
|
+
|
|
69
|
+
// Now load the page model registered in the previous step
|
|
70
|
+
const pageModel = await this.getModel(_page.PAGE_MODEL_ID);
|
|
71
|
+
|
|
72
|
+
// Overwrite the original `pages` storage ops
|
|
73
|
+
return await _CmsPagesStorage.CmsPagesStorage.create({
|
|
74
|
+
pageModel,
|
|
75
|
+
cms: this.context.cms
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
async getModel(modelId) {
|
|
79
|
+
const model = await this.context.cms.getModel(modelId);
|
|
80
|
+
if (!model) {
|
|
81
|
+
throw new _error.default({
|
|
82
|
+
code: "MODEL_NOT_FOUND",
|
|
83
|
+
message: `Content model "${modelId}" was not found!`
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
return model;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.WebsiteBuilderContextSetup = WebsiteBuilderContextSetup;
|
|
90
|
+
|
|
91
|
+
//# sourceMappingURL=WebsiteBuilderContextSetup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_apiHeadlessCms","_page","_createWebsiteBuilder","_page2","_CmsPagesStorage","WebsiteBuilderContextSetup","constructor","context","setupContext","storageOperations","pageStorageOps","security","withoutAuthorization","setupPageCmsStorageOperations","pages","createWebsiteBuilder","getTenantId","bind","getLocaleCode","getIdentity","getPermissions","WEBINY_VERSION","locale","i18n","getContentLocale","WebinyError","code","tenancy","getCurrentTenant","id","name","isHeadlessCmsReady","console","log","pageModelDefinition","createPageModel","modelModifiers","plugins","byType","CmsModelModifierPlugin","type","modifier","modifyModel","register","CmsModelPlugin","pageModel","getModel","PAGE_MODEL_ID","CmsPagesStorage","create","cms","modelId","model","message","exports"],"sources":["WebsiteBuilderContextSetup.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsModelPlugin, isHeadlessCmsReady } from \"@webiny/api-headless-cms\";\nimport { createPageModel, PAGE_MODEL_ID } from \"~/page/page.model\";\nimport type { SecurityPermission } from \"@webiny/api-security/types\";\nimport type {\n WebsiteBuilderContext,\n WebsiteBuilderContextObject,\n WebsiteBuilderStorageOperations\n} from \"~/types\";\nimport { createWebsiteBuilder } from \"~/createWebsiteBuilder\";\nimport { CmsModelModifierPlugin } from \"~/page/page.modelModifier\";\nimport { CmsPagesStorage } from \"~/page/CmsPagesStorage\";\n\nexport class WebsiteBuilderContextSetup {\n private readonly context: WebsiteBuilderContext;\n\n constructor(context: WebsiteBuilderContext) {\n this.context = context;\n }\n\n async setupContext() {\n const storageOperations = {} as WebsiteBuilderStorageOperations;\n\n const pageStorageOps = await this.context.security.withoutAuthorization(() => {\n return this.setupPageCmsStorageOperations();\n });\n\n if (pageStorageOps) {\n storageOperations.pages = pageStorageOps;\n\n return createWebsiteBuilder({\n storageOperations,\n getTenantId: this.getTenantId.bind(this),\n getLocaleCode: this.getLocaleCode.bind(this),\n getIdentity: this.getIdentity.bind(this),\n getPermissions: this.getPermissions.bind(this),\n // TODO: maybe this is no longer necessary, as this wil be managed by CMS?\n WEBINY_VERSION: this.context.WEBINY_VERSION\n });\n }\n\n return {} as WebsiteBuilderContextObject;\n }\n\n private getLocaleCode() {\n const locale = this.context.i18n.getContentLocale();\n if (!locale) {\n throw new WebinyError(\n \"Missing locale on context.i18n locale in File Manager API.\",\n \"LOCALE_ERROR\"\n );\n }\n return locale.code;\n }\n\n private getIdentity() {\n return this.context.security.getIdentity();\n }\n\n private getTenantId() {\n return this.context.tenancy.getCurrentTenant().id;\n }\n\n private async getPermissions<T extends SecurityPermission = SecurityPermission>(\n name: string\n ): Promise<T[]> {\n return this.context.security.getPermissions(name);\n }\n\n private async setupPageCmsStorageOperations() {\n if (!(await isHeadlessCmsReady(this.context))) {\n console.log(\"Installation pending!\");\n return;\n }\n\n // This registers code plugins (model group, models)\n const pageModelDefinition = createPageModel();\n\n const modelModifiers = this.context.plugins.byType<CmsModelModifierPlugin>(\n CmsModelModifierPlugin.type\n );\n\n for (const modifier of modelModifiers) {\n await modifier.modifyModel(pageModelDefinition);\n }\n\n // Finally, register all plugins\n this.context.plugins.register([new CmsModelPlugin(pageModelDefinition)]);\n\n // Now load the page model registered in the previous step\n const pageModel = await this.getModel(PAGE_MODEL_ID);\n\n // Overwrite the original `pages` storage ops\n return await CmsPagesStorage.create({\n pageModel,\n cms: this.context.cms\n });\n }\n\n private async getModel(modelId: string) {\n const model = await this.context.cms.getModel(modelId);\n if (!model) {\n throw new WebinyError({\n code: \"MODEL_NOT_FOUND\",\n message: `Content model \"${modelId}\" was not found!`\n });\n }\n\n return model;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/constants.d.ts
ADDED
package/constants.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.WEBSITE_BUILDER_SETTINGS = exports.WEBSITE_BUILDER_INTEGRATIONS = exports.ROOT_FOLDER = void 0;
|
|
7
|
+
const ROOT_FOLDER = exports.ROOT_FOLDER = "root";
|
|
8
|
+
const WEBSITE_BUILDER_SETTINGS = exports.WEBSITE_BUILDER_SETTINGS = "WebsiteBuilder/Settings";
|
|
9
|
+
const WEBSITE_BUILDER_INTEGRATIONS = exports.WEBSITE_BUILDER_INTEGRATIONS = "WebsiteBuilder/Settings/Integrations";
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=constants.js.map
|
package/constants.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ROOT_FOLDER","exports","WEBSITE_BUILDER_SETTINGS","WEBSITE_BUILDER_INTEGRATIONS"],"sources":["constants.ts"],"sourcesContent":["export const ROOT_FOLDER = \"root\";\nexport const WEBSITE_BUILDER_SETTINGS = \"WebsiteBuilder/Settings\";\nexport const WEBSITE_BUILDER_INTEGRATIONS = \"WebsiteBuilder/Settings/Integrations\";\n"],"mappings":";;;;;;AAAO,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,MAAM;AAC1B,MAAME,wBAAwB,GAAAD,OAAA,CAAAC,wBAAA,GAAG,yBAAyB;AAC1D,MAAMC,4BAA4B,GAAAF,OAAA,CAAAE,4BAAA,GAAG,sCAAsC","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createWebsiteBuilder = void 0;
|
|
7
|
+
var _page = require("./page/page.crud");
|
|
8
|
+
const createWebsiteBuilder = config => {
|
|
9
|
+
const pagesCrud = (0, _page.createPagesCrud)(config);
|
|
10
|
+
return {
|
|
11
|
+
page: pagesCrud
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
exports.createWebsiteBuilder = createWebsiteBuilder;
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=createWebsiteBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_page","require","createWebsiteBuilder","config","pagesCrud","createPagesCrud","page","exports"],"sources":["createWebsiteBuilder.ts"],"sourcesContent":["import type { WebsiteBuilderConfig, WebsiteBuilderContextObject } from \"~/types\";\nimport { createPagesCrud } from \"~/page/page.crud\";\n\nexport const createWebsiteBuilder = (config: WebsiteBuilderConfig): WebsiteBuilderContextObject => {\n const pagesCrud = createPagesCrud(config);\n\n return {\n page: pagesCrud\n };\n};\n"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AAEO,MAAMC,oBAAoB,GAAIC,MAA4B,IAAkC;EAC/F,MAAMC,SAAS,GAAG,IAAAC,qBAAe,EAACF,MAAM,CAAC;EAEzC,OAAO;IACHG,IAAI,EAAEF;EACV,CAAC;AACL,CAAC;AAACG,OAAA,CAAAL,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ContextPlugin } from "@webiny/api";
|
|
2
|
+
import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
|
|
3
|
+
import type { WebsiteBuilderContext } from "./types";
|
|
4
|
+
export declare const createWebsiteBuilderGraphQL: () => (GraphQLSchemaPlugin<import("@webiny/api/types").Context> | ContextPlugin<WebsiteBuilderContext>)[];
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createWebsiteBuilderGraphQL = void 0;
|
|
7
|
+
var _api = require("@webiny/api");
|
|
8
|
+
var _apiHeadlessCms = require("@webiny/api-headless-cms");
|
|
9
|
+
var _handlerGraphql = require("@webiny/handler-graphql");
|
|
10
|
+
var _createFieldTypePluginRecords = require("@webiny/api-headless-cms/graphql/schema/createFieldTypePluginRecords");
|
|
11
|
+
var _getSchemaFromFieldPlugins = require("@webiny/api-headless-cms/utils/getSchemaFromFieldPlugins");
|
|
12
|
+
var _page = require("./page/page.model");
|
|
13
|
+
var _page2 = require("./page/page.gql");
|
|
14
|
+
const emptyResolver = () => ({});
|
|
15
|
+
const baseSchema = new _handlerGraphql.GraphQLSchemaPlugin({
|
|
16
|
+
typeDefs: /* GraphQL */`
|
|
17
|
+
type WbQuery {
|
|
18
|
+
_empty: String
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
type WbMutation {
|
|
22
|
+
_empty: String
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
type WbMeta {
|
|
26
|
+
hasMoreItems: Boolean
|
|
27
|
+
totalCount: Int
|
|
28
|
+
cursor: String
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
type WbIdentity {
|
|
32
|
+
id: ID
|
|
33
|
+
displayName: String
|
|
34
|
+
type: String
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
input WbIdentityInput {
|
|
38
|
+
id: String!
|
|
39
|
+
displayName: String!
|
|
40
|
+
type: String!
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
type WbLocation {
|
|
44
|
+
folderId: String
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
input WbLocationInput {
|
|
48
|
+
folderId: String
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
input WbLocationWhereInput {
|
|
52
|
+
folderId: ID
|
|
53
|
+
folderId_in: [ID!]
|
|
54
|
+
folderId_not: ID
|
|
55
|
+
folderId_not_in: [ID!]
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
type WbError {
|
|
59
|
+
code: String
|
|
60
|
+
message: String
|
|
61
|
+
data: JSON
|
|
62
|
+
stack: String
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
type WbBooleanResponse {
|
|
66
|
+
data: Boolean
|
|
67
|
+
error: WbError
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
extend type Query {
|
|
71
|
+
websiteBuilder: WbQuery
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
extend type Mutation {
|
|
75
|
+
websiteBuilder: WbMutation
|
|
76
|
+
}
|
|
77
|
+
`,
|
|
78
|
+
resolvers: {
|
|
79
|
+
Query: {
|
|
80
|
+
websiteBuilder: emptyResolver
|
|
81
|
+
},
|
|
82
|
+
Mutation: {
|
|
83
|
+
websiteBuilder: emptyResolver
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
const createWebsiteBuilderGraphQL = () => {
|
|
88
|
+
const pageSchema = new _api.ContextPlugin(async context => {
|
|
89
|
+
if (!(await (0, _apiHeadlessCms.isHeadlessCmsReady)(context))) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
await context.security.withoutAuthorization(async () => {
|
|
93
|
+
const model = await context.cms.getModel(_page.PAGE_MODEL_ID);
|
|
94
|
+
const models = await context.cms.listModels();
|
|
95
|
+
const fieldPlugins = (0, _createFieldTypePluginRecords.createFieldTypePluginRecords)(context.plugins);
|
|
96
|
+
|
|
97
|
+
// We need to register all plugins for all the CMS fields.
|
|
98
|
+
const plugins = (0, _getSchemaFromFieldPlugins.createGraphQLSchemaPluginFromFieldPlugins)({
|
|
99
|
+
models,
|
|
100
|
+
type: "manage",
|
|
101
|
+
fieldTypePlugins: fieldPlugins,
|
|
102
|
+
createPlugin: ({
|
|
103
|
+
schema,
|
|
104
|
+
type,
|
|
105
|
+
fieldType
|
|
106
|
+
}) => {
|
|
107
|
+
const plugin = new _handlerGraphql.GraphQLSchemaPlugin(schema);
|
|
108
|
+
plugin.name = `wb.graphql.page.schema.${type}.field.${fieldType}`;
|
|
109
|
+
return plugin;
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
const graphQlPlugin = (0, _page2.createPagesSchema)({
|
|
113
|
+
model,
|
|
114
|
+
models,
|
|
115
|
+
plugins: fieldPlugins
|
|
116
|
+
});
|
|
117
|
+
context.plugins.register([...plugins, graphQlPlugin]);
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
return [baseSchema, pageSchema];
|
|
121
|
+
};
|
|
122
|
+
exports.createWebsiteBuilderGraphQL = createWebsiteBuilderGraphQL;
|
|
123
|
+
|
|
124
|
+
//# sourceMappingURL=createWebsiteBuilderGraphQL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_api","require","_apiHeadlessCms","_handlerGraphql","_createFieldTypePluginRecords","_getSchemaFromFieldPlugins","_page","_page2","emptyResolver","baseSchema","GraphQLSchemaPlugin","typeDefs","resolvers","Query","websiteBuilder","Mutation","createWebsiteBuilderGraphQL","pageSchema","ContextPlugin","context","isHeadlessCmsReady","security","withoutAuthorization","model","cms","getModel","PAGE_MODEL_ID","models","listModels","fieldPlugins","createFieldTypePluginRecords","plugins","createGraphQLSchemaPluginFromFieldPlugins","type","fieldTypePlugins","createPlugin","schema","fieldType","plugin","name","graphQlPlugin","createPagesSchema","register","exports"],"sources":["createWebsiteBuilderGraphQL.ts"],"sourcesContent":["import { ContextPlugin } from \"@webiny/api\";\nimport { isHeadlessCmsReady } from \"@webiny/api-headless-cms\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport type { WebsiteBuilderContext } from \"~/types\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { createFieldTypePluginRecords } from \"@webiny/api-headless-cms/graphql/schema/createFieldTypePluginRecords\";\nimport { createGraphQLSchemaPluginFromFieldPlugins } from \"@webiny/api-headless-cms/utils/getSchemaFromFieldPlugins\";\nimport { PAGE_MODEL_ID } from \"~/page/page.model\";\nimport { createPagesSchema } from \"~/page/page.gql\";\n\nconst emptyResolver = () => ({});\n\nconst baseSchema = new GraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type WbQuery {\n _empty: String\n }\n\n type WbMutation {\n _empty: String\n }\n\n type WbMeta {\n hasMoreItems: Boolean\n totalCount: Int\n cursor: String\n }\n\n type WbIdentity {\n id: ID\n displayName: String\n type: String\n }\n\n input WbIdentityInput {\n id: String!\n displayName: String!\n type: String!\n }\n\n type WbLocation {\n folderId: String\n }\n\n input WbLocationInput {\n folderId: String\n }\n\n input WbLocationWhereInput {\n folderId: ID\n folderId_in: [ID!]\n folderId_not: ID\n folderId_not_in: [ID!]\n }\n\n type WbError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type WbBooleanResponse {\n data: Boolean\n error: WbError\n }\n\n extend type Query {\n websiteBuilder: WbQuery\n }\n\n extend type Mutation {\n websiteBuilder: WbMutation\n }\n `,\n resolvers: {\n Query: {\n websiteBuilder: emptyResolver\n },\n Mutation: {\n websiteBuilder: emptyResolver\n }\n }\n});\n\nexport const createWebsiteBuilderGraphQL = () => {\n const pageSchema = new ContextPlugin<WebsiteBuilderContext>(async context => {\n if (!(await isHeadlessCmsReady(context))) {\n return;\n }\n\n await context.security.withoutAuthorization(async () => {\n const model = (await context.cms.getModel(PAGE_MODEL_ID)) as CmsModel;\n const models = await context.cms.listModels();\n const fieldPlugins = createFieldTypePluginRecords(context.plugins);\n\n // We need to register all plugins for all the CMS fields.\n const plugins = createGraphQLSchemaPluginFromFieldPlugins({\n models,\n type: \"manage\",\n fieldTypePlugins: fieldPlugins,\n createPlugin: ({ schema, type, fieldType }) => {\n const plugin = new GraphQLSchemaPlugin(schema);\n plugin.name = `wb.graphql.page.schema.${type}.field.${fieldType}`;\n return plugin;\n }\n });\n\n const graphQlPlugin = createPagesSchema({\n model,\n models,\n plugins: fieldPlugins\n });\n\n context.plugins.register([...plugins, graphQlPlugin]);\n });\n });\n\n return [baseSchema, pageSchema];\n};\n"],"mappings":";;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AAGA,IAAAG,6BAAA,GAAAH,OAAA;AACA,IAAAI,0BAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAEA,MAAMO,aAAa,GAAGA,CAAA,MAAO,CAAC,CAAC,CAAC;AAEhC,MAAMC,UAAU,GAAG,IAAIC,mCAAmB,CAAC;EACvCC,QAAQ,EAAE,aAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;EACDC,SAAS,EAAE;IACPC,KAAK,EAAE;MACHC,cAAc,EAAEN;IACpB,CAAC;IACDO,QAAQ,EAAE;MACND,cAAc,EAAEN;IACpB;EACJ;AACJ,CAAC,CAAC;AAEK,MAAMQ,2BAA2B,GAAGA,CAAA,KAAM;EAC7C,MAAMC,UAAU,GAAG,IAAIC,kBAAa,CAAwB,MAAMC,OAAO,IAAI;IACzE,IAAI,EAAE,MAAM,IAAAC,kCAAkB,EAACD,OAAO,CAAC,CAAC,EAAE;MACtC;IACJ;IAEA,MAAMA,OAAO,CAACE,QAAQ,CAACC,oBAAoB,CAAC,YAAY;MACpD,MAAMC,KAAK,GAAI,MAAMJ,OAAO,CAACK,GAAG,CAACC,QAAQ,CAACC,mBAAa,CAAc;MACrE,MAAMC,MAAM,GAAG,MAAMR,OAAO,CAACK,GAAG,CAACI,UAAU,CAAC,CAAC;MAC7C,MAAMC,YAAY,GAAG,IAAAC,0DAA4B,EAACX,OAAO,CAACY,OAAO,CAAC;;MAElE;MACA,MAAMA,OAAO,GAAG,IAAAC,oEAAyC,EAAC;QACtDL,MAAM;QACNM,IAAI,EAAE,QAAQ;QACdC,gBAAgB,EAAEL,YAAY;QAC9BM,YAAY,EAAEA,CAAC;UAAEC,MAAM;UAAEH,IAAI;UAAEI;QAAU,CAAC,KAAK;UAC3C,MAAMC,MAAM,GAAG,IAAI5B,mCAAmB,CAAC0B,MAAM,CAAC;UAC9CE,MAAM,CAACC,IAAI,GAAG,0BAA0BN,IAAI,UAAUI,SAAS,EAAE;UACjE,OAAOC,MAAM;QACjB;MACJ,CAAC,CAAC;MAEF,MAAME,aAAa,GAAG,IAAAC,wBAAiB,EAAC;QACpClB,KAAK;QACLI,MAAM;QACNI,OAAO,EAAEF;MACb,CAAC,CAAC;MAEFV,OAAO,CAACY,OAAO,CAACW,QAAQ,CAAC,CAAC,GAAGX,OAAO,EAAES,aAAa,CAAC,CAAC;IACzD,CAAC,CAAC;EACN,CAAC,CAAC;EAEF,OAAO,CAAC/B,UAAU,EAAEQ,UAAU,CAAC;AACnC,CAAC;AAAC0B,OAAA,CAAA3B,2BAAA,GAAAA,2BAAA","ignoreList":[]}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { ContextPlugin } from "@webiny/api";
|
|
2
|
+
import type { WebsiteBuilderContext } from "./types";
|
|
3
|
+
export declare const createWebsiteBuilder: () => (ContextPlugin<WebsiteBuilderContext> | (import("@webiny/handler-graphql").GraphQLSchemaPlugin<import("@webiny/api/types").Context> | ContextPlugin<WebsiteBuilderContext>)[])[];
|
package/index.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createWebsiteBuilder = void 0;
|
|
7
|
+
var _api = require("@webiny/api");
|
|
8
|
+
var _WebsiteBuilderContextSetup = require("./WebsiteBuilderContextSetup");
|
|
9
|
+
var _createWebsiteBuilderGraphQL = require("./createWebsiteBuilderGraphQL");
|
|
10
|
+
const createWebsiteBuilderContext = () => {
|
|
11
|
+
const plugin = new _api.ContextPlugin(async context => {
|
|
12
|
+
const websiteBuilder = new _WebsiteBuilderContextSetup.WebsiteBuilderContextSetup(context);
|
|
13
|
+
context.websiteBuilder = await websiteBuilder.setupContext();
|
|
14
|
+
});
|
|
15
|
+
plugin.name = "wb.createContext";
|
|
16
|
+
return plugin;
|
|
17
|
+
};
|
|
18
|
+
const createWebsiteBuilder = () => {
|
|
19
|
+
return [createWebsiteBuilderContext(), (0, _createWebsiteBuilderGraphQL.createWebsiteBuilderGraphQL)()];
|
|
20
|
+
};
|
|
21
|
+
exports.createWebsiteBuilder = createWebsiteBuilder;
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
package/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_api","require","_WebsiteBuilderContextSetup","_createWebsiteBuilderGraphQL","createWebsiteBuilderContext","plugin","ContextPlugin","context","websiteBuilder","WebsiteBuilderContextSetup","setupContext","name","createWebsiteBuilder","createWebsiteBuilderGraphQL","exports"],"sources":["index.ts"],"sourcesContent":["import { ContextPlugin } from \"@webiny/api\";\nimport { WebsiteBuilderContextSetup } from \"~/WebsiteBuilderContextSetup\";\nimport type { WebsiteBuilderContext } from \"~/types\";\nimport { createWebsiteBuilderGraphQL } from \"~/createWebsiteBuilderGraphQL\";\n\nconst createWebsiteBuilderContext = () => {\n const plugin = new ContextPlugin<WebsiteBuilderContext>(async context => {\n const websiteBuilder = new WebsiteBuilderContextSetup(context);\n context.websiteBuilder = await websiteBuilder.setupContext();\n });\n\n plugin.name = \"wb.createContext\";\n\n return plugin;\n};\n\nexport const createWebsiteBuilder = () => {\n return [createWebsiteBuilderContext(), createWebsiteBuilderGraphQL()];\n};\n"],"mappings":";;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,2BAAA,GAAAD,OAAA;AAEA,IAAAE,4BAAA,GAAAF,OAAA;AAEA,MAAMG,2BAA2B,GAAGA,CAAA,KAAM;EACtC,MAAMC,MAAM,GAAG,IAAIC,kBAAa,CAAwB,MAAMC,OAAO,IAAI;IACrE,MAAMC,cAAc,GAAG,IAAIC,sDAA0B,CAACF,OAAO,CAAC;IAC9DA,OAAO,CAACC,cAAc,GAAG,MAAMA,cAAc,CAACE,YAAY,CAAC,CAAC;EAChE,CAAC,CAAC;EAEFL,MAAM,CAACM,IAAI,GAAG,kBAAkB;EAEhC,OAAON,MAAM;AACjB,CAAC;AAEM,MAAMO,oBAAoB,GAAGA,CAAA,KAAM;EACtC,OAAO,CAACR,2BAA2B,CAAC,CAAC,EAAE,IAAAS,wDAA2B,EAAC,CAAC,CAAC;AACzE,CAAC;AAACC,OAAA,CAAAF,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@webiny/api-website-builder",
|
|
3
|
+
"version": "6.0.0-alpha.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"wb:base"
|
|
7
|
+
],
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/webiny/webiny-js.git",
|
|
11
|
+
"directory": "packages/api-website-builder"
|
|
12
|
+
},
|
|
13
|
+
"description": "A set of backend website builder related features.",
|
|
14
|
+
"author": "Webiny Ltd.",
|
|
15
|
+
"license": "MIT",
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "node ../cli/bin.js run build",
|
|
18
|
+
"watch": "node ../cli/bin.js run watch"
|
|
19
|
+
},
|
|
20
|
+
"publishConfig": {
|
|
21
|
+
"access": "public",
|
|
22
|
+
"directory": "dist"
|
|
23
|
+
},
|
|
24
|
+
"dependencies": {
|
|
25
|
+
"@webiny/api": "6.0.0-alpha.0",
|
|
26
|
+
"@webiny/api-admin-settings": "6.0.0-alpha.0",
|
|
27
|
+
"@webiny/api-headless-cms": "6.0.0-alpha.0",
|
|
28
|
+
"@webiny/api-i18n": "6.0.0-alpha.0",
|
|
29
|
+
"@webiny/api-security": "6.0.0-alpha.0",
|
|
30
|
+
"@webiny/api-tenancy": "6.0.0-alpha.0",
|
|
31
|
+
"@webiny/error": "6.0.0-alpha.0",
|
|
32
|
+
"@webiny/handler": "6.0.0-alpha.0",
|
|
33
|
+
"@webiny/handler-graphql": "6.0.0-alpha.0",
|
|
34
|
+
"@webiny/pubsub": "6.0.0-alpha.0",
|
|
35
|
+
"lodash": "4.17.21"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@webiny/api-admin-users": "6.0.0-alpha.0",
|
|
39
|
+
"@webiny/api-file-manager": "6.0.0-alpha.0",
|
|
40
|
+
"@webiny/api-i18n-ddb": "6.0.0-alpha.0",
|
|
41
|
+
"@webiny/api-security-so-ddb": "6.0.0-alpha.0",
|
|
42
|
+
"@webiny/api-tenancy-so-ddb": "6.0.0-alpha.0",
|
|
43
|
+
"@webiny/api-wcp": "6.0.0-alpha.0",
|
|
44
|
+
"@webiny/handler-aws": "6.0.0-alpha.0",
|
|
45
|
+
"@webiny/plugins": "6.0.0-alpha.0",
|
|
46
|
+
"@webiny/project-utils": "6.0.0-alpha.0",
|
|
47
|
+
"@webiny/wcp": "6.0.0-alpha.0",
|
|
48
|
+
"graphql": "15.9.0",
|
|
49
|
+
"prettier": "2.8.8",
|
|
50
|
+
"rimraf": "6.0.1",
|
|
51
|
+
"typescript": "5.3.3"
|
|
52
|
+
},
|
|
53
|
+
"gitHead": "a5b28fed7a242d8f56712197a8ea83aa6d2ed101"
|
|
54
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { CmsModel, HeadlessCms } from "@webiny/api-headless-cms/types";
|
|
2
|
+
import type { WbPage, WbPagesStorageOperations, WbPagesStorageOperationsCreateParams, WbPagesStorageOperationsCreateRevisionFromParams, WbPagesStorageOperationsDeleteParams, WbPagesStorageOperationsGetParams, WbPagesStorageOperationsListParams, WbPagesStorageOperationsListResponse, WbPagesStorageOperationsMoveParams, WbPagesStorageOperationsPublishParams, WbPagesStorageOperationsUnpublishParams, WbPagesStorageOperationsUpdateParams } from "./page.types";
|
|
3
|
+
export declare class CmsPagesStorage implements WbPagesStorageOperations {
|
|
4
|
+
private readonly cms;
|
|
5
|
+
private readonly model;
|
|
6
|
+
static create(params: {
|
|
7
|
+
pageModel: CmsModel;
|
|
8
|
+
cms: HeadlessCms;
|
|
9
|
+
}): Promise<CmsPagesStorage>;
|
|
10
|
+
private constructor();
|
|
11
|
+
get: (params: WbPagesStorageOperationsGetParams) => Promise<WbPage | null>;
|
|
12
|
+
getById: (id: string) => Promise<WbPage | null>;
|
|
13
|
+
getRevisions: (pageId: string) => Promise<WbPage[]>;
|
|
14
|
+
list: (params: WbPagesStorageOperationsListParams) => Promise<WbPagesStorageOperationsListResponse>;
|
|
15
|
+
create: ({ data }: WbPagesStorageOperationsCreateParams) => Promise<WbPage>;
|
|
16
|
+
update: ({ id, data }: WbPagesStorageOperationsUpdateParams) => Promise<WbPage>;
|
|
17
|
+
publish: ({ id }: WbPagesStorageOperationsPublishParams) => Promise<WbPage>;
|
|
18
|
+
unpublish: ({ id }: WbPagesStorageOperationsUnpublishParams) => Promise<WbPage>;
|
|
19
|
+
move: ({ id, folderId }: WbPagesStorageOperationsMoveParams) => Promise<void>;
|
|
20
|
+
createRevisionFrom: ({ id }: WbPagesStorageOperationsCreateRevisionFromParams) => Promise<WbPage>;
|
|
21
|
+
delete: ({ id }: WbPagesStorageOperationsDeleteParams) => Promise<void>;
|
|
22
|
+
private getWbPageFieldValues;
|
|
23
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.CmsPagesStorage = void 0;
|
|
8
|
+
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
9
|
+
class CmsPagesStorage {
|
|
10
|
+
static async create(params) {
|
|
11
|
+
return new CmsPagesStorage(params.pageModel, params.cms);
|
|
12
|
+
}
|
|
13
|
+
constructor(pageModel, cms) {
|
|
14
|
+
this.model = pageModel;
|
|
15
|
+
this.cms = cms;
|
|
16
|
+
}
|
|
17
|
+
get = async params => {
|
|
18
|
+
const entry = await this.cms.getEntry(this.model, params);
|
|
19
|
+
return entry ? this.getWbPageFieldValues(entry) : null;
|
|
20
|
+
};
|
|
21
|
+
getById = async id => {
|
|
22
|
+
const entry = await this.cms.getEntryById(this.model, id);
|
|
23
|
+
return entry ? this.getWbPageFieldValues(entry) : null;
|
|
24
|
+
};
|
|
25
|
+
getRevisions = async pageId => {
|
|
26
|
+
const revisions = await this.cms.getEntryRevisions(this.model, pageId);
|
|
27
|
+
return revisions.map(entry => this.getWbPageFieldValues(entry));
|
|
28
|
+
};
|
|
29
|
+
list = async params => {
|
|
30
|
+
const [entries, meta] = await this.cms.listEntries(this.model, {
|
|
31
|
+
after: params.after,
|
|
32
|
+
limit: params.limit,
|
|
33
|
+
sort: params.sort,
|
|
34
|
+
where: params.where,
|
|
35
|
+
search: params.search
|
|
36
|
+
});
|
|
37
|
+
return [entries.map(entry => this.getWbPageFieldValues(entry)), meta];
|
|
38
|
+
};
|
|
39
|
+
create = async ({
|
|
40
|
+
data
|
|
41
|
+
}) => {
|
|
42
|
+
const entry = await this.cms.createEntry(this.model, data);
|
|
43
|
+
return this.getWbPageFieldValues(entry);
|
|
44
|
+
};
|
|
45
|
+
update = async ({
|
|
46
|
+
id,
|
|
47
|
+
data
|
|
48
|
+
}) => {
|
|
49
|
+
const entry = await this.cms.getEntryById(this.model, id);
|
|
50
|
+
const values = (0, _omit.default)(data, ["id", "tenant", "locale", "webinyVersion"]);
|
|
51
|
+
const updatedEntry = await this.cms.updateEntry(this.model, entry.id, values);
|
|
52
|
+
return this.getWbPageFieldValues(updatedEntry);
|
|
53
|
+
};
|
|
54
|
+
publish = async ({
|
|
55
|
+
id
|
|
56
|
+
}) => {
|
|
57
|
+
const entry = await this.cms.publishEntry(this.model, id);
|
|
58
|
+
return this.getWbPageFieldValues(entry);
|
|
59
|
+
};
|
|
60
|
+
unpublish = async ({
|
|
61
|
+
id
|
|
62
|
+
}) => {
|
|
63
|
+
const entry = await this.cms.unpublishEntry(this.model, id);
|
|
64
|
+
return this.getWbPageFieldValues(entry);
|
|
65
|
+
};
|
|
66
|
+
move = async ({
|
|
67
|
+
id,
|
|
68
|
+
folderId
|
|
69
|
+
}) => {
|
|
70
|
+
await this.cms.moveEntry(this.model, id, folderId);
|
|
71
|
+
};
|
|
72
|
+
createRevisionFrom = async ({
|
|
73
|
+
id
|
|
74
|
+
}) => {
|
|
75
|
+
const entry = await this.cms.createEntryRevisionFrom(this.model, id, {});
|
|
76
|
+
return this.getWbPageFieldValues(entry);
|
|
77
|
+
};
|
|
78
|
+
delete = async ({
|
|
79
|
+
id
|
|
80
|
+
}) => {
|
|
81
|
+
await this.cms.deleteEntry(this.model, id);
|
|
82
|
+
};
|
|
83
|
+
getWbPageFieldValues(entry) {
|
|
84
|
+
return {
|
|
85
|
+
id: entry.id,
|
|
86
|
+
pageId: entry.entryId,
|
|
87
|
+
wbyAco_location: entry.location,
|
|
88
|
+
status: entry.status,
|
|
89
|
+
version: entry.version,
|
|
90
|
+
createdOn: entry.createdOn,
|
|
91
|
+
createdBy: entry.createdBy,
|
|
92
|
+
savedOn: entry.savedOn,
|
|
93
|
+
savedBy: entry.savedBy,
|
|
94
|
+
modifiedOn: entry.modifiedOn,
|
|
95
|
+
modifiedBy: entry.modifiedBy,
|
|
96
|
+
locked: entry.locked,
|
|
97
|
+
tenant: entry.tenant,
|
|
98
|
+
locale: entry.locale,
|
|
99
|
+
webinyVersion: entry.webinyVersion,
|
|
100
|
+
...entry.values
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.CmsPagesStorage = CmsPagesStorage;
|
|
105
|
+
|
|
106
|
+
//# sourceMappingURL=CmsPagesStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_omit","_interopRequireDefault","require","CmsPagesStorage","create","params","pageModel","cms","constructor","model","get","entry","getEntry","getWbPageFieldValues","getById","id","getEntryById","getRevisions","pageId","revisions","getEntryRevisions","map","list","entries","meta","listEntries","after","limit","sort","where","search","data","createEntry","update","values","omit","updatedEntry","updateEntry","publish","publishEntry","unpublish","unpublishEntry","move","folderId","moveEntry","createRevisionFrom","createEntryRevisionFrom","delete","deleteEntry","entryId","wbyAco_location","location","status","version","createdOn","createdBy","savedOn","savedBy","modifiedOn","modifiedBy","locked","tenant","locale","webinyVersion","exports"],"sources":["CmsPagesStorage.ts"],"sourcesContent":["import omit from \"lodash/omit\";\nimport { CmsEntry, CmsModel, HeadlessCms } from \"@webiny/api-headless-cms/types\";\nimport type {\n WbPage,\n WbPagesStorageOperations,\n WbPagesStorageOperationsCreateParams,\n WbPagesStorageOperationsCreateRevisionFromParams,\n WbPagesStorageOperationsDeleteParams,\n WbPagesStorageOperationsGetParams,\n WbPagesStorageOperationsListParams,\n WbPagesStorageOperationsListResponse,\n WbPagesStorageOperationsMoveParams,\n WbPagesStorageOperationsPublishParams,\n WbPagesStorageOperationsUnpublishParams,\n WbPagesStorageOperationsUpdateParams\n} from \"~/page/page.types\";\n\nexport class CmsPagesStorage implements WbPagesStorageOperations {\n private readonly cms: HeadlessCms;\n private readonly model: CmsModel;\n\n static async create(params: { pageModel: CmsModel; cms: HeadlessCms }) {\n return new CmsPagesStorage(params.pageModel, params.cms);\n }\n\n private constructor(pageModel: CmsModel, cms: HeadlessCms) {\n this.model = pageModel;\n this.cms = cms;\n }\n\n public get = async (params: WbPagesStorageOperationsGetParams): Promise<WbPage | null> => {\n const entry = await this.cms.getEntry(this.model, params);\n return entry ? this.getWbPageFieldValues(entry) : null;\n };\n\n public getById = async (id: string): Promise<WbPage | null> => {\n const entry = await this.cms.getEntryById(this.model, id);\n return entry ? this.getWbPageFieldValues(entry) : null;\n };\n\n public getRevisions = async (pageId: string): Promise<WbPage[]> => {\n const revisions = await this.cms.getEntryRevisions(this.model, pageId);\n return revisions.map(entry => this.getWbPageFieldValues(entry));\n };\n\n public list = async (\n params: WbPagesStorageOperationsListParams\n ): Promise<WbPagesStorageOperationsListResponse> => {\n const [entries, meta] = await this.cms.listEntries(this.model, {\n after: params.after,\n limit: params.limit,\n sort: params.sort,\n where: params.where,\n search: params.search\n });\n\n return [entries.map(entry => this.getWbPageFieldValues(entry)), meta];\n };\n\n public create = async ({ data }: WbPagesStorageOperationsCreateParams): Promise<WbPage> => {\n const entry = await this.cms.createEntry(this.model, data);\n return this.getWbPageFieldValues(entry);\n };\n\n public update = async ({ id, data }: WbPagesStorageOperationsUpdateParams): Promise<WbPage> => {\n const entry = await this.cms.getEntryById(this.model, id);\n\n const values = omit(data, [\"id\", \"tenant\", \"locale\", \"webinyVersion\"]);\n\n const updatedEntry = await this.cms.updateEntry(this.model, entry.id, values);\n\n return this.getWbPageFieldValues(updatedEntry);\n };\n\n public publish = async ({ id }: WbPagesStorageOperationsPublishParams): Promise<WbPage> => {\n const entry = await this.cms.publishEntry(this.model, id);\n return this.getWbPageFieldValues(entry);\n };\n\n public unpublish = async ({ id }: WbPagesStorageOperationsUnpublishParams): Promise<WbPage> => {\n const entry = await this.cms.unpublishEntry(this.model, id);\n return this.getWbPageFieldValues(entry);\n };\n\n public move = async ({ id, folderId }: WbPagesStorageOperationsMoveParams): Promise<void> => {\n await this.cms.moveEntry(this.model, id, folderId);\n };\n\n public createRevisionFrom = async ({\n id\n }: WbPagesStorageOperationsCreateRevisionFromParams): Promise<WbPage> => {\n const entry = await this.cms.createEntryRevisionFrom(this.model, id, {});\n return this.getWbPageFieldValues(entry);\n };\n\n public delete = async ({ id }: WbPagesStorageOperationsDeleteParams): Promise<void> => {\n await this.cms.deleteEntry(this.model, id);\n };\n\n private getWbPageFieldValues(entry: CmsEntry) {\n return {\n id: entry.id,\n pageId: entry.entryId,\n wbyAco_location: entry.location,\n status: entry.status,\n version: entry.version,\n createdOn: entry.createdOn,\n createdBy: entry.createdBy,\n savedOn: entry.savedOn,\n savedBy: entry.savedBy,\n modifiedOn: entry.modifiedOn,\n modifiedBy: entry.modifiedBy,\n locked: entry.locked,\n tenant: entry.tenant,\n locale: entry.locale,\n webinyVersion: entry.webinyVersion,\n ...entry.values\n } as WbPage;\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAiBO,MAAMC,eAAe,CAAqC;EAI7D,aAAaC,MAAMA,CAACC,MAAiD,EAAE;IACnE,OAAO,IAAIF,eAAe,CAACE,MAAM,CAACC,SAAS,EAAED,MAAM,CAACE,GAAG,CAAC;EAC5D;EAEQC,WAAWA,CAACF,SAAmB,EAAEC,GAAgB,EAAE;IACvD,IAAI,CAACE,KAAK,GAAGH,SAAS;IACtB,IAAI,CAACC,GAAG,GAAGA,GAAG;EAClB;EAEOG,GAAG,GAAG,MAAOL,MAAyC,IAA6B;IACtF,MAAMM,KAAK,GAAG,MAAM,IAAI,CAACJ,GAAG,CAACK,QAAQ,CAAC,IAAI,CAACH,KAAK,EAAEJ,MAAM,CAAC;IACzD,OAAOM,KAAK,GAAG,IAAI,CAACE,oBAAoB,CAACF,KAAK,CAAC,GAAG,IAAI;EAC1D,CAAC;EAEMG,OAAO,GAAG,MAAOC,EAAU,IAA6B;IAC3D,MAAMJ,KAAK,GAAG,MAAM,IAAI,CAACJ,GAAG,CAACS,YAAY,CAAC,IAAI,CAACP,KAAK,EAAEM,EAAE,CAAC;IACzD,OAAOJ,KAAK,GAAG,IAAI,CAACE,oBAAoB,CAACF,KAAK,CAAC,GAAG,IAAI;EAC1D,CAAC;EAEMM,YAAY,GAAG,MAAOC,MAAc,IAAwB;IAC/D,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACZ,GAAG,CAACa,iBAAiB,CAAC,IAAI,CAACX,KAAK,EAAES,MAAM,CAAC;IACtE,OAAOC,SAAS,CAACE,GAAG,CAACV,KAAK,IAAI,IAAI,CAACE,oBAAoB,CAACF,KAAK,CAAC,CAAC;EACnE,CAAC;EAEMW,IAAI,GAAG,MACVjB,MAA0C,IACM;IAChD,MAAM,CAACkB,OAAO,EAAEC,IAAI,CAAC,GAAG,MAAM,IAAI,CAACjB,GAAG,CAACkB,WAAW,CAAC,IAAI,CAAChB,KAAK,EAAE;MAC3DiB,KAAK,EAAErB,MAAM,CAACqB,KAAK;MACnBC,KAAK,EAAEtB,MAAM,CAACsB,KAAK;MACnBC,IAAI,EAAEvB,MAAM,CAACuB,IAAI;MACjBC,KAAK,EAAExB,MAAM,CAACwB,KAAK;MACnBC,MAAM,EAAEzB,MAAM,CAACyB;IACnB,CAAC,CAAC;IAEF,OAAO,CAACP,OAAO,CAACF,GAAG,CAACV,KAAK,IAAI,IAAI,CAACE,oBAAoB,CAACF,KAAK,CAAC,CAAC,EAAEa,IAAI,CAAC;EACzE,CAAC;EAEMpB,MAAM,GAAG,MAAAA,CAAO;IAAE2B;EAA2C,CAAC,KAAsB;IACvF,MAAMpB,KAAK,GAAG,MAAM,IAAI,CAACJ,GAAG,CAACyB,WAAW,CAAC,IAAI,CAACvB,KAAK,EAAEsB,IAAI,CAAC;IAC1D,OAAO,IAAI,CAAClB,oBAAoB,CAACF,KAAK,CAAC;EAC3C,CAAC;EAEMsB,MAAM,GAAG,MAAAA,CAAO;IAAElB,EAAE;IAAEgB;EAA2C,CAAC,KAAsB;IAC3F,MAAMpB,KAAK,GAAG,MAAM,IAAI,CAACJ,GAAG,CAACS,YAAY,CAAC,IAAI,CAACP,KAAK,EAAEM,EAAE,CAAC;IAEzD,MAAMmB,MAAM,GAAG,IAAAC,aAAI,EAACJ,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IAEtE,MAAMK,YAAY,GAAG,MAAM,IAAI,CAAC7B,GAAG,CAAC8B,WAAW,CAAC,IAAI,CAAC5B,KAAK,EAAEE,KAAK,CAACI,EAAE,EAAEmB,MAAM,CAAC;IAE7E,OAAO,IAAI,CAACrB,oBAAoB,CAACuB,YAAY,CAAC;EAClD,CAAC;EAEME,OAAO,GAAG,MAAAA,CAAO;IAAEvB;EAA0C,CAAC,KAAsB;IACvF,MAAMJ,KAAK,GAAG,MAAM,IAAI,CAACJ,GAAG,CAACgC,YAAY,CAAC,IAAI,CAAC9B,KAAK,EAAEM,EAAE,CAAC;IACzD,OAAO,IAAI,CAACF,oBAAoB,CAACF,KAAK,CAAC;EAC3C,CAAC;EAEM6B,SAAS,GAAG,MAAAA,CAAO;IAAEzB;EAA4C,CAAC,KAAsB;IAC3F,MAAMJ,KAAK,GAAG,MAAM,IAAI,CAACJ,GAAG,CAACkC,cAAc,CAAC,IAAI,CAAChC,KAAK,EAAEM,EAAE,CAAC;IAC3D,OAAO,IAAI,CAACF,oBAAoB,CAACF,KAAK,CAAC;EAC3C,CAAC;EAEM+B,IAAI,GAAG,MAAAA,CAAO;IAAE3B,EAAE;IAAE4B;EAA6C,CAAC,KAAoB;IACzF,MAAM,IAAI,CAACpC,GAAG,CAACqC,SAAS,CAAC,IAAI,CAACnC,KAAK,EAAEM,EAAE,EAAE4B,QAAQ,CAAC;EACtD,CAAC;EAEME,kBAAkB,GAAG,MAAAA,CAAO;IAC/B9B;EAC8C,CAAC,KAAsB;IACrE,MAAMJ,KAAK,GAAG,MAAM,IAAI,CAACJ,GAAG,CAACuC,uBAAuB,CAAC,IAAI,CAACrC,KAAK,EAAEM,EAAE,EAAE,CAAC,CAAC,CAAC;IACxE,OAAO,IAAI,CAACF,oBAAoB,CAACF,KAAK,CAAC;EAC3C,CAAC;EAEMoC,MAAM,GAAG,MAAAA,CAAO;IAAEhC;EAAyC,CAAC,KAAoB;IACnF,MAAM,IAAI,CAACR,GAAG,CAACyC,WAAW,CAAC,IAAI,CAACvC,KAAK,EAAEM,EAAE,CAAC;EAC9C,CAAC;EAEOF,oBAAoBA,CAACF,KAAe,EAAE;IAC1C,OAAO;MACHI,EAAE,EAAEJ,KAAK,CAACI,EAAE;MACZG,MAAM,EAAEP,KAAK,CAACsC,OAAO;MACrBC,eAAe,EAAEvC,KAAK,CAACwC,QAAQ;MAC/BC,MAAM,EAAEzC,KAAK,CAACyC,MAAM;MACpBC,OAAO,EAAE1C,KAAK,CAAC0C,OAAO;MACtBC,SAAS,EAAE3C,KAAK,CAAC2C,SAAS;MAC1BC,SAAS,EAAE5C,KAAK,CAAC4C,SAAS;MAC1BC,OAAO,EAAE7C,KAAK,CAAC6C,OAAO;MACtBC,OAAO,EAAE9C,KAAK,CAAC8C,OAAO;MACtBC,UAAU,EAAE/C,KAAK,CAAC+C,UAAU;MAC5BC,UAAU,EAAEhD,KAAK,CAACgD,UAAU;MAC5BC,MAAM,EAAEjD,KAAK,CAACiD,MAAM;MACpBC,MAAM,EAAElD,KAAK,CAACkD,MAAM;MACpBC,MAAM,EAAEnD,KAAK,CAACmD,MAAM;MACpBC,aAAa,EAAEpD,KAAK,CAACoD,aAAa;MAClC,GAAGpD,KAAK,CAACuB;IACb,CAAC;EACL;AACJ;AAAC8B,OAAA,CAAA7D,eAAA,GAAAA,eAAA","ignoreList":[]}
|