contentful-migration 4.8.1 → 4.9.2

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 (91) hide show
  1. package/CHANGELOG.md +1 -6
  2. package/README.md +237 -140
  3. package/built/lib/action/content-type-annotate.js +27 -0
  4. package/built/lib/action/content-type-annotate.js.map +1 -0
  5. package/built/lib/action/editor-layout/editor-layout-change-field-group-control.js +23 -0
  6. package/built/lib/action/editor-layout/editor-layout-change-field-group-control.js.map +1 -0
  7. package/built/lib/action/editor-layout/editor-layout-create-field-group.js +26 -0
  8. package/built/lib/action/editor-layout/editor-layout-create-field-group.js.map +1 -0
  9. package/built/lib/action/editor-layout/editor-layout-create.js +18 -0
  10. package/built/lib/action/editor-layout/editor-layout-create.js.map +1 -0
  11. package/built/lib/action/editor-layout/editor-layout-delete-field-group.js +23 -0
  12. package/built/lib/action/editor-layout/editor-layout-delete-field-group.js.map +1 -0
  13. package/built/lib/action/editor-layout/editor-layout-delete.js +21 -0
  14. package/built/lib/action/editor-layout/editor-layout-delete.js.map +1 -0
  15. package/built/lib/action/editor-layout/editor-layout-move-field.js +24 -0
  16. package/built/lib/action/editor-layout/editor-layout-move-field.js.map +1 -0
  17. package/built/lib/action/editor-layout/editor-layout-update-field-group.js +41 -0
  18. package/built/lib/action/editor-layout/editor-layout-update-field-group.js.map +1 -0
  19. package/built/lib/action/field-annotate.js +28 -0
  20. package/built/lib/action/field-annotate.js.map +1 -0
  21. package/built/lib/action/field-rename.js +4 -0
  22. package/built/lib/action/field-rename.js.map +1 -1
  23. package/built/lib/entities/content-type.js +239 -11
  24. package/built/lib/entities/content-type.js.map +1 -1
  25. package/built/lib/fetcher.js +2 -1
  26. package/built/lib/fetcher.js.map +1 -1
  27. package/built/lib/intent/base-intent.js +47 -0
  28. package/built/lib/intent/base-intent.js.map +1 -1
  29. package/built/lib/intent/composed-intent.js +51 -1
  30. package/built/lib/intent/composed-intent.js.map +1 -1
  31. package/built/lib/intent/content-type-annotate.js +57 -0
  32. package/built/lib/intent/content-type-annotate.js.map +1 -0
  33. package/built/lib/intent/editor-layout/editor-layout-change-field-group-control.js +57 -0
  34. package/built/lib/intent/editor-layout/editor-layout-change-field-group-control.js.map +1 -0
  35. package/built/lib/intent/editor-layout/editor-layout-change-field-group-id.js +59 -0
  36. package/built/lib/intent/editor-layout/editor-layout-change-field-group-id.js.map +1 -0
  37. package/built/lib/intent/editor-layout/editor-layout-create-field-group.js +54 -0
  38. package/built/lib/intent/editor-layout/editor-layout-create-field-group.js.map +1 -0
  39. package/built/lib/intent/editor-layout/editor-layout-create.js +49 -0
  40. package/built/lib/intent/editor-layout/editor-layout-create.js.map +1 -0
  41. package/built/lib/intent/editor-layout/editor-layout-delete-field-group.js +53 -0
  42. package/built/lib/intent/editor-layout/editor-layout-delete-field-group.js.map +1 -0
  43. package/built/lib/intent/editor-layout/editor-layout-delete.js +45 -0
  44. package/built/lib/intent/editor-layout/editor-layout-delete.js.map +1 -0
  45. package/built/lib/intent/editor-layout/editor-layout-invalid-method.js +38 -0
  46. package/built/lib/intent/editor-layout/editor-layout-invalid-method.js.map +1 -0
  47. package/built/lib/intent/editor-layout/editor-layout-move-field.js +81 -0
  48. package/built/lib/intent/editor-layout/editor-layout-move-field.js.map +1 -0
  49. package/built/lib/intent/editor-layout/editor-layout-update-field-group.js +57 -0
  50. package/built/lib/intent/editor-layout/editor-layout-update-field-group.js.map +1 -0
  51. package/built/lib/intent/field-annotate.js +57 -0
  52. package/built/lib/intent/field-annotate.js.map +1 -0
  53. package/built/lib/intent/index.js +23 -1
  54. package/built/lib/intent/index.js.map +1 -1
  55. package/built/lib/intent-list/index.js +4 -0
  56. package/built/lib/intent-list/index.js.map +1 -1
  57. package/built/lib/interfaces/annotation.js +86 -0
  58. package/built/lib/interfaces/annotation.js.map +1 -0
  59. package/built/lib/migration-chunks/validation/editor-layout.js +305 -0
  60. package/built/lib/migration-chunks/validation/editor-layout.js.map +1 -0
  61. package/built/lib/migration-chunks/validation/errors.js +91 -0
  62. package/built/lib/migration-chunks/validation/errors.js.map +1 -1
  63. package/built/lib/migration-chunks/validation/field.js +24 -23
  64. package/built/lib/migration-chunks/validation/field.js.map +1 -1
  65. package/built/lib/migration-chunks/validation/index.js +16 -3
  66. package/built/lib/migration-chunks/validation/index.js.map +1 -1
  67. package/built/lib/migration-parser.js +1 -1
  68. package/built/lib/migration-parser.js.map +1 -1
  69. package/built/lib/migration-steps/action-creators.js +164 -0
  70. package/built/lib/migration-steps/action-creators.js.map +1 -1
  71. package/built/lib/migration-steps/index.js +111 -3
  72. package/built/lib/migration-steps/index.js.map +1 -1
  73. package/built/lib/offline-api/index.js +13 -4
  74. package/built/lib/offline-api/index.js.map +1 -1
  75. package/built/lib/offline-api/validator/annotations.js +76 -0
  76. package/built/lib/offline-api/validator/annotations.js.map +1 -0
  77. package/built/lib/offline-api/validator/editor-interface.js +16 -0
  78. package/built/lib/offline-api/validator/editor-interface.js.map +1 -0
  79. package/built/lib/offline-api/validator/errors.js +21 -0
  80. package/built/lib/offline-api/validator/errors.js.map +1 -1
  81. package/built/lib/offline-api/validator/field-groups-count.js +34 -0
  82. package/built/lib/offline-api/validator/field-groups-count.js.map +1 -0
  83. package/built/lib/offline-api/validator/schema/editor-layout-schema.js +46 -0
  84. package/built/lib/offline-api/validator/schema/editor-layout-schema.js.map +1 -0
  85. package/built/lib/offline-api/validator/schema/schema-validation.js +42 -1
  86. package/built/lib/offline-api/validator/schema/schema-validation.js.map +1 -1
  87. package/built/lib/utils/editor-layout.js +60 -0
  88. package/built/lib/utils/editor-layout.js.map +1 -0
  89. package/docs/validation.md +104 -0
  90. package/index.d.ts +87 -0
  91. package/package.json +3 -3
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const base_intent_1 = __importDefault(require("../base-intent"));
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const editor_layout_delete_field_group_1 = require("../../action/editor-layout/editor-layout-delete-field-group");
9
+ class EditorLayoutDeleteFieldGroupIntent extends base_intent_1.default {
10
+ isEditorInterfaceIntent() {
11
+ return true;
12
+ }
13
+ isEditorLayoutUpdate() {
14
+ return true;
15
+ }
16
+ isFieldGroupDelete() {
17
+ return true;
18
+ }
19
+ isGroupable() {
20
+ return true;
21
+ }
22
+ groupsWith(other) {
23
+ return other.isGroupable()
24
+ && other.isEditorLayoutUpdate()
25
+ && this.isSameContentType(other);
26
+ }
27
+ endsGroup() {
28
+ return false;
29
+ }
30
+ shouldSave() {
31
+ return true;
32
+ }
33
+ shouldPublish() {
34
+ return false;
35
+ }
36
+ toActions() {
37
+ return [
38
+ new editor_layout_delete_field_group_1.EditorLayoutDeleteFieldGroupAction(this.payload.contentTypeId, this.payload.fieldGroupId)
39
+ ];
40
+ }
41
+ toPlanMessage() {
42
+ return {
43
+ heading: (0, chalk_1.default) `Update editor layout for content type {bold.yellow ${this.getContentTypeId()}}`,
44
+ sections: [{
45
+ heading: (0, chalk_1.default) `Delete field group {yellow ${this.getFieldGroupId()}}`,
46
+ details: []
47
+ }],
48
+ details: []
49
+ };
50
+ }
51
+ }
52
+ exports.default = EditorLayoutDeleteFieldGroupIntent;
53
+ //# sourceMappingURL=editor-layout-delete-field-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-layout-delete-field-group.js","sourceRoot":"","sources":["../../../../src/lib/intent/editor-layout/editor-layout-delete-field-group.ts"],"names":[],"mappings":";;;;;AAAA,iEAAmC;AAEnC,kDAAyB;AACzB,kHAAgH;AAEhH,MAAqB,kCAAmC,SAAQ,qBAAM;IACpE,uBAAuB;QACrB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,oBAAoB;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,kBAAkB;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,WAAW;QACT,OAAO,IAAI,CAAA;IACb,CAAC;IACD,UAAU,CAAE,KAAa;QACvB,OAAO,KAAK,CAAC,WAAW,EAAE;eACrB,KAAK,CAAC,oBAAoB,EAAE;eAC5B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC;IACD,SAAS;QACP,OAAO,KAAK,CAAA;IACd,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAA;IACb,CAAC;IACD,aAAa;QACX,OAAO,KAAK,CAAA;IACd,CAAC;IACD,SAAS;QACP,OAAO;YACL,IAAI,qEAAkC,CACpC,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,IAAI,CAAC,OAAO,CAAC,YAAY,CAC1B;SACF,CAAA;IACH,CAAC;IACD,aAAa;QACX,OAAO;YACL,OAAO,EAAE,IAAA,eAAK,EAAA,sDAAsD,IAAI,CAAC,gBAAgB,EAAE,GAAG;YAC9F,QAAQ,EAAE,CAAC;oBACT,OAAO,EAAE,IAAA,eAAK,EAAA,8BAA8B,IAAI,CAAC,eAAe,EAAE,GAAG;oBACrE,OAAO,EAAE,EAAE;iBACZ,CAAC;YACF,OAAO,EAAE,EAAE;SACZ,CAAA;IACH,CAAC;CACF;AA7CD,qDA6CC"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const base_intent_1 = __importDefault(require("../base-intent"));
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const editor_layout_delete_1 = require("../../action/editor-layout/editor-layout-delete");
9
+ class EditorLayoutDeleteIntent extends base_intent_1.default {
10
+ isEditorInterfaceIntent() {
11
+ return true;
12
+ }
13
+ isEditorLayoutDelete() {
14
+ return true;
15
+ }
16
+ isGroupable() {
17
+ return false;
18
+ }
19
+ groupsWith() {
20
+ return false;
21
+ }
22
+ endsGroup() {
23
+ return true;
24
+ }
25
+ shouldSave() {
26
+ return true;
27
+ }
28
+ shouldPublish() {
29
+ return false;
30
+ }
31
+ toActions() {
32
+ return [
33
+ new editor_layout_delete_1.EditorLayoutDeleteAction(this.payload.contentTypeId)
34
+ ];
35
+ }
36
+ toPlanMessage() {
37
+ return {
38
+ heading: (0, chalk_1.default) `Delete editor layout for content type {bold.yellow ${this.getContentTypeId()}}`,
39
+ sections: [],
40
+ details: []
41
+ };
42
+ }
43
+ }
44
+ exports.default = EditorLayoutDeleteIntent;
45
+ //# sourceMappingURL=editor-layout-delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-layout-delete.js","sourceRoot":"","sources":["../../../../src/lib/intent/editor-layout/editor-layout-delete.ts"],"names":[],"mappings":";;;;;AAAA,iEAAmC;AAEnC,kDAAyB;AACzB,0FAA0F;AAE1F,MAAqB,wBAAyB,SAAQ,qBAAM;IAC1D,uBAAuB;QACrB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,oBAAoB;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,WAAW;QACT,OAAO,KAAK,CAAA;IACd,CAAC;IACD,UAAU;QACR,OAAO,KAAK,CAAA;IACd,CAAC;IACD,SAAS;QACP,OAAO,IAAI,CAAA;IACb,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAA;IACb,CAAC;IACD,aAAa;QACX,OAAO,KAAK,CAAA;IACd,CAAC;IACD,SAAS;QACP,OAAO;YACL,IAAI,+CAAwB,CAC1B,IAAI,CAAC,OAAO,CAAC,aAAa,CAC3B;SACF,CAAA;IACH,CAAC;IACD,aAAa;QACX,OAAO;YACL,OAAO,EAAE,IAAA,eAAK,EAAA,sDAAsD,IAAI,CAAC,gBAAgB,EAAE,GAAG;YAC9F,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,EAAE;SACZ,CAAA;IACH,CAAC;CACF;AApCD,2CAoCC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const base_intent_1 = __importDefault(require("../base-intent"));
7
+ class EditorLayoutInvalidMethodIntent extends base_intent_1.default {
8
+ isEditorLayoutUpdate() {
9
+ return true;
10
+ }
11
+ isEditorLayoutInvalidMethod() {
12
+ return true;
13
+ }
14
+ groupsWith() {
15
+ return false;
16
+ }
17
+ endsGroup() {
18
+ return false;
19
+ }
20
+ shouldSave() {
21
+ return false;
22
+ }
23
+ shouldPublish() {
24
+ return false;
25
+ }
26
+ toActions() {
27
+ return [];
28
+ }
29
+ toPlanMessage() {
30
+ return {
31
+ heading: '',
32
+ details: [],
33
+ sections: []
34
+ };
35
+ }
36
+ }
37
+ exports.default = EditorLayoutInvalidMethodIntent;
38
+ //# sourceMappingURL=editor-layout-invalid-method.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-layout-invalid-method.js","sourceRoot":"","sources":["../../../../src/lib/intent/editor-layout/editor-layout-invalid-method.ts"],"names":[],"mappings":";;;;;AAAA,iEAAmC;AAGnC,MAAqB,+BAAgC,SAAQ,qBAAM;IACjE,oBAAoB;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,2BAA2B;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,UAAU;QACR,OAAO,KAAK,CAAA;IACd,CAAC;IACD,SAAS;QACP,OAAO,KAAK,CAAA;IACd,CAAC;IACD,UAAU;QACR,OAAO,KAAK,CAAA;IACd,CAAC;IACD,aAAa;QACX,OAAO,KAAK,CAAA;IACd,CAAC;IACD,SAAS;QACP,OAAO,EAAE,CAAA;IACX,CAAC;IACD,aAAa;QACX,OAAO;YACL,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,EAAE;SACb,CAAA;IACH,CAAC;CACF;AA7BD,kDA6BC"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const base_intent_1 = __importDefault(require("../base-intent"));
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const editor_layout_move_field_1 = require("../../action/editor-layout/editor-layout-move-field");
9
+ class EditorLayoutMoveFieldIntent extends base_intent_1.default {
10
+ isEditorInterfaceIntent() {
11
+ return true;
12
+ }
13
+ isEditorLayoutUpdate() {
14
+ return true;
15
+ }
16
+ requiresContentType() {
17
+ // We need the fields to validate field IDs
18
+ return true;
19
+ }
20
+ isGroupable() {
21
+ return true;
22
+ }
23
+ groupsWith(other) {
24
+ return other.isGroupable()
25
+ && other.isEditorLayoutUpdate()
26
+ && this.isSameContentType(other);
27
+ }
28
+ endsGroup() {
29
+ return false;
30
+ }
31
+ shouldSave() {
32
+ return true;
33
+ }
34
+ shouldPublish() {
35
+ return false;
36
+ }
37
+ getPivotId() {
38
+ return this.payload.movement.pivot;
39
+ }
40
+ getDirection() {
41
+ return this.payload.movement.direction;
42
+ }
43
+ toActions() {
44
+ return [
45
+ new editor_layout_move_field_1.EditorLayoutMoveFieldGroupAction(this.payload.contentTypeId, this.payload.fieldId, this.getDirection(), this.getPivotId())
46
+ ];
47
+ }
48
+ toPlanMessage() {
49
+ const direction = this.getDirection();
50
+ const pivot = this.getPivotId();
51
+ let humanizedMovement;
52
+ if (direction === 'toTheTopOfFieldGroup') {
53
+ humanizedMovement = (0, chalk_1.default) `to the first position ${pivot ? (0, chalk_1.default) `of group {yellow ${pivot}}` : 'of its group'}`;
54
+ }
55
+ if (direction === 'toTheBottomOfFieldGroup') {
56
+ humanizedMovement = (0, chalk_1.default) `to the last position ${pivot ? (0, chalk_1.default) `of group {yellow ${pivot}}` : 'of its group'}`;
57
+ }
58
+ if (direction === 'afterField') {
59
+ humanizedMovement = (0, chalk_1.default) `after field {yellow ${pivot}}`;
60
+ }
61
+ if (direction === 'beforeField') {
62
+ humanizedMovement = (0, chalk_1.default) `before field {yellow ${pivot}}`;
63
+ }
64
+ if (direction === 'afterFieldGroup') {
65
+ humanizedMovement = (0, chalk_1.default) `after field group {yellow ${pivot}}`;
66
+ }
67
+ if (direction === 'beforeFieldGroup') {
68
+ humanizedMovement = (0, chalk_1.default) `before field group {yellow ${pivot}}`;
69
+ }
70
+ return {
71
+ heading: (0, chalk_1.default) `Update editor layout for content type {bold.yellow ${this.getContentTypeId()}}`,
72
+ sections: [{
73
+ heading: (0, chalk_1.default) `Move field {yellow ${this.payload.fieldId}} ${humanizedMovement}`,
74
+ details: []
75
+ }],
76
+ details: []
77
+ };
78
+ }
79
+ }
80
+ exports.default = EditorLayoutMoveFieldIntent;
81
+ //# sourceMappingURL=editor-layout-move-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-layout-move-field.js","sourceRoot":"","sources":["../../../../src/lib/intent/editor-layout/editor-layout-move-field.ts"],"names":[],"mappings":";;;;;AAAA,iEAAmC;AAEnC,kDAAyB;AACzB,kGAAsG;AAGtG,MAAqB,2BAA4B,SAAQ,qBAAM;IAC7D,uBAAuB;QACrB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,oBAAoB;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,mBAAmB;QACjB,2CAA2C;QAC3C,OAAO,IAAI,CAAA;IACb,CAAC;IACD,WAAW;QACT,OAAO,IAAI,CAAA;IACb,CAAC;IACD,UAAU,CAAE,KAAa;QACvB,OAAO,KAAK,CAAC,WAAW,EAAE;eACrB,KAAK,CAAC,oBAAoB,EAAE;eAC5B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC;IACD,SAAS;QACP,OAAO,KAAK,CAAA;IACd,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAA;IACb,CAAC;IACD,aAAa;QACX,OAAO,KAAK,CAAA;IACd,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAA;IACpC,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAA+C,CAAA;IAC9E,CAAC;IAED,SAAS;QACP,OAAO;YACL,IAAI,2DAAgC,CAClC,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,IAAI,CAAC,OAAO,CAAC,OAAO,EACpB,IAAI,CAAC,YAAY,EAAE,EACnB,IAAI,CAAC,UAAU,EAAE,CAClB;SACF,CAAA;IACH,CAAC;IAED,aAAa;QAEX,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QAC/B,IAAI,iBAAiB,CAAA;QAErB,IAAI,SAAS,KAAK,sBAAsB,EAAE;YACxC,iBAAiB,GAAG,IAAA,eAAK,EAAA,yBAAyB,KAAK,CAAC,CAAC,CAAC,IAAA,eAAK,EAAA,oBAAoB,KAAK,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,CAAA;SAC/G;QAED,IAAI,SAAS,KAAK,yBAAyB,EAAE;YAC3C,iBAAiB,GAAG,IAAA,eAAK,EAAA,wBAAwB,KAAK,CAAC,CAAC,CAAC,IAAA,eAAK,EAAA,oBAAoB,KAAK,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,CAAA;SAC9G;QAED,IAAI,SAAS,KAAK,YAAY,EAAE;YAC9B,iBAAiB,GAAG,IAAA,eAAK,EAAA,uBAAuB,KAAK,GAAG,CAAA;SACzD;QAED,IAAI,SAAS,KAAK,aAAa,EAAE;YAC/B,iBAAiB,GAAG,IAAA,eAAK,EAAA,wBAAwB,KAAK,GAAG,CAAA;SAC1D;QAED,IAAI,SAAS,KAAK,iBAAiB,EAAE;YACnC,iBAAiB,GAAG,IAAA,eAAK,EAAA,6BAA6B,KAAK,GAAG,CAAA;SAC/D;QAED,IAAI,SAAS,KAAK,kBAAkB,EAAE;YACpC,iBAAiB,GAAG,IAAA,eAAK,EAAA,8BAA8B,KAAK,GAAG,CAAA;SAChE;QAED,OAAO;YACL,OAAO,EAAE,IAAA,eAAK,EAAA,sDAAsD,IAAI,CAAC,gBAAgB,EAAE,GAAG;YAC9F,QAAQ,EAAE,CAAC;oBACT,OAAO,EAAE,IAAA,eAAK,EAAA,sBAAsB,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,iBAAiB,EAAE;oBAChF,OAAO,EAAE,EAAE;iBACZ,CAAC;YACF,OAAO,EAAE,EAAE;SACZ,CAAA;IACH,CAAC;CACF;AAvFD,8CAuFC"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const base_intent_1 = __importDefault(require("../base-intent"));
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const editor_layout_update_field_group_1 = require("../../action/editor-layout/editor-layout-update-field-group");
9
+ const lodash_1 = require("lodash");
10
+ class EditorLayoutUpdateFieldGroupIntent extends base_intent_1.default {
11
+ isEditorInterfaceIntent() {
12
+ return true;
13
+ }
14
+ isEditorLayoutUpdate() {
15
+ return true;
16
+ }
17
+ isFieldGroupUpdate() {
18
+ return true;
19
+ }
20
+ isGroupable() {
21
+ return true;
22
+ }
23
+ groupsWith(other) {
24
+ return other.isGroupable()
25
+ && other.isEditorLayoutUpdate()
26
+ && this.isSameContentType(other);
27
+ }
28
+ endsGroup() {
29
+ return false;
30
+ }
31
+ shouldSave() {
32
+ return true;
33
+ }
34
+ shouldPublish() {
35
+ return false;
36
+ }
37
+ toActions() {
38
+ return [
39
+ new editor_layout_update_field_group_1.EditorLayoutUpdateFieldGroupAction(this.payload.contentTypeId, this.payload.fieldGroupId, this.payload.fieldGroupProps)
40
+ ];
41
+ }
42
+ toPlanMessage() {
43
+ const details = (0, lodash_1.entries)(this.payload.fieldGroupProps).map(([key, value]) => {
44
+ return (0, chalk_1.default) `{italic ${key}}: ${JSON.stringify(value)}`;
45
+ });
46
+ return {
47
+ heading: (0, chalk_1.default) `Update editor layout for content type {bold.yellow ${this.getContentTypeId()}}`,
48
+ sections: [{
49
+ heading: (0, chalk_1.default) `Update field group {yellow ${this.payload.fieldGroupId}}`,
50
+ details
51
+ }],
52
+ details: []
53
+ };
54
+ }
55
+ }
56
+ exports.default = EditorLayoutUpdateFieldGroupIntent;
57
+ //# sourceMappingURL=editor-layout-update-field-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-layout-update-field-group.js","sourceRoot":"","sources":["../../../../src/lib/intent/editor-layout/editor-layout-update-field-group.ts"],"names":[],"mappings":";;;;;AAAA,iEAAmC;AAEnC,kDAAyB;AACzB,kHAAgH;AAChH,mCAAgC;AAEhC,MAAqB,kCAAmC,SAAQ,qBAAM;IACpE,uBAAuB;QACrB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,oBAAoB;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,kBAAkB;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,WAAW;QACT,OAAO,IAAI,CAAA;IACb,CAAC;IACD,UAAU,CAAE,KAAa;QACvB,OAAO,KAAK,CAAC,WAAW,EAAE;eACrB,KAAK,CAAC,oBAAoB,EAAE;eAC5B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC;IACD,SAAS;QACP,OAAO,KAAK,CAAA;IACd,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAA;IACb,CAAC;IACD,aAAa;QACX,OAAO,KAAK,CAAA;IACd,CAAC;IACD,SAAS;QACP,OAAO;YACL,IAAI,qEAAkC,CACpC,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,IAAI,CAAC,OAAO,CAAC,YAAY,EACzB,IAAI,CAAC,OAAO,CAAC,eAAe,CAC7B;SACF,CAAA;IACH,CAAC;IACD,aAAa;QACX,MAAM,OAAO,GAAG,IAAA,gBAAO,EAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACzE,OAAO,IAAA,eAAK,EAAA,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAA;QACzD,CAAC,CAAC,CAAA;QAEF,OAAO;YACL,OAAO,EAAE,IAAA,eAAK,EAAA,sDAAsD,IAAI,CAAC,gBAAgB,EAAE,GAAG;YAC9F,QAAQ,EAAE,CAAC;oBACT,OAAO,EAAE,IAAA,eAAK,EAAA,8BAA8B,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG;oBACxE,OAAO;iBACR,CAAC;YACF,OAAO,EAAE,EAAE;SACZ,CAAA;IACH,CAAC;CACF;AAlDD,qDAkDC"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const base_intent_1 = __importDefault(require("./base-intent"));
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const field_annotate_1 = require("../action/field-annotate");
9
+ class FieldAnnotateIntent extends base_intent_1.default {
10
+ groupsWith(other) {
11
+ const sameContentType = other.getContentTypeId() === this.getContentTypeId();
12
+ return ((other.isContentTypeUpdate() ||
13
+ other.isContentTypeCreate() ||
14
+ other.isFieldCreate() ||
15
+ other.isFieldUpdate() ||
16
+ other.isFieldMove()) &&
17
+ sameContentType);
18
+ }
19
+ endsGroup() {
20
+ return false;
21
+ }
22
+ shouldSave() {
23
+ return true;
24
+ }
25
+ toActions() {
26
+ var _a;
27
+ const annotationLinks = (_a = this.payload.annotations) === null || _a === void 0 ? void 0 : _a.map((id) => ({
28
+ sys: {
29
+ id,
30
+ type: 'Link',
31
+ linkType: 'Annotation'
32
+ }
33
+ }));
34
+ return [new field_annotate_1.FieldAnnotateAction(this.getContentTypeId(), this.getFieldId(), annotationLinks)];
35
+ }
36
+ toPlanMessage() {
37
+ var _a;
38
+ const count = ((_a = this.payload.annotations) === null || _a === void 0 ? void 0 : _a.length) || 0;
39
+ const heading = count
40
+ ? `Assign annotation${count > 1 ? 's' : ''} ${this.payload.annotations
41
+ .map((aId) => (0, chalk_1.default) `{yellow ${aId}}`)
42
+ .join(', ')} to field ${this.getFieldId()}`
43
+ : (0, chalk_1.default) `Clear annotations on field {yellow ${this.getFieldId()}}`;
44
+ return {
45
+ heading: (0, chalk_1.default) `Update Content Type {bold.yellow ${this.getContentTypeId()}}`,
46
+ sections: [
47
+ {
48
+ heading,
49
+ details: []
50
+ }
51
+ ],
52
+ details: []
53
+ };
54
+ }
55
+ }
56
+ exports.default = FieldAnnotateIntent;
57
+ //# sourceMappingURL=field-annotate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-annotate.js","sourceRoot":"","sources":["../../../src/lib/intent/field-annotate.ts"],"names":[],"mappings":";;;;;AAAA,gEAAkC;AAElC,kDAAyB;AACzB,6DAA8D;AAG9D,MAAqB,mBAAoB,SAAQ,qBAAM;IACrD,UAAU,CAAC,KAAa;QACtB,MAAM,eAAe,GAAG,KAAK,CAAC,gBAAgB,EAAE,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAC5E,OAAO,CACL,CAAC,KAAK,CAAC,mBAAmB,EAAE;YAC1B,KAAK,CAAC,mBAAmB,EAAE;YAC3B,KAAK,CAAC,aAAa,EAAE;YACrB,KAAK,CAAC,aAAa,EAAE;YACrB,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,eAAe,CAChB,CAAA;IACH,CAAC;IAED,SAAS;QACP,OAAO,KAAK,CAAA;IACd,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAA;IACb,CAAC;IAED,SAAS;;QACP,MAAM,eAAe,GAAqB,MAAA,IAAI,CAAC,OAAO,CAAC,WAAW,0CAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/E,GAAG,EAAE;gBACH,EAAE;gBACF,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,YAAY;aACvB;SACF,CAAC,CAAC,CAAA;QACH,OAAO,CAAC,IAAI,oCAAmB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,eAAe,CAAC,CAAC,CAAA;IAC/F,CAAC;IAED,aAAa;;QACX,MAAM,KAAK,GAAG,CAAA,MAAA,IAAI,CAAC,OAAO,CAAC,WAAW,0CAAE,MAAM,KAAI,CAAC,CAAA;QACnD,MAAM,OAAO,GAAG,KAAK;YACnB,CAAC,CAAC,oBAAoB,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW;iBACjE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,eAAK,EAAA,WAAW,GAAG,GAAG,CAAC;iBACpC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,UAAU,EAAE,EAAE;YAC/C,CAAC,CAAC,IAAA,eAAK,EAAA,sCAAsC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAA;QAEnE,OAAO;YACL,OAAO,EAAE,IAAA,eAAK,EAAA,oCAAoC,IAAI,CAAC,gBAAgB,EAAE,GAAG;YAC5E,QAAQ,EAAE;gBACR;oBACE,OAAO;oBACP,OAAO,EAAE,EAAE;iBACZ;aACF;YACD,OAAO,EAAE,EAAE;SACZ,CAAA;IACH,CAAC;CACF;AAnDD,sCAmDC"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.EntrySetTags = exports.TagDelete = exports.TagUpdate = exports.TagCreate = exports.EntryEditorsConfigure = exports.EntryEditorConfigure = exports.EntryEditorResetToDefault = exports.SidebarResetToDefault = exports.SidebarWidgetUpdate = exports.SidebarWidgetRemove = exports.SidebarWidgetAdd = exports.EditorInterfaceReset = exports.EditorInterfaceCopy = exports.EditorInterfaceUpdate = exports.EntryTransformToType = exports.EntryDerive = exports.ContentTypeUpdate = exports.ContentTypeDelete = exports.ContentTypeCreate = exports.FieldCreate = exports.FieldDelete = exports.FieldMove = exports.FieldRename = exports.EntryTransform = exports.FieldUpdate = exports.Intent = exports.default = void 0;
6
+ exports.EditorLayoutDelete = exports.EditorLayoutChangeFieldGroupId = exports.EditorLayoutMoveField = exports.EntrySetTags = exports.TagDelete = exports.TagUpdate = exports.TagCreate = exports.EditorLayoutChangeFieldGroupControl = exports.EditorLayoutUpdateFieldGroup = exports.EditorLayoutInvalidMethod = exports.EditorLayoutDeleteFieldGroup = exports.EditorLayoutCreateFieldGroup = exports.EditorLayoutCreate = exports.EntryEditorsConfigure = exports.EntryEditorConfigure = exports.EntryEditorResetToDefault = exports.SidebarResetToDefault = exports.SidebarWidgetUpdate = exports.SidebarWidgetRemove = exports.SidebarWidgetAdd = exports.EditorInterfaceReset = exports.EditorInterfaceCopy = exports.EditorInterfaceUpdate = exports.EntryTransformToType = exports.EntryDerive = exports.ContentTypeAnnotate = exports.ContentTypeUpdate = exports.ContentTypeDelete = exports.ContentTypeCreate = exports.FieldAnnotate = exports.FieldCreate = exports.FieldDelete = exports.FieldMove = exports.FieldRename = exports.EntryTransform = exports.FieldUpdate = exports.Intent = exports.default = void 0;
7
7
  const base_intent_1 = __importDefault(require("./base-intent"));
