@webiny/api-aco 0.0.0-unstable.99666aeb00 → 0.0.0-unstable.a9593f74dd

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 (138) hide show
  1. package/apps/AcoApp.d.ts +5 -0
  2. package/apps/AcoApp.js +56 -21
  3. package/apps/AcoApp.js.map +1 -1
  4. package/apps/AcoApps.js +7 -8
  5. package/apps/AcoApps.js.map +1 -1
  6. package/apps/app.gql.js +6 -4
  7. package/apps/app.gql.js.map +1 -1
  8. package/apps/index.js +3 -1
  9. package/apps/index.js.map +1 -1
  10. package/createAcoContext.d.ts +5 -1
  11. package/createAcoContext.js +119 -25
  12. package/createAcoContext.js.map +1 -1
  13. package/createAcoGraphQL.js +6 -2
  14. package/createAcoGraphQL.js.map +1 -1
  15. package/createAcoHooks.js +9 -3
  16. package/createAcoHooks.js.map +1 -1
  17. package/createAcoModels.js +6 -19
  18. package/createAcoModels.js.map +1 -1
  19. package/createAcoStorageOperations.d.ts +0 -1
  20. package/createAcoStorageOperations.js +10 -7
  21. package/createAcoStorageOperations.js.map +1 -1
  22. package/fields/index.js +3 -1
  23. package/fields/index.js.map +1 -1
  24. package/fields/location.js +3 -1
  25. package/fields/location.js.map +1 -1
  26. package/filter/filter.crud.d.ts +3 -0
  27. package/filter/filter.crud.js +94 -0
  28. package/filter/filter.crud.js.map +1 -0
  29. package/filter/filter.gql.d.ts +3 -0
  30. package/filter/filter.gql.js +153 -0
  31. package/filter/filter.gql.js.map +1 -0
  32. package/filter/filter.model.d.ts +2 -0
  33. package/filter/filter.model.js +125 -0
  34. package/filter/filter.model.js.map +1 -0
  35. package/filter/filter.so.d.ts +3 -0
  36. package/filter/filter.so.js +98 -0
  37. package/filter/filter.so.js.map +1 -0
  38. package/filter/filter.types.d.ts +95 -0
  39. package/filter/filter.types.js +14 -0
  40. package/filter/filter.types.js.map +1 -0
  41. package/folder/folder.crud.d.ts +8 -1
  42. package/folder/folder.crud.js +194 -15
  43. package/folder/folder.crud.js.map +1 -1
  44. package/folder/folder.gql.js +85 -8
  45. package/folder/folder.gql.js.map +1 -1
  46. package/folder/folder.model.d.ts +1 -3
  47. package/folder/folder.model.js +54 -7
  48. package/folder/folder.model.js.map +1 -1
  49. package/folder/folder.so.js +38 -18
  50. package/folder/folder.so.js.map +1 -1
  51. package/folder/folder.types.d.ts +28 -2
  52. package/folder/folder.types.js +3 -1
  53. package/folder/folder.types.js.map +1 -1
  54. package/folder/onFolderBeforeDeleteAco.hook.d.ts +2 -0
  55. package/folder/onFolderBeforeDeleteAco.hook.js +67 -0
  56. package/folder/onFolderBeforeDeleteAco.hook.js.map +1 -0
  57. package/folder/onFolderBeforeDeleteFm.hook.d.ts +2 -0
  58. package/folder/onFolderBeforeDeleteFm.hook.js +49 -0
  59. package/folder/onFolderBeforeDeleteFm.hook.js.map +1 -0
  60. package/folder/onFolderBeforeDeleteHcms.hook.d.ts +2 -0
  61. package/folder/onFolderBeforeDeleteHcms.hook.js +56 -0
  62. package/folder/onFolderBeforeDeleteHcms.hook.js.map +1 -0
  63. package/index.d.ts +5 -1
  64. package/index.js +14 -4
  65. package/index.js.map +1 -1
  66. package/package.json +31 -27
  67. package/plugins/AcoAppModifierPlugin.js +4 -5
  68. package/plugins/AcoAppModifierPlugin.js.map +1 -1
  69. package/plugins/AcoAppRegisterPlugin.js +4 -5
  70. package/plugins/AcoAppRegisterPlugin.js.map +1 -1
  71. package/plugins/index.js +3 -1
  72. package/plugins/index.js.map +1 -1
  73. package/record/graphql/createAppResolvers.js +26 -19
  74. package/record/graphql/createAppResolvers.js.map +1 -1
  75. package/record/graphql/createAppSchema.js +10 -5
  76. package/record/graphql/createAppSchema.js.map +1 -1
  77. package/record/record.crud.js +3 -1
  78. package/record/record.crud.js.map +1 -1
  79. package/record/record.gql.js +3 -1
  80. package/record/record.gql.js.map +1 -1
  81. package/record/record.model.d.ts +1 -3
  82. package/record/record.model.js +7 -7
  83. package/record/record.model.js.map +1 -1
  84. package/record/record.so.js +35 -23
  85. package/record/record.so.js.map +1 -1
  86. package/record/record.types.d.ts +4 -3
  87. package/record/record.types.js +3 -1
  88. package/record/record.types.js.map +1 -1
  89. package/types.d.ts +23 -6
  90. package/types.js +25 -4
  91. package/types.js.map +1 -1
  92. package/utils/FolderLevelPermissions.d.ts +71 -0
  93. package/utils/FolderLevelPermissions.js +353 -0
  94. package/utils/FolderLevelPermissions.js.map +1 -0
  95. package/utils/acoRecordId.js +3 -1
  96. package/utils/acoRecordId.js.map +1 -1
  97. package/utils/createListSort.js +3 -1
  98. package/utils/createListSort.js.map +1 -1
  99. package/utils/createModelField.js +3 -1
  100. package/utils/createModelField.js.map +1 -1
  101. package/utils/createOperationsWrapper.js +3 -1
  102. package/utils/createOperationsWrapper.js.map +1 -1
  103. package/utils/decorators/CmsEntriesCrudDecorators.d.ts +11 -0
  104. package/utils/decorators/CmsEntriesCrudDecorators.js +232 -0
  105. package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -0
  106. package/utils/decorators/constants.d.ts +1 -0
  107. package/utils/decorators/constants.js +10 -0
  108. package/utils/decorators/constants.js.map +1 -0
  109. package/utils/decorators/where.d.ts +14 -0
  110. package/utils/decorators/where.js +52 -0
  111. package/utils/decorators/where.js.map +1 -0
  112. package/utils/ensureAuthentication.d.ts +2 -0
  113. package/utils/{checkPermissions.js → ensureAuthentication.js} +5 -3
  114. package/utils/ensureAuthentication.js.map +1 -0
  115. package/utils/getFolderAndItsAncestors.d.ts +2 -2
  116. package/utils/getFolderAndItsAncestors.js +16 -11
  117. package/utils/getFolderAndItsAncestors.js.map +1 -1
  118. package/utils/isInstallationPending.js +3 -1
  119. package/utils/isInstallationPending.js.map +1 -1
  120. package/utils/modelFactory.d.ts +1 -3
  121. package/utils/modelFactory.js +7 -10
  122. package/utils/modelFactory.js.map +1 -1
  123. package/utils/pickEntryFieldValues.d.ts +3 -0
  124. package/utils/pickEntryFieldValues.js +31 -0
  125. package/utils/pickEntryFieldValues.js.map +1 -0
  126. package/utils/resolve.js +3 -1
  127. package/utils/resolve.js.map +1 -1
  128. package/folder/onFolderBeforeDelete.hook.d.ts +0 -2
  129. package/folder/onFolderBeforeDelete.hook.js +0 -66
  130. package/folder/onFolderBeforeDelete.hook.js.map +0 -1
  131. package/utils/checkPermissions.d.ts +0 -2
  132. package/utils/checkPermissions.js.map +0 -1
  133. package/utils/fieldResolver.d.ts +0 -16
  134. package/utils/fieldResolver.js +0 -44
  135. package/utils/fieldResolver.js.map +0 -1
  136. package/utils/getFieldValues.d.ts +0 -5
  137. package/utils/getFieldValues.js +0 -16
  138. package/utils/getFieldValues.js.map +0 -1
@@ -1,11 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.createAppSchema = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
7
  var _renderFields = require("@webiny/api-headless-cms/utils/renderFields");
10
8
  var _renderInputFields = require("@webiny/api-headless-cms/utils/renderInputFields");
11
9
  var _renderListFilterFields = require("@webiny/api-headless-cms/utils/renderListFilterFields");
@@ -27,7 +25,9 @@ const createUpdateFields = fields => {
27
25
  collection.push(field);
28
26
  return collection;
29
27
  }
30
- collection.push(removeFieldRequiredValidation((0, _objectSpread2.default)({}, field)));
28
+ collection.push(removeFieldRequiredValidation({
29
+ ...field
30
+ }));
31
31
  return collection;
32
32
  }, []);
33
33
  };
