@webiny/api-aco 5.43.3 → 6.0.0-alpha.1
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/apps/AcoApp.d.ts +2 -2
- package/apps/AcoApp.js.map +1 -1
- package/apps/AcoApps.d.ts +1 -1
- package/apps/AcoApps.js.map +1 -1
- package/apps/app.gql.d.ts +1 -1
- package/apps/app.gql.js.map +1 -1
- package/createAcoContext.d.ts +2 -2
- package/createAcoContext.js.map +1 -1
- package/createAcoGraphQL.d.ts +1 -1
- package/createAcoGraphQL.js.map +1 -1
- package/createAcoHooks.d.ts +1 -1
- package/createAcoHooks.js.map +1 -1
- package/createAcoModels.d.ts +1 -1
- package/createAcoModels.js.map +1 -1
- package/createAcoStorageOperations.d.ts +4 -4
- package/createAcoStorageOperations.js.map +1 -1
- package/filter/filter.crud.d.ts +2 -2
- package/filter/filter.crud.js.map +1 -1
- package/filter/filter.gql.d.ts +1 -1
- package/filter/filter.gql.js.map +1 -1
- package/filter/filter.model.js.map +1 -1
- package/filter/filter.so.d.ts +2 -2
- package/filter/filter.so.js.map +1 -1
- package/filter/filter.types.d.ts +2 -2
- package/filter/filter.types.js.map +1 -1
- package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.d.ts +2 -2
- package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js.map +1 -1
- package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -1
- package/flp/flp.crud.d.ts +2 -2
- package/flp/flp.crud.js.map +1 -1
- package/flp/flp.so.d.ts +1 -1
- package/flp/flp.so.js.map +1 -1
- package/flp/flp.types.d.ts +2 -2
- package/flp/flp.types.js.map +1 -1
- package/flp/hooks/index.d.ts +1 -1
- package/flp/hooks/index.js.map +1 -1
- package/flp/hooks/onFolderAfterCreateFlp.hook.d.ts +1 -1
- package/flp/hooks/onFolderAfterCreateFlp.hook.js.map +1 -1
- package/flp/hooks/onFolderAfterDeleteFlp.hook.d.ts +1 -1
- package/flp/hooks/onFolderAfterDeleteFlp.hook.js.map +1 -1
- package/flp/hooks/onFolderAfterUpdateFlp.hook.d.ts +1 -1
- package/flp/hooks/onFolderAfterUpdateFlp.hook.js.map +1 -1
- package/folder/createFolderModelModifier.d.ts +2 -2
- package/folder/createFolderModelModifier.js.map +1 -1
- package/folder/createFolderTypeDefs.d.ts +1 -1
- package/folder/createFolderTypeDefs.js +8 -0
- package/folder/createFolderTypeDefs.js.map +1 -1
- package/folder/ensureFolderIsEmpty.d.ts +1 -1
- package/folder/ensureFolderIsEmpty.js.map +1 -1
- package/folder/folder.crud.d.ts +3 -2
- package/folder/folder.crud.js.map +1 -1
- package/folder/folder.gql.d.ts +2 -2
- package/folder/folder.gql.js.map +1 -1
- package/folder/folder.so.d.ts +2 -2
- package/folder/folder.so.js.map +1 -1
- package/folder/folder.types.d.ts +11 -2
- package/folder/folder.types.js.map +1 -1
- package/folder/onFolderBeforeDeleteAco.hook.d.ts +1 -1
- package/folder/onFolderBeforeDeleteAco.hook.js.map +1 -1
- package/folder/onFolderBeforeDeleteFm.hook.d.ts +1 -1
- package/folder/onFolderBeforeDeleteFm.hook.js.map +1 -1
- package/folder/onFolderBeforeDeleteHcms.hook.d.ts +1 -1
- package/folder/onFolderBeforeDeleteHcms.hook.js.map +1 -1
- package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.d.ts +1 -1
- package/folder/useCases/CreateFolder/CreateFolderWithFolderLevelPermissions.js.map +1 -1
- package/folder/useCases/CreateFolder/index.d.ts +2 -2
- package/folder/useCases/CreateFolder/index.js.map +1 -1
- package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.d.ts +1 -1
- package/folder/useCases/DeleteFolder/DeleteFolderWithFolderLevelPermissions.js.map +1 -1
- package/folder/useCases/DeleteFolder/index.d.ts +2 -2
- package/folder/useCases/DeleteFolder/index.js.map +1 -1
- package/folder/useCases/GetAncestors/IGetAncestors.d.ts +1 -1
- package/folder/useCases/GetAncestors/IGetAncestors.js.map +1 -1
- package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.d.ts +1 -1
- package/folder/useCases/GetFolder/GetFolderWithFolderLevelPermissions.js.map +1 -1
- package/folder/useCases/GetFolder/index.d.ts +1 -1
- package/folder/useCases/GetFolder/index.js.map +1 -1
- package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.d.ts +1 -1
- package/folder/useCases/GetFolderHierarchy/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -1
- package/folder/useCases/GetFolderHierarchy/index.d.ts +1 -1
- package/folder/useCases/GetFolderHierarchy/index.js.map +1 -1
- package/folder/useCases/ListFolders/IListFolders.d.ts +1 -1
- package/folder/useCases/ListFolders/IListFolders.js.map +1 -1
- package/folder/useCases/ListFolders/ListFolders.d.ts +1 -1
- package/folder/useCases/ListFolders/ListFolders.js.map +1 -1
- package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.d.ts +1 -1
- package/folder/useCases/ListFolders/ListFoldersWithFolderLevelPermissions.js.map +1 -1
- package/folder/useCases/ListFolders/index.d.ts +1 -1
- package/folder/useCases/ListFolders/index.js.map +1 -1
- package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.d.ts +1 -1
- package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.js +1 -1
- package/folder/useCases/UpdateFolder/UpdateFolderWithFolderLevelPermissions.js.map +1 -1
- package/folder/useCases/UpdateFolder/index.d.ts +2 -2
- package/folder/useCases/UpdateFolder/index.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.js.map +1 -1
- package/package.json +28 -28
- package/plugins/AcoAppModifierPlugin.d.ts +2 -2
- package/plugins/AcoAppModifierPlugin.js.map +1 -1
- package/plugins/AcoAppRegisterPlugin.d.ts +1 -1
- package/plugins/AcoAppRegisterPlugin.js.map +1 -1
- package/record/graphql/createAppResolvers.d.ts +2 -2
- package/record/graphql/createAppResolvers.js.map +1 -1
- package/record/graphql/createAppSchema.d.ts +2 -2
- package/record/graphql/createAppSchema.js +2 -2
- package/record/graphql/createAppSchema.js.map +1 -1
- package/record/record.crud.d.ts +2 -2
- package/record/record.crud.js.map +1 -1
- package/record/record.gql.d.ts +1 -1
- package/record/record.gql.js.map +1 -1
- package/record/record.model.d.ts +1 -1
- package/record/record.model.js.map +1 -1
- package/record/record.so.d.ts +2 -2
- package/record/record.so.js.map +1 -1
- package/record/record.types.d.ts +3 -3
- package/record/record.types.js.map +1 -1
- package/types.d.ts +9 -9
- package/types.js.map +1 -1
- package/utils/FoldersCacheFactory.d.ts +1 -1
- package/utils/FoldersCacheFactory.js.map +1 -1
- package/utils/ListFoldersRepository.d.ts +2 -2
- package/utils/ListFoldersRepository.js.map +1 -1
- package/utils/createListSort.d.ts +2 -2
- package/utils/createListSort.js.map +1 -1
- package/utils/createModelField.d.ts +1 -1
- package/utils/createModelField.js.map +1 -1
- package/utils/createOperationsWrapper.d.ts +2 -2
- package/utils/createOperationsWrapper.js.map +1 -1
- package/utils/decorators/CmsEntriesCrudDecorators.d.ts +2 -2
- package/utils/decorators/CmsEntriesCrudDecorators.js +14 -14
- package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -1
- package/utils/decorators/FilterEntriesByFolderFactory.d.ts +2 -2
- package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -1
- package/utils/decorators/ListEntriesFactory.d.ts +3 -2
- package/utils/decorators/ListEntriesFactory.js.map +1 -1
- package/utils/decorators/decorateIfModelAuthorizationEnabled.d.ts +2 -3
- package/utils/decorators/decorateIfModelAuthorizationEnabled.js +1 -5
- package/utils/decorators/decorateIfModelAuthorizationEnabled.js.map +1 -1
- package/utils/decorators/hasRootFolderId.d.ts +1 -1
- package/utils/decorators/hasRootFolderId.js.map +1 -1
- package/utils/decorators/isPageModel.d.ts +1 -1
- package/utils/decorators/isPageModel.js.map +1 -1
- package/utils/ensureAuthentication.d.ts +1 -1
- package/utils/ensureAuthentication.js.map +1 -1
- package/utils/modelFactory.d.ts +1 -1
- package/utils/modelFactory.js.map +1 -1
- package/utils/pickEntryFieldValues.d.ts +1 -1
- package/utils/pickEntryFieldValues.js.map +1 -1
- package/utils/resolve.d.ts +1 -1
package/apps/AcoApp.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AcoContext, AcoSearchRecordCrudBase, IAcoApp, IAcoAppModifyFieldCallableCallback, IAcoAppParams } from "../types";
|
|
2
|
-
import { CmsModel, CmsModelField } from "@webiny/api-headless-cms/types";
|
|
1
|
+
import type { AcoContext, AcoSearchRecordCrudBase, IAcoApp, IAcoAppModifyFieldCallableCallback, IAcoAppParams } from "../types";
|
|
2
|
+
import type { CmsModel, CmsModelField } from "@webiny/api-headless-cms/types";
|
|
3
3
|
export declare class AcoApp implements IAcoApp {
|
|
4
4
|
readonly name: string;
|
|
5
5
|
readonly context: AcoContext;
|
package/apps/AcoApp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_error","_interopRequireDefault","require","_upperFirst","_camelCase","_record","createApiName","name","lodashUpperFirst","lodashCamelCase","AcoApp","search","create","data","execOnAnyRequest","result","context","aco","getModel","onEntry","update","id","move","folderId","get","list","params","onEntryList","entries","meta","items","delete","listTags","folder","tenant","tenancy","getCurrentTenant","locale","i18n","getContentLocale","code","model","constructor","structuredClone","modelId","toLowerCase","apiName","singularApiName","pluralApiName","index","fields","findIndex","f","fieldId","WebinyError","settings","push","getFields","addField","field","removeField","DEFAULT_FIELDS","includes","splice","modifyField","cb","action","onAnyRequest","exports"],"sources":["AcoApp.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n AcoContext,\n AcoRequestAction,\n AcoSearchRecordCrudBase,\n CreateSearchRecordParams,\n GenericSearchData,\n IAcoApp,\n IAcoAppModifyFieldCallableCallback,\n IAcoAppOnAnyRequest,\n IAcoAppOnEntry,\n IAcoAppOnEntryList,\n IAcoAppParams,\n ListSearchRecordsParams,\n ListSearchRecordTagsParams,\n SearchRecord,\n UpdateSearchRecordParams\n} from \"~/types\";\nimport { CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport lodashUpperFirst from \"lodash/upperFirst\";\nimport lodashCamelCase from \"lodash/camelCase\";\nimport { DEFAULT_FIELDS } from \"~/record/record.model\";\n\nconst createApiName = (name: string) => {\n return lodashUpperFirst(lodashCamelCase(name));\n};\n\nexport class AcoApp implements IAcoApp {\n public readonly name: string;\n public readonly context: AcoContext;\n public readonly model: CmsModel;\n private readonly fields: CmsModelField[];\n private readonly onEntry?: IAcoAppOnEntry;\n private readonly onEntryList?: IAcoAppOnEntryList;\n private readonly onAnyRequest?: IAcoAppOnAnyRequest;\n\n public get search(): AcoSearchRecordCrudBase {\n return {\n create: async <TData extends GenericSearchData = GenericSearchData>(\n data: CreateSearchRecordParams<TData>\n ) => {\n await this.execOnAnyRequest(\"create\");\n const result = await this.context.aco.search.create<TData>(this.getModel(), data);\n if (!this.onEntry) {\n return result;\n }\n return (await this.onEntry(result, this.context)) as SearchRecord<TData>;\n },\n update: async <TData extends GenericSearchData = GenericSearchData>(\n id: string,\n data: UpdateSearchRecordParams<TData>\n ) => {\n await this.execOnAnyRequest(\"update\");\n const result = await this.context.aco.search.update<TData>(\n this.getModel(),\n id,\n data\n );\n if (!this.onEntry) {\n return result;\n }\n return (await this.onEntry(result, this.context)) as SearchRecord<TData>;\n },\n move: async (id: string, folderId?: string) => {\n await this.execOnAnyRequest(\"move\");\n return this.context.aco.search.move(this.getModel(), id, folderId);\n },\n get: async <TData extends GenericSearchData = GenericSearchData>(id: string) => {\n await this.execOnAnyRequest(\"fetch\");\n const result = await this.context.aco.search.get<TData>(this.getModel(), id);\n if (!result || !this.onEntry) {\n return result;\n }\n return (await this.onEntry(result, this.context)) as SearchRecord<TData>;\n },\n list: async <TData extends GenericSearchData = GenericSearchData>(\n params: ListSearchRecordsParams\n ) => {\n await this.execOnAnyRequest(\"fetch\");\n const result = await this.context.aco.search.list<TData>(this.getModel(), params);\n const onEntryList = this.onEntryList;\n if (!onEntryList) {\n return result;\n }\n const [entries, meta] = result;\n const items = (await onEntryList(entries, this.context)) as SearchRecord<TData>[];\n return [items, meta];\n },\n delete: async (id: string): Promise<boolean> => {\n await this.execOnAnyRequest(\"delete\");\n return this.context.aco.search.delete(this.getModel(), id);\n },\n listTags: async (params: ListSearchRecordTagsParams) => {\n await this.execOnAnyRequest(\"fetch\");\n return this.context.aco.search.listTags(this.getModel(), params);\n }\n };\n }\n\n public get folder() {\n return this.context.aco.folder;\n }\n\n private getModel() {\n const tenant = this.context.tenancy.getCurrentTenant().id;\n const locale = this.context.i18n.getContentLocale()!.code;\n\n return { ...this.model, tenant, locale };\n }\n\n private constructor(context: AcoContext, params: IAcoAppParams) {\n this.context = context;\n this.name = params.name;\n this.onEntry = params.onEntry;\n this.onEntryList = params.onEntryList;\n this.model = structuredClone(params.model);\n /**\n * We can safely define the api name of the model as we control everything here.\n */\n this.model.name = `${this.model.name} ${this.name}`;\n this.model.modelId = `${this.model.modelId}-${this.name.toLowerCase()}`;\n const apiName = `AcoSearchRecord${createApiName(params.apiName)}`;\n this.model.singularApiName = apiName;\n this.model.pluralApiName = apiName;\n\n const index = this.model.fields.findIndex(f => f.fieldId === \"data\");\n if (index === -1) {\n throw new WebinyError(\n `The \"data\" field does not exist in model \"${this.model.modelId}\".`,\n \"MODEL_DATA_FIELD_ERROR\",\n {\n modelId: this.model.modelId\n }\n );\n } else if (!this.model.fields[index].settings?.fields) {\n this.model.fields[index].settings!.fields = [];\n }\n this.fields = this.model.fields[index].settings!.fields as CmsModelField[];\n this.fields.push(...params.fields);\n }\n\n public static create(context: AcoContext, params: IAcoAppParams) {\n return new AcoApp(context, params);\n }\n\n public getFields(): CmsModelField[] {\n return this.fields;\n }\n\n public addField(field: CmsModelField): void {\n this.fields.push(field);\n }\n\n public removeField(id: string): void {\n if (DEFAULT_FIELDS.includes(id)) {\n throw new WebinyError(\n `Cannot remove the default field from the ACO App.`,\n \"REMOVE_DEFAULT_FIELD_ERROR\",\n {\n fieldId: id\n }\n );\n }\n const index = this.fields.findIndex(field => field.id === id);\n if (index === -1) {\n return;\n }\n this.fields.splice(index, 1);\n }\n\n public modifyField(id: string, cb: IAcoAppModifyFieldCallableCallback): void {\n const index = this.fields.findIndex(field => field.id === id);\n if (index === -1) {\n throw new WebinyError(\n `There is no field \"${id}\" in app \"${this.name}\".`,\n \"FIELD_NOT_FOUND_ERROR\",\n {\n id\n }\n );\n }\n this.fields[index] = cb(structuredClone(this.fields[index]));\n }\n\n private async execOnAnyRequest(action: AcoRequestAction): Promise<void> {\n if (!this.onAnyRequest) {\n return;\n }\n await this.onAnyRequest(this.context, action);\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAmBA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,UAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAEA,MAAMI,aAAa,GAAIC,IAAY,IAAK;EACpC,OAAO,IAAAC,mBAAgB,EAAC,IAAAC,kBAAe,EAACF,IAAI,CAAC,CAAC;AAClD,CAAC;AAEM,MAAMG,MAAM,CAAoB;EASnC,IAAWC,MAAMA,CAAA,EAA4B;IACzC,OAAO;MACHC,MAAM,EAAE,MACJC,IAAqC,IACpC;QACD,MAAM,IAAI,CAACC,gBAAgB,CAAC,QAAQ,CAAC;QACrC,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACC,OAAO,CAACC,GAAG,CAACN,MAAM,CAACC,MAAM,CAAQ,IAAI,CAACM,QAAQ,CAAC,CAAC,EAAEL,IAAI,CAAC;QACjF,IAAI,CAAC,IAAI,CAACM,OAAO,EAAE;UACf,OAAOJ,MAAM;QACjB;QACA,OAAQ,MAAM,IAAI,CAACI,OAAO,CAACJ,MAAM,EAAE,IAAI,CAACC,OAAO,CAAC;MACpD,CAAC;MACDI,MAAM,EAAE,MAAAA,CACJC,EAAU,EACVR,IAAqC,KACpC;QACD,MAAM,IAAI,CAACC,gBAAgB,CAAC,QAAQ,CAAC;QACrC,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACC,OAAO,CAACC,GAAG,CAACN,MAAM,CAACS,MAAM,CAC/C,IAAI,CAACF,QAAQ,CAAC,CAAC,EACfG,EAAE,EACFR,IACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAACM,OAAO,EAAE;UACf,OAAOJ,MAAM;QACjB;QACA,OAAQ,MAAM,IAAI,CAACI,OAAO,CAACJ,MAAM,EAAE,IAAI,CAACC,OAAO,CAAC;MACpD,CAAC;MACDM,IAAI,EAAE,MAAAA,CAAOD,EAAU,EAAEE,QAAiB,KAAK;QAC3C,MAAM,IAAI,CAACT,gBAAgB,CAAC,MAAM,CAAC;QACnC,OAAO,IAAI,CAACE,OAAO,CAACC,GAAG,CAACN,MAAM,CAACW,IAAI,CAAC,IAAI,CAACJ,QAAQ,CAAC,CAAC,EAAEG,EAAE,EAAEE,QAAQ,CAAC;MACtE,CAAC;MACDC,GAAG,EAAE,MAA4DH,EAAU,IAAK;QAC5E,MAAM,IAAI,CAACP,gBAAgB,CAAC,OAAO,CAAC;QACpC,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACC,OAAO,CAACC,GAAG,CAACN,MAAM,CAACa,GAAG,CAAQ,IAAI,CAACN,QAAQ,CAAC,CAAC,EAAEG,EAAE,CAAC;QAC5E,IAAI,CAACN,MAAM,IAAI,CAAC,IAAI,CAACI,OAAO,EAAE;UAC1B,OAAOJ,MAAM;QACjB;QACA,OAAQ,MAAM,IAAI,CAACI,OAAO,CAACJ,MAAM,EAAE,IAAI,CAACC,OAAO,CAAC;MACpD,CAAC;MACDS,IAAI,EAAE,MACFC,MAA+B,IAC9B;QACD,MAAM,IAAI,CAACZ,gBAAgB,CAAC,OAAO,CAAC;QACpC,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACC,OAAO,CAACC,GAAG,CAACN,MAAM,CAACc,IAAI,CAAQ,IAAI,CAACP,QAAQ,CAAC,CAAC,EAAEQ,MAAM,CAAC;QACjF,MAAMC,WAAW,GAAG,IAAI,CAACA,WAAW;QACpC,IAAI,CAACA,WAAW,EAAE;UACd,OAAOZ,MAAM;QACjB;QACA,MAAM,CAACa,OAAO,EAAEC,IAAI,CAAC,GAAGd,MAAM;QAC9B,MAAMe,KAAK,GAAI,MAAMH,WAAW,CAACC,OAAO,EAAE,IAAI,CAACZ,OAAO,CAA2B;QACjF,OAAO,CAACc,KAAK,EAAED,IAAI,CAAC;MACxB,CAAC;MACDE,MAAM,EAAE,MAAOV,EAAU,IAAuB;QAC5C,MAAM,IAAI,CAACP,gBAAgB,CAAC,QAAQ,CAAC;QACrC,OAAO,IAAI,CAACE,OAAO,CAACC,GAAG,CAACN,MAAM,CAACoB,MAAM,CAAC,IAAI,CAACb,QAAQ,CAAC,CAAC,EAAEG,EAAE,CAAC;MAC9D,CAAC;MACDW,QAAQ,EAAE,MAAON,MAAkC,IAAK;QACpD,MAAM,IAAI,CAACZ,gBAAgB,CAAC,OAAO,CAAC;QACpC,OAAO,IAAI,CAACE,OAAO,CAACC,GAAG,CAACN,MAAM,CAACqB,QAAQ,CAAC,IAAI,CAACd,QAAQ,CAAC,CAAC,EAAEQ,MAAM,CAAC;MACpE;IACJ,CAAC;EACL;EAEA,IAAWO,MAAMA,CAAA,EAAG;IAChB,OAAO,IAAI,CAACjB,OAAO,CAACC,GAAG,CAACgB,MAAM;EAClC;EAEQf,QAAQA,CAAA,EAAG;IACf,MAAMgB,MAAM,GAAG,IAAI,CAAClB,OAAO,CAACmB,OAAO,CAACC,gBAAgB,CAAC,CAAC,CAACf,EAAE;IACzD,MAAMgB,MAAM,GAAG,IAAI,CAACrB,OAAO,CAACsB,IAAI,CAACC,gBAAgB,CAAC,CAAC,CAAEC,IAAI;IAEzD,OAAO;MAAE,GAAG,IAAI,CAACC,KAAK;MAAEP,MAAM;MAAEG;IAAO,CAAC;EAC5C;EAEQK,WAAWA,CAAC1B,OAAmB,EAAEU,MAAqB,EAAE;IAC5D,IAAI,CAACV,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACT,IAAI,GAAGmB,MAAM,CAACnB,IAAI;IACvB,IAAI,CAACY,OAAO,GAAGO,MAAM,CAACP,OAAO;IAC7B,IAAI,CAACQ,WAAW,GAAGD,MAAM,CAACC,WAAW;IACrC,IAAI,CAACc,KAAK,GAAGE,eAAe,CAACjB,MAAM,CAACe,KAAK,CAAC;IAC1C;AACR;AACA;IACQ,IAAI,CAACA,KAAK,CAAClC,IAAI,GAAG,GAAG,IAAI,CAACkC,KAAK,CAAClC,IAAI,IAAI,IAAI,CAACA,IAAI,EAAE;IACnD,IAAI,CAACkC,KAAK,CAACG,OAAO,GAAG,GAAG,IAAI,CAACH,KAAK,CAACG,OAAO,IAAI,IAAI,CAACrC,IAAI,CAACsC,WAAW,CAAC,CAAC,EAAE;IACvE,MAAMC,OAAO,GAAG,kBAAkBxC,aAAa,CAACoB,MAAM,CAACoB,OAAO,CAAC,EAAE;IACjE,IAAI,CAACL,KAAK,CAACM,eAAe,GAAGD,OAAO;IACpC,IAAI,CAACL,KAAK,CAACO,aAAa,GAAGF,OAAO;IAElC,MAAMG,KAAK,GAAG,IAAI,CAACR,KAAK,CAACS,MAAM,CAACC,SAAS,CAACC,CAAC,IAAIA,CAAC,CAACC,OAAO,KAAK,MAAM,CAAC;IACpE,IAAIJ,KAAK,KAAK,CAAC,CAAC,EAAE;MACd,MAAM,IAAIK,cAAW,CACjB,6CAA6C,IAAI,CAACb,KAAK,CAACG,OAAO,IAAI,EACnE,wBAAwB,EACxB;QACIA,OAAO,EAAE,IAAI,CAACH,KAAK,CAACG;MACxB,CACJ,CAAC;IACL,CAAC,MAAM,IAAI,CAAC,IAAI,CAACH,KAAK,CAACS,MAAM,CAACD,KAAK,CAAC,CAACM,QAAQ,EAAEL,MAAM,EAAE;MACnD,IAAI,CAACT,KAAK,CAACS,MAAM,CAACD,KAAK,CAAC,CAACM,QAAQ,CAAEL,MAAM,GAAG,EAAE;IAClD;IACA,IAAI,CAACA,MAAM,GAAG,IAAI,CAACT,KAAK,CAACS,MAAM,CAACD,KAAK,CAAC,CAACM,QAAQ,CAAEL,MAAyB;IAC1E,IAAI,CAACA,MAAM,CAACM,IAAI,CAAC,GAAG9B,MAAM,CAACwB,MAAM,CAAC;EACtC;EAEA,OAActC,MAAMA,CAACI,OAAmB,EAAEU,MAAqB,EAAE;IAC7D,OAAO,IAAIhB,MAAM,CAACM,OAAO,EAAEU,MAAM,CAAC;EACtC;EAEO+B,SAASA,CAAA,EAAoB;IAChC,OAAO,IAAI,CAACP,MAAM;EACtB;EAEOQ,QAAQA,CAACC,KAAoB,EAAQ;IACxC,IAAI,CAACT,MAAM,CAACM,IAAI,CAACG,KAAK,CAAC;EAC3B;EAEOC,WAAWA,CAACvC,EAAU,EAAQ;IACjC,IAAIwC,sBAAc,CAACC,QAAQ,CAACzC,EAAE,CAAC,EAAE;MAC7B,MAAM,IAAIiC,cAAW,CACjB,mDAAmD,EACnD,4BAA4B,EAC5B;QACID,OAAO,EAAEhC;MACb,CACJ,CAAC;IACL;IACA,MAAM4B,KAAK,GAAG,IAAI,CAACC,MAAM,CAACC,SAAS,CAACQ,KAAK,IAAIA,KAAK,CAACtC,EAAE,KAAKA,EAAE,CAAC;IAC7D,IAAI4B,KAAK,KAAK,CAAC,CAAC,EAAE;MACd;IACJ;IACA,IAAI,CAACC,MAAM,CAACa,MAAM,CAACd,KAAK,EAAE,CAAC,CAAC;EAChC;EAEOe,WAAWA,CAAC3C,EAAU,EAAE4C,EAAsC,EAAQ;IACzE,MAAMhB,KAAK,GAAG,IAAI,CAACC,MAAM,CAACC,SAAS,CAACQ,KAAK,IAAIA,KAAK,CAACtC,EAAE,KAAKA,EAAE,CAAC;IAC7D,IAAI4B,KAAK,KAAK,CAAC,CAAC,EAAE;MACd,MAAM,IAAIK,cAAW,CACjB,sBAAsBjC,EAAE,aAAa,IAAI,CAACd,IAAI,IAAI,EAClD,uBAAuB,EACvB;QACIc;MACJ,CACJ,CAAC;IACL;IACA,IAAI,CAAC6B,MAAM,CAACD,KAAK,CAAC,GAAGgB,EAAE,CAACtB,eAAe,CAAC,IAAI,CAACO,MAAM,CAACD,KAAK,CAAC,CAAC,CAAC;EAChE;EAEA,MAAcnC,gBAAgBA,CAACoD,MAAwB,EAAiB;IACpE,IAAI,CAAC,IAAI,CAACC,YAAY,EAAE;MACpB;IACJ;IACA,MAAM,IAAI,CAACA,YAAY,CAAC,IAAI,CAACnD,OAAO,EAAEkD,MAAM,CAAC;EACjD;AACJ;AAACE,OAAA,CAAA1D,MAAA,GAAAA,MAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_upperFirst","_camelCase","_record","createApiName","name","lodashUpperFirst","lodashCamelCase","AcoApp","search","create","data","execOnAnyRequest","result","context","aco","getModel","onEntry","update","id","move","folderId","get","list","params","onEntryList","entries","meta","items","delete","listTags","folder","tenant","tenancy","getCurrentTenant","locale","i18n","getContentLocale","code","model","constructor","structuredClone","modelId","toLowerCase","apiName","singularApiName","pluralApiName","index","fields","findIndex","f","fieldId","WebinyError","settings","push","getFields","addField","field","removeField","DEFAULT_FIELDS","includes","splice","modifyField","cb","action","onAnyRequest","exports"],"sources":["AcoApp.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type {\n AcoContext,\n AcoRequestAction,\n AcoSearchRecordCrudBase,\n CreateSearchRecordParams,\n GenericSearchData,\n IAcoApp,\n IAcoAppModifyFieldCallableCallback,\n IAcoAppOnAnyRequest,\n IAcoAppOnEntry,\n IAcoAppOnEntryList,\n IAcoAppParams,\n ListSearchRecordsParams,\n ListSearchRecordTagsParams,\n SearchRecord,\n UpdateSearchRecordParams\n} from \"~/types\";\nimport type { CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport lodashUpperFirst from \"lodash/upperFirst\";\nimport lodashCamelCase from \"lodash/camelCase\";\nimport { DEFAULT_FIELDS } from \"~/record/record.model\";\n\nconst createApiName = (name: string) => {\n return lodashUpperFirst(lodashCamelCase(name));\n};\n\nexport class AcoApp implements IAcoApp {\n public readonly name: string;\n public readonly context: AcoContext;\n public readonly model: CmsModel;\n private readonly fields: CmsModelField[];\n private readonly onEntry?: IAcoAppOnEntry;\n private readonly onEntryList?: IAcoAppOnEntryList;\n private readonly onAnyRequest?: IAcoAppOnAnyRequest;\n\n public get search(): AcoSearchRecordCrudBase {\n return {\n create: async <TData extends GenericSearchData = GenericSearchData>(\n data: CreateSearchRecordParams<TData>\n ) => {\n await this.execOnAnyRequest(\"create\");\n const result = await this.context.aco.search.create<TData>(this.getModel(), data);\n if (!this.onEntry) {\n return result;\n }\n return (await this.onEntry(result, this.context)) as SearchRecord<TData>;\n },\n update: async <TData extends GenericSearchData = GenericSearchData>(\n id: string,\n data: UpdateSearchRecordParams<TData>\n ) => {\n await this.execOnAnyRequest(\"update\");\n const result = await this.context.aco.search.update<TData>(\n this.getModel(),\n id,\n data\n );\n if (!this.onEntry) {\n return result;\n }\n return (await this.onEntry(result, this.context)) as SearchRecord<TData>;\n },\n move: async (id: string, folderId?: string) => {\n await this.execOnAnyRequest(\"move\");\n return this.context.aco.search.move(this.getModel(), id, folderId);\n },\n get: async <TData extends GenericSearchData = GenericSearchData>(id: string) => {\n await this.execOnAnyRequest(\"fetch\");\n const result = await this.context.aco.search.get<TData>(this.getModel(), id);\n if (!result || !this.onEntry) {\n return result;\n }\n return (await this.onEntry(result, this.context)) as SearchRecord<TData>;\n },\n list: async <TData extends GenericSearchData = GenericSearchData>(\n params: ListSearchRecordsParams\n ) => {\n await this.execOnAnyRequest(\"fetch\");\n const result = await this.context.aco.search.list<TData>(this.getModel(), params);\n const onEntryList = this.onEntryList;\n if (!onEntryList) {\n return result;\n }\n const [entries, meta] = result;\n const items = (await onEntryList(entries, this.context)) as SearchRecord<TData>[];\n return [items, meta];\n },\n delete: async (id: string): Promise<boolean> => {\n await this.execOnAnyRequest(\"delete\");\n return this.context.aco.search.delete(this.getModel(), id);\n },\n listTags: async (params: ListSearchRecordTagsParams) => {\n await this.execOnAnyRequest(\"fetch\");\n return this.context.aco.search.listTags(this.getModel(), params);\n }\n };\n }\n\n public get folder() {\n return this.context.aco.folder;\n }\n\n private getModel() {\n const tenant = this.context.tenancy.getCurrentTenant().id;\n const locale = this.context.i18n.getContentLocale()!.code;\n\n return { ...this.model, tenant, locale };\n }\n\n private constructor(context: AcoContext, params: IAcoAppParams) {\n this.context = context;\n this.name = params.name;\n this.onEntry = params.onEntry;\n this.onEntryList = params.onEntryList;\n this.model = structuredClone(params.model);\n /**\n * We can safely define the api name of the model as we control everything here.\n */\n this.model.name = `${this.model.name} ${this.name}`;\n this.model.modelId = `${this.model.modelId}-${this.name.toLowerCase()}`;\n const apiName = `AcoSearchRecord${createApiName(params.apiName)}`;\n this.model.singularApiName = apiName;\n this.model.pluralApiName = apiName;\n\n const index = this.model.fields.findIndex(f => f.fieldId === \"data\");\n if (index === -1) {\n throw new WebinyError(\n `The \"data\" field does not exist in model \"${this.model.modelId}\".`,\n \"MODEL_DATA_FIELD_ERROR\",\n {\n modelId: this.model.modelId\n }\n );\n } else if (!this.model.fields[index].settings?.fields) {\n this.model.fields[index].settings!.fields = [];\n }\n this.fields = this.model.fields[index].settings!.fields as CmsModelField[];\n this.fields.push(...params.fields);\n }\n\n public static create(context: AcoContext, params: IAcoAppParams) {\n return new AcoApp(context, params);\n }\n\n public getFields(): CmsModelField[] {\n return this.fields;\n }\n\n public addField(field: CmsModelField): void {\n this.fields.push(field);\n }\n\n public removeField(id: string): void {\n if (DEFAULT_FIELDS.includes(id)) {\n throw new WebinyError(\n `Cannot remove the default field from the ACO App.`,\n \"REMOVE_DEFAULT_FIELD_ERROR\",\n {\n fieldId: id\n }\n );\n }\n const index = this.fields.findIndex(field => field.id === id);\n if (index === -1) {\n return;\n }\n this.fields.splice(index, 1);\n }\n\n public modifyField(id: string, cb: IAcoAppModifyFieldCallableCallback): void {\n const index = this.fields.findIndex(field => field.id === id);\n if (index === -1) {\n throw new WebinyError(\n `There is no field \"${id}\" in app \"${this.name}\".`,\n \"FIELD_NOT_FOUND_ERROR\",\n {\n id\n }\n );\n }\n this.fields[index] = cb(structuredClone(this.fields[index]));\n }\n\n private async execOnAnyRequest(action: AcoRequestAction): Promise<void> {\n if (!this.onAnyRequest) {\n return;\n }\n await this.onAnyRequest(this.context, action);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/apps/AcoApps.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AcoContext, IAcoApp, IAcoAppParams, IAcoApps, IAcoAppsOptions } from "../types";
|
|
1
|
+
import type { AcoContext, IAcoApp, IAcoAppParams, IAcoApps, IAcoAppsOptions } from "../types";
|
|
2
2
|
export declare class AcoApps implements IAcoApps {
|
|
3
3
|
private readonly apps;
|
|
4
4
|
private readonly context;
|
package/apps/AcoApps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_error","_interopRequireDefault","require","_AcoApp","_plugins","_apiHeadlessCms","_record","AcoApps","apps","Map","constructor","context","options","get","name","app","WebinyError","Array","from","keys","list","values","register","exists","has","AcoApp","create","modifiers","plugins","byType","AcoAppModifierPlugin","type","modifier","canUse","modify","CmsModelPlugin","model","singularApiName","undefined","pluralApiName","isPrivate","noValidate","set","searchRecordSchema","createSchema","exports"],"sources":["AcoApps.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { AcoApp } from \"./AcoApp\";\nimport { AcoAppModifierPlugin } from \"~/plugins\";\nimport { AcoContext, IAcoApp, IAcoAppParams, IAcoApps, IAcoAppsOptions } from \"~/types\";\nimport { CmsModelPlugin } from \"@webiny/api-headless-cms\";\nimport { createSchema } from \"~/record/record.gql\";\n\nexport class AcoApps implements IAcoApps {\n private readonly apps: Map<string, IAcoApp> = new Map();\n private readonly context: AcoContext;\n private readonly options: IAcoAppsOptions;\n\n public constructor(context: AcoContext, options: IAcoAppsOptions) {\n this.context = context;\n this.options = options;\n }\n\n public get(name: string): IAcoApp {\n const app = this.apps.get(name);\n if (app) {\n return app;\n }\n throw new WebinyError(`App \"${name}\" is not registered.`, \"APP_NOT_REGISTERED\", {\n name,\n apps: Array.from(this.apps.keys())\n });\n }\n\n public list(): IAcoApp[] {\n return Array.from(this.apps.values());\n }\n\n public async register(options: IAcoAppParams): Promise<IAcoApp> {\n const exists = this.apps.has(options.name);\n if (exists) {\n throw new WebinyError(\n `An app with the name \"${options.name}\" is already registered.`,\n \"APP_EXISTS\",\n {\n name: options.name\n }\n );\n }\n /**\n * We need to create the app and run the modifiers on it.\n */\n const app = AcoApp.create(this.context, options);\n const modifiers = this.context.plugins.byType<AcoAppModifierPlugin>(\n AcoAppModifierPlugin.type\n );\n for (const modifier of modifiers) {\n if (modifier.canUse(app) === false) {\n continue;\n }\n await modifier.modify({\n context: this.context,\n app\n });\n }\n /**\n * Also, we need to register the app model as the plugin one, so it can be used in the CMS.\n * We do not need to validate model or show it in the API.\n */\n this.context.plugins.register(\n new CmsModelPlugin({\n ...app.model,\n singularApiName: undefined,\n pluralApiName: undefined,\n isPrivate: true,\n noValidate: true\n })\n );\n this.apps.set(app.name, app);\n\n const searchRecordSchema = await createSchema({\n context: this.context,\n app\n });\n this.context.plugins.register(searchRecordSchema);\n\n return app;\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAEA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAEO,MAAMK,OAAO,CAAqB;EACpBC,IAAI,GAAyB,IAAIC,GAAG,CAAC,CAAC;EAIhDC,WAAWA,CAACC,OAAmB,EAAEC,OAAwB,EAAE;IAC9D,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,OAAO,GAAGA,OAAO;EAC1B;EAEOC,GAAGA,CAACC,IAAY,EAAW;IAC9B,MAAMC,GAAG,GAAG,IAAI,CAACP,IAAI,CAACK,GAAG,CAACC,IAAI,CAAC;IAC/B,IAAIC,GAAG,EAAE;MACL,OAAOA,GAAG;IACd;IACA,MAAM,IAAIC,cAAW,CAAC,QAAQF,IAAI,sBAAsB,EAAE,oBAAoB,EAAE;MAC5EA,IAAI;MACJN,IAAI,EAAES,KAAK,CAACC,IAAI,CAAC,IAAI,CAACV,IAAI,CAACW,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC;EACN;EAEOC,IAAIA,CAAA,EAAc;IACrB,OAAOH,KAAK,CAACC,IAAI,CAAC,IAAI,CAACV,IAAI,CAACa,MAAM,CAAC,CAAC,CAAC;EACzC;EAEA,MAAaC,QAAQA,CAACV,OAAsB,EAAoB;IAC5D,MAAMW,MAAM,GAAG,IAAI,CAACf,IAAI,CAACgB,GAAG,CAACZ,OAAO,CAACE,IAAI,CAAC;IAC1C,IAAIS,MAAM,EAAE;MACR,MAAM,IAAIP,cAAW,CACjB,yBAAyBJ,OAAO,CAACE,IAAI,0BAA0B,EAC/D,YAAY,EACZ;QACIA,IAAI,EAAEF,OAAO,CAACE;MAClB,CACJ,CAAC;IACL;IACA;AACR;AACA;IACQ,MAAMC,GAAG,GAAGU,cAAM,CAACC,MAAM,CAAC,IAAI,CAACf,OAAO,EAAEC,OAAO,CAAC;IAChD,MAAMe,SAAS,GAAG,IAAI,CAAChB,OAAO,CAACiB,OAAO,CAACC,MAAM,CACzCC,6BAAoB,CAACC,IACzB,CAAC;IACD,KAAK,MAAMC,QAAQ,IAAIL,SAAS,EAAE;MAC9B,IAAIK,QAAQ,CAACC,MAAM,CAAClB,GAAG,CAAC,KAAK,KAAK,EAAE;QAChC;MACJ;MACA,MAAMiB,QAAQ,CAACE,MAAM,CAAC;QAClBvB,OAAO,EAAE,IAAI,CAACA,OAAO;QACrBI;MACJ,CAAC,CAAC;IACN;IACA;AACR;AACA;AACA;IACQ,IAAI,CAACJ,OAAO,CAACiB,OAAO,CAACN,QAAQ,CACzB,IAAIa,8BAAc,CAAC;MACf,GAAGpB,GAAG,CAACqB,KAAK;MACZC,eAAe,EAAEC,SAAS;MAC1BC,aAAa,EAAED,SAAS;MACxBE,SAAS,EAAE,IAAI;MACfC,UAAU,EAAE;IAChB,CAAC,CACL,CAAC;IACD,IAAI,CAACjC,IAAI,CAACkC,GAAG,CAAC3B,GAAG,CAACD,IAAI,EAAEC,GAAG,CAAC;IAE5B,MAAM4B,kBAAkB,GAAG,MAAM,IAAAC,oBAAY,EAAC;MAC1CjC,OAAO,EAAE,IAAI,CAACA,OAAO;MACrBI;IACJ,CAAC,CAAC;IACF,IAAI,CAACJ,OAAO,CAACiB,OAAO,CAACN,QAAQ,CAACqB,kBAAkB,CAAC;IAEjD,OAAO5B,GAAG;EACd;AACJ;AAAC8B,OAAA,CAAAtC,OAAA,GAAAA,OAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_AcoApp","_plugins","_apiHeadlessCms","_record","AcoApps","apps","Map","constructor","context","options","get","name","app","WebinyError","Array","from","keys","list","values","register","exists","has","AcoApp","create","modifiers","plugins","byType","AcoAppModifierPlugin","type","modifier","canUse","modify","CmsModelPlugin","model","singularApiName","undefined","pluralApiName","isPrivate","noValidate","set","searchRecordSchema","createSchema","exports"],"sources":["AcoApps.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { AcoApp } from \"./AcoApp\";\nimport { AcoAppModifierPlugin } from \"~/plugins\";\nimport type { AcoContext, IAcoApp, IAcoAppParams, IAcoApps, IAcoAppsOptions } from \"~/types\";\nimport { CmsModelPlugin } from \"@webiny/api-headless-cms\";\nimport { createSchema } from \"~/record/record.gql\";\n\nexport class AcoApps implements IAcoApps {\n private readonly apps: Map<string, IAcoApp> = new Map();\n private readonly context: AcoContext;\n private readonly options: IAcoAppsOptions;\n\n public constructor(context: AcoContext, options: IAcoAppsOptions) {\n this.context = context;\n this.options = options;\n }\n\n public get(name: string): IAcoApp {\n const app = this.apps.get(name);\n if (app) {\n return app;\n }\n throw new WebinyError(`App \"${name}\" is not registered.`, \"APP_NOT_REGISTERED\", {\n name,\n apps: Array.from(this.apps.keys())\n });\n }\n\n public list(): IAcoApp[] {\n return Array.from(this.apps.values());\n }\n\n public async register(options: IAcoAppParams): Promise<IAcoApp> {\n const exists = this.apps.has(options.name);\n if (exists) {\n throw new WebinyError(\n `An app with the name \"${options.name}\" is already registered.`,\n \"APP_EXISTS\",\n {\n name: options.name\n }\n );\n }\n /**\n * We need to create the app and run the modifiers on it.\n */\n const app = AcoApp.create(this.context, options);\n const modifiers = this.context.plugins.byType<AcoAppModifierPlugin>(\n AcoAppModifierPlugin.type\n );\n for (const modifier of modifiers) {\n if (modifier.canUse(app) === false) {\n continue;\n }\n await modifier.modify({\n context: this.context,\n app\n });\n }\n /**\n * Also, we need to register the app model as the plugin one, so it can be used in the CMS.\n * We do not need to validate model or show it in the API.\n */\n this.context.plugins.register(\n new CmsModelPlugin({\n ...app.model,\n singularApiName: undefined,\n pluralApiName: undefined,\n isPrivate: true,\n noValidate: true\n })\n );\n this.apps.set(app.name, app);\n\n const searchRecordSchema = await createSchema({\n context: this.context,\n app\n });\n this.context.plugins.register(searchRecordSchema);\n\n return app;\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAEA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAEO,MAAMK,OAAO,CAAqB;EACpBC,IAAI,GAAyB,IAAIC,GAAG,CAAC,CAAC;EAIhDC,WAAWA,CAACC,OAAmB,EAAEC,OAAwB,EAAE;IAC9D,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,OAAO,GAAGA,OAAO;EAC1B;EAEOC,GAAGA,CAACC,IAAY,EAAW;IAC9B,MAAMC,GAAG,GAAG,IAAI,CAACP,IAAI,CAACK,GAAG,CAACC,IAAI,CAAC;IAC/B,IAAIC,GAAG,EAAE;MACL,OAAOA,GAAG;IACd;IACA,MAAM,IAAIC,cAAW,CAAC,QAAQF,IAAI,sBAAsB,EAAE,oBAAoB,EAAE;MAC5EA,IAAI;MACJN,IAAI,EAAES,KAAK,CAACC,IAAI,CAAC,IAAI,CAACV,IAAI,CAACW,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC;EACN;EAEOC,IAAIA,CAAA,EAAc;IACrB,OAAOH,KAAK,CAACC,IAAI,CAAC,IAAI,CAACV,IAAI,CAACa,MAAM,CAAC,CAAC,CAAC;EACzC;EAEA,MAAaC,QAAQA,CAACV,OAAsB,EAAoB;IAC5D,MAAMW,MAAM,GAAG,IAAI,CAACf,IAAI,CAACgB,GAAG,CAACZ,OAAO,CAACE,IAAI,CAAC;IAC1C,IAAIS,MAAM,EAAE;MACR,MAAM,IAAIP,cAAW,CACjB,yBAAyBJ,OAAO,CAACE,IAAI,0BAA0B,EAC/D,YAAY,EACZ;QACIA,IAAI,EAAEF,OAAO,CAACE;MAClB,CACJ,CAAC;IACL;IACA;AACR;AACA;IACQ,MAAMC,GAAG,GAAGU,cAAM,CAACC,MAAM,CAAC,IAAI,CAACf,OAAO,EAAEC,OAAO,CAAC;IAChD,MAAMe,SAAS,GAAG,IAAI,CAAChB,OAAO,CAACiB,OAAO,CAACC,MAAM,CACzCC,6BAAoB,CAACC,IACzB,CAAC;IACD,KAAK,MAAMC,QAAQ,IAAIL,SAAS,EAAE;MAC9B,IAAIK,QAAQ,CAACC,MAAM,CAAClB,GAAG,CAAC,KAAK,KAAK,EAAE;QAChC;MACJ;MACA,MAAMiB,QAAQ,CAACE,MAAM,CAAC;QAClBvB,OAAO,EAAE,IAAI,CAACA,OAAO;QACrBI;MACJ,CAAC,CAAC;IACN;IACA;AACR;AACA;AACA;IACQ,IAAI,CAACJ,OAAO,CAACiB,OAAO,CAACN,QAAQ,CACzB,IAAIa,8BAAc,CAAC;MACf,GAAGpB,GAAG,CAACqB,KAAK;MACZC,eAAe,EAAEC,SAAS;MAC1BC,aAAa,EAAED,SAAS;MACxBE,SAAS,EAAE,IAAI;MACfC,UAAU,EAAE;IAChB,CAAC,CACL,CAAC;IACD,IAAI,CAACjC,IAAI,CAACkC,GAAG,CAAC3B,GAAG,CAACD,IAAI,EAAEC,GAAG,CAAC;IAE5B,MAAM4B,kBAAkB,GAAG,MAAM,IAAAC,oBAAY,EAAC;MAC1CjC,OAAO,EAAE,IAAI,CAACA,OAAO;MACrBI;IACJ,CAAC,CAAC;IACF,IAAI,CAACJ,OAAO,CAACiB,OAAO,CAACN,QAAQ,CAACqB,kBAAkB,CAAC;IAEjD,OAAO5B,GAAG;EACd;AACJ;AAAC8B,OAAA,CAAAtC,OAAA,GAAAA,OAAA","ignoreList":[]}
|
package/apps/app.gql.d.ts
CHANGED
package/apps/app.gql.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_handlerGraphql","require","_omit","_interopRequireDefault","_ensureAuthentication","_resolve","cleanModel","model","lodashOmit","appGql","exports","GraphQLSchemaPlugin","typeDefs","resolvers","AcoQuery","getApp","_","args","context","resolve","ensureAuthentication","app","aco","id","name","getAppModel"],"sources":["app.gql.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { AcoContext } from \"~/types\";\nimport { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport lodashOmit from \"lodash/omit\";\nimport { ensureAuthentication } from \"~/utils/ensureAuthentication\";\nimport { resolve } from \"~/utils/resolve\";\n\nconst cleanModel = (model: CmsModel): Partial<CmsModel> => {\n return lodashOmit(model, [\n \"webinyVersion\",\n \"tags\",\n \"locale\",\n \"tenant\",\n \"layout\",\n \"group\",\n \"description\",\n \"isPrivate\"\n ]);\n};\n\nexport const appGql = new GraphQLSchemaPlugin<AcoContext>({\n typeDefs: /* GraphQL */ `\n type AcoApp {\n id: ID!\n name: String!\n model: JSON!\n }\n type GetAppResponse {\n data: AcoApp\n error: AcoError\n }\n type GetAppModelResponse {\n data: JSON\n error: AcoError\n }\n extend type AcoQuery {\n getApp(id: ID!): GetAppResponse!\n getAppModel(id: ID!): GetAppModelResponse!\n }\n `,\n resolvers: {\n AcoQuery: {\n getApp: async (_, args, context) => {\n return resolve(async () => {\n ensureAuthentication(context);\n const app = context.aco.getApp(args.id);\n return {\n id: args.id,\n name: app.name,\n model: cleanModel(app.model)\n };\n });\n },\n getAppModel: async (_, args, context) => {\n return resolve(async () => {\n ensureAuthentication(context);\n const app = context.aco.getApp(args.id);\n return cleanModel(app.model);\n });\n }\n }\n }\n});\n"],"mappings":";;;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAGA,IAAAC,KAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAEA,MAAMK,UAAU,GAAIC,KAAe,IAAwB;EACvD,OAAO,IAAAC,aAAU,EAACD,KAAK,EAAE,CACrB,eAAe,EACf,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,aAAa,EACb,WAAW,CACd,CAAC;AACN,CAAC;AAEM,MAAME,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG,IAAIE,mCAAmB,CAAa;EACtDC,QAAQ,EAAE,aAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;EACDC,SAAS,EAAE;IACPC,QAAQ,EAAE;MACNC,MAAM,EAAE,MAAAA,CAAOC,CAAC,EAAEC,IAAI,EAAEC,OAAO,KAAK;QAChC,OAAO,IAAAC,gBAAO,EAAC,YAAY;UACvB,IAAAC,0CAAoB,EAACF,OAAO,CAAC;UAC7B,MAAMG,GAAG,GAAGH,OAAO,CAACI,GAAG,CAACP,MAAM,CAACE,IAAI,CAACM,EAAE,CAAC;UACvC,OAAO;YACHA,EAAE,EAAEN,IAAI,CAACM,EAAE;YACXC,IAAI,EAAEH,GAAG,CAACG,IAAI;YACdjB,KAAK,EAAED,UAAU,CAACe,GAAG,CAACd,KAAK;UAC/B,CAAC;QACL,CAAC,CAAC;MACN,CAAC;MACDkB,WAAW,EAAE,MAAAA,CAAOT,CAAC,EAAEC,IAAI,EAAEC,OAAO,KAAK;QACrC,OAAO,IAAAC,gBAAO,EAAC,YAAY;UACvB,IAAAC,0CAAoB,EAACF,OAAO,CAAC;UAC7B,MAAMG,GAAG,GAAGH,OAAO,CAACI,GAAG,CAACP,MAAM,CAACE,IAAI,CAACM,EAAE,CAAC;UACvC,OAAOjB,UAAU,CAACe,GAAG,CAACd,KAAK,CAAC;QAChC,CAAC,CAAC;MACN;IACJ;EACJ;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_handlerGraphql","require","_omit","_interopRequireDefault","_ensureAuthentication","_resolve","cleanModel","model","lodashOmit","appGql","exports","GraphQLSchemaPlugin","typeDefs","resolvers","AcoQuery","getApp","_","args","context","resolve","ensureAuthentication","app","aco","id","name","getAppModel"],"sources":["app.gql.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport type { AcoContext } from \"~/types\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport lodashOmit from \"lodash/omit\";\nimport { ensureAuthentication } from \"~/utils/ensureAuthentication\";\nimport { resolve } from \"~/utils/resolve\";\n\nconst cleanModel = (model: CmsModel): Partial<CmsModel> => {\n return lodashOmit(model, [\n \"webinyVersion\",\n \"tags\",\n \"locale\",\n \"tenant\",\n \"layout\",\n \"group\",\n \"description\",\n \"isPrivate\"\n ]);\n};\n\nexport const appGql = new GraphQLSchemaPlugin<AcoContext>({\n typeDefs: /* GraphQL */ `\n type AcoApp {\n id: ID!\n name: String!\n model: JSON!\n }\n type GetAppResponse {\n data: AcoApp\n error: AcoError\n }\n type GetAppModelResponse {\n data: JSON\n error: AcoError\n }\n extend type AcoQuery {\n getApp(id: ID!): GetAppResponse!\n getAppModel(id: ID!): GetAppModelResponse!\n }\n `,\n resolvers: {\n AcoQuery: {\n getApp: async (_, args, context) => {\n return resolve(async () => {\n ensureAuthentication(context);\n const app = context.aco.getApp(args.id);\n return {\n id: args.id,\n name: app.name,\n model: cleanModel(app.model)\n };\n });\n },\n getAppModel: async (_, args, context) => {\n return resolve(async () => {\n ensureAuthentication(context);\n const app = context.aco.getApp(args.id);\n return cleanModel(app.model);\n });\n }\n }\n }\n});\n"],"mappings":";;;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAGA,IAAAC,KAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAEA,MAAMK,UAAU,GAAIC,KAAe,IAAwB;EACvD,OAAO,IAAAC,aAAU,EAACD,KAAK,EAAE,CACrB,eAAe,EACf,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,aAAa,EACb,WAAW,CACd,CAAC;AACN,CAAC;AAEM,MAAME,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG,IAAIE,mCAAmB,CAAa;EACtDC,QAAQ,EAAE,aAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;EACDC,SAAS,EAAE;IACPC,QAAQ,EAAE;MACNC,MAAM,EAAE,MAAAA,CAAOC,CAAC,EAAEC,IAAI,EAAEC,OAAO,KAAK;QAChC,OAAO,IAAAC,gBAAO,EAAC,YAAY;UACvB,IAAAC,0CAAoB,EAACF,OAAO,CAAC;UAC7B,MAAMG,GAAG,GAAGH,OAAO,CAACI,GAAG,CAACP,MAAM,CAACE,IAAI,CAACM,EAAE,CAAC;UACvC,OAAO;YACHA,EAAE,EAAEN,IAAI,CAACM,EAAE;YACXC,IAAI,EAAEH,GAAG,CAACG,IAAI;YACdjB,KAAK,EAAED,UAAU,CAACe,GAAG,CAACd,KAAK;UAC/B,CAAC;QACL,CAAC,CAAC;MACN,CAAC;MACDkB,WAAW,EAAE,MAAAA,CAAOT,CAAC,EAAEC,IAAI,EAAEC,OAAO,KAAK;QACrC,OAAO,IAAAC,gBAAO,EAAC,YAAY;UACvB,IAAAC,0CAAoB,EAACF,OAAO,CAAC;UAC7B,MAAMG,GAAG,GAAGH,OAAO,CAACI,GAAG,CAACP,MAAM,CAACE,IAAI,CAACM,EAAE,CAAC;UACvC,OAAOjB,UAAU,CAACe,GAAG,CAACd,KAAK,CAAC;QAChC,CAAC,CAAC;MACN;IACJ;EACJ;AACJ,CAAC,CAAC","ignoreList":[]}
|
package/createAcoContext.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ContextPlugin } from "@webiny/api";
|
|
2
|
-
import { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
|
|
3
|
-
import { AcoContext } from "./types";
|
|
2
|
+
import type { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
|
|
3
|
+
import type { AcoContext } from "./types";
|
|
4
4
|
interface CreateAcoContextParams {
|
|
5
5
|
useFolderLevelPermissions?: boolean;
|
|
6
6
|
documentClient: DynamoDBDocument;
|
package/createAcoContext.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_error","_interopRequireDefault","require","_api","_apiHeadlessCms","_createAcoHooks","_createAcoStorageOperations","_folder","_record","_apps","_record2","_plugins","_CmsEntriesCrudDecorators","_filter","_flp","setupAcoContext","context","setupAcoContextParams","tenancy","security","i18n","getLocale","locale","getContentLocale","WebinyError","getTenant","getCurrentTenant","storageOperations","createAcoStorageOperations","cms","getCmsContext","documentClient","flpCrudMethods","createFlpCrudMethods","folderLevelPermissions","FolderLevelPermissions","crud","params","defaultRecordModel","withoutAuthorization","getModel","SEARCH_RECORD_MODEL_ID","apps","AcoApps","plugins","byType","AcoAppRegisterPlugin","type","plugin","register","model","app","aco","folder","createFolderCrudMethods","search","createSearchRecordCrudMethods","filter","createFilterCrudMethods","flp","getApp","name","get","listApps","list","registerApp","wcp","canUseFolderLevelPermissions","CmsEntriesCrudDecorators","decorate","createAcoContext","ContextPlugin","isHeadlessCmsReady","benchmark","measure","createAcoHooks","exports"],"sources":["createAcoContext.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { isHeadlessCmsReady } from \"@webiny/api-headless-cms\";\nimport { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb\";\nimport { createAcoHooks } from \"~/createAcoHooks\";\nimport { createAcoStorageOperations } from \"~/createAcoStorageOperations\";\nimport { AcoContext, CreateAcoParams, IAcoAppRegisterParams } from \"~/types\";\nimport { createFolderCrudMethods } from \"~/folder/folder.crud\";\nimport { createSearchRecordCrudMethods } from \"~/record/record.crud\";\nimport { AcoApps } from \"./apps\";\nimport { SEARCH_RECORD_MODEL_ID } from \"~/record/record.model\";\nimport { AcoAppRegisterPlugin } from \"~/plugins\";\nimport { CmsEntriesCrudDecorators } from \"~/utils/decorators/CmsEntriesCrudDecorators\";\nimport { createFilterCrudMethods } from \"~/filter/filter.crud\";\nimport { createFlpCrudMethods, FolderLevelPermissions } from \"~/flp\";\n\ninterface CreateAcoContextParams {\n useFolderLevelPermissions?: boolean;\n documentClient: DynamoDBDocument;\n}\n\nconst setupAcoContext = async (\n context: AcoContext,\n setupAcoContextParams: CreateAcoContextParams\n): Promise<void> => {\n const { tenancy, security, i18n } = context;\n\n const getLocale = (): I18NLocale => {\n const locale = i18n.getContentLocale();\n if (!locale) {\n throw new WebinyError(\n \"Missing content locale in api-aco/plugins/context.ts\",\n \"LOCALE_ERROR\"\n );\n }\n\n return locale;\n };\n\n const getTenant = (): Tenant => {\n return tenancy.getCurrentTenant();\n };\n\n const storageOperations = await createAcoStorageOperations({\n /**\n * TODO: We need to figure out a way to pass \"cms\" from outside (e.g. apps/api/graphql)\n */\n cms: context.cms,\n /**\n * TODO: This is required for \"entryFieldFromStorageTransform\" which access plugins from context.\n */\n getCmsContext: () => context,\n documentClient: setupAcoContextParams.documentClient,\n security\n });\n\n const flpCrudMethods = createFlpCrudMethods({\n getLocale,\n getTenant,\n storageOperations\n });\n\n const folderLevelPermissions = new FolderLevelPermissions({ context, crud: flpCrudMethods });\n\n const params: CreateAcoParams = {\n getLocale,\n getTenant,\n storageOperations,\n folderLevelPermissions\n };\n\n const defaultRecordModel = await context.security.withoutAuthorization(async () => {\n return context.cms.getModel(SEARCH_RECORD_MODEL_ID);\n });\n\n if (!defaultRecordModel) {\n throw new WebinyError(`There is no default record model in ${SEARCH_RECORD_MODEL_ID}`);\n }\n\n /**\n * First we need to create all the apps.\n */\n const apps = new AcoApps(context, params);\n const plugins = context.plugins.byType<AcoAppRegisterPlugin>(AcoAppRegisterPlugin.type);\n for (const plugin of plugins) {\n await apps.register({\n model: defaultRecordModel,\n ...plugin.app\n });\n }\n\n context.aco = {\n folder: createFolderCrudMethods({\n ...params,\n context\n }),\n search: createSearchRecordCrudMethods(params),\n folderLevelPermissions,\n filter: createFilterCrudMethods(params),\n flp: flpCrudMethods,\n apps,\n getApp: (name: string) => apps.get(name),\n listApps: () => apps.list(),\n registerApp: async (params: IAcoAppRegisterParams) => {\n return apps.register({\n model: defaultRecordModel,\n ...params\n });\n }\n };\n\n if (context.wcp.canUseFolderLevelPermissions()) {\n new CmsEntriesCrudDecorators({ context }).decorate();\n\n // PB decorators registered here: packages/api-page-builder-aco/src/index.ts\n // new PageBuilderCrudDecorators({ context }).decorate();\n }\n};\n\nexport const createAcoContext = (params: CreateAcoContextParams) => {\n const plugin = new ContextPlugin<AcoContext>(async context => {\n /**\n * We can skip the ACO initialization if the installation is pending.\n */\n if (!(await isHeadlessCmsReady(context))) {\n return;\n }\n\n await context.benchmark.measure(\"aco.context.setup\", async () => {\n await setupAcoContext(context, params);\n });\n\n await context.benchmark.measure(\"aco.context.hooks\", async () => {\n await createAcoHooks(context);\n });\n });\n\n plugin.name = \"aco.createContext\";\n\n return plugin;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_api","_apiHeadlessCms","_createAcoHooks","_createAcoStorageOperations","_folder","_record","_apps","_record2","_plugins","_CmsEntriesCrudDecorators","_filter","_flp","setupAcoContext","context","setupAcoContextParams","tenancy","security","i18n","getLocale","locale","getContentLocale","WebinyError","getTenant","getCurrentTenant","storageOperations","createAcoStorageOperations","cms","getCmsContext","documentClient","flpCrudMethods","createFlpCrudMethods","folderLevelPermissions","FolderLevelPermissions","crud","params","defaultRecordModel","withoutAuthorization","getModel","SEARCH_RECORD_MODEL_ID","apps","AcoApps","plugins","byType","AcoAppRegisterPlugin","type","plugin","register","model","app","aco","folder","createFolderCrudMethods","search","createSearchRecordCrudMethods","filter","createFilterCrudMethods","flp","getApp","name","get","listApps","list","registerApp","wcp","canUseFolderLevelPermissions","CmsEntriesCrudDecorators","decorate","createAcoContext","ContextPlugin","isHeadlessCmsReady","benchmark","measure","createAcoHooks","exports"],"sources":["createAcoContext.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport type { I18NLocale } from \"@webiny/api-i18n/types\";\nimport type { Tenant } from \"@webiny/api-tenancy/types\";\nimport { isHeadlessCmsReady } from \"@webiny/api-headless-cms\";\nimport type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb\";\nimport { createAcoHooks } from \"~/createAcoHooks\";\nimport { createAcoStorageOperations } from \"~/createAcoStorageOperations\";\nimport type { AcoContext, CreateAcoParams, IAcoAppRegisterParams } from \"~/types\";\nimport { createFolderCrudMethods } from \"~/folder/folder.crud\";\nimport { createSearchRecordCrudMethods } from \"~/record/record.crud\";\nimport { AcoApps } from \"./apps\";\nimport { SEARCH_RECORD_MODEL_ID } from \"~/record/record.model\";\nimport { AcoAppRegisterPlugin } from \"~/plugins\";\nimport { CmsEntriesCrudDecorators } from \"~/utils/decorators/CmsEntriesCrudDecorators\";\nimport { createFilterCrudMethods } from \"~/filter/filter.crud\";\nimport { createFlpCrudMethods, FolderLevelPermissions } from \"~/flp\";\n\ninterface CreateAcoContextParams {\n useFolderLevelPermissions?: boolean;\n documentClient: DynamoDBDocument;\n}\n\nconst setupAcoContext = async (\n context: AcoContext,\n setupAcoContextParams: CreateAcoContextParams\n): Promise<void> => {\n const { tenancy, security, i18n } = context;\n\n const getLocale = (): I18NLocale => {\n const locale = i18n.getContentLocale();\n if (!locale) {\n throw new WebinyError(\n \"Missing content locale in api-aco/plugins/context.ts\",\n \"LOCALE_ERROR\"\n );\n }\n\n return locale;\n };\n\n const getTenant = (): Tenant => {\n return tenancy.getCurrentTenant();\n };\n\n const storageOperations = await createAcoStorageOperations({\n /**\n * TODO: We need to figure out a way to pass \"cms\" from outside (e.g. apps/api/graphql)\n */\n cms: context.cms,\n /**\n * TODO: This is required for \"entryFieldFromStorageTransform\" which access plugins from context.\n */\n getCmsContext: () => context,\n documentClient: setupAcoContextParams.documentClient,\n security\n });\n\n const flpCrudMethods = createFlpCrudMethods({\n getLocale,\n getTenant,\n storageOperations\n });\n\n const folderLevelPermissions = new FolderLevelPermissions({ context, crud: flpCrudMethods });\n\n const params: CreateAcoParams = {\n getLocale,\n getTenant,\n storageOperations,\n folderLevelPermissions\n };\n\n const defaultRecordModel = await context.security.withoutAuthorization(async () => {\n return context.cms.getModel(SEARCH_RECORD_MODEL_ID);\n });\n\n if (!defaultRecordModel) {\n throw new WebinyError(`There is no default record model in ${SEARCH_RECORD_MODEL_ID}`);\n }\n\n /**\n * First we need to create all the apps.\n */\n const apps = new AcoApps(context, params);\n const plugins = context.plugins.byType<AcoAppRegisterPlugin>(AcoAppRegisterPlugin.type);\n for (const plugin of plugins) {\n await apps.register({\n model: defaultRecordModel,\n ...plugin.app\n });\n }\n\n context.aco = {\n folder: createFolderCrudMethods({\n ...params,\n context\n }),\n search: createSearchRecordCrudMethods(params),\n folderLevelPermissions,\n filter: createFilterCrudMethods(params),\n flp: flpCrudMethods,\n apps,\n getApp: (name: string) => apps.get(name),\n listApps: () => apps.list(),\n registerApp: async (params: IAcoAppRegisterParams) => {\n return apps.register({\n model: defaultRecordModel,\n ...params\n });\n }\n };\n\n if (context.wcp.canUseFolderLevelPermissions()) {\n new CmsEntriesCrudDecorators({ context }).decorate();\n\n // PB decorators registered here: packages/api-page-builder-aco/src/index.ts\n // new PageBuilderCrudDecorators({ context }).decorate();\n }\n};\n\nexport const createAcoContext = (params: CreateAcoContextParams) => {\n const plugin = new ContextPlugin<AcoContext>(async context => {\n /**\n * We can skip the ACO initialization if the installation is pending.\n */\n if (!(await isHeadlessCmsReady(context))) {\n return;\n }\n\n await context.benchmark.measure(\"aco.context.setup\", async () => {\n await setupAcoContext(context, params);\n });\n\n await context.benchmark.measure(\"aco.context.hooks\", async () => {\n await createAcoHooks(context);\n });\n });\n\n plugin.name = \"aco.createContext\";\n\n return plugin;\n};\n"],"mappings":"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","ignoreList":[]}
|
package/createAcoGraphQL.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
|
|
2
|
-
import { AcoContext } from "./types";
|
|
2
|
+
import type { AcoContext } from "./types";
|
|
3
3
|
import { ContextPlugin } from "@webiny/api";
|
|
4
4
|
export declare const createAcoGraphQL: () => (ContextPlugin<AcoContext> | GraphQLSchemaPlugin<AcoContext>)[];
|
package/createAcoGraphQL.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_handlerGraphql","require","_filter","_folder","_app","_api","_apiHeadlessCms","_createFieldTypePluginRecords","_getSchemaFromFieldPlugins","_folder2","emptyResolver","baseSchema","GraphQLSchemaPlugin","typeDefs","resolvers","Query","aco","search","Mutation","createAcoGraphQL","folderSchema","ContextPlugin","context","isHeadlessCmsReady","security","withoutAuthorization","model","cms","getModel","FOLDER_MODEL_ID","models","listModels","fieldPlugins","createFieldTypePluginRecords","plugins","createGraphQLSchemaPluginFromFieldPlugins","type","fieldTypePlugins","createPlugin","schema","fieldType","plugin","name","graphQlPlugin","createFoldersSchema","register","appGql","filterSchema","exports"],"sources":["createAcoGraphQL.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { filterSchema } from \"~/filter/filter.gql\";\nimport { createFoldersSchema } from \"~/folder/folder.gql\";\nimport { appGql } from \"~/apps/app.gql\";\nimport { AcoContext } from \"~/types\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { isHeadlessCmsReady } from \"@webiny/api-headless-cms\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { createFieldTypePluginRecords } from \"@webiny/api-headless-cms/graphql/schema/createFieldTypePluginRecords\";\nimport { createGraphQLSchemaPluginFromFieldPlugins } from \"@webiny/api-headless-cms/utils/getSchemaFromFieldPlugins\";\nimport { FOLDER_MODEL_ID } from \"~/folder/folder.model\";\n\nconst emptyResolver = () => ({});\n\nconst baseSchema = new GraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type AcoQuery {\n _empty: String\n }\n\n type AcoMutation {\n _empty: String\n }\n\n type SearchQuery {\n _empty: String\n }\n\n type SearchMutation {\n _empty: String\n }\n\n type AcoMeta {\n hasMoreItems: Boolean\n totalCount: Int\n cursor: String\n }\n\n type AcoUser {\n id: ID\n displayName: String\n type: String\n }\n\n type AcoError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type AcoBooleanResponse {\n data: Boolean\n error: AcoError\n }\n\n enum AcoSortDirection {\n ASC\n DESC\n }\n\n input AcoSort {\n id: AcoSortDirection\n createdOn: AcoSortDirection\n modifiedOn: AcoSortDirection\n savedOn: AcoSortDirection\n title: AcoSortDirection\n }\n\n input AcoSearchRecordTagListWhereInput {\n tags_in: [String!]\n tags_startsWith: String\n tags_not_startsWith: String\n createdBy: ID\n AND: [AcoSearchRecordTagListWhereInput!]\n OR: [AcoSearchRecordTagListWhereInput!]\n }\n\n type AcoSearchRecordMoveResponse {\n data: Boolean\n error: AcoError\n }\n\n type TagItem {\n tag: String!\n count: Int!\n }\n\n type AcoSearchRecordTagListResponse {\n data: [TagItem!]\n error: AcoError\n meta: AcoMeta\n }\n\n type AcoSearchLocationType {\n folderId: ID!\n }\n input AcoSearchLocationInput {\n folderId: ID!\n }\n\n extend type Query {\n aco: AcoQuery\n search: SearchQuery\n }\n\n extend type Mutation {\n aco: AcoMutation\n search: SearchMutation\n }\n `,\n resolvers: {\n Query: {\n aco: emptyResolver,\n search: emptyResolver\n },\n Mutation: {\n aco: emptyResolver,\n search: emptyResolver\n }\n }\n});\n\nexport const createAcoGraphQL = () => {\n const folderSchema = new ContextPlugin<AcoContext>(async context => {\n if (!(await isHeadlessCmsReady(context))) {\n return;\n }\n\n await context.security.withoutAuthorization(async () => {\n const model = (await context.cms.getModel(FOLDER_MODEL_ID)) as CmsModel;\n const models = await context.cms.listModels();\n const fieldPlugins = createFieldTypePluginRecords(context.plugins);\n /**\n * We need to register all plugins for all the CMS fields.\n */\n const plugins = createGraphQLSchemaPluginFromFieldPlugins({\n models,\n type: \"manage\",\n fieldTypePlugins: fieldPlugins,\n createPlugin: ({ schema, type, fieldType }) => {\n const plugin = new GraphQLSchemaPlugin(schema);\n plugin.name = `aco.graphql.folder.schema.${type}.field.${fieldType}`;\n return plugin;\n }\n });\n\n const graphQlPlugin = createFoldersSchema({\n model,\n models,\n plugins: fieldPlugins\n });\n\n context.plugins.register([...plugins, graphQlPlugin]);\n });\n });\n\n return [baseSchema, appGql, folderSchema, filterSchema];\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_handlerGraphql","require","_filter","_folder","_app","_api","_apiHeadlessCms","_createFieldTypePluginRecords","_getSchemaFromFieldPlugins","_folder2","emptyResolver","baseSchema","GraphQLSchemaPlugin","typeDefs","resolvers","Query","aco","search","Mutation","createAcoGraphQL","folderSchema","ContextPlugin","context","isHeadlessCmsReady","security","withoutAuthorization","model","cms","getModel","FOLDER_MODEL_ID","models","listModels","fieldPlugins","createFieldTypePluginRecords","plugins","createGraphQLSchemaPluginFromFieldPlugins","type","fieldTypePlugins","createPlugin","schema","fieldType","plugin","name","graphQlPlugin","createFoldersSchema","register","appGql","filterSchema","exports"],"sources":["createAcoGraphQL.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { filterSchema } from \"~/filter/filter.gql\";\nimport { createFoldersSchema } from \"~/folder/folder.gql\";\nimport { appGql } from \"~/apps/app.gql\";\nimport type { AcoContext } from \"~/types\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { isHeadlessCmsReady } from \"@webiny/api-headless-cms\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { createFieldTypePluginRecords } from \"@webiny/api-headless-cms/graphql/schema/createFieldTypePluginRecords\";\nimport { createGraphQLSchemaPluginFromFieldPlugins } from \"@webiny/api-headless-cms/utils/getSchemaFromFieldPlugins\";\nimport { FOLDER_MODEL_ID } from \"~/folder/folder.model\";\n\nconst emptyResolver = () => ({});\n\nconst baseSchema = new GraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type AcoQuery {\n _empty: String\n }\n\n type AcoMutation {\n _empty: String\n }\n\n type SearchQuery {\n _empty: String\n }\n\n type SearchMutation {\n _empty: String\n }\n\n type AcoMeta {\n hasMoreItems: Boolean\n totalCount: Int\n cursor: String\n }\n\n type AcoUser {\n id: ID\n displayName: String\n type: String\n }\n\n type AcoError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type AcoBooleanResponse {\n data: Boolean\n error: AcoError\n }\n\n enum AcoSortDirection {\n ASC\n DESC\n }\n\n input AcoSort {\n id: AcoSortDirection\n createdOn: AcoSortDirection\n modifiedOn: AcoSortDirection\n savedOn: AcoSortDirection\n title: AcoSortDirection\n }\n\n input AcoSearchRecordTagListWhereInput {\n tags_in: [String!]\n tags_startsWith: String\n tags_not_startsWith: String\n createdBy: ID\n AND: [AcoSearchRecordTagListWhereInput!]\n OR: [AcoSearchRecordTagListWhereInput!]\n }\n\n type AcoSearchRecordMoveResponse {\n data: Boolean\n error: AcoError\n }\n\n type TagItem {\n tag: String!\n count: Int!\n }\n\n type AcoSearchRecordTagListResponse {\n data: [TagItem!]\n error: AcoError\n meta: AcoMeta\n }\n\n type AcoSearchLocationType {\n folderId: ID!\n }\n input AcoSearchLocationInput {\n folderId: ID!\n }\n\n extend type Query {\n aco: AcoQuery\n search: SearchQuery\n }\n\n extend type Mutation {\n aco: AcoMutation\n search: SearchMutation\n }\n `,\n resolvers: {\n Query: {\n aco: emptyResolver,\n search: emptyResolver\n },\n Mutation: {\n aco: emptyResolver,\n search: emptyResolver\n }\n }\n});\n\nexport const createAcoGraphQL = () => {\n const folderSchema = new ContextPlugin<AcoContext>(async context => {\n if (!(await isHeadlessCmsReady(context))) {\n return;\n }\n\n await context.security.withoutAuthorization(async () => {\n const model = (await context.cms.getModel(FOLDER_MODEL_ID)) as CmsModel;\n const models = await context.cms.listModels();\n const fieldPlugins = createFieldTypePluginRecords(context.plugins);\n /**\n * We need to register all plugins for all the CMS fields.\n */\n const plugins = createGraphQLSchemaPluginFromFieldPlugins({\n models,\n type: \"manage\",\n fieldTypePlugins: fieldPlugins,\n createPlugin: ({ schema, type, fieldType }) => {\n const plugin = new GraphQLSchemaPlugin(schema);\n plugin.name = `aco.graphql.folder.schema.${type}.field.${fieldType}`;\n return plugin;\n }\n });\n\n const graphQlPlugin = createFoldersSchema({\n model,\n models,\n plugins: fieldPlugins\n });\n\n context.plugins.register([...plugins, graphQlPlugin]);\n });\n });\n\n return [baseSchema, appGql, folderSchema, filterSchema];\n};\n"],"mappings":"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","ignoreList":[]}
|
package/createAcoHooks.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { AcoContext } from "./types";
|
|
1
|
+
import type { AcoContext } from "./types";
|
|
2
2
|
export declare const createAcoHooks: (context: AcoContext) => void;
|
package/createAcoHooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_onFolderBeforeDeleteAco","require","_onFolderBeforeDeleteHcms","_onFolderBeforeDeleteFm","_flp","createAcoHooks","context","onFolderBeforeDeleteAcoHook","onFolderBeforeDeleteHcmsHook","onFolderBeforeDeleteFmHook","createFlpHooks","exports"],"sources":["createAcoHooks.ts"],"sourcesContent":["import { onFolderBeforeDeleteAcoHook } from \"~/folder/onFolderBeforeDeleteAco.hook\";\nimport { onFolderBeforeDeleteHcmsHook } from \"~/folder/onFolderBeforeDeleteHcms.hook\";\nimport { onFolderBeforeDeleteFmHook } from \"~/folder/onFolderBeforeDeleteFm.hook\";\nimport { createFlpHooks } from \"~/flp\";\n\nimport { AcoContext } from \"~/types\";\n\nexport const createAcoHooks = (context: AcoContext) => {\n onFolderBeforeDeleteAcoHook(context);\n onFolderBeforeDeleteHcmsHook(context);\n onFolderBeforeDeleteFmHook(context);\n\n createFlpHooks(context);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AACA,IAAAC,yBAAA,GAAAD,OAAA;AACA,IAAAE,uBAAA,GAAAF,OAAA;AACA,IAAAG,IAAA,GAAAH,OAAA;AAIO,MAAMI,cAAc,GAAIC,OAAmB,IAAK;EACnD,IAAAC,oDAA2B,EAACD,OAAO,CAAC;EACpC,IAAAE,sDAA4B,EAACF,OAAO,CAAC;EACrC,IAAAG,kDAA0B,EAACH,OAAO,CAAC;EAEnC,IAAAI,mBAAc,EAACJ,OAAO,CAAC;AAC3B,CAAC;AAACK,OAAA,CAAAN,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_onFolderBeforeDeleteAco","require","_onFolderBeforeDeleteHcms","_onFolderBeforeDeleteFm","_flp","createAcoHooks","context","onFolderBeforeDeleteAcoHook","onFolderBeforeDeleteHcmsHook","onFolderBeforeDeleteFmHook","createFlpHooks","exports"],"sources":["createAcoHooks.ts"],"sourcesContent":["import { onFolderBeforeDeleteAcoHook } from \"~/folder/onFolderBeforeDeleteAco.hook\";\nimport { onFolderBeforeDeleteHcmsHook } from \"~/folder/onFolderBeforeDeleteHcms.hook\";\nimport { onFolderBeforeDeleteFmHook } from \"~/folder/onFolderBeforeDeleteFm.hook\";\nimport { createFlpHooks } from \"~/flp\";\n\nimport type { AcoContext } from \"~/types\";\n\nexport const createAcoHooks = (context: AcoContext) => {\n onFolderBeforeDeleteAcoHook(context);\n onFolderBeforeDeleteHcmsHook(context);\n onFolderBeforeDeleteFmHook(context);\n\n createFlpHooks(context);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AACA,IAAAC,yBAAA,GAAAD,OAAA;AACA,IAAAE,uBAAA,GAAAF,OAAA;AACA,IAAAG,IAAA,GAAAH,OAAA;AAIO,MAAMI,cAAc,GAAIC,OAAmB,IAAK;EACnD,IAAAC,oDAA2B,EAACD,OAAO,CAAC;EACpC,IAAAE,sDAA4B,EAACF,OAAO,CAAC;EACrC,IAAAG,kDAA0B,EAACH,OAAO,CAAC;EAEnC,IAAAI,mBAAc,EAACJ,OAAO,CAAC;AAC3B,CAAC;AAACK,OAAA,CAAAN,cAAA,GAAAA,cAAA","ignoreList":[]}
|
package/createAcoModels.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { CmsContext } from "@webiny/api-headless-cms/types";
|
|
1
|
+
import type { CmsContext } from "@webiny/api-headless-cms/types";
|
|
2
2
|
export declare const createAcoModels: (context: CmsContext) => Promise<void>;
|
package/createAcoModels.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_filter","require","_folder","_record","_modelFactory","_createFolderModelModifier","createAcoModels","context","folderModel","createFolderModel","modelModifiers","plugins","byType","FolderCmsModelModifierPlugin","type","modifier","modifyModel","modelDefinitions","createSearchModel","createFilterModel","cmsModelPlugins","map","modelDefinition","modelFactory","register","exports"],"sources":["createAcoModels.ts"],"sourcesContent":["import { CmsContext } from \"@webiny/api-headless-cms/types\";\nimport { createFilterModel } from \"~/filter/filter.model\";\nimport { createFolderModel } from \"~/folder/folder.model\";\nimport { createSearchModel } from \"~/record/record.model\";\nimport { modelFactory } from \"~/utils/modelFactory\";\nimport { FolderCmsModelModifierPlugin } from \"~/folder/createFolderModelModifier\";\n\nexport const createAcoModels = async (context: CmsContext) => {\n /**\n * Create CmsModel plugins.\n */\n const folderModel = createFolderModel();\n\n const modelModifiers = context.plugins.byType<FolderCmsModelModifierPlugin>(\n FolderCmsModelModifierPlugin.type\n );\n\n for (const modifier of modelModifiers) {\n await modifier.modifyModel(folderModel);\n }\n\n const modelDefinitions = [folderModel, createSearchModel(), createFilterModel()];\n const cmsModelPlugins = modelDefinitions.map(modelDefinition => {\n return modelFactory({\n modelDefinition\n });\n });\n\n /**\n * Register them so that they are accessible in cms context\n */\n context.plugins.register([cmsModelPlugins]);\n};\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,0BAAA,GAAAJ,OAAA;AAEO,MAAMK,eAAe,GAAG,MAAOC,OAAmB,IAAK;EAC1D;AACJ;AACA;EACI,MAAMC,WAAW,GAAG,IAAAC,yBAAiB,EAAC,CAAC;EAEvC,MAAMC,cAAc,GAAGH,OAAO,CAACI,OAAO,CAACC,MAAM,CACzCC,uDAA4B,CAACC,IACjC,CAAC;EAED,KAAK,MAAMC,QAAQ,IAAIL,cAAc,EAAE;IACnC,MAAMK,QAAQ,CAACC,WAAW,CAACR,WAAW,CAAC;EAC3C;EAEA,MAAMS,gBAAgB,GAAG,CAACT,WAAW,EAAE,IAAAU,yBAAiB,EAAC,CAAC,EAAE,IAAAC,yBAAiB,EAAC,CAAC,CAAC;EAChF,MAAMC,eAAe,GAAGH,gBAAgB,CAACI,GAAG,CAACC,eAAe,IAAI;IAC5D,OAAO,IAAAC,0BAAY,EAAC;MAChBD;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;;EAEF;AACJ;AACA;EACIf,OAAO,CAACI,OAAO,CAACa,QAAQ,CAAC,CAACJ,eAAe,CAAC,CAAC;AAC/C,CAAC;AAACK,OAAA,CAAAnB,eAAA,GAAAA,eAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_filter","require","_folder","_record","_modelFactory","_createFolderModelModifier","createAcoModels","context","folderModel","createFolderModel","modelModifiers","plugins","byType","FolderCmsModelModifierPlugin","type","modifier","modifyModel","modelDefinitions","createSearchModel","createFilterModel","cmsModelPlugins","map","modelDefinition","modelFactory","register","exports"],"sources":["createAcoModels.ts"],"sourcesContent":["import type { CmsContext } from \"@webiny/api-headless-cms/types\";\nimport { createFilterModel } from \"~/filter/filter.model\";\nimport { createFolderModel } from \"~/folder/folder.model\";\nimport { createSearchModel } from \"~/record/record.model\";\nimport { modelFactory } from \"~/utils/modelFactory\";\nimport { FolderCmsModelModifierPlugin } from \"~/folder/createFolderModelModifier\";\n\nexport const createAcoModels = async (context: CmsContext) => {\n /**\n * Create CmsModel plugins.\n */\n const folderModel = createFolderModel();\n\n const modelModifiers = context.plugins.byType<FolderCmsModelModifierPlugin>(\n FolderCmsModelModifierPlugin.type\n );\n\n for (const modifier of modelModifiers) {\n await modifier.modifyModel(folderModel);\n }\n\n const modelDefinitions = [folderModel, createSearchModel(), createFilterModel()];\n const cmsModelPlugins = modelDefinitions.map(modelDefinition => {\n return modelFactory({\n modelDefinition\n });\n });\n\n /**\n * Register them so that they are accessible in cms context\n */\n context.plugins.register([cmsModelPlugins]);\n};\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,0BAAA,GAAAJ,OAAA;AAEO,MAAMK,eAAe,GAAG,MAAOC,OAAmB,IAAK;EAC1D;AACJ;AACA;EACI,MAAMC,WAAW,GAAG,IAAAC,yBAAiB,EAAC,CAAC;EAEvC,MAAMC,cAAc,GAAGH,OAAO,CAACI,OAAO,CAACC,MAAM,CACzCC,uDAA4B,CAACC,IACjC,CAAC;EAED,KAAK,MAAMC,QAAQ,IAAIL,cAAc,EAAE;IACnC,MAAMK,QAAQ,CAACC,WAAW,CAACR,WAAW,CAAC;EAC3C;EAEA,MAAMS,gBAAgB,GAAG,CAACT,WAAW,EAAE,IAAAU,yBAAiB,EAAC,CAAC,EAAE,IAAAC,yBAAiB,EAAC,CAAC,CAAC;EAChF,MAAMC,eAAe,GAAGH,gBAAgB,CAACI,GAAG,CAACC,eAAe,IAAI;IAC5D,OAAO,IAAAC,0BAAY,EAAC;MAChBD;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;;EAEF;AACJ;AACA;EACIf,OAAO,CAACI,OAAO,CAACa,QAAQ,CAAC,CAACJ,eAAe,CAAC,CAAC;AAC/C,CAAC;AAACK,OAAA,CAAAnB,eAAA,GAAAA,eAAA","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { CmsContext, HeadlessCms } from "@webiny/api-headless-cms/types";
|
|
2
|
-
import { Security } from "@webiny/api-security/types";
|
|
3
|
-
import { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
|
|
4
|
-
import { AcoStorageOperations } from "./types";
|
|
1
|
+
import type { CmsContext, HeadlessCms } from "@webiny/api-headless-cms/types";
|
|
2
|
+
import type { Security } from "@webiny/api-security/types";
|
|
3
|
+
import type { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
|
|
4
|
+
import type { AcoStorageOperations } from "./types";
|
|
5
5
|
export interface CreateAcoStorageOperationsParams {
|
|
6
6
|
cms: HeadlessCms;
|
|
7
7
|
security: Security;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_filter","require","_folder","_record","_createAcoModels","_flp","createAcoStorageOperations","params","context","getCmsContext","createAcoModels","folder","createFolderOperations","search","createSearchRecordOperations","filter","createFilterOperations","flp","createFlpOperations","exports"],"sources":["createAcoStorageOperations.ts"],"sourcesContent":["import { CmsContext, HeadlessCms } from \"@webiny/api-headless-cms/types\";\nimport { Security } from \"@webiny/api-security/types\";\nimport { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb\";\n\nimport { createFilterOperations } from \"~/filter/filter.so\";\nimport { createFolderOperations } from \"~/folder/folder.so\";\nimport { createSearchRecordOperations } from \"~/record/record.so\";\nimport { createAcoModels } from \"~/createAcoModels\";\n\nimport { AcoStorageOperations } from \"~/types\";\nimport { createFlpOperations } from \"~/flp\";\n\nexport interface CreateAcoStorageOperationsParams {\n cms: HeadlessCms;\n security: Security;\n getCmsContext: () => CmsContext;\n documentClient: DynamoDBDocument;\n}\n\nexport const createAcoStorageOperations = async (\n params: CreateAcoStorageOperationsParams\n): Promise<AcoStorageOperations> => {\n const context = params.getCmsContext();\n\n await createAcoModels(context);\n\n return {\n folder: createFolderOperations(params),\n search: createSearchRecordOperations(params),\n filter: createFilterOperations(params),\n flp: createFlpOperations(params)\n };\n};\n"],"mappings":";;;;;;AAIA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AAGA,IAAAI,IAAA,GAAAJ,OAAA;AASO,MAAMK,0BAA0B,GAAG,MACtCC,MAAwC,IACR;EAChC,MAAMC,OAAO,GAAGD,MAAM,CAACE,aAAa,CAAC,CAAC;EAEtC,MAAM,IAAAC,gCAAe,EAACF,OAAO,CAAC;EAE9B,OAAO;IACHG,MAAM,EAAE,IAAAC,8BAAsB,EAACL,MAAM,CAAC;IACtCM,MAAM,EAAE,IAAAC,oCAA4B,EAACP,MAAM,CAAC;IAC5CQ,MAAM,EAAE,IAAAC,8BAAsB,EAACT,MAAM,CAAC;IACtCU,GAAG,EAAE,IAAAC,wBAAmB,EAACX,MAAM;EACnC,CAAC;AACL,CAAC;AAACY,OAAA,CAAAb,0BAAA,GAAAA,0BAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_filter","require","_folder","_record","_createAcoModels","_flp","createAcoStorageOperations","params","context","getCmsContext","createAcoModels","folder","createFolderOperations","search","createSearchRecordOperations","filter","createFilterOperations","flp","createFlpOperations","exports"],"sources":["createAcoStorageOperations.ts"],"sourcesContent":["import type { CmsContext, HeadlessCms } from \"@webiny/api-headless-cms/types\";\nimport type { Security } from \"@webiny/api-security/types\";\nimport type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb\";\n\nimport { createFilterOperations } from \"~/filter/filter.so\";\nimport { createFolderOperations } from \"~/folder/folder.so\";\nimport { createSearchRecordOperations } from \"~/record/record.so\";\nimport { createAcoModels } from \"~/createAcoModels\";\n\nimport type { AcoStorageOperations } from \"~/types\";\nimport { createFlpOperations } from \"~/flp\";\n\nexport interface CreateAcoStorageOperationsParams {\n cms: HeadlessCms;\n security: Security;\n getCmsContext: () => CmsContext;\n documentClient: DynamoDBDocument;\n}\n\nexport const createAcoStorageOperations = async (\n params: CreateAcoStorageOperationsParams\n): Promise<AcoStorageOperations> => {\n const context = params.getCmsContext();\n\n await createAcoModels(context);\n\n return {\n folder: createFolderOperations(params),\n search: createSearchRecordOperations(params),\n filter: createFilterOperations(params),\n flp: createFlpOperations(params)\n };\n};\n"],"mappings":";;;;;;AAIA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AAGA,IAAAI,IAAA,GAAAJ,OAAA;AASO,MAAMK,0BAA0B,GAAG,MACtCC,MAAwC,IACR;EAChC,MAAMC,OAAO,GAAGD,MAAM,CAACE,aAAa,CAAC,CAAC;EAEtC,MAAM,IAAAC,gCAAe,EAACF,OAAO,CAAC;EAE9B,OAAO;IACHG,MAAM,EAAE,IAAAC,8BAAsB,EAACL,MAAM,CAAC;IACtCM,MAAM,EAAE,IAAAC,oCAA4B,EAACP,MAAM,CAAC;IAC5CQ,MAAM,EAAE,IAAAC,8BAAsB,EAACT,MAAM,CAAC;IACtCU,GAAG,EAAE,IAAAC,wBAAmB,EAACX,MAAM;EACnC,CAAC;AACL,CAAC;AAACY,OAAA,CAAAb,0BAAA,GAAAA,0BAAA","ignoreList":[]}
|
package/filter/filter.crud.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { CreateAcoParams } from "../types";
|
|
2
|
-
import { AcoFilterCrud } from "./filter.types";
|
|
1
|
+
import type { CreateAcoParams } from "../types";
|
|
2
|
+
import type { AcoFilterCrud } from "./filter.types";
|
|
3
3
|
export declare const createFilterCrudMethods: ({ storageOperations }: CreateAcoParams) => AcoFilterCrud;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_pubsub","require","createFilterCrudMethods","storageOperations","onFilterBeforeCreate","createTopic","onFilterAfterCreate","onFilterBeforeUpdate","onFilterAfterUpdate","onFilterBeforeDelete","onFilterAfterDelete","get","id","filter","getFilter","list","params","listFilters","create","data","publish","input","createFilter","update","original","updateFilter","delete","deleteFilter","exports"],"sources":["filter.crud.ts"],"sourcesContent":["import { createTopic } from \"@webiny/pubsub\";\n\nimport { CreateAcoParams } from \"~/types\";\nimport {\n AcoFilterCrud,\n OnFilterAfterCreateTopicParams,\n OnFilterAfterDeleteTopicParams,\n OnFilterAfterUpdateTopicParams,\n OnFilterBeforeCreateTopicParams,\n OnFilterBeforeDeleteTopicParams,\n OnFilterBeforeUpdateTopicParams\n} from \"./filter.types\";\n\nexport const createFilterCrudMethods = ({ storageOperations }: CreateAcoParams): AcoFilterCrud => {\n // create\n const onFilterBeforeCreate = createTopic<OnFilterBeforeCreateTopicParams>(\n \"aco.onFilterBeforeCreate\"\n );\n const onFilterAfterCreate =\n createTopic<OnFilterAfterCreateTopicParams>(\"aco.onFilterAfterCreate\");\n // update\n const onFilterBeforeUpdate = createTopic<OnFilterBeforeUpdateTopicParams>(\n \"aco.onFilterBeforeUpdate\"\n );\n const onFilterAfterUpdate =\n createTopic<OnFilterAfterUpdateTopicParams>(\"aco.onFilterAfterUpdate\");\n // delete\n const onFilterBeforeDelete = createTopic<OnFilterBeforeDeleteTopicParams>(\n \"aco.onFilterBeforeDelete\"\n );\n const onFilterAfterDelete =\n createTopic<OnFilterAfterDeleteTopicParams>(\"aco.onFilterAfterDelete\");\n\n return {\n /**\n * Lifecycle events\n */\n onFilterBeforeCreate,\n onFilterAfterCreate,\n onFilterBeforeUpdate,\n onFilterAfterUpdate,\n onFilterBeforeDelete,\n onFilterAfterDelete,\n async get(id) {\n return storageOperations.filter.getFilter({ id });\n },\n async list(params) {\n return storageOperations.filter.listFilters(params);\n },\n async create(data) {\n await onFilterBeforeCreate.publish({ input: data });\n const filter = await storageOperations.filter.createFilter({ data });\n await onFilterAfterCreate.publish({ filter });\n return filter;\n },\n async update(id, data) {\n const original = await storageOperations.filter.getFilter({ id });\n await onFilterBeforeUpdate.publish({ original, input: { id, data } });\n const filter = await storageOperations.filter.updateFilter({ id, data });\n await onFilterAfterUpdate.publish({ original, input: { id, data }, filter });\n return filter;\n },\n async delete(id: string) {\n const filter = await storageOperations.filter.getFilter({ id });\n await onFilterBeforeDelete.publish({ filter });\n await storageOperations.filter.deleteFilter({ id });\n await onFilterAfterDelete.publish({ filter });\n return true;\n }\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAaO,MAAMC,uBAAuB,GAAGA,CAAC;EAAEC;AAAmC,CAAC,KAAoB;EAC9F;EACA,MAAMC,oBAAoB,GAAG,IAAAC,mBAAW,EACpC,0BACJ,CAAC;EACD,MAAMC,mBAAmB,GACrB,IAAAD,mBAAW,EAAiC,yBAAyB,CAAC;EAC1E;EACA,MAAME,oBAAoB,GAAG,IAAAF,mBAAW,EACpC,0BACJ,CAAC;EACD,MAAMG,mBAAmB,GACrB,IAAAH,mBAAW,EAAiC,yBAAyB,CAAC;EAC1E;EACA,MAAMI,oBAAoB,GAAG,IAAAJ,mBAAW,EACpC,0BACJ,CAAC;EACD,MAAMK,mBAAmB,GACrB,IAAAL,mBAAW,EAAiC,yBAAyB,CAAC;EAE1E,OAAO;IACH;AACR;AACA;IACQD,oBAAoB;IACpBE,mBAAmB;IACnBC,oBAAoB;IACpBC,mBAAmB;IACnBC,oBAAoB;IACpBC,mBAAmB;IACnB,MAAMC,GAAGA,CAACC,EAAE,EAAE;MACV,OAAOT,iBAAiB,CAACU,MAAM,CAACC,SAAS,CAAC;QAAEF;MAAG,CAAC,CAAC;IACrD,CAAC;IACD,MAAMG,IAAIA,CAACC,MAAM,EAAE;MACf,OAAOb,iBAAiB,CAACU,MAAM,CAACI,WAAW,CAACD,MAAM,CAAC;IACvD,CAAC;IACD,MAAME,MAAMA,CAACC,IAAI,EAAE;MACf,MAAMf,oBAAoB,CAACgB,OAAO,CAAC;QAAEC,KAAK,EAAEF;MAAK,CAAC,CAAC;MACnD,MAAMN,MAAM,GAAG,MAAMV,iBAAiB,CAACU,MAAM,CAACS,YAAY,CAAC;QAAEH;MAAK,CAAC,CAAC;MACpE,MAAMb,mBAAmB,CAACc,OAAO,CAAC;QAAEP;MAAO,CAAC,CAAC;MAC7C,OAAOA,MAAM;IACjB,CAAC;IACD,MAAMU,MAAMA,CAACX,EAAE,EAAEO,IAAI,EAAE;MACnB,MAAMK,QAAQ,GAAG,MAAMrB,iBAAiB,CAACU,MAAM,CAACC,SAAS,CAAC;QAAEF;MAAG,CAAC,CAAC;MACjE,MAAML,oBAAoB,CAACa,OAAO,CAAC;QAAEI,QAAQ;QAAEH,KAAK,EAAE;UAAET,EAAE;UAAEO;QAAK;MAAE,CAAC,CAAC;MACrE,MAAMN,MAAM,GAAG,MAAMV,iBAAiB,CAACU,MAAM,CAACY,YAAY,CAAC;QAAEb,EAAE;QAAEO;MAAK,CAAC,CAAC;MACxE,MAAMX,mBAAmB,CAACY,OAAO,CAAC;QAAEI,QAAQ;QAAEH,KAAK,EAAE;UAAET,EAAE;UAAEO;QAAK,CAAC;QAAEN;MAAO,CAAC,CAAC;MAC5E,OAAOA,MAAM;IACjB,CAAC;IACD,MAAMa,MAAMA,CAACd,EAAU,EAAE;MACrB,MAAMC,MAAM,GAAG,MAAMV,iBAAiB,CAACU,MAAM,CAACC,SAAS,CAAC;QAAEF;MAAG,CAAC,CAAC;MAC/D,MAAMH,oBAAoB,CAACW,OAAO,CAAC;QAAEP;MAAO,CAAC,CAAC;MAC9C,MAAMV,iBAAiB,CAACU,MAAM,CAACc,YAAY,CAAC;QAAEf;MAAG,CAAC,CAAC;MACnD,MAAMF,mBAAmB,CAACU,OAAO,CAAC;QAAEP;MAAO,CAAC,CAAC;MAC7C,OAAO,IAAI;IACf;EACJ,CAAC;AACL,CAAC;AAACe,OAAA,CAAA1B,uBAAA,GAAAA,uBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_pubsub","require","createFilterCrudMethods","storageOperations","onFilterBeforeCreate","createTopic","onFilterAfterCreate","onFilterBeforeUpdate","onFilterAfterUpdate","onFilterBeforeDelete","onFilterAfterDelete","get","id","filter","getFilter","list","params","listFilters","create","data","publish","input","createFilter","update","original","updateFilter","delete","deleteFilter","exports"],"sources":["filter.crud.ts"],"sourcesContent":["import { createTopic } from \"@webiny/pubsub\";\n\nimport type { CreateAcoParams } from \"~/types\";\nimport type {\n AcoFilterCrud,\n OnFilterAfterCreateTopicParams,\n OnFilterAfterDeleteTopicParams,\n OnFilterAfterUpdateTopicParams,\n OnFilterBeforeCreateTopicParams,\n OnFilterBeforeDeleteTopicParams,\n OnFilterBeforeUpdateTopicParams\n} from \"./filter.types\";\n\nexport const createFilterCrudMethods = ({ storageOperations }: CreateAcoParams): AcoFilterCrud => {\n // create\n const onFilterBeforeCreate = createTopic<OnFilterBeforeCreateTopicParams>(\n \"aco.onFilterBeforeCreate\"\n );\n const onFilterAfterCreate =\n createTopic<OnFilterAfterCreateTopicParams>(\"aco.onFilterAfterCreate\");\n // update\n const onFilterBeforeUpdate = createTopic<OnFilterBeforeUpdateTopicParams>(\n \"aco.onFilterBeforeUpdate\"\n );\n const onFilterAfterUpdate =\n createTopic<OnFilterAfterUpdateTopicParams>(\"aco.onFilterAfterUpdate\");\n // delete\n const onFilterBeforeDelete = createTopic<OnFilterBeforeDeleteTopicParams>(\n \"aco.onFilterBeforeDelete\"\n );\n const onFilterAfterDelete =\n createTopic<OnFilterAfterDeleteTopicParams>(\"aco.onFilterAfterDelete\");\n\n return {\n /**\n * Lifecycle events\n */\n onFilterBeforeCreate,\n onFilterAfterCreate,\n onFilterBeforeUpdate,\n onFilterAfterUpdate,\n onFilterBeforeDelete,\n onFilterAfterDelete,\n async get(id) {\n return storageOperations.filter.getFilter({ id });\n },\n async list(params) {\n return storageOperations.filter.listFilters(params);\n },\n async create(data) {\n await onFilterBeforeCreate.publish({ input: data });\n const filter = await storageOperations.filter.createFilter({ data });\n await onFilterAfterCreate.publish({ filter });\n return filter;\n },\n async update(id, data) {\n const original = await storageOperations.filter.getFilter({ id });\n await onFilterBeforeUpdate.publish({ original, input: { id, data } });\n const filter = await storageOperations.filter.updateFilter({ id, data });\n await onFilterAfterUpdate.publish({ original, input: { id, data }, filter });\n return filter;\n },\n async delete(id: string) {\n const filter = await storageOperations.filter.getFilter({ id });\n await onFilterBeforeDelete.publish({ filter });\n await storageOperations.filter.deleteFilter({ id });\n await onFilterAfterDelete.publish({ filter });\n return true;\n }\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAaO,MAAMC,uBAAuB,GAAGA,CAAC;EAAEC;AAAmC,CAAC,KAAoB;EAC9F;EACA,MAAMC,oBAAoB,GAAG,IAAAC,mBAAW,EACpC,0BACJ,CAAC;EACD,MAAMC,mBAAmB,GACrB,IAAAD,mBAAW,EAAiC,yBAAyB,CAAC;EAC1E;EACA,MAAME,oBAAoB,GAAG,IAAAF,mBAAW,EACpC,0BACJ,CAAC;EACD,MAAMG,mBAAmB,GACrB,IAAAH,mBAAW,EAAiC,yBAAyB,CAAC;EAC1E;EACA,MAAMI,oBAAoB,GAAG,IAAAJ,mBAAW,EACpC,0BACJ,CAAC;EACD,MAAMK,mBAAmB,GACrB,IAAAL,mBAAW,EAAiC,yBAAyB,CAAC;EAE1E,OAAO;IACH;AACR;AACA;IACQD,oBAAoB;IACpBE,mBAAmB;IACnBC,oBAAoB;IACpBC,mBAAmB;IACnBC,oBAAoB;IACpBC,mBAAmB;IACnB,MAAMC,GAAGA,CAACC,EAAE,EAAE;MACV,OAAOT,iBAAiB,CAACU,MAAM,CAACC,SAAS,CAAC;QAAEF;MAAG,CAAC,CAAC;IACrD,CAAC;IACD,MAAMG,IAAIA,CAACC,MAAM,EAAE;MACf,OAAOb,iBAAiB,CAACU,MAAM,CAACI,WAAW,CAACD,MAAM,CAAC;IACvD,CAAC;IACD,MAAME,MAAMA,CAACC,IAAI,EAAE;MACf,MAAMf,oBAAoB,CAACgB,OAAO,CAAC;QAAEC,KAAK,EAAEF;MAAK,CAAC,CAAC;MACnD,MAAMN,MAAM,GAAG,MAAMV,iBAAiB,CAACU,MAAM,CAACS,YAAY,CAAC;QAAEH;MAAK,CAAC,CAAC;MACpE,MAAMb,mBAAmB,CAACc,OAAO,CAAC;QAAEP;MAAO,CAAC,CAAC;MAC7C,OAAOA,MAAM;IACjB,CAAC;IACD,MAAMU,MAAMA,CAACX,EAAE,EAAEO,IAAI,EAAE;MACnB,MAAMK,QAAQ,GAAG,MAAMrB,iBAAiB,CAACU,MAAM,CAACC,SAAS,CAAC;QAAEF;MAAG,CAAC,CAAC;MACjE,MAAML,oBAAoB,CAACa,OAAO,CAAC;QAAEI,QAAQ;QAAEH,KAAK,EAAE;UAAET,EAAE;UAAEO;QAAK;MAAE,CAAC,CAAC;MACrE,MAAMN,MAAM,GAAG,MAAMV,iBAAiB,CAACU,MAAM,CAACY,YAAY,CAAC;QAAEb,EAAE;QAAEO;MAAK,CAAC,CAAC;MACxE,MAAMX,mBAAmB,CAACY,OAAO,CAAC;QAAEI,QAAQ;QAAEH,KAAK,EAAE;UAAET,EAAE;UAAEO;QAAK,CAAC;QAAEN;MAAO,CAAC,CAAC;MAC5E,OAAOA,MAAM;IACjB,CAAC;IACD,MAAMa,MAAMA,CAACd,EAAU,EAAE;MACrB,MAAMC,MAAM,GAAG,MAAMV,iBAAiB,CAACU,MAAM,CAACC,SAAS,CAAC;QAAEF;MAAG,CAAC,CAAC;MAC/D,MAAMH,oBAAoB,CAACW,OAAO,CAAC;QAAEP;MAAO,CAAC,CAAC;MAC9C,MAAMV,iBAAiB,CAACU,MAAM,CAACc,YAAY,CAAC;QAAEf;MAAG,CAAC,CAAC;MACnD,MAAMF,mBAAmB,CAACU,OAAO,CAAC;QAAEP;MAAO,CAAC,CAAC;MAC7C,OAAO,IAAI;IACf;EACJ,CAAC;AACL,CAAC;AAACe,OAAA,CAAA1B,uBAAA,GAAAA,uBAAA","ignoreList":[]}
|
package/filter/filter.gql.d.ts
CHANGED
package/filter/filter.gql.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_responses","require","_GraphQLSchemaPlugin","_ensureAuthentication","_resolve","filterSchema","exports","GraphQLSchemaPlugin","typeDefs","resolvers","AcoQuery","getFilter","_","id","context","resolve","ensureAuthentication","aco","filter","get","listFilters","args","entries","meta","list","ListResponse","e","ErrorResponse","AcoMutation","createFilter","data","create","updateFilter","update","deleteFilter","delete"],"sources":["filter.gql.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/handler-graphql/responses\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\n\nimport { ensureAuthentication } from \"~/utils/ensureAuthentication\";\nimport { resolve } from \"~/utils/resolve\";\n\nimport { AcoContext } from \"~/types\";\n\nexport const filterSchema = new GraphQLSchemaPlugin<AcoContext>({\n typeDefs: /* GraphQL */ `\n enum OperationEnum {\n AND\n OR\n }\n\n type GroupFilter {\n field: String!\n condition: String!\n value: String!\n }\n\n type Group {\n operation: OperationEnum!\n filters: [GroupFilter]!\n }\n\n type Filter {\n id: ID!\n name: String!\n description: String\n namespace: String!\n operation: OperationEnum!\n groups: [Group]!\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n createdBy: AcoUser\n modifiedBy: AcoUser\n savedBy: AcoUser\n }\n\n input GroupFilterInput {\n field: String!\n condition: String!\n value: String!\n }\n\n input GroupInput {\n operation: OperationEnum!\n filters: [GroupFilterInput]!\n }\n\n input FilterCreateInput {\n id: ID!\n name: String!\n description: String\n namespace: String!\n operation: OperationEnum!\n groups: [GroupInput]!\n }\n\n input FilterUpdateInput {\n name: String\n description: String\n namespace: String\n operation: OperationEnum\n groups: [GroupInput]\n }\n\n input FiltersListWhereInput {\n namespace: String\n }\n\n type FilterResponse {\n data: Filter\n error: AcoError\n }\n\n type FilterListResponse {\n data: [Filter]\n error: AcoError\n }\n\n extend type AcoQuery {\n getFilter(id: ID!): FilterResponse\n listFilters(\n where: FiltersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FilterListResponse\n }\n\n extend type AcoMutation {\n createFilter(data: FilterCreateInput!): FilterResponse\n updateFilter(id: ID!, data: FilterUpdateInput!): FilterResponse\n deleteFilter(id: ID!): AcoBooleanResponse\n }\n `,\n resolvers: {\n AcoQuery: {\n getFilter: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.get(id);\n });\n },\n listFilters: async (_, args: any, context) => {\n try {\n ensureAuthentication(context);\n const [entries, meta] = await context.aco.filter.list(args);\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n AcoMutation: {\n createFilter: async (_, { data }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.create(data);\n });\n },\n updateFilter: async (_, { id, data }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.update(id, data);\n });\n },\n deleteFilter: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.delete(id);\n });\n }\n }\n }\n});\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAEA,IAAAE,qBAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAIO,MAAMI,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,IAAIE,wCAAmB,CAAa;EAC5DC,QAAQ,EAAE,aAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;EACDC,SAAS,EAAE;IACPC,QAAQ,EAAE;MACNC,SAAS,EAAE,MAAAA,CAAOC,CAAC,EAAE;QAAEC;MAAG,CAAC,EAAEC,OAAO,KAAK;QACrC,OAAO,IAAAC,gBAAO,EAAC,MAAM;UACjB,IAAAC,0CAAoB,EAACF,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACG,GAAG,CAACC,MAAM,CAACC,GAAG,CAACN,EAAE,CAAC;QACrC,CAAC,CAAC;MACN,CAAC;MACDO,WAAW,EAAE,MAAAA,CAAOR,CAAC,EAAES,IAAS,EAAEP,OAAO,KAAK;QAC1C,IAAI;UACA,IAAAE,0CAAoB,EAACF,OAAO,CAAC;UAC7B,MAAM,CAACQ,OAAO,EAAEC,IAAI,CAAC,GAAG,MAAMT,OAAO,CAACG,GAAG,CAACC,MAAM,CAACM,IAAI,CAACH,IAAI,CAAC;UAC3D,OAAO,IAAII,uBAAY,CAACH,OAAO,EAAEC,IAAI,CAAC;QAC1C,CAAC,CAAC,OAAOG,CAAC,EAAE;UACR,OAAO,IAAIC,wBAAa,CAACD,CAAC,CAAC;QAC/B;MACJ;IACJ,CAAC;IACDE,WAAW,EAAE;MACTC,YAAY,EAAE,MAAAA,CAAOjB,CAAC,EAAE;QAAEkB;MAAK,CAAC,EAAEhB,OAAO,KAAK;QAC1C,OAAO,IAAAC,gBAAO,EAAC,MAAM;UACjB,IAAAC,0CAAoB,EAACF,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACG,GAAG,CAACC,MAAM,CAACa,MAAM,CAACD,IAAI,CAAC;QAC1C,CAAC,CAAC;MACN,CAAC;MACDE,YAAY,EAAE,MAAAA,CAAOpB,CAAC,EAAE;QAAEC,EAAE;QAAEiB;MAAK,CAAC,EAAEhB,OAAO,KAAK;QAC9C,OAAO,IAAAC,gBAAO,EAAC,MAAM;UACjB,IAAAC,0CAAoB,EAACF,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACG,GAAG,CAACC,MAAM,CAACe,MAAM,CAACpB,EAAE,EAAEiB,IAAI,CAAC;QAC9C,CAAC,CAAC;MACN,CAAC;MACDI,YAAY,EAAE,MAAAA,CAAOtB,CAAC,EAAE;QAAEC;MAAG,CAAC,EAAEC,OAAO,KAAK;QACxC,OAAO,IAAAC,gBAAO,EAAC,MAAM;UACjB,IAAAC,0CAAoB,EAACF,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACG,GAAG,CAACC,MAAM,CAACiB,MAAM,CAACtB,EAAE,CAAC;QACxC,CAAC,CAAC;MACN;IACJ;EACJ;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_responses","require","_GraphQLSchemaPlugin","_ensureAuthentication","_resolve","filterSchema","exports","GraphQLSchemaPlugin","typeDefs","resolvers","AcoQuery","getFilter","_","id","context","resolve","ensureAuthentication","aco","filter","get","listFilters","args","entries","meta","list","ListResponse","e","ErrorResponse","AcoMutation","createFilter","data","create","updateFilter","update","deleteFilter","delete"],"sources":["filter.gql.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/handler-graphql/responses\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\n\nimport { ensureAuthentication } from \"~/utils/ensureAuthentication\";\nimport { resolve } from \"~/utils/resolve\";\n\nimport type { AcoContext } from \"~/types\";\n\nexport const filterSchema = new GraphQLSchemaPlugin<AcoContext>({\n typeDefs: /* GraphQL */ `\n enum OperationEnum {\n AND\n OR\n }\n\n type GroupFilter {\n field: String!\n condition: String!\n value: String!\n }\n\n type Group {\n operation: OperationEnum!\n filters: [GroupFilter]!\n }\n\n type Filter {\n id: ID!\n name: String!\n description: String\n namespace: String!\n operation: OperationEnum!\n groups: [Group]!\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n createdBy: AcoUser\n modifiedBy: AcoUser\n savedBy: AcoUser\n }\n\n input GroupFilterInput {\n field: String!\n condition: String!\n value: String!\n }\n\n input GroupInput {\n operation: OperationEnum!\n filters: [GroupFilterInput]!\n }\n\n input FilterCreateInput {\n id: ID!\n name: String!\n description: String\n namespace: String!\n operation: OperationEnum!\n groups: [GroupInput]!\n }\n\n input FilterUpdateInput {\n name: String\n description: String\n namespace: String\n operation: OperationEnum\n groups: [GroupInput]\n }\n\n input FiltersListWhereInput {\n namespace: String\n }\n\n type FilterResponse {\n data: Filter\n error: AcoError\n }\n\n type FilterListResponse {\n data: [Filter]\n error: AcoError\n }\n\n extend type AcoQuery {\n getFilter(id: ID!): FilterResponse\n listFilters(\n where: FiltersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FilterListResponse\n }\n\n extend type AcoMutation {\n createFilter(data: FilterCreateInput!): FilterResponse\n updateFilter(id: ID!, data: FilterUpdateInput!): FilterResponse\n deleteFilter(id: ID!): AcoBooleanResponse\n }\n `,\n resolvers: {\n AcoQuery: {\n getFilter: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.get(id);\n });\n },\n listFilters: async (_, args: any, context) => {\n try {\n ensureAuthentication(context);\n const [entries, meta] = await context.aco.filter.list(args);\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n AcoMutation: {\n createFilter: async (_, { data }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.create(data);\n });\n },\n updateFilter: async (_, { id, data }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.update(id, data);\n });\n },\n deleteFilter: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.delete(id);\n });\n }\n }\n }\n});\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAEA,IAAAE,qBAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAIO,MAAMI,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,IAAIE,wCAAmB,CAAa;EAC5DC,QAAQ,EAAE,aAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;EACDC,SAAS,EAAE;IACPC,QAAQ,EAAE;MACNC,SAAS,EAAE,MAAAA,CAAOC,CAAC,EAAE;QAAEC;MAAG,CAAC,EAAEC,OAAO,KAAK;QACrC,OAAO,IAAAC,gBAAO,EAAC,MAAM;UACjB,IAAAC,0CAAoB,EAACF,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACG,GAAG,CAACC,MAAM,CAACC,GAAG,CAACN,EAAE,CAAC;QACrC,CAAC,CAAC;MACN,CAAC;MACDO,WAAW,EAAE,MAAAA,CAAOR,CAAC,EAAES,IAAS,EAAEP,OAAO,KAAK;QAC1C,IAAI;UACA,IAAAE,0CAAoB,EAACF,OAAO,CAAC;UAC7B,MAAM,CAACQ,OAAO,EAAEC,IAAI,CAAC,GAAG,MAAMT,OAAO,CAACG,GAAG,CAACC,MAAM,CAACM,IAAI,CAACH,IAAI,CAAC;UAC3D,OAAO,IAAII,uBAAY,CAACH,OAAO,EAAEC,IAAI,CAAC;QAC1C,CAAC,CAAC,OAAOG,CAAC,EAAE;UACR,OAAO,IAAIC,wBAAa,CAACD,CAAC,CAAC;QAC/B;MACJ;IACJ,CAAC;IACDE,WAAW,EAAE;MACTC,YAAY,EAAE,MAAAA,CAAOjB,CAAC,EAAE;QAAEkB;MAAK,CAAC,EAAEhB,OAAO,KAAK;QAC1C,OAAO,IAAAC,gBAAO,EAAC,MAAM;UACjB,IAAAC,0CAAoB,EAACF,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACG,GAAG,CAACC,MAAM,CAACa,MAAM,CAACD,IAAI,CAAC;QAC1C,CAAC,CAAC;MACN,CAAC;MACDE,YAAY,EAAE,MAAAA,CAAOpB,CAAC,EAAE;QAAEC,EAAE;QAAEiB;MAAK,CAAC,EAAEhB,OAAO,KAAK;QAC9C,OAAO,IAAAC,gBAAO,EAAC,MAAM;UACjB,IAAAC,0CAAoB,EAACF,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACG,GAAG,CAACC,MAAM,CAACe,MAAM,CAACpB,EAAE,EAAEiB,IAAI,CAAC;QAC9C,CAAC,CAAC;MACN,CAAC;MACDI,YAAY,EAAE,MAAAA,CAAOtB,CAAC,EAAE;QAAEC;MAAG,CAAC,EAAEC,OAAO,KAAK;QACxC,OAAO,IAAAC,gBAAO,EAAC,MAAM;UACjB,IAAAC,0CAAoB,EAACF,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACG,GAAG,CAACC,MAAM,CAACiB,MAAM,CAACtB,EAAE,CAAC;QACxC,CAAC,CAAC;MACN;IACJ;EACJ;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_createModelField","require","_apiHeadlessCms","name","createModelField","label","fieldId","type","validation","message","description","namespace","operation","predefinedValues","enabled","values","value","multipleValues","groups","fields","settings","layout","map","field","storageId","listValidation","filters","condition","FILTER_MODEL_ID","exports","createFilterModel","createPrivateModel","modelId","titleFieldId"],"sources":["filter.model.ts"],"sourcesContent":["import { createModelField } from \"~/utils/createModelField\";\nimport { createPrivateModel } from \"@webiny/api-headless-cms\";\nimport { CmsModelField } from \"@webiny/api-headless-cms/types\";\n\nconst name = () =>\n createModelField({\n label: \"Name\",\n fieldId: \"name\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst description = () =>\n createModelField({\n label: \"Description\",\n fieldId: \"description\",\n type: \"text\"\n });\n\nconst namespace = () =>\n createModelField({\n label: \"Model Id\",\n fieldId: \"namespace\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst operation = () =>\n createModelField({\n label: \"Operation\",\n fieldId: \"operation\",\n type: \"text\",\n predefinedValues: {\n enabled: true,\n values: [\n {\n label: \"AND\",\n value: \"AND\"\n },\n {\n label: \"OR\",\n value: \"OR\"\n }\n ]\n },\n multipleValues: false,\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst groups = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Groups\",\n fieldId: \"groups\",\n type: \"object\",\n multipleValues: true,\n settings: {\n fields,\n layout: fields.map(field => [field.storageId])\n },\n listValidation: [\n {\n name: \"minLength\",\n message: \"At least one group is required.\",\n settings: {\n value: \"1\"\n }\n }\n ]\n });\n\nconst filters = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Filters\",\n fieldId: \"filters\",\n type: \"object\",\n multipleValues: true,\n settings: {\n fields,\n layout: fields.map(field => [field.storageId])\n },\n listValidation: [\n {\n name: \"minLength\",\n message: \"At least one filter is required.\",\n settings: {\n value: \"1\"\n }\n }\n ]\n });\n\nconst field = () =>\n createModelField({\n label: \"Field\",\n fieldId: \"field\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst condition = () =>\n createModelField({\n label: \"Condition\",\n fieldId: \"condition\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst value = () =>\n createModelField({\n label: \"Value\",\n fieldId: \"value\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nexport const FILTER_MODEL_ID = \"acoFilter\";\n\nexport const createFilterModel = () => {\n return createPrivateModel({\n name: \"ACO - Filter\",\n modelId: FILTER_MODEL_ID,\n titleFieldId: \"name\",\n fields: [\n name(),\n description(),\n namespace(),\n operation(),\n groups([operation(), filters([field(), condition(), value()])])\n ]\n });\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_createModelField","require","_apiHeadlessCms","name","createModelField","label","fieldId","type","validation","message","description","namespace","operation","predefinedValues","enabled","values","value","multipleValues","groups","fields","settings","layout","map","field","storageId","listValidation","filters","condition","FILTER_MODEL_ID","exports","createFilterModel","createPrivateModel","modelId","titleFieldId"],"sources":["filter.model.ts"],"sourcesContent":["import { createModelField } from \"~/utils/createModelField\";\nimport { createPrivateModel } from \"@webiny/api-headless-cms\";\nimport type { CmsModelField } from \"@webiny/api-headless-cms/types\";\n\nconst name = () =>\n createModelField({\n label: \"Name\",\n fieldId: \"name\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst description = () =>\n createModelField({\n label: \"Description\",\n fieldId: \"description\",\n type: \"text\"\n });\n\nconst namespace = () =>\n createModelField({\n label: \"Model Id\",\n fieldId: \"namespace\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst operation = () =>\n createModelField({\n label: \"Operation\",\n fieldId: \"operation\",\n type: \"text\",\n predefinedValues: {\n enabled: true,\n values: [\n {\n label: \"AND\",\n value: \"AND\"\n },\n {\n label: \"OR\",\n value: \"OR\"\n }\n ]\n },\n multipleValues: false,\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst groups = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Groups\",\n fieldId: \"groups\",\n type: \"object\",\n multipleValues: true,\n settings: {\n fields,\n layout: fields.map(field => [field.storageId])\n },\n listValidation: [\n {\n name: \"minLength\",\n message: \"At least one group is required.\",\n settings: {\n value: \"1\"\n }\n }\n ]\n });\n\nconst filters = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Filters\",\n fieldId: \"filters\",\n type: \"object\",\n multipleValues: true,\n settings: {\n fields,\n layout: fields.map(field => [field.storageId])\n },\n listValidation: [\n {\n name: \"minLength\",\n message: \"At least one filter is required.\",\n settings: {\n value: \"1\"\n }\n }\n ]\n });\n\nconst field = () =>\n createModelField({\n label: \"Field\",\n fieldId: \"field\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst condition = () =>\n createModelField({\n label: \"Condition\",\n fieldId: \"condition\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst value = () =>\n createModelField({\n label: \"Value\",\n fieldId: \"value\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nexport const FILTER_MODEL_ID = \"acoFilter\";\n\nexport const createFilterModel = () => {\n return createPrivateModel({\n name: \"ACO - Filter\",\n modelId: FILTER_MODEL_ID,\n titleFieldId: \"name\",\n fields: [\n name(),\n description(),\n namespace(),\n operation(),\n groups([operation(), filters([field(), condition(), value()])])\n ]\n });\n};\n"],"mappings":"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","ignoreList":[]}
|
package/filter/filter.so.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { CreateAcoStorageOperationsParams } from "../createAcoStorageOperations";
|
|
2
|
-
import { AcoFilterStorageOperations } from "./filter.types";
|
|
1
|
+
import type { CreateAcoStorageOperationsParams } from "../createAcoStorageOperations";
|
|
2
|
+
import type { AcoFilterStorageOperations } from "./filter.types";
|
|
3
3
|
export declare const createFilterOperations: (params: CreateAcoStorageOperationsParams) => AcoFilterStorageOperations;
|
package/filter/filter.so.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_omit","_interopRequireDefault","require","_error","_filter","_createListSort","_createOperationsWrapper","_pickEntryFieldValues","_constants","createFilterOperations","params","cms","security","withModel","createOperationsWrapper","modelName","FILTER_MODEL_ID","getFilter","id","model","entry","getEntryById","WebinyError","pickEntryFieldValues","listFilters","sort","where","createdBy","getIdentity","entries","meta","listLatestEntries","createListSort","map","createFilter","data","createEntry","updateFilter","original","input","omit","ENTRY_META_FIELDS","updateEntry","deleteFilter","deleteEntry","exports"],"sources":["filter.so.ts"],"sourcesContent":["import omit from \"lodash/omit\";\nimport WebinyError from \"@webiny/error\";\nimport { FILTER_MODEL_ID } from \"./filter.model\";\nimport { CreateAcoStorageOperationsParams } from \"~/createAcoStorageOperations\";\nimport { createListSort } from \"~/utils/createListSort\";\nimport { createOperationsWrapper } from \"~/utils/createOperationsWrapper\";\nimport { pickEntryFieldValues } from \"~/utils/pickEntryFieldValues\";\nimport { AcoFilterStorageOperations, Filter } from \"./filter.types\";\nimport { ENTRY_META_FIELDS } from \"@webiny/api-headless-cms/constants\";\n\nexport const createFilterOperations = (\n params: CreateAcoStorageOperationsParams\n): AcoFilterStorageOperations => {\n const { cms, security } = params;\n\n const { withModel } = createOperationsWrapper({\n ...params,\n modelName: FILTER_MODEL_ID\n });\n\n return {\n getFilter({ id }) {\n return withModel(async model => {\n const entry = await cms.getEntryById(model, id);\n\n if (!entry) {\n throw new WebinyError(\"Could not load filter.\", \"GET_FILTER_ERROR\", {\n id\n });\n }\n\n return pickEntryFieldValues(entry);\n });\n },\n listFilters(params) {\n return withModel(async model => {\n const { sort, where } = params;\n const createdBy = security.getIdentity().id;\n\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n sort: createListSort(sort),\n where: {\n ...({ ...where, createdBy } || {})\n }\n });\n\n return [entries.map(pickEntryFieldValues<Filter>), meta];\n });\n },\n createFilter({ data }) {\n return withModel(async model => {\n const entry = await cms.createEntry(model, data);\n return pickEntryFieldValues(entry);\n });\n },\n updateFilter({ id, data }) {\n return withModel(async model => {\n const original = await cms.getEntryById(model, id);\n\n const input = {\n /**\n * We are omitting the standard entry meta fields:\n * we don't want to override them with the ones coming from the `original` entry.\n */\n ...omit(original, ENTRY_META_FIELDS),\n ...data\n };\n\n const entry = await cms.updateEntry(model, original.id, input);\n return pickEntryFieldValues(entry);\n });\n },\n deleteFilter({ id }) {\n return withModel(async model => {\n await cms.deleteEntry(model, id);\n return true;\n });\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_omit","_interopRequireDefault","require","_error","_filter","_createListSort","_createOperationsWrapper","_pickEntryFieldValues","_constants","createFilterOperations","params","cms","security","withModel","createOperationsWrapper","modelName","FILTER_MODEL_ID","getFilter","id","model","entry","getEntryById","WebinyError","pickEntryFieldValues","listFilters","sort","where","createdBy","getIdentity","entries","meta","listLatestEntries","createListSort","map","createFilter","data","createEntry","updateFilter","original","input","omit","ENTRY_META_FIELDS","updateEntry","deleteFilter","deleteEntry","exports"],"sources":["filter.so.ts"],"sourcesContent":["import omit from \"lodash/omit\";\nimport WebinyError from \"@webiny/error\";\nimport { FILTER_MODEL_ID } from \"./filter.model\";\nimport type { CreateAcoStorageOperationsParams } from \"~/createAcoStorageOperations\";\nimport { createListSort } from \"~/utils/createListSort\";\nimport { createOperationsWrapper } from \"~/utils/createOperationsWrapper\";\nimport { pickEntryFieldValues } from \"~/utils/pickEntryFieldValues\";\nimport type { AcoFilterStorageOperations, Filter } from \"./filter.types\";\nimport { ENTRY_META_FIELDS } from \"@webiny/api-headless-cms/constants\";\n\nexport const createFilterOperations = (\n params: CreateAcoStorageOperationsParams\n): AcoFilterStorageOperations => {\n const { cms, security } = params;\n\n const { withModel } = createOperationsWrapper({\n ...params,\n modelName: FILTER_MODEL_ID\n });\n\n return {\n getFilter({ id }) {\n return withModel(async model => {\n const entry = await cms.getEntryById(model, id);\n\n if (!entry) {\n throw new WebinyError(\"Could not load filter.\", \"GET_FILTER_ERROR\", {\n id\n });\n }\n\n return pickEntryFieldValues(entry);\n });\n },\n listFilters(params) {\n return withModel(async model => {\n const { sort, where } = params;\n const createdBy = security.getIdentity().id;\n\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n sort: createListSort(sort),\n where: {\n ...({ ...where, createdBy } || {})\n }\n });\n\n return [entries.map(pickEntryFieldValues<Filter>), meta];\n });\n },\n createFilter({ data }) {\n return withModel(async model => {\n const entry = await cms.createEntry(model, data);\n return pickEntryFieldValues(entry);\n });\n },\n updateFilter({ id, data }) {\n return withModel(async model => {\n const original = await cms.getEntryById(model, id);\n\n const input = {\n /**\n * We are omitting the standard entry meta fields:\n * we don't want to override them with the ones coming from the `original` entry.\n */\n ...omit(original, ENTRY_META_FIELDS),\n ...data\n };\n\n const entry = await cms.updateEntry(model, original.id, input);\n return pickEntryFieldValues(entry);\n });\n },\n deleteFilter({ id }) {\n return withModel(async model => {\n await cms.deleteEntry(model, id);\n return true;\n });\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
package/filter/filter.types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AcoBaseFields, ListMeta, ListSort } from "../types";
|
|
2
|
-
import { Topic } from "@webiny/pubsub/types";
|
|
1
|
+
import type { AcoBaseFields, ListMeta, ListSort } from "../types";
|
|
2
|
+
import type { Topic } from "@webiny/pubsub/types";
|
|
3
3
|
export declare enum Operation {
|
|
4
4
|
AND = "AND",
|
|
5
5
|
OR = "OR"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Operation","exports"],"sources":["filter.types.ts"],"sourcesContent":["import { AcoBaseFields, ListMeta, ListSort } from \"~/types\";\nimport { Topic } from \"@webiny/pubsub/types\";\n\nexport enum Operation {\n AND = \"AND\",\n OR = \"OR\"\n}\n\nexport interface GroupFilter {\n field: string;\n condition: string;\n value: string;\n}\n\nexport interface Group {\n operation: Operation;\n filters: GroupFilter[];\n}\n\nexport interface Filter extends AcoBaseFields {\n name: string;\n description?: string;\n namespace: string;\n operation: Operation;\n groups: Group[];\n}\n\nexport interface ListFiltersWhere {\n namespace: string;\n}\n\nexport interface ListFiltersParams {\n where: ListFiltersWhere;\n sort?: ListSort;\n limit?: number;\n after?: string | null;\n}\n\nexport type CreateFilterParams = Pick<\n Filter,\n \"id\" | \"name\" | \"description\" | \"namespace\" | \"operation\" | \"groups\"\n>;\n\nexport interface UpdateFilterParams {\n name?: string;\n description?: string;\n namespace?: string;\n operation?: Operation;\n groups?: Group[];\n}\n\nexport interface DeleteFilterParams {\n id: string;\n}\n\nexport interface StorageOperationsGetFilterParams {\n id: string;\n}\n\nexport type StorageOperationsListFiltersParams = ListFiltersParams;\n\nexport interface StorageOperationsCreateFilterParams {\n data: CreateFilterParams;\n}\n\nexport interface StorageOperationsUpdateFilterParams {\n id: string;\n data: UpdateFilterParams;\n}\n\nexport type StorageOperationsDeleteFilterParams = DeleteFilterParams;\n\nexport interface OnFilterBeforeCreateTopicParams {\n input: CreateFilterParams;\n}\n\nexport interface OnFilterAfterCreateTopicParams {\n filter: Filter;\n}\n\nexport interface OnFilterBeforeUpdateTopicParams {\n original: Filter;\n input: Record<string, any>;\n}\n\nexport interface OnFilterAfterUpdateTopicParams {\n original: Filter;\n filter: Filter;\n input: Record<string, any>;\n}\n\nexport interface OnFilterBeforeDeleteTopicParams {\n filter: Filter;\n}\n\nexport interface OnFilterAfterDeleteTopicParams {\n filter: Filter;\n}\n\nexport interface AcoFilterCrud {\n get(id: string): Promise<Filter>;\n list(params: ListFiltersParams): Promise<[Filter[], ListMeta]>;\n create(data: CreateFilterParams): Promise<Filter>;\n update(id: string, data: UpdateFilterParams): Promise<Filter>;\n delete(id: string): Promise<boolean>;\n onFilterBeforeCreate: Topic<OnFilterBeforeCreateTopicParams>;\n onFilterAfterCreate: Topic<OnFilterAfterCreateTopicParams>;\n onFilterBeforeUpdate: Topic<OnFilterBeforeUpdateTopicParams>;\n onFilterAfterUpdate: Topic<OnFilterAfterUpdateTopicParams>;\n onFilterBeforeDelete: Topic<OnFilterBeforeDeleteTopicParams>;\n onFilterAfterDelete: Topic<OnFilterAfterDeleteTopicParams>;\n}\n\nexport interface AcoFilterStorageOperations {\n getFilter(params: StorageOperationsGetFilterParams): Promise<Filter>;\n listFilters(params: StorageOperationsListFiltersParams): Promise<[Filter[], ListMeta]>;\n createFilter(params: StorageOperationsCreateFilterParams): Promise<Filter>;\n updateFilter(params: StorageOperationsUpdateFilterParams): Promise<Filter>;\n deleteFilter(params: StorageOperationsDeleteFilterParams): Promise<boolean>;\n}\n"],"mappings":";;;;;;IAGYA,SAAS,GAAAC,OAAA,CAAAD,SAAA,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Operation","exports"],"sources":["filter.types.ts"],"sourcesContent":["import type { AcoBaseFields, ListMeta, ListSort } from \"~/types\";\nimport type { Topic } from \"@webiny/pubsub/types\";\n\nexport enum Operation {\n AND = \"AND\",\n OR = \"OR\"\n}\n\nexport interface GroupFilter {\n field: string;\n condition: string;\n value: string;\n}\n\nexport interface Group {\n operation: Operation;\n filters: GroupFilter[];\n}\n\nexport interface Filter extends AcoBaseFields {\n name: string;\n description?: string;\n namespace: string;\n operation: Operation;\n groups: Group[];\n}\n\nexport interface ListFiltersWhere {\n namespace: string;\n}\n\nexport interface ListFiltersParams {\n where: ListFiltersWhere;\n sort?: ListSort;\n limit?: number;\n after?: string | null;\n}\n\nexport type CreateFilterParams = Pick<\n Filter,\n \"id\" | \"name\" | \"description\" | \"namespace\" | \"operation\" | \"groups\"\n>;\n\nexport interface UpdateFilterParams {\n name?: string;\n description?: string;\n namespace?: string;\n operation?: Operation;\n groups?: Group[];\n}\n\nexport interface DeleteFilterParams {\n id: string;\n}\n\nexport interface StorageOperationsGetFilterParams {\n id: string;\n}\n\nexport type StorageOperationsListFiltersParams = ListFiltersParams;\n\nexport interface StorageOperationsCreateFilterParams {\n data: CreateFilterParams;\n}\n\nexport interface StorageOperationsUpdateFilterParams {\n id: string;\n data: UpdateFilterParams;\n}\n\nexport type StorageOperationsDeleteFilterParams = DeleteFilterParams;\n\nexport interface OnFilterBeforeCreateTopicParams {\n input: CreateFilterParams;\n}\n\nexport interface OnFilterAfterCreateTopicParams {\n filter: Filter;\n}\n\nexport interface OnFilterBeforeUpdateTopicParams {\n original: Filter;\n input: Record<string, any>;\n}\n\nexport interface OnFilterAfterUpdateTopicParams {\n original: Filter;\n filter: Filter;\n input: Record<string, any>;\n}\n\nexport interface OnFilterBeforeDeleteTopicParams {\n filter: Filter;\n}\n\nexport interface OnFilterAfterDeleteTopicParams {\n filter: Filter;\n}\n\nexport interface AcoFilterCrud {\n get(id: string): Promise<Filter>;\n list(params: ListFiltersParams): Promise<[Filter[], ListMeta]>;\n create(data: CreateFilterParams): Promise<Filter>;\n update(id: string, data: UpdateFilterParams): Promise<Filter>;\n delete(id: string): Promise<boolean>;\n onFilterBeforeCreate: Topic<OnFilterBeforeCreateTopicParams>;\n onFilterAfterCreate: Topic<OnFilterAfterCreateTopicParams>;\n onFilterBeforeUpdate: Topic<OnFilterBeforeUpdateTopicParams>;\n onFilterAfterUpdate: Topic<OnFilterAfterUpdateTopicParams>;\n onFilterBeforeDelete: Topic<OnFilterBeforeDeleteTopicParams>;\n onFilterAfterDelete: Topic<OnFilterAfterDeleteTopicParams>;\n}\n\nexport interface AcoFilterStorageOperations {\n getFilter(params: StorageOperationsGetFilterParams): Promise<Filter>;\n listFilters(params: StorageOperationsListFiltersParams): Promise<[Filter[], ListMeta]>;\n createFilter(params: StorageOperationsCreateFilterParams): Promise<Filter>;\n updateFilter(params: StorageOperationsUpdateFilterParams): Promise<Filter>;\n deleteFilter(params: StorageOperationsDeleteFilterParams): Promise<boolean>;\n}\n"],"mappings":";;;;;;IAGYA,SAAS,GAAAC,OAAA,CAAAD,SAAA,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA","ignoreList":[]}
|
package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { FolderPermission } from "../../../flp.types";
|
|
2
|
-
import { Identity } from "@webiny/api-authentication/types";
|
|
3
|
-
import { SecurityPermission } from "@webiny/api-security/types";
|
|
2
|
+
import type { Identity } from "@webiny/api-authentication/types";
|
|
3
|
+
import type { SecurityPermission } from "@webiny/api-security/types";
|
|
4
4
|
export declare class DefaultPermissionsMerger {
|
|
5
5
|
static merge(identity: Identity, identityPermissions: SecurityPermission[], folderPermissions: FolderPermission[]): FolderPermission[];
|
|
6
6
|
}
|
package/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DefaultPermissionsMerger","merge","identity","identityPermissions","folderPermissions","hasFullAccess","some","p","name","target","id","level","inheritedFrom","filter","length","currentAdminPermissions","noAccessPermission","find","filteredPermissions","firstAdminPermission","restAdminPermissions","resultPermission","reduce","winner","current","winnerInherits","startsWith","currentInherits","exports"],"sources":["DefaultPermissionsMerger.ts"],"sourcesContent":["import type { FolderAccessLevel, FolderPermission } from \"~/flp/flp.types\";\nimport { Identity } from \"@webiny/api-authentication/types\";\nimport { SecurityPermission } from \"@webiny/api-security/types\";\n\nexport class DefaultPermissionsMerger {\n static merge(\n identity: Identity,\n identityPermissions: SecurityPermission[],\n folderPermissions: FolderPermission[]\n ): FolderPermission[] {\n // If the user has full access permission, add a specific \"owner\" permission to the list.\n // This ensures the user has complete control over the folder.\n const hasFullAccess = identityPermissions.some(p => p.name === \"*\");\n if (hasFullAccess) {\n return [\n {\n target: `admin:${identity.id}`,\n level: \"owner\" as FolderAccessLevel,\n inheritedFrom: \"role:full-access\"\n },\n\n // Remove any permissions related to the full access user,\n // as these are always superseded by the \"owner\" permission defined above.\n ...folderPermissions.filter(p => p.target !== `admin:${identity.id}`)\n ];\n }\n\n if (folderPermissions.length === 0) {\n // No permissions provided. This means the folder is public.\n // Add a specific \"public\" permission to the list to ensure the folder is accessible to everyone.\n return [\n {\n target: `admin:${identity.id}`,\n level: \"public\" as FolderAccessLevel,\n inheritedFrom: \"public\"\n }\n ];\n }\n\n // If there are multiple `admin:${identity.id}` permissions in the array,\n // we need to pick the one with the highest access level. We also remove\n // other permissions for the same identity.\n\n // Get permissions related to the current identity (admin).\n const currentAdminPermissions = folderPermissions.filter(\n p => p.target === `admin:${identity.id}`\n );\n\n if (currentAdminPermissions.length === 0) {\n return folderPermissions;\n }\n\n const noAccessPermission = currentAdminPermissions.find(\n p => p.level === \"no-access\" && p.target === `admin:${identity.id}`\n );\n\n if (noAccessPermission) {\n // If one of the permissions is `no-access`, then we can immediately return it. This is\n // because `no-access` is the ultimate level of access, and no other permission can override it.\n // Remove all permissions for the current identity and add the winning one.\n const filteredPermissions = folderPermissions.filter(\n p => p.target !== `admin:${identity.id}`\n );\n\n return [...filteredPermissions, noAccessPermission];\n }\n\n const [firstAdminPermission, ...restAdminPermissions] = currentAdminPermissions;\n\n const resultPermission = restAdminPermissions.reduce((winner, current) => {\n const winnerInherits = winner.inheritedFrom?.startsWith(\"parent:\");\n const currentInherits = current.inheritedFrom?.startsWith(\"parent:\");\n\n if (winnerInherits && !currentInherits) {\n return current;\n }\n if (currentInherits && !winnerInherits) {\n return winner;\n }\n\n // At this point, we're either comparing two permissions with `inheritedFrom` or two without it.\n // In other words, we're now at a point where we start comparing the levels (owner > editor > viewer).\n if (current.level === \"owner\") {\n return current;\n }\n\n if (current.level === \"editor\" && winner.level === \"viewer\") {\n return current;\n }\n\n return winner;\n }, firstAdminPermission);\n\n // Remove all permissions for the current identity and add the winning one.\n return [\n resultPermission,\n ...folderPermissions.filter(p => p.target !== `admin:${identity.id}`)\n ];\n }\n}\n"],"mappings":";;;;;;AAIO,MAAMA,wBAAwB,CAAC;EAClC,OAAOC,KAAKA,CACRC,QAAkB,EAClBC,mBAAyC,EACzCC,iBAAqC,EACnB;IAClB;IACA;IACA,MAAMC,aAAa,GAAGF,mBAAmB,CAACG,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,IAAI,KAAK,GAAG,CAAC;IACnE,IAAIH,aAAa,EAAE;MACf,OAAO,CACH;QACII,MAAM,EAAE,SAASP,QAAQ,CAACQ,EAAE,EAAE;QAC9BC,KAAK,EAAE,OAA4B;QACnCC,aAAa,EAAE;MACnB,CAAC;MAED;MACA;MACA,GAAGR,iBAAiB,CAACS,MAAM,CAACN,CAAC,IAAIA,CAAC,CAACE,MAAM,KAAK,SAASP,QAAQ,CAACQ,EAAE,EAAE,CAAC,CACxE;IACL;IAEA,IAAIN,iBAAiB,CAACU,MAAM,KAAK,CAAC,EAAE;MAChC;MACA;MACA,OAAO,CACH;QACIL,MAAM,EAAE,SAASP,QAAQ,CAACQ,EAAE,EAAE;QAC9BC,KAAK,EAAE,QAA6B;QACpCC,aAAa,EAAE;MACnB,CAAC,CACJ;IACL;;IAEA;IACA;IACA;;IAEA;IACA,MAAMG,uBAAuB,GAAGX,iBAAiB,CAACS,MAAM,CACpDN,CAAC,IAAIA,CAAC,CAACE,MAAM,KAAK,SAASP,QAAQ,CAACQ,EAAE,EAC1C,CAAC;IAED,IAAIK,uBAAuB,CAACD,MAAM,KAAK,CAAC,EAAE;MACtC,OAAOV,iBAAiB;IAC5B;IAEA,MAAMY,kBAAkB,GAAGD,uBAAuB,CAACE,IAAI,CACnDV,CAAC,IAAIA,CAAC,CAACI,KAAK,KAAK,WAAW,IAAIJ,CAAC,CAACE,MAAM,KAAK,SAASP,QAAQ,CAACQ,EAAE,EACrE,CAAC;IAED,IAAIM,kBAAkB,EAAE;MACpB;MACA;MACA;MACA,MAAME,mBAAmB,GAAGd,iBAAiB,CAACS,MAAM,CAChDN,CAAC,IAAIA,CAAC,CAACE,MAAM,KAAK,SAASP,QAAQ,CAACQ,EAAE,EAC1C,CAAC;MAED,OAAO,CAAC,GAAGQ,mBAAmB,EAAEF,kBAAkB,CAAC;IACvD;IAEA,MAAM,CAACG,oBAAoB,EAAE,GAAGC,oBAAoB,CAAC,GAAGL,uBAAuB;IAE/E,MAAMM,gBAAgB,GAAGD,oBAAoB,CAACE,MAAM,CAAC,CAACC,MAAM,EAAEC,OAAO,KAAK;MACtE,MAAMC,cAAc,GAAGF,MAAM,CAACX,aAAa,EAAEc,UAAU,CAAC,SAAS,CAAC;MAClE,MAAMC,eAAe,GAAGH,OAAO,CAACZ,aAAa,EAAEc,UAAU,CAAC,SAAS,CAAC;MAEpE,IAAID,cAAc,IAAI,CAACE,eAAe,EAAE;QACpC,OAAOH,OAAO;MAClB;MACA,IAAIG,eAAe,IAAI,CAACF,cAAc,EAAE;QACpC,OAAOF,MAAM;MACjB;;MAEA;MACA;MACA,IAAIC,OAAO,CAACb,KAAK,KAAK,OAAO,EAAE;QAC3B,OAAOa,OAAO;MAClB;MAEA,IAAIA,OAAO,CAACb,KAAK,KAAK,QAAQ,IAAIY,MAAM,CAACZ,KAAK,KAAK,QAAQ,EAAE;QACzD,OAAOa,OAAO;MAClB;MAEA,OAAOD,MAAM;IACjB,CAAC,EAAEJ,oBAAoB,CAAC;;IAExB;IACA,OAAO,CACHE,gBAAgB,EAChB,GAAGjB,iBAAiB,CAACS,MAAM,CAACN,CAAC,IAAIA,CAAC,CAACE,MAAM,KAAK,SAASP,QAAQ,CAACQ,EAAE,EAAE,CAAC,CACxE;EACL;AACJ;AAACkB,OAAA,CAAA5B,wBAAA,GAAAA,wBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["DefaultPermissionsMerger","merge","identity","identityPermissions","folderPermissions","hasFullAccess","some","p","name","target","id","level","inheritedFrom","filter","length","currentAdminPermissions","noAccessPermission","find","filteredPermissions","firstAdminPermission","restAdminPermissions","resultPermission","reduce","winner","current","winnerInherits","startsWith","currentInherits","exports"],"sources":["DefaultPermissionsMerger.ts"],"sourcesContent":["import type { FolderAccessLevel, FolderPermission } from \"~/flp/flp.types\";\nimport type { Identity } from \"@webiny/api-authentication/types\";\nimport type { SecurityPermission } from \"@webiny/api-security/types\";\n\nexport class DefaultPermissionsMerger {\n static merge(\n identity: Identity,\n identityPermissions: SecurityPermission[],\n folderPermissions: FolderPermission[]\n ): FolderPermission[] {\n // If the user has full access permission, add a specific \"owner\" permission to the list.\n // This ensures the user has complete control over the folder.\n const hasFullAccess = identityPermissions.some(p => p.name === \"*\");\n if (hasFullAccess) {\n return [\n {\n target: `admin:${identity.id}`,\n level: \"owner\" as FolderAccessLevel,\n inheritedFrom: \"role:full-access\"\n },\n\n // Remove any permissions related to the full access user,\n // as these are always superseded by the \"owner\" permission defined above.\n ...folderPermissions.filter(p => p.target !== `admin:${identity.id}`)\n ];\n }\n\n if (folderPermissions.length === 0) {\n // No permissions provided. This means the folder is public.\n // Add a specific \"public\" permission to the list to ensure the folder is accessible to everyone.\n return [\n {\n target: `admin:${identity.id}`,\n level: \"public\" as FolderAccessLevel,\n inheritedFrom: \"public\"\n }\n ];\n }\n\n // If there are multiple `admin:${identity.id}` permissions in the array,\n // we need to pick the one with the highest access level. We also remove\n // other permissions for the same identity.\n\n // Get permissions related to the current identity (admin).\n const currentAdminPermissions = folderPermissions.filter(\n p => p.target === `admin:${identity.id}`\n );\n\n if (currentAdminPermissions.length === 0) {\n return folderPermissions;\n }\n\n const noAccessPermission = currentAdminPermissions.find(\n p => p.level === \"no-access\" && p.target === `admin:${identity.id}`\n );\n\n if (noAccessPermission) {\n // If one of the permissions is `no-access`, then we can immediately return it. This is\n // because `no-access` is the ultimate level of access, and no other permission can override it.\n // Remove all permissions for the current identity and add the winning one.\n const filteredPermissions = folderPermissions.filter(\n p => p.target !== `admin:${identity.id}`\n );\n\n return [...filteredPermissions, noAccessPermission];\n }\n\n const [firstAdminPermission, ...restAdminPermissions] = currentAdminPermissions;\n\n const resultPermission = restAdminPermissions.reduce((winner, current) => {\n const winnerInherits = winner.inheritedFrom?.startsWith(\"parent:\");\n const currentInherits = current.inheritedFrom?.startsWith(\"parent:\");\n\n if (winnerInherits && !currentInherits) {\n return current;\n }\n if (currentInherits && !winnerInherits) {\n return winner;\n }\n\n // At this point, we're either comparing two permissions with `inheritedFrom` or two without it.\n // In other words, we're now at a point where we start comparing the levels (owner > editor > viewer).\n if (current.level === \"owner\") {\n return current;\n }\n\n if (current.level === \"editor\" && winner.level === \"viewer\") {\n return current;\n }\n\n return winner;\n }, firstAdminPermission);\n\n // Remove all permissions for the current identity and add the winning one.\n return [\n resultPermission,\n ...folderPermissions.filter(p => p.target !== `admin:${identity.id}`)\n ];\n }\n}\n"],"mappings":";;;;;;AAIO,MAAMA,wBAAwB,CAAC;EAClC,OAAOC,KAAKA,CACRC,QAAkB,EAClBC,mBAAyC,EACzCC,iBAAqC,EACnB;IAClB;IACA;IACA,MAAMC,aAAa,GAAGF,mBAAmB,CAACG,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,IAAI,KAAK,GAAG,CAAC;IACnE,IAAIH,aAAa,EAAE;MACf,OAAO,CACH;QACII,MAAM,EAAE,SAASP,QAAQ,CAACQ,EAAE,EAAE;QAC9BC,KAAK,EAAE,OAA4B;QACnCC,aAAa,EAAE;MACnB,CAAC;MAED;MACA;MACA,GAAGR,iBAAiB,CAACS,MAAM,CAACN,CAAC,IAAIA,CAAC,CAACE,MAAM,KAAK,SAASP,QAAQ,CAACQ,EAAE,EAAE,CAAC,CACxE;IACL;IAEA,IAAIN,iBAAiB,CAACU,MAAM,KAAK,CAAC,EAAE;MAChC;MACA;MACA,OAAO,CACH;QACIL,MAAM,EAAE,SAASP,QAAQ,CAACQ,EAAE,EAAE;QAC9BC,KAAK,EAAE,QAA6B;QACpCC,aAAa,EAAE;MACnB,CAAC,CACJ;IACL;;IAEA;IACA;IACA;;IAEA;IACA,MAAMG,uBAAuB,GAAGX,iBAAiB,CAACS,MAAM,CACpDN,CAAC,IAAIA,CAAC,CAACE,MAAM,KAAK,SAASP,QAAQ,CAACQ,EAAE,EAC1C,CAAC;IAED,IAAIK,uBAAuB,CAACD,MAAM,KAAK,CAAC,EAAE;MACtC,OAAOV,iBAAiB;IAC5B;IAEA,MAAMY,kBAAkB,GAAGD,uBAAuB,CAACE,IAAI,CACnDV,CAAC,IAAIA,CAAC,CAACI,KAAK,KAAK,WAAW,IAAIJ,CAAC,CAACE,MAAM,KAAK,SAASP,QAAQ,CAACQ,EAAE,EACrE,CAAC;IAED,IAAIM,kBAAkB,EAAE;MACpB;MACA;MACA;MACA,MAAME,mBAAmB,GAAGd,iBAAiB,CAACS,MAAM,CAChDN,CAAC,IAAIA,CAAC,CAACE,MAAM,KAAK,SAASP,QAAQ,CAACQ,EAAE,EAC1C,CAAC;MAED,OAAO,CAAC,GAAGQ,mBAAmB,EAAEF,kBAAkB,CAAC;IACvD;IAEA,MAAM,CAACG,oBAAoB,EAAE,GAAGC,oBAAoB,CAAC,GAAGL,uBAAuB;IAE/E,MAAMM,gBAAgB,GAAGD,oBAAoB,CAACE,MAAM,CAAC,CAACC,MAAM,EAAEC,OAAO,KAAK;MACtE,MAAMC,cAAc,GAAGF,MAAM,CAACX,aAAa,EAAEc,UAAU,CAAC,SAAS,CAAC;MAClE,MAAMC,eAAe,GAAGH,OAAO,CAACZ,aAAa,EAAEc,UAAU,CAAC,SAAS,CAAC;MAEpE,IAAID,cAAc,IAAI,CAACE,eAAe,EAAE;QACpC,OAAOH,OAAO;MAClB;MACA,IAAIG,eAAe,IAAI,CAACF,cAAc,EAAE;QACpC,OAAOF,MAAM;MACjB;;MAEA;MACA;MACA,IAAIC,OAAO,CAACb,KAAK,KAAK,OAAO,EAAE;QAC3B,OAAOa,OAAO;MAClB;MAEA,IAAIA,OAAO,CAACb,KAAK,KAAK,QAAQ,IAAIY,MAAM,CAACZ,KAAK,KAAK,QAAQ,EAAE;QACzD,OAAOa,OAAO;MAClB;MAEA,OAAOD,MAAM;IACjB,CAAC,EAAEJ,oBAAoB,CAAC;;IAExB;IACA,OAAO,CACHE,gBAAgB,EAChB,GAAGjB,iBAAiB,CAACS,MAAM,CAACN,CAAC,IAAIA,CAAC,CAACE,MAAM,KAAK,SAASP,QAAQ,CAACQ,EAAE,EAAE,CAAC,CACxE;EACL;AACJ;AAACkB,OAAA,CAAA5B,wBAAA,GAAAA,wBAAA","ignoreList":[]}
|