8
8
  exports.default = base_intent_1.default;
9
9
  exports.Intent = base_intent_1.default;
@@ -11,6 +11,8 @@ const field_update_1 = __importDefault(require("./field-update"));
11
11
  exports.FieldUpdate = field_update_1.default;
12
12
  const content_type_update_1 = __importDefault(require("./content-type-update"));
13
13
  exports.ContentTypeUpdate = content_type_update_1.default;
14
+ const content_type_annotate_1 = __importDefault(require("./content-type-annotate"));
15
+ exports.ContentTypeAnnotate = content_type_annotate_1.default;
14
16
  const entry_transform_1 = __importDefault(require("./entry-transform"));
15
17
  exports.EntryTransform = entry_transform_1.default;
16
18
  const field_rename_1 = __importDefault(require("./field-rename"));
@@ -49,6 +51,20 @@ const entryeditor_configure_1 = __importDefault(require("./entryeditor-configure
49
51
  exports.EntryEditorConfigure = entryeditor_configure_1.default;
50
52
  const entryeditors_configure_1 = __importDefault(require("./entryeditors-configure"));
51
53
  exports.EntryEditorsConfigure = entryeditors_configure_1.default;
54
+ const editor_layout_create_1 = __importDefault(require("./editor-layout/editor-layout-create"));
55
+ exports.EditorLayoutCreate = editor_layout_create_1.default;
56
+ const editor_layout_invalid_method_1 = __importDefault(require("./editor-layout/editor-layout-invalid-method"));
57
+ exports.EditorLayoutInvalidMethod = editor_layout_invalid_method_1.default;
58
+ const editor_layout_create_field_group_1 = __importDefault(require("./editor-layout/editor-layout-create-field-group"));
59
+ exports.EditorLayoutCreateFieldGroup = editor_layout_create_field_group_1.default;
60
+ const editor_layout_delete_field_group_1 = __importDefault(require("./editor-layout/editor-layout-delete-field-group"));
61
+ exports.EditorLayoutDeleteFieldGroup = editor_layout_delete_field_group_1.default;
62
+ const editor_layout_update_field_group_1 = __importDefault(require("./editor-layout/editor-layout-update-field-group"));
63
+ exports.EditorLayoutUpdateFieldGroup = editor_layout_update_field_group_1.default;
64
+ const editor_layout_change_field_group_control_1 = __importDefault(require("./editor-layout/editor-layout-change-field-group-control"));
65
+ exports.EditorLayoutChangeFieldGroupControl = editor_layout_change_field_group_control_1.default;
66
+ const editor_layout_move_field_1 = __importDefault(require("./editor-layout/editor-layout-move-field"));
67
+ exports.EditorLayoutMoveField = editor_layout_move_field_1.default;
52
68
  const tag_create_1 = __importDefault(require("./tag-create"));
53
69
  exports.TagCreate = tag_create_1.default;
54
70
  const tag_update_1 = __importDefault(require("./tag-update"));
@@ -57,4 +73,10 @@ const tag_delete_1 = __importDefault(require("./tag-delete"));
57
73
  exports.TagDelete = tag_delete_1.default;
58
74
  const entry_set_tags_1 = __importDefault(require("./entry-set-tags"));
59
75
  exports.EntrySetTags = entry_set_tags_1.default;
76
+ const editor_layout_change_field_group_id_1 = __importDefault(require("./editor-layout/editor-layout-change-field-group-id"));
77
+ exports.EditorLayoutChangeFieldGroupId = editor_layout_change_field_group_id_1.default;
78
+ const editor_layout_delete_1 = __importDefault(require("./editor-layout/editor-layout-delete"));
79
+ exports.EditorLayoutDelete = editor_layout_delete_1.default;
80
+ const field_annotate_1 = __importDefault(require("./field-annotate"));
81
+ exports.FieldAnnotate = field_annotate_1.default;
60
82
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/intent/index.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAkC;AA4BtB,kBA5BL,qBAAM,CA4BM;AACjB,iBA7BK,qBAAM,CA6BL;AA5BR,kEAA8C;AA6BvB,sBA7BhB,sBAAiB,CA6BU;AA5BlC,gFAA2D;AAoC9B,4BApCtB,6BAAuB,CAoCgB;AAnC9C,wEAAoD;AA4B1B,yBA5BnB,yBAAoB,CA4Ba;AA3BxC,kEAA8C;AA4BvB,sBA5BhB,sBAAiB,CA4BU;AA3BlC,8DAA0C;AA4BrB,oBA5Bd,oBAAe,CA4BQ;AA3B9B,kEAA8C;AA4BvB,sBA5BhB,sBAAiB,CA4BU;AA3BlC,kEAA8C;AA4BvB,sBA5BhB,sBAAiB,CA4BU;AA3BlC,gFAA2D;AA4B9B,4BA5BtB,6BAAuB,CA4BgB;AA3B9C,gFAA2D;AA4B9B,4BA5BtB,6BAAuB,CA4BgB;AA3B9C,kEAA8C;AA6BvB,sBA7BhB,sBAAiB,CA6BU;AA5BlC,wFAAkE;AA6BlC,+BA7BzB,iCAA0B,CA6BmB;AA5BpD,sFAAkE;AA6BjC,gCA7B1B,gCAA2B,CA6BoB;AA5BtD,kFAA8D;AA6B/B,8BA7BxB,8BAAyB,CA6BkB;AA5BlD,oFAAgE;AA6BhC,+BA7BzB,+BAA0B,CA6BmB;AA5BpD,4EAAwD;AA6B5B,2BA7BrB,2BAAsB,CA6Be;AA5B5C,kFAA8D;AA6B/B,8BA7BxB,8BAAyB,CA6BkB;AA5BlD,kFAA8D;AA6B/B,8BA7BxB,8BAAyB,CA6BkB;AA5BlD,0FAAoE;AA6BnC,gCA7B1B,kCAA2B,CA6BoB;AA5BtD,kGAA4E;AA6BvC,oCA7B9B,sCAA+B,CA6BwB;AA5B9D,oFAAgE;AA6BhC,+BA7BzB,+BAA0B,CA6BmB;AA5BpD,sFAAkE;AA6BjC,gCA7B1B,gCAA2B,CA6BoB;AA5BtD,8DAA0C;AA6BrB,oBA7Bd,oBAAe,CA6BQ;AA5B9B,8DAA0C;AA6BrB,oBA7Bd,oBAAe,CA6BQ;AA5B9B,8DAA0C;AA6BrB,oBA7Bd,oBAAe,CA6BQ;AA5B9B,sEAAiD;AA6BzB,uBA7BjB,wBAAkB,CA6BW"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/intent/index.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAkC;AAuCtB,kBAvCL,qBAAM,CAuCM;AACjB,iBAxCK,qBAAM,CAwCL;AAvCR,kEAA8C;AAwCvB,sBAxChB,sBAAiB,CAwCU;AAvClC,gFAA2D;AAgD9B,4BAhDtB,6BAAuB,CAgDgB;AA/C9C,oFAA+D;AAgDhC,8BAhDxB,+BAAyB,CAgDkB;AA/ClD,wEAAoD;AAsC1B,yBAtCnB,yBAAoB,CAsCa;AArCxC,kEAA8C;AAsCvB,sBAtChB,sBAAiB,CAsCU;AArClC,8DAA0C;AAsCrB,oBAtCd,oBAAe,CAsCQ;AArC9B,kEAA8C;AAsCvB,sBAtChB,sBAAiB,CAsCU;AArClC,kEAA8C;AAsCvB,sBAtChB,sBAAiB,CAsCU;AArClC,gFAA2D;AAuC9B,4BAvCtB,6BAAuB,CAuCgB;AAtC9C,gFAA2D;AAuC9B,4BAvCtB,6BAAuB,CAuCgB;AAtC9C,kEAA8C;AAyCvB,sBAzChB,sBAAiB,CAyCU;AAxClC,wFAAkE;AAyClC,+BAzCzB,iCAA0B,CAyCmB;AAxCpD,sFAAkE;AAyCjC,gCAzC1B,gCAA2B,CAyCoB;AAxCtD,kFAA8D;AAyC/B,8BAzCxB,8BAAyB,CAyCkB;AAxClD,oFAAgE;AAyChC,+BAzCzB,+BAA0B,CAyCmB;AAxCpD,4EAAwD;AAyC5B,2BAzCrB,2BAAsB,CAyCe;AAxC5C,kFAA8D;AAyC/B,8BAzCxB,8BAAyB,CAyCkB;AAxClD,kFAA8D;AAyC/B,8BAzCxB,8BAAyB,CAyCkB;AAxClD,0FAAoE;AAyCnC,gCAzC1B,kCAA2B,CAyCoB;AAxCtD,kGAA4E;AAyCvC,oCAzC9B,sCAA+B,CAyCwB;AAxC9D,oFAAgE;AAyChC,+BAzCzB,+BAA0B,CAyCmB;AAxCpD,sFAAkE;AAyCjC,gCAzC1B,gCAA2B,CAyCoB;AAxCtD,gGAA2E;AAyC7C,6BAzCvB,8BAAwB,CAyCiB;AAxChD,gHAA0F;AA2CrD,oCA3C9B,sCAA+B,CA2CwB;AA1C9D,wHAAiG;AAwCzD,uCAxCjC,0CAAkC,CAwC2B;AAvCpE,wHAAiG;AAwCzD,uCAxCjC,0CAAkC,CAwC2B;AAvCpE,wHAAiG;AAyCzD,uCAzCjC,0CAAkC,CAyC2B;AAxCpE,wIAAgH;AAyCjE,8CAzCxC,kDAAyC,CAyCkC;AAxClF,wGAAkF;AA6CjD,gCA7C1B,kCAA2B,CA6CoB;AA5CtD,8DAA0C;AAwCrB,oBAxCd,oBAAe,CAwCQ;AAvC9B,8DAA0C;AAwCrB,oBAxCd,oBAAe,CAwCQ;AAvC9B,8DAA0C;AAwCrB,oBAxCd,oBAAe,CAwCQ;AAvC9B,sEAAiD;AAwCzB,uBAxCjB,wBAAkB,CAwCW;AAvCpC,8HAAsG;AAyC5D,yCAzCnC,6CAAoC,CAyC6B;AAxCxE,gGAA2E;AAyC7C,6BAzCvB,8BAAwB,CAyCiB;AAxChD,sEAAkD;AAWzB,wBAXlB,wBAAmB,CAWY"}
@@ -8,6 +8,7 @@ const action_1 = require("../action/action");
8
8
  const content_type_save_1 = require("../action/content-type-save");
9
9
  const content_type_publish_1 = require("../action/content-type-publish");
10
10
  const tag_save_1 = require("../action/tag-save");
11
+ const editorinterface_save_1 = require("../action/editorinterface-save");
11
12
  class IntentList {
12
13
  constructor(intents) {
13
14
  this.validators = [];
@@ -118,6 +119,9 @@ class IntentList {
118
119
  if (intent.isTagIntent()) {
119
120
  save = new tag_save_1.TagSaveAction(intent.getTagId());
120
121
  }
122
+ else if (intent.isEditorInterfaceIntent()) {
123
+ save = new editorinterface_save_1.SaveEditorInterfaceAction(intent.getContentTypeId());
124
+ }
121
125
  else {
122
126
  save = new content_type_save_1.ContentTypeSaveAction(intent.getContentTypeId());
123
127
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/intent-list/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/intent-list/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.validateAnnotationAssignment = exports.availableAnnotations = exports.Annotation = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ class Annotation {
9
+ constructor(annotationData) {
10
+ this.annotationData = annotationData;
11
+ }
12
+ static isValidId(id) {
13
+ return Object.keys(exports.availableAnnotations).includes(id);
14
+ }
15
+ /**
16
+ * Verifies if given assignment complies with the annotation definition
17
+ */
18
+ validateAssignment(assignment) {
19
+ const { targets } = this.annotationData;
20
+ const isValidTarget = targets.some((target) => {
21
+ if (target.type !== assignment.target.type) {
22
+ return false;
23
+ }
24
+ return (!target.accept ||
25
+ target.accept.some((requirements) => lodash_1.default.isMatch(assignment.target.data, requirements)));
26
+ });
27
+ if (!isValidTarget) {
28
+ return {
29
+ type: 'InvalidPayload',
30
+ message: `Invalid annotation assignment for annotation "${this.annotationData.id}". Annotation target mismatch`
31
+ };
32
+ }
33
+ }
34
+ }
35
+ exports.Annotation = Annotation;
36
+ exports.availableAnnotations = {
37
+ 'Contentful:AggregateRoot': new Annotation({
38
+ id: 'Contentful:AggregateRoot',
39
+ targets: [
40
+ {
41
+ type: 'ContentType'
42
+ }
43
+ ]
44
+ }),
45
+ 'Contentful:ManagedByEnvironmentTemplate': new Annotation({
46
+ id: 'Contentful:ManagedByEnvironmentTemplate',
47
+ targets: [
48
+ {
49
+ type: 'ContentType'
50
+ }
51
+ ]
52
+ }),
53
+ 'Contentful:AggregateComponent': new Annotation({
54
+ id: 'Contentful:AggregateComponent',
55
+ targets: [
56
+ {
57
+ type: 'ContentTypeField',
58
+ accept: [
59
+ {
60
+ type: 'Link',
61
+ linkType: 'Entry'
62
+ },
63
+ {
64
+ type: 'Array',
65
+ items: {
66
+ type: 'Link',
67
+ linkType: 'Entry'
68
+ }
69
+ }
70
+ ]
71
+ }
72
+ ]
73
+ })
74
+ };
75
+ function validateAnnotationAssignment(assignment) {
76
+ const annotation = exports.availableAnnotations[assignment.annotationId];
77
+ if (!annotation) {
78
+ return {
79
+ type: 'InvalidPayload',
80
+ message: `Invalid annotation assignment. Annotation "${assignment.annotationId}" not found`
81
+ };
82
+ }
83
+ return annotation.validateAssignment(assignment);
84
+ }
85
+ exports.validateAnnotationAssignment = validateAnnotationAssignment;
86
+ //# sourceMappingURL=annotation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotation.js","sourceRoot":"","sources":["../../../src/lib/interfaces/annotation.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAsB;AAuBtB,MAAa,UAAU;IAGrB,YAAY,cAA8B;QACxC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;IACtC,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,EAAU;QACzB,OAAO,MAAM,CAAC,IAAI,CAAC,4BAAoB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACvD,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,UAAgC;QACjD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAA;QAEvC,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5C,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE;gBAC1C,OAAO,KAAK,CAAA;aACb;YACD,OAAO,CACL,CAAC,MAAM,CAAC,MAAM;gBACd,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,gBAAC,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CACtF,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,aAAa,EAAE;YAClB,OAAO;gBACL,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,iDAAiD,IAAI,CAAC,cAAc,CAAC,EAAE,+BAA+B;aAChH,CAAA;SACF;IACH,CAAC;CACF;AAlCD,gCAkCC;AAEY,QAAA,oBAAoB,GAAG;IAClC,0BAA0B,EAAE,IAAI,UAAU,CAAC;QACzC,EAAE,EAAE,0BAA0B;QAC9B,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,aAAa;aACpB;SACF;KACF,CAAC;IACF,yCAAyC,EAAE,IAAI,UAAU,CAAC;QACxD,EAAE,EAAE,yCAAyC;QAC7C,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,aAAa;aACpB;SACF;KACF,CAAC;IACF,+BAA+B,EAAE,IAAI,UAAU,CAAC;QAC9C,EAAE,EAAE,+BAA+B;QACnC,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,kBAAkB;gBACxB,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,MAAM;wBACZ,QAAQ,EAAE,OAAO;qBAClB;oBACD;wBACE,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACL,IAAI,EAAE,MAAM;4BACZ,QAAQ,EAAE,OAAO;yBAClB;qBACF;iBACF;aACF;SACF;KACF,CAAC;CACH,CAAA;AAID,SAAgB,4BAA4B,CAC1C,UAAgC;IAEhC,MAAM,UAAU,GACd,4BAAoB,CAAC,UAAU,CAAC,YAAiD,CAAC,CAAA;IACpF,IAAI,CAAC,UAAU,EAAE;QACf,OAAO;YACL,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,8CAA8C,UAAU,CAAC,YAAY,aAAa;SAC5F,CAAA;KACF;IAED,OAAO,UAAU,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAA;AAClD,CAAC;AAbD,oEAaC"}