@@ -80,9 +80,12 @@ const createAppSchema = params => {
80
80
 
81
81
  type ${apiName} {
82
82
  id: ID!
83
- savedOn: DateTime!
84
83
  createdOn: DateTime!
84
+ modifiedOn: DateTime
85
+ savedOn: DateTime!
85
86
  createdBy: AcoUser!
87
+ modifiedBy: AcoUser
88
+ savedBy: AcoUser!
86
89
  ${fieldTypes.map(f => f.fields).join("\n")}
87
90
  }
88
91
 
@@ -139,4 +142,6 @@ const createAppSchema = params => {
139
142
  `
140
143
  );
141
144
  };
142
- exports.createAppSchema = createAppSchema;
145
+ exports.createAppSchema = createAppSchema;
146
+
147
+ //# sourceMappingURL=createAppSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["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"],"sources":["createAppSchema.ts"],"sourcesContent":["import { 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 { 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 savedOn: DateTime!\n createdOn: DateTime!\n createdBy: 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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"}
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 { 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 { 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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"}
@@ -123,4 +123,6 @@ const createSearchRecordCrudMethods = ({
123
123
  }
124
124
  };
125
125
  };
126
- exports.createSearchRecordCrudMethods = createSearchRecordCrudMethods;
126
+ exports.createSearchRecordCrudMethods = createSearchRecordCrudMethods;
127
+
128
+ //# sourceMappingURL=record.crud.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createSearchRecordCrudMethods","storageOperations","onSearchRecordBeforeCreate","createTopic","onSearchRecordAfterCreate","onSearchRecordBeforeUpdate","onSearchRecordAfterUpdate","onSearchRecordBeforeMove","onSearchRecordAfterMove","onSearchRecordBeforeDelete","onSearchRecordAfterDelete","get","model","id","getRecord","list","params","listRecords","create","data","publish","input","record","createRecord","update","original","updateRecord","move","folderId","result","moveRecord","delete","deleteRecord","listTags"],"sources":["record.crud.ts"],"sourcesContent":["import { createTopic } from \"@webiny/pubsub\";\nimport {\n CreateAcoParams,\n OnSearchRecordAfterMoveTopicParams,\n OnSearchRecordBeforeMoveTopicParams\n} from \"~/types\";\nimport {\n AcoSearchRecordCrud,\n OnSearchRecordAfterCreateTopicParams,\n OnSearchRecordAfterDeleteTopicParams,\n OnSearchRecordAfterUpdateTopicParams,\n OnSearchRecordBeforeCreateTopicParams,\n OnSearchRecordBeforeDeleteTopicParams,\n OnSearchRecordBeforeUpdateTopicParams\n} from \"./record.types\";\n\nexport const createSearchRecordCrudMethods = ({\n storageOperations\n}: CreateAcoParams): AcoSearchRecordCrud => {\n // create\n const onSearchRecordBeforeCreate = createTopic<OnSearchRecordBeforeCreateTopicParams>(\n \"aco.onSearchRecordBeforeCreate\"\n );\n const onSearchRecordAfterCreate = createTopic<OnSearchRecordAfterCreateTopicParams>(\n \"aco.onSearchRecordAfterCreate\"\n );\n // update\n const onSearchRecordBeforeUpdate = createTopic<OnSearchRecordBeforeUpdateTopicParams>(\n \"aco.onSearchRecordBeforeUpdate\"\n );\n const onSearchRecordAfterUpdate = createTopic<OnSearchRecordAfterUpdateTopicParams>(\n \"aco.onSearchRecordAfterUpdate\"\n );\n // move\n const onSearchRecordBeforeMove = createTopic<OnSearchRecordBeforeMoveTopicParams>(\n \"aco.onSearchRecordBeforeMove\"\n );\n const onSearchRecordAfterMove = createTopic<OnSearchRecordAfterMoveTopicParams>(\n \"aco.onSearchRecordAfterMove\"\n );\n // delete\n const onSearchRecordBeforeDelete = createTopic<OnSearchRecordBeforeDeleteTopicParams>(\n \"aco.onSearchRecordBeforeDelete\"\n );\n const onSearchRecordAfterDelete = createTopic<OnSearchRecordAfterDeleteTopicParams>(\n \"aco.onSearchRecordAfterDelete\"\n );\n\n return {\n /**\n * Lifecycle events\n */\n onSearchRecordBeforeCreate,\n onSearchRecordAfterCreate,\n onSearchRecordBeforeUpdate,\n onSearchRecordAfterUpdate,\n onSearchRecordBeforeMove,\n onSearchRecordAfterMove,\n onSearchRecordBeforeDelete,\n onSearchRecordAfterDelete,\n async get(model, id) {\n return storageOperations.getRecord(model, { id });\n },\n async list(model, params) {\n return storageOperations.listRecords(model, params);\n },\n async create(model, data) {\n await onSearchRecordBeforeCreate.publish({ model, input: data });\n const record = await storageOperations.createRecord(model, { data });\n await onSearchRecordAfterCreate.publish({ model, record });\n return record;\n },\n async update(model, id, data) {\n const original = await storageOperations.getRecord(model, { id });\n await onSearchRecordBeforeUpdate.publish({ model, original, input: { id, data } });\n const record = await storageOperations.updateRecord(model, { id, data });\n await onSearchRecordAfterUpdate.publish({\n model,\n original,\n input: { id, data },\n record\n });\n return record;\n },\n async move(model, id, folderId) {\n const original = await storageOperations.getRecord(model, { id });\n await onSearchRecordBeforeMove.publish({ model, original, folderId });\n const result = await storageOperations.moveRecord(model, {\n id,\n folderId\n });\n await onSearchRecordAfterMove.publish({\n model,\n original,\n folderId\n });\n return result;\n },\n async delete(model, id: string) {\n const record = await storageOperations.getRecord(model, { id });\n await onSearchRecordBeforeDelete.publish({ model, record });\n await storageOperations.deleteRecord(model, { id });\n await onSearchRecordAfterDelete.publish({ model, record });\n return true;\n },\n async listTags(model, params) {\n return storageOperations.listTags(model, params);\n }\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_pubsub","require","createSearchRecordCrudMethods","storageOperations","onSearchRecordBeforeCreate","createTopic","onSearchRecordAfterCreate","onSearchRecordBeforeUpdate","onSearchRecordAfterUpdate","onSearchRecordBeforeMove","onSearchRecordAfterMove","onSearchRecordBeforeDelete","onSearchRecordAfterDelete","get","model","id","getRecord","list","params","listRecords","create","data","publish","input","record","createRecord","update","original","updateRecord","move","folderId","result","moveRecord","delete","deleteRecord","listTags","exports"],"sources":["record.crud.ts"],"sourcesContent":["import { createTopic } from \"@webiny/pubsub\";\nimport {\n CreateAcoParams,\n OnSearchRecordAfterMoveTopicParams,\n OnSearchRecordBeforeMoveTopicParams\n} from \"~/types\";\nimport {\n AcoSearchRecordCrud,\n OnSearchRecordAfterCreateTopicParams,\n OnSearchRecordAfterDeleteTopicParams,\n OnSearchRecordAfterUpdateTopicParams,\n OnSearchRecordBeforeCreateTopicParams,\n OnSearchRecordBeforeDeleteTopicParams,\n OnSearchRecordBeforeUpdateTopicParams\n} from \"./record.types\";\n\nexport const createSearchRecordCrudMethods = ({\n storageOperations\n}: CreateAcoParams): AcoSearchRecordCrud => {\n // create\n const onSearchRecordBeforeCreate = createTopic<OnSearchRecordBeforeCreateTopicParams>(\n \"aco.onSearchRecordBeforeCreate\"\n );\n const onSearchRecordAfterCreate = createTopic<OnSearchRecordAfterCreateTopicParams>(\n \"aco.onSearchRecordAfterCreate\"\n );\n // update\n const onSearchRecordBeforeUpdate = createTopic<OnSearchRecordBeforeUpdateTopicParams>(\n \"aco.onSearchRecordBeforeUpdate\"\n );\n const onSearchRecordAfterUpdate = createTopic<OnSearchRecordAfterUpdateTopicParams>(\n \"aco.onSearchRecordAfterUpdate\"\n );\n // move\n const onSearchRecordBeforeMove = createTopic<OnSearchRecordBeforeMoveTopicParams>(\n \"aco.onSearchRecordBeforeMove\"\n );\n const onSearchRecordAfterMove = createTopic<OnSearchRecordAfterMoveTopicParams>(\n \"aco.onSearchRecordAfterMove\"\n );\n // delete\n const onSearchRecordBeforeDelete = createTopic<OnSearchRecordBeforeDeleteTopicParams>(\n \"aco.onSearchRecordBeforeDelete\"\n );\n const onSearchRecordAfterDelete = createTopic<OnSearchRecordAfterDeleteTopicParams>(\n \"aco.onSearchRecordAfterDelete\"\n );\n\n return {\n /**\n * Lifecycle events\n */\n onSearchRecordBeforeCreate,\n onSearchRecordAfterCreate,\n onSearchRecordBeforeUpdate,\n onSearchRecordAfterUpdate,\n onSearchRecordBeforeMove,\n onSearchRecordAfterMove,\n onSearchRecordBeforeDelete,\n onSearchRecordAfterDelete,\n async get(model, id) {\n return storageOperations.getRecord(model, { id });\n },\n async list(model, params) {\n return storageOperations.listRecords(model, params);\n },\n async create(model, data) {\n await onSearchRecordBeforeCreate.publish({ model, input: data });\n const record = await storageOperations.createRecord(model, { data });\n await onSearchRecordAfterCreate.publish({ model, record });\n return record;\n },\n async update(model, id, data) {\n const original = await storageOperations.getRecord(model, { id });\n await onSearchRecordBeforeUpdate.publish({ model, original, input: { id, data } });\n const record = await storageOperations.updateRecord(model, { id, data });\n await onSearchRecordAfterUpdate.publish({\n model,\n original,\n input: { id, data },\n record\n });\n return record;\n },\n async move(model, id, folderId) {\n const original = await storageOperations.getRecord(model, { id });\n await onSearchRecordBeforeMove.publish({ model, original, folderId });\n const result = await storageOperations.moveRecord(model, {\n id,\n folderId\n });\n await onSearchRecordAfterMove.publish({\n model,\n original,\n folderId\n });\n return result;\n },\n async delete(model, id: string) {\n const record = await storageOperations.getRecord(model, { id });\n await onSearchRecordBeforeDelete.publish({ model, record });\n await storageOperations.deleteRecord(model, { id });\n await onSearchRecordAfterDelete.publish({ model, record });\n return true;\n },\n async listTags(model, params) {\n return storageOperations.listTags(model, params);\n }\n };\n};\n"],"mappings":"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"}
@@ -38,4 +38,6 @@ const createSchema = async params => {
38
38
  return plugin;
39
39
  });
40
40
  };
41
- exports.createSchema = createSchema;
41
+ exports.createSchema = createSchema;
42
+
43
+ //# sourceMappingURL=record.gql.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createSchema","params","context","app","plugins","byType","reduce","fields","plugin","fieldType","models","security","withoutAuthorization","cms","listModels","filter","model","isPrivate","benchmark","measure","name","GraphQLSchemaPlugin","typeDefs","createAppSchema","resolvers","createAppResolvers"],"sources":["record.gql.ts"],"sourcesContent":["import { AcoContext, IAcoApp } from \"~/types\";\nimport { CmsFieldTypePlugins, CmsModelFieldToGraphQLPlugin } from \"@webiny/api-headless-cms/types\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { createAppSchema } from \"./graphql/createAppSchema\";\nimport { createAppResolvers } from \"./graphql/createAppResolvers\";\n\ninterface Params {\n context: AcoContext;\n app: IAcoApp;\n}\n\nexport const createSchema = async (params: Params) => {\n const { context, app } = params;\n const plugins = context.plugins\n .byType<CmsModelFieldToGraphQLPlugin>(\"cms-model-field-to-graphql\")\n .reduce<CmsFieldTypePlugins>((fields, plugin) => {\n fields[plugin.fieldType] = plugin;\n return fields;\n }, {});\n const models = await context.security.withoutAuthorization(async () => {\n return (await context.cms.listModels()).filter(model => {\n return !model.isPrivate;\n });\n });\n\n return context.benchmark.measure(`aco.schema.generate.${app.name}`, async () => {\n const plugin = new GraphQLSchemaPlugin({\n typeDefs: createAppSchema({\n models,\n app,\n plugins\n }),\n resolvers: createAppResolvers({\n models,\n app,\n plugins\n })\n });\n plugin.name = `aco.graphql.appSchema.searchRecord.${app.name}`;\n return plugin;\n });\n};\n"],"mappings":";;;;;;AAEA;AACA;AACA;AAOO,MAAMA,YAAY,GAAG,MAAOC,MAAc,IAAK;EAClD,MAAM;IAAEC,OAAO;IAAEC;EAAI,CAAC,GAAGF,MAAM;EAC/B,MAAMG,OAAO,GAAGF,OAAO,CAACE,OAAO,CAC1BC,MAAM,CAA+B,4BAA4B,CAAC,CAClEC,MAAM,CAAsB,CAACC,MAAM,EAAEC,MAAM,KAAK;IAC7CD,MAAM,CAACC,MAAM,CAACC,SAAS,CAAC,GAAGD,MAAM;IACjC,OAAOD,MAAM;EACjB,CAAC,EAAE,CAAC,CAAC,CAAC;EACV,MAAMG,MAAM,GAAG,MAAMR,OAAO,CAACS,QAAQ,CAACC,oBAAoB,CAAC,YAAY;IACnE,OAAO,CAAC,MAAMV,OAAO,CAACW,GAAG,CAACC,UAAU,EAAE,EAAEC,MAAM,CAACC,KAAK,IAAI;MACpD,OAAO,CAACA,KAAK,CAACC,SAAS;IAC3B,CAAC,CAAC;EACN,CAAC,CAAC;EAEF,OAAOf,OAAO,CAACgB,SAAS,CAACC,OAAO,CAAE,uBAAsBhB,GAAG,CAACiB,IAAK,EAAC,EAAE,YAAY;IAC5E,MAAMZ,MAAM,GAAG,IAAIa,mCAAmB,CAAC;MACnCC,QAAQ,EAAE,IAAAC,gCAAe,EAAC;QACtBb,MAAM;QACNP,GAAG;QACHC;MACJ,CAAC,CAAC;MACFoB,SAAS,EAAE,IAAAC,sCAAkB,EAAC;QAC1Bf,MAAM;QACNP,GAAG;QACHC;MACJ,CAAC;IACL,CAAC,CAAC;IACFI,MAAM,CAACY,IAAI,GAAI,sCAAqCjB,GAAG,CAACiB,IAAK,EAAC;IAC9D,OAAOZ,MAAM;EACjB,CAAC,CAAC;AACN,CAAC;AAAC"}
1
+ {"version":3,"names":["_handlerGraphql","require","_createAppSchema","_createAppResolvers","createSchema","params","context","app","plugins","byType","reduce","fields","plugin","fieldType","models","security","withoutAuthorization","cms","listModels","filter","model","isPrivate","benchmark","measure","name","GraphQLSchemaPlugin","typeDefs","createAppSchema","resolvers","createAppResolvers","exports"],"sources":["record.gql.ts"],"sourcesContent":["import { AcoContext, IAcoApp } from \"~/types\";\nimport { CmsFieldTypePlugins, CmsModelFieldToGraphQLPlugin } from \"@webiny/api-headless-cms/types\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { createAppSchema } from \"./graphql/createAppSchema\";\nimport { createAppResolvers } from \"./graphql/createAppResolvers\";\n\ninterface Params {\n context: AcoContext;\n app: IAcoApp;\n}\n\nexport const createSchema = async (params: Params) => {\n const { context, app } = params;\n const plugins = context.plugins\n .byType<CmsModelFieldToGraphQLPlugin>(\"cms-model-field-to-graphql\")\n .reduce<CmsFieldTypePlugins>((fields, plugin) => {\n fields[plugin.fieldType] = plugin;\n return fields;\n }, {});\n const models = await context.security.withoutAuthorization(async () => {\n return (await context.cms.listModels()).filter(model => {\n return !model.isPrivate;\n });\n });\n\n return context.benchmark.measure(`aco.schema.generate.${app.name}`, async () => {\n const plugin = new GraphQLSchemaPlugin({\n typeDefs: createAppSchema({\n models,\n app,\n plugins\n }),\n resolvers: createAppResolvers({\n models,\n app,\n plugins\n })\n });\n plugin.name = `aco.graphql.appSchema.searchRecord.${app.name}`;\n return plugin;\n });\n};\n"],"mappings":";;;;;;AAEA,IAAAA,eAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AAOO,MAAMG,YAAY,GAAG,MAAOC,MAAc,IAAK;EAClD,MAAM;IAAEC,OAAO;IAAEC;EAAI,CAAC,GAAGF,MAAM;EAC/B,MAAMG,OAAO,GAAGF,OAAO,CAACE,OAAO,CAC1BC,MAAM,CAA+B,4BAA4B,CAAC,CAClEC,MAAM,CAAsB,CAACC,MAAM,EAAEC,MAAM,KAAK;IAC7CD,MAAM,CAACC,MAAM,CAACC,SAAS,CAAC,GAAGD,MAAM;IACjC,OAAOD,MAAM;EACjB,CAAC,EAAE,CAAC,CAAC,CAAC;EACV,MAAMG,MAAM,GAAG,MAAMR,OAAO,CAACS,QAAQ,CAACC,oBAAoB,CAAC,YAAY;IACnE,OAAO,CAAC,MAAMV,OAAO,CAACW,GAAG,CAACC,UAAU,CAAC,CAAC,EAAEC,MAAM,CAACC,KAAK,IAAI;MACpD,OAAO,CAACA,KAAK,CAACC,SAAS;IAC3B,CAAC,CAAC;EACN,CAAC,CAAC;EAEF,OAAOf,OAAO,CAACgB,SAAS,CAACC,OAAO,CAAE,uBAAsBhB,GAAG,CAACiB,IAAK,EAAC,EAAE,YAAY;IAC5E,MAAMZ,MAAM,GAAG,IAAIa,mCAAmB,CAAC;MACnCC,QAAQ,EAAE,IAAAC,gCAAe,EAAC;QACtBb,MAAM;QACNP,GAAG;QACHC;MACJ,CAAC,CAAC;MACFoB,SAAS,EAAE,IAAAC,sCAAkB,EAAC;QAC1Bf,MAAM;QACNP,GAAG;QACHC;MACJ,CAAC;IACL,CAAC,CAAC;IACFI,MAAM,CAACY,IAAI,GAAI,sCAAqCjB,GAAG,CAACiB,IAAK,EAAC;IAC9D,OAAOZ,MAAM;EACjB,CAAC,CAAC;AACN,CAAC;AAACkB,OAAA,CAAA1B,YAAA,GAAAA,YAAA"}
@@ -1,10 +1,8 @@
1
1
  import { CmsModelField } from "@webiny/api-headless-cms/types";
2
- import { CmsPrivateModelFull } from "@webiny/api-headless-cms";
3
- export declare type SearchRecordModelDefinition = Omit<CmsPrivateModelFull, "noValidate" | "group">;
4
2
  export declare const SEARCH_RECORD_MODEL_ID = "acoSearchRecord";
5
3
  interface CreateSearchModelDefinitionParams {
6
4
  fields?: CmsModelField[];
7
5
  }
8
6
  export declare const DEFAULT_FIELDS: string[];
9
- export declare const createSearchModelDefinition: (params?: CreateSearchModelDefinitionParams) => SearchRecordModelDefinition;
7
+ export declare const createSearchModelDefinition: (params?: CreateSearchModelDefinitionParams) => import("@webiny/api-headless-cms").CmsPrivateModelFull;
10
8
  export {};
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.createSearchModelDefinition = exports.SEARCH_RECORD_MODEL_ID = exports.DEFAULT_FIELDS = void 0;
7
7
  var _createModelField = require("../utils/createModelField");
8
+ var _apiHeadlessCms = require("@webiny/api-headless-cms");
8
9
  const typeField = () => (0, _createModelField.createModelField)({
9
10
  label: "Type",
10
11
  type: "text",
@@ -73,14 +74,13 @@ exports.SEARCH_RECORD_MODEL_ID = SEARCH_RECORD_MODEL_ID;
73
74
  const DEFAULT_FIELDS = ["type", "title", "content", "location", "data", "tags"];
74
75
  exports.DEFAULT_FIELDS = DEFAULT_FIELDS;
75
76
  const createSearchModelDefinition = params => {
76
- return {
77
+ return (0, _apiHeadlessCms.createPrivateModelDefinition)({
77
78
  name: "ACO - Search Record",
78
79
  modelId: SEARCH_RECORD_MODEL_ID,
79
80
  titleFieldId: "title",
80
- layout: DEFAULT_FIELDS.map(field => [field]),
81
- fields: [typeField(), titleField(), contentField(), locationField([locationFolderIdField()]), dataField(params === null || params === void 0 ? void 0 : params.fields), tagsField()],
82
- description: "ACO - Search record model",
83
- isPrivate: true
84
- };
81
+ fields: [typeField(), titleField(), contentField(), locationField([locationFolderIdField()]), dataField(params?.fields), tagsField()]
82
+ });
85
83
  };
86
- exports.createSearchModelDefinition = createSearchModelDefinition;
84
+ exports.createSearchModelDefinition = createSearchModelDefinition;
85
+
86
+ //# sourceMappingURL=record.model.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["typeField","createModelField","label","type","validation","name","message","titleField","contentField","locationField","fields","multipleValues","settings","locationFolderIdField","dataField","tagsField","SEARCH_RECORD_MODEL_ID","DEFAULT_FIELDS","createSearchModelDefinition","params","modelId","titleFieldId","layout","map","field","description","isPrivate"],"sources":["record.model.ts"],"sourcesContent":["import { CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { createModelField } from \"~/utils/createModelField\";\nimport { CmsPrivateModelFull } from \"@webiny/api-headless-cms\";\n\nexport type SearchRecordModelDefinition = Omit<CmsPrivateModelFull, \"noValidate\" | \"group\">;\n\nconst typeField = () =>\n createModelField({\n label: \"Type\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst titleField = () =>\n createModelField({\n label: \"Title\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst contentField = () =>\n createModelField({\n label: \"Content\",\n type: \"text\"\n });\n\nconst locationField = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Location\",\n type: \"object\",\n multipleValues: false,\n validation: [\n {\n name: \"required\",\n message: \"The location field must be populated.\"\n }\n ],\n settings: {\n fields\n }\n });\n\nconst locationFolderIdField = () =>\n createModelField({\n label: \"Folder Id\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst dataField = (fields?: CmsModelField[]) => {\n return createModelField({\n label: \"Data\",\n type: \"object\",\n multipleValues: false,\n validation: [\n {\n name: \"required\",\n message: \"The data field must be populated.\"\n }\n ],\n settings: {\n fields\n }\n });\n};\n\nconst tagsField = () =>\n createModelField({\n label: \"Tags\",\n type: \"text\",\n multipleValues: true,\n validation: [\n {\n name: \"required\",\n message: \"The tags field must be populated.\"\n }\n ]\n });\n\nexport const SEARCH_RECORD_MODEL_ID = \"acoSearchRecord\";\n\ninterface CreateSearchModelDefinitionParams {\n fields?: CmsModelField[];\n}\n\nexport const DEFAULT_FIELDS = [\"type\", \"title\", \"content\", \"location\", \"data\", \"tags\"];\n\nexport const createSearchModelDefinition = (\n params?: CreateSearchModelDefinitionParams\n): SearchRecordModelDefinition => {\n return {\n name: \"ACO - Search Record\",\n modelId: SEARCH_RECORD_MODEL_ID,\n titleFieldId: \"title\",\n layout: DEFAULT_FIELDS.map(field => [field]),\n fields: [\n typeField(),\n titleField(),\n contentField(),\n locationField([locationFolderIdField()]),\n dataField(params?.fields),\n tagsField()\n ],\n description: \"ACO - Search record model\",\n isPrivate: true\n };\n};\n"],"mappings":";;;;;;AACA;AAKA,MAAMA,SAAS,GAAG,MACd,IAAAC,kCAAgB,EAAC;EACbC,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAMC,UAAU,GAAG,MACf,IAAAN,kCAAgB,EAAC;EACbC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAME,YAAY,GAAG,MACjB,IAAAP,kCAAgB,EAAC;EACbC,KAAK,EAAE,SAAS;EAChBC,IAAI,EAAE;AACV,CAAC,CAAC;AAEN,MAAMM,aAAa,GAAIC,MAAuB,IAC1C,IAAAT,kCAAgB,EAAC;EACbC,KAAK,EAAE,UAAU;EACjBC,IAAI,EAAE,QAAQ;EACdQ,cAAc,EAAE,KAAK;EACrBP,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC,CACJ;EACDM,QAAQ,EAAE;IACNF;EACJ;AACJ,CAAC,CAAC;AAEN,MAAMG,qBAAqB,GAAG,MAC1B,IAAAZ,kCAAgB,EAAC;EACbC,KAAK,EAAE,WAAW;EAClBC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAMQ,SAAS,GAAIJ,MAAwB,IAAK;EAC5C,OAAO,IAAAT,kCAAgB,EAAC;IACpBC,KAAK,EAAE,MAAM;IACbC,IAAI,EAAE,QAAQ;IACdQ,cAAc,EAAE,KAAK;IACrBP,UAAU,EAAE,CACR;MACIC,IAAI,EAAE,UAAU;MAChBC,OAAO,EAAE;IACb,CAAC,CACJ;IACDM,QAAQ,EAAE;MACNF;IACJ;EACJ,CAAC,CAAC;AACN,CAAC;AAED,MAAMK,SAAS,GAAG,MACd,IAAAd,kCAAgB,EAAC;EACbC,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE,MAAM;EACZQ,cAAc,EAAE,IAAI;EACpBP,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEC,MAAMU,sBAAsB,GAAG,iBAAiB;AAAC;AAMjD,MAAMC,cAAc,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC;AAAC;AAEhF,MAAMC,2BAA2B,GACpCC,MAA0C,IACZ;EAC9B,OAAO;IACHd,IAAI,EAAE,qBAAqB;IAC3Be,OAAO,EAAEJ,sBAAsB;IAC/BK,YAAY,EAAE,OAAO;IACrBC,MAAM,EAAEL,cAAc,CAACM,GAAG,CAACC,KAAK,IAAI,CAACA,KAAK,CAAC,CAAC;IAC5Cd,MAAM,EAAE,CACJV,SAAS,EAAE,EACXO,UAAU,EAAE,EACZC,YAAY,EAAE,EACdC,aAAa,CAAC,CAACI,qBAAqB,EAAE,CAAC,CAAC,EACxCC,SAAS,CAACK,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAET,MAAM,CAAC,EACzBK,SAAS,EAAE,CACd;IACDU,WAAW,EAAE,2BAA2B;IACxCC,SAAS,EAAE;EACf,CAAC;AACL,CAAC;AAAC"}
1
+ {"version":3,"names":["_createModelField","require","_apiHeadlessCms","typeField","createModelField","label","type","validation","name","message","titleField","contentField","locationField","fields","multipleValues","settings","locationFolderIdField","dataField","tagsField","SEARCH_RECORD_MODEL_ID","exports","DEFAULT_FIELDS","createSearchModelDefinition","params","createPrivateModelDefinition","modelId","titleFieldId"],"sources":["record.model.ts"],"sourcesContent":["import { CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { createModelField } from \"~/utils/createModelField\";\nimport { createPrivateModelDefinition } from \"@webiny/api-headless-cms\";\n\nconst typeField = () =>\n createModelField({\n label: \"Type\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst titleField = () =>\n createModelField({\n label: \"Title\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst contentField = () =>\n createModelField({\n label: \"Content\",\n type: \"text\"\n });\n\nconst locationField = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Location\",\n type: \"object\",\n multipleValues: false,\n validation: [\n {\n name: \"required\",\n message: \"The location field must be populated.\"\n }\n ],\n settings: {\n fields\n }\n });\n\nconst locationFolderIdField = () =>\n createModelField({\n label: \"Folder Id\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst dataField = (fields?: CmsModelField[]) => {\n return createModelField({\n label: \"Data\",\n type: \"object\",\n multipleValues: false,\n validation: [\n {\n name: \"required\",\n message: \"The data field must be populated.\"\n }\n ],\n settings: {\n fields\n }\n });\n};\n\nconst tagsField = () =>\n createModelField({\n label: \"Tags\",\n type: \"text\",\n multipleValues: true,\n validation: [\n {\n name: \"required\",\n message: \"The tags field must be populated.\"\n }\n ]\n });\n\nexport const SEARCH_RECORD_MODEL_ID = \"acoSearchRecord\";\n\ninterface CreateSearchModelDefinitionParams {\n fields?: CmsModelField[];\n}\n\nexport const DEFAULT_FIELDS = [\"type\", \"title\", \"content\", \"location\", \"data\", \"tags\"];\n\nexport const createSearchModelDefinition = (params?: CreateSearchModelDefinitionParams) => {\n return createPrivateModelDefinition({\n name: \"ACO - Search Record\",\n modelId: SEARCH_RECORD_MODEL_ID,\n titleFieldId: \"title\",\n fields: [\n typeField(),\n titleField(),\n contentField(),\n locationField([locationFolderIdField()]),\n dataField(params?.fields),\n tagsField()\n ]\n });\n};\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAEA,MAAME,SAAS,GAAGA,CAAA,KACd,IAAAC,kCAAgB,EAAC;EACbC,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAMC,UAAU,GAAGA,CAAA,KACf,IAAAN,kCAAgB,EAAC;EACbC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAME,YAAY,GAAGA,CAAA,KACjB,IAAAP,kCAAgB,EAAC;EACbC,KAAK,EAAE,SAAS;EAChBC,IAAI,EAAE;AACV,CAAC,CAAC;AAEN,MAAMM,aAAa,GAAIC,MAAuB,IAC1C,IAAAT,kCAAgB,EAAC;EACbC,KAAK,EAAE,UAAU;EACjBC,IAAI,EAAE,QAAQ;EACdQ,cAAc,EAAE,KAAK;EACrBP,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC,CACJ;EACDM,QAAQ,EAAE;IACNF;EACJ;AACJ,CAAC,CAAC;AAEN,MAAMG,qBAAqB,GAAGA,CAAA,KAC1B,IAAAZ,kCAAgB,EAAC;EACbC,KAAK,EAAE,WAAW;EAClBC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAMQ,SAAS,GAAIJ,MAAwB,IAAK;EAC5C,OAAO,IAAAT,kCAAgB,EAAC;IACpBC,KAAK,EAAE,MAAM;IACbC,IAAI,EAAE,QAAQ;IACdQ,cAAc,EAAE,KAAK;IACrBP,UAAU,EAAE,CACR;MACIC,IAAI,EAAE,UAAU;MAChBC,OAAO,EAAE;IACb,CAAC,CACJ;IACDM,QAAQ,EAAE;MACNF;IACJ;EACJ,CAAC,CAAC;AACN,CAAC;AAED,MAAMK,SAAS,GAAGA,CAAA,KACd,IAAAd,kCAAgB,EAAC;EACbC,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE,MAAM;EACZQ,cAAc,EAAE,IAAI;EACpBP,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEC,MAAMU,sBAAsB,GAAG,iBAAiB;AAACC,OAAA,CAAAD,sBAAA,GAAAA,sBAAA;AAMjD,MAAME,cAAc,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC;AAACD,OAAA,CAAAC,cAAA,GAAAA,cAAA;AAEhF,MAAMC,2BAA2B,GAAIC,MAA0C,IAAK;EACvF,OAAO,IAAAC,4CAA4B,EAAC;IAChChB,IAAI,EAAE,qBAAqB;IAC3BiB,OAAO,EAAEN,sBAAsB;IAC/BO,YAAY,EAAE,OAAO;IACrBb,MAAM,EAAE,CACJV,SAAS,CAAC,CAAC,EACXO,UAAU,CAAC,CAAC,EACZC,YAAY,CAAC,CAAC,EACdC,aAAa,CAAC,CAACI,qBAAqB,CAAC,CAAC,CAAC,CAAC,EACxCC,SAAS,CAACM,MAAM,EAAEV,MAAM,CAAC,EACzBK,SAAS,CAAC,CAAC;EAEnB,CAAC,CAAC;AACN,CAAC;AAACE,OAAA,CAAAE,2BAAA,GAAAA,2BAAA"}
@@ -5,13 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.createSearchRecordOperations = void 0;
8
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
9
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
8
+ var _omit = _interopRequireDefault(require("lodash/omit"));
10
9
  var _error = _interopRequireDefault(require("@webiny/error"));
11
- var _getFieldValues = require("../utils/getFieldValues");
10
+ var _pickEntryFieldValues = require("../utils/pickEntryFieldValues");
12
11
  var _acoRecordId = require("../utils/acoRecordId");
13
12
  var _record = require("./record.model");
14
- const _excluded = ["tags", "data"];
13
+ var _constants = require("@webiny/api-headless-cms/constants");
15
14
  const createSearchRecordOperations = params => {
16
15
  const {
17
16
  cms,
@@ -38,7 +37,7 @@ const createSearchRecordOperations = params => {
38
37
  }) {
39
38
  return security.withoutAuthorization(async () => {
40
39
  const record = await getRecord(model, id);
41
- return (0, _getFieldValues.getRecordFieldValues)(record);
40
+ return (0, _pickEntryFieldValues.pickEntryFieldValues)(record);
42
41
  });
43
42
  },
44
43
  listRecords(model, params) {
@@ -47,11 +46,14 @@ const createSearchRecordOperations = params => {
47
46
  sort,
48
47
  where
49
48
  } = params;
50
- const [entries, meta] = await cms.listLatestEntries(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
49
+ const [entries, meta] = await cms.listLatestEntries(model, {
50
+ ...params,
51
51
  sort,
52
- where: (0, _objectSpread2.default)({}, where || {})
53
- }));
54
- return [entries.map(entry => (0, _getFieldValues.getRecordFieldValues)(entry)), meta];
52
+ where: {
53
+ ...(where || {})
54
+ }
55
+ });
56
+ return [entries.map(_pickEntryFieldValues.pickEntryFieldValues), meta];
55
57
  });
56
58
  },
57
59
  listTags(model, params) {
@@ -60,9 +62,10 @@ const createSearchRecordOperations = params => {
60
62
  where
61
63
  } = params;
62
64
  const items = await cms.getUniqueFieldValues(model, {
63
- where: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, where || {}), {}, {
65
+ where: {
66
+ ...(where || {}),
64
67
  latest: true
65
- }),
68
+ },
66
69
  fieldId: "tags"
67
70
  });
68
71
  const meta = {
@@ -84,17 +87,17 @@ const createSearchRecordOperations = params => {
84
87
  }) {
85
88
  return security.withoutAuthorization(async () => {
86
89
  const {
87
- tags = [],
88
- data = {}
89
- } = SearchRecordData,
90
- rest = (0, _objectWithoutProperties2.default)(SearchRecordData, _excluded);
91
- const entry = await cms.createEntry(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({
90
+ tags = [],
91
+ data = {},
92
+ ...rest
93
+ } = SearchRecordData;
94
+ const entry = await cms.createEntry(model, {
92
95
  tags,
93
- data
94
- }, rest), {}, {
96
+ data,
97
+ ...rest,
95
98
  id: (0, _acoRecordId.attachAcoRecordPrefix)(rest.id)
96
- }));
97
- return (0, _getFieldValues.getRecordFieldValues)(entry);
99
+ });
100
+ return (0, _pickEntryFieldValues.pickEntryFieldValues)(entry);
98
101
  });
99
102
  },
100
103
  updateRecord(model, {
@@ -105,9 +108,16 @@ const createSearchRecordOperations = params => {
105
108
  const original = await this.getRecord(model, {
106
109
  id
107
110
  });
108
- const input = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), data);
111
+ const input = {
112
+ /**
113
+ * We are omitting the standard entry meta fields:
114
+ * we don't want to override them with the ones coming from the `original` entry.
115
+ */
116
+ ...(0, _omit.default)(original, _constants.ENTRY_META_FIELDS),
117
+ ...data
118
+ };
109
119
  const entry = await cms.updateEntry(model, (0, _acoRecordId.attachAcoRecordPrefix)(original.id), input);
110
- return (0, _getFieldValues.getRecordFieldValues)(entry);
120
+ return (0, _pickEntryFieldValues.pickEntryFieldValues)(entry);
111
121
  });
112
122
  },
113
123
  moveRecord(model, params) {
@@ -147,4 +157,6 @@ const createSearchRecordOperations = params => {
147
157
  }
148
158
  };
149
159
  };
150
- exports.createSearchRecordOperations = createSearchRecordOperations;
160
+ exports.createSearchRecordOperations = createSearchRecordOperations;
161
+
162
+ //# sourceMappingURL=record.so.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createSearchRecordOperations","params","cms","security","getRecord","model","id","revisions","storageOperations","entries","getLatestByIds","ids","attachAcoRecordPrefix","length","WebinyError","withoutAuthorization","record","getRecordFieldValues","listRecords","sort","where","meta","listLatestEntries","map","entry","listTags","items","getUniqueFieldValues","latest","fieldId","hasMoreItems","totalCount","cursor","tags","item","tag","value","count","createRecord","data","SearchRecordData","rest","createEntry","updateRecord","original","input","updateEntry","moveRecord","folderId","wbyAco_location","lookFor","SEARCH_RECORD_MODEL_ID","modelId","substring","location","deleteRecord","deleteEntry"],"sources":["record.so.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CreateAcoStorageOperationsParams } from \"~/createAcoStorageOperations\";\nimport { getRecordFieldValues } from \"~/utils/getFieldValues\";\nimport { AcoSearchRecordStorageOperations } from \"./record.types\";\nimport { CmsModel, UpdateCmsEntryInput } from \"@webiny/api-headless-cms/types\";\nimport { attachAcoRecordPrefix } from \"~/utils/acoRecordId\";\nimport { SEARCH_RECORD_MODEL_ID } from \"~/record/record.model\";\n\nexport const createSearchRecordOperations = (\n params: CreateAcoStorageOperationsParams\n): AcoSearchRecordStorageOperations => {\n const { cms, security } = params;\n\n const getRecord = async (model: CmsModel, id: string) => {\n /**\n * The record \"id\" has been passed by the original entry.\n * We need to retrieve it via `cms.storageOperations.entries.getLatestByIds()` method and return the first one.\n */\n const revisions = await cms.storageOperations.entries.getLatestByIds(model, {\n ids: [attachAcoRecordPrefix(id)]\n });\n\n if (revisions.length === 0) {\n throw new WebinyError(\"Record not found.\", \"NOT_FOUND\", {\n id\n });\n }\n\n return revisions[0];\n };\n\n return {\n async getRecord(model, { id }) {\n return security.withoutAuthorization(async () => {\n const record = await getRecord(model, id);\n return getRecordFieldValues(record);\n });\n },\n listRecords(model, params) {\n return security.withoutAuthorization(async () => {\n const { sort, where } = params;\n\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n sort,\n where: {\n ...(where || {})\n }\n });\n\n return [entries.map(entry => getRecordFieldValues(entry)), meta];\n });\n },\n listTags(model, params) {\n return security.withoutAuthorization(async () => {\n const { where } = params;\n\n const items = await cms.getUniqueFieldValues(model, {\n where: {\n ...(where || {}),\n latest: true\n },\n fieldId: \"tags\"\n });\n\n const meta = {\n hasMoreItems: false,\n totalCount: items.length,\n cursor: null\n };\n\n const tags = items.map(item => {\n return {\n tag: item.value,\n count: item.count\n };\n });\n\n return [tags, meta];\n });\n },\n createRecord(model, { data: SearchRecordData }) {\n return security.withoutAuthorization(async () => {\n const { tags = [], data = {}, ...rest } = SearchRecordData;\n const entry = await cms.createEntry(model, {\n tags,\n data,\n ...rest,\n id: attachAcoRecordPrefix(rest.id)\n });\n\n return getRecordFieldValues(entry);\n });\n },\n updateRecord(this: AcoSearchRecordStorageOperations, model, { id, data }) {\n return security.withoutAuthorization(async () => {\n const original = await this.getRecord(model, { id });\n\n const input = {\n ...original,\n ...data\n };\n\n const entry = await cms.updateEntry(\n model,\n attachAcoRecordPrefix(original.id),\n input\n );\n\n return getRecordFieldValues(entry);\n });\n },\n moveRecord(this: AcoSearchRecordStorageOperations, model, params) {\n const { id, folderId } = params;\n return security.withoutAuthorization(async () => {\n const original = await this.getRecord(model, { id });\n\n const input: UpdateCmsEntryInput = {\n wbyAco_location: {\n folderId\n }\n };\n /**\n * We only apply the location to the search record model as we do not want to override the users data.\n */\n const lookFor = `${SEARCH_RECORD_MODEL_ID}-`;\n if (model.modelId.substring(0, lookFor.length) === lookFor) {\n input.location = {\n folderId\n };\n }\n\n await cms.updateEntry(model, attachAcoRecordPrefix(original.id), input);\n\n return true;\n });\n },\n deleteRecord(model, { id }) {\n return security.withoutAuthorization(async () => {\n await cms.deleteEntry(model, attachAcoRecordPrefix(id));\n return true;\n });\n }\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_omit","_interopRequireDefault","require","_error","_pickEntryFieldValues","_acoRecordId","_record","_constants","createSearchRecordOperations","params","cms","security","getRecord","model","id","revisions","storageOperations","entries","getLatestByIds","ids","attachAcoRecordPrefix","length","WebinyError","withoutAuthorization","record","pickEntryFieldValues","listRecords","sort","where","meta","listLatestEntries","map","listTags","items","getUniqueFieldValues","latest","fieldId","hasMoreItems","totalCount","cursor","tags","item","tag","value","count","createRecord","data","SearchRecordData","rest","entry","createEntry","updateRecord","original","input","omit","ENTRY_META_FIELDS","updateEntry","moveRecord","folderId","wbyAco_location","lookFor","SEARCH_RECORD_MODEL_ID","modelId","substring","location","deleteRecord","deleteEntry","exports"],"sources":["record.so.ts"],"sourcesContent":["import omit from \"lodash/omit\";\nimport WebinyError from \"@webiny/error\";\nimport { CreateAcoStorageOperationsParams } from \"~/createAcoStorageOperations\";\nimport { pickEntryFieldValues } from \"~/utils/pickEntryFieldValues\";\nimport { AcoSearchRecordStorageOperations, SearchRecord } from \"./record.types\";\nimport { CmsModel, UpdateCmsEntryInput } from \"@webiny/api-headless-cms/types\";\nimport { attachAcoRecordPrefix } from \"~/utils/acoRecordId\";\nimport { SEARCH_RECORD_MODEL_ID } from \"~/record/record.model\";\nimport { ENTRY_META_FIELDS } from \"@webiny/api-headless-cms/constants\";\n\nexport const createSearchRecordOperations = (\n params: CreateAcoStorageOperationsParams\n): AcoSearchRecordStorageOperations => {\n const { cms, security } = params;\n\n const getRecord = async (model: CmsModel, id: string) => {\n /**\n * The record \"id\" has been passed by the original entry.\n * We need to retrieve it via `cms.storageOperations.entries.getLatestByIds()` method and return the first one.\n */\n const revisions = await cms.storageOperations.entries.getLatestByIds(model, {\n ids: [attachAcoRecordPrefix(id)]\n });\n\n if (revisions.length === 0) {\n throw new WebinyError(\"Record not found.\", \"NOT_FOUND\", {\n id\n });\n }\n\n return revisions[0];\n };\n\n return {\n async getRecord(model, { id }) {\n return security.withoutAuthorization(async () => {\n const record = await getRecord(model, id);\n return pickEntryFieldValues<SearchRecord<any>>(record);\n });\n },\n listRecords(model, params) {\n return security.withoutAuthorization(async () => {\n const { sort, where } = params;\n\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n sort,\n where: {\n ...(where || {})\n }\n });\n\n return [entries.map(pickEntryFieldValues<SearchRecord<any>>), meta];\n });\n },\n listTags(model, params) {\n return security.withoutAuthorization(async () => {\n const { where } = params;\n\n const items = await cms.getUniqueFieldValues(model, {\n where: {\n ...(where || {}),\n latest: true\n },\n fieldId: \"tags\"\n });\n\n const meta = {\n hasMoreItems: false,\n totalCount: items.length,\n cursor: null\n };\n\n const tags = items.map(item => {\n return {\n tag: item.value,\n count: item.count\n };\n });\n\n return [tags, meta];\n });\n },\n createRecord(model, { data: SearchRecordData }) {\n return security.withoutAuthorization(async () => {\n const { tags = [], data = {}, ...rest } = SearchRecordData;\n const entry = await cms.createEntry(model, {\n tags,\n data,\n ...rest,\n id: attachAcoRecordPrefix(rest.id)\n });\n\n return pickEntryFieldValues<SearchRecord<any>>(entry);\n });\n },\n updateRecord(this: AcoSearchRecordStorageOperations, model, { id, data }) {\n return security.withoutAuthorization(async () => {\n const original = await this.getRecord(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(\n model,\n attachAcoRecordPrefix(original.id),\n input\n );\n\n return pickEntryFieldValues<SearchRecord<any>>(entry);\n });\n },\n moveRecord(this: AcoSearchRecordStorageOperations, model, params) {\n const { id, folderId } = params;\n return security.withoutAuthorization(async () => {\n const original = await this.getRecord(model, { id });\n\n const input: UpdateCmsEntryInput = {\n wbyAco_location: {\n folderId\n }\n };\n /**\n * We only apply the location to the search record model as we do not want to override the users data.\n */\n const lookFor = `${SEARCH_RECORD_MODEL_ID}-`;\n if (model.modelId.substring(0, lookFor.length) === lookFor) {\n input.location = {\n folderId\n };\n }\n\n await cms.updateEntry(model, attachAcoRecordPrefix(original.id), input);\n\n return true;\n });\n },\n deleteRecord(model, { id }) {\n return security.withoutAuthorization(async () => {\n await cms.deleteEntry(model, attachAcoRecordPrefix(id));\n return true;\n });\n }\n };\n};\n"],"mappings":"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"}
@@ -19,7 +19,7 @@ export interface SearchRecordTag {
19
19
  tag: string;
20
20
  count: number;
21
21
  }
22
- export interface ListSearchRecordsWhere {
22
+ export interface ListSearchRecordsWhere<TData extends GenericSearchData = GenericSearchData> {
23
23
  type: string;
24
24
  location?: {
25
25
  folderId: string;
@@ -27,6 +27,7 @@ export interface ListSearchRecordsWhere {
27
27
  tags_in?: string[];
28
28
  tags_startsWith?: string;
29
29
  tags_not_startsWith?: string;
30
+ data?: TData;
30
31
  }
31
32
  export interface ListSearchRecordsParams {
32
33
  where?: ListSearchRecordsWhere;
@@ -113,7 +114,7 @@ export interface AcoSearchRecordCrudBase {
113
114
  create<TData extends GenericSearchData = GenericSearchData>(data: CreateSearchRecordParams<TData>): Promise<SearchRecord<TData>>;
114
115
  update<TData extends GenericSearchData = GenericSearchData>(id: string, data: UpdateSearchRecordParams<TData>): Promise<SearchRecord<TData>>;
115
116
  move(id: string, folderId?: string | null): Promise<boolean>;
116
- delete(id: string): Promise<Boolean>;
117
+ delete(id: string): Promise<boolean>;
117
118
  }
118
119
  export interface AcoSearchRecordCrud extends Omit<AcoSearchRecordCrudBase, "get" | "list" | "create" | "update" | "delete" | "listTags" | "move"> {
119
120
  get<TData>(model: CmsModel, id: string): Promise<SearchRecord<TData>>;
@@ -122,7 +123,7 @@ export interface AcoSearchRecordCrud extends Omit<AcoSearchRecordCrudBase, "get"
122
123
  create<TData>(model: CmsModel, data: CreateSearchRecordParams<TData>): Promise<SearchRecord<TData>>;
123
124
  update<TData>(model: CmsModel, id: string, data: UpdateSearchRecordParams<TData>): Promise<SearchRecord<TData>>;
124
125
  move(model: CmsModel, id: string, folderId?: string | null): Promise<boolean>;
125
- delete(model: CmsModel, id: string): Promise<Boolean>;
126
+ delete(model: CmsModel, id: string): Promise<boolean>;
126
127
  onSearchRecordBeforeCreate: Topic<OnSearchRecordBeforeCreateTopicParams>;
127
128
  onSearchRecordAfterCreate: Topic<OnSearchRecordAfterCreateTopicParams>;
128
129
  onSearchRecordBeforeUpdate: Topic<OnSearchRecordBeforeUpdateTopicParams>;
@@ -2,4 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
- });
5
+ });
6
+
7
+ //# sourceMappingURL=record.types.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["record.types.ts"],"sourcesContent":["import { AcoBaseFields, ListMeta } from \"~/types\";\nimport { Topic } from \"@webiny/pubsub/types\";\nimport { CmsModel } from \"@webiny/api-headless-cms/types\";\n\nexport type GenericSearchData = {\n [key: string]: any;\n};\n\nexport interface Location {\n folderId: string;\n}\n\nexport interface SearchRecord<TData extends GenericSearchData = GenericSearchData>\n extends AcoBaseFields {\n type: string;\n title: string;\n content?: string;\n location: Location;\n data: TData;\n tags: string[];\n}\n\nexport interface SearchRecordTag {\n tag: string;\n count: number;\n}\n\nexport interface ListSearchRecordsWhere {\n type: string;\n location?: {\n folderId: string;\n };\n tags_in?: string[];\n tags_startsWith?: string;\n tags_not_startsWith?: string;\n}\n\nexport interface ListSearchRecordsParams {\n where?: ListSearchRecordsWhere;\n search?: string;\n sort?: string[];\n limit?: number;\n after?: string | null;\n}\n\nexport type CreateSearchRecordParams<TData> = Pick<\n SearchRecord<TData>,\n \"id\" | \"title\" | \"content\" | \"type\" | \"location\" | \"data\" | \"tags\"\n>;\n\nexport interface UpdateSearchRecordParams<TData extends GenericSearchData> {\n title?: string;\n content?: string;\n location?: Location;\n data?: TData;\n tags?: string[];\n}\n\nexport interface DeleteSearchRecordParams {\n id: string;\n}\n\nexport interface ListSearchRecordTagsWhere {\n type: string;\n}\n\nexport interface ListSearchRecordTagsParams {\n where?: ListSearchRecordTagsWhere;\n}\n\nexport interface StorageOperationsGetSearchRecordParams {\n id: string;\n}\n\nexport type StorageOperationsListSearchRecordsParams = ListSearchRecordsParams;\nexport type StorageOperationsListSearchRecordTagsParams = ListSearchRecordTagsParams;\n\nexport interface StorageOperationsCreateSearchRecordParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n data: CreateSearchRecordParams<TData>;\n}\n\nexport interface StorageOperationsUpdateSearchRecordParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n id: string;\n data: UpdateSearchRecordParams<TData>;\n}\n\nexport interface StorageOperationsMoveSearchRecordParams {\n id: string;\n folderId?: string | null;\n}\n\nexport type StorageOperationsDeleteSearchRecordParams = DeleteSearchRecordParams;\n\nexport interface OnSearchRecordBeforeCreateTopicParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n model: CmsModel;\n input: CreateSearchRecordParams<TData>;\n}\n\nexport interface OnSearchRecordAfterCreateTopicParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n model: CmsModel;\n record: SearchRecord<TData>;\n}\n\nexport interface OnSearchRecordBeforeUpdateTopicParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n model: CmsModel;\n original: SearchRecord<TData>;\n input: Record<string, any>;\n}\n\nexport interface OnSearchRecordBeforeMoveTopicParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n model: CmsModel;\n original: SearchRecord<TData>;\n folderId?: string | null;\n}\n\nexport interface OnSearchRecordAfterMoveTopicParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n model: CmsModel;\n original: SearchRecord<TData>;\n folderId?: string | null;\n}\n\nexport interface OnSearchRecordAfterUpdateTopicParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n model: CmsModel;\n original: SearchRecord<TData>;\n record: SearchRecord<TData>;\n input: Record<string, any>;\n}\n\nexport interface OnSearchRecordBeforeDeleteTopicParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n model: CmsModel;\n record: SearchRecord<TData>;\n}\n\nexport interface OnSearchRecordAfterDeleteTopicParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n model: CmsModel;\n record: SearchRecord<TData>;\n}\n\nexport interface AcoSearchRecordCrudBase {\n get<TData extends GenericSearchData = GenericSearchData>(\n id: string\n ): Promise<SearchRecord<TData>>;\n list<TData extends GenericSearchData = GenericSearchData>(\n params: ListSearchRecordsParams\n ): Promise<[SearchRecord<TData>[], ListMeta]>;\n listTags(params: ListSearchRecordTagsParams): Promise<[SearchRecordTag[], ListMeta]>;\n create<TData extends GenericSearchData = GenericSearchData>(\n data: CreateSearchRecordParams<TData>\n ): Promise<SearchRecord<TData>>;\n update<TData extends GenericSearchData = GenericSearchData>(\n id: string,\n data: UpdateSearchRecordParams<TData>\n ): Promise<SearchRecord<TData>>;\n move(id: string, folderId?: string | null): Promise<boolean>;\n delete(id: string): Promise<Boolean>;\n}\n\nexport interface AcoSearchRecordCrud\n extends Omit<\n AcoSearchRecordCrudBase,\n \"get\" | \"list\" | \"create\" | \"update\" | \"delete\" | \"listTags\" | \"move\"\n > {\n get<TData>(model: CmsModel, id: string): Promise<SearchRecord<TData>>;\n list<TData>(\n model: CmsModel,\n params: ListSearchRecordsParams\n ): Promise<[SearchRecord<TData>[], ListMeta]>;\n listTags(\n model: CmsModel,\n params: ListSearchRecordTagsParams\n ): Promise<[SearchRecordTag[], ListMeta]>;\n create<TData>(\n model: CmsModel,\n data: CreateSearchRecordParams<TData>\n ): Promise<SearchRecord<TData>>;\n update<TData>(\n model: CmsModel,\n id: string,\n data: UpdateSearchRecordParams<TData>\n ): Promise<SearchRecord<TData>>;\n move(model: CmsModel, id: string, folderId?: string | null): Promise<boolean>;\n delete(model: CmsModel, id: string): Promise<Boolean>;\n onSearchRecordBeforeCreate: Topic<OnSearchRecordBeforeCreateTopicParams>;\n onSearchRecordAfterCreate: Topic<OnSearchRecordAfterCreateTopicParams>;\n onSearchRecordBeforeUpdate: Topic<OnSearchRecordBeforeUpdateTopicParams>;\n onSearchRecordAfterUpdate: Topic<OnSearchRecordAfterUpdateTopicParams>;\n onSearchRecordBeforeMove: Topic<OnSearchRecordBeforeMoveTopicParams>;\n onSearchRecordAfterMove: Topic<OnSearchRecordAfterMoveTopicParams>;\n onSearchRecordBeforeDelete: Topic<OnSearchRecordBeforeDeleteTopicParams>;\n onSearchRecordAfterDelete: Topic<OnSearchRecordAfterDeleteTopicParams>;\n}\n\nexport interface AcoSearchRecordStorageOperations {\n getRecord<TData extends GenericSearchData = GenericSearchData>(\n model: CmsModel,\n params: StorageOperationsGetSearchRecordParams\n ): Promise<SearchRecord<TData>>;\n listRecords<TData extends GenericSearchData = GenericSearchData>(\n model: CmsModel,\n params: StorageOperationsListSearchRecordsParams\n ): Promise<[SearchRecord<TData>[], ListMeta]>;\n listTags(\n model: CmsModel,\n params: StorageOperationsListSearchRecordTagsParams\n ): Promise<[SearchRecordTag[], ListMeta]>;\n createRecord<TData extends GenericSearchData = GenericSearchData>(\n model: CmsModel,\n params: StorageOperationsCreateSearchRecordParams<TData>\n ): Promise<SearchRecord<TData>>;\n updateRecord<TData extends GenericSearchData = GenericSearchData>(\n model: CmsModel,\n params: StorageOperationsUpdateSearchRecordParams<TData>\n ): Promise<SearchRecord<TData>>;\n moveRecord(model: CmsModel, params: StorageOperationsMoveSearchRecordParams): Promise<boolean>;\n deleteRecord(\n model: CmsModel,\n params: StorageOperationsDeleteSearchRecordParams\n ): Promise<boolean>;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["record.types.ts"],"sourcesContent":["import { AcoBaseFields, ListMeta } from \"~/types\";\nimport { Topic } from \"@webiny/pubsub/types\";\nimport { CmsModel } from \"@webiny/api-headless-cms/types\";\n\nexport type GenericSearchData = {\n [key: string]: any;\n};\n\nexport interface Location {\n folderId: string;\n}\n\nexport interface SearchRecord<TData extends GenericSearchData = GenericSearchData>\n extends AcoBaseFields {\n type: string;\n title: string;\n content?: string;\n location: Location;\n data: TData;\n tags: string[];\n}\n\nexport interface SearchRecordTag {\n tag: string;\n count: number;\n}\n\nexport interface ListSearchRecordsWhere<TData extends GenericSearchData = GenericSearchData> {\n type: string;\n location?: {\n folderId: string;\n };\n tags_in?: string[];\n tags_startsWith?: string;\n tags_not_startsWith?: string;\n data?: TData;\n}\n\nexport interface ListSearchRecordsParams {\n where?: ListSearchRecordsWhere;\n search?: string;\n sort?: string[];\n limit?: number;\n after?: string | null;\n}\n\nexport type CreateSearchRecordParams<TData> = Pick<\n SearchRecord<TData>,\n \"id\" | \"title\" | \"content\" | \"type\" | \"location\" | \"data\" | \"tags\"\n>;\n\nexport interface UpdateSearchRecordParams<TData extends GenericSearchData> {\n title?: string;\n content?: string;\n location?: Location;\n data?: TData;\n tags?: string[];\n}\n\nexport interface DeleteSearchRecordParams {\n id: string;\n}\n\nexport interface ListSearchRecordTagsWhere {\n type: string;\n}\n\nexport interface ListSearchRecordTagsParams {\n where?: ListSearchRecordTagsWhere;\n}\n\nexport interface StorageOperationsGetSearchRecordParams {\n id: string;\n}\n\nexport type StorageOperationsListSearchRecordsParams = ListSearchRecordsParams;\nexport type StorageOperationsListSearchRecordTagsParams = ListSearchRecordTagsParams;\n\nexport interface StorageOperationsCreateSearchRecordParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n data: CreateSearchRecordParams<TData>;\n}\n\nexport interface StorageOperationsUpdateSearchRecordParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n id: string;\n data: UpdateSearchRecordParams<TData>;\n}\n\nexport interface StorageOperationsMoveSearchRecordParams {\n id: string;\n folderId?: string | null;\n}\n\nexport type StorageOperationsDeleteSearchRecordParams = DeleteSearchRecordParams;\n\nexport interface OnSearchRecordBeforeCreateTopicParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n model: CmsModel;\n input: CreateSearchRecordParams<TData>;\n}\n\nexport interface OnSearchRecordAfterCreateTopicParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n model: CmsModel;\n record: SearchRecord<TData>;\n}\n\nexport interface OnSearchRecordBeforeUpdateTopicParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n model: CmsModel;\n original: SearchRecord<TData>;\n input: Record<string, any>;\n}\n\nexport interface OnSearchRecordBeforeMoveTopicParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n model: CmsModel;\n original: SearchRecord<TData>;\n folderId?: string | null;\n}\n\nexport interface OnSearchRecordAfterMoveTopicParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n model: CmsModel;\n original: SearchRecord<TData>;\n folderId?: string | null;\n}\n\nexport interface OnSearchRecordAfterUpdateTopicParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n model: CmsModel;\n original: SearchRecord<TData>;\n record: SearchRecord<TData>;\n input: Record<string, any>;\n}\n\nexport interface OnSearchRecordBeforeDeleteTopicParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n model: CmsModel;\n record: SearchRecord<TData>;\n}\n\nexport interface OnSearchRecordAfterDeleteTopicParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n model: CmsModel;\n record: SearchRecord<TData>;\n}\n\nexport interface AcoSearchRecordCrudBase {\n get<TData extends GenericSearchData = GenericSearchData>(\n id: string\n ): Promise<SearchRecord<TData>>;\n list<TData extends GenericSearchData = GenericSearchData>(\n params: ListSearchRecordsParams\n ): Promise<[SearchRecord<TData>[], ListMeta]>;\n listTags(params: ListSearchRecordTagsParams): Promise<[SearchRecordTag[], ListMeta]>;\n create<TData extends GenericSearchData = GenericSearchData>(\n data: CreateSearchRecordParams<TData>\n ): Promise<SearchRecord<TData>>;\n update<TData extends GenericSearchData = GenericSearchData>(\n id: string,\n data: UpdateSearchRecordParams<TData>\n ): Promise<SearchRecord<TData>>;\n move(id: string, folderId?: string | null): Promise<boolean>;\n delete(id: string): Promise<boolean>;\n}\n\nexport interface AcoSearchRecordCrud\n extends Omit<\n AcoSearchRecordCrudBase,\n \"get\" | \"list\" | \"create\" | \"update\" | \"delete\" | \"listTags\" | \"move\"\n > {\n get<TData>(model: CmsModel, id: string): Promise<SearchRecord<TData>>;\n list<TData>(\n model: CmsModel,\n params: ListSearchRecordsParams\n ): Promise<[SearchRecord<TData>[], ListMeta]>;\n listTags(\n model: CmsModel,\n params: ListSearchRecordTagsParams\n ): Promise<[SearchRecordTag[], ListMeta]>;\n create<TData>(\n model: CmsModel,\n data: CreateSearchRecordParams<TData>\n ): Promise<SearchRecord<TData>>;\n update<TData>(\n model: CmsModel,\n id: string,\n data: UpdateSearchRecordParams<TData>\n ): Promise<SearchRecord<TData>>;\n move(model: CmsModel, id: string, folderId?: string | null): Promise<boolean>;\n delete(model: CmsModel, id: string): Promise<boolean>;\n onSearchRecordBeforeCreate: Topic<OnSearchRecordBeforeCreateTopicParams>;\n onSearchRecordAfterCreate: Topic<OnSearchRecordAfterCreateTopicParams>;\n onSearchRecordBeforeUpdate: Topic<OnSearchRecordBeforeUpdateTopicParams>;\n onSearchRecordAfterUpdate: Topic<OnSearchRecordAfterUpdateTopicParams>;\n onSearchRecordBeforeMove: Topic<OnSearchRecordBeforeMoveTopicParams>;\n onSearchRecordAfterMove: Topic<OnSearchRecordAfterMoveTopicParams>;\n onSearchRecordBeforeDelete: Topic<OnSearchRecordBeforeDeleteTopicParams>;\n onSearchRecordAfterDelete: Topic<OnSearchRecordAfterDeleteTopicParams>;\n}\n\nexport interface AcoSearchRecordStorageOperations {\n getRecord<TData extends GenericSearchData = GenericSearchData>(\n model: CmsModel,\n params: StorageOperationsGetSearchRecordParams\n ): Promise<SearchRecord<TData>>;\n listRecords<TData extends GenericSearchData = GenericSearchData>(\n model: CmsModel,\n params: StorageOperationsListSearchRecordsParams\n ): Promise<[SearchRecord<TData>[], ListMeta]>;\n listTags(\n model: CmsModel,\n params: StorageOperationsListSearchRecordTagsParams\n ): Promise<[SearchRecordTag[], ListMeta]>;\n createRecord<TData extends GenericSearchData = GenericSearchData>(\n model: CmsModel,\n params: StorageOperationsCreateSearchRecordParams<TData>\n ): Promise<SearchRecord<TData>>;\n updateRecord<TData extends GenericSearchData = GenericSearchData>(\n model: CmsModel,\n params: StorageOperationsUpdateSearchRecordParams<TData>\n ): Promise<SearchRecord<TData>>;\n moveRecord(model: CmsModel, params: StorageOperationsMoveSearchRecordParams): Promise<boolean>;\n deleteRecord(\n model: CmsModel,\n params: StorageOperationsDeleteSearchRecordParams\n ): Promise<boolean>;\n}\n"],"mappings":""}
package/types.d.ts CHANGED
@@ -1,10 +1,15 @@
1
1
  import { TenancyContext, Tenant } from "@webiny/api-tenancy/types";
2
2
  import { Context as BaseContext } from "@webiny/handler/types";
3
3
  import { I18NContext, I18NLocale } from "@webiny/api-i18n/types";
4
- import { SecurityContext, SecurityIdentity } from "@webiny/api-security/types";
4
+ import { SecurityContext } from "@webiny/api-security/types";
5
+ import { AdminUsersContext } from "@webiny/api-admin-users/types";
6
+ import { FileManagerContext } from "@webiny/api-file-manager/types";
5
7
  import { CmsContext, CmsModel, CmsModelField } from "@webiny/api-headless-cms/types";
6
- import { AcoSearchRecordCrud, AcoSearchRecordCrudBase, AcoSearchRecordStorageOperations } from "./record/record.types";
8
+ import { AcoSearchRecordCrud, AcoSearchRecordCrudBase, AcoSearchRecordStorageOperations, SearchRecord } from "./record/record.types";
7
9
  import { AcoFolderCrud, AcoFolderStorageOperations } from "./folder/folder.types";
10
+ import { AcoFilterCrud, AcoFilterStorageOperations } from "./filter/filter.types";
11
+ import { FolderLevelPermissions } from "./utils/FolderLevelPermissions";
12
+ export * from "./filter/filter.types";
8
13
  export * from "./folder/folder.types";
9
14
  export * from "./record/record.types";
10
15
  export interface User {
@@ -26,25 +31,30 @@ export interface AcoBaseFields {
26
31
  id: string;
27
32
  entryId: string;
28
33
  createdOn: string;
29
- createdBy: User;
34
+ modifiedOn: string | null;
30
35
  savedOn: string;
36
+ createdBy: User;
37
+ modifiedBy: User | null;
38
+ savedBy: User;
31
39
  }
32
40
  export interface AdvancedContentOrganisation {
33
41
  folder: AcoFolderCrud;
34
42
  search: AcoSearchRecordCrud;
43
+ filter: AcoFilterCrud;
44
+ folderLevelPermissions: FolderLevelPermissions;
35
45
  apps: IAcoApps;
36
46
  registerApp: (params: IAcoAppRegisterParams) => Promise<IAcoApp>;
37
47
  getApp: (name: string) => IAcoApp;
38
48
  listApps: () => IAcoApp[];
39
49
  }
40
50
  export interface CreateAcoParams {
41
- getIdentity: () => SecurityIdentity;
42
51
  getLocale: () => I18NLocale;
43
52
  getTenant: () => Tenant;
44
53
  storageOperations: AcoStorageOperations;
54
+ folderLevelPermissions: FolderLevelPermissions;
45
55
  }
46
- export declare type AcoStorageOperations = AcoFolderStorageOperations & AcoSearchRecordStorageOperations;
47
- export interface AcoContext extends BaseContext, I18NContext, TenancyContext, SecurityContext, CmsContext {
56
+ export declare type AcoStorageOperations = AcoFolderStorageOperations & AcoSearchRecordStorageOperations & AcoFilterStorageOperations;
57
+ export interface AcoContext extends BaseContext, I18NContext, TenancyContext, SecurityContext, AdminUsersContext, CmsContext, FileManagerContext {
48
58
  aco: AdvancedContentOrganisation;
49
59
  }
50
60
  /**
@@ -77,11 +87,18 @@ export interface IAcoApp {
77
87
  removeField: IAcoAppRemoveFieldCallable;
78
88
  modifyField: IAcoAppModifyFieldCallable;
79
89
  }
90
+ export declare type IAcoAppOnEntry<T = any> = (entry: SearchRecord<T>) => Promise<SearchRecord<T>>;
91
+ export declare type IAcoAppOnEntryList<T = any> = (entry: SearchRecord<T>[]) => Promise<SearchRecord<T>[]>;
92
+ export declare type AcoRequestAction = "create" | "update" | "delete" | "move" | "fetch";
93
+ export declare type IAcoAppOnAnyRequest = (context: AcoContext, action: AcoRequestAction) => Promise<void>;
80
94
  export interface IAcoAppParams {
81
95
  name: string;
82
96
  apiName: string;
83
97
  model: CmsModel;
84
98
  fields: CmsModelField[];
99
+ onEntry?: IAcoAppOnEntry;
100
+ onEntryList?: IAcoAppOnEntryList;
101
+ onAnyRequest?: IAcoAppOnAnyRequest;
85
102
  }
86
103
  export declare type IAcoAppsOptions = CreateAcoParams;
87
104
  export interface IAcoApps {
package/types.js CHANGED
@@ -7,6 +7,18 @@ var _exportNames = {
7
7
  ListSortDirection: true
8
8
  };
9
9
  exports.ListSortDirection = void 0;
10
+ var _filter = require("./filter/filter.types");
11
+ Object.keys(_filter).forEach(function (key) {
12
+ if (key === "default" || key === "__esModule") return;
13
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
14
+ if (key in exports && exports[key] === _filter[key]) return;
15
+ Object.defineProperty(exports, key, {
16
+ enumerable: true,
17
+ get: function () {
18
+ return _filter[key];
19
+ }
20
+ });
21
+ });
10
22
  var _folder = require("./folder/folder.types");
11
23
  Object.keys(_folder).forEach(function (key) {
12
24
  if (key === "default" || key === "__esModule") return;
@@ -31,9 +43,18 @@ Object.keys(_record).forEach(function (key) {
31
43
  }
32
44
  });
33
45
  });
34
- let ListSortDirection;
35
- exports.ListSortDirection = ListSortDirection;
36
- (function (ListSortDirection) {
46
+ let ListSortDirection = /*#__PURE__*/function (ListSortDirection) {
37
47
  ListSortDirection[ListSortDirection["ASC"] = 0] = "ASC";
38
48
  ListSortDirection[ListSortDirection["DESC"] = 1] = "DESC";
39
- })(ListSortDirection || (exports.ListSortDirection = ListSortDirection = {}));
49
+ return ListSortDirection;
50
+ }({});
51
+ /**
52
+ * @deprecated Use AcoContext instead
53
+ */
54
+ /**
55
+ * Apps
56
+ */
57
+ // TODO: determine correct type
58
+ exports.ListSortDirection = ListSortDirection;
59
+
60
+ //# sourceMappingURL=types.js.map