@webiny/api-headless-cms 5.40.6 → 5.41.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/constants.d.ts +1 -1
  2. package/crud/AccessControl/AccessControl.d.ts +2 -2
  3. package/crud/contentEntry/abstractions/IListEntries.d.ts +2 -2
  4. package/crud/contentEntry/abstractions/IListEntries.js.map +1 -1
  5. package/crud/contentEntry/afterDelete.js +7 -1
  6. package/crud/contentEntry/afterDelete.js.map +1 -1
  7. package/crud/contentEntry/entryDataFactories/createEntryData.d.ts +1 -1
  8. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.d.ts +1 -1
  9. package/crud/contentEntry/entryDataFactories/createPublishEntryData.d.ts +1 -1
  10. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.d.ts +1 -1
  11. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.d.ts +1 -1
  12. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.d.ts +1 -1
  13. package/crud/contentEntry/entryDataValidation.d.ts +1 -1
  14. package/crud/contentEntry/useCases/DeleteEntry/TransformEntryMoveToBin.js +0 -8
  15. package/crud/contentEntry/useCases/DeleteEntry/TransformEntryMoveToBin.js.map +1 -1
  16. package/crud/contentEntry/useCases/RestoreEntryFromBin/TransformEntryRestoreFromBin.js +0 -8
  17. package/crud/contentEntry/useCases/RestoreEntryFromBin/TransformEntryRestoreFromBin.js.map +1 -1
  18. package/crud/contentEntry.crud.js.map +1 -1
  19. package/crud/contentModel/validation.d.ts +50 -50
  20. package/crud/contentModel.crud.js.map +1 -1
  21. package/export/crud/sanitize.d.ts +1 -1
  22. package/export/crud/sanitize.js.map +1 -1
  23. package/export/types.d.ts +3 -3
  24. package/graphql/createExecutableSchema.js +14 -7
  25. package/graphql/createExecutableSchema.js.map +1 -1
  26. package/graphql/getSchema.js +6 -5
  27. package/graphql/getSchema.js.map +1 -1
  28. package/graphql/index.d.ts +1 -1
  29. package/graphql/schema/contentEntries.js.map +1 -1
  30. package/graphql/schema/createFieldResolvers.d.ts +1 -1
  31. package/graphql/schema/createFieldResolvers.js +1 -3
  32. package/graphql/schema/createFieldResolvers.js.map +1 -1
  33. package/graphql/schema/createSingularSDL.js +4 -0
  34. package/graphql/schema/createSingularSDL.js.map +1 -1
  35. package/graphql/schema/resolvers/manage/resolveCreate.d.ts +1 -1
  36. package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +1 -1
  37. package/graphql/schema/resolvers/manage/resolveDelete.d.ts +1 -1
  38. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.d.ts +1 -1
  39. package/graphql/schema/resolvers/manage/resolveGet.d.ts +1 -1
  40. package/graphql/schema/resolvers/manage/resolveGetByIds.d.ts +1 -1
  41. package/graphql/schema/resolvers/manage/resolveGetRevisions.d.ts +1 -1
  42. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.d.ts +1 -1
  43. package/graphql/schema/resolvers/manage/resolveList.d.ts +1 -1
  44. package/graphql/schema/resolvers/manage/resolveListDeleted.d.ts +1 -1
  45. package/graphql/schema/resolvers/manage/resolveMove.d.ts +1 -1
  46. package/graphql/schema/resolvers/manage/resolvePublish.d.ts +1 -1
  47. package/graphql/schema/resolvers/manage/resolveRepublish.d.ts +1 -1
  48. package/graphql/schema/resolvers/manage/resolveRestoreFromBin.d.ts +1 -1
  49. package/graphql/schema/resolvers/manage/resolveUnpublish.d.ts +1 -1
  50. package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +1 -1
  51. package/graphql/schema/resolvers/manage/resolveValidate.d.ts +1 -1
  52. package/graphql/schema/resolvers/preview/resolveGet.d.ts +1 -1
  53. package/graphql/schema/resolvers/preview/resolveList.d.ts +1 -1
  54. package/graphql/schema/resolvers/read/resolveGet.d.ts +1 -1
  55. package/graphql/schema/resolvers/read/resolveList.d.ts +1 -1
  56. package/graphql/schema/resolvers/singular/resolveGet.d.ts +1 -1
  57. package/graphql/schema/resolvers/singular/resolveUpdate.d.ts +1 -1
  58. package/index.d.ts +4 -2
  59. package/index.js +24 -0
  60. package/index.js.map +1 -1
  61. package/package.json +26 -24
  62. package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.d.ts +2 -2
  63. package/plugins/CmsModelPlugin.d.ts +1 -1
  64. package/plugins/CmsModelPlugin.js +1 -1
  65. package/plugins/CmsModelPlugin.js.map +1 -1
  66. package/plugins/CmsParametersPlugin.d.ts +2 -2
  67. package/types/context.d.ts +7 -7
  68. package/types/context.js.map +1 -1
  69. package/types/modelAst.d.ts +4 -4
  70. package/types/modelField.d.ts +3 -2
  71. package/types/modelField.js.map +1 -1
  72. package/types/types.d.ts +25 -17
  73. package/types/types.js.map +1 -1
  74. package/utils/contentEntryTraverser/ContentEntryTraverser.d.ts +4 -1
  75. package/utils/contentEntryTraverser/ContentEntryTraverser.js.map +1 -1
  76. package/utils/contentModelAst/CmsModelToAstConverter.d.ts +1 -1
  77. package/utils/contentModelAst/CmsModelToAstConverter.js.map +1 -1
  78. package/utils/index.d.ts +1 -0
  79. package/utils/index.js +11 -0
  80. package/utils/index.js.map +1 -1
  81. package/utils/modelFieldTraverser/ModelFieldTraverser.d.ts +16 -0
  82. package/utils/modelFieldTraverser/ModelFieldTraverser.js +41 -0
  83. package/utils/modelFieldTraverser/ModelFieldTraverser.js.map +1 -0
  84. package/utils/modelFieldTraverser/index.d.ts +1 -0
  85. package/utils/modelFieldTraverser/index.js +18 -0
  86. package/utils/modelFieldTraverser/index.js.map +1 -0
