@webiny/api-page-builder-import-export 0.0.0-unstable.990c3ab1b6 → 0.0.0-unstable.bca7b3e350
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/client.d.ts +2 -2
- package/client.js.map +1 -1
- package/export/combine/blocksHandler.d.ts +6 -0
- package/export/combine/blocksHandler.js +99 -0
- package/export/combine/blocksHandler.js.map +1 -0
- package/{exportPages → export}/combine/index.d.ts +3 -2
- package/export/combine/index.js +35 -0
- package/export/combine/index.js.map +1 -0
- package/export/combine/pagesHandler.d.ts +6 -0
- package/export/combine/pagesHandler.js +99 -0
- package/export/combine/pagesHandler.js.map +1 -0
- package/export/combine/templatesHandler.d.ts +6 -0
- package/export/combine/templatesHandler.js +99 -0
- package/export/combine/templatesHandler.js.map +1 -0
- package/export/process/blocksHandler.d.ts +6 -0
- package/export/process/blocksHandler.js +162 -0
- package/export/process/blocksHandler.js.map +1 -0
- package/{exportPages → export}/process/index.d.ts +4 -6
- package/export/process/index.js +32 -0
- package/export/process/index.js.map +1 -0
- package/export/process/pagesHandler.d.ts +6 -0
- package/export/process/pagesHandler.js +189 -0
- package/export/process/pagesHandler.js.map +1 -0
- package/export/process/templatesHandler.d.ts +6 -0
- package/export/process/templatesHandler.js +166 -0
- package/export/process/templatesHandler.js.map +1 -0
- package/export/utils.d.ts +22 -0
- package/export/utils.js +160 -0
- package/export/utils.js.map +1 -0
- package/{exportPages → export}/zipper.d.ts +6 -5
- package/{exportPages → export}/zipper.js +8 -7
- package/export/zipper.js.map +1 -0
- package/graphql/crud/blocks.crud.d.ts +4 -0
- package/graphql/crud/blocks.crud.js +137 -0
- package/graphql/crud/blocks.crud.js.map +1 -0
- package/graphql/crud/importExportTasks.crud.d.ts +5 -0
- package/graphql/crud/{pageImportExportTasks.crud.js → importExportTasks.crud.js} +48 -48
- package/graphql/crud/importExportTasks.crud.js.map +1 -0
- package/graphql/crud/pages.crud.d.ts +2 -2
- package/graphql/crud/pages.crud.js +18 -14
- package/graphql/crud/pages.crud.js.map +1 -1
- package/graphql/crud/templates.crud.d.ts +4 -0
- package/graphql/crud/templates.crud.js +124 -0
- package/graphql/crud/templates.crud.js.map +1 -0
- package/graphql/crud.d.ts +2 -2
- package/graphql/crud.js +4 -2
- package/graphql/crud.js.map +1 -1
- package/graphql/graphql/blocks.gql.d.ts +4 -0
- package/graphql/graphql/blocks.gql.js +52 -0
- package/graphql/graphql/blocks.gql.js.map +1 -0
- package/graphql/graphql/importExportTasks.gql.d.ts +4 -0
- package/graphql/graphql/{pageImportExportTasks.gql.js → importExportTasks.gql.js} +17 -17
- package/graphql/graphql/importExportTasks.gql.js.map +1 -0
- package/graphql/graphql/pages.gql.d.ts +2 -2
- package/graphql/graphql/pages.gql.js +3 -9
- package/graphql/graphql/pages.gql.js.map +1 -1
- package/graphql/graphql/templates.gql.d.ts +4 -0
- package/graphql/graphql/templates.gql.js +52 -0
- package/graphql/graphql/templates.gql.js.map +1 -0
- package/graphql/graphql.js +4 -2
- package/graphql/graphql.js.map +1 -1
- package/graphql/index.d.ts +2 -2
- package/graphql/index.js.map +1 -1
- package/graphql/types.d.ts +60 -23
- package/graphql/types.js.map +1 -1
- package/import/create/blocksHandler.d.ts +3 -0
- package/import/create/blocksHandler.js +100 -0
- package/import/create/blocksHandler.js.map +1 -0
- package/{importPages → import}/create/index.d.ts +7 -5
- package/import/create/index.js +35 -0
- package/import/create/index.js.map +1 -0
- package/import/create/pagesHandler.d.ts +3 -0
- package/import/create/pagesHandler.js +102 -0
- package/import/create/pagesHandler.js.map +1 -0
- package/import/create/templatesHandler.d.ts +3 -0
- package/import/create/templatesHandler.js +98 -0
- package/import/create/templatesHandler.js.map +1 -0
- package/import/process/blocksHandler.d.ts +3 -0
- package/import/process/blocksHandler.js +169 -0
- package/import/process/blocksHandler.js.map +1 -0
- package/{importPages → import}/process/index.d.ts +5 -3
- package/import/process/index.js +32 -0
- package/import/process/index.js.map +1 -0
- package/import/process/pagesHandler.d.ts +3 -0
- package/import/process/pagesHandler.js +177 -0
- package/import/process/pagesHandler.js.map +1 -0
- package/import/process/templatesHandler.d.ts +3 -0
- package/import/process/templatesHandler.js +169 -0
- package/import/process/templatesHandler.js.map +1 -0
- package/import/utils.d.ts +56 -0
- package/{importPages → import}/utils.js +154 -35
- package/import/utils.js.map +1 -0
- package/package.json +24 -24
- package/types.d.ts +62 -65
- package/types.js +17 -17
- package/types.js.map +1 -1
- package/exportPages/combine/index.js +0 -106
- package/exportPages/combine/index.js.map +0 -1
- package/exportPages/process/index.js +0 -192
- package/exportPages/process/index.js.map +0 -1
- package/exportPages/utils.d.ts +0 -13
- package/exportPages/utils.js +0 -100
- package/exportPages/utils.js.map +0 -1
- package/exportPages/zipper.js.map +0 -1
- package/graphql/crud/pageImportExportTasks.crud.d.ts +0 -5
- package/graphql/crud/pageImportExportTasks.crud.js.map +0 -1
- package/graphql/graphql/pageImportExportTasks.gql.d.ts +0 -4
- package/graphql/graphql/pageImportExportTasks.gql.js.map +0 -1
- package/importPages/create/index.js +0 -107
- package/importPages/create/index.js.map +0 -1
- package/importPages/process/index.js +0 -180
- package/importPages/process/index.js.map +0 -1
- package/importPages/utils.d.ts +0 -50
- package/importPages/utils.js.map +0 -1
- /package/{exportPages → export}/s3Stream.d.ts +0 -0
- /package/{exportPages → export}/s3Stream.js +0 -0
- /package/{exportPages → export}/s3Stream.js.map +0 -0
package/graphql/graphql.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["pages","
|
1
|
+
{"version":3,"names":["blocks","pages","templates","importExportTask"],"sources":["graphql.ts"],"sourcesContent":["import blocks from \"./graphql/blocks.gql\";\nimport pages from \"./graphql/pages.gql\";\nimport templates from \"./graphql/templates.gql\";\nimport importExportTask from \"./graphql/importExportTasks.gql\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/types\";\n\nexport default [blocks, pages, templates, importExportTask] as GraphQLSchemaPlugin[];\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AAA+D,eAGhD,CAACA,eAAM,EAAEC,cAAK,EAAEC,kBAAS,EAAEC,0BAAgB,CAAC;AAAA"}
|
package/graphql/index.d.ts
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
import {
|
2
|
-
declare const _default: (params:
|
1
|
+
import { ImportExportPluginsParams } from "./types";
|
2
|
+
declare const _default: (params: ImportExportPluginsParams) => (import("@webiny/api").ContextPlugin<import("~/graphql/types").PbImportExportContext>[] | import("@webiny/handler-graphql/types").GraphQLSchemaPlugin<import("@webiny/api/types").Context>[])[];
|
3
3
|
export default _default;
|
package/graphql/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["params","crud","graphql"],"sources":["index.ts"],"sourcesContent":["import crud from \"./crud\";\nimport graphql from \"./graphql\";\nimport {
|
1
|
+
{"version":3,"names":["params","crud","graphql"],"sources":["index.ts"],"sourcesContent":["import crud from \"./crud\";\nimport graphql from \"./graphql\";\nimport { ImportExportPluginsParams } from \"~/graphql/types\";\n\nexport default (params: ImportExportPluginsParams) => [crud(params), graphql];\n"],"mappings":";;;;;;;AAAA;AACA;AAAgC,eAGhBA,MAAiC,IAAK,CAAC,IAAAC,aAAI,EAACD,MAAM,CAAC,EAAEE,gBAAO,CAAC;AAAA"}
|
package/graphql/types.d.ts
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
import { PbContext } from "@webiny/api-page-builder/types";
|
2
|
-
import {
|
2
|
+
import { ExportRevisionType, ImportExportTask, ImportExportTaskStatus, ImportExportTaskStorageOperations, ImportExportTaskStorageOperationsListParams } from "../types";
|
3
3
|
export interface ExportPagesParams {
|
4
4
|
ids?: string[];
|
5
|
-
revisionType:
|
5
|
+
revisionType: ExportRevisionType;
|
6
6
|
where?: {
|
7
7
|
category?: string;
|
8
8
|
status?: string;
|
@@ -20,43 +20,80 @@ export interface ExportPagesParams {
|
|
20
20
|
export interface ImportPagesParams {
|
21
21
|
category: string;
|
22
22
|
zipFileUrl: string;
|
23
|
+
meta?: Record<string, any>;
|
23
24
|
}
|
24
25
|
export declare type PagesImportExportCrud = {
|
25
26
|
exportPages(params: ExportPagesParams): Promise<{
|
26
|
-
task:
|
27
|
+
task: ImportExportTask;
|
27
28
|
}>;
|
28
29
|
importPages(params: ImportPagesParams): Promise<{
|
29
|
-
task:
|
30
|
+
task: ImportExportTask;
|
30
31
|
}>;
|
31
32
|
};
|
32
|
-
|
33
|
-
|
33
|
+
export interface ExportBlocksParams {
|
34
|
+
ids?: string[];
|
35
|
+
sort?: string[];
|
36
|
+
where?: {
|
37
|
+
blockCategory?: string;
|
38
|
+
};
|
39
|
+
}
|
40
|
+
export interface ImportBlocksParams {
|
41
|
+
category: string;
|
42
|
+
zipFileUrl: string;
|
43
|
+
}
|
44
|
+
export declare type BlocksImportExportCrud = {
|
45
|
+
exportBlocks(params: ExportBlocksParams): Promise<{
|
46
|
+
task: ImportExportTask;
|
47
|
+
}>;
|
48
|
+
importBlocks(params: ImportBlocksParams): Promise<{
|
49
|
+
task: ImportExportTask;
|
50
|
+
}>;
|
51
|
+
};
|
52
|
+
export interface ExportTemplatesParams {
|
53
|
+
ids?: string[];
|
54
|
+
sort?: string[];
|
55
|
+
}
|
56
|
+
export interface ImportTemplatesParams {
|
57
|
+
zipFileUrl: string;
|
58
|
+
}
|
59
|
+
export declare type TemplatesImportExportCrud = {
|
60
|
+
exportTemplates(params: ExportTemplatesParams): Promise<{
|
61
|
+
task: ImportExportTask;
|
62
|
+
}>;
|
63
|
+
importTemplates(params: ImportTemplatesParams): Promise<{
|
64
|
+
task: ImportExportTask;
|
65
|
+
}>;
|
66
|
+
};
|
67
|
+
declare type ImportExportTaskCreateData = Omit<ImportExportTask, "id" | "createdOn" | "createdBy">;
|
68
|
+
export declare type ImportExportTaskCrud = {
|
34
69
|
/**
|
35
70
|
* To be used internally in our code.
|
36
71
|
* @internal
|
37
72
|
*/
|
38
|
-
storageOperations:
|
39
|
-
getTask(id: string): Promise<
|
40
|
-
listTasks(params?:
|
41
|
-
createTask(data: Partial<
|
42
|
-
updateTask(id: string, data: Partial<
|
73
|
+
storageOperations: ImportExportTaskStorageOperations;
|
74
|
+
getTask(id: string): Promise<ImportExportTask | null>;
|
75
|
+
listTasks(params?: ImportExportTaskStorageOperationsListParams): Promise<ImportExportTask[]>;
|
76
|
+
createTask(data: Partial<ImportExportTaskCreateData>): Promise<ImportExportTask>;
|
77
|
+
updateTask(id: string, data: Partial<ImportExportTaskCreateData>): Promise<ImportExportTask>;
|
43
78
|
updateStats(id: string, data: {
|
44
|
-
prevStatus:
|
45
|
-
nextStatus:
|
46
|
-
}): Promise<
|
47
|
-
deleteTask(id: string): Promise<
|
48
|
-
getSubTask(id: string, subtaskId: string): Promise<
|
49
|
-
listSubTasks(id: string, status:
|
50
|
-
createSubTask(id: string, subTaskId: string, data: Partial<
|
51
|
-
updateSubTask(id: string, subTaskId: string, data: Partial<
|
79
|
+
prevStatus: ImportExportTaskStatus;
|
80
|
+
nextStatus: ImportExportTaskStatus;
|
81
|
+
}): Promise<ImportExportTask>;
|
82
|
+
deleteTask(id: string): Promise<ImportExportTask>;
|
83
|
+
getSubTask(id: string, subtaskId: string): Promise<ImportExportTask | null>;
|
84
|
+
listSubTasks(id: string, status: ImportExportTaskStatus, limit: number): Promise<ImportExportTask[]>;
|
85
|
+
createSubTask(id: string, subTaskId: string, data: Partial<ImportExportTaskCreateData>): Promise<ImportExportTask>;
|
86
|
+
updateSubTask(id: string, subTaskId: string, data: Partial<ImportExportTaskCreateData>): Promise<ImportExportTask>;
|
52
87
|
};
|
53
|
-
export interface
|
88
|
+
export interface PbImportExportContext extends PbContext {
|
54
89
|
pageBuilder: PbContext["pageBuilder"] & {
|
55
90
|
pages: PagesImportExportCrud;
|
56
|
-
|
91
|
+
blocks: BlocksImportExportCrud;
|
92
|
+
templates: TemplatesImportExportCrud;
|
93
|
+
importExportTask: ImportExportTaskCrud;
|
57
94
|
};
|
58
95
|
}
|
59
|
-
export interface
|
60
|
-
storageOperations:
|
96
|
+
export interface ImportExportPluginsParams {
|
97
|
+
storageOperations: ImportExportTaskStorageOperations;
|
61
98
|
}
|
62
99
|
export {};
|
package/graphql/types.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { PbContext } from \"@webiny/api-page-builder/types\";\nimport {\n
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { PbContext } from \"@webiny/api-page-builder/types\";\nimport {\n ExportRevisionType,\n ImportExportTask,\n ImportExportTaskStatus,\n ImportExportTaskStorageOperations,\n ImportExportTaskStorageOperationsListParams\n} from \"~/types\";\n\nexport interface ExportPagesParams {\n ids?: string[];\n revisionType: ExportRevisionType;\n where?: {\n category?: string;\n status?: string;\n tags?: { query: string[]; rule?: \"any\" | \"all\" };\n [key: string]: any;\n };\n search?: { query?: string };\n sort?: string[];\n}\n\nexport interface ImportPagesParams {\n category: string;\n zipFileUrl: string;\n meta?: Record<string, any>;\n}\n\nexport type PagesImportExportCrud = {\n exportPages(params: ExportPagesParams): Promise<{ task: ImportExportTask }>;\n importPages(params: ImportPagesParams): Promise<{ task: ImportExportTask }>;\n};\n\nexport interface ExportBlocksParams {\n ids?: string[];\n sort?: string[];\n where?: {\n blockCategory?: string;\n };\n}\n\nexport interface ImportBlocksParams {\n category: string;\n zipFileUrl: string;\n}\n\nexport type BlocksImportExportCrud = {\n exportBlocks(params: ExportBlocksParams): Promise<{ task: ImportExportTask }>;\n importBlocks(params: ImportBlocksParams): Promise<{ task: ImportExportTask }>;\n};\n\nexport interface ExportTemplatesParams {\n ids?: string[];\n sort?: string[];\n}\n\nexport interface ImportTemplatesParams {\n zipFileUrl: string;\n}\n\nexport type TemplatesImportExportCrud = {\n exportTemplates(params: ExportTemplatesParams): Promise<{ task: ImportExportTask }>;\n importTemplates(params: ImportTemplatesParams): Promise<{ task: ImportExportTask }>;\n};\n\ntype ImportExportTaskCreateData = Omit<ImportExportTask, \"id\" | \"createdOn\" | \"createdBy\">;\n\nexport type ImportExportTaskCrud = {\n /**\n * To be used internally in our code.\n * @internal\n */\n storageOperations: ImportExportTaskStorageOperations;\n\n getTask(id: string): Promise<ImportExportTask | null>;\n listTasks(params?: ImportExportTaskStorageOperationsListParams): Promise<ImportExportTask[]>;\n createTask(data: Partial<ImportExportTaskCreateData>): Promise<ImportExportTask>;\n updateTask(id: string, data: Partial<ImportExportTaskCreateData>): Promise<ImportExportTask>;\n updateStats(\n id: string,\n data: {\n prevStatus: ImportExportTaskStatus;\n nextStatus: ImportExportTaskStatus;\n }\n ): Promise<ImportExportTask>;\n deleteTask(id: string): Promise<ImportExportTask>;\n getSubTask(id: string, subtaskId: string): Promise<ImportExportTask | null>;\n listSubTasks(\n id: string,\n status: ImportExportTaskStatus,\n limit: number\n ): Promise<ImportExportTask[]>;\n createSubTask(\n id: string,\n subTaskId: string,\n data: Partial<ImportExportTaskCreateData>\n ): Promise<ImportExportTask>;\n updateSubTask(\n id: string,\n subTaskId: string,\n data: Partial<ImportExportTaskCreateData>\n ): Promise<ImportExportTask>;\n};\n\nexport interface PbImportExportContext extends PbContext {\n pageBuilder: PbContext[\"pageBuilder\"] & {\n pages: PagesImportExportCrud;\n blocks: BlocksImportExportCrud;\n templates: TemplatesImportExportCrud;\n importExportTask: ImportExportTaskCrud;\n };\n}\n\nexport interface ImportExportPluginsParams {\n storageOperations: ImportExportTaskStorageOperations;\n}\n"],"mappings":""}
|
@@ -0,0 +1,100 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.blocksHandler = void 0;
|
7
|
+
var _types = require("../../types");
|
8
|
+
var _utils = require("../utils");
|
9
|
+
var _client = require("../../client");
|
10
|
+
var _mockSecurity = require("../../mockSecurity");
|
11
|
+
var _utils2 = require("@webiny/utils");
|
12
|
+
const blocksHandler = async (configuration, payload, context) => {
|
13
|
+
const log = console.log;
|
14
|
+
const {
|
15
|
+
pageBuilder
|
16
|
+
} = context;
|
17
|
+
const {
|
18
|
+
task,
|
19
|
+
type,
|
20
|
+
category,
|
21
|
+
zipFileUrl,
|
22
|
+
identity
|
23
|
+
} = payload;
|
24
|
+
try {
|
25
|
+
log("RUNNING Import Blocks Create");
|
26
|
+
if (!zipFileUrl) {
|
27
|
+
return {
|
28
|
+
data: null,
|
29
|
+
error: {
|
30
|
+
message: `Missing "zipFileUrl"!`
|
31
|
+
}
|
32
|
+
};
|
33
|
+
}
|
34
|
+
(0, _mockSecurity.mockSecurity)(identity, context);
|
35
|
+
// Step 1: Read the zip file
|
36
|
+
const blockImportDataList = await (0, _utils.readExtractAndUploadZipFileContents)(zipFileUrl);
|
37
|
+
|
38
|
+
// For each block create a subtask and invoke the process handler
|
39
|
+
for (let i = 0; i < blockImportDataList.length; i++) {
|
40
|
+
const blocksDirMap = blockImportDataList[i];
|
41
|
+
// Create sub task
|
42
|
+
const subtask = await pageBuilder.importExportTask.createSubTask(task.id, (0, _utils2.zeroPad)(i + 1, 5), {
|
43
|
+
status: _types.ImportExportTaskStatus.PENDING,
|
44
|
+
data: {
|
45
|
+
blockKey: blocksDirMap.key,
|
46
|
+
category,
|
47
|
+
zipFileUrl,
|
48
|
+
input: {
|
49
|
+
fileUploadsData: blocksDirMap
|
50
|
+
}
|
51
|
+
}
|
52
|
+
});
|
53
|
+
log(`Added SUB_TASK "${subtask.id}" to queue.`);
|
54
|
+
}
|
55
|
+
// Update main task status
|
56
|
+
await pageBuilder.importExportTask.updateTask(task.id, {
|
57
|
+
status: _types.ImportExportTaskStatus.PROCESSING,
|
58
|
+
stats: (0, _utils.initialStats)(blockImportDataList.length)
|
59
|
+
});
|
60
|
+
await (0, _client.invokeHandlerClient)({
|
61
|
+
context,
|
62
|
+
name: configuration.handlers.process,
|
63
|
+
payload: {
|
64
|
+
taskId: task.id,
|
65
|
+
// Execute "Process" for the first sub task.
|
66
|
+
subTaskIndex: 1,
|
67
|
+
type,
|
68
|
+
identity: context.security.getIdentity()
|
69
|
+
},
|
70
|
+
description: "Import blocks - process - first"
|
71
|
+
});
|
72
|
+
} catch (e) {
|
73
|
+
log("[IMPORT_BLOCKS_CREATE] Error => ", e);
|
74
|
+
|
75
|
+
/**
|
76
|
+
* In case of error, we'll update the task status to "failed",
|
77
|
+
* so that, client can show notify the user appropriately.
|
78
|
+
*/
|
79
|
+
|
80
|
+
await pageBuilder.importExportTask.updateTask(task.id, {
|
81
|
+
status: _types.ImportExportTaskStatus.FAILED,
|
82
|
+
error: {
|
83
|
+
name: e.name,
|
84
|
+
message: e.message,
|
85
|
+
code: e.code || "EXPORT_FAILED"
|
86
|
+
}
|
87
|
+
});
|
88
|
+
return {
|
89
|
+
data: null,
|
90
|
+
error: {
|
91
|
+
message: e.message
|
92
|
+
}
|
93
|
+
};
|
94
|
+
}
|
95
|
+
return {
|
96
|
+
data: "",
|
97
|
+
error: null
|
98
|
+
};
|
99
|
+
};
|
100
|
+
exports.blocksHandler = blocksHandler;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["blocksHandler","configuration","payload","context","log","console","pageBuilder","task","type","category","zipFileUrl","identity","data","error","message","mockSecurity","blockImportDataList","readExtractAndUploadZipFileContents","i","length","blocksDirMap","subtask","importExportTask","createSubTask","id","zeroPad","status","ImportExportTaskStatus","PENDING","blockKey","key","input","fileUploadsData","updateTask","PROCESSING","stats","initialStats","invokeHandlerClient","name","handlers","process","taskId","subTaskIndex","security","getIdentity","description","e","FAILED","code"],"sources":["blocksHandler.ts"],"sourcesContent":["import { ImportExportTaskStatus, PbImportExportContext } from \"~/types\";\nimport { initialStats, readExtractAndUploadZipFileContents } from \"~/import/utils\";\nimport { invokeHandlerClient } from \"~/client\";\nimport { Payload as ProcessPayload } from \"../process\";\nimport { mockSecurity } from \"~/mockSecurity\";\nimport { zeroPad } from \"@webiny/utils\";\nimport { Configuration, Payload, Response } from \"~/import/create\";\n\nexport const blocksHandler = async (\n configuration: Configuration,\n payload: Payload,\n context: PbImportExportContext\n): Promise<Response> => {\n const log = console.log;\n\n const { pageBuilder } = context;\n const { task, type, category, zipFileUrl, identity } = payload;\n try {\n log(\"RUNNING Import Blocks Create\");\n if (!zipFileUrl) {\n return {\n data: null,\n error: {\n message: `Missing \"zipFileUrl\"!`\n }\n };\n }\n mockSecurity(identity, context);\n // Step 1: Read the zip file\n const blockImportDataList = await readExtractAndUploadZipFileContents(zipFileUrl);\n\n // For each block create a subtask and invoke the process handler\n for (let i = 0; i < blockImportDataList.length; i++) {\n const blocksDirMap = blockImportDataList[i];\n // Create sub task\n const subtask = await pageBuilder.importExportTask.createSubTask(\n task.id,\n zeroPad(i + 1, 5),\n {\n status: ImportExportTaskStatus.PENDING,\n data: {\n blockKey: blocksDirMap.key,\n category,\n zipFileUrl,\n input: {\n fileUploadsData: blocksDirMap\n }\n }\n }\n );\n log(`Added SUB_TASK \"${subtask.id}\" to queue.`);\n }\n // Update main task status\n await pageBuilder.importExportTask.updateTask(task.id, {\n status: ImportExportTaskStatus.PROCESSING,\n stats: initialStats(blockImportDataList.length)\n });\n\n await invokeHandlerClient<ProcessPayload>({\n context,\n name: configuration.handlers.process,\n payload: {\n taskId: task.id,\n // Execute \"Process\" for the first sub task.\n subTaskIndex: 1,\n type,\n identity: context.security.getIdentity()\n },\n description: \"Import blocks - process - first\"\n });\n } catch (e) {\n log(\"[IMPORT_BLOCKS_CREATE] Error => \", e);\n\n /**\n * In case of error, we'll update the task status to \"failed\",\n * so that, client can show notify the user appropriately.\n */\n\n await pageBuilder.importExportTask.updateTask(task.id, {\n status: ImportExportTaskStatus.FAILED,\n error: {\n name: e.name,\n message: e.message,\n code: e.code || \"EXPORT_FAILED\"\n }\n });\n\n return {\n data: null,\n error: {\n message: e.message\n }\n };\n }\n\n return {\n data: \"\",\n error: null\n };\n};\n"],"mappings":"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"}
|
@@ -1,15 +1,17 @@
|
|
1
|
-
import {
|
1
|
+
import { ImportExportTask, PbImportExportContext } from "../../types";
|
2
2
|
import { SecurityIdentity } from "@webiny/api-security/types";
|
3
|
-
interface Configuration {
|
3
|
+
export interface Configuration {
|
4
4
|
handlers: {
|
5
5
|
process: string;
|
6
6
|
};
|
7
7
|
}
|
8
8
|
export interface Payload {
|
9
|
-
category
|
9
|
+
category?: string;
|
10
10
|
zipFileUrl: string;
|
11
|
-
task:
|
11
|
+
task: ImportExportTask;
|
12
|
+
type: string;
|
12
13
|
identity: SecurityIdentity;
|
14
|
+
meta?: Record<string, any>;
|
13
15
|
}
|
14
16
|
export interface Response {
|
15
17
|
data: string | null;
|
@@ -18,5 +20,5 @@ export interface Response {
|
|
18
20
|
/**
|
19
21
|
* Handles the import page workflow.
|
20
22
|
*/
|
21
|
-
declare const _default: (configuration: Configuration) => import("@webiny/handler-aws").RawEventHandler<Payload,
|
23
|
+
declare const _default: (configuration: Configuration) => import("@webiny/handler-aws").RawEventHandler<Payload, PbImportExportContext, Response>;
|
22
24
|
export default _default;
|
@@ -0,0 +1,35 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
var _handlerAws = require("@webiny/handler-aws");
|
8
|
+
var _blocksHandler = require("./blocksHandler");
|
9
|
+
var _pagesHandler = require("./pagesHandler");
|
10
|
+
var _templatesHandler = require("./templatesHandler");
|
11
|
+
/**
|
12
|
+
* Handles the import page workflow.
|
13
|
+
*/
|
14
|
+
var _default = configuration => {
|
15
|
+
return (0, _handlerAws.createRawEventHandler)(async ({
|
16
|
+
payload,
|
17
|
+
context
|
18
|
+
}) => {
|
19
|
+
switch (payload.type) {
|
20
|
+
case "block":
|
21
|
+
{
|
22
|
+
return await (0, _blocksHandler.blocksHandler)(configuration, payload, context);
|
23
|
+
}
|
24
|
+
case "template":
|
25
|
+
{
|
26
|
+
return await (0, _templatesHandler.templatesHandler)(configuration, payload, context);
|
27
|
+
}
|
28
|
+
default:
|
29
|
+
{
|
30
|
+
return await (0, _pagesHandler.pagesHandler)(configuration, payload, context);
|
31
|
+
}
|
32
|
+
}
|
33
|
+
});
|
34
|
+
};
|
35
|
+
exports.default = _default;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["configuration","createRawEventHandler","payload","context","type","blocksHandler","templatesHandler","pagesHandler"],"sources":["index.ts"],"sourcesContent":["import { ImportExportTask, PbImportExportContext } from \"~/types\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { createRawEventHandler } from \"@webiny/handler-aws\";\nimport { blocksHandler } from \"~/import/create/blocksHandler\";\nimport { pagesHandler } from \"~/import/create/pagesHandler\";\nimport { templatesHandler } from \"~/import/create/templatesHandler\";\n\nexport interface Configuration {\n handlers: {\n process: string;\n };\n}\n\nexport interface Payload {\n category?: string;\n zipFileUrl: string;\n task: ImportExportTask;\n type: string;\n identity: SecurityIdentity;\n meta?: Record<string, any>;\n}\nexport interface Response {\n data: string | null;\n error: Partial<Error> | null;\n}\n\n/**\n * Handles the import page workflow.\n */\nexport default (configuration: Configuration) => {\n return createRawEventHandler<Payload, PbImportExportContext, Response>(\n async ({ payload, context }) => {\n switch (payload.type) {\n case \"block\": {\n return await blocksHandler(configuration, payload, context);\n }\n case \"template\": {\n return await templatesHandler(configuration, payload, context);\n }\n default: {\n return await pagesHandler(configuration, payload, context);\n }\n }\n }\n );\n};\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AAqBA;AACA;AACA;AAFA,eAGgBA,aAA4B,IAAK;EAC7C,OAAO,IAAAC,iCAAqB,EACxB,OAAO;IAAEC,OAAO;IAAEC;EAAQ,CAAC,KAAK;IAC5B,QAAQD,OAAO,CAACE,IAAI;MAChB,KAAK,OAAO;QAAE;UACV,OAAO,MAAM,IAAAC,4BAAa,EAACL,aAAa,EAAEE,OAAO,EAAEC,OAAO,CAAC;QAC/D;MACA,KAAK,UAAU;QAAE;UACb,OAAO,MAAM,IAAAG,kCAAgB,EAACN,aAAa,EAAEE,OAAO,EAAEC,OAAO,CAAC;QAClE;MACA;QAAS;UACL,OAAO,MAAM,IAAAI,0BAAY,EAACP,aAAa,EAAEE,OAAO,EAAEC,OAAO,CAAC;QAC9D;IAAC;EAET,CAAC,CACJ;AACL,CAAC;AAAA"}
|
@@ -0,0 +1,102 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.pagesHandler = void 0;
|
7
|
+
var _types = require("../../types");
|
8
|
+
var _utils = require("../utils");
|
9
|
+
var _client = require("../../client");
|
10
|
+
var _mockSecurity = require("../../mockSecurity");
|
11
|
+
var _utils2 = require("@webiny/utils");
|
12
|
+
const pagesHandler = async (configuration, payload, context) => {
|
13
|
+
const log = console.log;
|
14
|
+
const {
|
15
|
+
pageBuilder
|
16
|
+
} = context;
|
17
|
+
const {
|
18
|
+
task,
|
19
|
+
type,
|
20
|
+
category,
|
21
|
+
zipFileUrl,
|
22
|
+
identity,
|
23
|
+
meta
|
24
|
+
} = payload;
|
25
|
+
try {
|
26
|
+
log("RUNNING Import Pages Create");
|
27
|
+
if (!zipFileUrl) {
|
28
|
+
return {
|
29
|
+
data: null,
|
30
|
+
error: {
|
31
|
+
message: `Missing "zipFileUrl"!`
|
32
|
+
}
|
33
|
+
};
|
34
|
+
}
|
35
|
+
(0, _mockSecurity.mockSecurity)(identity, context);
|
36
|
+
// Step 1: Read the zip file
|
37
|
+
const pageImportDataList = await (0, _utils.readExtractAndUploadZipFileContents)(zipFileUrl);
|
38
|
+
|
39
|
+
// For each page create a subtask and invoke the process handler
|
40
|
+
for (let i = 0; i < pageImportDataList.length; i++) {
|
41
|
+
const pagesDirMap = pageImportDataList[i];
|
42
|
+
// Create sub task
|
43
|
+
const subtask = await pageBuilder.importExportTask.createSubTask(task.id, (0, _utils2.zeroPad)(i + 1, 5), {
|
44
|
+
status: _types.ImportExportTaskStatus.PENDING,
|
45
|
+
data: {
|
46
|
+
pageKey: pagesDirMap.key,
|
47
|
+
category,
|
48
|
+
zipFileUrl,
|
49
|
+
meta,
|
50
|
+
input: {
|
51
|
+
fileUploadsData: pagesDirMap
|
52
|
+
}
|
53
|
+
}
|
54
|
+
});
|
55
|
+
log(`Added SUB_TASK "${subtask.id}" to queue.`);
|
56
|
+
}
|
57
|
+
// Update main task status
|
58
|
+
await pageBuilder.importExportTask.updateTask(task.id, {
|
59
|
+
status: _types.ImportExportTaskStatus.PROCESSING,
|
60
|
+
stats: (0, _utils.initialStats)(pageImportDataList.length)
|
61
|
+
});
|
62
|
+
await (0, _client.invokeHandlerClient)({
|
63
|
+
context,
|
64
|
+
name: configuration.handlers.process,
|
65
|
+
payload: {
|
66
|
+
taskId: task.id,
|
67
|
+
// Execute "Process" for the first sub task.
|
68
|
+
subTaskIndex: 1,
|
69
|
+
type,
|
70
|
+
identity: context.security.getIdentity()
|
71
|
+
},
|
72
|
+
description: "Import pages - process - first"
|
73
|
+
});
|
74
|
+
} catch (e) {
|
75
|
+
log("[IMPORT_PAGES_CREATE] Error => ", e);
|
76
|
+
|
77
|
+
/**
|
78
|
+
* In case of error, we'll update the task status to "failed",
|
79
|
+
* so that, client can show notify the user appropriately.
|
80
|
+
*/
|
81
|
+
|
82
|
+
await pageBuilder.importExportTask.updateTask(task.id, {
|
83
|
+
status: _types.ImportExportTaskStatus.FAILED,
|
84
|
+
error: {
|
85
|
+
name: e.name,
|
86
|
+
message: e.message,
|
87
|
+
code: e.code || "EXPORT_FAILED"
|
88
|
+
}
|
89
|
+
});
|
90
|
+
return {
|
91
|
+
data: null,
|
92
|
+
error: {
|
93
|
+
message: e.message
|
94
|
+
}
|
95
|
+
};
|
96
|
+
}
|
97
|
+
return {
|
98
|
+
data: "",
|
99
|
+
error: null
|
100
|
+
};
|
101
|
+
};
|
102
|
+
exports.pagesHandler = pagesHandler;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["pagesHandler","configuration","payload","context","log","console","pageBuilder","task","type","category","zipFileUrl","identity","meta","data","error","message","mockSecurity","pageImportDataList","readExtractAndUploadZipFileContents","i","length","pagesDirMap","subtask","importExportTask","createSubTask","id","zeroPad","status","ImportExportTaskStatus","PENDING","pageKey","key","input","fileUploadsData","updateTask","PROCESSING","stats","initialStats","invokeHandlerClient","name","handlers","process","taskId","subTaskIndex","security","getIdentity","description","e","FAILED","code"],"sources":["pagesHandler.ts"],"sourcesContent":["import { ImportExportTaskStatus, PbImportExportContext } from \"~/types\";\nimport { initialStats, readExtractAndUploadZipFileContents } from \"~/import/utils\";\nimport { invokeHandlerClient } from \"~/client\";\nimport { Payload as ProcessPayload } from \"../process\";\nimport { mockSecurity } from \"~/mockSecurity\";\nimport { zeroPad } from \"@webiny/utils\";\nimport { Configuration, Payload, Response } from \"~/import/create\";\n\nexport const pagesHandler = async (\n configuration: Configuration,\n payload: Payload,\n context: PbImportExportContext\n): Promise<Response> => {\n const log = console.log;\n\n const { pageBuilder } = context;\n const { task, type, category, zipFileUrl, identity, meta } = payload;\n try {\n log(\"RUNNING Import Pages Create\");\n if (!zipFileUrl) {\n return {\n data: null,\n error: {\n message: `Missing \"zipFileUrl\"!`\n }\n };\n }\n mockSecurity(identity, context);\n // Step 1: Read the zip file\n const pageImportDataList = await readExtractAndUploadZipFileContents(zipFileUrl);\n\n // For each page create a subtask and invoke the process handler\n for (let i = 0; i < pageImportDataList.length; i++) {\n const pagesDirMap = pageImportDataList[i];\n // Create sub task\n const subtask = await pageBuilder.importExportTask.createSubTask(\n task.id,\n zeroPad(i + 1, 5),\n {\n status: ImportExportTaskStatus.PENDING,\n data: {\n pageKey: pagesDirMap.key,\n category,\n zipFileUrl,\n meta,\n input: {\n fileUploadsData: pagesDirMap\n }\n }\n }\n );\n log(`Added SUB_TASK \"${subtask.id}\" to queue.`);\n }\n // Update main task status\n await pageBuilder.importExportTask.updateTask(task.id, {\n status: ImportExportTaskStatus.PROCESSING,\n stats: initialStats(pageImportDataList.length)\n });\n\n await invokeHandlerClient<ProcessPayload>({\n context,\n name: configuration.handlers.process,\n payload: {\n taskId: task.id,\n // Execute \"Process\" for the first sub task.\n subTaskIndex: 1,\n type,\n identity: context.security.getIdentity()\n },\n description: \"Import pages - process - first\"\n });\n } catch (e) {\n log(\"[IMPORT_PAGES_CREATE] Error => \", e);\n\n /**\n * In case of error, we'll update the task status to \"failed\",\n * so that, client can show notify the user appropriately.\n */\n\n await pageBuilder.importExportTask.updateTask(task.id, {\n status: ImportExportTaskStatus.FAILED,\n error: {\n name: e.name,\n message: e.message,\n code: e.code || \"EXPORT_FAILED\"\n }\n });\n\n return {\n data: null,\n error: {\n message: e.message\n }\n };\n }\n\n return {\n data: \"\",\n error: null\n };\n};\n"],"mappings":"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"}
|
@@ -0,0 +1,98 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.templatesHandler = void 0;
|
7
|
+
var _types = require("../../types");
|
8
|
+
var _utils = require("../utils");
|
9
|
+
var _client = require("../../client");
|
10
|
+
var _mockSecurity = require("../../mockSecurity");
|
11
|
+
var _utils2 = require("@webiny/utils");
|
12
|
+
const templatesHandler = async (configuration, payload, context) => {
|
13
|
+
const log = console.log;
|
14
|
+
const {
|
15
|
+
pageBuilder
|
16
|
+
} = context;
|
17
|
+
const {
|
18
|
+
task,
|
19
|
+
type,
|
20
|
+
zipFileUrl,
|
21
|
+
identity
|
22
|
+
} = payload;
|
23
|
+
try {
|
24
|
+
log("RUNNING Import Templates Create");
|
25
|
+
if (!zipFileUrl) {
|
26
|
+
return {
|
27
|
+
data: null,
|
28
|
+
error: {
|
29
|
+
message: `Missing "zipFileUrl"!`
|
30
|
+
}
|
31
|
+
};
|
32
|
+
}
|
33
|
+
(0, _mockSecurity.mockSecurity)(identity, context);
|
34
|
+
// Step 1: Read the zip file
|
35
|
+
const templateImportDataList = await (0, _utils.readExtractAndUploadZipFileContents)(zipFileUrl);
|
36
|
+
|
37
|
+
// For each template create a subtask and invoke the process handler
|
38
|
+
for (let i = 0; i < templateImportDataList.length; i++) {
|
39
|
+
const templatesDirMap = templateImportDataList[i];
|
40
|
+
// Create sub task
|
41
|
+
const subtask = await pageBuilder.importExportTask.createSubTask(task.id, (0, _utils2.zeroPad)(i + 1, 5), {
|
42
|
+
status: _types.ImportExportTaskStatus.PENDING,
|
43
|
+
data: {
|
44
|
+
templateKey: templatesDirMap.key,
|
45
|
+
zipFileUrl,
|
46
|
+
input: {
|
47
|
+
fileUploadsData: templatesDirMap
|
48
|
+
}
|
49
|
+
}
|
50
|
+
});
|
51
|
+
log(`Added SUB_TASK "${subtask.id}" to queue.`);
|
52
|
+
}
|
53
|
+
// Update main task status
|
54
|
+
await pageBuilder.importExportTask.updateTask(task.id, {
|
55
|
+
status: _types.ImportExportTaskStatus.PROCESSING,
|
56
|
+
stats: (0, _utils.initialStats)(templateImportDataList.length)
|
57
|
+
});
|
58
|
+
await (0, _client.invokeHandlerClient)({
|
59
|
+
context,
|
60
|
+
name: configuration.handlers.process,
|
61
|
+
payload: {
|
62
|
+
taskId: task.id,
|
63
|
+
// Execute "Process" for the first sub task.
|
64
|
+
subTaskIndex: 1,
|
65
|
+
type,
|
66
|
+
identity: context.security.getIdentity()
|
67
|
+
},
|
68
|
+
description: "Import templates - process - first"
|
69
|
+
});
|
70
|
+
} catch (e) {
|
71
|
+
log("[IMPORT_TEMPLATES_CREATE] Error => ", e);
|
72
|
+
|
73
|
+
/**
|
74
|
+
* In case of error, we'll update the task status to "failed",
|
75
|
+
* so that, client can show notify the user appropriately.
|
76
|
+
*/
|
77
|
+
|
78
|
+
await pageBuilder.importExportTask.updateTask(task.id, {
|
79
|
+
status: _types.ImportExportTaskStatus.FAILED,
|
80
|
+
error: {
|
81
|
+
name: e.name,
|
82
|
+
message: e.message,
|
83
|
+
code: e.code || "EXPORT_FAILED"
|
84
|
+
}
|
85
|
+
});
|
86
|
+
return {
|
87
|
+
data: null,
|
88
|
+
error: {
|
89
|
+
message: e.message
|
90
|
+
}
|
91
|
+
};
|
92
|
+
}
|
93
|
+
return {
|
94
|
+
data: "",
|
95
|
+
error: null
|
96
|
+
};
|
97
|
+
};
|
98
|
+
exports.templatesHandler = templatesHandler;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["templatesHandler","configuration","payload","context","log","console","pageBuilder","task","type","zipFileUrl","identity","data","error","message","mockSecurity","templateImportDataList","readExtractAndUploadZipFileContents","i","length","templatesDirMap","subtask","importExportTask","createSubTask","id","zeroPad","status","ImportExportTaskStatus","PENDING","templateKey","key","input","fileUploadsData","updateTask","PROCESSING","stats","initialStats","invokeHandlerClient","name","handlers","process","taskId","subTaskIndex","security","getIdentity","description","e","FAILED","code"],"sources":["templatesHandler.ts"],"sourcesContent":["import { ImportExportTaskStatus, PbImportExportContext } from \"~/types\";\nimport { initialStats, readExtractAndUploadZipFileContents } from \"~/import/utils\";\nimport { invokeHandlerClient } from \"~/client\";\nimport { Payload as ProcessPayload } from \"../process\";\nimport { mockSecurity } from \"~/mockSecurity\";\nimport { zeroPad } from \"@webiny/utils\";\nimport { Configuration, Payload, Response } from \"~/import/create\";\n\nexport const templatesHandler = async (\n configuration: Configuration,\n payload: Payload,\n context: PbImportExportContext\n): Promise<Response> => {\n const log = console.log;\n\n const { pageBuilder } = context;\n const { task, type, zipFileUrl, identity } = payload;\n try {\n log(\"RUNNING Import Templates Create\");\n if (!zipFileUrl) {\n return {\n data: null,\n error: {\n message: `Missing \"zipFileUrl\"!`\n }\n };\n }\n mockSecurity(identity, context);\n // Step 1: Read the zip file\n const templateImportDataList = await readExtractAndUploadZipFileContents(zipFileUrl);\n\n // For each template create a subtask and invoke the process handler\n for (let i = 0; i < templateImportDataList.length; i++) {\n const templatesDirMap = templateImportDataList[i];\n // Create sub task\n const subtask = await pageBuilder.importExportTask.createSubTask(\n task.id,\n zeroPad(i + 1, 5),\n {\n status: ImportExportTaskStatus.PENDING,\n data: {\n templateKey: templatesDirMap.key,\n zipFileUrl,\n input: {\n fileUploadsData: templatesDirMap\n }\n }\n }\n );\n log(`Added SUB_TASK \"${subtask.id}\" to queue.`);\n }\n // Update main task status\n await pageBuilder.importExportTask.updateTask(task.id, {\n status: ImportExportTaskStatus.PROCESSING,\n stats: initialStats(templateImportDataList.length)\n });\n\n await invokeHandlerClient<ProcessPayload>({\n context,\n name: configuration.handlers.process,\n payload: {\n taskId: task.id,\n // Execute \"Process\" for the first sub task.\n subTaskIndex: 1,\n type,\n identity: context.security.getIdentity()\n },\n description: \"Import templates - process - first\"\n });\n } catch (e) {\n log(\"[IMPORT_TEMPLATES_CREATE] Error => \", e);\n\n /**\n * In case of error, we'll update the task status to \"failed\",\n * so that, client can show notify the user appropriately.\n */\n\n await pageBuilder.importExportTask.updateTask(task.id, {\n status: ImportExportTaskStatus.FAILED,\n error: {\n name: e.name,\n message: e.message,\n code: e.code || \"EXPORT_FAILED\"\n }\n });\n\n return {\n data: null,\n error: {\n message: e.message\n }\n };\n }\n\n return {\n data: \"\",\n error: null\n };\n};\n"],"mappings":";;;;;;AAAA;AACA;AACA;AAEA;AACA;AAGO,MAAMA,gBAAgB,GAAG,OAC5BC,aAA4B,EAC5BC,OAAgB,EAChBC,OAA8B,KACV;EACpB,MAAMC,GAAG,GAAGC,OAAO,CAACD,GAAG;EAEvB,MAAM;IAAEE;EAAY,CAAC,GAAGH,OAAO;EAC/B,MAAM;IAAEI,IAAI;IAAEC,IAAI;IAAEC,UAAU;IAAEC;EAAS,CAAC,GAAGR,OAAO;EACpD,IAAI;IACAE,GAAG,CAAC,iCAAiC,CAAC;IACtC,IAAI,CAACK,UAAU,EAAE;MACb,OAAO;QACHE,IAAI,EAAE,IAAI;QACVC,KAAK,EAAE;UACHC,OAAO,EAAG;QACd;MACJ,CAAC;IACL;IACA,IAAAC,0BAAY,EAACJ,QAAQ,EAAEP,OAAO,CAAC;IAC/B;IACA,MAAMY,sBAAsB,GAAG,MAAM,IAAAC,0CAAmC,EAACP,UAAU,CAAC;;IAEpF;IACA,KAAK,IAAIQ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,sBAAsB,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;MACpD,MAAME,eAAe,GAAGJ,sBAAsB,CAACE,CAAC,CAAC;MACjD;MACA,MAAMG,OAAO,GAAG,MAAMd,WAAW,CAACe,gBAAgB,CAACC,aAAa,CAC5Df,IAAI,CAACgB,EAAE,EACP,IAAAC,eAAO,EAACP,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EACjB;QACIQ,MAAM,EAAEC,6BAAsB,CAACC,OAAO;QACtChB,IAAI,EAAE;UACFiB,WAAW,EAAET,eAAe,CAACU,GAAG;UAChCpB,UAAU;UACVqB,KAAK,EAAE;YACHC,eAAe,EAAEZ;UACrB;QACJ;MACJ,CAAC,CACJ;MACDf,GAAG,CAAE,mBAAkBgB,OAAO,CAACG,EAAG,aAAY,CAAC;IACnD;IACA;IACA,MAAMjB,WAAW,CAACe,gBAAgB,CAACW,UAAU,CAACzB,IAAI,CAACgB,EAAE,EAAE;MACnDE,MAAM,EAAEC,6BAAsB,CAACO,UAAU;MACzCC,KAAK,EAAE,IAAAC,mBAAY,EAACpB,sBAAsB,CAACG,MAAM;IACrD,CAAC,CAAC;IAEF,MAAM,IAAAkB,2BAAmB,EAAiB;MACtCjC,OAAO;MACPkC,IAAI,EAAEpC,aAAa,CAACqC,QAAQ,CAACC,OAAO;MACpCrC,OAAO,EAAE;QACLsC,MAAM,EAAEjC,IAAI,CAACgB,EAAE;QACf;QACAkB,YAAY,EAAE,CAAC;QACfjC,IAAI;QACJE,QAAQ,EAAEP,OAAO,CAACuC,QAAQ,CAACC,WAAW;MAC1C,CAAC;MACDC,WAAW,EAAE;IACjB,CAAC,CAAC;EACN,CAAC,CAAC,OAAOC,CAAC,EAAE;IACRzC,GAAG,CAAC,qCAAqC,EAAEyC,CAAC,CAAC;;IAE7C;AACR;AACA;AACA;;IAEQ,MAAMvC,WAAW,CAACe,gBAAgB,CAACW,UAAU,CAACzB,IAAI,CAACgB,EAAE,EAAE;MACnDE,MAAM,EAAEC,6BAAsB,CAACoB,MAAM;MACrClC,KAAK,EAAE;QACHyB,IAAI,EAAEQ,CAAC,CAACR,IAAI;QACZxB,OAAO,EAAEgC,CAAC,CAAChC,OAAO;QAClBkC,IAAI,EAAEF,CAAC,CAACE,IAAI,IAAI;MACpB;IACJ,CAAC,CAAC;IAEF,OAAO;MACHpC,IAAI,EAAE,IAAI;MACVC,KAAK,EAAE;QACHC,OAAO,EAAEgC,CAAC,CAAChC;MACf;IACJ,CAAC;EACL;EAEA,OAAO;IACHF,IAAI,EAAE,EAAE;IACRC,KAAK,EAAE;EACX,CAAC;AACL,CAAC;AAAC"}
|