@webiny/api-aco 0.0.0-ee-vpcs.549378cf03 → 0.0.0-unstable.2af142b57e

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.
Files changed (106) hide show
  1. package/README.md +15 -0
  2. package/createAcoContext.d.ts +3 -0
  3. package/createAcoContext.js +63 -0
  4. package/createAcoContext.js.map +1 -0
  5. package/createAcoCrud.d.ts +2 -0
  6. package/createAcoCrud.js +17 -0
  7. package/createAcoCrud.js.map +1 -0
  8. package/createAcoFields.d.ts +2 -0
  9. package/createAcoFields.js +40 -0
  10. package/createAcoFields.js.map +1 -0
  11. package/createAcoGraphQL.d.ts +3 -0
  12. package/createAcoGraphQL.js +91 -0
  13. package/createAcoGraphQL.js.map +1 -0
  14. package/createAcoHooks.d.ts +2 -0
  15. package/createAcoHooks.js +11 -0
  16. package/createAcoHooks.js.map +1 -0
  17. package/createAcoModels.d.ts +2 -0
  18. package/createAcoModels.js +67 -0
  19. package/createAcoModels.js.map +1 -0
  20. package/createAcoStorageOperations.d.ts +10 -0
  21. package/createAcoStorageOperations.js +19 -0
  22. package/createAcoStorageOperations.js.map +1 -0
  23. package/folder/folder.crud.d.ts +3 -0
  24. package/folder/folder.crud.js +92 -0
  25. package/folder/folder.crud.js.map +1 -0
  26. package/folder/folder.gql.d.ts +3 -0
  27. package/folder/folder.gql.js +103 -0
  28. package/folder/folder.gql.js.map +1 -0
  29. package/folder/folder.model.d.ts +4 -0
  30. package/folder/folder.model.js +79 -0
  31. package/folder/folder.model.js.map +1 -0
  32. package/folder/folder.so.d.ts +8 -0
  33. package/folder/folder.so.js +156 -0
  34. package/folder/folder.so.js.map +1 -0
  35. package/folder/folder.types.d.ts +83 -0
  36. package/folder/folder.types.js +5 -0
  37. package/folder/folder.types.js.map +1 -0
  38. package/folder/onFolderBeforeDelete.hook.d.ts +2 -0
  39. package/folder/onFolderBeforeDelete.hook.js +53 -0
  40. package/folder/onFolderBeforeDelete.hook.js.map +1 -0
  41. package/index.d.ts +1 -9
  42. package/index.js +7 -64
  43. package/index.js.map +1 -1
  44. package/package.json +22 -20
  45. package/record/record.crud.d.ts +3 -0
  46. package/record/record.crud.js +92 -0
  47. package/record/record.crud.js.map +1 -0
  48. package/record/record.gql.d.ts +3 -0
  49. package/record/record.gql.js +118 -0
  50. package/record/record.gql.js.map +1 -0
  51. package/record/record.model.d.ts +4 -0
  52. package/record/record.model.js +75 -0
  53. package/record/record.model.js.map +1 -0
  54. package/record/record.so.d.ts +8 -0
  55. package/record/record.so.js +100 -0
  56. package/record/record.so.js.map +1 -0
  57. package/record/record.types.d.ts +92 -0
  58. package/record/record.types.js +5 -0
  59. package/record/record.types.js.map +1 -0
  60. package/types.d.ts +20 -201
  61. package/types.js.map +1 -1
  62. package/utils/createModelField.d.ts +6 -0
  63. package/utils/createModelField.js +39 -0
  64. package/utils/createModelField.js.map +1 -0
  65. package/utils/fieldResolver.d.ts +16 -0
  66. package/utils/fieldResolver.js +44 -0
  67. package/utils/fieldResolver.js.map +1 -0
  68. package/utils/getFieldValues.d.ts +2 -0
  69. package/utils/getFieldValues.js +12 -0
  70. package/utils/getFieldValues.js.map +1 -0
  71. package/utils/isInstallationPending.d.ts +4 -0
  72. package/utils/isInstallationPending.js +21 -0
  73. package/utils/isInstallationPending.js.map +1 -0
  74. package/utils/modelFactory.d.ts +15 -0
  75. package/utils/modelFactory.js +23 -0
  76. package/utils/modelFactory.js.map +1 -0
  77. package/utils/resolve.d.ts +2 -0
  78. package/utils/resolve.js +15 -0
  79. package/utils/resolve.js.map +1 -0
  80. package/context/folders.d.ts +0 -2
  81. package/context/folders.js +0 -261
  82. package/context/folders.js.map +0 -1
  83. package/context/index.d.ts +0 -2
  84. package/context/index.js +0 -22
  85. package/context/index.js.map +0 -1
  86. package/context/links.d.ts +0 -2
  87. package/context/links.js +0 -270
  88. package/context/links.js.map +0 -1
  89. package/graphql/base.gql.d.ts +0 -3
  90. package/graphql/base.gql.js +0 -63
  91. package/graphql/base.gql.js.map +0 -1
  92. package/graphql/folders.gql.d.ts +0 -3
  93. package/graphql/folders.gql.js +0 -126
  94. package/graphql/folders.gql.js.map +0 -1
  95. package/graphql/index.d.ts +0 -1
  96. package/graphql/index.js +0 -15
  97. package/graphql/index.js.map +0 -1
  98. package/graphql/links.gql.d.ts +0 -3
  99. package/graphql/links.gql.js +0 -123
  100. package/graphql/links.gql.js.map +0 -1
  101. package/subscriptions/afterFolderDelete.d.ts +0 -3
  102. package/subscriptions/afterFolderDelete.js +0 -62
  103. package/subscriptions/afterFolderDelete.js.map +0 -1
  104. package/subscriptions/index.d.ts +0 -3
  105. package/subscriptions/index.js +0 -14
  106. package/subscriptions/index.js.map +0 -1