package/constants.d.ts CHANGED
@@ -2,7 +2,7 @@ import { CmsIdentity } from "./types";
2
2
  export declare const ROOT_FOLDER = "root";
3
3
  export declare const CMS_MODEL_SINGLETON_TAG = "singleton";
4
4
  export declare const ENTRY_META_FIELDS: readonly ["createdOn", "modifiedOn", "savedOn", "deletedOn", "restoredOn", "firstPublishedOn", "lastPublishedOn", "createdBy", "modifiedBy", "savedBy", "deletedBy", "restoredBy", "firstPublishedBy", "lastPublishedBy", "revisionCreatedOn", "revisionModifiedOn", "revisionSavedOn", "revisionDeletedOn", "revisionRestoredOn", "revisionFirstPublishedOn", "revisionLastPublishedOn", "revisionCreatedBy", "revisionModifiedBy", "revisionSavedBy", "revisionDeletedBy", "revisionRestoredBy", "revisionFirstPublishedBy", "revisionLastPublishedBy"];
5
- export declare type EntryMetaFieldName = (typeof ENTRY_META_FIELDS)[number];
5
+ export type EntryMetaFieldName = (typeof ENTRY_META_FIELDS)[number];
6
6
  export interface RecordWithEntryMetaFields {
7
7
  revisionCreatedOn: string;
8
8
  revisionSavedOn: string;
@@ -32,11 +32,11 @@ interface AccessControlEntry {
32
32
  canAccessNonOwned: boolean;
33
33
  canAccessOnlyOwned: boolean;
34
34
  }
35
- declare type AccessControlList = AccessControlEntry[];
35
+ type AccessControlList = AccessControlEntry[];
36
36
  interface EntriesAccessControlEntry extends AccessControlEntry {
37
37
  pw?: string;
38
38
  }
39
- declare type EntriesAccessControlList = EntriesAccessControlEntry[];
39
+ type EntriesAccessControlList = EntriesAccessControlEntry[];
40
40
  export declare class AccessControl {
41
41
  getIdentity: AccessControlParams["getIdentity"];
42
42
  getGroupsPermissions: AccessControlParams["getGroupsPermissions"];
@@ -1,4 +1,4 @@
1
- import { CmsEntry, CmsEntryListParams, CmsEntryMeta, CmsModel } from "../../../types";
1
+ import { CmsEntry, CmsEntryListParams, CmsEntryMeta, CmsEntryValues, CmsModel } from "../../../types";
2
2
  export interface IListEntries {
3
- execute: <T>(model: CmsModel, params?: CmsEntryListParams) => Promise<[CmsEntry<T>[], CmsEntryMeta]>;
3
+ execute: <T extends CmsEntryValues>(model: CmsModel, params?: CmsEntryListParams) => Promise<[CmsEntry<T>[], CmsEntryMeta]>;
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["IListEntries.ts"],"sourcesContent":["import { CmsEntry, CmsEntryListParams, CmsEntryMeta, CmsModel } from \"~/types\";\n\nexport interface IListEntries {\n execute: <T>(\n model: CmsModel,\n params?: CmsEntryListParams\n ) => Promise<[CmsEntry<T>[], CmsEntryMeta]>;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["IListEntries.ts"],"sourcesContent":["import { CmsEntry, CmsEntryListParams, CmsEntryMeta, CmsEntryValues, CmsModel } from \"~/types\";\n\nexport interface IListEntries {\n execute: <T extends CmsEntryValues>(\n model: CmsModel,\n params?: CmsEntryListParams\n ) => Promise<[CmsEntry<T>[], CmsEntryMeta]>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -13,8 +13,14 @@ const assignAfterEntryDelete = params => {
13
13
  onEntryAfterDelete.subscribe(async params => {
14
14
  const {
15
15
  entry,
16
- model
16
+ model,
17
+ permanent
17
18
  } = params;
19
+
20
+ // If the entry is being moved to the trash, we keep the model fields locked because the entry can be restored.
21
+ if (!permanent) {
22
+ return;
23
+ }
18
24
  const {
19
25
  items
20
26
  } = await context.cms.storageOperations.entries.list(model, {
@@ -1 +1 @@
1
- {"version":3,"names":["_markLockedFields","require","assignAfterEntryDelete","params","context","onEntryAfterDelete","subscribe","entry","model","items","cms","storageOperations","entries","list","where","entryId_not","entryId","latest","limit","length","markUnlockedFields","exports"],"sources":["afterDelete.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { OnEntryAfterDeleteTopicParams, CmsContext } from \"~/types\";\nimport { markUnlockedFields } from \"./markLockedFields\";\n\ninterface AssignAfterEntryDeleteParams {\n context: CmsContext;\n onEntryAfterDelete: Topic<OnEntryAfterDeleteTopicParams>;\n}\nexport const assignAfterEntryDelete = (params: AssignAfterEntryDeleteParams) => {\n const { context, onEntryAfterDelete } = params;\n\n onEntryAfterDelete.subscribe(async params => {\n const { entry, model } = params;\n\n const { items } = await context.cms.storageOperations.entries.list(model, {\n where: {\n entryId_not: entry.entryId,\n latest: true\n },\n limit: 1\n });\n if (items.length > 0) {\n return;\n }\n await markUnlockedFields({\n context,\n model\n });\n });\n};\n"],"mappings":";;;;;;AAEA,IAAAA,iBAAA,GAAAC,OAAA;AAMO,MAAMC,sBAAsB,GAAIC,MAAoC,IAAK;EAC5E,MAAM;IAAEC,OAAO;IAAEC;EAAmB,CAAC,GAAGF,MAAM;EAE9CE,kBAAkB,CAACC,SAAS,CAAC,MAAMH,MAAM,IAAI;IACzC,MAAM;MAAEI,KAAK;MAAEC;IAAM,CAAC,GAAGL,MAAM;IAE/B,MAAM;MAAEM;IAAM,CAAC,GAAG,MAAML,OAAO,CAACM,GAAG,CAACC,iBAAiB,CAACC,OAAO,CAACC,IAAI,CAACL,KAAK,EAAE;MACtEM,KAAK,EAAE;QACHC,WAAW,EAAER,KAAK,CAACS,OAAO;QAC1BC,MAAM,EAAE;MACZ,CAAC;MACDC,KAAK,EAAE;IACX,CAAC,CAAC;IACF,IAAIT,KAAK,CAACU,MAAM,GAAG,CAAC,EAAE;MAClB;IACJ;IACA,MAAM,IAAAC,oCAAkB,EAAC;MACrBhB,OAAO;MACPI;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC;AAACa,OAAA,CAAAnB,sBAAA,GAAAA,sBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_markLockedFields","require","assignAfterEntryDelete","params","context","onEntryAfterDelete","subscribe","entry","model","permanent","items","cms","storageOperations","entries","list","where","entryId_not","entryId","latest","limit","length","markUnlockedFields","exports"],"sources":["afterDelete.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { OnEntryAfterDeleteTopicParams, CmsContext } from \"~/types\";\nimport { markUnlockedFields } from \"./markLockedFields\";\n\ninterface AssignAfterEntryDeleteParams {\n context: CmsContext;\n onEntryAfterDelete: Topic<OnEntryAfterDeleteTopicParams>;\n}\nexport const assignAfterEntryDelete = (params: AssignAfterEntryDeleteParams) => {\n const { context, onEntryAfterDelete } = params;\n\n onEntryAfterDelete.subscribe(async params => {\n const { entry, model, permanent } = params;\n\n // If the entry is being moved to the trash, we keep the model fields locked because the entry can be restored.\n if (!permanent) {\n return;\n }\n const { items } = await context.cms.storageOperations.entries.list(model, {\n where: {\n entryId_not: entry.entryId,\n latest: true\n },\n limit: 1\n });\n if (items.length > 0) {\n return;\n }\n await markUnlockedFields({\n context,\n model\n });\n });\n};\n"],"mappings":";;;;;;AAEA,IAAAA,iBAAA,GAAAC,OAAA;AAMO,MAAMC,sBAAsB,GAAIC,MAAoC,IAAK;EAC5E,MAAM;IAAEC,OAAO;IAAEC;EAAmB,CAAC,GAAGF,MAAM;EAE9CE,kBAAkB,CAACC,SAAS,CAAC,MAAMH,MAAM,IAAI;IACzC,MAAM;MAAEI,KAAK;MAAEC,KAAK;MAAEC;IAAU,CAAC,GAAGN,MAAM;;IAE1C;IACA,IAAI,CAACM,SAAS,EAAE;MACZ;IACJ;IACA,MAAM;MAAEC;IAAM,CAAC,GAAG,MAAMN,OAAO,CAACO,GAAG,CAACC,iBAAiB,CAACC,OAAO,CAACC,IAAI,CAACN,KAAK,EAAE;MACtEO,KAAK,EAAE;QACHC,WAAW,EAAET,KAAK,CAACU,OAAO;QAC1BC,MAAM,EAAE;MACZ,CAAC;MACDC,KAAK,EAAE;IACX,CAAC,CAAC;IACF,IAAIT,KAAK,CAACU,MAAM,GAAG,CAAC,EAAE;MAClB;IACJ;IACA,MAAM,IAAAC,oCAAkB,EAAC;MACrBjB,OAAO;MACPI;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC;AAACc,OAAA,CAAApB,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -3,7 +3,7 @@ import { I18NLocale } from "@webiny/api-i18n/types";
3
3
  import { SecurityIdentity } from "@webiny/api-security/types";
4
4
  import { Tenant } from "@webiny/api-tenancy/types";
5
5
  import { AccessControl } from "../../AccessControl/AccessControl";
6
- declare type CreateEntryDataParams = {
6
+ type CreateEntryDataParams = {
7
7
  model: CmsModel;
8
8
  rawInput: CreateCmsEntryInput;
9
9
  options?: CreateCmsEntryOptionsInput;
@@ -3,7 +3,7 @@ import { SecurityIdentity } from "@webiny/api-security/types";
3
3
  import { Tenant } from "@webiny/api-tenancy/types";
4
4
  import { I18NLocale } from "@webiny/api-i18n/types";
5
5
  import { AccessControl } from "../../AccessControl/AccessControl";
6
- declare type CreateEntryRevisionFromDataParams = {
6
+ type CreateEntryRevisionFromDataParams = {
7
7
  sourceId: string;
8
8
  model: CmsModel;
9
9
  rawInput: CreateCmsEntryInput;
@@ -1,6 +1,6 @@
1
1
  import { CmsContext, CmsEntry, CmsModel } from "../../../types";
2
2
  import { SecurityIdentity } from "@webiny/api-security/types";
3
- declare type CreatePublishEntryDataParams = {
3
+ type CreatePublishEntryDataParams = {
4
4
  model: CmsModel;
5
5
  context: CmsContext;
6
6
  getIdentity: () => SecurityIdentity;
@@ -1,6 +1,6 @@
1
1
  import { CmsContext, CmsEntry, CmsModel } from "../../../types";
2
2
  import { SecurityIdentity } from "@webiny/api-security/types";
3
- declare type CreateRepublishEntryDataParams = {
3
+ type CreateRepublishEntryDataParams = {
4
4
  model: CmsModel;
5
5
  context: CmsContext;
6
6
  getIdentity: () => SecurityIdentity;
@@ -1,6 +1,6 @@
1
1
  import { CmsContext, CmsEntry, CmsModel } from "../../../types";
2
2
  import { SecurityIdentity } from "@webiny/api-security/types";
3
- declare type CreateRepublishEntryDataParams = {
3
+ type CreateRepublishEntryDataParams = {
4
4
  model: CmsModel;
5
5
  context: CmsContext;
6
6
  getIdentity: () => SecurityIdentity;
@@ -2,7 +2,7 @@ import { CmsContext, CmsEntry, CmsModel, UpdateCmsEntryInput, UpdateCmsEntryOpti
2
2
  import { SecurityIdentity } from "@webiny/api-security/types";
3
3
  import { Tenant } from "@webiny/api-tenancy/types";
4
4
  import { I18NLocale } from "@webiny/api-i18n/types";
5
- declare type CreateEntryRevisionFromDataParams = {
5
+ type CreateEntryRevisionFromDataParams = {
6
6
  metaInput?: Record<string, any>;
7
7
  model: CmsModel;
8
8
  rawInput: UpdateCmsEntryInput;
@@ -1,5 +1,5 @@
1
1
  import { CmsContext, CmsEntry, CmsModel } from "../../types";
2
- declare type InputData = Record<string, any>;
2
+ type InputData = Record<string, any>;
3
3
  export interface ValidateModelEntryDataParams {
4
4
  context: CmsContext;
5
5
  model: CmsModel;
@@ -7,7 +7,6 @@ exports.TransformEntryMoveToBin = void 0;
7
7
  var _entryStorage = require("../../../../utils/entryStorage");
8
8
  var _date = require("../../../../utils/date");
9
9
  var _identity = require("../../../../utils/identity");
10
- var _entryDataValidation = require("../../entryDataValidation");
11
10
  var _constants = require("../../../../constants");
12
11
  class TransformEntryMoveToBin {
13
12
  constructor(context, getIdentity) {
@@ -24,13 +23,6 @@ class TransformEntryMoveToBin {
24
23
  };
25
24
  }
26
25
  async createDeleteEntryData(model, originalEntry) {
27
- await (0, _entryDataValidation.validateModelEntryDataOrThrow)({
28
- context: this.context,
29
- model,
30
- data: originalEntry.values,
31
- entry: originalEntry,
32
- skipValidators: ["required"]
33
- });
34
26
  const currentDateTime = new Date().toISOString();
35
27
  const currentIdentity = this.getIdentity();
36
28
  const entry = {
@@ -1 +1 @@
1
- {"version":3,"names":["_entryStorage","require","_date","_identity","_entryDataValidation","_constants","TransformEntryMoveToBin","constructor","context","getIdentity","execute","model","initialEntry","originalEntry","entryFromStorageTransform","entry","createDeleteEntryData","storageEntry","entryToStorageTransform","validateModelEntryDataOrThrow","data","values","skipValidators","currentDateTime","Date","toISOString","currentIdentity","wbyDeleted","location","folderId","ROOT_FOLDER","binOriginalFolderId","deletedOn","getDate","deletedBy","revisionDeletedOn","revisionDeletedBy","exports"],"sources":["TransformEntryMoveToBin.ts"],"sourcesContent":["import { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { entryFromStorageTransform, entryToStorageTransform } from \"~/utils/entryStorage\";\nimport { getDate } from \"~/utils/date\";\nimport { getIdentity } from \"~/utils/identity\";\nimport { validateModelEntryDataOrThrow } from \"~/crud/contentEntry/entryDataValidation\";\nimport { CmsContext, CmsEntry, CmsEntryStorageOperationsMoveToBinParams, CmsModel } from \"~/types\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\nexport class TransformEntryMoveToBin {\n private context: CmsContext;\n private getIdentity: () => SecurityIdentity;\n\n constructor(context: CmsContext, getIdentity: () => SecurityIdentity) {\n this.context = context;\n this.getIdentity = getIdentity;\n }\n async execute(\n model: CmsModel,\n initialEntry: CmsEntry\n ): Promise<CmsEntryStorageOperationsMoveToBinParams> {\n const originalEntry = await entryFromStorageTransform(this.context, model, initialEntry);\n const entry = await this.createDeleteEntryData(model, originalEntry);\n const storageEntry = await entryToStorageTransform(this.context, model, entry);\n\n return {\n entry,\n storageEntry\n };\n }\n\n private async createDeleteEntryData(model: CmsModel, originalEntry: CmsEntry) {\n await validateModelEntryDataOrThrow({\n context: this.context,\n model,\n data: originalEntry.values,\n entry: originalEntry,\n skipValidators: [\"required\"]\n });\n\n const currentDateTime = new Date().toISOString();\n const currentIdentity = this.getIdentity();\n\n const entry: CmsEntry = {\n ...originalEntry,\n wbyDeleted: true,\n\n /**\n * Entry location fields. 👇\n */\n location: {\n folderId: ROOT_FOLDER\n },\n binOriginalFolderId: originalEntry.location?.folderId,\n\n /**\n * Entry-level meta fields. 👇\n */\n deletedOn: getDate(currentDateTime, null),\n deletedBy: getIdentity(currentIdentity, null),\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionDeletedOn: getDate(currentDateTime, null),\n revisionDeletedBy: getIdentity(currentIdentity, null)\n };\n\n return entry;\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AAEA,IAAAI,UAAA,GAAAJ,OAAA;AAEO,MAAMK,uBAAuB,CAAC;EAIjCC,WAAWA,CAACC,OAAmB,EAAEC,WAAmC,EAAE;IAClE,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,WAAW,GAAGA,WAAW;EAClC;EACA,MAAMC,OAAOA,CACTC,KAAe,EACfC,YAAsB,EAC2B;IACjD,MAAMC,aAAa,GAAG,MAAM,IAAAC,uCAAyB,EAAC,IAAI,CAACN,OAAO,EAAEG,KAAK,EAAEC,YAAY,CAAC;IACxF,MAAMG,KAAK,GAAG,MAAM,IAAI,CAACC,qBAAqB,CAACL,KAAK,EAAEE,aAAa,CAAC;IACpE,MAAMI,YAAY,GAAG,MAAM,IAAAC,qCAAuB,EAAC,IAAI,CAACV,OAAO,EAAEG,KAAK,EAAEI,KAAK,CAAC;IAE9E,OAAO;MACHA,KAAK;MACLE;IACJ,CAAC;EACL;EAEA,MAAcD,qBAAqBA,CAACL,KAAe,EAAEE,aAAuB,EAAE;IAC1E,MAAM,IAAAM,kDAA6B,EAAC;MAChCX,OAAO,EAAE,IAAI,CAACA,OAAO;MACrBG,KAAK;MACLS,IAAI,EAAEP,aAAa,CAACQ,MAAM;MAC1BN,KAAK,EAAEF,aAAa;MACpBS,cAAc,EAAE,CAAC,UAAU;IAC/B,CAAC,CAAC;IAEF,MAAMC,eAAe,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;IAChD,MAAMC,eAAe,GAAG,IAAI,CAACjB,WAAW,CAAC,CAAC;IAE1C,MAAMM,KAAe,GAAG;MACpB,GAAGF,aAAa;MAChBc,UAAU,EAAE,IAAI;MAEhB;AACZ;AACA;MACYC,QAAQ,EAAE;QACNC,QAAQ,EAAEC;MACd,CAAC;MACDC,mBAAmB,EAAElB,aAAa,CAACe,QAAQ,EAAEC,QAAQ;MAErD;AACZ;AACA;MACYG,SAAS,EAAE,IAAAC,aAAO,EAACV,eAAe,EAAE,IAAI,CAAC;MACzCW,SAAS,EAAE,IAAAzB,qBAAW,EAACiB,eAAe,EAAE,IAAI,CAAC;MAE7C;AACZ;AACA;MACYS,iBAAiB,EAAE,IAAAF,aAAO,EAACV,eAAe,EAAE,IAAI,CAAC;MACjDa,iBAAiB,EAAE,IAAA3B,qBAAW,EAACiB,eAAe,EAAE,IAAI;IACxD,CAAC;IAED,OAAOX,KAAK;EAChB;AACJ;AAACsB,OAAA,CAAA/B,uBAAA,GAAAA,uBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_entryStorage","require","_date","_identity","_constants","TransformEntryMoveToBin","constructor","context","getIdentity","execute","model","initialEntry","originalEntry","entryFromStorageTransform","entry","createDeleteEntryData","storageEntry","entryToStorageTransform","currentDateTime","Date","toISOString","currentIdentity","wbyDeleted","location","folderId","ROOT_FOLDER","binOriginalFolderId","deletedOn","getDate","deletedBy","revisionDeletedOn","revisionDeletedBy","exports"],"sources":["TransformEntryMoveToBin.ts"],"sourcesContent":["import { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { entryFromStorageTransform, entryToStorageTransform } from \"~/utils/entryStorage\";\nimport { getDate } from \"~/utils/date\";\nimport { getIdentity } from \"~/utils/identity\";\nimport { CmsContext, CmsEntry, CmsEntryStorageOperationsMoveToBinParams, CmsModel } from \"~/types\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\nexport class TransformEntryMoveToBin {\n private context: CmsContext;\n private getIdentity: () => SecurityIdentity;\n\n constructor(context: CmsContext, getIdentity: () => SecurityIdentity) {\n this.context = context;\n this.getIdentity = getIdentity;\n }\n async execute(\n model: CmsModel,\n initialEntry: CmsEntry\n ): Promise<CmsEntryStorageOperationsMoveToBinParams> {\n const originalEntry = await entryFromStorageTransform(this.context, model, initialEntry);\n const entry = await this.createDeleteEntryData(model, originalEntry);\n const storageEntry = await entryToStorageTransform(this.context, model, entry);\n\n return {\n entry,\n storageEntry\n };\n }\n\n private async createDeleteEntryData(model: CmsModel, originalEntry: CmsEntry) {\n const currentDateTime = new Date().toISOString();\n const currentIdentity = this.getIdentity();\n\n const entry: CmsEntry = {\n ...originalEntry,\n wbyDeleted: true,\n\n /**\n * Entry location fields. 👇\n */\n location: {\n folderId: ROOT_FOLDER\n },\n binOriginalFolderId: originalEntry.location?.folderId,\n\n /**\n * Entry-level meta fields. 👇\n */\n deletedOn: getDate(currentDateTime, null),\n deletedBy: getIdentity(currentIdentity, null),\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionDeletedOn: getDate(currentDateTime, null),\n revisionDeletedBy: getIdentity(currentIdentity, null)\n };\n\n return entry;\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEA,IAAAG,UAAA,GAAAH,OAAA;AAEO,MAAMI,uBAAuB,CAAC;EAIjCC,WAAWA,CAACC,OAAmB,EAAEC,WAAmC,EAAE;IAClE,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,WAAW,GAAGA,WAAW;EAClC;EACA,MAAMC,OAAOA,CACTC,KAAe,EACfC,YAAsB,EAC2B;IACjD,MAAMC,aAAa,GAAG,MAAM,IAAAC,uCAAyB,EAAC,IAAI,CAACN,OAAO,EAAEG,KAAK,EAAEC,YAAY,CAAC;IACxF,MAAMG,KAAK,GAAG,MAAM,IAAI,CAACC,qBAAqB,CAACL,KAAK,EAAEE,aAAa,CAAC;IACpE,MAAMI,YAAY,GAAG,MAAM,IAAAC,qCAAuB,EAAC,IAAI,CAACV,OAAO,EAAEG,KAAK,EAAEI,KAAK,CAAC;IAE9E,OAAO;MACHA,KAAK;MACLE;IACJ,CAAC;EACL;EAEA,MAAcD,qBAAqBA,CAACL,KAAe,EAAEE,aAAuB,EAAE;IAC1E,MAAMM,eAAe,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;IAChD,MAAMC,eAAe,GAAG,IAAI,CAACb,WAAW,CAAC,CAAC;IAE1C,MAAMM,KAAe,GAAG;MACpB,GAAGF,aAAa;MAChBU,UAAU,EAAE,IAAI;MAEhB;AACZ;AACA;MACYC,QAAQ,EAAE;QACNC,QAAQ,EAAEC;MACd,CAAC;MACDC,mBAAmB,EAAEd,aAAa,CAACW,QAAQ,EAAEC,QAAQ;MAErD;AACZ;AACA;MACYG,SAAS,EAAE,IAAAC,aAAO,EAACV,eAAe,EAAE,IAAI,CAAC;MACzCW,SAAS,EAAE,IAAArB,qBAAW,EAACa,eAAe,EAAE,IAAI,CAAC;MAE7C;AACZ;AACA;MACYS,iBAAiB,EAAE,IAAAF,aAAO,EAACV,eAAe,EAAE,IAAI,CAAC;MACjDa,iBAAiB,EAAE,IAAAvB,qBAAW,EAACa,eAAe,EAAE,IAAI;IACxD,CAAC;IAED,OAAOP,KAAK;EAChB;AACJ;AAACkB,OAAA,CAAA3B,uBAAA,GAAAA,uBAAA","ignoreList":[]}
@@ -7,7 +7,6 @@ exports.TransformEntryRestoreFromBin = void 0;
7
7
  var _entryStorage = require("../../../../utils/entryStorage");
8
8
  var _date = require("../../../../utils/date");
9
9
  var _identity = require("../../../../utils/identity");
10
- var _entryDataValidation = require("../../entryDataValidation");
11
10
  class TransformEntryRestoreFromBin {
12
11
  constructor(context, getIdentity) {
13
12
  this.context = context;
@@ -23,13 +22,6 @@ class TransformEntryRestoreFromBin {
23
22
  };
24
23
  }
25
24
  async createRestoreFromBinEntryData(model, originalEntry) {
26
- await (0, _entryDataValidation.validateModelEntryDataOrThrow)({
27
- context: this.context,
28
- model,
29
- data: originalEntry.values,
30
- entry: originalEntry,
31
- skipValidators: ["required"]
32
- });
33
25
  const currentDateTime = new Date().toISOString();
34
26
  const currentIdentity = this.getIdentity();
35
27
  const entry = {
@@ -1 +1 @@
1
- {"version":3,"names":["_entryStorage","require","_date","_identity","_entryDataValidation","TransformEntryRestoreFromBin","constructor","context","getIdentity","execute","model","initialEntry","originalEntry","entryFromStorageTransform","entry","createRestoreFromBinEntryData","storageEntry","entryToStorageTransform","validateModelEntryDataOrThrow","data","values","skipValidators","currentDateTime","Date","toISOString","currentIdentity","wbyDeleted","location","folderId","binOriginalFolderId","restoredOn","getDate","restoredBy","revisionRestoredOn","revisionRestoredBy","exports"],"sources":["TransformEntryRestoreFromBin.ts"],"sourcesContent":["import { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { entryFromStorageTransform, entryToStorageTransform } from \"~/utils/entryStorage\";\nimport { getDate } from \"~/utils/date\";\nimport { getIdentity } from \"~/utils/identity\";\nimport { validateModelEntryDataOrThrow } from \"~/crud/contentEntry/entryDataValidation\";\nimport { CmsContext, CmsEntry, CmsEntryStorageOperationsMoveToBinParams, CmsModel } from \"~/types\";\n\nexport class TransformEntryRestoreFromBin {\n private context: CmsContext;\n private getIdentity: () => SecurityIdentity;\n\n constructor(context: CmsContext, getIdentity: () => SecurityIdentity) {\n this.context = context;\n this.getIdentity = getIdentity;\n }\n async execute(\n model: CmsModel,\n initialEntry: CmsEntry\n ): Promise<CmsEntryStorageOperationsMoveToBinParams> {\n const originalEntry = await entryFromStorageTransform(this.context, model, initialEntry);\n const entry = await this.createRestoreFromBinEntryData(model, originalEntry);\n const storageEntry = await entryToStorageTransform(this.context, model, entry);\n\n return {\n entry,\n storageEntry\n };\n }\n\n private async createRestoreFromBinEntryData(model: CmsModel, originalEntry: CmsEntry) {\n await validateModelEntryDataOrThrow({\n context: this.context,\n model,\n data: originalEntry.values,\n entry: originalEntry,\n skipValidators: [\"required\"]\n });\n\n const currentDateTime = new Date().toISOString();\n const currentIdentity = this.getIdentity();\n\n const entry: CmsEntry = {\n ...originalEntry,\n wbyDeleted: false,\n\n /**\n * Entry location fields. 👇\n */\n location: {\n folderId: originalEntry.binOriginalFolderId\n },\n binOriginalFolderId: null,\n\n /**\n * Entry-level meta fields. 👇\n */\n restoredOn: getDate(currentDateTime, null),\n restoredBy: getIdentity(currentIdentity, null),\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionRestoredOn: getDate(currentDateTime, null),\n revisionRestoredBy: getIdentity(currentIdentity, null)\n };\n\n return entry;\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AAGO,MAAMI,4BAA4B,CAAC;EAItCC,WAAWA,CAACC,OAAmB,EAAEC,WAAmC,EAAE;IAClE,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,WAAW,GAAGA,WAAW;EAClC;EACA,MAAMC,OAAOA,CACTC,KAAe,EACfC,YAAsB,EAC2B;IACjD,MAAMC,aAAa,GAAG,MAAM,IAAAC,uCAAyB,EAAC,IAAI,CAACN,OAAO,EAAEG,KAAK,EAAEC,YAAY,CAAC;IACxF,MAAMG,KAAK,GAAG,MAAM,IAAI,CAACC,6BAA6B,CAACL,KAAK,EAAEE,aAAa,CAAC;IAC5E,MAAMI,YAAY,GAAG,MAAM,IAAAC,qCAAuB,EAAC,IAAI,CAACV,OAAO,EAAEG,KAAK,EAAEI,KAAK,CAAC;IAE9E,OAAO;MACHA,KAAK;MACLE;IACJ,CAAC;EACL;EAEA,MAAcD,6BAA6BA,CAACL,KAAe,EAAEE,aAAuB,EAAE;IAClF,MAAM,IAAAM,kDAA6B,EAAC;MAChCX,OAAO,EAAE,IAAI,CAACA,OAAO;MACrBG,KAAK;MACLS,IAAI,EAAEP,aAAa,CAACQ,MAAM;MAC1BN,KAAK,EAAEF,aAAa;MACpBS,cAAc,EAAE,CAAC,UAAU;IAC/B,CAAC,CAAC;IAEF,MAAMC,eAAe,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;IAChD,MAAMC,eAAe,GAAG,IAAI,CAACjB,WAAW,CAAC,CAAC;IAE1C,MAAMM,KAAe,GAAG;MACpB,GAAGF,aAAa;MAChBc,UAAU,EAAE,KAAK;MAEjB;AACZ;AACA;MACYC,QAAQ,EAAE;QACNC,QAAQ,EAAEhB,aAAa,CAACiB;MAC5B,CAAC;MACDA,mBAAmB,EAAE,IAAI;MAEzB;AACZ;AACA;MACYC,UAAU,EAAE,IAAAC,aAAO,EAACT,eAAe,EAAE,IAAI,CAAC;MAC1CU,UAAU,EAAE,IAAAxB,qBAAW,EAACiB,eAAe,EAAE,IAAI,CAAC;MAE9C;AACZ;AACA;MACYQ,kBAAkB,EAAE,IAAAF,aAAO,EAACT,eAAe,EAAE,IAAI,CAAC;MAClDY,kBAAkB,EAAE,IAAA1B,qBAAW,EAACiB,eAAe,EAAE,IAAI;IACzD,CAAC;IAED,OAAOX,KAAK;EAChB;AACJ;AAACqB,OAAA,CAAA9B,4BAAA,GAAAA,4BAAA","ignoreList":[]}
1
+ {"version":3,"names":["_entryStorage","require","_date","_identity","TransformEntryRestoreFromBin","constructor","context","getIdentity","execute","model","initialEntry","originalEntry","entryFromStorageTransform","entry","createRestoreFromBinEntryData","storageEntry","entryToStorageTransform","currentDateTime","Date","toISOString","currentIdentity","wbyDeleted","location","folderId","binOriginalFolderId","restoredOn","getDate","restoredBy","revisionRestoredOn","revisionRestoredBy","exports"],"sources":["TransformEntryRestoreFromBin.ts"],"sourcesContent":["import { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { entryFromStorageTransform, entryToStorageTransform } from \"~/utils/entryStorage\";\nimport { getDate } from \"~/utils/date\";\nimport { getIdentity } from \"~/utils/identity\";\nimport { CmsContext, CmsEntry, CmsEntryStorageOperationsMoveToBinParams, CmsModel } from \"~/types\";\n\nexport class TransformEntryRestoreFromBin {\n private context: CmsContext;\n private getIdentity: () => SecurityIdentity;\n\n constructor(context: CmsContext, getIdentity: () => SecurityIdentity) {\n this.context = context;\n this.getIdentity = getIdentity;\n }\n async execute(\n model: CmsModel,\n initialEntry: CmsEntry\n ): Promise<CmsEntryStorageOperationsMoveToBinParams> {\n const originalEntry = await entryFromStorageTransform(this.context, model, initialEntry);\n const entry = await this.createRestoreFromBinEntryData(model, originalEntry);\n const storageEntry = await entryToStorageTransform(this.context, model, entry);\n\n return {\n entry,\n storageEntry\n };\n }\n\n private async createRestoreFromBinEntryData(model: CmsModel, originalEntry: CmsEntry) {\n const currentDateTime = new Date().toISOString();\n const currentIdentity = this.getIdentity();\n\n const entry: CmsEntry = {\n ...originalEntry,\n wbyDeleted: false,\n\n /**\n * Entry location fields. 👇\n */\n location: {\n folderId: originalEntry.binOriginalFolderId\n },\n binOriginalFolderId: null,\n\n /**\n * Entry-level meta fields. 👇\n */\n restoredOn: getDate(currentDateTime, null),\n restoredBy: getIdentity(currentIdentity, null),\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionRestoredOn: getDate(currentDateTime, null),\n revisionRestoredBy: getIdentity(currentIdentity, null)\n };\n\n return entry;\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAGO,MAAMG,4BAA4B,CAAC;EAItCC,WAAWA,CAACC,OAAmB,EAAEC,WAAmC,EAAE;IAClE,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,WAAW,GAAGA,WAAW;EAClC;EACA,MAAMC,OAAOA,CACTC,KAAe,EACfC,YAAsB,EAC2B;IACjD,MAAMC,aAAa,GAAG,MAAM,IAAAC,uCAAyB,EAAC,IAAI,CAACN,OAAO,EAAEG,KAAK,EAAEC,YAAY,CAAC;IACxF,MAAMG,KAAK,GAAG,MAAM,IAAI,CAACC,6BAA6B,CAACL,KAAK,EAAEE,aAAa,CAAC;IAC5E,MAAMI,YAAY,GAAG,MAAM,IAAAC,qCAAuB,EAAC,IAAI,CAACV,OAAO,EAAEG,KAAK,EAAEI,KAAK,CAAC;IAE9E,OAAO;MACHA,KAAK;MACLE;IACJ,CAAC;EACL;EAEA,MAAcD,6BAA6BA,CAACL,KAAe,EAAEE,aAAuB,EAAE;IAClF,MAAMM,eAAe,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;IAChD,MAAMC,eAAe,GAAG,IAAI,CAACb,WAAW,CAAC,CAAC;IAE1C,MAAMM,KAAe,GAAG;MACpB,GAAGF,aAAa;MAChBU,UAAU,EAAE,KAAK;MAEjB;AACZ;AACA;MACYC,QAAQ,EAAE;QACNC,QAAQ,EAAEZ,aAAa,CAACa;MAC5B,CAAC;MACDA,mBAAmB,EAAE,IAAI;MAEzB;AACZ;AACA;MACYC,UAAU,EAAE,IAAAC,aAAO,EAACT,eAAe,EAAE,IAAI,CAAC;MAC1CU,UAAU,EAAE,IAAApB,qBAAW,EAACa,eAAe,EAAE,IAAI,CAAC;MAE9C;AACZ;AACA;MACYQ,kBAAkB,EAAE,IAAAF,aAAO,EAACT,eAAe,EAAE,IAAI,CAAC;MAClDY,kBAAkB,EAAE,IAAAtB,qBAAW,EAACa,eAAe,EAAE,IAAI;IACzD,CAAC;IAED,OAAOP,KAAK;EAChB;AACJ;AAACiB,OAAA,CAAA1B,4BAAA,GAAAA,4BAAA","ignoreList":[]}