@webiny/app-aco 5.43.0-beta.4 → 5.43.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/constants.d.ts +1 -1
- package/constants.js +11 -2
- package/constants.js.map +1 -1
- package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemMeta.js +15 -9
- package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemMeta.js.map +1 -1
- package/features/folders/Folder.d.ts +2 -0
- package/features/folders/Folder.js +2 -0
- package/features/folders/Folder.js.map +1 -1
- package/features/folders/createFolder/CreateFolderGqlGateway.d.ts +1 -1
- package/features/folders/createFolder/CreateFolderGqlGateway.js.map +1 -1
- package/features/folders/createFolder/FolderGqlDto.d.ts +1 -0
- package/features/folders/createFolder/FolderGqlDto.js.map +1 -1
- package/features/folders/getDescendantFolders/GetDescendantFoldersUseCase.d.ts +1 -1
- package/features/folders/getFolderHierarchy/FolderDto.d.ts +1 -0
- package/features/folders/getFolderHierarchy/FolderDto.js +1 -0
- package/features/folders/getFolderHierarchy/FolderDto.js.map +1 -1
- package/features/folders/getFolderHierarchy/FolderGqlDto.d.ts +1 -0
- package/features/folders/getFolderHierarchy/FolderGqlDto.js.map +1 -1
- package/features/folders/getFolderHierarchy/GetFolderHierarchyGqlGateway.js +1 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyGqlGateway.js.map +1 -1
- package/features/folders/listFolders/FolderDto.d.ts +1 -0
- package/features/folders/listFolders/FolderDto.js +1 -0
- package/features/folders/listFolders/FolderDto.js.map +1 -1
- package/features/folders/listFolders/FolderGqlDto.d.ts +1 -0
- package/features/folders/listFolders/FolderGqlDto.js.map +1 -1
- package/features/folders/listFolders/ListFoldersCompressedGqlGateway.js +1 -0
- package/features/folders/listFolders/ListFoldersCompressedGqlGateway.js.map +1 -1
- package/features/folders/listFolders/ListFoldersGqlGateway.js +1 -0
- package/features/folders/listFolders/ListFoldersGqlGateway.js.map +1 -1
- package/features/folders/listFoldersByParentIds/FolderDto.d.ts +1 -0
- package/features/folders/listFoldersByParentIds/FolderDto.js +1 -0
- package/features/folders/listFoldersByParentIds/FolderDto.js.map +1 -1
- package/features/folders/listFoldersByParentIds/FolderGqlDto.d.ts +1 -0
- package/features/folders/listFoldersByParentIds/FolderGqlDto.js.map +1 -1
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsGqlGateway.js +1 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsGqlGateway.js.map +1 -1
- package/features/folders/updateFolder/FolderGqlDto.d.ts +1 -0
- package/features/folders/updateFolder/FolderGqlDto.js.map +1 -1
- package/features/folders/updateFolder/UpdateFolder.js +5 -1
- package/features/folders/updateFolder/UpdateFolder.js.map +1 -1
- package/features/folders/updateFolder/UpdateFolder.test.js +308 -0
- package/features/folders/updateFolder/UpdateFolder.test.js.map +1 -1
- package/features/folders/updateFolder/UpdateFolderRepositoryWithPathChange.d.ts +11 -0
- package/features/folders/updateFolder/UpdateFolderRepositoryWithPathChange.js +107 -0
- package/features/folders/updateFolder/UpdateFolderRepositoryWithPathChange.js.map +1 -0
- package/features/folders/updateFolder/UpdateFolderRepositoryWithPermissionsChange.d.ts +12 -0
- package/features/folders/updateFolder/UpdateFolderRepositoryWithPermissionsChange.js +100 -0
- package/features/folders/updateFolder/UpdateFolderRepositoryWithPermissionsChange.js.map +1 -0
- package/package.json +17 -16
- package/types.d.ts +3 -6
- package/types.js +12 -0
- package/types.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_graphqlTag","_interopRequireDefault","require","_constants","_templateObject","LIST_FOLDERS","exports","FOLDER_FIELDS","gql","_taggedTemplateLiteral2","default","ListFoldersGqlGateway","client","modelFields","_classCallCheck2","_createClass2","key","value","execute","params","_await$this$client$qu","query","variables","_objectSpread2","limit","fetchPolicy","response","data","Error","_response$aco$listFol","aco","listFolders","error","message","getRootFolder","concat","_toConsumableArray2","id","ROOT_FOLDER","title","permissions","parentId","slug","createdOn","createdBy","displayName","type","hasNonInheritedPermissions","canManagePermissions","canManageStructure","canManageContent","savedOn","savedBy","modifiedOn","modifiedBy","extensions"],"sources":["ListFoldersGqlGateway.ts"],"sourcesContent":["import ApolloClient from \"apollo-client\";\nimport gql from \"graphql-tag\";\nimport { IListFoldersGateway, ListFoldersGatewayParams } from \"./IListFoldersGateway\";\nimport { AcoError, FolderItem } from \"~/types\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\nexport interface ListFoldersResponse {\n aco: {\n listFolders: {\n data: FolderItem[] | null;\n error: AcoError | null;\n };\n };\n}\n\nexport interface ListFoldersQueryVariables {\n type: string;\n limit: number;\n sort?: Record<string, any>;\n after?: string | null;\n}\n\nexport const LIST_FOLDERS = (FOLDER_FIELDS: string) => gql`\n query ListFolders($type: String!, $limit: Int!) {\n aco {\n listFolders(where: { type: $type }, limit: $limit) {\n data ${FOLDER_FIELDS}\n error {\n code\n data\n message\n }\n }\n }\n }\n`;\n\nexport class ListFoldersGqlGateway implements IListFoldersGateway {\n private client: ApolloClient<any>;\n private modelFields: string;\n\n constructor(client: ApolloClient<any>, modelFields: string) {\n this.client = client;\n this.modelFields = modelFields;\n }\n\n async execute(params: ListFoldersGatewayParams) {\n const { data: response } = await this.client.query<\n ListFoldersResponse,\n ListFoldersQueryVariables\n >({\n query: LIST_FOLDERS(this.modelFields),\n variables: {\n ...params,\n limit: 10000\n },\n fetchPolicy: \"network-only\"\n });\n\n if (!response) {\n throw new Error(\"Network error while listing folders.\");\n }\n\n const { data, error } = response.aco.listFolders;\n\n if (!data) {\n throw new Error(error?.message || \"Could not fetch folders\");\n }\n\n return [this.getRootFolder(), ...(data || [])];\n }\n\n private getRootFolder(): FolderItem {\n return {\n id: ROOT_FOLDER,\n title: \"Home\",\n permissions: [],\n parentId: \"0\",\n slug: \"\",\n createdOn: \"\",\n createdBy: {\n id: \"\",\n displayName: \"\",\n type: \"\"\n },\n hasNonInheritedPermissions: false,\n canManagePermissions: true,\n canManageStructure: true,\n canManageContent: true,\n savedOn: \"\",\n savedBy: {\n id: \"\",\n displayName: \"\",\n type: \"\"\n },\n modifiedOn: null,\n modifiedBy: null,\n type: \"$ROOT\",\n extensions: {}\n };\n }\n}\n"],"mappings":";;;;;;;;;;;;AACA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,UAAA,GAAAD,OAAA;AAA0C,IAAAE,eAAA;AAkBnC,IAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,SAAfA,YAAYA,CAAIE,aAAqB;EAAA,WAAKC,mBAAG,EAAAJ,eAAA,KAAAA,eAAA,OAAAK,uBAAA,CAAAC,OAAA,6UAInCH,aAAa;AAAA,CASnC;AAAC,IAEWI,qBAAqB,GAAAL,OAAA,CAAAK,qBAAA;EAI9B,SAAAA,sBAAYC,MAAyB,EAAEC,WAAmB,EAAE;IAAA,IAAAC,gBAAA,CAAAJ,OAAA,QAAAC,qBAAA;IACxD,IAAI,CAACC,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,WAAW,GAAGA,WAAW;EAClC;EAAC,WAAAE,aAAA,CAAAL,OAAA,EAAAC,qBAAA;IAAAK,GAAA;IAAAC,KAAA,EAED,eAAMC,OAAOA,CAACC,MAAgC,EAAE;MAC5C,IAAAC,qBAAA,GAA2B,MAAM,IAAI,CAACR,MAAM,CAACS,KAAK,CAGhD;UACEA,KAAK,EAAEhB,YAAY,CAAC,IAAI,CAACQ,WAAW,CAAC;UACrCS,SAAS,MAAAC,cAAA,CAAAb,OAAA,MAAAa,cAAA,CAAAb,OAAA,MACFS,MAAM;YACTK,KAAK,EAAE;UAAK,EACf;UACDC,WAAW,EAAE;QACjB,CAAC,CAAC;QAVYC,QAAQ,GAAAN,qBAAA,CAAdO,IAAI;MAYZ,IAAI,CAACD,QAAQ,EAAE;QACX,MAAM,IAAIE,KAAK,CAAC,sCAAsC,CAAC;MAC3D;MAEA,IAAAC,qBAAA,GAAwBH,QAAQ,CAACI,GAAG,CAACC,WAAW;QAAxCJ,IAAI,GAAAE,qBAAA,CAAJF,IAAI;QAAEK,KAAK,GAAAH,qBAAA,CAALG,KAAK;MAEnB,IAAI,CAACL,IAAI,EAAE;QACP,MAAM,IAAIC,KAAK,CAACI,KAAK,EAAEC,OAAO,IAAI,yBAAyB,CAAC;MAChE;MAEA,QAAQ,IAAI,CAACC,aAAa,CAAC,CAAC,EAAAC,MAAA,KAAAC,mBAAA,CAAA1B,OAAA,EAAMiB,IAAI,IAAI,EAAE;IAChD;EAAC;IAAAX,GAAA;IAAAC,KAAA,EAED,SAAQiB,aAAaA,CAAA,EAAe;MAChC,OAAO;QACHG,EAAE,EAAEC,sBAAW;QACfC,KAAK,EAAE,MAAM;QACbC,WAAW,EAAE,EAAE;QACfC,QAAQ,EAAE,GAAG;QACbC,IAAI,EAAE,EAAE;QACRC,SAAS,EAAE,EAAE;QACbC,SAAS,EAAE;
|
|
1
|
+
{"version":3,"names":["_graphqlTag","_interopRequireDefault","require","_constants","_templateObject","LIST_FOLDERS","exports","FOLDER_FIELDS","gql","_taggedTemplateLiteral2","default","ListFoldersGqlGateway","client","modelFields","_classCallCheck2","_createClass2","key","value","execute","params","_await$this$client$qu","query","variables","_objectSpread2","limit","fetchPolicy","response","data","Error","_response$aco$listFol","aco","listFolders","error","message","getRootFolder","concat","_toConsumableArray2","id","ROOT_FOLDER","title","permissions","parentId","path","slug","createdOn","createdBy","displayName","type","hasNonInheritedPermissions","canManagePermissions","canManageStructure","canManageContent","savedOn","savedBy","modifiedOn","modifiedBy","extensions"],"sources":["ListFoldersGqlGateway.ts"],"sourcesContent":["import ApolloClient from \"apollo-client\";\nimport gql from \"graphql-tag\";\nimport { IListFoldersGateway, ListFoldersGatewayParams } from \"./IListFoldersGateway\";\nimport { AcoError, FolderItem } from \"~/types\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\nexport interface ListFoldersResponse {\n aco: {\n listFolders: {\n data: FolderItem[] | null;\n error: AcoError | null;\n };\n };\n}\n\nexport interface ListFoldersQueryVariables {\n type: string;\n limit: number;\n sort?: Record<string, any>;\n after?: string | null;\n}\n\nexport const LIST_FOLDERS = (FOLDER_FIELDS: string) => gql`\n query ListFolders($type: String!, $limit: Int!) {\n aco {\n listFolders(where: { type: $type }, limit: $limit) {\n data ${FOLDER_FIELDS}\n error {\n code\n data\n message\n }\n }\n }\n }\n`;\n\nexport class ListFoldersGqlGateway implements IListFoldersGateway {\n private client: ApolloClient<any>;\n private modelFields: string;\n\n constructor(client: ApolloClient<any>, modelFields: string) {\n this.client = client;\n this.modelFields = modelFields;\n }\n\n async execute(params: ListFoldersGatewayParams) {\n const { data: response } = await this.client.query<\n ListFoldersResponse,\n ListFoldersQueryVariables\n >({\n query: LIST_FOLDERS(this.modelFields),\n variables: {\n ...params,\n limit: 10000\n },\n fetchPolicy: \"network-only\"\n });\n\n if (!response) {\n throw new Error(\"Network error while listing folders.\");\n }\n\n const { data, error } = response.aco.listFolders;\n\n if (!data) {\n throw new Error(error?.message || \"Could not fetch folders\");\n }\n\n return [this.getRootFolder(), ...(data || [])];\n }\n\n private getRootFolder(): FolderItem {\n return {\n id: ROOT_FOLDER,\n title: \"Home\",\n permissions: [],\n parentId: \"0\",\n path: ROOT_FOLDER,\n slug: \"\",\n createdOn: \"\",\n createdBy: {\n id: \"\",\n displayName: \"\",\n type: \"\"\n },\n hasNonInheritedPermissions: false,\n canManagePermissions: true,\n canManageStructure: true,\n canManageContent: true,\n savedOn: \"\",\n savedBy: {\n id: \"\",\n displayName: \"\",\n type: \"\"\n },\n modifiedOn: null,\n modifiedBy: null,\n type: \"$ROOT\",\n extensions: {}\n };\n }\n}\n"],"mappings":";;;;;;;;;;;;AACA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,UAAA,GAAAD,OAAA;AAA0C,IAAAE,eAAA;AAkBnC,IAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,SAAfA,YAAYA,CAAIE,aAAqB;EAAA,WAAKC,mBAAG,EAAAJ,eAAA,KAAAA,eAAA,OAAAK,uBAAA,CAAAC,OAAA,6UAInCH,aAAa;AAAA,CASnC;AAAC,IAEWI,qBAAqB,GAAAL,OAAA,CAAAK,qBAAA;EAI9B,SAAAA,sBAAYC,MAAyB,EAAEC,WAAmB,EAAE;IAAA,IAAAC,gBAAA,CAAAJ,OAAA,QAAAC,qBAAA;IACxD,IAAI,CAACC,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,WAAW,GAAGA,WAAW;EAClC;EAAC,WAAAE,aAAA,CAAAL,OAAA,EAAAC,qBAAA;IAAAK,GAAA;IAAAC,KAAA,EAED,eAAMC,OAAOA,CAACC,MAAgC,EAAE;MAC5C,IAAAC,qBAAA,GAA2B,MAAM,IAAI,CAACR,MAAM,CAACS,KAAK,CAGhD;UACEA,KAAK,EAAEhB,YAAY,CAAC,IAAI,CAACQ,WAAW,CAAC;UACrCS,SAAS,MAAAC,cAAA,CAAAb,OAAA,MAAAa,cAAA,CAAAb,OAAA,MACFS,MAAM;YACTK,KAAK,EAAE;UAAK,EACf;UACDC,WAAW,EAAE;QACjB,CAAC,CAAC;QAVYC,QAAQ,GAAAN,qBAAA,CAAdO,IAAI;MAYZ,IAAI,CAACD,QAAQ,EAAE;QACX,MAAM,IAAIE,KAAK,CAAC,sCAAsC,CAAC;MAC3D;MAEA,IAAAC,qBAAA,GAAwBH,QAAQ,CAACI,GAAG,CAACC,WAAW;QAAxCJ,IAAI,GAAAE,qBAAA,CAAJF,IAAI;QAAEK,KAAK,GAAAH,qBAAA,CAALG,KAAK;MAEnB,IAAI,CAACL,IAAI,EAAE;QACP,MAAM,IAAIC,KAAK,CAACI,KAAK,EAAEC,OAAO,IAAI,yBAAyB,CAAC;MAChE;MAEA,QAAQ,IAAI,CAACC,aAAa,CAAC,CAAC,EAAAC,MAAA,KAAAC,mBAAA,CAAA1B,OAAA,EAAMiB,IAAI,IAAI,EAAE;IAChD;EAAC;IAAAX,GAAA;IAAAC,KAAA,EAED,SAAQiB,aAAaA,CAAA,EAAe;MAChC,OAAO;QACHG,EAAE,EAAEC,sBAAW;QACfC,KAAK,EAAE,MAAM;QACbC,WAAW,EAAE,EAAE;QACfC,QAAQ,EAAE,GAAG;QACbC,IAAI,EAAEJ,sBAAW;QACjBK,IAAI,EAAE,EAAE;QACRC,SAAS,EAAE,EAAE;QACbC,SAAS,EAAE;UACPR,EAAE,EAAE,EAAE;UACNS,WAAW,EAAE,EAAE;UACfC,IAAI,EAAE;QACV,CAAC;QACDC,0BAA0B,EAAE,KAAK;QACjCC,oBAAoB,EAAE,IAAI;QAC1BC,kBAAkB,EAAE,IAAI;QACxBC,gBAAgB,EAAE,IAAI;QACtBC,OAAO,EAAE,EAAE;QACXC,OAAO,EAAE;UACLhB,EAAE,EAAE,EAAE;UACNS,WAAW,EAAE,EAAE;UACfC,IAAI,EAAE;QACV,CAAC;QACDO,UAAU,EAAE,IAAI;QAChBC,UAAU,EAAE,IAAI;QAChBR,IAAI,EAAE,OAAO;QACbS,UAAU,EAAE,CAAC;MACjB,CAAC;IACL;EAAC;AAAA","ignoreList":[]}
|
|
@@ -27,6 +27,7 @@ var FolderDtoMapper = exports.FolderDtoMapper = /*#__PURE__*/function () {
|
|
|
27
27
|
modifiedBy: this.createIdentity(folder.modifiedBy),
|
|
28
28
|
modifiedOn: folder.modifiedOn ?? "",
|
|
29
29
|
parentId: folder.parentId ?? _constants.ROOT_FOLDER,
|
|
30
|
+
path: folder.path,
|
|
30
31
|
permissions: folder.permissions ?? [],
|
|
31
32
|
savedBy: this.createIdentity(folder.savedBy),
|
|
32
33
|
savedOn: folder.savedOn ?? "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_constants","require","FolderDtoMapper","exports","_classCallCheck2","default","_createClass2","key","value","toDTO","folder","id","title","canManageContent","canManagePermissions","canManageStructure","createdBy","createIdentity","createdOn","hasNonInheritedPermissions","modifiedBy","modifiedOn","parentId","ROOT_FOLDER","permissions","savedBy","savedOn","slug","type","extensions","identity","displayName"],"sources":["FolderDto.ts"],"sourcesContent":["import { CmsIdentity, FolderPermission } from \"~/types\";\nimport { Folder } from \"../Folder\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\nexport interface FolderDto {\n id: string;\n title: string;\n slug: string;\n type: string;\n parentId: string;\n permissions: FolderPermission[];\n hasNonInheritedPermissions: boolean;\n canManagePermissions: boolean;\n canManageStructure: boolean;\n canManageContent: boolean;\n createdBy: CmsIdentity;\n createdOn: string;\n savedBy: CmsIdentity;\n savedOn: string;\n modifiedBy: CmsIdentity;\n modifiedOn: string;\n extensions: Record<string, any>;\n}\n\nexport class FolderDtoMapper {\n static toDTO(folder: Folder): FolderDto {\n return {\n id: folder.id,\n title: folder.title,\n canManageContent: folder.canManageContent ?? false,\n canManagePermissions: folder.canManagePermissions ?? false,\n canManageStructure: folder.canManageStructure ?? false,\n createdBy: this.createIdentity(folder.createdBy),\n createdOn: folder.createdOn ?? \"\",\n hasNonInheritedPermissions: folder.hasNonInheritedPermissions ?? false,\n modifiedBy: this.createIdentity(folder.modifiedBy),\n modifiedOn: folder.modifiedOn ?? \"\",\n parentId: folder.parentId ?? ROOT_FOLDER,\n permissions: folder.permissions ?? [],\n savedBy: this.createIdentity(folder.savedBy),\n savedOn: folder.savedOn ?? \"\",\n slug: folder.slug,\n type: folder.type,\n extensions: folder.extensions ?? {}\n };\n }\n\n private static createIdentity(identity?: CmsIdentity | null): CmsIdentity {\n return {\n id: identity?.id || \"\",\n displayName: identity?.displayName || \"\",\n type: identity?.type || \"\"\n };\n }\n}\n"],"mappings":";;;;;;;;;AAEA,IAAAA,UAAA,GAAAC,OAAA;AAA0C,
|
|
1
|
+
{"version":3,"names":["_constants","require","FolderDtoMapper","exports","_classCallCheck2","default","_createClass2","key","value","toDTO","folder","id","title","canManageContent","canManagePermissions","canManageStructure","createdBy","createIdentity","createdOn","hasNonInheritedPermissions","modifiedBy","modifiedOn","parentId","ROOT_FOLDER","path","permissions","savedBy","savedOn","slug","type","extensions","identity","displayName"],"sources":["FolderDto.ts"],"sourcesContent":["import { CmsIdentity, FolderPermission } from \"~/types\";\nimport { Folder } from \"../Folder\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\nexport interface FolderDto {\n id: string;\n title: string;\n slug: string;\n type: string;\n parentId: string;\n path: string;\n permissions: FolderPermission[];\n hasNonInheritedPermissions: boolean;\n canManagePermissions: boolean;\n canManageStructure: boolean;\n canManageContent: boolean;\n createdBy: CmsIdentity;\n createdOn: string;\n savedBy: CmsIdentity;\n savedOn: string;\n modifiedBy: CmsIdentity;\n modifiedOn: string;\n extensions: Record<string, any>;\n}\n\nexport class FolderDtoMapper {\n static toDTO(folder: Folder): FolderDto {\n return {\n id: folder.id,\n title: folder.title,\n canManageContent: folder.canManageContent ?? false,\n canManagePermissions: folder.canManagePermissions ?? false,\n canManageStructure: folder.canManageStructure ?? false,\n createdBy: this.createIdentity(folder.createdBy),\n createdOn: folder.createdOn ?? \"\",\n hasNonInheritedPermissions: folder.hasNonInheritedPermissions ?? false,\n modifiedBy: this.createIdentity(folder.modifiedBy),\n modifiedOn: folder.modifiedOn ?? \"\",\n parentId: folder.parentId ?? ROOT_FOLDER,\n path: folder.path,\n permissions: folder.permissions ?? [],\n savedBy: this.createIdentity(folder.savedBy),\n savedOn: folder.savedOn ?? \"\",\n slug: folder.slug,\n type: folder.type,\n extensions: folder.extensions ?? {}\n };\n }\n\n private static createIdentity(identity?: CmsIdentity | null): CmsIdentity {\n return {\n id: identity?.id || \"\",\n displayName: identity?.displayName || \"\",\n type: identity?.type || \"\"\n };\n }\n}\n"],"mappings":";;;;;;;;;AAEA,IAAAA,UAAA,GAAAC,OAAA;AAA0C,IAuB7BC,eAAe,GAAAC,OAAA,CAAAD,eAAA;EAAA,SAAAA,gBAAA;IAAA,IAAAE,gBAAA,CAAAC,OAAA,QAAAH,eAAA;EAAA;EAAA,WAAAI,aAAA,CAAAD,OAAA,EAAAH,eAAA;IAAAK,GAAA;IAAAC,KAAA,EACxB,SAAOC,KAAKA,CAACC,MAAc,EAAa;MACpC,OAAO;QACHC,EAAE,EAAED,MAAM,CAACC,EAAE;QACbC,KAAK,EAAEF,MAAM,CAACE,KAAK;QACnBC,gBAAgB,EAAEH,MAAM,CAACG,gBAAgB,IAAI,KAAK;QAClDC,oBAAoB,EAAEJ,MAAM,CAACI,oBAAoB,IAAI,KAAK;QAC1DC,kBAAkB,EAAEL,MAAM,CAACK,kBAAkB,IAAI,KAAK;QACtDC,SAAS,EAAE,IAAI,CAACC,cAAc,CAACP,MAAM,CAACM,SAAS,CAAC;QAChDE,SAAS,EAAER,MAAM,CAACQ,SAAS,IAAI,EAAE;QACjCC,0BAA0B,EAAET,MAAM,CAACS,0BAA0B,IAAI,KAAK;QACtEC,UAAU,EAAE,IAAI,CAACH,cAAc,CAACP,MAAM,CAACU,UAAU,CAAC;QAClDC,UAAU,EAAEX,MAAM,CAACW,UAAU,IAAI,EAAE;QACnCC,QAAQ,EAAEZ,MAAM,CAACY,QAAQ,IAAIC,sBAAW;QACxCC,IAAI,EAAEd,MAAM,CAACc,IAAI;QACjBC,WAAW,EAAEf,MAAM,CAACe,WAAW,IAAI,EAAE;QACrCC,OAAO,EAAE,IAAI,CAACT,cAAc,CAACP,MAAM,CAACgB,OAAO,CAAC;QAC5CC,OAAO,EAAEjB,MAAM,CAACiB,OAAO,IAAI,EAAE;QAC7BC,IAAI,EAAElB,MAAM,CAACkB,IAAI;QACjBC,IAAI,EAAEnB,MAAM,CAACmB,IAAI;QACjBC,UAAU,EAAEpB,MAAM,CAACoB,UAAU,IAAI,CAAC;MACtC,CAAC;IACL;EAAC;IAAAvB,GAAA;IAAAC,KAAA,EAED,SAAeS,cAAcA,CAACc,QAA6B,EAAe;MACtE,OAAO;QACHpB,EAAE,EAAEoB,QAAQ,EAAEpB,EAAE,IAAI,EAAE;QACtBqB,WAAW,EAAED,QAAQ,EAAEC,WAAW,IAAI,EAAE;QACxCH,IAAI,EAAEE,QAAQ,EAAEF,IAAI,IAAI;MAC5B,CAAC;IACL;EAAC;AAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["FolderGqlDto.ts"],"sourcesContent":["import { CmsIdentity, FolderPermission } from \"~/types\";\n\nexport interface FolderGqlDto {\n id: string;\n title: string;\n slug: string;\n permissions: FolderPermission[];\n hasNonInheritedPermissions: boolean;\n canManagePermissions: boolean;\n canManageStructure: boolean;\n canManageContent: boolean;\n type: string;\n parentId: string | null;\n createdBy: CmsIdentity;\n createdOn: string;\n savedBy: CmsIdentity;\n savedOn: string;\n modifiedBy: CmsIdentity | null;\n modifiedOn: string | null;\n extensions: Record<string, any>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["FolderGqlDto.ts"],"sourcesContent":["import { CmsIdentity, FolderPermission } from \"~/types\";\n\nexport interface FolderGqlDto {\n id: string;\n title: string;\n slug: string;\n permissions: FolderPermission[];\n hasNonInheritedPermissions: boolean;\n canManagePermissions: boolean;\n canManageStructure: boolean;\n canManageContent: boolean;\n type: string;\n parentId: string | null;\n path: string;\n createdBy: CmsIdentity;\n createdOn: string;\n savedBy: CmsIdentity;\n savedOn: string;\n modifiedBy: CmsIdentity | null;\n modifiedOn: string | null;\n extensions: Record<string, any>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_graphqlTag","_interopRequireDefault","require","_constants","_excluded","_templateObject","LIST_FOLDERS_BY_PARENT_IDS","exports","FOLDER_FIELDS","gql","_taggedTemplateLiteral2","default","ListFoldersByParentIdsGqlGateway","client","modelFields","_classCallCheck2","_createClass2","key","value","execute","_ref","parentIds","params","_objectWithoutProperties2","_await$this$client$qu","query","variables","_objectSpread2","parentIds_in","limit","fetchPolicy","response","data","Error","_response$aco$listFol","aco","listFolders","error","message","getRootFolder","concat","_toConsumableArray2","id","ROOT_FOLDER","title","permissions","parentId","slug","createdOn","createdBy","displayName","type","hasNonInheritedPermissions","canManagePermissions","canManageStructure","canManageContent","savedOn","savedBy","modifiedOn","modifiedBy","extensions"],"sources":["ListFoldersByParentIdsGqlGateway.ts"],"sourcesContent":["import ApolloClient from \"apollo-client\";\nimport gql from \"graphql-tag\";\nimport {\n IListFoldersByParentIdsGateway,\n ListFoldersByParentIdsGatewayParams\n} from \"./IListFoldersByParentIdsGateway\";\nimport { AcoError, FolderItem } from \"~/types\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\nexport interface ListFoldersByParentIdsResponse {\n aco: {\n listFolders: {\n data: FolderItem[] | null;\n error: AcoError | null;\n };\n };\n}\n\nexport interface ListFoldersByParentIdsQueryVariables {\n type: string;\n parentIds_in: string[];\n limit: number;\n sort?: Record<string, any>;\n after?: string | null;\n}\n\nexport const LIST_FOLDERS_BY_PARENT_IDS = (FOLDER_FIELDS: string) => gql`\n query ListFoldersByParentIds($type: String!, $parentIds_in: [ID!]!, $limit: Int!) {\n aco {\n listFolders(where: { type: $type, parentId_in: $parentIds_in }, limit: $limit) {\n data ${FOLDER_FIELDS}\n error {\n code\n data\n message\n }\n }\n }\n }\n`;\n\nexport class ListFoldersByParentIdsGqlGateway implements IListFoldersByParentIdsGateway {\n private client: ApolloClient<any>;\n private modelFields: string;\n\n constructor(client: ApolloClient<any>, modelFields: string) {\n this.client = client;\n this.modelFields = modelFields;\n }\n\n async execute({ parentIds, ...params }: ListFoldersByParentIdsGatewayParams) {\n const { data: response } = await this.client.query<\n ListFoldersByParentIdsResponse,\n ListFoldersByParentIdsQueryVariables\n >({\n query: LIST_FOLDERS_BY_PARENT_IDS(this.modelFields),\n variables: {\n ...params,\n parentIds_in: parentIds,\n limit: 10000\n },\n fetchPolicy: \"network-only\"\n });\n\n if (!response) {\n throw new Error(\"Network error while listing folders.\");\n }\n\n const { data, error } = response.aco.listFolders;\n\n if (!data) {\n throw new Error(error?.message || \"Could not fetch folders\");\n }\n\n return [this.getRootFolder(), ...(data || [])];\n }\n\n private getRootFolder(): FolderItem {\n return {\n id: ROOT_FOLDER,\n title: \"Home\",\n permissions: [],\n parentId: \"0\",\n slug: \"\",\n createdOn: \"\",\n createdBy: {\n id: \"\",\n displayName: \"\",\n type: \"\"\n },\n hasNonInheritedPermissions: false,\n canManagePermissions: true,\n canManageStructure: true,\n canManageContent: true,\n savedOn: \"\",\n savedBy: {\n id: \"\",\n displayName: \"\",\n type: \"\"\n },\n modifiedOn: null,\n modifiedBy: null,\n type: \"$ROOT\",\n extensions: {}\n };\n }\n}\n"],"mappings":";;;;;;;;;;;;;AACA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAMA,IAAAC,UAAA,GAAAD,OAAA;AAA0C,IAAAE,SAAA;AAAA,IAAAC,eAAA;AAmBnC,IAAMC,0BAA0B,GAAAC,OAAA,CAAAD,0BAAA,GAAG,SAA7BA,0BAA0BA,CAAIE,aAAqB;EAAA,WAAKC,mBAAG,EAAAJ,eAAA,KAAAA,eAAA,OAAAK,uBAAA,CAAAC,OAAA,2YAIjDH,aAAa;AAAA,CASnC;AAAC,IAEWI,gCAAgC,GAAAL,OAAA,CAAAK,gCAAA;EAIzC,SAAAA,iCAAYC,MAAyB,EAAEC,WAAmB,EAAE;IAAA,IAAAC,gBAAA,CAAAJ,OAAA,QAAAC,gCAAA;IACxD,IAAI,CAACC,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,WAAW,GAAGA,WAAW;EAClC;EAAC,WAAAE,aAAA,CAAAL,OAAA,EAAAC,gCAAA;IAAAK,GAAA;IAAAC,KAAA,EAED,eAAMC,OAAOA,CAAAC,IAAA,EAAgE;MAAA,IAA7DC,SAAS,GAAAD,IAAA,CAATC,SAAS;QAAKC,MAAM,OAAAC,yBAAA,CAAAZ,OAAA,EAAAS,IAAA,EAAAhB,SAAA;MAChC,IAAAoB,qBAAA,GAA2B,MAAM,IAAI,CAACX,MAAM,CAACY,KAAK,CAGhD;UACEA,KAAK,EAAEnB,0BAA0B,CAAC,IAAI,CAACQ,WAAW,CAAC;UACnDY,SAAS,MAAAC,cAAA,CAAAhB,OAAA,MAAAgB,cAAA,CAAAhB,OAAA,MACFW,MAAM;YACTM,YAAY,EAAEP,SAAS;YACvBQ,KAAK,EAAE;UAAK,EACf;UACDC,WAAW,EAAE;QACjB,CAAC,CAAC;QAXYC,QAAQ,GAAAP,qBAAA,CAAdQ,IAAI;MAaZ,IAAI,CAACD,QAAQ,EAAE;QACX,MAAM,IAAIE,KAAK,CAAC,sCAAsC,CAAC;MAC3D;MAEA,IAAAC,qBAAA,GAAwBH,QAAQ,CAACI,GAAG,CAACC,WAAW;QAAxCJ,IAAI,GAAAE,qBAAA,CAAJF,IAAI;QAAEK,KAAK,GAAAH,qBAAA,CAALG,KAAK;MAEnB,IAAI,CAACL,IAAI,EAAE;QACP,MAAM,IAAIC,KAAK,CAACI,KAAK,EAAEC,OAAO,IAAI,yBAAyB,CAAC;MAChE;MAEA,QAAQ,IAAI,CAACC,aAAa,CAAC,CAAC,EAAAC,MAAA,KAAAC,mBAAA,CAAA9B,OAAA,EAAMqB,IAAI,IAAI,EAAE;IAChD;EAAC;IAAAf,GAAA;IAAAC,KAAA,EAED,SAAQqB,aAAaA,CAAA,EAAe;MAChC,OAAO;QACHG,EAAE,EAAEC,sBAAW;QACfC,KAAK,EAAE,MAAM;QACbC,WAAW,EAAE,EAAE;QACfC,QAAQ,EAAE,GAAG;QACbC,IAAI,EAAE,EAAE;QACRC,SAAS,EAAE,EAAE;QACbC,SAAS,EAAE;
|
|
1
|
+
{"version":3,"names":["_graphqlTag","_interopRequireDefault","require","_constants","_excluded","_templateObject","LIST_FOLDERS_BY_PARENT_IDS","exports","FOLDER_FIELDS","gql","_taggedTemplateLiteral2","default","ListFoldersByParentIdsGqlGateway","client","modelFields","_classCallCheck2","_createClass2","key","value","execute","_ref","parentIds","params","_objectWithoutProperties2","_await$this$client$qu","query","variables","_objectSpread2","parentIds_in","limit","fetchPolicy","response","data","Error","_response$aco$listFol","aco","listFolders","error","message","getRootFolder","concat","_toConsumableArray2","id","ROOT_FOLDER","title","permissions","parentId","path","slug","createdOn","createdBy","displayName","type","hasNonInheritedPermissions","canManagePermissions","canManageStructure","canManageContent","savedOn","savedBy","modifiedOn","modifiedBy","extensions"],"sources":["ListFoldersByParentIdsGqlGateway.ts"],"sourcesContent":["import ApolloClient from \"apollo-client\";\nimport gql from \"graphql-tag\";\nimport {\n IListFoldersByParentIdsGateway,\n ListFoldersByParentIdsGatewayParams\n} from \"./IListFoldersByParentIdsGateway\";\nimport { AcoError, FolderItem } from \"~/types\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\nexport interface ListFoldersByParentIdsResponse {\n aco: {\n listFolders: {\n data: FolderItem[] | null;\n error: AcoError | null;\n };\n };\n}\n\nexport interface ListFoldersByParentIdsQueryVariables {\n type: string;\n parentIds_in: string[];\n limit: number;\n sort?: Record<string, any>;\n after?: string | null;\n}\n\nexport const LIST_FOLDERS_BY_PARENT_IDS = (FOLDER_FIELDS: string) => gql`\n query ListFoldersByParentIds($type: String!, $parentIds_in: [ID!]!, $limit: Int!) {\n aco {\n listFolders(where: { type: $type, parentId_in: $parentIds_in }, limit: $limit) {\n data ${FOLDER_FIELDS}\n error {\n code\n data\n message\n }\n }\n }\n }\n`;\n\nexport class ListFoldersByParentIdsGqlGateway implements IListFoldersByParentIdsGateway {\n private client: ApolloClient<any>;\n private modelFields: string;\n\n constructor(client: ApolloClient<any>, modelFields: string) {\n this.client = client;\n this.modelFields = modelFields;\n }\n\n async execute({ parentIds, ...params }: ListFoldersByParentIdsGatewayParams) {\n const { data: response } = await this.client.query<\n ListFoldersByParentIdsResponse,\n ListFoldersByParentIdsQueryVariables\n >({\n query: LIST_FOLDERS_BY_PARENT_IDS(this.modelFields),\n variables: {\n ...params,\n parentIds_in: parentIds,\n limit: 10000\n },\n fetchPolicy: \"network-only\"\n });\n\n if (!response) {\n throw new Error(\"Network error while listing folders.\");\n }\n\n const { data, error } = response.aco.listFolders;\n\n if (!data) {\n throw new Error(error?.message || \"Could not fetch folders\");\n }\n\n return [this.getRootFolder(), ...(data || [])];\n }\n\n private getRootFolder(): FolderItem {\n return {\n id: ROOT_FOLDER,\n title: \"Home\",\n permissions: [],\n parentId: \"0\",\n path: ROOT_FOLDER,\n slug: \"\",\n createdOn: \"\",\n createdBy: {\n id: \"\",\n displayName: \"\",\n type: \"\"\n },\n hasNonInheritedPermissions: false,\n canManagePermissions: true,\n canManageStructure: true,\n canManageContent: true,\n savedOn: \"\",\n savedBy: {\n id: \"\",\n displayName: \"\",\n type: \"\"\n },\n modifiedOn: null,\n modifiedBy: null,\n type: \"$ROOT\",\n extensions: {}\n };\n }\n}\n"],"mappings":";;;;;;;;;;;;;AACA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAMA,IAAAC,UAAA,GAAAD,OAAA;AAA0C,IAAAE,SAAA;AAAA,IAAAC,eAAA;AAmBnC,IAAMC,0BAA0B,GAAAC,OAAA,CAAAD,0BAAA,GAAG,SAA7BA,0BAA0BA,CAAIE,aAAqB;EAAA,WAAKC,mBAAG,EAAAJ,eAAA,KAAAA,eAAA,OAAAK,uBAAA,CAAAC,OAAA,2YAIjDH,aAAa;AAAA,CASnC;AAAC,IAEWI,gCAAgC,GAAAL,OAAA,CAAAK,gCAAA;EAIzC,SAAAA,iCAAYC,MAAyB,EAAEC,WAAmB,EAAE;IAAA,IAAAC,gBAAA,CAAAJ,OAAA,QAAAC,gCAAA;IACxD,IAAI,CAACC,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,WAAW,GAAGA,WAAW;EAClC;EAAC,WAAAE,aAAA,CAAAL,OAAA,EAAAC,gCAAA;IAAAK,GAAA;IAAAC,KAAA,EAED,eAAMC,OAAOA,CAAAC,IAAA,EAAgE;MAAA,IAA7DC,SAAS,GAAAD,IAAA,CAATC,SAAS;QAAKC,MAAM,OAAAC,yBAAA,CAAAZ,OAAA,EAAAS,IAAA,EAAAhB,SAAA;MAChC,IAAAoB,qBAAA,GAA2B,MAAM,IAAI,CAACX,MAAM,CAACY,KAAK,CAGhD;UACEA,KAAK,EAAEnB,0BAA0B,CAAC,IAAI,CAACQ,WAAW,CAAC;UACnDY,SAAS,MAAAC,cAAA,CAAAhB,OAAA,MAAAgB,cAAA,CAAAhB,OAAA,MACFW,MAAM;YACTM,YAAY,EAAEP,SAAS;YACvBQ,KAAK,EAAE;UAAK,EACf;UACDC,WAAW,EAAE;QACjB,CAAC,CAAC;QAXYC,QAAQ,GAAAP,qBAAA,CAAdQ,IAAI;MAaZ,IAAI,CAACD,QAAQ,EAAE;QACX,MAAM,IAAIE,KAAK,CAAC,sCAAsC,CAAC;MAC3D;MAEA,IAAAC,qBAAA,GAAwBH,QAAQ,CAACI,GAAG,CAACC,WAAW;QAAxCJ,IAAI,GAAAE,qBAAA,CAAJF,IAAI;QAAEK,KAAK,GAAAH,qBAAA,CAALG,KAAK;MAEnB,IAAI,CAACL,IAAI,EAAE;QACP,MAAM,IAAIC,KAAK,CAACI,KAAK,EAAEC,OAAO,IAAI,yBAAyB,CAAC;MAChE;MAEA,QAAQ,IAAI,CAACC,aAAa,CAAC,CAAC,EAAAC,MAAA,KAAAC,mBAAA,CAAA9B,OAAA,EAAMqB,IAAI,IAAI,EAAE;IAChD;EAAC;IAAAf,GAAA;IAAAC,KAAA,EAED,SAAQqB,aAAaA,CAAA,EAAe;MAChC,OAAO;QACHG,EAAE,EAAEC,sBAAW;QACfC,KAAK,EAAE,MAAM;QACbC,WAAW,EAAE,EAAE;QACfC,QAAQ,EAAE,GAAG;QACbC,IAAI,EAAEJ,sBAAW;QACjBK,IAAI,EAAE,EAAE;QACRC,SAAS,EAAE,EAAE;QACbC,SAAS,EAAE;UACPR,EAAE,EAAE,EAAE;UACNS,WAAW,EAAE,EAAE;UACfC,IAAI,EAAE;QACV,CAAC;QACDC,0BAA0B,EAAE,KAAK;QACjCC,oBAAoB,EAAE,IAAI;QAC1BC,kBAAkB,EAAE,IAAI;QACxBC,gBAAgB,EAAE,IAAI;QACtBC,OAAO,EAAE,EAAE;QACXC,OAAO,EAAE;UACLhB,EAAE,EAAE,EAAE;UACNS,WAAW,EAAE,EAAE;UACfC,IAAI,EAAE;QACV,CAAC;QACDO,UAAU,EAAE,IAAI;QAChBC,UAAU,EAAE,IAAI;QAChBR,IAAI,EAAE,OAAO;QACbS,UAAU,EAAE,CAAC;MACjB,CAAC;IACL;EAAC;AAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["FolderGqlDto.ts"],"sourcesContent":["import { CmsIdentity, FolderPermission } from \"~/types\";\n\nexport interface FolderGqlDto {\n id: string;\n title: string;\n slug: string;\n permissions: FolderPermission[];\n hasNonInheritedPermissions: boolean;\n canManagePermissions: boolean;\n canManageStructure: boolean;\n canManageContent: boolean;\n type: string;\n parentId: string | null;\n createdBy: CmsIdentity;\n createdOn: string;\n savedBy: CmsIdentity;\n savedOn: string;\n modifiedBy: CmsIdentity | null;\n modifiedOn: string | null;\n extensions: Record<string, any>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["FolderGqlDto.ts"],"sourcesContent":["import { CmsIdentity, FolderPermission } from \"~/types\";\n\nexport interface FolderGqlDto {\n id: string;\n title: string;\n slug: string;\n permissions: FolderPermission[];\n hasNonInheritedPermissions: boolean;\n canManagePermissions: boolean;\n canManageStructure: boolean;\n canManageContent: boolean;\n type: string;\n parentId: string | null;\n path: string;\n createdBy: CmsIdentity;\n createdOn: string;\n savedBy: CmsIdentity;\n savedOn: string;\n modifiedBy: CmsIdentity | null;\n modifiedOn: string | null;\n extensions: Record<string, any>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -9,10 +9,12 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
|
|
|
9
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
10
|
var _appUtils = require("@webiny/app-utils");
|
|
11
11
|
var _UpdateFolderRepository = require("./UpdateFolderRepository");
|
|
12
|
+
var _UpdateFolderRepositoryWithPermissionsChange = require("./UpdateFolderRepositoryWithPermissionsChange");
|
|
12
13
|
var _UpdateFolderUseCase = require("./UpdateFolderUseCase");
|
|
13
14
|
var _UpdateFolderUseCaseWithLoading = require("./UpdateFolderUseCaseWithLoading");
|
|
14
15
|
var _UpdateFolderUseCaseWithoutInheritedPermissions = require("./UpdateFolderUseCaseWithoutInheritedPermissions");
|
|
15
16
|
var _cache = require("../cache");
|
|
17
|
+
var _UpdateFolderRepositoryWithPathChange = require("./UpdateFolderRepositoryWithPathChange");
|
|
16
18
|
var UpdateFolder = exports.UpdateFolder = /*#__PURE__*/function () {
|
|
17
19
|
function UpdateFolder() {
|
|
18
20
|
(0, _classCallCheck2.default)(this, UpdateFolder);
|
|
@@ -23,7 +25,9 @@ var UpdateFolder = exports.UpdateFolder = /*#__PURE__*/function () {
|
|
|
23
25
|
var foldersCache = _cache.folderCacheFactory.getCache(type);
|
|
24
26
|
var loadingRepository = _appUtils.loadingRepositoryFactory.getRepository(type);
|
|
25
27
|
var repository = new _UpdateFolderRepository.UpdateFolderRepository(foldersCache, gateway);
|
|
26
|
-
var
|
|
28
|
+
var repositoryWithPathChange = new _UpdateFolderRepositoryWithPathChange.UpdateFolderRepositoryWithPathChange(foldersCache, repository);
|
|
29
|
+
var repositoryWithPermissionsChange = new _UpdateFolderRepositoryWithPermissionsChange.UpdateFolderRepositoryWithPermissionsChange(foldersCache, repositoryWithPathChange);
|
|
30
|
+
var useCase = new _UpdateFolderUseCase.UpdateFolderUseCase(repositoryWithPermissionsChange);
|
|
27
31
|
var useCaseWithoutInheritedPermissions = new _UpdateFolderUseCaseWithoutInheritedPermissions.UpdateFolderUseCaseWithoutInheritedPermissions(useCase);
|
|
28
32
|
return new _UpdateFolderUseCaseWithLoading.UpdateFolderUseCaseWithLoading(loadingRepository, useCaseWithoutInheritedPermissions);
|
|
29
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_appUtils","require","_UpdateFolderRepository","_UpdateFolderUseCase","_UpdateFolderUseCaseWithLoading","_UpdateFolderUseCaseWithoutInheritedPermissions","_cache","UpdateFolder","exports","_classCallCheck2","default","_createClass2","key","value","getInstance","type","gateway","foldersCache","folderCacheFactory","getCache","loadingRepository","loadingRepositoryFactory","getRepository","repository","UpdateFolderRepository","useCase","UpdateFolderUseCase","useCaseWithoutInheritedPermissions","UpdateFolderUseCaseWithoutInheritedPermissions","UpdateFolderUseCaseWithLoading"],"sources":["UpdateFolder.ts"],"sourcesContent":["import { loadingRepositoryFactory } from \"@webiny/app-utils\";\nimport { IUpdateFolderUseCase } from \"./IUpdateFolderUseCase\";\nimport { IUpdateFolderGateway } from \"./IUpdateFolderGateway\";\nimport { UpdateFolderRepository } from \"./UpdateFolderRepository\";\nimport { UpdateFolderUseCase } from \"./UpdateFolderUseCase\";\nimport { UpdateFolderUseCaseWithLoading } from \"./UpdateFolderUseCaseWithLoading\";\nimport { UpdateFolderUseCaseWithoutInheritedPermissions } from \"./UpdateFolderUseCaseWithoutInheritedPermissions\";\nimport { folderCacheFactory } from \"../cache\";\n\nexport class UpdateFolder {\n public static getInstance(type: string, gateway: IUpdateFolderGateway): IUpdateFolderUseCase {\n const foldersCache = folderCacheFactory.getCache(type);\n const loadingRepository = loadingRepositoryFactory.getRepository(type);\n const repository = new UpdateFolderRepository(foldersCache, gateway);\n const useCase = new UpdateFolderUseCase(
|
|
1
|
+
{"version":3,"names":["_appUtils","require","_UpdateFolderRepository","_UpdateFolderRepositoryWithPermissionsChange","_UpdateFolderUseCase","_UpdateFolderUseCaseWithLoading","_UpdateFolderUseCaseWithoutInheritedPermissions","_cache","_UpdateFolderRepositoryWithPathChange","UpdateFolder","exports","_classCallCheck2","default","_createClass2","key","value","getInstance","type","gateway","foldersCache","folderCacheFactory","getCache","loadingRepository","loadingRepositoryFactory","getRepository","repository","UpdateFolderRepository","repositoryWithPathChange","UpdateFolderRepositoryWithPathChange","repositoryWithPermissionsChange","UpdateFolderRepositoryWithPermissionsChange","useCase","UpdateFolderUseCase","useCaseWithoutInheritedPermissions","UpdateFolderUseCaseWithoutInheritedPermissions","UpdateFolderUseCaseWithLoading"],"sources":["UpdateFolder.ts"],"sourcesContent":["import { loadingRepositoryFactory } from \"@webiny/app-utils\";\nimport { IUpdateFolderUseCase } from \"./IUpdateFolderUseCase\";\nimport { IUpdateFolderGateway } from \"./IUpdateFolderGateway\";\nimport { UpdateFolderRepository } from \"./UpdateFolderRepository\";\nimport { UpdateFolderRepositoryWithPermissionsChange } from \"./UpdateFolderRepositoryWithPermissionsChange\";\nimport { UpdateFolderUseCase } from \"./UpdateFolderUseCase\";\nimport { UpdateFolderUseCaseWithLoading } from \"./UpdateFolderUseCaseWithLoading\";\nimport { UpdateFolderUseCaseWithoutInheritedPermissions } from \"./UpdateFolderUseCaseWithoutInheritedPermissions\";\nimport { folderCacheFactory } from \"../cache\";\nimport { UpdateFolderRepositoryWithPathChange } from \"~/features/folders/updateFolder/UpdateFolderRepositoryWithPathChange\";\n\nexport class UpdateFolder {\n public static getInstance(type: string, gateway: IUpdateFolderGateway): IUpdateFolderUseCase {\n const foldersCache = folderCacheFactory.getCache(type);\n const loadingRepository = loadingRepositoryFactory.getRepository(type);\n\n const repository = new UpdateFolderRepository(foldersCache, gateway);\n const repositoryWithPathChange = new UpdateFolderRepositoryWithPathChange(\n foldersCache,\n repository\n );\n const repositoryWithPermissionsChange = new UpdateFolderRepositoryWithPermissionsChange(\n foldersCache,\n repositoryWithPathChange\n );\n\n const useCase = new UpdateFolderUseCase(repositoryWithPermissionsChange);\n const useCaseWithoutInheritedPermissions =\n new UpdateFolderUseCaseWithoutInheritedPermissions(useCase);\n return new UpdateFolderUseCaseWithLoading(\n loadingRepository,\n useCaseWithoutInheritedPermissions\n );\n }\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAGA,IAAAC,uBAAA,GAAAD,OAAA;AACA,IAAAE,4CAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AACA,IAAAI,+BAAA,GAAAJ,OAAA;AACA,IAAAK,+CAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,qCAAA,GAAAP,OAAA;AAA4H,IAE/GQ,YAAY,GAAAC,OAAA,CAAAD,YAAA;EAAA,SAAAA,aAAA;IAAA,IAAAE,gBAAA,CAAAC,OAAA,QAAAH,YAAA;EAAA;EAAA,WAAAI,aAAA,CAAAD,OAAA,EAAAH,YAAA;IAAAK,GAAA;IAAAC,KAAA,EACrB,SAAcC,WAAWA,CAACC,IAAY,EAAEC,OAA6B,EAAwB;MACzF,IAAMC,YAAY,GAAGC,yBAAkB,CAACC,QAAQ,CAACJ,IAAI,CAAC;MACtD,IAAMK,iBAAiB,GAAGC,kCAAwB,CAACC,aAAa,CAACP,IAAI,CAAC;MAEtE,IAAMQ,UAAU,GAAG,IAAIC,8CAAsB,CAACP,YAAY,EAAED,OAAO,CAAC;MACpE,IAAMS,wBAAwB,GAAG,IAAIC,0EAAoC,CACrET,YAAY,EACZM,UACJ,CAAC;MACD,IAAMI,+BAA+B,GAAG,IAAIC,wFAA2C,CACnFX,YAAY,EACZQ,wBACJ,CAAC;MAED,IAAMI,OAAO,GAAG,IAAIC,wCAAmB,CAACH,+BAA+B,CAAC;MACxE,IAAMI,kCAAkC,GACpC,IAAIC,8FAA8C,CAACH,OAAO,CAAC;MAC/D,OAAO,IAAII,8DAA8B,CACrCb,iBAAiB,EACjBW,kCACJ,CAAC;IACL;EAAC;AAAA","ignoreList":[]}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
5
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
3
6
|
var _UpdateFolder = require("./UpdateFolder");
|
|
4
7
|
var _FoldersCacheFactory = require("../cache/FoldersCacheFactory");
|
|
5
8
|
var _Folder = require("../Folder");
|
|
9
|
+
var _constants = require("../../../constants");
|
|
6
10
|
describe("UpdateFolder", function () {
|
|
7
11
|
var type = "abc";
|
|
8
12
|
var foldersCache = _FoldersCacheFactory.folderCacheFactory.getCache(type);
|
|
@@ -79,6 +83,310 @@ describe("UpdateFolder", function () {
|
|
|
79
83
|
expect(updatedItem?.slug).toEqual("any-folder");
|
|
80
84
|
expect(updatedItem?.parentId).toEqual(null);
|
|
81
85
|
});
|
|
86
|
+
it("should propagate `permissions` changes to child folders", async function () {
|
|
87
|
+
var parentFolder = _Folder.Folder.create({
|
|
88
|
+
id: "parent-folder-id",
|
|
89
|
+
title: "Parent Folder",
|
|
90
|
+
slug: "parent-folder",
|
|
91
|
+
parentId: null,
|
|
92
|
+
permissions: [],
|
|
93
|
+
type: type
|
|
94
|
+
});
|
|
95
|
+
var childFolder1 = _Folder.Folder.create({
|
|
96
|
+
id: "child-folder-id-1",
|
|
97
|
+
title: "Child Folder 1",
|
|
98
|
+
slug: "child-folder-1",
|
|
99
|
+
parentId: parentFolder.id,
|
|
100
|
+
permissions: [],
|
|
101
|
+
type: type
|
|
102
|
+
});
|
|
103
|
+
var childFolder2 = _Folder.Folder.create({
|
|
104
|
+
id: "child-folder-id-2",
|
|
105
|
+
title: "Child Folder 2",
|
|
106
|
+
slug: "child-folder-2",
|
|
107
|
+
parentId: childFolder1.id,
|
|
108
|
+
permissions: [],
|
|
109
|
+
type: type
|
|
110
|
+
});
|
|
111
|
+
var childFolder3 = _Folder.Folder.create({
|
|
112
|
+
id: "child-folder-id-3",
|
|
113
|
+
title: "Child Folder 3",
|
|
114
|
+
slug: "child-folder-3",
|
|
115
|
+
parentId: parentFolder.id,
|
|
116
|
+
// <-- This folder is a sibling of childFolder1, not a child
|
|
117
|
+
permissions: [],
|
|
118
|
+
type: type
|
|
119
|
+
});
|
|
120
|
+
foldersCache.addItems([parentFolder, childFolder1, childFolder2, childFolder3]);
|
|
121
|
+
|
|
122
|
+
// Let's update parentFolder, the change should be propagated to all it's children (childFolder1, childFolder2 and childFolder3).
|
|
123
|
+
var parentNewPermissions = [{
|
|
124
|
+
level: "viewer",
|
|
125
|
+
target: "admin:123"
|
|
126
|
+
}, {
|
|
127
|
+
level: "viewer",
|
|
128
|
+
target: "admin:456"
|
|
129
|
+
}];
|
|
130
|
+
{
|
|
131
|
+
var gateway = {
|
|
132
|
+
execute: jest.fn().mockResolvedValue({
|
|
133
|
+
id: parentFolder.id,
|
|
134
|
+
title: parentFolder.title,
|
|
135
|
+
slug: parentFolder.slug,
|
|
136
|
+
parentId: parentFolder.parentId,
|
|
137
|
+
permissions: parentNewPermissions,
|
|
138
|
+
type: type
|
|
139
|
+
})
|
|
140
|
+
};
|
|
141
|
+
var updateFolder = _UpdateFolder.UpdateFolder.getInstance(type, gateway);
|
|
142
|
+
await updateFolder.execute({
|
|
143
|
+
id: parentFolder.id,
|
|
144
|
+
title: parentFolder.title,
|
|
145
|
+
slug: parentFolder.slug,
|
|
146
|
+
parentId: parentFolder.parentId,
|
|
147
|
+
permissions: parentNewPermissions,
|
|
148
|
+
type: type
|
|
149
|
+
});
|
|
150
|
+
var childFolderCache1 = foldersCache.getItem(function (folder) {
|
|
151
|
+
return folder.id === childFolder1.id;
|
|
152
|
+
});
|
|
153
|
+
expect(childFolderCache1?.permissions).toEqual(parentNewPermissions.map(function (permission) {
|
|
154
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, permission), {}, {
|
|
155
|
+
inheritedFrom: "parent:".concat(parentFolder?.id)
|
|
156
|
+
});
|
|
157
|
+
}));
|
|
158
|
+
var childFolderCache2 = foldersCache.getItem(function (folder) {
|
|
159
|
+
return folder.id === childFolder2.id;
|
|
160
|
+
});
|
|
161
|
+
expect(childFolderCache2?.permissions).toEqual(parentNewPermissions.map(function (permission) {
|
|
162
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, permission), {}, {
|
|
163
|
+
inheritedFrom: "parent:".concat(childFolderCache1?.id)
|
|
164
|
+
});
|
|
165
|
+
}));
|
|
166
|
+
var childFolderCache3 = foldersCache.getItem(function (folder) {
|
|
167
|
+
return folder.id === childFolder3.id;
|
|
168
|
+
});
|
|
169
|
+
expect(childFolderCache3?.permissions).toEqual(parentNewPermissions.map(function (permission) {
|
|
170
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, permission), {}, {
|
|
171
|
+
inheritedFrom: "parent:".concat(parentFolder?.id)
|
|
172
|
+
});
|
|
173
|
+
}));
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// Let's update childFolder1, the change should be propagated to childFolder2, but not to childFolder3
|
|
177
|
+
var child1NewPermissions = [{
|
|
178
|
+
level: "owner",
|
|
179
|
+
target: "admin:123"
|
|
180
|
+
}];
|
|
181
|
+
{
|
|
182
|
+
var _gateway = {
|
|
183
|
+
execute: jest.fn().mockResolvedValue({
|
|
184
|
+
id: childFolder1.id,
|
|
185
|
+
title: childFolder1.title,
|
|
186
|
+
slug: childFolder1.slug,
|
|
187
|
+
parentId: childFolder1.parentId,
|
|
188
|
+
permissions: child1NewPermissions,
|
|
189
|
+
type: type
|
|
190
|
+
})
|
|
191
|
+
};
|
|
192
|
+
var _updateFolder = _UpdateFolder.UpdateFolder.getInstance(type, _gateway);
|
|
193
|
+
await _updateFolder.execute({
|
|
194
|
+
id: childFolder1.id,
|
|
195
|
+
title: childFolder1.title,
|
|
196
|
+
slug: childFolder1.slug,
|
|
197
|
+
parentId: childFolder1.parentId,
|
|
198
|
+
permissions: child1NewPermissions,
|
|
199
|
+
type: type
|
|
200
|
+
});
|
|
201
|
+
var _childFolderCache = foldersCache.getItem(function (folder) {
|
|
202
|
+
return folder.id === childFolder1.id;
|
|
203
|
+
});
|
|
204
|
+
expect(_childFolderCache?.permissions).toEqual([].concat(child1NewPermissions, [(0, _objectSpread2.default)((0, _objectSpread2.default)({}, parentNewPermissions[1]), {}, {
|
|
205
|
+
inheritedFrom: "parent:".concat(parentFolder?.id)
|
|
206
|
+
})]));
|
|
207
|
+
var _childFolderCache2 = foldersCache.getItem(function (folder) {
|
|
208
|
+
return folder.id === childFolder2.id;
|
|
209
|
+
});
|
|
210
|
+
expect(_childFolderCache2?.permissions).toEqual([].concat((0, _toConsumableArray2.default)(child1NewPermissions.map(function (permission) {
|
|
211
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, permission), {}, {
|
|
212
|
+
inheritedFrom: "parent:".concat(_childFolderCache?.id)
|
|
213
|
+
});
|
|
214
|
+
})), [(0, _objectSpread2.default)((0, _objectSpread2.default)({}, parentNewPermissions[1]), {}, {
|
|
215
|
+
inheritedFrom: "parent:".concat(_childFolderCache?.id)
|
|
216
|
+
})]));
|
|
217
|
+
var _childFolderCache3 = foldersCache.getItem(function (folder) {
|
|
218
|
+
return folder.id === childFolder3.id;
|
|
219
|
+
});
|
|
220
|
+
expect(_childFolderCache3?.permissions).toEqual(parentNewPermissions.map(function (permission) {
|
|
221
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, permission), {}, {
|
|
222
|
+
inheritedFrom: "parent:".concat(parentFolder?.id)
|
|
223
|
+
});
|
|
224
|
+
}));
|
|
225
|
+
}
|
|
226
|
+
{
|
|
227
|
+
// Let's remove childFolder1 permissions:
|
|
228
|
+
// childFolder1 should inherit back permissions from parentFolder,
|
|
229
|
+
// the change should be propagated to childFolder2, but not to childFolder3
|
|
230
|
+
var newPermissions = [];
|
|
231
|
+
var _gateway2 = {
|
|
232
|
+
execute: jest.fn().mockResolvedValue({
|
|
233
|
+
id: childFolder1.id,
|
|
234
|
+
title: childFolder1.title,
|
|
235
|
+
slug: childFolder1.slug,
|
|
236
|
+
parentId: childFolder1.parentId,
|
|
237
|
+
permissions: newPermissions,
|
|
238
|
+
type: type
|
|
239
|
+
})
|
|
240
|
+
};
|
|
241
|
+
var _updateFolder2 = _UpdateFolder.UpdateFolder.getInstance(type, _gateway2);
|
|
242
|
+
await _updateFolder2.execute({
|
|
243
|
+
id: childFolder1.id,
|
|
244
|
+
title: childFolder1.title,
|
|
245
|
+
slug: childFolder1.slug,
|
|
246
|
+
parentId: childFolder1.parentId,
|
|
247
|
+
permissions: newPermissions,
|
|
248
|
+
type: type
|
|
249
|
+
});
|
|
250
|
+
var _childFolderCache4 = foldersCache.getItem(function (folder) {
|
|
251
|
+
return folder.id === childFolder1.id;
|
|
252
|
+
});
|
|
253
|
+
expect(_childFolderCache4?.permissions).toEqual(parentNewPermissions.map(function (permission) {
|
|
254
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, permission), {}, {
|
|
255
|
+
inheritedFrom: "parent:".concat(parentFolder?.id)
|
|
256
|
+
});
|
|
257
|
+
}));
|
|
258
|
+
var _childFolderCache5 = foldersCache.getItem(function (folder) {
|
|
259
|
+
return folder.id === childFolder2.id;
|
|
260
|
+
});
|
|
261
|
+
expect(_childFolderCache5?.permissions).toEqual(parentNewPermissions.map(function (permission) {
|
|
262
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, permission), {}, {
|
|
263
|
+
inheritedFrom: "parent:".concat(_childFolderCache4?.id)
|
|
264
|
+
});
|
|
265
|
+
}));
|
|
266
|
+
var _childFolderCache6 = foldersCache.getItem(function (folder) {
|
|
267
|
+
return folder.id === childFolder3.id;
|
|
268
|
+
});
|
|
269
|
+
expect(_childFolderCache6?.permissions).toEqual(parentNewPermissions.map(function (permission) {
|
|
270
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, permission), {}, {
|
|
271
|
+
inheritedFrom: "parent:".concat(parentFolder?.id)
|
|
272
|
+
});
|
|
273
|
+
}));
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
it("should propagate `path` changes to child folders", async function () {
|
|
277
|
+
var parentFolder = _Folder.Folder.create({
|
|
278
|
+
id: "parent-folder-id",
|
|
279
|
+
title: "Parent Folder",
|
|
280
|
+
slug: "parent-folder",
|
|
281
|
+
parentId: null,
|
|
282
|
+
permissions: [],
|
|
283
|
+
path: "".concat(_constants.ROOT_FOLDER, "/parent-folder"),
|
|
284
|
+
type: type
|
|
285
|
+
});
|
|
286
|
+
var childFolder1 = _Folder.Folder.create({
|
|
287
|
+
id: "child-folder-id-1",
|
|
288
|
+
title: "Child Folder 1",
|
|
289
|
+
slug: "child-folder-1",
|
|
290
|
+
parentId: parentFolder.id,
|
|
291
|
+
permissions: [],
|
|
292
|
+
path: "".concat(_constants.ROOT_FOLDER, "/parent-folder/child-folder-1"),
|
|
293
|
+
type: type
|
|
294
|
+
});
|
|
295
|
+
var childFolder2 = _Folder.Folder.create({
|
|
296
|
+
id: "child-folder-id-2",
|
|
297
|
+
title: "Child Folder 2",
|
|
298
|
+
slug: "child-folder-2",
|
|
299
|
+
parentId: childFolder1.id,
|
|
300
|
+
permissions: [],
|
|
301
|
+
path: "".concat(_constants.ROOT_FOLDER, "/parent-folder/child-folder-1/child-folder-2"),
|
|
302
|
+
type: type
|
|
303
|
+
});
|
|
304
|
+
var childFolder3 = _Folder.Folder.create({
|
|
305
|
+
id: "child-folder-id-3",
|
|
306
|
+
title: "Child Folder 3",
|
|
307
|
+
slug: "child-folder-3",
|
|
308
|
+
parentId: parentFolder.id,
|
|
309
|
+
// <-- This folder is a sibling of childFolder1, not a child
|
|
310
|
+
permissions: [],
|
|
311
|
+
path: "".concat(_constants.ROOT_FOLDER, "/parent-folder/child-folder-3"),
|
|
312
|
+
type: type
|
|
313
|
+
});
|
|
314
|
+
foldersCache.addItems([parentFolder, childFolder1, childFolder2, childFolder3]);
|
|
315
|
+
|
|
316
|
+
// Let's update parentFolder, the change should be propagated to all it's children (childFolder1, childFolder2 and childFolder3).
|
|
317
|
+
var newParentPath = "".concat(_constants.ROOT_FOLDER, "/parent-folder-edit");
|
|
318
|
+
{
|
|
319
|
+
var gateway = {
|
|
320
|
+
execute: jest.fn().mockResolvedValue({
|
|
321
|
+
id: parentFolder.id,
|
|
322
|
+
title: parentFolder.title,
|
|
323
|
+
slug: parentFolder.slug + "-edit",
|
|
324
|
+
parentId: parentFolder.parentId,
|
|
325
|
+
permissions: parentFolder.permissions,
|
|
326
|
+
path: newParentPath,
|
|
327
|
+
type: type
|
|
328
|
+
})
|
|
329
|
+
};
|
|
330
|
+
var updateFolder = _UpdateFolder.UpdateFolder.getInstance(type, gateway);
|
|
331
|
+
await updateFolder.execute({
|
|
332
|
+
id: parentFolder.id,
|
|
333
|
+
title: parentFolder.title,
|
|
334
|
+
slug: parentFolder.slug + "-edit",
|
|
335
|
+
parentId: parentFolder.parentId,
|
|
336
|
+
permissions: parentFolder.permissions,
|
|
337
|
+
type: type
|
|
338
|
+
});
|
|
339
|
+
var childFolderCache1 = foldersCache.getItem(function (folder) {
|
|
340
|
+
return folder.id === childFolder1.id;
|
|
341
|
+
});
|
|
342
|
+
expect(childFolderCache1?.path).toEqual("".concat(newParentPath, "/child-folder-1"));
|
|
343
|
+
var childFolderCache2 = foldersCache.getItem(function (folder) {
|
|
344
|
+
return folder.id === childFolder2.id;
|
|
345
|
+
});
|
|
346
|
+
expect(childFolderCache2?.path).toEqual("".concat(newParentPath, "/child-folder-1/child-folder-2"));
|
|
347
|
+
var childFolderCache3 = foldersCache.getItem(function (folder) {
|
|
348
|
+
return folder.id === childFolder3.id;
|
|
349
|
+
});
|
|
350
|
+
expect(childFolderCache3?.path).toEqual("".concat(newParentPath, "/child-folder-3"));
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
// Let's update childFolder1, the change should be propagated to childFolder2, but not to childFolder3
|
|
354
|
+
var newChildFolder1Path = "".concat(newParentPath, "/child-folder-1-edit");
|
|
355
|
+
{
|
|
356
|
+
var _gateway3 = {
|
|
357
|
+
execute: jest.fn().mockResolvedValue({
|
|
358
|
+
id: childFolder1.id,
|
|
359
|
+
title: childFolder1.title,
|
|
360
|
+
slug: childFolder1.slug + "-edit",
|
|
361
|
+
parentId: childFolder1.parentId,
|
|
362
|
+
permissions: childFolder1.permissions,
|
|
363
|
+
path: newChildFolder1Path,
|
|
364
|
+
type: type
|
|
365
|
+
})
|
|
366
|
+
};
|
|
367
|
+
var _updateFolder3 = _UpdateFolder.UpdateFolder.getInstance(type, _gateway3);
|
|
368
|
+
await _updateFolder3.execute({
|
|
369
|
+
id: childFolder1.id,
|
|
370
|
+
title: childFolder1.title,
|
|
371
|
+
slug: childFolder1.slug + "-edit",
|
|
372
|
+
parentId: childFolder1.parentId,
|
|
373
|
+
permissions: childFolder1.permissions,
|
|
374
|
+
type: type
|
|
375
|
+
});
|
|
376
|
+
var _childFolderCache7 = foldersCache.getItem(function (folder) {
|
|
377
|
+
return folder.id === childFolder1.id;
|
|
378
|
+
});
|
|
379
|
+
expect(_childFolderCache7?.path).toEqual(newChildFolder1Path);
|
|
380
|
+
var _childFolderCache8 = foldersCache.getItem(function (folder) {
|
|
381
|
+
return folder.id === childFolder2.id;
|
|
382
|
+
});
|
|
383
|
+
expect(_childFolderCache8?.path).toEqual("".concat(newChildFolder1Path, "/child-folder-2"));
|
|
384
|
+
var _childFolderCache9 = foldersCache.getItem(function (folder) {
|
|
385
|
+
return folder.id === childFolder3.id;
|
|
386
|
+
});
|
|
387
|
+
expect(_childFolderCache9?.path).toEqual("".concat(newParentPath, "/child-folder-3"));
|
|
388
|
+
}
|
|
389
|
+
});
|
|
82
390
|
it("should handle gateway errors gracefully", async function () {
|
|
83
391
|
var gateway = {
|
|
84
392
|
execute: jest.fn().mockRejectedValue(new Error("Gateway error"))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_UpdateFolder","require","_FoldersCacheFactory","_Folder","describe","type","foldersCache","folderCacheFactory","getCache","beforeEach","jest","clearAllMocks","clear","addItems","Folder","create","id","title","slug","parentId","permissions","it","gateway","execute","fn","mockResolvedValue","updateFolder","UpdateFolder","getInstance","expect","hasItems","toBeTrue","item","getItem","folder","toEqual","toHaveBeenCalledTimes","updatedItem","toBeDefined","mockRejectedValue","Error","rejects","toThrow"],"sources":["UpdateFolder.test.ts"],"sourcesContent":["import { UpdateFolder } from \"./UpdateFolder\";\nimport { folderCacheFactory } from \"../cache/FoldersCacheFactory\";\nimport { Folder } from \"../Folder\";\n\ndescribe(\"UpdateFolder\", () => {\n const type = \"abc\";\n\n const foldersCache = folderCacheFactory.getCache(type);\n\n beforeEach(() => {\n jest.clearAllMocks();\n foldersCache.clear();\n foldersCache.addItems([\n Folder.create({\n id: \"any-folder-id\",\n title: \"Any Folder\",\n slug: \"any-folder\",\n parentId: null,\n permissions: [],\n type\n })\n ]);\n });\n\n it(\"should be able to update a folder\", async () => {\n const gateway = {\n execute: jest.fn().mockResolvedValue({\n id: \"any-folder-id\",\n title: \"Updated Folder\",\n slug: \"updated-folder\",\n parentId: \"another-id\",\n permissions: [],\n type\n })\n };\n\n const updateFolder = UpdateFolder.getInstance(type, gateway);\n\n expect(foldersCache.hasItems()).toBeTrue();\n const item = foldersCache.getItem(folder => folder.id === \"any-folder-id\");\n expect(item?.id).toEqual(\"any-folder-id\");\n expect(item?.title).toEqual(\"Any Folder\");\n\n await updateFolder.execute({\n id: \"any-folder-id\",\n title: \"Updated Folder\",\n slug: \"updated-folder\",\n parentId: \"another-id\",\n permissions: [],\n type\n });\n\n expect(gateway.execute).toHaveBeenCalledTimes(1);\n const updatedItem = foldersCache.getItem(folder => folder.id === \"any-folder-id\");\n\n expect(updatedItem).toBeDefined();\n expect(updatedItem?.id).toEqual(\"any-folder-id\");\n expect(updatedItem?.type).toEqual(type);\n expect(updatedItem?.title).toEqual(\"Updated Folder\");\n expect(updatedItem?.slug).toEqual(\"updated-folder\");\n expect(updatedItem?.parentId).toEqual(\"another-id\");\n });\n\n it(\"should not update a folder if id is missing\", async () => {\n const gateway = {\n execute: jest.fn().mockResolvedValue(null)\n };\n\n const updateFolder = UpdateFolder.getInstance(type, gateway);\n\n await updateFolder.execute({\n id: \"\",\n title: \"Updated Folder\",\n slug: \"updated-folder\",\n parentId: \"another-id\",\n permissions: [],\n type\n });\n\n expect(gateway.execute).toHaveBeenCalledTimes(1);\n const updatedItem = foldersCache.getItem(folder => folder.id === \"any-folder-id\");\n\n expect(updatedItem).toBeDefined();\n expect(updatedItem?.id).toEqual(\"any-folder-id\");\n expect(updatedItem?.type).toEqual(type);\n expect(updatedItem?.title).toEqual(\"Any Folder\");\n expect(updatedItem?.slug).toEqual(\"any-folder\");\n expect(updatedItem?.parentId).toEqual(null);\n });\n\n it(\"should handle gateway errors gracefully\", async () => {\n const gateway = {\n execute: jest.fn().mockRejectedValue(new Error(\"Gateway error\"))\n };\n\n const updateFolder = UpdateFolder.getInstance(type, gateway);\n\n await expect(\n updateFolder.execute({\n id: \"any-folder-id\",\n title: \"Updated Folder\",\n slug: \"updated-folder\",\n parentId: \"another-id\",\n permissions: [],\n type\n })\n ).rejects.toThrow(\"Gateway error\");\n\n expect(gateway.execute).toHaveBeenCalledTimes(1);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_UpdateFolder","require","_FoldersCacheFactory","_Folder","_constants","describe","type","foldersCache","folderCacheFactory","getCache","beforeEach","jest","clearAllMocks","clear","addItems","Folder","create","id","title","slug","parentId","permissions","it","gateway","execute","fn","mockResolvedValue","updateFolder","UpdateFolder","getInstance","expect","hasItems","toBeTrue","item","getItem","folder","toEqual","toHaveBeenCalledTimes","updatedItem","toBeDefined","parentFolder","childFolder1","childFolder2","childFolder3","parentNewPermissions","level","target","childFolderCache1","map","permission","_objectSpread2","default","inheritedFrom","concat","childFolderCache2","childFolderCache3","child1NewPermissions","_toConsumableArray2","newPermissions","path","ROOT_FOLDER","newParentPath","newChildFolder1Path","mockRejectedValue","Error","rejects","toThrow"],"sources":["UpdateFolder.test.ts"],"sourcesContent":["import { UpdateFolder } from \"./UpdateFolder\";\nimport { folderCacheFactory } from \"../cache/FoldersCacheFactory\";\nimport { Folder } from \"../Folder\";\nimport { FolderPermission } from \"@webiny/shared-aco/flp/flp.types\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\ndescribe(\"UpdateFolder\", () => {\n const type = \"abc\";\n\n const foldersCache = folderCacheFactory.getCache(type);\n\n beforeEach(() => {\n jest.clearAllMocks();\n foldersCache.clear();\n foldersCache.addItems([\n Folder.create({\n id: \"any-folder-id\",\n title: \"Any Folder\",\n slug: \"any-folder\",\n parentId: null,\n permissions: [],\n type\n })\n ]);\n });\n\n it(\"should be able to update a folder\", async () => {\n const gateway = {\n execute: jest.fn().mockResolvedValue({\n id: \"any-folder-id\",\n title: \"Updated Folder\",\n slug: \"updated-folder\",\n parentId: \"another-id\",\n permissions: [],\n type\n })\n };\n\n const updateFolder = UpdateFolder.getInstance(type, gateway);\n\n expect(foldersCache.hasItems()).toBeTrue();\n const item = foldersCache.getItem(folder => folder.id === \"any-folder-id\");\n expect(item?.id).toEqual(\"any-folder-id\");\n expect(item?.title).toEqual(\"Any Folder\");\n\n await updateFolder.execute({\n id: \"any-folder-id\",\n title: \"Updated Folder\",\n slug: \"updated-folder\",\n parentId: \"another-id\",\n permissions: [],\n type\n });\n\n expect(gateway.execute).toHaveBeenCalledTimes(1);\n const updatedItem = foldersCache.getItem(folder => folder.id === \"any-folder-id\");\n\n expect(updatedItem).toBeDefined();\n expect(updatedItem?.id).toEqual(\"any-folder-id\");\n expect(updatedItem?.type).toEqual(type);\n expect(updatedItem?.title).toEqual(\"Updated Folder\");\n expect(updatedItem?.slug).toEqual(\"updated-folder\");\n expect(updatedItem?.parentId).toEqual(\"another-id\");\n });\n\n it(\"should not update a folder if id is missing\", async () => {\n const gateway = {\n execute: jest.fn().mockResolvedValue(null)\n };\n\n const updateFolder = UpdateFolder.getInstance(type, gateway);\n\n await updateFolder.execute({\n id: \"\",\n title: \"Updated Folder\",\n slug: \"updated-folder\",\n parentId: \"another-id\",\n permissions: [],\n type\n });\n\n expect(gateway.execute).toHaveBeenCalledTimes(1);\n const updatedItem = foldersCache.getItem(folder => folder.id === \"any-folder-id\");\n\n expect(updatedItem).toBeDefined();\n expect(updatedItem?.id).toEqual(\"any-folder-id\");\n expect(updatedItem?.type).toEqual(type);\n expect(updatedItem?.title).toEqual(\"Any Folder\");\n expect(updatedItem?.slug).toEqual(\"any-folder\");\n expect(updatedItem?.parentId).toEqual(null);\n });\n\n it(\"should propagate `permissions` changes to child folders\", async () => {\n const parentFolder = Folder.create({\n id: \"parent-folder-id\",\n title: \"Parent Folder\",\n slug: \"parent-folder\",\n parentId: null,\n permissions: [],\n type\n });\n\n const childFolder1 = Folder.create({\n id: \"child-folder-id-1\",\n title: \"Child Folder 1\",\n slug: \"child-folder-1\",\n parentId: parentFolder.id,\n permissions: [],\n type\n });\n\n const childFolder2 = Folder.create({\n id: \"child-folder-id-2\",\n title: \"Child Folder 2\",\n slug: \"child-folder-2\",\n parentId: childFolder1.id,\n permissions: [],\n type\n });\n\n const childFolder3 = Folder.create({\n id: \"child-folder-id-3\",\n title: \"Child Folder 3\",\n slug: \"child-folder-3\",\n parentId: parentFolder.id, // <-- This folder is a sibling of childFolder1, not a child\n permissions: [],\n type\n });\n\n foldersCache.addItems([parentFolder, childFolder1, childFolder2, childFolder3]);\n\n // Let's update parentFolder, the change should be propagated to all it's children (childFolder1, childFolder2 and childFolder3).\n const parentNewPermissions: FolderPermission[] = [\n { level: \"viewer\", target: \"admin:123\" },\n { level: \"viewer\", target: \"admin:456\" }\n ];\n\n {\n const gateway = {\n execute: jest.fn().mockResolvedValue({\n id: parentFolder.id,\n title: parentFolder.title,\n slug: parentFolder.slug,\n parentId: parentFolder.parentId,\n permissions: parentNewPermissions,\n type\n })\n };\n const updateFolder = UpdateFolder.getInstance(type, gateway);\n\n await updateFolder.execute({\n id: parentFolder.id,\n title: parentFolder.title,\n slug: parentFolder.slug,\n parentId: parentFolder.parentId,\n permissions: parentNewPermissions,\n type\n });\n\n const childFolderCache1 = foldersCache.getItem(folder => folder.id === childFolder1.id);\n expect(childFolderCache1?.permissions).toEqual(\n parentNewPermissions.map(permission => ({\n ...permission,\n inheritedFrom: `parent:${parentFolder?.id}`\n }))\n );\n\n const childFolderCache2 = foldersCache.getItem(folder => folder.id === childFolder2.id);\n expect(childFolderCache2?.permissions).toEqual(\n parentNewPermissions.map(permission => ({\n ...permission,\n inheritedFrom: `parent:${childFolderCache1?.id}`\n }))\n );\n\n const childFolderCache3 = foldersCache.getItem(folder => folder.id === childFolder3.id);\n expect(childFolderCache3?.permissions).toEqual(\n parentNewPermissions.map(permission => ({\n ...permission,\n inheritedFrom: `parent:${parentFolder?.id}`\n }))\n );\n }\n\n // Let's update childFolder1, the change should be propagated to childFolder2, but not to childFolder3\n const child1NewPermissions: FolderPermission[] = [{ level: \"owner\", target: \"admin:123\" }];\n\n {\n const gateway = {\n execute: jest.fn().mockResolvedValue({\n id: childFolder1.id,\n title: childFolder1.title,\n slug: childFolder1.slug,\n parentId: childFolder1.parentId,\n permissions: child1NewPermissions,\n type\n })\n };\n const updateFolder = UpdateFolder.getInstance(type, gateway);\n\n await updateFolder.execute({\n id: childFolder1.id,\n title: childFolder1.title,\n slug: childFolder1.slug,\n parentId: childFolder1.parentId,\n permissions: child1NewPermissions,\n type\n });\n\n const childFolderCache1 = foldersCache.getItem(folder => folder.id === childFolder1.id);\n expect(childFolderCache1?.permissions).toEqual([\n ...child1NewPermissions,\n {\n ...parentNewPermissions[1],\n inheritedFrom: `parent:${parentFolder?.id}`\n }\n ]);\n\n const childFolderCache2 = foldersCache.getItem(folder => folder.id === childFolder2.id);\n expect(childFolderCache2?.permissions).toEqual([\n ...child1NewPermissions.map(permission => ({\n ...permission,\n inheritedFrom: `parent:${childFolderCache1?.id}`\n })),\n {\n ...parentNewPermissions[1],\n inheritedFrom: `parent:${childFolderCache1?.id}`\n }\n ]);\n\n const childFolderCache3 = foldersCache.getItem(folder => folder.id === childFolder3.id);\n expect(childFolderCache3?.permissions).toEqual(\n parentNewPermissions.map(permission => ({\n ...permission,\n inheritedFrom: `parent:${parentFolder?.id}`\n }))\n );\n }\n\n {\n // Let's remove childFolder1 permissions:\n // childFolder1 should inherit back permissions from parentFolder,\n // the change should be propagated to childFolder2, but not to childFolder3\n const newPermissions: FolderPermission[] = [];\n\n const gateway = {\n execute: jest.fn().mockResolvedValue({\n id: childFolder1.id,\n title: childFolder1.title,\n slug: childFolder1.slug,\n parentId: childFolder1.parentId,\n permissions: newPermissions,\n type\n })\n };\n const updateFolder = UpdateFolder.getInstance(type, gateway);\n\n await updateFolder.execute({\n id: childFolder1.id,\n title: childFolder1.title,\n slug: childFolder1.slug,\n parentId: childFolder1.parentId,\n permissions: newPermissions,\n type\n });\n\n const childFolderCache1 = foldersCache.getItem(folder => folder.id === childFolder1.id);\n expect(childFolderCache1?.permissions).toEqual(\n parentNewPermissions.map(permission => ({\n ...permission,\n inheritedFrom: `parent:${parentFolder?.id}`\n }))\n );\n\n const childFolderCache2 = foldersCache.getItem(folder => folder.id === childFolder2.id);\n expect(childFolderCache2?.permissions).toEqual(\n parentNewPermissions.map(permission => ({\n ...permission,\n inheritedFrom: `parent:${childFolderCache1?.id}`\n }))\n );\n\n const childFolderCache3 = foldersCache.getItem(folder => folder.id === childFolder3.id);\n expect(childFolderCache3?.permissions).toEqual(\n parentNewPermissions.map(permission => ({\n ...permission,\n inheritedFrom: `parent:${parentFolder?.id}`\n }))\n );\n }\n });\n\n it(\"should propagate `path` changes to child folders\", async () => {\n const parentFolder = Folder.create({\n id: \"parent-folder-id\",\n title: \"Parent Folder\",\n slug: \"parent-folder\",\n parentId: null,\n permissions: [],\n path: `${ROOT_FOLDER}/parent-folder`,\n type\n });\n\n const childFolder1 = Folder.create({\n id: \"child-folder-id-1\",\n title: \"Child Folder 1\",\n slug: \"child-folder-1\",\n parentId: parentFolder.id,\n permissions: [],\n path: `${ROOT_FOLDER}/parent-folder/child-folder-1`,\n type\n });\n\n const childFolder2 = Folder.create({\n id: \"child-folder-id-2\",\n title: \"Child Folder 2\",\n slug: \"child-folder-2\",\n parentId: childFolder1.id,\n permissions: [],\n path: `${ROOT_FOLDER}/parent-folder/child-folder-1/child-folder-2`,\n type\n });\n\n const childFolder3 = Folder.create({\n id: \"child-folder-id-3\",\n title: \"Child Folder 3\",\n slug: \"child-folder-3\",\n parentId: parentFolder.id, // <-- This folder is a sibling of childFolder1, not a child\n permissions: [],\n path: `${ROOT_FOLDER}/parent-folder/child-folder-3`,\n type\n });\n\n foldersCache.addItems([parentFolder, childFolder1, childFolder2, childFolder3]);\n\n // Let's update parentFolder, the change should be propagated to all it's children (childFolder1, childFolder2 and childFolder3).\n const newParentPath: string = `${ROOT_FOLDER}/parent-folder-edit`;\n\n {\n const gateway = {\n execute: jest.fn().mockResolvedValue({\n id: parentFolder.id,\n title: parentFolder.title,\n slug: parentFolder.slug + \"-edit\",\n parentId: parentFolder.parentId,\n permissions: parentFolder.permissions,\n path: newParentPath,\n type\n })\n };\n const updateFolder = UpdateFolder.getInstance(type, gateway);\n\n await updateFolder.execute({\n id: parentFolder.id,\n title: parentFolder.title,\n slug: parentFolder.slug + \"-edit\",\n parentId: parentFolder.parentId,\n permissions: parentFolder.permissions,\n type\n });\n\n const childFolderCache1 = foldersCache.getItem(folder => folder.id === childFolder1.id);\n expect(childFolderCache1?.path).toEqual(`${newParentPath}/child-folder-1`);\n\n const childFolderCache2 = foldersCache.getItem(folder => folder.id === childFolder2.id);\n expect(childFolderCache2?.path).toEqual(\n `${newParentPath}/child-folder-1/child-folder-2`\n );\n\n const childFolderCache3 = foldersCache.getItem(folder => folder.id === childFolder3.id);\n expect(childFolderCache3?.path).toEqual(`${newParentPath}/child-folder-3`);\n }\n\n // Let's update childFolder1, the change should be propagated to childFolder2, but not to childFolder3\n const newChildFolder1Path: string = `${newParentPath}/child-folder-1-edit`;\n\n {\n const gateway = {\n execute: jest.fn().mockResolvedValue({\n id: childFolder1.id,\n title: childFolder1.title,\n slug: childFolder1.slug + \"-edit\",\n parentId: childFolder1.parentId,\n permissions: childFolder1.permissions,\n path: newChildFolder1Path,\n type\n })\n };\n const updateFolder = UpdateFolder.getInstance(type, gateway);\n\n await updateFolder.execute({\n id: childFolder1.id,\n title: childFolder1.title,\n slug: childFolder1.slug + \"-edit\",\n parentId: childFolder1.parentId,\n permissions: childFolder1.permissions,\n type\n });\n\n const childFolderCache1 = foldersCache.getItem(folder => folder.id === childFolder1.id);\n expect(childFolderCache1?.path).toEqual(newChildFolder1Path);\n\n const childFolderCache2 = foldersCache.getItem(folder => folder.id === childFolder2.id);\n expect(childFolderCache2?.path).toEqual(`${newChildFolder1Path}/child-folder-2`);\n\n const childFolderCache3 = foldersCache.getItem(folder => folder.id === childFolder3.id);\n expect(childFolderCache3?.path).toEqual(`${newParentPath}/child-folder-3`);\n }\n });\n\n it(\"should handle gateway errors gracefully\", async () => {\n const gateway = {\n execute: jest.fn().mockRejectedValue(new Error(\"Gateway error\"))\n };\n\n const updateFolder = UpdateFolder.getInstance(type, gateway);\n\n await expect(\n updateFolder.execute({\n id: \"any-folder-id\",\n title: \"Updated Folder\",\n slug: \"updated-folder\",\n parentId: \"another-id\",\n permissions: [],\n type\n })\n ).rejects.toThrow(\"Gateway error\");\n\n expect(gateway.execute).toHaveBeenCalledTimes(1);\n });\n});\n"],"mappings":";;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,UAAA,GAAAH,OAAA;AAEAI,QAAQ,CAAC,cAAc,EAAE,YAAM;EAC3B,IAAMC,IAAI,GAAG,KAAK;EAElB,IAAMC,YAAY,GAAGC,uCAAkB,CAACC,QAAQ,CAACH,IAAI,CAAC;EAEtDI,UAAU,CAAC,YAAM;IACbC,IAAI,CAACC,aAAa,CAAC,CAAC;IACpBL,YAAY,CAACM,KAAK,CAAC,CAAC;IACpBN,YAAY,CAACO,QAAQ,CAAC,CAClBC,cAAM,CAACC,MAAM,CAAC;MACVC,EAAE,EAAE,eAAe;MACnBC,KAAK,EAAE,YAAY;MACnBC,IAAI,EAAE,YAAY;MAClBC,QAAQ,EAAE,IAAI;MACdC,WAAW,EAAE,EAAE;MACff,IAAI,EAAJA;IACJ,CAAC,CAAC,CACL,CAAC;EACN,CAAC,CAAC;EAEFgB,EAAE,CAAC,mCAAmC,EAAE,kBAAY;IAChD,IAAMC,OAAO,GAAG;MACZC,OAAO,EAAEb,IAAI,CAACc,EAAE,CAAC,CAAC,CAACC,iBAAiB,CAAC;QACjCT,EAAE,EAAE,eAAe;QACnBC,KAAK,EAAE,gBAAgB;QACvBC,IAAI,EAAE,gBAAgB;QACtBC,QAAQ,EAAE,YAAY;QACtBC,WAAW,EAAE,EAAE;QACff,IAAI,EAAJA;MACJ,CAAC;IACL,CAAC;IAED,IAAMqB,YAAY,GAAGC,0BAAY,CAACC,WAAW,CAACvB,IAAI,EAAEiB,OAAO,CAAC;IAE5DO,MAAM,CAACvB,YAAY,CAACwB,QAAQ,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;IAC1C,IAAMC,IAAI,GAAG1B,YAAY,CAAC2B,OAAO,CAAC,UAAAC,MAAM;MAAA,OAAIA,MAAM,CAAClB,EAAE,KAAK,eAAe;IAAA,EAAC;IAC1Ea,MAAM,CAACG,IAAI,EAAEhB,EAAE,CAAC,CAACmB,OAAO,CAAC,eAAe,CAAC;IACzCN,MAAM,CAACG,IAAI,EAAEf,KAAK,CAAC,CAACkB,OAAO,CAAC,YAAY,CAAC;IAEzC,MAAMT,YAAY,CAACH,OAAO,CAAC;MACvBP,EAAE,EAAE,eAAe;MACnBC,KAAK,EAAE,gBAAgB;MACvBC,IAAI,EAAE,gBAAgB;MACtBC,QAAQ,EAAE,YAAY;MACtBC,WAAW,EAAE,EAAE;MACff,IAAI,EAAJA;IACJ,CAAC,CAAC;IAEFwB,MAAM,CAACP,OAAO,CAACC,OAAO,CAAC,CAACa,qBAAqB,CAAC,CAAC,CAAC;IAChD,IAAMC,WAAW,GAAG/B,YAAY,CAAC2B,OAAO,CAAC,UAAAC,MAAM;MAAA,OAAIA,MAAM,CAAClB,EAAE,KAAK,eAAe;IAAA,EAAC;IAEjFa,MAAM,CAACQ,WAAW,CAAC,CAACC,WAAW,CAAC,CAAC;IACjCT,MAAM,CAACQ,WAAW,EAAErB,EAAE,CAAC,CAACmB,OAAO,CAAC,eAAe,CAAC;IAChDN,MAAM,CAACQ,WAAW,EAAEhC,IAAI,CAAC,CAAC8B,OAAO,CAAC9B,IAAI,CAAC;IACvCwB,MAAM,CAACQ,WAAW,EAAEpB,KAAK,CAAC,CAACkB,OAAO,CAAC,gBAAgB,CAAC;IACpDN,MAAM,CAACQ,WAAW,EAAEnB,IAAI,CAAC,CAACiB,OAAO,CAAC,gBAAgB,CAAC;IACnDN,MAAM,CAACQ,WAAW,EAAElB,QAAQ,CAAC,CAACgB,OAAO,CAAC,YAAY,CAAC;EACvD,CAAC,CAAC;EAEFd,EAAE,CAAC,6CAA6C,EAAE,kBAAY;IAC1D,IAAMC,OAAO,GAAG;MACZC,OAAO,EAAEb,IAAI,CAACc,EAAE,CAAC,CAAC,CAACC,iBAAiB,CAAC,IAAI;IAC7C,CAAC;IAED,IAAMC,YAAY,GAAGC,0BAAY,CAACC,WAAW,CAACvB,IAAI,EAAEiB,OAAO,CAAC;IAE5D,MAAMI,YAAY,CAACH,OAAO,CAAC;MACvBP,EAAE,EAAE,EAAE;MACNC,KAAK,EAAE,gBAAgB;MACvBC,IAAI,EAAE,gBAAgB;MACtBC,QAAQ,EAAE,YAAY;MACtBC,WAAW,EAAE,EAAE;MACff,IAAI,EAAJA;IACJ,CAAC,CAAC;IAEFwB,MAAM,CAACP,OAAO,CAACC,OAAO,CAAC,CAACa,qBAAqB,CAAC,CAAC,CAAC;IAChD,IAAMC,WAAW,GAAG/B,YAAY,CAAC2B,OAAO,CAAC,UAAAC,MAAM;MAAA,OAAIA,MAAM,CAAClB,EAAE,KAAK,eAAe;IAAA,EAAC;IAEjFa,MAAM,CAACQ,WAAW,CAAC,CAACC,WAAW,CAAC,CAAC;IACjCT,MAAM,CAACQ,WAAW,EAAErB,EAAE,CAAC,CAACmB,OAAO,CAAC,eAAe,CAAC;IAChDN,MAAM,CAACQ,WAAW,EAAEhC,IAAI,CAAC,CAAC8B,OAAO,CAAC9B,IAAI,CAAC;IACvCwB,MAAM,CAACQ,WAAW,EAAEpB,KAAK,CAAC,CAACkB,OAAO,CAAC,YAAY,CAAC;IAChDN,MAAM,CAACQ,WAAW,EAAEnB,IAAI,CAAC,CAACiB,OAAO,CAAC,YAAY,CAAC;IAC/CN,MAAM,CAACQ,WAAW,EAAElB,QAAQ,CAAC,CAACgB,OAAO,CAAC,IAAI,CAAC;EAC/C,CAAC,CAAC;EAEFd,EAAE,CAAC,yDAAyD,EAAE,kBAAY;IACtE,IAAMkB,YAAY,GAAGzB,cAAM,CAACC,MAAM,CAAC;MAC/BC,EAAE,EAAE,kBAAkB;MACtBC,KAAK,EAAE,eAAe;MACtBC,IAAI,EAAE,eAAe;MACrBC,QAAQ,EAAE,IAAI;MACdC,WAAW,EAAE,EAAE;MACff,IAAI,EAAJA;IACJ,CAAC,CAAC;IAEF,IAAMmC,YAAY,GAAG1B,cAAM,CAACC,MAAM,CAAC;MAC/BC,EAAE,EAAE,mBAAmB;MACvBC,KAAK,EAAE,gBAAgB;MACvBC,IAAI,EAAE,gBAAgB;MACtBC,QAAQ,EAAEoB,YAAY,CAACvB,EAAE;MACzBI,WAAW,EAAE,EAAE;MACff,IAAI,EAAJA;IACJ,CAAC,CAAC;IAEF,IAAMoC,YAAY,GAAG3B,cAAM,CAACC,MAAM,CAAC;MAC/BC,EAAE,EAAE,mBAAmB;MACvBC,KAAK,EAAE,gBAAgB;MACvBC,IAAI,EAAE,gBAAgB;MACtBC,QAAQ,EAAEqB,YAAY,CAACxB,EAAE;MACzBI,WAAW,EAAE,EAAE;MACff,IAAI,EAAJA;IACJ,CAAC,CAAC;IAEF,IAAMqC,YAAY,GAAG5B,cAAM,CAACC,MAAM,CAAC;MAC/BC,EAAE,EAAE,mBAAmB;MACvBC,KAAK,EAAE,gBAAgB;MACvBC,IAAI,EAAE,gBAAgB;MACtBC,QAAQ,EAAEoB,YAAY,CAACvB,EAAE;MAAE;MAC3BI,WAAW,EAAE,EAAE;MACff,IAAI,EAAJA;IACJ,CAAC,CAAC;IAEFC,YAAY,CAACO,QAAQ,CAAC,CAAC0B,YAAY,EAAEC,YAAY,EAAEC,YAAY,EAAEC,YAAY,CAAC,CAAC;;IAE/E;IACA,IAAMC,oBAAwC,GAAG,CAC7C;MAAEC,KAAK,EAAE,QAAQ;MAAEC,MAAM,EAAE;IAAY,CAAC,EACxC;MAAED,KAAK,EAAE,QAAQ;MAAEC,MAAM,EAAE;IAAY,CAAC,CAC3C;IAED;MACI,IAAMvB,OAAO,GAAG;QACZC,OAAO,EAAEb,IAAI,CAACc,EAAE,CAAC,CAAC,CAACC,iBAAiB,CAAC;UACjCT,EAAE,EAAEuB,YAAY,CAACvB,EAAE;UACnBC,KAAK,EAAEsB,YAAY,CAACtB,KAAK;UACzBC,IAAI,EAAEqB,YAAY,CAACrB,IAAI;UACvBC,QAAQ,EAAEoB,YAAY,CAACpB,QAAQ;UAC/BC,WAAW,EAAEuB,oBAAoB;UACjCtC,IAAI,EAAJA;QACJ,CAAC;MACL,CAAC;MACD,IAAMqB,YAAY,GAAGC,0BAAY,CAACC,WAAW,CAACvB,IAAI,EAAEiB,OAAO,CAAC;MAE5D,MAAMI,YAAY,CAACH,OAAO,CAAC;QACvBP,EAAE,EAAEuB,YAAY,CAACvB,EAAE;QACnBC,KAAK,EAAEsB,YAAY,CAACtB,KAAK;QACzBC,IAAI,EAAEqB,YAAY,CAACrB,IAAI;QACvBC,QAAQ,EAAEoB,YAAY,CAACpB,QAAQ;QAC/BC,WAAW,EAAEuB,oBAAoB;QACjCtC,IAAI,EAAJA;MACJ,CAAC,CAAC;MAEF,IAAMyC,iBAAiB,GAAGxC,YAAY,CAAC2B,OAAO,CAAC,UAAAC,MAAM;QAAA,OAAIA,MAAM,CAAClB,EAAE,KAAKwB,YAAY,CAACxB,EAAE;MAAA,EAAC;MACvFa,MAAM,CAACiB,iBAAiB,EAAE1B,WAAW,CAAC,CAACe,OAAO,CAC1CQ,oBAAoB,CAACI,GAAG,CAAC,UAAAC,UAAU;QAAA,WAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAC5BF,UAAU;UACbG,aAAa,YAAAC,MAAA,CAAYb,YAAY,EAAEvB,EAAE;QAAE;MAAA,CAC7C,CACN,CAAC;MAED,IAAMqC,iBAAiB,GAAG/C,YAAY,CAAC2B,OAAO,CAAC,UAAAC,MAAM;QAAA,OAAIA,MAAM,CAAClB,EAAE,KAAKyB,YAAY,CAACzB,EAAE;MAAA,EAAC;MACvFa,MAAM,CAACwB,iBAAiB,EAAEjC,WAAW,CAAC,CAACe,OAAO,CAC1CQ,oBAAoB,CAACI,GAAG,CAAC,UAAAC,UAAU;QAAA,WAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAC5BF,UAAU;UACbG,aAAa,YAAAC,MAAA,CAAYN,iBAAiB,EAAE9B,EAAE;QAAE;MAAA,CAClD,CACN,CAAC;MAED,IAAMsC,iBAAiB,GAAGhD,YAAY,CAAC2B,OAAO,CAAC,UAAAC,MAAM;QAAA,OAAIA,MAAM,CAAClB,EAAE,KAAK0B,YAAY,CAAC1B,EAAE;MAAA,EAAC;MACvFa,MAAM,CAACyB,iBAAiB,EAAElC,WAAW,CAAC,CAACe,OAAO,CAC1CQ,oBAAoB,CAACI,GAAG,CAAC,UAAAC,UAAU;QAAA,WAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAC5BF,UAAU;UACbG,aAAa,YAAAC,MAAA,CAAYb,YAAY,EAAEvB,EAAE;QAAE;MAAA,CAC7C,CACN,CAAC;IACL;;IAEA;IACA,IAAMuC,oBAAwC,GAAG,CAAC;MAAEX,KAAK,EAAE,OAAO;MAAEC,MAAM,EAAE;IAAY,CAAC,CAAC;IAE1F;MACI,IAAMvB,QAAO,GAAG;QACZC,OAAO,EAAEb,IAAI,CAACc,EAAE,CAAC,CAAC,CAACC,iBAAiB,CAAC;UACjCT,EAAE,EAAEwB,YAAY,CAACxB,EAAE;UACnBC,KAAK,EAAEuB,YAAY,CAACvB,KAAK;UACzBC,IAAI,EAAEsB,YAAY,CAACtB,IAAI;UACvBC,QAAQ,EAAEqB,YAAY,CAACrB,QAAQ;UAC/BC,WAAW,EAAEmC,oBAAoB;UACjClD,IAAI,EAAJA;QACJ,CAAC;MACL,CAAC;MACD,IAAMqB,aAAY,GAAGC,0BAAY,CAACC,WAAW,CAACvB,IAAI,EAAEiB,QAAO,CAAC;MAE5D,MAAMI,aAAY,CAACH,OAAO,CAAC;QACvBP,EAAE,EAAEwB,YAAY,CAACxB,EAAE;QACnBC,KAAK,EAAEuB,YAAY,CAACvB,KAAK;QACzBC,IAAI,EAAEsB,YAAY,CAACtB,IAAI;QACvBC,QAAQ,EAAEqB,YAAY,CAACrB,QAAQ;QAC/BC,WAAW,EAAEmC,oBAAoB;QACjClD,IAAI,EAAJA;MACJ,CAAC,CAAC;MAEF,IAAMyC,iBAAiB,GAAGxC,YAAY,CAAC2B,OAAO,CAAC,UAAAC,MAAM;QAAA,OAAIA,MAAM,CAAClB,EAAE,KAAKwB,YAAY,CAACxB,EAAE;MAAA,EAAC;MACvFa,MAAM,CAACiB,iBAAiB,EAAE1B,WAAW,CAAC,CAACe,OAAO,IAAAiB,MAAA,CACvCG,oBAAoB,OAAAN,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAEhBP,oBAAoB,CAAC,CAAC,CAAC;QAC1BQ,aAAa,YAAAC,MAAA,CAAYb,YAAY,EAAEvB,EAAE;MAAE,IAElD,CAAC;MAEF,IAAMqC,kBAAiB,GAAG/C,YAAY,CAAC2B,OAAO,CAAC,UAAAC,MAAM;QAAA,OAAIA,MAAM,CAAClB,EAAE,KAAKyB,YAAY,CAACzB,EAAE;MAAA,EAAC;MACvFa,MAAM,CAACwB,kBAAiB,EAAEjC,WAAW,CAAC,CAACe,OAAO,IAAAiB,MAAA,KAAAI,mBAAA,CAAAN,OAAA,EACvCK,oBAAoB,CAACR,GAAG,CAAC,UAAAC,UAAU;QAAA,WAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAC/BF,UAAU;UACbG,aAAa,YAAAC,MAAA,CAAYN,iBAAiB,EAAE9B,EAAE;QAAE;MAAA,CAClD,CAAC,QAAAiC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAEIP,oBAAoB,CAAC,CAAC,CAAC;QAC1BQ,aAAa,YAAAC,MAAA,CAAYN,iBAAiB,EAAE9B,EAAE;MAAE,IAEvD,CAAC;MAEF,IAAMsC,kBAAiB,GAAGhD,YAAY,CAAC2B,OAAO,CAAC,UAAAC,MAAM;QAAA,OAAIA,MAAM,CAAClB,EAAE,KAAK0B,YAAY,CAAC1B,EAAE;MAAA,EAAC;MACvFa,MAAM,CAACyB,kBAAiB,EAAElC,WAAW,CAAC,CAACe,OAAO,CAC1CQ,oBAAoB,CAACI,GAAG,CAAC,UAAAC,UAAU;QAAA,WAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAC5BF,UAAU;UACbG,aAAa,YAAAC,MAAA,CAAYb,YAAY,EAAEvB,EAAE;QAAE;MAAA,CAC7C,CACN,CAAC;IACL;IAEA;MACI;MACA;MACA;MACA,IAAMyC,cAAkC,GAAG,EAAE;MAE7C,IAAMnC,SAAO,GAAG;QACZC,OAAO,EAAEb,IAAI,CAACc,EAAE,CAAC,CAAC,CAACC,iBAAiB,CAAC;UACjCT,EAAE,EAAEwB,YAAY,CAACxB,EAAE;UACnBC,KAAK,EAAEuB,YAAY,CAACvB,KAAK;UACzBC,IAAI,EAAEsB,YAAY,CAACtB,IAAI;UACvBC,QAAQ,EAAEqB,YAAY,CAACrB,QAAQ;UAC/BC,WAAW,EAAEqC,cAAc;UAC3BpD,IAAI,EAAJA;QACJ,CAAC;MACL,CAAC;MACD,IAAMqB,cAAY,GAAGC,0BAAY,CAACC,WAAW,CAACvB,IAAI,EAAEiB,SAAO,CAAC;MAE5D,MAAMI,cAAY,CAACH,OAAO,CAAC;QACvBP,EAAE,EAAEwB,YAAY,CAACxB,EAAE;QACnBC,KAAK,EAAEuB,YAAY,CAACvB,KAAK;QACzBC,IAAI,EAAEsB,YAAY,CAACtB,IAAI;QACvBC,QAAQ,EAAEqB,YAAY,CAACrB,QAAQ;QAC/BC,WAAW,EAAEqC,cAAc;QAC3BpD,IAAI,EAAJA;MACJ,CAAC,CAAC;MAEF,IAAMyC,kBAAiB,GAAGxC,YAAY,CAAC2B,OAAO,CAAC,UAAAC,MAAM;QAAA,OAAIA,MAAM,CAAClB,EAAE,KAAKwB,YAAY,CAACxB,EAAE;MAAA,EAAC;MACvFa,MAAM,CAACiB,kBAAiB,EAAE1B,WAAW,CAAC,CAACe,OAAO,CAC1CQ,oBAAoB,CAACI,GAAG,CAAC,UAAAC,UAAU;QAAA,WAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAC5BF,UAAU;UACbG,aAAa,YAAAC,MAAA,CAAYb,YAAY,EAAEvB,EAAE;QAAE;MAAA,CAC7C,CACN,CAAC;MAED,IAAMqC,kBAAiB,GAAG/C,YAAY,CAAC2B,OAAO,CAAC,UAAAC,MAAM;QAAA,OAAIA,MAAM,CAAClB,EAAE,KAAKyB,YAAY,CAACzB,EAAE;MAAA,EAAC;MACvFa,MAAM,CAACwB,kBAAiB,EAAEjC,WAAW,CAAC,CAACe,OAAO,CAC1CQ,oBAAoB,CAACI,GAAG,CAAC,UAAAC,UAAU;QAAA,WAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAC5BF,UAAU;UACbG,aAAa,YAAAC,MAAA,CAAYN,kBAAiB,EAAE9B,EAAE;QAAE;MAAA,CAClD,CACN,CAAC;MAED,IAAMsC,kBAAiB,GAAGhD,YAAY,CAAC2B,OAAO,CAAC,UAAAC,MAAM;QAAA,OAAIA,MAAM,CAAClB,EAAE,KAAK0B,YAAY,CAAC1B,EAAE;MAAA,EAAC;MACvFa,MAAM,CAACyB,kBAAiB,EAAElC,WAAW,CAAC,CAACe,OAAO,CAC1CQ,oBAAoB,CAACI,GAAG,CAAC,UAAAC,UAAU;QAAA,WAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAC5BF,UAAU;UACbG,aAAa,YAAAC,MAAA,CAAYb,YAAY,EAAEvB,EAAE;QAAE;MAAA,CAC7C,CACN,CAAC;IACL;EACJ,CAAC,CAAC;EAEFK,EAAE,CAAC,kDAAkD,EAAE,kBAAY;IAC/D,IAAMkB,YAAY,GAAGzB,cAAM,CAACC,MAAM,CAAC;MAC/BC,EAAE,EAAE,kBAAkB;MACtBC,KAAK,EAAE,eAAe;MACtBC,IAAI,EAAE,eAAe;MACrBC,QAAQ,EAAE,IAAI;MACdC,WAAW,EAAE,EAAE;MACfsC,IAAI,KAAAN,MAAA,CAAKO,sBAAW,mBAAgB;MACpCtD,IAAI,EAAJA;IACJ,CAAC,CAAC;IAEF,IAAMmC,YAAY,GAAG1B,cAAM,CAACC,MAAM,CAAC;MAC/BC,EAAE,EAAE,mBAAmB;MACvBC,KAAK,EAAE,gBAAgB;MACvBC,IAAI,EAAE,gBAAgB;MACtBC,QAAQ,EAAEoB,YAAY,CAACvB,EAAE;MACzBI,WAAW,EAAE,EAAE;MACfsC,IAAI,KAAAN,MAAA,CAAKO,sBAAW,kCAA+B;MACnDtD,IAAI,EAAJA;IACJ,CAAC,CAAC;IAEF,IAAMoC,YAAY,GAAG3B,cAAM,CAACC,MAAM,CAAC;MAC/BC,EAAE,EAAE,mBAAmB;MACvBC,KAAK,EAAE,gBAAgB;MACvBC,IAAI,EAAE,gBAAgB;MACtBC,QAAQ,EAAEqB,YAAY,CAACxB,EAAE;MACzBI,WAAW,EAAE,EAAE;MACfsC,IAAI,KAAAN,MAAA,CAAKO,sBAAW,iDAA8C;MAClEtD,IAAI,EAAJA;IACJ,CAAC,CAAC;IAEF,IAAMqC,YAAY,GAAG5B,cAAM,CAACC,MAAM,CAAC;MAC/BC,EAAE,EAAE,mBAAmB;MACvBC,KAAK,EAAE,gBAAgB;MACvBC,IAAI,EAAE,gBAAgB;MACtBC,QAAQ,EAAEoB,YAAY,CAACvB,EAAE;MAAE;MAC3BI,WAAW,EAAE,EAAE;MACfsC,IAAI,KAAAN,MAAA,CAAKO,sBAAW,kCAA+B;MACnDtD,IAAI,EAAJA;IACJ,CAAC,CAAC;IAEFC,YAAY,CAACO,QAAQ,CAAC,CAAC0B,YAAY,EAAEC,YAAY,EAAEC,YAAY,EAAEC,YAAY,CAAC,CAAC;;IAE/E;IACA,IAAMkB,aAAqB,MAAAR,MAAA,CAAMO,sBAAW,wBAAqB;IAEjE;MACI,IAAMrC,OAAO,GAAG;QACZC,OAAO,EAAEb,IAAI,CAACc,EAAE,CAAC,CAAC,CAACC,iBAAiB,CAAC;UACjCT,EAAE,EAAEuB,YAAY,CAACvB,EAAE;UACnBC,KAAK,EAAEsB,YAAY,CAACtB,KAAK;UACzBC,IAAI,EAAEqB,YAAY,CAACrB,IAAI,GAAG,OAAO;UACjCC,QAAQ,EAAEoB,YAAY,CAACpB,QAAQ;UAC/BC,WAAW,EAAEmB,YAAY,CAACnB,WAAW;UACrCsC,IAAI,EAAEE,aAAa;UACnBvD,IAAI,EAAJA;QACJ,CAAC;MACL,CAAC;MACD,IAAMqB,YAAY,GAAGC,0BAAY,CAACC,WAAW,CAACvB,IAAI,EAAEiB,OAAO,CAAC;MAE5D,MAAMI,YAAY,CAACH,OAAO,CAAC;QACvBP,EAAE,EAAEuB,YAAY,CAACvB,EAAE;QACnBC,KAAK,EAAEsB,YAAY,CAACtB,KAAK;QACzBC,IAAI,EAAEqB,YAAY,CAACrB,IAAI,GAAG,OAAO;QACjCC,QAAQ,EAAEoB,YAAY,CAACpB,QAAQ;QAC/BC,WAAW,EAAEmB,YAAY,CAACnB,WAAW;QACrCf,IAAI,EAAJA;MACJ,CAAC,CAAC;MAEF,IAAMyC,iBAAiB,GAAGxC,YAAY,CAAC2B,OAAO,CAAC,UAAAC,MAAM;QAAA,OAAIA,MAAM,CAAClB,EAAE,KAAKwB,YAAY,CAACxB,EAAE;MAAA,EAAC;MACvFa,MAAM,CAACiB,iBAAiB,EAAEY,IAAI,CAAC,CAACvB,OAAO,IAAAiB,MAAA,CAAIQ,aAAa,oBAAiB,CAAC;MAE1E,IAAMP,iBAAiB,GAAG/C,YAAY,CAAC2B,OAAO,CAAC,UAAAC,MAAM;QAAA,OAAIA,MAAM,CAAClB,EAAE,KAAKyB,YAAY,CAACzB,EAAE;MAAA,EAAC;MACvFa,MAAM,CAACwB,iBAAiB,EAAEK,IAAI,CAAC,CAACvB,OAAO,IAAAiB,MAAA,CAChCQ,aAAa,mCACpB,CAAC;MAED,IAAMN,iBAAiB,GAAGhD,YAAY,CAAC2B,OAAO,CAAC,UAAAC,MAAM;QAAA,OAAIA,MAAM,CAAClB,EAAE,KAAK0B,YAAY,CAAC1B,EAAE;MAAA,EAAC;MACvFa,MAAM,CAACyB,iBAAiB,EAAEI,IAAI,CAAC,CAACvB,OAAO,IAAAiB,MAAA,CAAIQ,aAAa,oBAAiB,CAAC;IAC9E;;IAEA;IACA,IAAMC,mBAA2B,MAAAT,MAAA,CAAMQ,aAAa,yBAAsB;IAE1E;MACI,IAAMtC,SAAO,GAAG;QACZC,OAAO,EAAEb,IAAI,CAACc,EAAE,CAAC,CAAC,CAACC,iBAAiB,CAAC;UACjCT,EAAE,EAAEwB,YAAY,CAACxB,EAAE;UACnBC,KAAK,EAAEuB,YAAY,CAACvB,KAAK;UACzBC,IAAI,EAAEsB,YAAY,CAACtB,IAAI,GAAG,OAAO;UACjCC,QAAQ,EAAEqB,YAAY,CAACrB,QAAQ;UAC/BC,WAAW,EAAEoB,YAAY,CAACpB,WAAW;UACrCsC,IAAI,EAAEG,mBAAmB;UACzBxD,IAAI,EAAJA;QACJ,CAAC;MACL,CAAC;MACD,IAAMqB,cAAY,GAAGC,0BAAY,CAACC,WAAW,CAACvB,IAAI,EAAEiB,SAAO,CAAC;MAE5D,MAAMI,cAAY,CAACH,OAAO,CAAC;QACvBP,EAAE,EAAEwB,YAAY,CAACxB,EAAE;QACnBC,KAAK,EAAEuB,YAAY,CAACvB,KAAK;QACzBC,IAAI,EAAEsB,YAAY,CAACtB,IAAI,GAAG,OAAO;QACjCC,QAAQ,EAAEqB,YAAY,CAACrB,QAAQ;QAC/BC,WAAW,EAAEoB,YAAY,CAACpB,WAAW;QACrCf,IAAI,EAAJA;MACJ,CAAC,CAAC;MAEF,IAAMyC,kBAAiB,GAAGxC,YAAY,CAAC2B,OAAO,CAAC,UAAAC,MAAM;QAAA,OAAIA,MAAM,CAAClB,EAAE,KAAKwB,YAAY,CAACxB,EAAE;MAAA,EAAC;MACvFa,MAAM,CAACiB,kBAAiB,EAAEY,IAAI,CAAC,CAACvB,OAAO,CAAC0B,mBAAmB,CAAC;MAE5D,IAAMR,kBAAiB,GAAG/C,YAAY,CAAC2B,OAAO,CAAC,UAAAC,MAAM;QAAA,OAAIA,MAAM,CAAClB,EAAE,KAAKyB,YAAY,CAACzB,EAAE;MAAA,EAAC;MACvFa,MAAM,CAACwB,kBAAiB,EAAEK,IAAI,CAAC,CAACvB,OAAO,IAAAiB,MAAA,CAAIS,mBAAmB,oBAAiB,CAAC;MAEhF,IAAMP,kBAAiB,GAAGhD,YAAY,CAAC2B,OAAO,CAAC,UAAAC,MAAM;QAAA,OAAIA,MAAM,CAAClB,EAAE,KAAK0B,YAAY,CAAC1B,EAAE;MAAA,EAAC;MACvFa,MAAM,CAACyB,kBAAiB,EAAEI,IAAI,CAAC,CAACvB,OAAO,IAAAiB,MAAA,CAAIQ,aAAa,oBAAiB,CAAC;IAC9E;EACJ,CAAC,CAAC;EAEFvC,EAAE,CAAC,yCAAyC,EAAE,kBAAY;IACtD,IAAMC,OAAO,GAAG;MACZC,OAAO,EAAEb,IAAI,CAACc,EAAE,CAAC,CAAC,CAACsC,iBAAiB,CAAC,IAAIC,KAAK,CAAC,eAAe,CAAC;IACnE,CAAC;IAED,IAAMrC,YAAY,GAAGC,0BAAY,CAACC,WAAW,CAACvB,IAAI,EAAEiB,OAAO,CAAC;IAE5D,MAAMO,MAAM,CACRH,YAAY,CAACH,OAAO,CAAC;MACjBP,EAAE,EAAE,eAAe;MACnBC,KAAK,EAAE,gBAAgB;MACvBC,IAAI,EAAE,gBAAgB;MACtBC,QAAQ,EAAE,YAAY;MACtBC,WAAW,EAAE,EAAE;MACff,IAAI,EAAJA;IACJ,CAAC,CACL,CAAC,CAAC2D,OAAO,CAACC,OAAO,CAAC,eAAe,CAAC;IAElCpC,MAAM,CAACP,OAAO,CAACC,OAAO,CAAC,CAACa,qBAAqB,CAAC,CAAC,CAAC;EACpD,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IUpdateFolderRepository } from "./IUpdateFolderRepository";
|
|
2
|
+
import { ListCache } from "../cache";
|
|
3
|
+
import { Folder } from "../Folder";
|
|
4
|
+
export declare class UpdateFolderRepositoryWithPathChange implements IUpdateFolderRepository {
|
|
5
|
+
private cache;
|
|
6
|
+
private decoretee;
|
|
7
|
+
constructor(cache: ListCache<Folder>, decoretee: IUpdateFolderRepository);
|
|
8
|
+
execute(folder: Folder): Promise<void>;
|
|
9
|
+
private updateChildrenPathsRecursively;
|
|
10
|
+
private listDirectChildren;
|
|
11
|
+
}
|