@webiny/api-aco 0.0.0-unstable.e53eceafb5 → 0.0.0-unstable.eb196ccd2f

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.
@@ -100,6 +100,14 @@ const createFolderTypeDefs = params => {
100
100
  type: String!
101
101
  parentId: ID
102
102
  parentId_in: [ID]
103
+ slug: String
104
+ slug_not: String
105
+ slug_contains: String
106
+ slug_not_contains: String
107
+ slug_in: [String]
108
+ slug_not_in: [String]
109
+ slug_startsWith: String
110
+ slug_not_startsWith: String
103
111
  path: String
104
112
  path_not: String
105
113
  path_contains: String
@@ -1 +1 @@
1
- {"version":3,"names":["_renderFields","require","_renderInputFields","removeFieldRequiredValidation","field","validation","filter","name","listValidation","v","createUpdateFields","fields","reduce","collection","push","createFolderTypeDefs","params","model","models","plugins","fieldTypePlugins","fieldTypes","renderFields","type","inputCreateFields","renderInputFields","inputUpdateFields","map","f","typeDefs","join","exports"],"sources":["createFolderTypeDefs.ts"],"sourcesContent":["import type { CmsFieldTypePlugins, CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields\";\nimport { renderInputFields } from \"@webiny/api-headless-cms/utils/renderInputFields\";\n\nexport interface CreateFolderTypeDefsParams {\n model: CmsModel;\n models: CmsModel[];\n plugins: CmsFieldTypePlugins;\n}\n\nconst removeFieldRequiredValidation = (field: CmsModelField) => {\n if (field.validation) {\n field.validation = field.validation.filter(validation => validation.name !== \"required\");\n }\n if (field.listValidation) {\n field.listValidation = field.listValidation.filter(v => v.name !== \"required\");\n }\n return field;\n};\n\nconst createUpdateFields = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.reduce<CmsModelField[]>((collection, field) => {\n collection.push(removeFieldRequiredValidation({ ...field }));\n return collection;\n }, []);\n};\n\nexport const createFolderTypeDefs = (params: CreateFolderTypeDefsParams): string => {\n const { model, models, plugins: fieldTypePlugins } = params;\n const { fields } = model;\n\n const fieldTypes = renderFields({\n models,\n model,\n fields,\n type: \"manage\",\n fieldTypePlugins\n });\n const inputCreateFields = renderInputFields({\n models,\n model,\n fields,\n fieldTypePlugins\n });\n const inputUpdateFields = renderInputFields({\n models,\n model,\n fields: createUpdateFields(fields),\n fieldTypePlugins\n });\n\n return /* GraphQL */ `\n ${fieldTypes.map(f => f.typeDefs).join(\"\\n\")}\n \n type CompressedResponse {\n compression: String\n value: String\n }\n\n type Folder {\n id: ID!\n # Tells us if the current user can manage folder structure.\n canManageStructure: Boolean\n\n # Tells us if the current user can manage folder permissions.\n canManagePermissions: Boolean\n\n # Tells us if the current user can manage folder content.\n canManageContent: Boolean\n\n # Tells us if the folder contains non-inherited permissions.\n hasNonInheritedPermissions: Boolean\n\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n createdBy: AcoUser\n modifiedBy: AcoUser\n savedBy: AcoUser\n \n ${fieldTypes.map(f => f.fields).join(\"\\n\")}\n }\n\n ${inputCreateFields.map(f => f.typeDefs).join(\"\\n\")}\n \n input FolderCreateInput {\n # Pass an ID if you want to create a folder with a specific ID.\n id: ID \n \n ${inputCreateFields.map(f => f.fields).join(\"\\n\")}\n }\n \n input FolderUpdateInput {\n ${inputUpdateFields.map(f => f.fields).join(\"\\n\")}\n }\n \n input FoldersListWhereInput {\n type: String!\n parentId: ID\n parentId_in: [ID]\n path: String\n path_not: String\n path_contains: String\n path_not_contains: String\n path_in: [String]\n path_not_in: [String]\n path_startsWith: String\n path_not_startsWith: String\n createdBy: ID\n }\n \n type FolderResponse {\n data: Folder\n error: AcoError\n }\n\n type FoldersListResponse {\n data: [Folder]\n error: AcoError\n meta: AcoMeta\n }\n\n type FoldersListCompressedResponse {\n data: CompressedResponse\n error: AcoError\n }\n \n type FoldersHierarchyData {\n parents: [Folder]\n siblings: [Folder]\n }\n\n type FoldersHierarchyResponse {\n data: FoldersHierarchyData\n error: AcoError\n }\n\n type FolderLevelPermissionsTarget {\n id: ID!\n type: String!\n target: ID!\n name: String!\n meta: JSON\n }\n\n type FolderLevelPermissionsTargetsListMeta {\n totalCount: Int!\n }\n\n type FolderLevelPermissionsTargetsListResponse {\n data: [FolderLevelPermissionsTarget]\n meta: FolderLevelPermissionsTargetsListMeta\n error: AcoError\n }\n \n type FolderModelResponse {\n data: JSON\n error: AcoError\n }\n\n extend type AcoQuery {\n getFolderModel: FolderModelResponse!\n getFolder(id: ID!): FolderResponse\n listFolders(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListResponse\n listFoldersCompressed(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListCompressedResponse\n getFolderHierarchy(type: String!, id: ID!): FoldersHierarchyResponse\n listFolderLevelPermissionsTargets: FolderLevelPermissionsTargetsListResponse\n }\n\n extend type AcoMutation {\n createFolder(data: FolderCreateInput!): FolderResponse\n updateFolder(id: ID!, data: FolderUpdateInput!): FolderResponse\n deleteFolder(id: ID!): AcoBooleanResponse\n }\n \n extend type AcoFolder_Permissions {\n inheritedFrom: ID\n }\n \n extend input AcoFolder_PermissionsInput {\n inheritedFrom: ID\n }\n `;\n};\n"],"mappings":";;;;;;AACA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAQA,MAAME,6BAA6B,GAAIC,KAAoB,IAAK;EAC5D,IAAIA,KAAK,CAACC,UAAU,EAAE;IAClBD,KAAK,CAACC,UAAU,GAAGD,KAAK,CAACC,UAAU,CAACC,MAAM,CAACD,UAAU,IAAIA,UAAU,CAACE,IAAI,KAAK,UAAU,CAAC;EAC5F;EACA,IAAIH,KAAK,CAACI,cAAc,EAAE;IACtBJ,KAAK,CAACI,cAAc,GAAGJ,KAAK,CAACI,cAAc,CAACF,MAAM,CAACG,CAAC,IAAIA,CAAC,CAACF,IAAI,KAAK,UAAU,CAAC;EAClF;EACA,OAAOH,KAAK;AAChB,CAAC;AAED,MAAMM,kBAAkB,GAAIC,MAAuB,IAAsB;EACrE,OAAOA,MAAM,CAACC,MAAM,CAAkB,CAACC,UAAU,EAAET,KAAK,KAAK;IACzDS,UAAU,CAACC,IAAI,CAACX,6BAA6B,CAAC;MAAE,GAAGC;IAAM,CAAC,CAAC,CAAC;IAC5D,OAAOS,UAAU;EACrB,CAAC,EAAE,EAAE,CAAC;AACV,CAAC;AAEM,MAAME,oBAAoB,GAAIC,MAAkC,IAAa;EAChF,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC,OAAO,EAAEC;EAAiB,CAAC,GAAGJ,MAAM;EAC3D,MAAM;IAAEL;EAAO,CAAC,GAAGM,KAAK;EAExB,MAAMI,UAAU,GAAG,IAAAC,0BAAY,EAAC;IAC5BJ,MAAM;IACND,KAAK;IACLN,MAAM;IACNY,IAAI,EAAE,QAAQ;IACdH;EACJ,CAAC,CAAC;EACF,MAAMI,iBAAiB,GAAG,IAAAC,oCAAiB,EAAC;IACxCP,MAAM;IACND,KAAK;IACLN,MAAM;IACNS;EACJ,CAAC,CAAC;EACF,MAAMM,iBAAiB,GAAG,IAAAD,oCAAiB,EAAC;IACxCP,MAAM;IACND,KAAK;IACLN,MAAM,EAAED,kBAAkB,CAACC,MAAM,CAAC;IAClCS;EACJ,CAAC,CAAC;EAEF,OAAO,aAAc;AACzB,UAAUC,UAAU,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AACpD;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,cAAcT,UAAU,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AACtD;AACA;AACA,UAAUN,iBAAiB,CAACG,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AAC3D;AACA;AACA;AACA;AACA;AACA,eAAeN,iBAAiB,CAACG,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AAC9D;AACA;AACA;AACA,cAAcJ,iBAAiB,CAACC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AAC7D;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;AAACC,OAAA,CAAAhB,oBAAA,GAAAA,oBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_renderFields","require","_renderInputFields","removeFieldRequiredValidation","field","validation","filter","name","listValidation","v","createUpdateFields","fields","reduce","collection","push","createFolderTypeDefs","params","model","models","plugins","fieldTypePlugins","fieldTypes","renderFields","type","inputCreateFields","renderInputFields","inputUpdateFields","map","f","typeDefs","join","exports"],"sources":["createFolderTypeDefs.ts"],"sourcesContent":["import type { CmsFieldTypePlugins, CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields\";\nimport { renderInputFields } from \"@webiny/api-headless-cms/utils/renderInputFields\";\n\nexport interface CreateFolderTypeDefsParams {\n model: CmsModel;\n models: CmsModel[];\n plugins: CmsFieldTypePlugins;\n}\n\nconst removeFieldRequiredValidation = (field: CmsModelField) => {\n if (field.validation) {\n field.validation = field.validation.filter(validation => validation.name !== \"required\");\n }\n if (field.listValidation) {\n field.listValidation = field.listValidation.filter(v => v.name !== \"required\");\n }\n return field;\n};\n\nconst createUpdateFields = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.reduce<CmsModelField[]>((collection, field) => {\n collection.push(removeFieldRequiredValidation({ ...field }));\n return collection;\n }, []);\n};\n\nexport const createFolderTypeDefs = (params: CreateFolderTypeDefsParams): string => {\n const { model, models, plugins: fieldTypePlugins } = params;\n const { fields } = model;\n\n const fieldTypes = renderFields({\n models,\n model,\n fields,\n type: \"manage\",\n fieldTypePlugins\n });\n const inputCreateFields = renderInputFields({\n models,\n model,\n fields,\n fieldTypePlugins\n });\n const inputUpdateFields = renderInputFields({\n models,\n model,\n fields: createUpdateFields(fields),\n fieldTypePlugins\n });\n\n return /* GraphQL */ `\n ${fieldTypes.map(f => f.typeDefs).join(\"\\n\")}\n \n type CompressedResponse {\n compression: String\n value: String\n }\n\n type Folder {\n id: ID!\n # Tells us if the current user can manage folder structure.\n canManageStructure: Boolean\n\n # Tells us if the current user can manage folder permissions.\n canManagePermissions: Boolean\n\n # Tells us if the current user can manage folder content.\n canManageContent: Boolean\n\n # Tells us if the folder contains non-inherited permissions.\n hasNonInheritedPermissions: Boolean\n\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n createdBy: AcoUser\n modifiedBy: AcoUser\n savedBy: AcoUser\n \n ${fieldTypes.map(f => f.fields).join(\"\\n\")}\n }\n\n ${inputCreateFields.map(f => f.typeDefs).join(\"\\n\")}\n \n input FolderCreateInput {\n # Pass an ID if you want to create a folder with a specific ID.\n id: ID \n \n ${inputCreateFields.map(f => f.fields).join(\"\\n\")}\n }\n \n input FolderUpdateInput {\n ${inputUpdateFields.map(f => f.fields).join(\"\\n\")}\n }\n \n input FoldersListWhereInput {\n type: String!\n parentId: ID\n parentId_in: [ID]\n slug: String\n slug_not: String\n slug_contains: String\n slug_not_contains: String\n slug_in: [String]\n slug_not_in: [String]\n slug_startsWith: String\n slug_not_startsWith: String\n path: String\n path_not: String\n path_contains: String\n path_not_contains: String\n path_in: [String]\n path_not_in: [String]\n path_startsWith: String\n path_not_startsWith: String\n createdBy: ID\n }\n \n type FolderResponse {\n data: Folder\n error: AcoError\n }\n\n type FoldersListResponse {\n data: [Folder]\n error: AcoError\n meta: AcoMeta\n }\n\n type FoldersListCompressedResponse {\n data: CompressedResponse\n error: AcoError\n }\n \n type FoldersHierarchyData {\n parents: [Folder]\n siblings: [Folder]\n }\n\n type FoldersHierarchyResponse {\n data: FoldersHierarchyData\n error: AcoError\n }\n\n type FolderLevelPermissionsTarget {\n id: ID!\n type: String!\n target: ID!\n name: String!\n meta: JSON\n }\n\n type FolderLevelPermissionsTargetsListMeta {\n totalCount: Int!\n }\n\n type FolderLevelPermissionsTargetsListResponse {\n data: [FolderLevelPermissionsTarget]\n meta: FolderLevelPermissionsTargetsListMeta\n error: AcoError\n }\n \n type FolderModelResponse {\n data: JSON\n error: AcoError\n }\n\n extend type AcoQuery {\n getFolderModel: FolderModelResponse!\n getFolder(id: ID!): FolderResponse\n listFolders(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListResponse\n listFoldersCompressed(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListCompressedResponse\n getFolderHierarchy(type: String!, id: ID!): FoldersHierarchyResponse\n listFolderLevelPermissionsTargets: FolderLevelPermissionsTargetsListResponse\n }\n\n extend type AcoMutation {\n createFolder(data: FolderCreateInput!): FolderResponse\n updateFolder(id: ID!, data: FolderUpdateInput!): FolderResponse\n deleteFolder(id: ID!): AcoBooleanResponse\n }\n \n extend type AcoFolder_Permissions {\n inheritedFrom: ID\n }\n \n extend input AcoFolder_PermissionsInput {\n inheritedFrom: ID\n }\n `;\n};\n"],"mappings":";;;;;;AACA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAQA,MAAME,6BAA6B,GAAIC,KAAoB,IAAK;EAC5D,IAAIA,KAAK,CAACC,UAAU,EAAE;IAClBD,KAAK,CAACC,UAAU,GAAGD,KAAK,CAACC,UAAU,CAACC,MAAM,CAACD,UAAU,IAAIA,UAAU,CAACE,IAAI,KAAK,UAAU,CAAC;EAC5F;EACA,IAAIH,KAAK,CAACI,cAAc,EAAE;IACtBJ,KAAK,CAACI,cAAc,GAAGJ,KAAK,CAACI,cAAc,CAACF,MAAM,CAACG,CAAC,IAAIA,CAAC,CAACF,IAAI,KAAK,UAAU,CAAC;EAClF;EACA,OAAOH,KAAK;AAChB,CAAC;AAED,MAAMM,kBAAkB,GAAIC,MAAuB,IAAsB;EACrE,OAAOA,MAAM,CAACC,MAAM,CAAkB,CAACC,UAAU,EAAET,KAAK,KAAK;IACzDS,UAAU,CAACC,IAAI,CAACX,6BAA6B,CAAC;MAAE,GAAGC;IAAM,CAAC,CAAC,CAAC;IAC5D,OAAOS,UAAU;EACrB,CAAC,EAAE,EAAE,CAAC;AACV,CAAC;AAEM,MAAME,oBAAoB,GAAIC,MAAkC,IAAa;EAChF,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC,OAAO,EAAEC;EAAiB,CAAC,GAAGJ,MAAM;EAC3D,MAAM;IAAEL;EAAO,CAAC,GAAGM,KAAK;EAExB,MAAMI,UAAU,GAAG,IAAAC,0BAAY,EAAC;IAC5BJ,MAAM;IACND,KAAK;IACLN,MAAM;IACNY,IAAI,EAAE,QAAQ;IACdH;EACJ,CAAC,CAAC;EACF,MAAMI,iBAAiB,GAAG,IAAAC,oCAAiB,EAAC;IACxCP,MAAM;IACND,KAAK;IACLN,MAAM;IACNS;EACJ,CAAC,CAAC;EACF,MAAMM,iBAAiB,GAAG,IAAAD,oCAAiB,EAAC;IACxCP,MAAM;IACND,KAAK;IACLN,MAAM,EAAED,kBAAkB,CAACC,MAAM,CAAC;IAClCS;EACJ,CAAC,CAAC;EAEF,OAAO,aAAc;AACzB,UAAUC,UAAU,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AACpD;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,cAAcT,UAAU,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AACtD;AACA;AACA,UAAUN,iBAAiB,CAACG,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AAC3D;AACA;AACA;AACA;AACA;AACA,eAAeN,iBAAiB,CAACG,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AAC9D;AACA;AACA;AACA,cAAcJ,iBAAiB,CAACC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AAC7D;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;AAACC,OAAA,CAAAhB,oBAAA,GAAAA,oBAAA","ignoreList":[]}
@@ -23,6 +23,14 @@ export interface ListFoldersWhere {
23
23
  id_not_in?: string[];
24
24
  parentId?: string | null;
25
25
  parentId_in?: string[];
26
+ slug?: string;
27
+ slug_not?: string;
28
+ slug_contains?: string;
29
+ slug_not_contains?: string;
30
+ slug_in?: string[];
31
+ slug_not_in?: string[];
32
+ slug_startsWith?: string;
33
+ slug_not_startsWith?: string;
26
34
  path?: string;
27
35
  path_not?: string;
28
36
  path_contains?: string;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["folder.types.ts"],"sourcesContent":["import type { ListMeta, ListSort, User } from \"~/types\";\nimport { type FolderPermission } from \"~/types\";\nimport type { Topic } from \"@webiny/pubsub/types\";\n\nexport interface Folder {\n id: string;\n entryId: string;\n createdOn: string;\n modifiedOn: string | null;\n savedOn: string;\n createdBy: User;\n modifiedBy: User | null;\n savedBy: User;\n title: string;\n slug: string;\n permissions?: FolderPermission[];\n type: string;\n parentId?: string | null;\n path: string;\n extensions?: Record<string, any>;\n}\n\nexport interface ListFoldersWhere {\n type: string;\n id_not_in?: string[];\n parentId?: string | null;\n parentId_in?: string[];\n path?: string;\n path_not?: string;\n path_contains?: string;\n path_not_contains?: string;\n path_in?: string[];\n path_not_in?: string[];\n path_startsWith?: string;\n path_not_startsWith?: string;\n}\n\nexport interface ListFoldersParams {\n where: ListFoldersWhere;\n sort?: ListSort;\n limit?: number;\n after?: string | null;\n disablePermissions?: boolean;\n}\n\nexport type ListAllFoldersParams = Omit<ListFoldersParams, \"limit\" | \"after\">;\n\nexport interface GetFolderHierarchyParams {\n type: string;\n id: string;\n}\n\nexport interface GetFolderHierarchyResponse {\n parents: Folder[];\n siblings: Folder[];\n}\n\nexport type CreateFolderParams = Pick<Folder, \"title\" | \"slug\" | \"type\" | \"parentId\">;\n\nexport interface UpdateFolderParams {\n title?: string;\n slug?: string;\n permissions?: FolderPermission[];\n parentId?: string;\n}\n\nexport interface DeleteFolderParams {\n id: string;\n}\n\nexport interface FolderLevelPermissionsTarget<TMeta = Record<string, any>> {\n id: string;\n target: string;\n name: string;\n type: string;\n meta: TMeta;\n}\n\nexport interface FolderLevelPermissionsTargetListMeta {\n totalCount: number;\n}\n\nexport interface StorageOperationsGetFolderParams {\n id?: string;\n slug?: string;\n type?: string;\n parentId?: string | null;\n}\n\nexport interface GetFolderParams {\n id: string;\n}\n\nexport type StorageOperationsListFoldersParams = ListFoldersParams;\n\nexport interface StorageOperationsCreateFolderParams {\n data: CreateFolderParams;\n}\n\nexport interface StorageOperationsUpdateFolderParams {\n id: string;\n data: UpdateFolderParams;\n}\n\nexport type StorageOperationsDeleteFolderParams = DeleteFolderParams;\n\nexport interface OnFolderBeforeCreateTopicParams {\n input: CreateFolderParams;\n}\n\nexport interface OnFolderAfterCreateTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderBeforeUpdateTopicParams {\n original: Folder;\n input: Record<string, any>;\n}\n\nexport interface OnFolderAfterUpdateTopicParams {\n original: Folder;\n folder: Folder;\n input: Record<string, any>;\n}\n\nexport interface OnFolderBeforeDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderAfterDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface AcoFolderCrud {\n get(id: string, disablePermissions?: boolean): Promise<Folder>;\n\n list(params: ListFoldersParams): Promise<[Folder[], ListMeta]>;\n\n listFolderLevelPermissionsTargets(): Promise<\n [FolderLevelPermissionsTarget[], FolderLevelPermissionsTargetListMeta]\n >;\n\n listAll(params: ListAllFoldersParams): Promise<[Folder[], ListMeta]>;\n\n create(data: CreateFolderParams): Promise<Folder>;\n\n update(id: string, data: UpdateFolderParams): Promise<Folder>;\n\n delete(id: string): Promise<boolean>;\n\n getAncestors(folder: Folder): Promise<Folder[]>;\n\n getFolderHierarchy(params: GetFolderHierarchyParams): Promise<GetFolderHierarchyResponse>;\n\n /**\n * @deprecated use `getAncestors` instead\n */\n getFolderWithAncestors(id: string): Promise<Folder[]>;\n\n onFolderBeforeCreate: Topic<OnFolderBeforeCreateTopicParams>;\n onFolderAfterCreate: Topic<OnFolderAfterCreateTopicParams>;\n onFolderBeforeUpdate: Topic<OnFolderBeforeUpdateTopicParams>;\n onFolderAfterUpdate: Topic<OnFolderAfterUpdateTopicParams>;\n onFolderBeforeDelete: Topic<OnFolderBeforeDeleteTopicParams>;\n onFolderAfterDelete: Topic<OnFolderAfterDeleteTopicParams>;\n}\n\nexport interface AcoFolderStorageOperations {\n getFolder(params: StorageOperationsGetFolderParams): Promise<Folder>;\n\n listFolders(params: StorageOperationsListFoldersParams): Promise<[Folder[], ListMeta]>;\n\n createFolder(params: StorageOperationsCreateFolderParams): Promise<Folder>;\n\n updateFolder(params: StorageOperationsUpdateFolderParams): Promise<Folder>;\n\n deleteFolder(params: StorageOperationsDeleteFolderParams): Promise<boolean>;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["folder.types.ts"],"sourcesContent":["import type { ListMeta, ListSort, User } from \"~/types\";\nimport { type FolderPermission } from \"~/types\";\nimport type { Topic } from \"@webiny/pubsub/types\";\n\nexport interface Folder {\n id: string;\n entryId: string;\n createdOn: string;\n modifiedOn: string | null;\n savedOn: string;\n createdBy: User;\n modifiedBy: User | null;\n savedBy: User;\n title: string;\n slug: string;\n permissions?: FolderPermission[];\n type: string;\n parentId?: string | null;\n path: string;\n extensions?: Record<string, any>;\n}\n\nexport interface ListFoldersWhere {\n type: string;\n id_not_in?: string[];\n parentId?: string | null;\n parentId_in?: string[];\n slug?: string;\n slug_not?: string;\n slug_contains?: string;\n slug_not_contains?: string;\n slug_in?: string[];\n slug_not_in?: string[];\n slug_startsWith?: string;\n slug_not_startsWith?: string;\n path?: string;\n path_not?: string;\n path_contains?: string;\n path_not_contains?: string;\n path_in?: string[];\n path_not_in?: string[];\n path_startsWith?: string;\n path_not_startsWith?: string;\n}\n\nexport interface ListFoldersParams {\n where: ListFoldersWhere;\n sort?: ListSort;\n limit?: number;\n after?: string | null;\n disablePermissions?: boolean;\n}\n\nexport type ListAllFoldersParams = Omit<ListFoldersParams, \"limit\" | \"after\">;\n\nexport interface GetFolderHierarchyParams {\n type: string;\n id: string;\n}\n\nexport interface GetFolderHierarchyResponse {\n parents: Folder[];\n siblings: Folder[];\n}\n\nexport type CreateFolderParams = Pick<Folder, \"title\" | \"slug\" | \"type\" | \"parentId\">;\n\nexport interface UpdateFolderParams {\n title?: string;\n slug?: string;\n permissions?: FolderPermission[];\n parentId?: string;\n}\n\nexport interface DeleteFolderParams {\n id: string;\n}\n\nexport interface FolderLevelPermissionsTarget<TMeta = Record<string, any>> {\n id: string;\n target: string;\n name: string;\n type: string;\n meta: TMeta;\n}\n\nexport interface FolderLevelPermissionsTargetListMeta {\n totalCount: number;\n}\n\nexport interface StorageOperationsGetFolderParams {\n id?: string;\n slug?: string;\n type?: string;\n parentId?: string | null;\n}\n\nexport interface GetFolderParams {\n id: string;\n}\n\nexport type StorageOperationsListFoldersParams = ListFoldersParams;\n\nexport interface StorageOperationsCreateFolderParams {\n data: CreateFolderParams;\n}\n\nexport interface StorageOperationsUpdateFolderParams {\n id: string;\n data: UpdateFolderParams;\n}\n\nexport type StorageOperationsDeleteFolderParams = DeleteFolderParams;\n\nexport interface OnFolderBeforeCreateTopicParams {\n input: CreateFolderParams;\n}\n\nexport interface OnFolderAfterCreateTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderBeforeUpdateTopicParams {\n original: Folder;\n input: Record<string, any>;\n}\n\nexport interface OnFolderAfterUpdateTopicParams {\n original: Folder;\n folder: Folder;\n input: Record<string, any>;\n}\n\nexport interface OnFolderBeforeDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderAfterDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface AcoFolderCrud {\n get(id: string, disablePermissions?: boolean): Promise<Folder>;\n\n list(params: ListFoldersParams): Promise<[Folder[], ListMeta]>;\n\n listFolderLevelPermissionsTargets(): Promise<\n [FolderLevelPermissionsTarget[], FolderLevelPermissionsTargetListMeta]\n >;\n\n listAll(params: ListAllFoldersParams): Promise<[Folder[], ListMeta]>;\n\n create(data: CreateFolderParams): Promise<Folder>;\n\n update(id: string, data: UpdateFolderParams): Promise<Folder>;\n\n delete(id: string): Promise<boolean>;\n\n getAncestors(folder: Folder): Promise<Folder[]>;\n\n getFolderHierarchy(params: GetFolderHierarchyParams): Promise<GetFolderHierarchyResponse>;\n\n /**\n * @deprecated use `getAncestors` instead\n */\n getFolderWithAncestors(id: string): Promise<Folder[]>;\n\n onFolderBeforeCreate: Topic<OnFolderBeforeCreateTopicParams>;\n onFolderAfterCreate: Topic<OnFolderAfterCreateTopicParams>;\n onFolderBeforeUpdate: Topic<OnFolderBeforeUpdateTopicParams>;\n onFolderAfterUpdate: Topic<OnFolderAfterUpdateTopicParams>;\n onFolderBeforeDelete: Topic<OnFolderBeforeDeleteTopicParams>;\n onFolderAfterDelete: Topic<OnFolderAfterDeleteTopicParams>;\n}\n\nexport interface AcoFolderStorageOperations {\n getFolder(params: StorageOperationsGetFolderParams): Promise<Folder>;\n\n listFolders(params: StorageOperationsListFoldersParams): Promise<[Folder[], ListMeta]>;\n\n createFolder(params: StorageOperationsCreateFolderParams): Promise<Folder>;\n\n updateFolder(params: StorageOperationsUpdateFolderParams): Promise<Folder>;\n\n deleteFolder(params: StorageOperationsDeleteFolderParams): Promise<boolean>;\n}\n"],"mappings":"","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-aco",
3
- "version": "0.0.0-unstable.e53eceafb5",
3
+ "version": "0.0.0-unstable.eb196ccd2f",
4
4
  "main": "index.js",
5
5
  "keywords": [
6
6
  "aco:base"
@@ -22,39 +22,39 @@
22
22
  "directory": "dist"
23
23
  },
24
24
  "dependencies": {
25
- "@webiny/api": "0.0.0-unstable.e53eceafb5",
26
- "@webiny/api-authentication": "0.0.0-unstable.e53eceafb5",
27
- "@webiny/api-headless-cms": "0.0.0-unstable.e53eceafb5",
28
- "@webiny/api-i18n": "0.0.0-unstable.e53eceafb5",
29
- "@webiny/api-security": "0.0.0-unstable.e53eceafb5",
30
- "@webiny/api-tenancy": "0.0.0-unstable.e53eceafb5",
31
- "@webiny/aws-sdk": "0.0.0-unstable.e53eceafb5",
32
- "@webiny/db-dynamodb": "0.0.0-unstable.e53eceafb5",
33
- "@webiny/error": "0.0.0-unstable.e53eceafb5",
34
- "@webiny/handler": "0.0.0-unstable.e53eceafb5",
35
- "@webiny/handler-graphql": "0.0.0-unstable.e53eceafb5",
36
- "@webiny/pubsub": "0.0.0-unstable.e53eceafb5",
37
- "@webiny/shared-aco": "0.0.0-unstable.e53eceafb5",
38
- "@webiny/tasks": "0.0.0-unstable.e53eceafb5",
39
- "@webiny/utils": "0.0.0-unstable.e53eceafb5",
40
- "@webiny/validation": "0.0.0-unstable.e53eceafb5",
25
+ "@webiny/api": "0.0.0-unstable.eb196ccd2f",
26
+ "@webiny/api-authentication": "0.0.0-unstable.eb196ccd2f",
27
+ "@webiny/api-headless-cms": "0.0.0-unstable.eb196ccd2f",
28
+ "@webiny/api-i18n": "0.0.0-unstable.eb196ccd2f",
29
+ "@webiny/api-security": "0.0.0-unstable.eb196ccd2f",
30
+ "@webiny/api-tenancy": "0.0.0-unstable.eb196ccd2f",
31
+ "@webiny/aws-sdk": "0.0.0-unstable.eb196ccd2f",
32
+ "@webiny/db-dynamodb": "0.0.0-unstable.eb196ccd2f",
33
+ "@webiny/error": "0.0.0-unstable.eb196ccd2f",
34
+ "@webiny/handler": "0.0.0-unstable.eb196ccd2f",
35
+ "@webiny/handler-graphql": "0.0.0-unstable.eb196ccd2f",
36
+ "@webiny/pubsub": "0.0.0-unstable.eb196ccd2f",
37
+ "@webiny/shared-aco": "0.0.0-unstable.eb196ccd2f",
38
+ "@webiny/tasks": "0.0.0-unstable.eb196ccd2f",
39
+ "@webiny/utils": "0.0.0-unstable.eb196ccd2f",
40
+ "@webiny/validation": "0.0.0-unstable.eb196ccd2f",
41
41
  "lodash": "4.17.21"
42
42
  },
43
43
  "devDependencies": {
44
- "@webiny/api-admin-users": "0.0.0-unstable.e53eceafb5",
45
- "@webiny/api-file-manager": "0.0.0-unstable.e53eceafb5",
46
- "@webiny/api-i18n-ddb": "0.0.0-unstable.e53eceafb5",
47
- "@webiny/api-security-so-ddb": "0.0.0-unstable.e53eceafb5",
48
- "@webiny/api-tenancy-so-ddb": "0.0.0-unstable.e53eceafb5",
49
- "@webiny/api-wcp": "0.0.0-unstable.e53eceafb5",
50
- "@webiny/handler-aws": "0.0.0-unstable.e53eceafb5",
51
- "@webiny/plugins": "0.0.0-unstable.e53eceafb5",
52
- "@webiny/project-utils": "0.0.0-unstable.e53eceafb5",
53
- "@webiny/wcp": "0.0.0-unstable.e53eceafb5",
44
+ "@webiny/api-admin-users": "0.0.0-unstable.eb196ccd2f",
45
+ "@webiny/api-file-manager": "0.0.0-unstable.eb196ccd2f",
46
+ "@webiny/api-i18n-ddb": "0.0.0-unstable.eb196ccd2f",
47
+ "@webiny/api-security-so-ddb": "0.0.0-unstable.eb196ccd2f",
48
+ "@webiny/api-tenancy-so-ddb": "0.0.0-unstable.eb196ccd2f",
49
+ "@webiny/api-wcp": "0.0.0-unstable.eb196ccd2f",
50
+ "@webiny/handler-aws": "0.0.0-unstable.eb196ccd2f",
51
+ "@webiny/plugins": "0.0.0-unstable.eb196ccd2f",
52
+ "@webiny/project-utils": "0.0.0-unstable.eb196ccd2f",
53
+ "@webiny/wcp": "0.0.0-unstable.eb196ccd2f",
54
54
  "graphql": "15.9.0",
55
55
  "prettier": "2.8.8",
56
56
  "rimraf": "6.0.1",
57
57
  "typescript": "5.3.3"
58
58
  },
59
- "gitHead": "e53eceafb5ce1a3872c9b4548939bb2eae5b1aef"
59
+ "gitHead": "eb196ccd2f32296e10f7add6dd7220d4e3abece4"
60
60
  }