package/types.d.ts CHANGED
@@ -1,9 +1,11 @@
1
- import { TenancyContext } from "@webiny/api-tenancy/types";
1
+ import { Tenant, TenancyContext } from "@webiny/api-tenancy/types";
2
2
  import { Context as BaseContext } from "@webiny/handler/types";
3
- import { I18NContext } from "@webiny/api-i18n/types";
3
+ import { I18NContext, I18NLocale } from "@webiny/api-i18n/types";
4
4
  import { SecurityContext, SecurityIdentity } from "@webiny/api-security/types";
5
- import { Topic } from "@webiny/pubsub/types";
6
- export interface CreatedBy {
5
+ import { CmsContext } from "@webiny/api-headless-cms/types";
6
+ import { AcoSearchRecordCrud, AcoSearchRecordStorageOperations } from "./record/record.types";
7
+ import { AcoFolderCrud, AcoFolderStorageOperations } from "./folder/folder.types";
8
+ export interface User {
7
9
  id: string;
8
10
  type: string;
9
11
  displayName: string | null;
@@ -13,207 +15,24 @@ export interface ListMeta {
13
15
  totalCount: number;
14
16
  hasMoreItems: boolean;
15
17
  }
16
- export interface Folder {
18
+ export interface AcoBaseFields {
17
19
  id: string;
18
- name: string;
19
- slug: string;
20
- type: string;
21
- parentId?: string;
22
- createdOn: string;
23
- createdBy: CreatedBy;
24
- tenant: string;
25
- locale: string;
26
- webinyVersion: string;
27
- }
28
- export declare type FolderInput = Pick<Folder, "name" | "slug" | "type" | "parentId">;
29
- export interface GetFolderParams {
30
- id: string;
31
- }
32
- export interface ListFoldersWhere {
33
- type: string;
34
- }
35
- export interface ListFoldersParams {
36
- where: ListFoldersWhere;
37
- }
38
- export interface CreateFolderParams {
39
- folder: Folder;
40
- }
41
- export interface UpdateFolderParams {
42
- original: Folder;
43
- folder: Folder;
44
- }
45
- export interface DeleteFolderParams {
46
- folder: Folder;
47
- }
48
- export interface StorageOperationsGetFolderParams {
49
- id?: string;
50
- slug?: string;
51
- type?: string;
52
- parentId?: string;
53
- tenant: string;
54
- locale: string;
55
- }
56
- export interface StorageOperationsListFoldersParams extends ListFoldersParams {
57
- where: ListFoldersParams["where"] & {
58
- tenant: string;
59
- locale: string;
60
- };
61
- sort: string[];
62
- }
63
- export declare type StorageOperationsCreateFolderParams = CreateFolderParams;
64
- export declare type StorageOperationsUpdateFolderParams = UpdateFolderParams;
65
- export declare type StorageOperationsDeleteFolderParams = DeleteFolderParams;
66
- export interface OnFolderBeforeCreateTopicParams {
67
- folder: Folder;
68
- }
69
- export interface OnFolderAfterCreateTopicParams {
70
- folder: Folder;
71
- }
72
- export interface OnFolderBeforeUpdateTopicParams {
73
- folder: Folder;
74
- original: Folder;
75
- }
76
- export interface OnFolderAfterUpdateTopicParams {
77
- folder: Folder;
78
- original: Folder;
79
- }
80
- export interface OnFolderBeforeDeleteTopicParams {
81
- folder: Folder;
82
- }
83
- export interface OnFolderAfterDeleteTopicParams {
84
- folder: Folder;
85
- }
86
- export interface Link {
87
- id: string;
88
- linkId: string;
89
- folderId: string;
20
+ entryId: string;
90
21
  createdOn: string;
91
- createdBy: CreatedBy;
92
- tenant: string;
93
- locale: string;
94
- webinyVersion: string;
22
+ createdBy: User;
23
+ savedOn: string;
95
24
  }
96
- export declare type LinkInput = Pick<Link, "id" | "folderId">;
97
- export interface ListLinksWhere {
98
- folderId: string;
25
+ export interface AdvancedContentOrganisation {
26
+ folder: AcoFolderCrud;
27
+ search: AcoSearchRecordCrud;
99
28
  }
100
- export interface ListLinksParams {
101
- where: ListLinksWhere;
102
- limit?: number;
103
- after?: string | null;
104
- }
105
- export declare type ListLinksResponse = [Link[], ListMeta];
106
- export interface CreateLinkParams {
107
- link: Link;
108
- }
109
- export interface UpdateLinkParams {
110
- original: Link;
111
- link: Link;
112
- }
113
- export interface DeleteLinkParams {
114
- link: Link;
115
- }
116
- export interface DeleteLinksParams {
117
- tenant: string;
118
- locale: string;
119
- folderIds: string[];
120
- }
121
- export interface StorageOperationsGetLinkParams {
122
- id?: string;
123
- folderId?: string;
124
- tenant: string;
125
- locale: string;
126
- }
127
- export interface StorageOperationsListLinksParams extends ListLinksParams {
128
- where: ListLinksParams["where"] & {
129
- tenant: string;
130
- locale: string;
131
- };
132
- sort: string[];
133
- }
134
- export declare type StorageOperationListLinksResponse = ListLinksResponse;
135
- export declare type StorageOperationsCreateLinkParams = CreateLinkParams;
136
- export declare type StorageOperationsUpdateLinkParams = UpdateLinkParams;
137
- export declare type StorageOperationsDeleteLinkParams = DeleteLinkParams;
138
- export declare type StorageOperationsDeleteLinksParams = DeleteLinksParams;
139
- export interface OnLinkBeforeCreateTopicParams {
140
- link: Link;
141
- }
142
- export interface OnLinkAfterCreateTopicParams {
143
- link: Link;
144
- }
145
- export interface OnLinkBeforeUpdateTopicParams {
146
- link: Link;
147
- original: Link;
148
- }
149
- export interface OnLinkAfterUpdateTopicParams {
150
- link: Link;
151
- original: Link;
152
- }
153
- export interface OnLinkBeforeDeleteTopicParams {
154
- link: Link;
155
- }
156
- export interface OnLinkAfterDeleteTopicParams {
157
- link: Link;
158
- }
159
- export interface OnLinkBeforeDeleteBatchTopicParams {
160
- folderIds: string[];
161
- }
162
- export interface OnLinkAfterDeleteBatchTopicParams {
163
- folderIds: string[];
164
- }
165
- export interface ACOContext extends BaseContext, I18NContext, TenancyContext, SecurityContext {
166
- folders: Folders;
167
- }
168
- export declare type Folders = IFolders & ILinks;
169
- export interface IFolders {
170
- getFolder(params: GetFolderParams): Promise<Folder>;
171
- listFolders(params: ListFoldersParams): Promise<Folder[]>;
172
- createFolder(input: FolderInput): Promise<Folder>;
173
- updateFolder(id: string, input: Partial<Folder>): Promise<Folder>;
174
- deleteFolder(id: string): Promise<void>;
175
- onFolderBeforeCreate: Topic<OnFolderBeforeCreateTopicParams>;
176
- onFolderAfterCreate: Topic<OnFolderAfterCreateTopicParams>;
177
- onFolderBeforeUpdate: Topic<OnFolderBeforeUpdateTopicParams>;
178
- onFolderAfterUpdate: Topic<OnFolderAfterUpdateTopicParams>;
179
- onFolderBeforeDelete: Topic<OnFolderBeforeDeleteTopicParams>;
180
- onFolderAfterDelete: Topic<OnFolderAfterDeleteTopicParams>;
181
- }
182
- export interface ILinks {
183
- getLink(id: string): Promise<Link>;
184
- listLinks(params: ListLinksParams): Promise<ListLinksResponse>;
185
- createLink(input: LinkInput): Promise<Link>;
186
- updateLink(id: string, input: Partial<Link>): Promise<Link>;
187
- deleteLink(id: string): Promise<void>;
188
- deleteLinks(folderIds: string[]): Promise<void>;
189
- onLinkBeforeCreate: Topic<OnLinkBeforeCreateTopicParams>;
190
- onLinkAfterCreate: Topic<OnLinkAfterCreateTopicParams>;
191
- onLinkBeforeUpdate: Topic<OnLinkBeforeUpdateTopicParams>;
192
- onLinkAfterUpdate: Topic<OnLinkAfterUpdateTopicParams>;
193
- onLinkBeforeDelete: Topic<OnLinkBeforeDeleteTopicParams>;
194
- onLinkAfterDelete: Topic<OnLinkAfterDeleteTopicParams>;
195
- onLinkBeforeDeleteBatch: Topic<OnLinkBeforeDeleteBatchTopicParams>;
196
- onLinkAfterDeleteBatch: Topic<OnLinkAfterDeleteBatchTopicParams>;
197
- }
198
- export interface FoldersConfig {
199
- getTenantId: () => string;
200
- getLocaleCode: () => string;
29
+ export interface CreateAcoParams {
201
30
  getIdentity: () => SecurityIdentity;
202
- storageOperations: StorageOperations;
203
- }
204
- export declare type StorageOperations = FoldersStorageOperations & LinksStorageOperations;
205
- export interface FoldersStorageOperations {
206
- getFolder(params: StorageOperationsGetFolderParams): Promise<Folder | undefined>;
207
- listFolders(params: StorageOperationsListFoldersParams): Promise<Folder[]>;
208
- createFolder(params: StorageOperationsCreateFolderParams): Promise<Folder>;
209
- updateFolder(params: StorageOperationsUpdateFolderParams): Promise<Folder>;
210
- deleteFolder(params: StorageOperationsDeleteFolderParams): Promise<void>;
31
+ getLocale: () => I18NLocale;
32
+ getTenant: () => Tenant;
33
+ storageOperations: AcoStorageOperations;
211
34
  }
212
- export interface LinksStorageOperations {
213
- getLink(params: StorageOperationsGetLinkParams): Promise<Link | undefined>;
214
- listLinks(params: StorageOperationsListLinksParams): Promise<StorageOperationListLinksResponse>;
215
- createLink(params: StorageOperationsCreateLinkParams): Promise<Link>;
216
- updateLink(params: StorageOperationsUpdateLinkParams): Promise<Link>;
217
- deleteLink(params: StorageOperationsDeleteLinkParams): Promise<void>;
218
- deleteLinks(params: StorageOperationsDeleteLinksParams): Promise<void>;
35
+ export declare type AcoStorageOperations = AcoFolderStorageOperations & AcoSearchRecordStorageOperations;
36
+ export interface AcoContext extends BaseContext, I18NContext, TenancyContext, SecurityContext, CmsContext {
37
+ aco: AdvancedContentOrganisation;
219
38
  }
package/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { TenancyContext } from \"@webiny/api-tenancy/types\";\nimport { Context as BaseContext } from \"@webiny/handler/types\";\nimport { I18NContext } from \"@webiny/api-i18n/types\";\nimport { SecurityContext, SecurityIdentity } from \"@webiny/api-security/types\";\nimport { Topic } from \"@webiny/pubsub/types\";\n\nexport interface CreatedBy {\n id: string;\n type: string;\n displayName: string | null;\n}\n\nexport interface ListMeta {\n cursor: string | null;\n totalCount: number;\n hasMoreItems: boolean;\n}\n\nexport interface Folder {\n id: string;\n name: string;\n slug: string;\n type: string;\n parentId?: string;\n createdOn: string;\n createdBy: CreatedBy;\n tenant: string;\n locale: string;\n webinyVersion: string;\n}\n\nexport type FolderInput = Pick<Folder, \"name\" | \"slug\" | \"type\" | \"parentId\">;\n\nexport interface GetFolderParams {\n id: string;\n}\n\nexport interface ListFoldersWhere {\n type: string;\n}\n\nexport interface ListFoldersParams {\n where: ListFoldersWhere;\n}\n\nexport interface CreateFolderParams {\n folder: Folder;\n}\n\nexport interface UpdateFolderParams {\n original: Folder;\n folder: Folder;\n}\n\nexport interface DeleteFolderParams {\n folder: Folder;\n}\n\nexport interface StorageOperationsGetFolderParams {\n id?: string;\n slug?: string;\n type?: string;\n parentId?: string;\n tenant: string;\n locale: string;\n}\n\nexport interface StorageOperationsListFoldersParams extends ListFoldersParams {\n where: ListFoldersParams[\"where\"] & {\n tenant: string;\n locale: string;\n };\n sort: string[];\n}\n\nexport type StorageOperationsCreateFolderParams = CreateFolderParams;\nexport type StorageOperationsUpdateFolderParams = UpdateFolderParams;\nexport type StorageOperationsDeleteFolderParams = DeleteFolderParams;\n\nexport interface OnFolderBeforeCreateTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderAfterCreateTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderBeforeUpdateTopicParams {\n folder: Folder;\n original: Folder;\n}\n\nexport interface OnFolderAfterUpdateTopicParams {\n folder: Folder;\n original: Folder;\n}\n\nexport interface OnFolderBeforeDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderAfterDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface Link {\n id: string;\n linkId: string;\n folderId: string;\n createdOn: string;\n createdBy: CreatedBy;\n tenant: string;\n locale: string;\n webinyVersion: string;\n}\n\nexport type LinkInput = Pick<Link, \"id\" | \"folderId\">;\n\nexport interface ListLinksWhere {\n folderId: string;\n}\n\nexport interface ListLinksParams {\n where: ListLinksWhere;\n limit?: number;\n after?: string | null;\n}\n\nexport type ListLinksResponse = [Link[], ListMeta];\n\nexport interface CreateLinkParams {\n link: Link;\n}\n\nexport interface UpdateLinkParams {\n original: Link;\n link: Link;\n}\n\nexport interface DeleteLinkParams {\n link: Link;\n}\n\nexport interface DeleteLinksParams {\n tenant: string;\n locale: string;\n folderIds: string[];\n}\n\nexport interface StorageOperationsGetLinkParams {\n id?: string;\n folderId?: string;\n tenant: string;\n locale: string;\n}\n\nexport interface StorageOperationsListLinksParams extends ListLinksParams {\n where: ListLinksParams[\"where\"] & {\n tenant: string;\n locale: string;\n };\n sort: string[];\n}\n\nexport type StorageOperationListLinksResponse = ListLinksResponse;\n\nexport type StorageOperationsCreateLinkParams = CreateLinkParams;\nexport type StorageOperationsUpdateLinkParams = UpdateLinkParams;\nexport type StorageOperationsDeleteLinkParams = DeleteLinkParams;\nexport type StorageOperationsDeleteLinksParams = DeleteLinksParams;\n\nexport interface OnLinkBeforeCreateTopicParams {\n link: Link;\n}\n\nexport interface OnLinkAfterCreateTopicParams {\n link: Link;\n}\n\nexport interface OnLinkBeforeUpdateTopicParams {\n link: Link;\n original: Link;\n}\n\nexport interface OnLinkAfterUpdateTopicParams {\n link: Link;\n original: Link;\n}\n\nexport interface OnLinkBeforeDeleteTopicParams {\n link: Link;\n}\n\nexport interface OnLinkAfterDeleteTopicParams {\n link: Link;\n}\n\nexport interface OnLinkBeforeDeleteBatchTopicParams {\n folderIds: string[];\n}\n\nexport interface OnLinkAfterDeleteBatchTopicParams {\n folderIds: string[];\n}\n\nexport interface ACOContext extends BaseContext, I18NContext, TenancyContext, SecurityContext {\n folders: Folders;\n}\n\nexport type Folders = IFolders & ILinks;\n\nexport interface IFolders {\n getFolder(params: GetFolderParams): Promise<Folder>;\n listFolders(params: ListFoldersParams): Promise<Folder[]>;\n createFolder(input: FolderInput): Promise<Folder>;\n updateFolder(id: string, input: Partial<Folder>): Promise<Folder>;\n deleteFolder(id: string): Promise<void>;\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 ILinks {\n getLink(id: string): Promise<Link>;\n listLinks(params: ListLinksParams): Promise<ListLinksResponse>;\n createLink(input: LinkInput): Promise<Link>;\n updateLink(id: string, input: Partial<Link>): Promise<Link>;\n deleteLink(id: string): Promise<void>;\n deleteLinks(folderIds: string[]): Promise<void>;\n onLinkBeforeCreate: Topic<OnLinkBeforeCreateTopicParams>;\n onLinkAfterCreate: Topic<OnLinkAfterCreateTopicParams>;\n onLinkBeforeUpdate: Topic<OnLinkBeforeUpdateTopicParams>;\n onLinkAfterUpdate: Topic<OnLinkAfterUpdateTopicParams>;\n onLinkBeforeDelete: Topic<OnLinkBeforeDeleteTopicParams>;\n onLinkAfterDelete: Topic<OnLinkAfterDeleteTopicParams>;\n onLinkBeforeDeleteBatch: Topic<OnLinkBeforeDeleteBatchTopicParams>;\n onLinkAfterDeleteBatch: Topic<OnLinkAfterDeleteBatchTopicParams>;\n}\n\nexport interface FoldersConfig {\n getTenantId: () => string;\n getLocaleCode: () => string;\n getIdentity: () => SecurityIdentity;\n storageOperations: StorageOperations;\n}\n\nexport type StorageOperations = FoldersStorageOperations & LinksStorageOperations;\n\nexport interface FoldersStorageOperations {\n getFolder(params: StorageOperationsGetFolderParams): Promise<Folder | undefined>;\n listFolders(params: StorageOperationsListFoldersParams): Promise<Folder[]>;\n createFolder(params: StorageOperationsCreateFolderParams): Promise<Folder>;\n updateFolder(params: StorageOperationsUpdateFolderParams): Promise<Folder>;\n deleteFolder(params: StorageOperationsDeleteFolderParams): Promise<void>;\n}\n\nexport interface LinksStorageOperations {\n getLink(params: StorageOperationsGetLinkParams): Promise<Link | undefined>;\n listLinks(params: StorageOperationsListLinksParams): Promise<StorageOperationListLinksResponse>;\n createLink(params: StorageOperationsCreateLinkParams): Promise<Link>;\n updateLink(params: StorageOperationsUpdateLinkParams): Promise<Link>;\n deleteLink(params: StorageOperationsDeleteLinkParams): Promise<void>;\n deleteLinks(params: StorageOperationsDeleteLinksParams): Promise<void>;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { Tenant, TenancyContext } from \"@webiny/api-tenancy/types\";\nimport { Context as BaseContext } from \"@webiny/handler/types\";\nimport { I18NContext, I18NLocale } from \"@webiny/api-i18n/types\";\nimport { SecurityContext, SecurityIdentity } from \"@webiny/api-security/types\";\nimport { CmsContext } from \"@webiny/api-headless-cms/types\";\nimport { AcoSearchRecordCrud, AcoSearchRecordStorageOperations } from \"~/record/record.types\";\nimport { AcoFolderCrud, AcoFolderStorageOperations } from \"~/folder/folder.types\";\n\nexport interface User {\n id: string;\n type: string;\n displayName: string | null;\n}\n\nexport interface ListMeta {\n cursor: string | null;\n totalCount: number;\n hasMoreItems: boolean;\n}\n\nexport interface AcoBaseFields {\n id: string;\n entryId: string;\n createdOn: string;\n createdBy: User;\n savedOn: string;\n}\n\nexport interface AdvancedContentOrganisation {\n folder: AcoFolderCrud;\n search: AcoSearchRecordCrud;\n}\n\nexport interface CreateAcoParams {\n getIdentity: () => SecurityIdentity;\n getLocale: () => I18NLocale;\n getTenant: () => Tenant;\n storageOperations: AcoStorageOperations;\n}\n\nexport type AcoStorageOperations = AcoFolderStorageOperations & AcoSearchRecordStorageOperations;\n\nexport interface AcoContext\n extends BaseContext,\n I18NContext,\n TenancyContext,\n SecurityContext,\n CmsContext {\n aco: AdvancedContentOrganisation;\n}\n"],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { CmsModelField } from "@webiny/api-headless-cms/types";
2
+ export interface CreateModelFieldParams extends Omit<CmsModelField, "id" | "storageId" | "fieldId"> {
3
+ fieldId?: string;
4
+ parent: string;
5
+ }
6
+ export declare const createModelField: (params: CreateModelFieldParams) => CmsModelField;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createModelField = void 0;
8
+ var _camelCase = _interopRequireDefault(require("lodash/camelCase"));
9
+ const createModelField = params => {
10
+ const {
11
+ label,
12
+ fieldId: initialFieldId,
13
+ type,
14
+ parent,
15
+ settings = {},
16
+ listValidation = [],
17
+ validation = [],
18
+ multipleValues = false,
19
+ predefinedValues = {
20
+ values: [],
21
+ enabled: false
22
+ }
23
+ } = params;
24
+ const fieldId = initialFieldId ? (0, _camelCase.default)(initialFieldId) : (0, _camelCase.default)(label);
25
+ const id = `${(0, _camelCase.default)(parent)}_${fieldId}`;
26
+ return {
27
+ id,
28
+ storageId: fieldId,
29
+ fieldId,
30
+ label,
31
+ type,
32
+ settings,
33
+ listValidation,
34
+ validation,
35
+ multipleValues,
36
+ predefinedValues
37
+ };
38
+ };
39
+ exports.createModelField = createModelField;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createModelField","params","label","fieldId","initialFieldId","type","parent","settings","listValidation","validation","multipleValues","predefinedValues","values","enabled","camelCase","id","storageId"],"sources":["createModelField.ts"],"sourcesContent":["import { CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport camelCase from \"lodash/camelCase\";\n\nexport interface CreateModelFieldParams\n extends Omit<CmsModelField, \"id\" | \"storageId\" | \"fieldId\"> {\n fieldId?: string;\n parent: string;\n}\n\nexport const createModelField = (params: CreateModelFieldParams): CmsModelField => {\n const {\n label,\n fieldId: initialFieldId,\n type,\n parent,\n settings = {},\n listValidation = [],\n validation = [],\n multipleValues = false,\n predefinedValues = {\n values: [],\n enabled: false\n }\n } = params;\n\n const fieldId = initialFieldId ? camelCase(initialFieldId) : camelCase(label);\n const id = `${camelCase(parent)}_${fieldId}`;\n\n return {\n id,\n storageId: fieldId,\n fieldId,\n label,\n type,\n settings,\n listValidation,\n validation,\n multipleValues,\n predefinedValues\n };\n};\n"],"mappings":";;;;;;;AACA;AAQO,MAAMA,gBAAgB,GAAIC,MAA8B,IAAoB;EAC/E,MAAM;IACFC,KAAK;IACLC,OAAO,EAAEC,cAAc;IACvBC,IAAI;IACJC,MAAM;IACNC,QAAQ,GAAG,CAAC,CAAC;IACbC,cAAc,GAAG,EAAE;IACnBC,UAAU,GAAG,EAAE;IACfC,cAAc,GAAG,KAAK;IACtBC,gBAAgB,GAAG;MACfC,MAAM,EAAE,EAAE;MACVC,OAAO,EAAE;IACb;EACJ,CAAC,GAAGZ,MAAM;EAEV,MAAME,OAAO,GAAGC,cAAc,GAAG,IAAAU,kBAAS,EAACV,cAAc,CAAC,GAAG,IAAAU,kBAAS,EAACZ,KAAK,CAAC;EAC7E,MAAMa,EAAE,GAAI,GAAE,IAAAD,kBAAS,EAACR,MAAM,CAAE,IAAGH,OAAQ,EAAC;EAE5C,OAAO;IACHY,EAAE;IACFC,SAAS,EAAEb,OAAO;IAClBA,OAAO;IACPD,KAAK;IACLG,IAAI;IACJE,QAAQ;IACRC,cAAc;IACdC,UAAU;IACVC,cAAc;IACdC;EACJ,CAAC;AACL,CAAC;AAAC"}
@@ -0,0 +1,16 @@
1
+ import { CmsContext, CmsEntry, CmsModel } from "@webiny/api-headless-cms/types";
2
+ import { AcoBaseFields } from "../types";
3
+ interface Transformer {
4
+ fieldId: keyof AcoBaseFields;
5
+ model: any;
6
+ field: any;
7
+ }
8
+ interface GetFieldValuesParams {
9
+ entry: CmsEntry;
10
+ fields: string[];
11
+ transformers?: Transformer[];
12
+ context: CmsContext;
13
+ }
14
+ export declare const getFieldValues: <T extends AcoBaseFields>(params: GetFieldValuesParams) => Promise<T>;
15
+ export declare const getTransformer: (model: CmsModel, fieldId: string) => Transformer;
16
+ export {};
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getTransformer = exports.getFieldValues = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _pick = _interopRequireDefault(require("lodash/pick"));
10
+ var _apiHeadlessCms = require("@webiny/api-headless-cms");
11
+ const getFieldValues = async params => {
12
+ const {
13
+ entry,
14
+ context,
15
+ transformers = [],
16
+ fields
17
+ } = params;
18
+ const values = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _pick.default)(entry, fields)), entry.values);
19
+ /**
20
+ * Transform field value for each transformers.
21
+ */
22
+ for (const transformer of transformers) {
23
+ const {
24
+ fieldId,
25
+ model,
26
+ field
27
+ } = transformer;
28
+ // Get transformed value (eg. data decompression)
29
+ values[fieldId] = await (0, _apiHeadlessCms.entryFieldFromStorageTransform)({
30
+ context,
31
+ model,
32
+ field,
33
+ value: values[fieldId]
34
+ });
35
+ }
36
+ return values;
37
+ };
38
+ exports.getFieldValues = getFieldValues;
39
+ const getTransformer = (model, fieldId) => ({
40
+ fieldId: fieldId,
41
+ model: model,
42
+ field: model.fields.find(field => field.fieldId === fieldId)
43
+ });
44
+ exports.getTransformer = getTransformer;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getFieldValues","params","entry","context","transformers","fields","values","pick","transformer","fieldId","model","field","entryFieldFromStorageTransform","value","getTransformer","find"],"sources":["fieldResolver.ts"],"sourcesContent":["import pick from \"lodash/pick\";\nimport { CmsContext, CmsEntry, CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { entryFieldFromStorageTransform } from \"@webiny/api-headless-cms\";\nimport { AcoBaseFields } from \"~/types\";\n\ninterface Transformer {\n fieldId: keyof AcoBaseFields;\n model: any;\n field: any;\n}\n\ninterface GetFieldValuesParams {\n entry: CmsEntry;\n fields: string[];\n transformers?: Transformer[];\n context: CmsContext;\n}\n\nexport const getFieldValues = async <T extends AcoBaseFields>(\n params: GetFieldValuesParams\n): Promise<T> => {\n const { entry, context, transformers = [], fields } = params;\n const values = {\n ...pick(entry, fields),\n ...entry.values\n } as T;\n /**\n * Transform field value for each transformers.\n */\n for (const transformer of transformers) {\n const { fieldId, model, field } = transformer;\n // Get transformed value (eg. data decompression)\n values[fieldId] = await entryFieldFromStorageTransform({\n context,\n model,\n field,\n value: values[fieldId]\n });\n }\n\n return values;\n};\n\nexport const getTransformer = (model: CmsModel, fieldId: string): Transformer => ({\n fieldId: fieldId as unknown as keyof AcoBaseFields,\n model: model,\n field: model.fields.find(field => field.fieldId === fieldId)\n});\n"],"mappings":";;;;;;;;AAAA;AAEA;AAgBO,MAAMA,cAAc,GAAG,MAC1BC,MAA4B,IACf;EACb,MAAM;IAAEC,KAAK;IAAEC,OAAO;IAAEC,YAAY,GAAG,EAAE;IAAEC;EAAO,CAAC,GAAGJ,MAAM;EAC5D,MAAMK,MAAM,+DACL,IAAAC,aAAI,EAACL,KAAK,EAAEG,MAAM,CAAC,GACnBH,KAAK,CAACI,MAAM,CACb;EACN;AACJ;AACA;EACI,KAAK,MAAME,WAAW,IAAIJ,YAAY,EAAE;IACpC,MAAM;MAAEK,OAAO;MAAEC,KAAK;MAAEC;IAAM,CAAC,GAAGH,WAAW;IAC7C;IACAF,MAAM,CAACG,OAAO,CAAC,GAAG,MAAM,IAAAG,8CAA8B,EAAC;MACnDT,OAAO;MACPO,KAAK;MACLC,KAAK;MACLE,KAAK,EAAEP,MAAM,CAACG,OAAO;IACzB,CAAC,CAAC;EACN;EAEA,OAAOH,MAAM;AACjB,CAAC;AAAC;AAEK,MAAMQ,cAAc,GAAG,CAACJ,KAAe,EAAED,OAAe,MAAmB;EAC9EA,OAAO,EAAEA,OAAyC;EAClDC,KAAK,EAAEA,KAAK;EACZC,KAAK,EAAED,KAAK,CAACL,MAAM,CAACU,IAAI,CAACJ,KAAK,IAAIA,KAAK,CAACF,OAAO,KAAKA,OAAO;AAC/D,CAAC,CAAC;AAAC"}
@@ -0,0 +1,2 @@
1
+ import { CmsEntry } from "@webiny/api-headless-cms/types";
2
+ export declare function getFieldValues(entry: CmsEntry, fields: string[]): any;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getFieldValues = getFieldValues;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _pick = _interopRequireDefault(require("lodash/pick"));
10
+ function getFieldValues(entry, fields) {
11
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _pick.default)(entry, fields)), entry.values);
12
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getFieldValues","entry","fields","pick","values"],"sources":["getFieldValues.ts"],"sourcesContent":["import pick from \"lodash/pick\";\n\nimport { CmsEntry } from \"@webiny/api-headless-cms/types\";\n\nexport function getFieldValues(entry: CmsEntry, fields: string[]): any {\n return { ...pick(entry, fields), ...entry.values };\n}\n"],"mappings":";;;;;;;;AAAA;AAIO,SAASA,cAAc,CAACC,KAAe,EAAEC,MAAgB,EAAO;EACnE,mEAAY,IAAAC,aAAI,EAACF,KAAK,EAAEC,MAAM,CAAC,GAAKD,KAAK,CAACG,MAAM;AACpD"}
@@ -0,0 +1,4 @@
1
+ import { AcoContext } from "../types";
2
+ declare type CheckInstallationParams = Pick<AcoContext, "tenancy" | "i18n">;
3
+ export declare const isInstallationPending: ({ tenancy, i18n }: CheckInstallationParams) => boolean;
4
+ export {};
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isInstallationPending = void 0;
7
+ const isInstallationPending = ({
8
+ tenancy,
9
+ i18n
10
+ }) => {
11
+ /**
12
+ * In case of a fresh webiny project "tenant" and "locale" won't be there until
13
+ * installation is completed. So, we need to skip "ACO" creation till then.
14
+ */
15
+ const tenant = tenancy.getCurrentTenant();
16
+ if (!tenant) {
17
+ return true;
18
+ }
19
+ return !i18n.getContentLocale();
20
+ };
21
+ exports.isInstallationPending = isInstallationPending;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isInstallationPending","tenancy","i18n","tenant","getCurrentTenant","getContentLocale"],"sources":["isInstallationPending.ts"],"sourcesContent":["import { AcoContext } from \"~/types\";\n\ntype CheckInstallationParams = Pick<AcoContext, \"tenancy\" | \"i18n\">;\nexport const isInstallationPending = ({ tenancy, i18n }: CheckInstallationParams): boolean => {\n /**\n * In case of a fresh webiny project \"tenant\" and \"locale\" won't be there until\n * installation is completed. So, we need to skip \"ACO\" creation till then.\n */\n const tenant = tenancy.getCurrentTenant();\n if (!tenant) {\n return true;\n }\n\n return !i18n.getContentLocale();\n};\n"],"mappings":";;;;;;AAGO,MAAMA,qBAAqB,GAAG,CAAC;EAAEC,OAAO;EAAEC;AAA8B,CAAC,KAAc;EAC1F;AACJ;AACA;AACA;EACI,MAAMC,MAAM,GAAGF,OAAO,CAACG,gBAAgB,EAAE;EACzC,IAAI,CAACD,MAAM,EAAE;IACT,OAAO,IAAI;EACf;EAEA,OAAO,CAACD,IAAI,CAACG,gBAAgB,EAAE;AACnC,CAAC;AAAC"}
@@ -0,0 +1,15 @@
1
+ import { CmsModelPlugin } from "@webiny/api-headless-cms";
2
+ import { CmsModel, CmsGroup } from "@webiny/api-headless-cms/types";
3
+ interface Params {
4
+ group: Pick<CmsGroup, "id" | "name">;
5
+ /**
6
+ * Locale and tenant do not need to be defined.
7
+ * In that case model is not bound to any locale or tenant.
8
+ * You can bind it to locale, tenant, both or none.
9
+ */
10
+ locale?: string;
11
+ tenant?: string;
12
+ modelDefinition: Omit<CmsModel, "locale" | "tenant" | "webinyVersion" | "group">;
13
+ }
14
+ export declare const modelFactory: (params: Params) => CmsModelPlugin;
15
+ export {};
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.modelFactory = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _apiHeadlessCms = require("@webiny/api-headless-cms");
10
+ const modelFactory = params => {
11
+ const {
12
+ group,
13
+ locale,
14
+ tenant,
15
+ modelDefinition
16
+ } = params;
17
+ return (0, _apiHeadlessCms.createCmsModel)((0, _objectSpread2.default)({
18
+ group,
19
+ locale,
20
+ tenant
21
+ }, modelDefinition));
22
+ };
23
+ exports.modelFactory = modelFactory;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["modelFactory","params","group","locale","tenant","modelDefinition","createCmsModel"],"sources":["modelFactory.ts"],"sourcesContent":["import { CmsModelPlugin, createCmsModel } from \"@webiny/api-headless-cms\";\nimport { CmsModel, CmsGroup } from \"@webiny/api-headless-cms/types\";\n\ninterface Params {\n group: Pick<CmsGroup, \"id\" | \"name\">;\n /**\n * Locale and tenant do not need to be defined.\n * In that case model is not bound to any locale or tenant.\n * You can bind it to locale, tenant, both or none.\n */\n locale?: string;\n tenant?: string;\n modelDefinition: Omit<CmsModel, \"locale\" | \"tenant\" | \"webinyVersion\" | \"group\">;\n}\n\nexport const modelFactory = (params: Params): CmsModelPlugin => {\n const { group, locale, tenant, modelDefinition } = params;\n\n return createCmsModel({\n group,\n locale,\n tenant,\n ...modelDefinition\n });\n};\n"],"mappings":";;;;;;;;AAAA;AAeO,MAAMA,YAAY,GAAIC,MAAc,IAAqB;EAC5D,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC,MAAM;IAAEC;EAAgB,CAAC,GAAGJ,MAAM;EAEzD,OAAO,IAAAK,8BAAc;IACjBJ,KAAK;IACLC,MAAM;IACNC;EAAM,GACHC,eAAe,EACpB;AACN,CAAC;AAAC"}
@@ -0,0 +1,2 @@
1
+ import { Response, ErrorResponse } from "@webiny/handler-graphql";
2
+ export declare const resolve: (fn: () => Promise<any>) => Promise<ErrorResponse | Response<any>>;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.resolve = void 0;
7
+ var _handlerGraphql = require("@webiny/handler-graphql");
8
+ const resolve = async fn => {
9
+ try {
10
+ return new _handlerGraphql.Response(await fn());
11
+ } catch (e) {
12
+ return new _handlerGraphql.ErrorResponse(e);
13
+ }
14
+ };
15
+ exports.resolve = resolve;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["resolve","fn","Response","e","ErrorResponse"],"sources":["resolve.ts"],"sourcesContent":["import { Response, ErrorResponse } from \"@webiny/handler-graphql\";\n\nexport const resolve = async (fn: () => Promise<any>) => {\n try {\n return new Response(await fn());\n } catch (e) {\n return new ErrorResponse(e);\n }\n};\n"],"mappings":";;;;;;AAAA;AAEO,MAAMA,OAAO,GAAG,MAAOC,EAAsB,IAAK;EACrD,IAAI;IACA,OAAO,IAAIC,wBAAQ,CAAC,MAAMD,EAAE,EAAE,CAAC;EACnC,CAAC,CAAC,OAAOE,CAAC,EAAE;IACR,OAAO,IAAIC,6BAAa,CAACD,CAAC,CAAC;EAC/B;AACJ,CAAC;AAAC"}
@@ -1,2 +0,0 @@
1
- import { FoldersConfig, IFolders } from "../types";
2
- export declare const createFoldersContext: ({ getTenantId, getLocaleCode, getIdentity, storageOperations }: FoldersConfig) => Promise<IFolders>;