@webiny/app-aco 5.42.2 → 5.42.3-beta.1

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 (151) hide show
  1. package/app.d.ts +2 -0
  2. package/app.js +14 -0
  3. package/app.js.map +1 -0
  4. package/components/Extensions/Extensions.d.ts +2 -0
  5. package/components/Extensions/Extensions.js +56 -0
  6. package/components/Extensions/Extensions.js.map +1 -0
  7. package/components/Extensions/index.d.ts +1 -0
  8. package/components/Extensions/index.js +18 -0
  9. package/components/Extensions/index.js.map +1 -0
  10. package/components/index.d.ts +1 -0
  11. package/components/index.js +11 -0
  12. package/components/index.js.map +1 -1
  13. package/config/folder/createFolderFieldDecoratorFactory.d.ts +13 -0
  14. package/config/folder/createFolderFieldDecoratorFactory.js +30 -0
  15. package/config/folder/createFolderFieldDecoratorFactory.js.map +1 -0
  16. package/config/index.d.ts +1 -0
  17. package/config/index.js +11 -0
  18. package/config/index.js.map +1 -1
  19. package/dialogs/useCreateDialog.js +2 -2
  20. package/dialogs/useCreateDialog.js.map +1 -1
  21. package/dialogs/useEditDialog.js +3 -2
  22. package/dialogs/useEditDialog.js.map +1 -1
  23. package/features/folders/Folder.d.ts +2 -0
  24. package/features/folders/Folder.js +1 -0
  25. package/features/folders/Folder.js.map +1 -1
  26. package/features/folders/createFolder/CreateFolderGqlGateway.d.ts +3 -2
  27. package/features/folders/createFolder/CreateFolderGqlGateway.js +6 -3
  28. package/features/folders/createFolder/CreateFolderGqlGateway.js.map +1 -1
  29. package/features/folders/createFolder/CreateFolderRepository.js +2 -1
  30. package/features/folders/createFolder/CreateFolderRepository.js.map +1 -1
  31. package/features/folders/createFolder/CreateFolderUseCase.js +2 -1
  32. package/features/folders/createFolder/CreateFolderUseCase.js.map +1 -1
  33. package/features/folders/createFolder/FolderDto.d.ts +1 -0
  34. package/features/folders/createFolder/FolderDto.js.map +1 -1
  35. package/features/folders/createFolder/FolderGqlDto.d.ts +1 -0
  36. package/features/folders/createFolder/FolderGqlDto.js.map +1 -1
  37. package/features/folders/createFolder/ICreateFolderUseCase.d.ts +1 -0
  38. package/features/folders/createFolder/ICreateFolderUseCase.js.map +1 -1
  39. package/features/folders/createFolder/useCreateFolder.js +2 -1
  40. package/features/folders/createFolder/useCreateFolder.js.map +1 -1
  41. package/features/folders/getFolder/GetFolderGqlGateway.d.ts +3 -2
  42. package/features/folders/getFolder/GetFolderGqlGateway.js +6 -3
  43. package/features/folders/getFolder/GetFolderGqlGateway.js.map +1 -1
  44. package/features/folders/getFolder/useGetFolder.js +2 -1
  45. package/features/folders/getFolder/useGetFolder.js.map +1 -1
  46. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFields.d.ts +5 -0
  47. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFields.js +37 -0
  48. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFields.js.map +1 -0
  49. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFields.test.d.ts +1 -0
  50. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFields.test.js +159 -0
  51. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFields.test.js.map +1 -0
  52. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsRepository.d.ts +26 -0
  53. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsRepository.js +25 -0
  54. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsRepository.js.map +1 -0
  55. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCase.d.ts +28 -0
  56. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCase.js +29 -0
  57. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCase.js.map +1 -0
  58. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCaseWithNamespace.d.ts +28 -0
  59. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCaseWithNamespace.js +35 -0
  60. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCaseWithNamespace.js.map +1 -0
  61. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCaseWithNamespaceAndModelId.d.ts +29 -0
  62. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCaseWithNamespaceAndModelId.js +39 -0
  63. package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCaseWithNamespaceAndModelId.js.map +1 -0
  64. package/features/folders/getFolderExtensionsFields/IGetFolderExtensionsFieldsRepository.d.ts +4 -0
  65. package/features/folders/getFolderExtensionsFields/IGetFolderExtensionsFieldsRepository.js +7 -0
  66. package/features/folders/getFolderExtensionsFields/IGetFolderExtensionsFieldsRepository.js.map +1 -0
  67. package/features/folders/getFolderExtensionsFields/IGetFolderExtensionsFieldsUseCase.d.ts +6 -0
  68. package/features/folders/getFolderExtensionsFields/IGetFolderExtensionsFieldsUseCase.js +7 -0
  69. package/features/folders/getFolderExtensionsFields/IGetFolderExtensionsFieldsUseCase.js.map +1 -0
  70. package/features/folders/getFolderExtensionsFields/index.d.ts +1 -0
  71. package/features/folders/getFolderExtensionsFields/index.js +18 -0
  72. package/features/folders/getFolderExtensionsFields/index.js.map +1 -0
  73. package/features/folders/getFolderExtensionsFields/useGetFolderExtensionsFields.d.ts +24 -0
  74. package/features/folders/getFolderExtensionsFields/useGetFolderExtensionsFields.js +28 -0
  75. package/features/folders/getFolderExtensionsFields/useGetFolderExtensionsFields.js.map +1 -0
  76. package/features/folders/getFolderModel/FolderModelContext.d.ts +3 -0
  77. package/features/folders/getFolderModel/FolderModelContext.js +69 -0
  78. package/features/folders/getFolderModel/FolderModelContext.js.map +1 -0
  79. package/features/folders/getFolderModel/FolderModelDto.d.ts +2 -0
  80. package/features/folders/getFolderModel/FolderModelDto.js +7 -0
  81. package/features/folders/getFolderModel/FolderModelDto.js.map +1 -0
  82. package/features/folders/getFolderModel/GetFolderModel.d.ts +11 -0
  83. package/features/folders/getFolderModel/GetFolderModel.js +29 -0
  84. package/features/folders/getFolderModel/GetFolderModel.js.map +1 -0
  85. package/features/folders/getFolderModel/GetFolderModel.test.d.ts +1 -0
  86. package/features/folders/getFolderModel/GetFolderModel.test.js +73 -0
  87. package/features/folders/getFolderModel/GetFolderModel.test.js.map +1 -0
  88. package/features/folders/getFolderModel/GetFolderModelGqlGateway.d.ts +18 -0
  89. package/features/folders/getFolderModel/GetFolderModelGqlGateway.js +41 -0
  90. package/features/folders/getFolderModel/GetFolderModelGqlGateway.js.map +1 -0
  91. package/features/folders/getFolderModel/GetFolderModelRepository.d.ts +10 -0
  92. package/features/folders/getFolderModel/GetFolderModelRepository.js +42 -0
  93. package/features/folders/getFolderModel/GetFolderModelRepository.js.map +1 -0
  94. package/features/folders/getFolderModel/GetFolderModelUseCase.d.ts +7 -0
  95. package/features/folders/getFolderModel/GetFolderModelUseCase.js +23 -0
  96. package/features/folders/getFolderModel/GetFolderModelUseCase.js.map +1 -0
  97. package/features/folders/getFolderModel/IGetFolderModelGateway.d.ts +4 -0
  98. package/features/folders/getFolderModel/IGetFolderModelGateway.js +7 -0
  99. package/features/folders/getFolderModel/IGetFolderModelGateway.js.map +1 -0
  100. package/features/folders/getFolderModel/IGetFolderModelRepository.d.ts +6 -0
  101. package/features/folders/getFolderModel/IGetFolderModelRepository.js +7 -0
  102. package/features/folders/getFolderModel/IGetFolderModelRepository.js.map +1 -0
  103. package/features/folders/getFolderModel/IGetFolderModelUseCase.d.ts +3 -0
  104. package/features/folders/getFolderModel/IGetFolderModelUseCase.js +7 -0
  105. package/features/folders/getFolderModel/IGetFolderModelUseCase.js.map +1 -0
  106. package/features/folders/getFolderModel/index.d.ts +3 -0
  107. package/features/folders/getFolderModel/index.js +40 -0
  108. package/features/folders/getFolderModel/index.js.map +1 -0
  109. package/features/folders/getFolderModel/useFolderModel.d.ts +1 -0
  110. package/features/folders/getFolderModel/useFolderModel.js +18 -0
  111. package/features/folders/getFolderModel/useFolderModel.js.map +1 -0
  112. package/features/folders/index.d.ts +2 -0
  113. package/features/folders/index.js +22 -0
  114. package/features/folders/index.js.map +1 -1
  115. package/features/folders/listFolders/FolderDto.d.ts +1 -0
  116. package/features/folders/listFolders/FolderDto.js +2 -1
  117. package/features/folders/listFolders/FolderDto.js.map +1 -1
  118. package/features/folders/listFolders/FolderGqlDto.d.ts +1 -0
  119. package/features/folders/listFolders/FolderGqlDto.js.map +1 -1
  120. package/features/folders/listFolders/ListFoldersCompressedGqlGateway.js +2 -1
  121. package/features/folders/listFolders/ListFoldersCompressedGqlGateway.js.map +1 -1
  122. package/features/folders/listFolders/ListFoldersGqlGateway.d.ts +3 -2
  123. package/features/folders/listFolders/ListFoldersGqlGateway.js +8 -4
  124. package/features/folders/listFolders/ListFoldersGqlGateway.js.map +1 -1
  125. package/features/folders/updateFolder/FolderDto.d.ts +1 -0
  126. package/features/folders/updateFolder/FolderDto.js.map +1 -1
  127. package/features/folders/updateFolder/FolderGqlDto.d.ts +1 -0
  128. package/features/folders/updateFolder/FolderGqlDto.js.map +1 -1
  129. package/features/folders/updateFolder/IUpdateFolderUseCase.d.ts +1 -0
  130. package/features/folders/updateFolder/IUpdateFolderUseCase.js.map +1 -1
  131. package/features/folders/updateFolder/UpdateFolderGqlGateway.d.ts +3 -2
  132. package/features/folders/updateFolder/UpdateFolderGqlGateway.js +9 -4
  133. package/features/folders/updateFolder/UpdateFolderGqlGateway.js.map +1 -1
  134. package/features/folders/updateFolder/UpdateFolderRepository.js +2 -1
  135. package/features/folders/updateFolder/UpdateFolderRepository.js.map +1 -1
  136. package/features/folders/updateFolder/UpdateFolderUseCase.js +2 -1
  137. package/features/folders/updateFolder/UpdateFolderUseCase.js.map +1 -1
  138. package/features/folders/updateFolder/useUpdateFolder.js +2 -1
  139. package/features/folders/updateFolder/useUpdateFolder.js.map +1 -1
  140. package/hooks/index.d.ts +1 -0
  141. package/hooks/index.js +11 -0
  142. package/hooks/index.js.map +1 -1
  143. package/hooks/useGetFolderGraphQLSelection.d.ts +1 -0
  144. package/hooks/useGetFolderGraphQLSelection.js +21 -0
  145. package/hooks/useGetFolderGraphQLSelection.js.map +1 -0
  146. package/index.d.ts +1 -0
  147. package/index.js +11 -0
  148. package/index.js.map +1 -1
  149. package/package.json +16 -16
  150. package/types.d.ts +1 -0
  151. package/types.js.map +1 -1
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.GetFolderExtensionsFieldsUseCaseWithNamespaceAndModelId = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var GetFolderExtensionsFieldsUseCaseWithNamespaceAndModelId = exports.GetFolderExtensionsFieldsUseCaseWithNamespaceAndModelId = /*#__PURE__*/function () {
11
+ function GetFolderExtensionsFieldsUseCaseWithNamespaceAndModelId(namespace, modelId, useCase) {
12
+ (0, _classCallCheck2.default)(this, GetFolderExtensionsFieldsUseCaseWithNamespaceAndModelId);
13
+ this.namespace = namespace;
14
+ this.modelId = modelId;
15
+ this.useCase = useCase;
16
+ }
17
+ return (0, _createClass2.default)(GetFolderExtensionsFieldsUseCaseWithNamespaceAndModelId, [{
18
+ key: "execute",
19
+ value: function execute() {
20
+ var _this = this;
21
+ var _this$useCase$execute = this.useCase.execute(),
22
+ extensionsFields = _this$useCase$execute.fields;
23
+ var fields = extensionsFields.filter(function (field) {
24
+ if (field.tags.includes("$namespace:global")) {
25
+ return true; // Always include fields with this tag
26
+ }
27
+ var hasModelIdTag = field.tags.some(function (tag) {
28
+ return tag.startsWith("$modelId:");
29
+ });
30
+ return hasModelIdTag ? field.tags.includes("$modelId:".concat(_this.modelId)) : field.tags.includes("$namespace:".concat(_this.namespace));
31
+ });
32
+ return {
33
+ fields: fields
34
+ };
35
+ }
36
+ }]);
37
+ }();
38
+
39
+ //# sourceMappingURL=GetFolderExtensionsFieldsUseCaseWithNamespaceAndModelId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GetFolderExtensionsFieldsUseCaseWithNamespaceAndModelId","exports","namespace","modelId","useCase","_classCallCheck2","default","_createClass2","key","value","execute","_this","_this$useCase$execute","extensionsFields","fields","filter","field","tags","includes","hasModelIdTag","some","tag","startsWith","concat"],"sources":["GetFolderExtensionsFieldsUseCaseWithNamespaceAndModelId.ts"],"sourcesContent":["import type { IGetFolderExtensionsFieldsUseCase } from \"./IGetFolderExtensionsFieldsUseCase\";\n\nexport class GetFolderExtensionsFieldsUseCaseWithNamespaceAndModelId\n implements IGetFolderExtensionsFieldsUseCase\n{\n private namespace: string;\n private modelId: string;\n private useCase: IGetFolderExtensionsFieldsUseCase;\n\n constructor(namespace: string, modelId: string, useCase: IGetFolderExtensionsFieldsUseCase) {\n this.namespace = namespace;\n this.modelId = modelId;\n this.useCase = useCase;\n }\n\n execute() {\n const { fields: extensionsFields } = this.useCase.execute();\n\n const fields = extensionsFields.filter(field => {\n if (field.tags!.includes(\"$namespace:global\")) {\n return true; // Always include fields with this tag\n }\n\n const hasModelIdTag = field.tags!.some(tag => tag.startsWith(\"$modelId:\"));\n\n return hasModelIdTag\n ? field.tags!.includes(`$modelId:${this.modelId}`)\n : field.tags!.includes(`$namespace:${this.namespace}`);\n });\n\n return {\n fields\n };\n }\n}\n"],"mappings":";;;;;;;;;IAEaA,uDAAuD,GAAAC,OAAA,CAAAD,uDAAA;EAOhE,SAAAA,wDAAYE,SAAiB,EAAEC,OAAe,EAAEC,OAA0C,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAN,uDAAA;IACxF,IAAI,CAACE,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,OAAO,GAAGA,OAAO;EAC1B;EAAC,WAAAG,aAAA,CAAAD,OAAA,EAAAN,uDAAA;IAAAQ,GAAA;IAAAC,KAAA,EAED,SAAAC,OAAOA,CAAA,EAAG;MAAA,IAAAC,KAAA;MACN,IAAAC,qBAAA,GAAqC,IAAI,CAACR,OAAO,CAACM,OAAO,CAAC,CAAC;QAA3CG,gBAAgB,GAAAD,qBAAA,CAAxBE,MAAM;MAEd,IAAMA,MAAM,GAAGD,gBAAgB,CAACE,MAAM,CAAC,UAAAC,KAAK,EAAI;QAC5C,IAAIA,KAAK,CAACC,IAAI,CAAEC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;UAC3C,OAAO,IAAI,CAAC,CAAC;QACjB;QAEA,IAAMC,aAAa,GAAGH,KAAK,CAACC,IAAI,CAAEG,IAAI,CAAC,UAAAC,GAAG;UAAA,OAAIA,GAAG,CAACC,UAAU,CAAC,WAAW,CAAC;QAAA,EAAC;QAE1E,OAAOH,aAAa,GACdH,KAAK,CAACC,IAAI,CAAEC,QAAQ,aAAAK,MAAA,CAAaZ,KAAI,CAACR,OAAO,CAAE,CAAC,GAChDa,KAAK,CAACC,IAAI,CAAEC,QAAQ,eAAAK,MAAA,CAAeZ,KAAI,CAACT,SAAS,CAAE,CAAC;MAC9D,CAAC,CAAC;MAEF,OAAO;QACHY,MAAM,EAANA;MACJ,CAAC;IACL;EAAC;AAAA","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import { CmsModelField } from "@webiny/app-headless-cms-common/types";
2
+ export interface IGetFolderExtensionsFieldsRepository {
3
+ execute: () => CmsModelField | undefined;
4
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ //# sourceMappingURL=IGetFolderExtensionsFieldsRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["IGetFolderExtensionsFieldsRepository.ts"],"sourcesContent":["import { CmsModelField } from \"@webiny/app-headless-cms-common/types\";\n\nexport interface IGetFolderExtensionsFieldsRepository {\n execute: () => CmsModelField | undefined;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import { CmsModelField } from "@webiny/app-headless-cms-common/types";
2
+ export interface IGetFolderExtensionsFieldsUseCase {
3
+ execute: () => {
4
+ fields: CmsModelField[];
5
+ };
6
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ //# sourceMappingURL=IGetFolderExtensionsFieldsUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["IGetFolderExtensionsFieldsUseCase.ts"],"sourcesContent":["import { CmsModelField } from \"@webiny/app-headless-cms-common/types\";\n\nexport interface IGetFolderExtensionsFieldsUseCase {\n execute: () => {\n fields: CmsModelField[];\n };\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export * from "./useGetFolderExtensionsFields";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _useGetFolderExtensionsFields = require("./useGetFolderExtensionsFields");
7
+ Object.keys(_useGetFolderExtensionsFields).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _useGetFolderExtensionsFields[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _useGetFolderExtensionsFields[key];
14
+ }
15
+ });
16
+ });
17
+
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_useGetFolderExtensionsFields","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["index.ts"],"sourcesContent":["export * from \"./useGetFolderExtensionsFields\";\n"],"mappings":";;;;;AAAA,IAAAA,6BAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,6BAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,6BAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,6BAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ /// <reference types="react" />
2
+ export declare const useGetFolderExtensionsFields: () => {
3
+ getFolderExtensionsFields: () => {
4
+ fields: {
5
+ id: string;
6
+ type: string;
7
+ fieldId: string;
8
+ storageId?: string | undefined;
9
+ label: string;
10
+ helpText?: string | undefined;
11
+ placeholderText?: string | undefined;
12
+ validation?: (import("@webiny/app-headless-cms-common/types").CmsModelFieldValidator | import("@webiny/validation/types").Validator)[] | undefined;
13
+ listValidation?: import("@webiny/app-headless-cms-common/types").CmsModelFieldValidator[] | undefined;
14
+ multipleValues?: boolean | undefined;
15
+ predefinedValues?: import("@webiny/app-headless-cms-common/types").CmsEditorFieldPredefinedValues | undefined;
16
+ settings?: import("@webiny/app-headless-cms-common/types").CmsModelFieldSettings<unknown> | undefined;
17
+ renderer: {
18
+ name: string;
19
+ settings?: Record<string, any> | undefined;
20
+ } | ((props: import("@webiny/app-headless-cms-common/types").CmsModelFieldRendererProps) => import("react").ReactNode);
21
+ tags?: string[] | undefined;
22
+ }[];
23
+ };
24
+ };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useGetFolderExtensionsFields = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _react = require("react");
10
+ var _hooks = require("../../../hooks");
11
+ var _ = require("../..");
12
+ var _GetFolderExtensionsFields = require("./GetFolderExtensionsFields");
13
+ var useGetFolderExtensionsFields = exports.useGetFolderExtensionsFields = function useGetFolderExtensionsFields() {
14
+ var _useFoldersType$split = (0, _hooks.useFoldersType)().split(":"),
15
+ _useFoldersType$split2 = (0, _slicedToArray2.default)(_useFoldersType$split, 2),
16
+ type = _useFoldersType$split2[0],
17
+ modelId = _useFoldersType$split2[1];
18
+ var model = (0, _.useFolderModel)();
19
+ var getFolderExtensionsFields = (0, _react.useCallback)(function () {
20
+ var instance = _GetFolderExtensionsFields.GetFolderExtensionsFields.getInstance(model, type, modelId);
21
+ return instance.execute();
22
+ }, [type, modelId, model.id]);
23
+ return {
24
+ getFolderExtensionsFields: getFolderExtensionsFields
25
+ };
26
+ };
27
+
28
+ //# sourceMappingURL=useGetFolderExtensionsFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_hooks","_","_GetFolderExtensionsFields","useGetFolderExtensionsFields","exports","_useFoldersType$split","useFoldersType","split","_useFoldersType$split2","_slicedToArray2","default","type","modelId","model","useFolderModel","getFolderExtensionsFields","useCallback","instance","GetFolderExtensionsFields","getInstance","execute","id"],"sources":["useGetFolderExtensionsFields.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useFoldersType } from \"~/hooks\";\nimport { useFolderModel } from \"~/features\";\nimport { GetFolderExtensionsFields } from \"./GetFolderExtensionsFields\";\n\nexport const useGetFolderExtensionsFields = () => {\n const [type, modelId] = useFoldersType().split(\":\");\n const model = useFolderModel();\n\n const getFolderExtensionsFields = useCallback(() => {\n const instance = GetFolderExtensionsFields.getInstance(model, type, modelId);\n return instance.execute();\n }, [type, modelId, model.id]);\n\n return {\n getFolderExtensionsFields\n };\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,CAAA,GAAAF,OAAA;AACA,IAAAG,0BAAA,GAAAH,OAAA;AAEO,IAAMI,4BAA4B,GAAAC,OAAA,CAAAD,4BAAA,GAAG,SAA/BA,4BAA4BA,CAAA,EAAS;EAC9C,IAAAE,qBAAA,GAAwB,IAAAC,qBAAc,EAAC,CAAC,CAACC,KAAK,CAAC,GAAG,CAAC;IAAAC,sBAAA,OAAAC,eAAA,CAAAC,OAAA,EAAAL,qBAAA;IAA5CM,IAAI,GAAAH,sBAAA;IAAEI,OAAO,GAAAJ,sBAAA;EACpB,IAAMK,KAAK,GAAG,IAAAC,gBAAc,EAAC,CAAC;EAE9B,IAAMC,yBAAyB,GAAG,IAAAC,kBAAW,EAAC,YAAM;IAChD,IAAMC,QAAQ,GAAGC,oDAAyB,CAACC,WAAW,CAACN,KAAK,EAAEF,IAAI,EAAEC,OAAO,CAAC;IAC5E,OAAOK,QAAQ,CAACG,OAAO,CAAC,CAAC;EAC7B,CAAC,EAAE,CAACT,IAAI,EAAEC,OAAO,EAAEC,KAAK,CAACQ,EAAE,CAAC,CAAC;EAE7B,OAAO;IACHN,yBAAyB,EAAzBA;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ export declare const FolderModelContext: React.Context<import("@webiny/app-headless-cms-common/types").CmsModel | undefined>;
3
+ export declare const FolderModelProviderModule: () => React.JSX.Element;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.FolderModelProviderModule = exports.FolderModelContext = void 0;
9
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _mobx = require("mobx");
13
+ var _reactHooks = require("@apollo/react-hooks");
14
+ var _Progress = require("@webiny/ui/Progress");
15
+ var _GetFolderModelGqlGateway = require("./GetFolderModelGqlGateway");
16
+ var _GetFolderModel = require("./GetFolderModel");
17
+ var _app = require("@webiny/app");
18
+ var FolderModelContext = exports.FolderModelContext = /*#__PURE__*/_react.default.createContext(undefined);
19
+ var acoFolderModelProvider = function acoFolderModelProvider(Original) {
20
+ return function AcoFolderProvider(_ref) {
21
+ var children = _ref.children;
22
+ var client = (0, _reactHooks.useApolloClient)();
23
+ var gateway = new _GetFolderModelGqlGateway.GetFolderModelGqlGateway(client);
24
+ var _useState = (0, _react.useState)(undefined),
25
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
26
+ model = _useState2[0],
27
+ setModel = _useState2[1];
28
+ var _useMemo = (0, _react.useMemo)(function () {
29
+ return _GetFolderModel.GetFolderModel.getInstance(gateway);
30
+ }, [gateway]),
31
+ useCase = _useMemo.useCase,
32
+ repository = _useMemo.repository;
33
+ var getFolderModel = (0, _react.useCallback)(function () {
34
+ return useCase.execute();
35
+ }, [useCase]);
36
+ (0, _react.useEffect)(function () {
37
+ if (model) {
38
+ return;
39
+ }
40
+ getFolderModel();
41
+ }, []);
42
+ (0, _react.useEffect)(function () {
43
+ return (0, _mobx.autorun)(function () {
44
+ var model = repository.getModel();
45
+ setModel(function (state) {
46
+ if (model) {
47
+ return (0, _objectSpread2.default)({}, (0, _mobx.toJS)(model));
48
+ }
49
+ return state;
50
+ });
51
+ });
52
+ }, []);
53
+ if (!model) {
54
+ return /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, {
55
+ label: "Preparing Folders..."
56
+ });
57
+ }
58
+ return /*#__PURE__*/_react.default.createElement(FolderModelContext.Provider, {
59
+ value: model
60
+ }, /*#__PURE__*/_react.default.createElement(Original, null, children));
61
+ };
62
+ };
63
+ var FolderModelProviderModule = exports.FolderModelProviderModule = function FolderModelProviderModule() {
64
+ return /*#__PURE__*/_react.default.createElement(_app.Plugin, {
65
+ providers: [acoFolderModelProvider]
66
+ });
67
+ };
68
+
69
+ //# sourceMappingURL=FolderModelContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_mobx","_reactHooks","_Progress","_GetFolderModelGqlGateway","_GetFolderModel","_app","FolderModelContext","exports","React","createContext","undefined","acoFolderModelProvider","Original","AcoFolderProvider","_ref","children","client","useApolloClient","gateway","GetFolderModelGqlGateway","_useState","useState","_useState2","_slicedToArray2","default","model","setModel","_useMemo","useMemo","GetFolderModel","getInstance","useCase","repository","getFolderModel","useCallback","execute","useEffect","autorun","getModel","state","_objectSpread2","toJS","createElement","CircularProgress","label","Provider","value","FolderModelProviderModule","Plugin","providers"],"sources":["FolderModelContext.tsx"],"sourcesContent":["import React, { useState, useCallback, useMemo, useEffect } from \"react\";\nimport { autorun, toJS } from \"mobx\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { FolderModelDto } from \"~/features\";\nimport { GetFolderModelGqlGateway } from \"~/features/folders/getFolderModel/GetFolderModelGqlGateway\";\nimport { GetFolderModel } from \"~/features/folders/getFolderModel/GetFolderModel\";\nimport { Decorator, GenericComponent, Plugin } from \"@webiny/app\";\n\nexport const FolderModelContext = React.createContext<FolderModelDto | undefined>(undefined);\n\nconst acoFolderModelProvider: Decorator<\n GenericComponent<{ children: React.ReactNode }>\n> = Original => {\n return function AcoFolderProvider({ children }) {\n const client = useApolloClient();\n const gateway = new GetFolderModelGqlGateway(client);\n\n const [model, setModel] = useState<FolderModelDto | undefined>(undefined);\n\n const { useCase, repository } = useMemo(() => {\n return GetFolderModel.getInstance(gateway);\n }, [gateway]);\n\n const getFolderModel = useCallback(() => {\n return useCase.execute();\n }, [useCase]);\n\n useEffect(() => {\n if (model) {\n return;\n }\n\n getFolderModel();\n }, []);\n\n useEffect(() => {\n return autorun(() => {\n const model = repository.getModel();\n setModel(state => {\n if (model) {\n return { ...toJS(model) };\n }\n return state;\n });\n });\n }, []);\n\n if (!model) {\n return <CircularProgress label={\"Preparing Folders...\"} />;\n }\n\n return (\n <FolderModelContext.Provider value={model}>\n <Original>{children}</Original>\n </FolderModelContext.Provider>\n );\n };\n};\n\nexport const FolderModelProviderModule = () => {\n return <Plugin providers={[acoFolderModelProvider]} />;\n};\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AAEA,IAAAI,yBAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AACA,IAAAM,IAAA,GAAAN,OAAA;AAEO,IAAMO,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,gBAAGE,cAAK,CAACC,aAAa,CAA6BC,SAAS,CAAC;AAE5F,IAAMC,sBAEL,GAAG,SAFEA,sBAELA,CAAGC,QAAQ,EAAI;EACZ,OAAO,SAASC,iBAAiBA,CAAAC,IAAA,EAAe;IAAA,IAAZC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACxC,IAAMC,MAAM,GAAG,IAAAC,2BAAe,EAAC,CAAC;IAChC,IAAMC,OAAO,GAAG,IAAIC,kDAAwB,CAACH,MAAM,CAAC;IAEpD,IAAAI,SAAA,GAA0B,IAAAC,eAAQ,EAA6BX,SAAS,CAAC;MAAAY,UAAA,OAAAC,eAAA,CAAAC,OAAA,EAAAJ,SAAA;MAAlEK,KAAK,GAAAH,UAAA;MAAEI,QAAQ,GAAAJ,UAAA;IAEtB,IAAAK,QAAA,GAAgC,IAAAC,cAAO,EAAC,YAAM;QAC1C,OAAOC,8BAAc,CAACC,WAAW,CAACZ,OAAO,CAAC;MAC9C,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;MAFLa,OAAO,GAAAJ,QAAA,CAAPI,OAAO;MAAEC,UAAU,GAAAL,QAAA,CAAVK,UAAU;IAI3B,IAAMC,cAAc,GAAG,IAAAC,kBAAW,EAAC,YAAM;MACrC,OAAOH,OAAO,CAACI,OAAO,CAAC,CAAC;IAC5B,CAAC,EAAE,CAACJ,OAAO,CAAC,CAAC;IAEb,IAAAK,gBAAS,EAAC,YAAM;MACZ,IAAIX,KAAK,EAAE;QACP;MACJ;MAEAQ,cAAc,CAAC,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC;IAEN,IAAAG,gBAAS,EAAC,YAAM;MACZ,OAAO,IAAAC,aAAO,EAAC,YAAM;QACjB,IAAMZ,KAAK,GAAGO,UAAU,CAACM,QAAQ,CAAC,CAAC;QACnCZ,QAAQ,CAAC,UAAAa,KAAK,EAAI;UACd,IAAId,KAAK,EAAE;YACP,WAAAe,cAAA,CAAAhB,OAAA,MAAY,IAAAiB,UAAI,EAAChB,KAAK,CAAC;UAC3B;UACA,OAAOc,KAAK;QAChB,CAAC,CAAC;MACN,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC;IAEN,IAAI,CAACd,KAAK,EAAE;MACR,oBAAO5B,MAAA,CAAA2B,OAAA,CAAAkB,aAAA,CAACxC,SAAA,CAAAyC,gBAAgB;QAACC,KAAK,EAAE;MAAuB,CAAE,CAAC;IAC9D;IAEA,oBACI/C,MAAA,CAAA2B,OAAA,CAAAkB,aAAA,CAACpC,kBAAkB,CAACuC,QAAQ;MAACC,KAAK,EAAErB;IAAM,gBACtC5B,MAAA,CAAA2B,OAAA,CAAAkB,aAAA,CAAC9B,QAAQ,QAAEG,QAAmB,CACL,CAAC;EAEtC,CAAC;AACL,CAAC;AAEM,IAAMgC,yBAAyB,GAAAxC,OAAA,CAAAwC,yBAAA,GAAG,SAA5BA,yBAAyBA,CAAA,EAAS;EAC3C,oBAAOlD,MAAA,CAAA2B,OAAA,CAAAkB,aAAA,CAACrC,IAAA,CAAA2C,MAAM;IAACC,SAAS,EAAE,CAACtC,sBAAsB;EAAE,CAAE,CAAC;AAC1D,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import { CmsModel } from "@webiny/app-headless-cms-common/types";
2
+ export type FolderModelDto = CmsModel;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ //# sourceMappingURL=FolderModelDto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["FolderModelDto.ts"],"sourcesContent":["import { CmsModel } from \"@webiny/app-headless-cms-common/types\";\n\nexport type FolderModelDto = CmsModel;\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { IGetFolderModelGateway } from "./IGetFolderModelGateway";
2
+ import { IGetFolderModelUseCase } from "./IGetFolderModelUseCase";
3
+ import { IGetFolderModelRepository } from "./IGetFolderModelRepository";
4
+ interface IGetFolderModelInstance {
5
+ useCase: IGetFolderModelUseCase;
6
+ repository: IGetFolderModelRepository;
7
+ }
8
+ export declare class GetFolderModel {
9
+ static getInstance(gateway: IGetFolderModelGateway): IGetFolderModelInstance;
10
+ }
11
+ export {};
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.GetFolderModel = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _GetFolderModelRepository = require("./GetFolderModelRepository");
11
+ var _GetFolderModelUseCase = require("./GetFolderModelUseCase");
12
+ var GetFolderModel = exports.GetFolderModel = /*#__PURE__*/function () {
13
+ function GetFolderModel() {
14
+ (0, _classCallCheck2.default)(this, GetFolderModel);
15
+ }
16
+ return (0, _createClass2.default)(GetFolderModel, null, [{
17
+ key: "getInstance",
18
+ value: function getInstance(gateway) {
19
+ var repository = new _GetFolderModelRepository.GetFolderModelRepository(gateway);
20
+ var useCase = new _GetFolderModelUseCase.GetFolderModelUseCase(repository);
21
+ return {
22
+ useCase: useCase,
23
+ repository: repository
24
+ };
25
+ }
26
+ }]);
27
+ }();
28
+
29
+ //# sourceMappingURL=GetFolderModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_GetFolderModelRepository","require","_GetFolderModelUseCase","GetFolderModel","exports","_classCallCheck2","default","_createClass2","key","value","getInstance","gateway","repository","GetFolderModelRepository","useCase","GetFolderModelUseCase"],"sources":["GetFolderModel.ts"],"sourcesContent":["import { IGetFolderModelGateway } from \"./IGetFolderModelGateway\";\nimport { GetFolderModelRepository } from \"./GetFolderModelRepository\";\nimport { GetFolderModelUseCase } from \"./GetFolderModelUseCase\";\nimport { IGetFolderModelUseCase } from \"./IGetFolderModelUseCase\";\nimport { IGetFolderModelRepository } from \"./IGetFolderModelRepository\";\n\ninterface IGetFolderModelInstance {\n useCase: IGetFolderModelUseCase;\n repository: IGetFolderModelRepository;\n}\n\nexport class GetFolderModel {\n public static getInstance(gateway: IGetFolderModelGateway): IGetFolderModelInstance {\n const repository = new GetFolderModelRepository(gateway);\n const useCase = new GetFolderModelUseCase(repository);\n\n return {\n useCase,\n repository\n };\n }\n}\n"],"mappings":";;;;;;;;;AACA,IAAAA,yBAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AAAgE,IASnDE,cAAc,GAAAC,OAAA,CAAAD,cAAA;EAAA,SAAAA,eAAA;IAAA,IAAAE,gBAAA,CAAAC,OAAA,QAAAH,cAAA;EAAA;EAAA,WAAAI,aAAA,CAAAD,OAAA,EAAAH,cAAA;IAAAK,GAAA;IAAAC,KAAA,EACvB,SAAcC,WAAWA,CAACC,OAA+B,EAA2B;MAChF,IAAMC,UAAU,GAAG,IAAIC,kDAAwB,CAACF,OAAO,CAAC;MACxD,IAAMG,OAAO,GAAG,IAAIC,4CAAqB,CAACH,UAAU,CAAC;MAErD,OAAO;QACHE,OAAO,EAAPA,OAAO;QACPF,UAAU,EAAVA;MACJ,CAAC;IACL;EAAC;AAAA","ignoreList":[]}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ var _GetFolderModel = require("./GetFolderModel");
4
+ describe("GetFolderModel", function () {
5
+ var folderModel = {
6
+ id: "folder-model",
7
+ group: "custom-group",
8
+ version: "0.0.0",
9
+ fields: [{
10
+ id: "field1",
11
+ label: "Field 1",
12
+ type: "string",
13
+ fieldId: "field1"
14
+ }, {
15
+ id: "field2",
16
+ label: "Field 2",
17
+ type: "string",
18
+ fieldId: "field2"
19
+ }],
20
+ lockedFields: [],
21
+ icon: "icon",
22
+ name: "Folder",
23
+ modelId: "folder-model",
24
+ singularApiName: "folderModel",
25
+ pluralApiName: "foldersModel",
26
+ titleFieldId: null,
27
+ descriptionFieldId: null,
28
+ imageFieldId: null
29
+ };
30
+ var gateway = {
31
+ execute: jest.fn().mockResolvedValue(folderModel)
32
+ };
33
+ beforeEach(function () {
34
+ jest.clearAllMocks();
35
+ });
36
+ it("should be able to get the folders model", async function () {
37
+ var _GetFolderModel$getIn = _GetFolderModel.GetFolderModel.getInstance(gateway),
38
+ useCase = _GetFolderModel$getIn.useCase,
39
+ repository = _GetFolderModel$getIn.repository;
40
+ expect(repository.getModel()).toBeUndefined();
41
+ await useCase.execute();
42
+ expect(gateway.execute).toHaveBeenCalledTimes(1);
43
+ expect(repository.getModel()).toEqual(folderModel);
44
+ });
45
+ it("should handle gateway errors gracefully", async function () {
46
+ var errorGateway = {
47
+ execute: jest.fn().mockRejectedValue(new Error("Gateway error"))
48
+ };
49
+ var _GetFolderModel$getIn2 = _GetFolderModel.GetFolderModel.getInstance(errorGateway),
50
+ useCase = _GetFolderModel$getIn2.useCase,
51
+ repository = _GetFolderModel$getIn2.repository;
52
+ expect(repository.getModel()).toBeUndefined();
53
+ await expect(useCase.execute()).rejects.toThrow("Gateway error");
54
+ expect(errorGateway.execute).toHaveBeenCalledTimes(1);
55
+ expect(repository.getModel()).toBeUndefined();
56
+ });
57
+ it("should cache folders model after listing", async function () {
58
+ var _GetFolderModel$getIn3 = _GetFolderModel.GetFolderModel.getInstance(gateway),
59
+ useCase = _GetFolderModel$getIn3.useCase,
60
+ repository = _GetFolderModel$getIn3.repository;
61
+ expect(repository.getModel()).toBeUndefined();
62
+ await useCase.execute();
63
+ expect(gateway.execute).toHaveBeenCalledTimes(1);
64
+ expect(repository.getModel()).toEqual(folderModel);
65
+
66
+ // Execute again, it should NOT execute the gateway again
67
+ await useCase.execute();
68
+ expect(gateway.execute).toHaveBeenCalledTimes(1);
69
+ expect(repository.getModel()).toEqual(folderModel);
70
+ });
71
+ });
72
+
73
+ //# sourceMappingURL=GetFolderModel.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_GetFolderModel","require","describe","folderModel","id","group","version","fields","label","type","fieldId","lockedFields","icon","name","modelId","singularApiName","pluralApiName","titleFieldId","descriptionFieldId","imageFieldId","gateway","execute","jest","fn","mockResolvedValue","beforeEach","clearAllMocks","it","_GetFolderModel$getIn","GetFolderModel","getInstance","useCase","repository","expect","getModel","toBeUndefined","toHaveBeenCalledTimes","toEqual","errorGateway","mockRejectedValue","Error","_GetFolderModel$getIn2","rejects","toThrow","_GetFolderModel$getIn3"],"sources":["GetFolderModel.test.ts"],"sourcesContent":["import { GetFolderModel } from \"./GetFolderModel\";\n\ndescribe(\"GetFolderModel\", () => {\n const folderModel = {\n id: \"folder-model\",\n group: \"custom-group\",\n version: \"0.0.0\",\n fields: [\n {\n id: \"field1\",\n label: \"Field 1\",\n type: \"string\",\n fieldId: \"field1\"\n },\n {\n id: \"field2\",\n label: \"Field 2\",\n type: \"string\",\n fieldId: \"field2\"\n }\n ],\n lockedFields: [],\n icon: \"icon\",\n name: \"Folder\",\n modelId: \"folder-model\",\n singularApiName: \"folderModel\",\n pluralApiName: \"foldersModel\",\n titleFieldId: null,\n descriptionFieldId: null,\n imageFieldId: null\n };\n\n const gateway = {\n execute: jest.fn().mockResolvedValue(folderModel)\n };\n\n beforeEach(() => {\n jest.clearAllMocks();\n });\n\n it(\"should be able to get the folders model\", async () => {\n const { useCase, repository } = GetFolderModel.getInstance(gateway);\n\n expect(repository.getModel()).toBeUndefined();\n\n await useCase.execute();\n\n expect(gateway.execute).toHaveBeenCalledTimes(1);\n expect(repository.getModel()).toEqual(folderModel);\n });\n\n it(\"should handle gateway errors gracefully\", async () => {\n const errorGateway = {\n execute: jest.fn().mockRejectedValue(new Error(\"Gateway error\"))\n };\n const { useCase, repository } = GetFolderModel.getInstance(errorGateway);\n\n expect(repository.getModel()).toBeUndefined();\n\n await expect(useCase.execute()).rejects.toThrow(\"Gateway error\");\n\n expect(errorGateway.execute).toHaveBeenCalledTimes(1);\n expect(repository.getModel()).toBeUndefined();\n });\n\n it(\"should cache folders model after listing\", async () => {\n const { useCase, repository } = GetFolderModel.getInstance(gateway);\n\n expect(repository.getModel()).toBeUndefined();\n\n await useCase.execute();\n\n expect(gateway.execute).toHaveBeenCalledTimes(1);\n expect(repository.getModel()).toEqual(folderModel);\n\n // Execute again, it should NOT execute the gateway again\n await useCase.execute();\n expect(gateway.execute).toHaveBeenCalledTimes(1);\n expect(repository.getModel()).toEqual(folderModel);\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ import ApolloClient from "apollo-client";
2
+ import { CmsModel } from "@webiny/app-headless-cms-common/types";
3
+ import { IGetFolderModelGateway } from "./IGetFolderModelGateway";
4
+ import { AcoError } from "../../../types";
5
+ export interface GetFolderModelResponse {
6
+ aco: {
7
+ getFolderModel: {
8
+ data: CmsModel;
9
+ error: AcoError | null;
10
+ };
11
+ };
12
+ }
13
+ export declare const GET_FOLDER_MODEL: import("graphql").DocumentNode;
14
+ export declare class GetFolderModelGqlGateway implements IGetFolderModelGateway {
15
+ private client;
16
+ constructor(client: ApolloClient<any>);
17
+ execute(): Promise<CmsModel>;
18
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.GetFolderModelGqlGateway = exports.GET_FOLDER_MODEL = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+ var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
12
+ var _templateObject;
13
+ var GET_FOLDER_MODEL = exports.GET_FOLDER_MODEL = (0, _graphqlTag.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n query GetFolderModel {\n aco {\n getFolderModel {\n data\n error {\n code\n message\n data\n stack\n }\n }\n }\n }\n"])));
14
+ var GetFolderModelGqlGateway = exports.GetFolderModelGqlGateway = /*#__PURE__*/function () {
15
+ function GetFolderModelGqlGateway(client) {
16
+ (0, _classCallCheck2.default)(this, GetFolderModelGqlGateway);
17
+ this.client = client;
18
+ }
19
+ return (0, _createClass2.default)(GetFolderModelGqlGateway, [{
20
+ key: "execute",
21
+ value: async function execute() {
22
+ var _await$this$client$qu = await this.client.query({
23
+ query: GET_FOLDER_MODEL,
24
+ fetchPolicy: "network-only"
25
+ }),
26
+ response = _await$this$client$qu.data;
27
+ if (!response) {
28
+ throw new Error("Network error while fetch folder.");
29
+ }
30
+ var _response$aco$getFold = response.aco.getFolderModel,
31
+ data = _response$aco$getFold.data,
32
+ error = _response$aco$getFold.error;
33
+ if (!data) {
34
+ throw new Error(error?.message || "Could not fetch folder model");
35
+ }
36
+ return data;
37
+ }
38
+ }]);
39
+ }();
40
+
41
+ //# sourceMappingURL=GetFolderModelGqlGateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_graphqlTag","_interopRequireDefault","require","_templateObject","GET_FOLDER_MODEL","exports","gql","_taggedTemplateLiteral2","default","GetFolderModelGqlGateway","client","_classCallCheck2","_createClass2","key","value","execute","_await$this$client$qu","query","fetchPolicy","response","data","Error","_response$aco$getFold","aco","getFolderModel","error","message"],"sources":["GetFolderModelGqlGateway.ts"],"sourcesContent":["import ApolloClient from \"apollo-client\";\nimport gql from \"graphql-tag\";\nimport { CmsModel } from \"@webiny/app-headless-cms-common/types\";\nimport { IGetFolderModelGateway } from \"./IGetFolderModelGateway\";\nimport { AcoError } from \"~/types\";\n\nexport interface GetFolderModelResponse {\n aco: {\n getFolderModel: {\n data: CmsModel;\n error: AcoError | null;\n };\n };\n}\n\nexport const GET_FOLDER_MODEL = gql`\n query GetFolderModel {\n aco {\n getFolderModel {\n data\n error {\n code\n message\n data\n stack\n }\n }\n }\n }\n`;\n\nexport class GetFolderModelGqlGateway implements IGetFolderModelGateway {\n private client: ApolloClient<any>;\n\n constructor(client: ApolloClient<any>) {\n this.client = client;\n }\n\n async execute() {\n const { data: response } = await this.client.query<GetFolderModelResponse>({\n query: GET_FOLDER_MODEL,\n fetchPolicy: \"network-only\"\n });\n\n if (!response) {\n throw new Error(\"Network error while fetch folder.\");\n }\n\n const { data, error } = response.aco.getFolderModel;\n\n if (!data) {\n throw new Error(error?.message || `Could not fetch folder model`);\n }\n\n return data;\n }\n}\n"],"mappings":";;;;;;;;;;AACA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA8B,IAAAC,eAAA;AAcvB,IAAMC,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,OAAGE,mBAAG,EAAAH,eAAA,KAAAA,eAAA,OAAAI,uBAAA,CAAAC,OAAA,mSAclC;AAAC,IAEWC,wBAAwB,GAAAJ,OAAA,CAAAI,wBAAA;EAGjC,SAAAA,yBAAYC,MAAyB,EAAE;IAAA,IAAAC,gBAAA,CAAAH,OAAA,QAAAC,wBAAA;IACnC,IAAI,CAACC,MAAM,GAAGA,MAAM;EACxB;EAAC,WAAAE,aAAA,CAAAJ,OAAA,EAAAC,wBAAA;IAAAI,GAAA;IAAAC,KAAA,EAED,eAAMC,OAAOA,CAAA,EAAG;MACZ,IAAAC,qBAAA,GAA2B,MAAM,IAAI,CAACN,MAAM,CAACO,KAAK,CAAyB;UACvEA,KAAK,EAAEb,gBAAgB;UACvBc,WAAW,EAAE;QACjB,CAAC,CAAC;QAHYC,QAAQ,GAAAH,qBAAA,CAAdI,IAAI;MAKZ,IAAI,CAACD,QAAQ,EAAE;QACX,MAAM,IAAIE,KAAK,CAAC,mCAAmC,CAAC;MACxD;MAEA,IAAAC,qBAAA,GAAwBH,QAAQ,CAACI,GAAG,CAACC,cAAc;QAA3CJ,IAAI,GAAAE,qBAAA,CAAJF,IAAI;QAAEK,KAAK,GAAAH,qBAAA,CAALG,KAAK;MAEnB,IAAI,CAACL,IAAI,EAAE;QACP,MAAM,IAAIC,KAAK,CAACI,KAAK,EAAEC,OAAO,kCAAkC,CAAC;MACrE;MAEA,OAAON,IAAI;IACf;EAAC;AAAA","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import { IGetFolderModelRepository } from "./IGetFolderModelRepository";
2
+ import { IGetFolderModelGateway } from "./IGetFolderModelGateway";
3
+ export declare class GetFolderModelRepository implements IGetFolderModelRepository {
4
+ private model;
5
+ private gateway;
6
+ constructor(gateway: IGetFolderModelGateway);
7
+ load(): Promise<void>;
8
+ getModel(): import("@webiny/app-headless-cms-common/types").CmsModel | undefined;
9
+ hasModel(): boolean;
10
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.GetFolderModelRepository = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _mobx = require("mobx");
11
+ var GetFolderModelRepository = exports.GetFolderModelRepository = /*#__PURE__*/function () {
12
+ function GetFolderModelRepository(gateway) {
13
+ (0, _classCallCheck2.default)(this, GetFolderModelRepository);
14
+ this.gateway = gateway;
15
+ this.model = undefined;
16
+ (0, _mobx.makeAutoObservable)(this);
17
+ }
18
+ return (0, _createClass2.default)(GetFolderModelRepository, [{
19
+ key: "load",
20
+ value: async function load() {
21
+ var _this = this;
22
+ if (!this.hasModel()) {
23
+ var model = await this.gateway.execute();
24
+ (0, _mobx.runInAction)(function () {
25
+ _this.model = model;
26
+ });
27
+ }
28
+ }
29
+ }, {
30
+ key: "getModel",
31
+ value: function getModel() {
32
+ return this.model;
33
+ }
34
+ }, {
35
+ key: "hasModel",
36
+ value: function hasModel() {
37
+ return Boolean(this.model);
38
+ }
39
+ }]);
40
+ }();
41
+
42
+ //# sourceMappingURL=GetFolderModelRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_mobx","require","GetFolderModelRepository","exports","gateway","_classCallCheck2","default","model","undefined","makeAutoObservable","_createClass2","key","value","load","_this","hasModel","execute","runInAction","getModel","Boolean"],"sources":["GetFolderModelRepository.ts"],"sourcesContent":["import { makeAutoObservable, runInAction } from \"mobx\";\nimport { IGetFolderModelRepository } from \"./IGetFolderModelRepository\";\nimport { IGetFolderModelGateway } from \"./IGetFolderModelGateway\";\nimport { FolderModelDto } from \"./FolderModelDto\";\n\nexport class GetFolderModelRepository implements IGetFolderModelRepository {\n private model: FolderModelDto | undefined;\n private gateway: IGetFolderModelGateway;\n\n constructor(gateway: IGetFolderModelGateway) {\n this.gateway = gateway;\n this.model = undefined;\n makeAutoObservable(this);\n }\n\n async load() {\n if (!this.hasModel()) {\n const model = await this.gateway.execute();\n runInAction(() => {\n this.model = model;\n });\n }\n }\n\n getModel() {\n return this.model;\n }\n\n hasModel() {\n return Boolean(this.model);\n }\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAAuD,IAK1CC,wBAAwB,GAAAC,OAAA,CAAAD,wBAAA;EAIjC,SAAAA,yBAAYE,OAA+B,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAJ,wBAAA;IACzC,IAAI,CAACE,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACG,KAAK,GAAGC,SAAS;IACtB,IAAAC,wBAAkB,EAAC,IAAI,CAAC;EAC5B;EAAC,WAAAC,aAAA,CAAAJ,OAAA,EAAAJ,wBAAA;IAAAS,GAAA;IAAAC,KAAA,EAED,eAAMC,IAAIA,CAAA,EAAG;MAAA,IAAAC,KAAA;MACT,IAAI,CAAC,IAAI,CAACC,QAAQ,CAAC,CAAC,EAAE;QAClB,IAAMR,KAAK,GAAG,MAAM,IAAI,CAACH,OAAO,CAACY,OAAO,CAAC,CAAC;QAC1C,IAAAC,iBAAW,EAAC,YAAM;UACdH,KAAI,CAACP,KAAK,GAAGA,KAAK;QACtB,CAAC,CAAC;MACN;IACJ;EAAC;IAAAI,GAAA;IAAAC,KAAA,EAED,SAAAM,QAAQA,CAAA,EAAG;MACP,OAAO,IAAI,CAACX,KAAK;IACrB;EAAC;IAAAI,GAAA;IAAAC,KAAA,EAED,SAAAG,QAAQA,CAAA,EAAG;MACP,OAAOI,OAAO,CAAC,IAAI,CAACZ,KAAK,CAAC;IAC9B;EAAC;AAAA","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ import { IGetFolderModelRepository } from "./IGetFolderModelRepository";
2
+ import { IGetFolderModelUseCase } from "./IGetFolderModelUseCase";
3
+ export declare class GetFolderModelUseCase implements IGetFolderModelUseCase {
4
+ private repository;
5
+ constructor(repository: IGetFolderModelRepository);
6
+ execute(): Promise<void>;
7
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.GetFolderModelUseCase = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var GetFolderModelUseCase = exports.GetFolderModelUseCase = /*#__PURE__*/function () {
11
+ function GetFolderModelUseCase(repository) {
12
+ (0, _classCallCheck2.default)(this, GetFolderModelUseCase);
13
+ this.repository = repository;
14
+ }
15
+ return (0, _createClass2.default)(GetFolderModelUseCase, [{
16
+ key: "execute",
17
+ value: async function execute() {
18
+ await this.repository.load();
19
+ }
20
+ }]);
21
+ }();
22
+
23
+ //# sourceMappingURL=GetFolderModelUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GetFolderModelUseCase","exports","repository","_classCallCheck2","default","_createClass2","key","value","execute","load"],"sources":["GetFolderModelUseCase.ts"],"sourcesContent":["import { IGetFolderModelRepository } from \"./IGetFolderModelRepository\";\nimport { IGetFolderModelUseCase } from \"./IGetFolderModelUseCase\";\n\nexport class GetFolderModelUseCase implements IGetFolderModelUseCase {\n private repository: IGetFolderModelRepository;\n\n constructor(repository: IGetFolderModelRepository) {\n this.repository = repository;\n }\n\n async execute() {\n await this.repository.load();\n }\n}\n"],"mappings":";;;;;;;;;IAGaA,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA;EAG9B,SAAAA,sBAAYE,UAAqC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAJ,qBAAA;IAC/C,IAAI,CAACE,UAAU,GAAGA,UAAU;EAChC;EAAC,WAAAG,aAAA,CAAAD,OAAA,EAAAJ,qBAAA;IAAAM,GAAA;IAAAC,KAAA,EAED,eAAMC,OAAOA,CAAA,EAAG;MACZ,MAAM,IAAI,CAACN,UAAU,CAACO,IAAI,CAAC,CAAC;IAChC;EAAC;AAAA","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import { FolderModelDto } from "./FolderModelDto";
2
+ export interface IGetFolderModelGateway {
3
+ execute: () => Promise<FolderModelDto>;
4
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ //# sourceMappingURL=IGetFolderModelGateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["IGetFolderModelGateway.ts"],"sourcesContent":["import { FolderModelDto } from \"./FolderModelDto\";\n\nexport interface IGetFolderModelGateway {\n execute: () => Promise<FolderModelDto>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import { FolderModelDto } from "./FolderModelDto";
2
+ export interface IGetFolderModelRepository {
3
+ load: () => Promise<void>;
4
+ getModel: () => FolderModelDto | undefined;
5
+ hasModel: () => boolean;
6
+ }