@@ -83,9 +83,9 @@ const createAppSchema = params => {
83
83
  createdOn: DateTime!
84
84
  modifiedOn: DateTime
85
85
  savedOn: DateTime!
86
- createdBy: AcoUser!
86
+ createdBy: AcoUser
87
87
  modifiedBy: AcoUser
88
- savedBy: AcoUser!
88
+ savedBy: AcoUser
89
89
  ${fieldTypes.map(f => f.fields).join("\n")}
90
90
  }
91
91
 
@@ -1 +1 @@
1
- {"version":3,"names":["_renderFields","require","_renderInputFields","_renderListFilterFields","_renderSortEnum","removeFieldRequiredValidation","field","validation","filter","name","listValidation","v","createUpdateFields","fields","reduce","collection","includes","fieldId","push","createAppSchema","params","app","models","plugins","fieldTypePlugins","model","singularApiName","apiName","fieldTypes","renderFields","type","inputCreateFields","renderInputFields","inputUpdateFields","listFilterFieldsRender","renderListFilterFields","sortEnumRender","renderSortEnum","map","f","typeDefs","join","exports"],"sources":["createAppSchema.ts"],"sourcesContent":["import type { CmsFieldTypePlugins, CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields\";\nimport { renderInputFields } from \"@webiny/api-headless-cms/utils/renderInputFields\";\nimport type { IAcoApp } from \"~/types\";\nimport { renderListFilterFields } from \"@webiny/api-headless-cms/utils/renderListFilterFields\";\nimport { renderSortEnum } from \"@webiny/api-headless-cms/utils/renderSortEnum\";\n\ninterface Params {\n app: IAcoApp;\n models: CmsModel[];\n plugins: CmsFieldTypePlugins;\n}\n\nconst removeFieldRequiredValidation = (field: CmsModelField) => {\n if (field.validation) {\n field.validation = field.validation.filter(validation => validation.name !== \"required\");\n }\n if (field.listValidation) {\n field.listValidation = field.listValidation.filter(v => v.name !== \"required\");\n }\n return field;\n};\n\nconst createUpdateFields = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.reduce<CmsModelField[]>((collection, field) => {\n if ([\"type\"].includes(field.fieldId)) {\n return collection;\n } else if (field.fieldId === \"tags\") {\n collection.push(field);\n return collection;\n }\n collection.push(removeFieldRequiredValidation({ ...field }));\n return collection;\n }, []);\n};\n\nexport const createAppSchema = (params: Params): string => {\n const { app, models, plugins: fieldTypePlugins } = params;\n const { model } = app;\n const { singularApiName: apiName, fields } = model;\n\n const fieldTypes = renderFields({\n models,\n model,\n fields,\n type: \"manage\",\n fieldTypePlugins\n });\n const inputCreateFields = renderInputFields({\n models,\n model,\n fields,\n fieldTypePlugins\n });\n const inputUpdateFields = renderInputFields({\n models,\n model,\n fields: createUpdateFields(fields),\n fieldTypePlugins\n });\n const listFilterFieldsRender = renderListFilterFields({\n model,\n fields: model.fields,\n type: \"manage\",\n fieldTypePlugins\n });\n\n const sortEnumRender = renderSortEnum({\n model,\n fields: model.fields,\n fieldTypePlugins\n });\n\n return /* GraphQL */ `\n ${fieldTypes.map(f => f.typeDefs).join(\"\\n\")}\n\n\n type ${apiName} {\n id: ID!\n createdOn: DateTime!\n modifiedOn: DateTime\n savedOn: DateTime!\n createdBy: AcoUser!\n modifiedBy: AcoUser\n savedBy: AcoUser!\n ${fieldTypes.map(f => f.fields).join(\"\\n\")}\n }\n\n ${inputCreateFields.map(f => f.typeDefs).join(\"\\n\")}\n\n input ${apiName}CreateInput {\n id: ID\n ${inputCreateFields.map(f => f.fields).join(\"\\n\")}\n }\n\n input ${apiName}UpdateInput {\n ${inputUpdateFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type ${apiName}Response {\n data: ${apiName}\n error: AcoError\n }\n\n input ${apiName}ListWhereInput {\n ${listFilterFieldsRender}\n AND: [${apiName}ListWhereInput!]\n OR: [${apiName}ListWhereInput!]\n }\n\n type ${apiName}ListResponse {\n data: [${apiName}!]\n error: AcoError\n meta: AcoMeta\n }\n\n enum ${apiName}ListSorter {\n ${sortEnumRender}\n }\n\n extend type SearchQuery {\n get${apiName}(id: ID!): ${apiName}Response!\n list${apiName}(\n where: ${apiName}ListWhereInput\n search: String\n limit: Int\n after: String\n sort: [${apiName}ListSorter!]\n ): ${apiName}ListResponse!\n list${apiName}Tags(where: AcoSearchRecordTagListWhereInput): AcoSearchRecordTagListResponse!\n }\n\n extend type SearchMutation {\n create${apiName}(data: ${apiName}CreateInput!): ${apiName}Response!\n update${apiName}(id: ID!, data: ${apiName}UpdateInput!): ${apiName}Response!\n move${apiName}(id: ID!, folderId: ID!): AcoSearchRecordMoveResponse!\n delete${apiName}(id: ID!): AcoBooleanResponse!\n }\n `;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_renderFields","require","_renderInputFields","_renderListFilterFields","_renderSortEnum","removeFieldRequiredValidation","field","validation","filter","name","listValidation","v","createUpdateFields","fields","reduce","collection","includes","fieldId","push","createAppSchema","params","app","models","plugins","fieldTypePlugins","model","singularApiName","apiName","fieldTypes","renderFields","type","inputCreateFields","renderInputFields","inputUpdateFields","listFilterFieldsRender","renderListFilterFields","sortEnumRender","renderSortEnum","map","f","typeDefs","join","exports"],"sources":["createAppSchema.ts"],"sourcesContent":["import type { CmsFieldTypePlugins, CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields\";\nimport { renderInputFields } from \"@webiny/api-headless-cms/utils/renderInputFields\";\nimport type { IAcoApp } from \"~/types\";\nimport { renderListFilterFields } from \"@webiny/api-headless-cms/utils/renderListFilterFields\";\nimport { renderSortEnum } from \"@webiny/api-headless-cms/utils/renderSortEnum\";\n\ninterface Params {\n app: IAcoApp;\n models: CmsModel[];\n plugins: CmsFieldTypePlugins;\n}\n\nconst removeFieldRequiredValidation = (field: CmsModelField) => {\n if (field.validation) {\n field.validation = field.validation.filter(validation => validation.name !== \"required\");\n }\n if (field.listValidation) {\n field.listValidation = field.listValidation.filter(v => v.name !== \"required\");\n }\n return field;\n};\n\nconst createUpdateFields = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.reduce<CmsModelField[]>((collection, field) => {\n if ([\"type\"].includes(field.fieldId)) {\n return collection;\n } else if (field.fieldId === \"tags\") {\n collection.push(field);\n return collection;\n }\n collection.push(removeFieldRequiredValidation({ ...field }));\n return collection;\n }, []);\n};\n\nexport const createAppSchema = (params: Params): string => {\n const { app, models, plugins: fieldTypePlugins } = params;\n const { model } = app;\n const { singularApiName: apiName, fields } = model;\n\n const fieldTypes = renderFields({\n models,\n model,\n fields,\n type: \"manage\",\n fieldTypePlugins\n });\n const inputCreateFields = renderInputFields({\n models,\n model,\n fields,\n fieldTypePlugins\n });\n const inputUpdateFields = renderInputFields({\n models,\n model,\n fields: createUpdateFields(fields),\n fieldTypePlugins\n });\n const listFilterFieldsRender = renderListFilterFields({\n model,\n fields: model.fields,\n type: \"manage\",\n fieldTypePlugins\n });\n\n const sortEnumRender = renderSortEnum({\n model,\n fields: model.fields,\n fieldTypePlugins\n });\n\n return /* GraphQL */ `\n ${fieldTypes.map(f => f.typeDefs).join(\"\\n\")}\n\n\n type ${apiName} {\n id: ID!\n createdOn: DateTime!\n modifiedOn: DateTime\n savedOn: DateTime!\n createdBy: AcoUser\n modifiedBy: AcoUser\n savedBy: AcoUser\n ${fieldTypes.map(f => f.fields).join(\"\\n\")}\n }\n\n ${inputCreateFields.map(f => f.typeDefs).join(\"\\n\")}\n\n input ${apiName}CreateInput {\n id: ID\n ${inputCreateFields.map(f => f.fields).join(\"\\n\")}\n }\n\n input ${apiName}UpdateInput {\n ${inputUpdateFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type ${apiName}Response {\n data: ${apiName}\n error: AcoError\n }\n\n input ${apiName}ListWhereInput {\n ${listFilterFieldsRender}\n AND: [${apiName}ListWhereInput!]\n OR: [${apiName}ListWhereInput!]\n }\n\n type ${apiName}ListResponse {\n data: [${apiName}!]\n error: AcoError\n meta: AcoMeta\n }\n\n enum ${apiName}ListSorter {\n ${sortEnumRender}\n }\n\n extend type SearchQuery {\n get${apiName}(id: ID!): ${apiName}Response!\n list${apiName}(\n where: ${apiName}ListWhereInput\n search: String\n limit: Int\n after: String\n sort: [${apiName}ListSorter!]\n ): ${apiName}ListResponse!\n list${apiName}Tags(where: AcoSearchRecordTagListWhereInput): AcoSearchRecordTagListResponse!\n }\n\n extend type SearchMutation {\n create${apiName}(data: ${apiName}CreateInput!): ${apiName}Response!\n update${apiName}(id: ID!, data: ${apiName}UpdateInput!): ${apiName}Response!\n move${apiName}(id: ID!, folderId: ID!): AcoSearchRecordMoveResponse!\n delete${apiName}(id: ID!): AcoBooleanResponse!\n }\n `;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,3 @@
1
1
  import { ErrorResponse, ListResponse, Response } from "@webiny/handler-graphql";
2
- export declare const resolve: (fn: () => Promise<any>) => Promise<ErrorResponse | Response<any>>;
2
+ export declare const resolve: (fn: () => Promise<any>) => Promise<Response<any> | ErrorResponse>;
3
3
  export declare const resolveList: (fn: () => Promise<any>) => Promise<ErrorResponse | ListResponse<unknown, any>>;