@webiny/api-aco 0.0.0-ee-vpcs.549378cf03 → 0.0.0-unstable.085ff6572f

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 (149) hide show
  1. package/README.md +15 -0
  2. package/apps/AcoApp.d.ts +16 -0
  3. package/apps/AcoApp.js +108 -0
  4. package/apps/AcoApp.js.map +1 -0
  5. package/apps/AcoApps.d.ts +10 -0
  6. package/apps/AcoApps.js +76 -0
  7. package/apps/AcoApps.js.map +1 -0
  8. package/apps/app.gql.d.ts +3 -0
  9. package/apps/app.gql.js +58 -0
  10. package/apps/app.gql.js.map +1 -0
  11. package/apps/index.d.ts +2 -0
  12. package/apps/index.js +27 -0
  13. package/apps/index.js.map +1 -0
  14. package/createAcoContext.d.ts +3 -0
  15. package/createAcoContext.js +100 -0
  16. package/createAcoContext.js.map +1 -0
  17. package/createAcoGraphQL.d.ts +3 -0
  18. package/createAcoGraphQL.js +121 -0
  19. package/createAcoGraphQL.js.map +1 -0
  20. package/createAcoHooks.d.ts +2 -0
  21. package/createAcoHooks.js +11 -0
  22. package/createAcoHooks.js.map +1 -0
  23. package/createAcoModels.d.ts +2 -0
  24. package/createAcoModels.js +42 -0
  25. package/createAcoModels.js.map +1 -0
  26. package/createAcoStorageOperations.d.ts +10 -0
  27. package/createAcoStorageOperations.js +19 -0
  28. package/createAcoStorageOperations.js.map +1 -0
  29. package/fields/index.d.ts +2 -0
  30. package/fields/index.js +12 -0
  31. package/fields/index.js.map +1 -0
  32. package/fields/location.d.ts +2 -0
  33. package/fields/location.js +44 -0
  34. package/fields/location.js.map +1 -0
  35. package/folder/folder.crud.d.ts +3 -0
  36. package/folder/folder.crud.js +110 -0
  37. package/folder/folder.crud.js.map +1 -0
  38. package/folder/folder.gql.d.ts +3 -0
  39. package/folder/folder.gql.js +118 -0
  40. package/folder/folder.gql.js.map +1 -0
  41. package/folder/folder.model.d.ts +4 -0
  42. package/folder/folder.model.js +75 -0
  43. package/folder/folder.model.js.map +1 -0
  44. package/folder/folder.so.d.ts +3 -0
  45. package/folder/folder.so.js +151 -0
  46. package/folder/folder.so.js.map +1 -0
  47. package/folder/folder.types.d.ts +89 -0
  48. package/folder/folder.types.js +5 -0
  49. package/folder/folder.types.js.map +1 -0
  50. package/folder/onFolderBeforeDelete.hook.d.ts +2 -0
  51. package/folder/onFolderBeforeDelete.hook.js +66 -0
  52. package/folder/onFolderBeforeDelete.hook.js.map +1 -0
  53. package/index.d.ts +5 -9
  54. package/index.js +48 -63
  55. package/index.js.map +1 -1
  56. package/package.json +35 -30
  57. package/plugins/AcoAppModifierPlugin.d.ts +43 -0
  58. package/plugins/AcoAppModifierPlugin.js +59 -0
  59. package/plugins/AcoAppModifierPlugin.js.map +1 -0
  60. package/plugins/AcoAppRegisterPlugin.d.ts +8 -0
  61. package/plugins/AcoAppRegisterPlugin.js +22 -0
  62. package/plugins/AcoAppRegisterPlugin.js.map +1 -0
  63. package/plugins/index.d.ts +2 -0
  64. package/plugins/index.js +27 -0
  65. package/plugins/index.js.map +1 -0
  66. package/record/graphql/createAppResolvers.d.ts +14 -0
  67. package/record/graphql/createAppResolvers.js +108 -0
  68. package/record/graphql/createAppResolvers.js.map +1 -0
  69. package/record/graphql/createAppSchema.d.ts +9 -0
  70. package/record/graphql/createAppSchema.js +142 -0
  71. package/record/graphql/createAppSchema.js.map +1 -0
  72. package/record/record.crud.d.ts +3 -0
  73. package/record/record.crud.js +126 -0
  74. package/record/record.crud.js.map +1 -0
  75. package/record/record.gql.d.ts +8 -0
  76. package/record/record.gql.js +41 -0
  77. package/record/record.gql.js.map +1 -0
  78. package/record/record.model.d.ts +10 -0
  79. package/record/record.model.js +86 -0
  80. package/record/record.model.js.map +1 -0
  81. package/record/record.so.d.ts +3 -0
  82. package/record/record.so.js +150 -0
  83. package/record/record.so.js.map +1 -0
  84. package/record/record.types.d.ts +143 -0
  85. package/record/record.types.js +5 -0
  86. package/record/record.types.js.map +1 -0
  87. package/types.d.ts +73 -201
  88. package/types.js +35 -1
  89. package/types.js.map +1 -1
  90. package/utils/acoRecordId.d.ts +6 -0
  91. package/utils/acoRecordId.js +33 -0
  92. package/utils/acoRecordId.js.map +1 -0
  93. package/utils/checkPermissions.d.ts +2 -0
  94. package/utils/checkPermissions.js +14 -0
  95. package/utils/checkPermissions.js.map +1 -0
  96. package/utils/createListSort.d.ts +2 -0
  97. package/utils/createListSort.js +13 -0
  98. package/utils/createListSort.js.map +1 -0
  99. package/utils/createModelField.d.ts +5 -0
  100. package/utils/createModelField.js +37 -0
  101. package/utils/createModelField.js.map +1 -0
  102. package/utils/createOperationsWrapper.d.ts +9 -0
  103. package/utils/createOperationsWrapper.js +29 -0
  104. package/utils/createOperationsWrapper.js.map +1 -0
  105. package/utils/fieldResolver.d.ts +16 -0
  106. package/utils/fieldResolver.js +44 -0
  107. package/utils/fieldResolver.js.map +1 -0
  108. package/utils/getFieldValues.d.ts +5 -0
  109. package/utils/getFieldValues.js +16 -0
  110. package/utils/getFieldValues.js.map +1 -0
  111. package/utils/getFolderAndItsAncestors.d.ts +7 -0
  112. package/utils/getFolderAndItsAncestors.js +48 -0
  113. package/utils/getFolderAndItsAncestors.js.map +1 -0
  114. package/utils/isInstallationPending.d.ts +4 -0
  115. package/utils/isInstallationPending.js +21 -0
  116. package/utils/isInstallationPending.js.map +1 -0
  117. package/utils/modelFactory.d.ts +15 -0
  118. package/utils/modelFactory.js +25 -0
  119. package/utils/modelFactory.js.map +1 -0
  120. package/utils/resolve.d.ts +3 -0
  121. package/utils/resolve.js +24 -0
  122. package/utils/resolve.js.map +1 -0
  123. package/context/folders.d.ts +0 -2
  124. package/context/folders.js +0 -261
  125. package/context/folders.js.map +0 -1
  126. package/context/index.d.ts +0 -2
  127. package/context/index.js +0 -22
  128. package/context/index.js.map +0 -1
  129. package/context/links.d.ts +0 -2
  130. package/context/links.js +0 -270
  131. package/context/links.js.map +0 -1
  132. package/graphql/base.gql.d.ts +0 -3
  133. package/graphql/base.gql.js +0 -63
  134. package/graphql/base.gql.js.map +0 -1
  135. package/graphql/folders.gql.d.ts +0 -3
  136. package/graphql/folders.gql.js +0 -126
  137. package/graphql/folders.gql.js.map +0 -1
  138. package/graphql/index.d.ts +0 -1
  139. package/graphql/index.js +0 -15
  140. package/graphql/index.js.map +0 -1
  141. package/graphql/links.gql.d.ts +0 -3
  142. package/graphql/links.gql.js +0 -123
  143. package/graphql/links.gql.js.map +0 -1
  144. package/subscriptions/afterFolderDelete.d.ts +0 -3
  145. package/subscriptions/afterFolderDelete.js +0 -62
  146. package/subscriptions/afterFolderDelete.js.map +0 -1
  147. package/subscriptions/index.d.ts +0 -3
  148. package/subscriptions/index.js +0 -14
  149. package/subscriptions/index.js.map +0 -1
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createAcoAppModifier = exports.AcoAppModifierPlugin = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _plugins = require("@webiny/plugins");
10
+ const createModifier = ({
11
+ app,
12
+ context
13
+ }) => {
14
+ return {
15
+ app,
16
+ context,
17
+ addField: field => {
18
+ app.addField(field);
19
+ },
20
+ removeField: id => {
21
+ app.removeField(id);
22
+ },
23
+ modifyField: (id, cb) => {
24
+ app.modifyField(id, cb);
25
+ }
26
+ };
27
+ };
28
+ class AcoAppModifierPlugin extends _plugins.Plugin {
29
+ constructor(params) {
30
+ super();
31
+ (0, _defineProperty2.default)(this, "params", void 0);
32
+ this.params = params;
33
+ }
34
+ static create(params) {
35
+ return new AcoAppModifierPlugin(params);
36
+ }
37
+ canUse(app) {
38
+ return app.name === this.params.name;
39
+ }
40
+ async modify(params) {
41
+ const {
42
+ app,
43
+ context
44
+ } = params;
45
+ return this.params.cb(createModifier({
46
+ app,
47
+ context
48
+ }));
49
+ }
50
+ }
51
+ exports.AcoAppModifierPlugin = AcoAppModifierPlugin;
52
+ (0, _defineProperty2.default)(AcoAppModifierPlugin, "type", "aco.app.modifier");
53
+ const createAcoAppModifier = (name, cb) => {
54
+ return AcoAppModifierPlugin.create({
55
+ name,
56
+ cb
57
+ });
58
+ };
59
+ exports.createAcoAppModifier = createAcoAppModifier;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createModifier","app","context","addField","field","removeField","id","modifyField","cb","AcoAppModifierPlugin","Plugin","constructor","params","create","canUse","name","modify","createAcoAppModifier"],"sources":["AcoAppModifierPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport {\n AcoContext,\n IAcoApp,\n IAcoAppAddFieldCallable,\n IAcoAppModifyFieldCallable,\n IAcoAppRemoveFieldCallable\n} from \"~/types\";\nimport { Context } from \"@webiny/handler/types\";\n\nexport interface AcoAppModifierPluginModifyParams<T extends Context = AcoContext> {\n app: IAcoApp;\n context: T;\n}\n\nexport interface AcoAppModifierPluginParamsCallable<T extends Context = AcoContext> {\n (params: AppModifier<T>): Promise<void> | void;\n}\n\nexport interface AcoAppModifierPluginParams<T extends Context = AcoContext> {\n name: string;\n cb: AcoAppModifierPluginParamsCallable<T>;\n}\n\nexport interface AppModifier<T extends Context = AcoContext> {\n /**\n * We can access the app if really required.\n * @internal\n */\n app: IAcoApp;\n /**\n * We can access the context if really required.\n * @internal\n */\n context: T;\n addField: IAcoAppAddFieldCallable;\n removeField: IAcoAppRemoveFieldCallable;\n modifyField: IAcoAppModifyFieldCallable;\n}\n\nexport interface AppModifierParams<T extends Context = AcoContext> {\n app: IAcoApp;\n context: T;\n}\n\nconst createModifier = <T extends Context>({\n app,\n context\n}: AppModifierParams<T>): AppModifier<T> => {\n return {\n app,\n context,\n addField: field => {\n app.addField(field);\n },\n removeField: id => {\n app.removeField(id);\n },\n modifyField: (id, cb) => {\n app.modifyField(id, cb);\n }\n };\n};\n\nexport class AcoAppModifierPlugin<T extends Context = Context> extends Plugin {\n public static override readonly type: string = \"aco.app.modifier\";\n\n private readonly params: AcoAppModifierPluginParams<T>;\n\n private constructor(params: AcoAppModifierPluginParams<T>) {\n super();\n this.params = params;\n }\n\n public static create<C extends Context = AcoContext>(params: AcoAppModifierPluginParams<C>) {\n return new AcoAppModifierPlugin<C>(params);\n }\n\n public canUse(app: IAcoApp): boolean {\n return app.name === this.params.name;\n }\n\n public async modify(params: AcoAppModifierPluginModifyParams<T>): Promise<void> {\n const { app, context } = params;\n return this.params.cb(\n createModifier<T>({\n app,\n context\n })\n );\n }\n}\n\nexport type CreateAcoAppModifierCallable<T extends Context = AcoContext> =\n AcoAppModifierPluginParamsCallable<T>;\n\nexport const createAcoAppModifier = <T extends Context = AcoContext>(\n name: string,\n cb: CreateAcoAppModifierCallable<T>\n) => {\n return AcoAppModifierPlugin.create<T>({\n name,\n cb\n });\n};\n"],"mappings":";;;;;;;;AAAA;AA6CA,MAAMA,cAAc,GAAG,CAAoB;EACvCC,GAAG;EACHC;AACkB,CAAC,KAAqB;EACxC,OAAO;IACHD,GAAG;IACHC,OAAO;IACPC,QAAQ,EAAEC,KAAK,IAAI;MACfH,GAAG,CAACE,QAAQ,CAACC,KAAK,CAAC;IACvB,CAAC;IACDC,WAAW,EAAEC,EAAE,IAAI;MACfL,GAAG,CAACI,WAAW,CAACC,EAAE,CAAC;IACvB,CAAC;IACDC,WAAW,EAAE,CAACD,EAAE,EAAEE,EAAE,KAAK;MACrBP,GAAG,CAACM,WAAW,CAACD,EAAE,EAAEE,EAAE,CAAC;IAC3B;EACJ,CAAC;AACL,CAAC;AAEM,MAAMC,oBAAoB,SAAsCC,eAAM,CAAC;EAKlEC,WAAW,CAACC,MAAqC,EAAE;IACvD,KAAK,EAAE;IAAC;IACR,IAAI,CAACA,MAAM,GAAGA,MAAM;EACxB;EAEA,OAAcC,MAAM,CAAiCD,MAAqC,EAAE;IACxF,OAAO,IAAIH,oBAAoB,CAAIG,MAAM,CAAC;EAC9C;EAEOE,MAAM,CAACb,GAAY,EAAW;IACjC,OAAOA,GAAG,CAACc,IAAI,KAAK,IAAI,CAACH,MAAM,CAACG,IAAI;EACxC;EAEA,MAAaC,MAAM,CAACJ,MAA2C,EAAiB;IAC5E,MAAM;MAAEX,GAAG;MAAEC;IAAQ,CAAC,GAAGU,MAAM;IAC/B,OAAO,IAAI,CAACA,MAAM,CAACJ,EAAE,CACjBR,cAAc,CAAI;MACdC,GAAG;MACHC;IACJ,CAAC,CAAC,CACL;EACL;AACJ;AAAC;AAAA,8BA3BYO,oBAAoB,UACkB,kBAAkB;AA+B9D,MAAMQ,oBAAoB,GAAG,CAChCF,IAAY,EACZP,EAAmC,KAClC;EACD,OAAOC,oBAAoB,CAACI,MAAM,CAAI;IAClCE,IAAI;IACJP;EACJ,CAAC,CAAC;AACN,CAAC;AAAC"}
@@ -0,0 +1,8 @@
1
+ import { Plugin } from "@webiny/plugins";
2
+ import { IAcoAppRegisterParams } from "../types";
3
+ export declare class AcoAppRegisterPlugin extends Plugin {
4
+ static type: string;
5
+ readonly app: IAcoAppRegisterParams;
6
+ constructor(app: IAcoAppRegisterParams);
7
+ }
8
+ export declare const registerAcoApp: (app: IAcoAppRegisterParams) => AcoAppRegisterPlugin;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.registerAcoApp = exports.AcoAppRegisterPlugin = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _plugins = require("@webiny/plugins");
10
+ class AcoAppRegisterPlugin extends _plugins.Plugin {
11
+ constructor(app) {
12
+ super();
13
+ (0, _defineProperty2.default)(this, "app", void 0);
14
+ this.app = app;
15
+ }
16
+ }
17
+ exports.AcoAppRegisterPlugin = AcoAppRegisterPlugin;
18
+ (0, _defineProperty2.default)(AcoAppRegisterPlugin, "type", "aco.apps.create.app");
19
+ const registerAcoApp = app => {
20
+ return new AcoAppRegisterPlugin(app);
21
+ };
22
+ exports.registerAcoApp = registerAcoApp;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AcoAppRegisterPlugin","Plugin","constructor","app","registerAcoApp"],"sources":["AcoAppRegisterPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { IAcoAppRegisterParams } from \"~/types\";\n\nexport class AcoAppRegisterPlugin extends Plugin {\n public static override type = \"aco.apps.create.app\";\n public readonly app: IAcoAppRegisterParams;\n\n public constructor(app: IAcoAppRegisterParams) {\n super();\n this.app = app;\n }\n}\n\nexport const registerAcoApp = (app: IAcoAppRegisterParams) => {\n return new AcoAppRegisterPlugin(app);\n};\n"],"mappings":";;;;;;;;AAAA;AAGO,MAAMA,oBAAoB,SAASC,eAAM,CAAC;EAItCC,WAAW,CAACC,GAA0B,EAAE;IAC3C,KAAK,EAAE;IAAC;IACR,IAAI,CAACA,GAAG,GAAGA,GAAG;EAClB;AACJ;AAAC;AAAA,8BARYH,oBAAoB,UACC,qBAAqB;AAShD,MAAMI,cAAc,GAAID,GAA0B,IAAK;EAC1D,OAAO,IAAIH,oBAAoB,CAACG,GAAG,CAAC;AACxC,CAAC;AAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./AcoAppRegisterPlugin";
2
+ export * from "./AcoAppModifierPlugin";
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _AcoAppRegisterPlugin = require("./AcoAppRegisterPlugin");
7
+ Object.keys(_AcoAppRegisterPlugin).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _AcoAppRegisterPlugin[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _AcoAppRegisterPlugin[key];
14
+ }
15
+ });
16
+ });
17
+ var _AcoAppModifierPlugin = require("./AcoAppModifierPlugin");
18
+ Object.keys(_AcoAppModifierPlugin).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _AcoAppModifierPlugin[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _AcoAppModifierPlugin[key];
25
+ }
26
+ });
27
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./AcoAppRegisterPlugin\";\nexport * from \"./AcoAppModifierPlugin\";\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
@@ -0,0 +1,14 @@
1
+ import { CmsFieldTypePlugins, CmsModel } from "@webiny/api-headless-cms/types";
2
+ import { IAcoApp } from "../../types";
3
+ interface Params {
4
+ app: IAcoApp;
5
+ models: CmsModel[];
6
+ plugins: CmsFieldTypePlugins;
7
+ }
8
+ interface Resolvers {
9
+ SearchQuery: Record<string, any>;
10
+ SearchMutation: Record<string, any>;
11
+ [key: string]: Record<string, any>;
12
+ }
13
+ export declare const createAppResolvers: (params: Params) => Resolvers;
14
+ export {};
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createAppResolvers = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _createFieldResolvers = require("@webiny/api-headless-cms/graphql/schema/createFieldResolvers");
10
+ var _resolve = require("../../utils/resolve");
11
+ var _utils = require("@webiny/utils");
12
+ var _acoRecordId = require("../../utils/acoRecordId");
13
+ var _checkPermissions = require("../../utils/checkPermissions");
14
+ const createAppResolvers = params => {
15
+ const {
16
+ app,
17
+ models,
18
+ plugins
19
+ } = params;
20
+ const model = app.model;
21
+ const apiName = model.singularApiName;
22
+ const createFieldResolvers = (0, _createFieldResolvers.createFieldResolversFactory)({
23
+ endpointType: "manage",
24
+ models,
25
+ model,
26
+ fieldTypePlugins: plugins
27
+ });
28
+ const fieldResolvers = createFieldResolvers({
29
+ graphQLType: apiName,
30
+ fields: app.model.fields,
31
+ isRoot: true,
32
+ extraResolvers: {
33
+ id: entry => {
34
+ const {
35
+ id
36
+ } = (0, _utils.parseIdentifier)(entry.id);
37
+ return (0, _acoRecordId.removeAcoRecordPrefix)(id);
38
+ }
39
+ }
40
+ });
41
+ const resolvers = {
42
+ SearchQuery: {
43
+ [`get${apiName}`]: async (_, args, context) => {
44
+ return (0, _resolve.resolve)(() => {
45
+ (0, _checkPermissions.checkPermissions)(context);
46
+ return app.search.get(args.id);
47
+ });
48
+ },
49
+ [`list${apiName}`]: async (_, args, context) => {
50
+ return (0, _resolve.resolveList)(() => {
51
+ (0, _checkPermissions.checkPermissions)(context);
52
+ return app.search.list(args);
53
+ });
54
+ },
55
+ [`list${apiName}Tags`]: async (_, args, context) => {
56
+ return (0, _resolve.resolveList)(() => {
57
+ (0, _checkPermissions.checkPermissions)(context);
58
+ return app.search.listTags(args);
59
+ });
60
+ }
61
+ },
62
+ SearchMutation: {
63
+ [`create${apiName}`]: async (_, args, context) => {
64
+ return (0, _resolve.resolve)(() => {
65
+ var _args$data;
66
+ (0, _checkPermissions.checkPermissions)(context);
67
+ const {
68
+ id
69
+ } = (0, _utils.parseIdentifier)((_args$data = args.data) === null || _args$data === void 0 ? void 0 : _args$data.id);
70
+ return app.search.create((0, _objectSpread2.default)((0, _objectSpread2.default)({}, args.data), {}, {
71
+ id
72
+ }));
73
+ });
74
+ },
75
+ [`update${apiName}`]: async (_, args, context) => {
76
+ return (0, _resolve.resolve)(() => {
77
+ (0, _checkPermissions.checkPermissions)(context);
78
+ const {
79
+ id
80
+ } = (0, _utils.parseIdentifier)(args.id);
81
+ return app.search.update(id, args.data || {});
82
+ });
83
+ },
84
+ [`move${apiName}`]: async (_, args, context) => {
85
+ return (0, _resolve.resolve)(() => {
86
+ (0, _checkPermissions.checkPermissions)(context);
87
+ const {
88
+ id
89
+ } = (0, _utils.parseIdentifier)(args.id);
90
+ return app.search.move(id, args.folderId);
91
+ });
92
+ },
93
+ [`delete${apiName}`]: async (_, args, context) => {
94
+ return (0, _resolve.resolve)(() => {
95
+ (0, _checkPermissions.checkPermissions)(context);
96
+ const {
97
+ id
98
+ } = (0, _utils.parseIdentifier)(args.id);
99
+ return app.search.delete(id);
100
+ });
101
+ }
102
+ }
103
+ };
104
+ Object.assign(resolvers, fieldResolvers);
105
+ delete resolvers[apiName].entryId;
106
+ return resolvers;
107
+ };
108
+ exports.createAppResolvers = createAppResolvers;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAppResolvers","params","app","models","plugins","model","apiName","singularApiName","createFieldResolvers","createFieldResolversFactory","endpointType","fieldTypePlugins","fieldResolvers","graphQLType","fields","isRoot","extraResolvers","id","entry","parseIdentifier","removeAcoRecordPrefix","resolvers","SearchQuery","_","args","context","resolve","checkPermissions","search","get","resolveList","list","listTags","SearchMutation","data","create","update","move","folderId","delete","Object","assign","entryId"],"sources":["createAppResolvers.ts"],"sourcesContent":["import { CmsEntry, CmsFieldTypePlugins, CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { createFieldResolversFactory } from \"@webiny/api-headless-cms/graphql/schema/createFieldResolvers\";\nimport { AcoContext, IAcoApp } from \"~/types\";\nimport { resolve, resolveList } from \"~/utils/resolve\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { removeAcoRecordPrefix } from \"~/utils/acoRecordId\";\nimport { checkPermissions } from \"~/utils/checkPermissions\";\n\ninterface Params {\n app: IAcoApp;\n models: CmsModel[];\n plugins: CmsFieldTypePlugins;\n}\n\ninterface Resolvers {\n SearchQuery: Record<string, any>;\n SearchMutation: Record<string, any>;\n [key: string]: Record<string, any>;\n}\n\nexport const createAppResolvers = (params: Params): Resolvers => {\n const { app, models, plugins } = params;\n\n const model = app.model;\n const apiName = model.singularApiName;\n\n const createFieldResolvers = createFieldResolversFactory({\n endpointType: \"manage\",\n models,\n model,\n fieldTypePlugins: plugins\n });\n\n const fieldResolvers = createFieldResolvers({\n graphQLType: apiName,\n fields: app.model.fields,\n isRoot: true,\n extraResolvers: {\n id: (entry: CmsEntry) => {\n const { id } = parseIdentifier(entry.id);\n return removeAcoRecordPrefix(id);\n }\n }\n });\n\n const resolvers: Resolvers = {\n SearchQuery: {\n [`get${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n return resolve(() => {\n checkPermissions(context);\n return app.search.get(args.id);\n });\n },\n [`list${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n return resolveList(() => {\n checkPermissions(context);\n return app.search.list(args);\n });\n },\n [`list${apiName}Tags`]: async (_: unknown, args: any, context: AcoContext) => {\n return resolveList(() => {\n checkPermissions(context);\n return app.search.listTags(args);\n });\n }\n },\n SearchMutation: {\n [`create${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n return resolve(() => {\n checkPermissions(context);\n const { id } = parseIdentifier(args.data?.id);\n return app.search.create({\n ...args.data,\n id\n });\n });\n },\n [`update${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n return resolve(() => {\n checkPermissions(context);\n const { id } = parseIdentifier(args.id);\n return app.search.update(id, args.data || {});\n });\n },\n [`move${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n return resolve(() => {\n checkPermissions(context);\n const { id } = parseIdentifier(args.id);\n return app.search.move(id, args.folderId);\n });\n },\n [`delete${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n return resolve(() => {\n checkPermissions(context);\n const { id } = parseIdentifier(args.id);\n return app.search.delete(id);\n });\n }\n }\n };\n\n Object.assign(resolvers, fieldResolvers);\n delete resolvers[apiName].entryId;\n\n return resolvers;\n};\n"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { CmsFieldTypePlugins, CmsModel } from "@webiny/api-headless-cms/types";
2
+ import { IAcoApp } from "../../types";
3
+ interface Params {
4
+ app: IAcoApp;
5
+ models: CmsModel[];
6
+ plugins: CmsFieldTypePlugins;
7
+ }
8
+ export declare const createAppSchema: (params: Params) => string;
9
+ export {};
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createAppSchema = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _renderFields = require("@webiny/api-headless-cms/utils/renderFields");
10
+ var _renderInputFields = require("@webiny/api-headless-cms/utils/renderInputFields");
11
+ var _renderListFilterFields = require("@webiny/api-headless-cms/utils/renderListFilterFields");
12
+ var _renderSortEnum = require("@webiny/api-headless-cms/utils/renderSortEnum");
13
+ const removeFieldRequiredValidation = field => {
14
+ if (field.validation) {
15
+ field.validation = field.validation.filter(validation => validation.name !== "required");
16
+ }
17
+ if (field.listValidation) {
18
+ field.listValidation = field.listValidation.filter(v => v.name !== "required");
19
+ }
20
+ return field;
21
+ };
22
+ const createUpdateFields = fields => {
23
+ return fields.reduce((collection, field) => {
24
+ if (["type"].includes(field.fieldId)) {
25
+ return collection;
26
+ } else if (field.fieldId === "tags") {
27
+ collection.push(field);
28
+ return collection;
29
+ }
30
+ collection.push(removeFieldRequiredValidation((0, _objectSpread2.default)({}, field)));
31
+ return collection;
32
+ }, []);
33
+ };
34
+ const createAppSchema = params => {
35
+ const {
36
+ app,
37
+ models,
38
+ plugins: fieldTypePlugins
39
+ } = params;
40
+ const {
41
+ model
42
+ } = app;
43
+ const {
44
+ singularApiName: apiName,
45
+ fields
46
+ } = model;
47
+ const fieldTypes = (0, _renderFields.renderFields)({
48
+ models,
49
+ model,
50
+ fields,
51
+ type: "manage",
52
+ fieldTypePlugins
53
+ });
54
+ const inputCreateFields = (0, _renderInputFields.renderInputFields)({
55
+ models,
56
+ model,
57
+ fields,
58
+ fieldTypePlugins
59
+ });
60
+ const inputUpdateFields = (0, _renderInputFields.renderInputFields)({
61
+ models,
62
+ model,
63
+ fields: createUpdateFields(fields),
64
+ fieldTypePlugins
65
+ });
66
+ const listFilterFieldsRender = (0, _renderListFilterFields.renderListFilterFields)({
67
+ model,
68
+ fields: model.fields,
69
+ type: "manage",
70
+ fieldTypePlugins
71
+ });
72
+ const sortEnumRender = (0, _renderSortEnum.renderSortEnum)({
73
+ model,
74
+ fields: model.fields,
75
+ fieldTypePlugins
76
+ });
77
+ return (/* GraphQL */`
78
+ ${fieldTypes.map(f => f.typeDefs).join("\n")}
79
+
80
+
81
+ type ${apiName} {
82
+ id: ID!
83
+ savedOn: DateTime!
84
+ createdOn: DateTime!
85
+ createdBy: AcoUser!
86
+ ${fieldTypes.map(f => f.fields).join("\n")}
87
+ }
88
+
89
+ ${inputCreateFields.map(f => f.typeDefs).join("\n")}
90
+
91
+ input ${apiName}CreateInput {
92
+ id: ID
93
+ ${inputCreateFields.map(f => f.fields).join("\n")}
94
+ }
95
+
96
+ input ${apiName}UpdateInput {
97
+ ${inputUpdateFields.map(f => f.fields).join("\n")}
98
+ }
99
+
100
+ type ${apiName}Response {
101
+ data: ${apiName}
102
+ error: AcoError
103
+ }
104
+
105
+ input ${apiName}ListWhereInput {
106
+ ${listFilterFieldsRender}
107
+ AND: [${apiName}ListWhereInput!]
108
+ OR: [${apiName}ListWhereInput!]
109
+ }
110
+
111
+ type ${apiName}ListResponse {
112
+ data: [${apiName}!]
113
+ error: AcoError
114
+ meta: AcoMeta
115
+ }
116
+
117
+ enum ${apiName}ListSorter {
118
+ ${sortEnumRender}
119
+ }
120
+
121
+ extend type SearchQuery {
122
+ get${apiName}(id: ID!): ${apiName}Response!
123
+ list${apiName}(
124
+ where: ${apiName}ListWhereInput
125
+ search: String
126
+ limit: Int
127
+ after: String
128
+ sort: [${apiName}ListSorter!]
129
+ ): ${apiName}ListResponse!
130
+ list${apiName}Tags(where: AcoSearchRecordTagListWhereInput): AcoSearchRecordTagListResponse!
131
+ }
132
+
133
+ extend type SearchMutation {
134
+ create${apiName}(data: ${apiName}CreateInput!): ${apiName}Response!
135
+ update${apiName}(id: ID!, data: ${apiName}UpdateInput!): ${apiName}Response!
136
+ move${apiName}(id: ID!, folderId: ID!): AcoSearchRecordMoveResponse!
137
+ delete${apiName}(id: ID!): AcoBooleanResponse!
138
+ }
139
+ `
140
+ );
141
+ };
142
+ exports.createAppSchema = createAppSchema;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["removeFieldRequiredValidation","field","validation","filter","name","listValidation","v","createUpdateFields","fields","reduce","collection","includes","fieldId","push","createAppSchema","params","app","models","plugins","fieldTypePlugins","model","singularApiName","apiName","fieldTypes","renderFields","type","inputCreateFields","renderInputFields","inputUpdateFields","listFilterFieldsRender","renderListFilterFields","sortEnumRender","renderSortEnum","map","f","typeDefs","join"],"sources":["createAppSchema.ts"],"sourcesContent":["import { CmsFieldTypePlugins, CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields\";\nimport { renderInputFields } from \"@webiny/api-headless-cms/utils/renderInputFields\";\nimport { IAcoApp } from \"~/types\";\nimport { renderListFilterFields } from \"@webiny/api-headless-cms/utils/renderListFilterFields\";\nimport { renderSortEnum } from \"@webiny/api-headless-cms/utils/renderSortEnum\";\n\ninterface Params {\n app: IAcoApp;\n models: CmsModel[];\n plugins: CmsFieldTypePlugins;\n}\n\nconst removeFieldRequiredValidation = (field: CmsModelField) => {\n if (field.validation) {\n field.validation = field.validation.filter(validation => validation.name !== \"required\");\n }\n if (field.listValidation) {\n field.listValidation = field.listValidation.filter(v => v.name !== \"required\");\n }\n return field;\n};\n\nconst createUpdateFields = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.reduce<CmsModelField[]>((collection, field) => {\n if ([\"type\"].includes(field.fieldId)) {\n return collection;\n } else if (field.fieldId === \"tags\") {\n collection.push(field);\n return collection;\n }\n collection.push(removeFieldRequiredValidation({ ...field }));\n return collection;\n }, []);\n};\n\nexport const createAppSchema = (params: Params): string => {\n const { app, models, plugins: fieldTypePlugins } = params;\n const { model } = app;\n const { singularApiName: apiName, fields } = model;\n\n const fieldTypes = renderFields({\n models,\n model,\n fields,\n type: \"manage\",\n fieldTypePlugins\n });\n const inputCreateFields = renderInputFields({\n models,\n model,\n fields,\n fieldTypePlugins\n });\n const inputUpdateFields = renderInputFields({\n models,\n model,\n fields: createUpdateFields(fields),\n fieldTypePlugins\n });\n const listFilterFieldsRender = renderListFilterFields({\n model,\n fields: model.fields,\n type: \"manage\",\n fieldTypePlugins\n });\n\n const sortEnumRender = renderSortEnum({\n model,\n fields: model.fields,\n fieldTypePlugins\n });\n\n return /* GraphQL */ `\n ${fieldTypes.map(f => f.typeDefs).join(\"\\n\")}\n\n\n type ${apiName} {\n id: ID!\n savedOn: DateTime!\n createdOn: DateTime!\n createdBy: AcoUser!\n ${fieldTypes.map(f => f.fields).join(\"\\n\")}\n }\n\n ${inputCreateFields.map(f => f.typeDefs).join(\"\\n\")}\n\n input ${apiName}CreateInput {\n id: ID\n ${inputCreateFields.map(f => f.fields).join(\"\\n\")}\n }\n\n input ${apiName}UpdateInput {\n ${inputUpdateFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type ${apiName}Response {\n data: ${apiName}\n error: AcoError\n }\n\n input ${apiName}ListWhereInput {\n ${listFilterFieldsRender}\n AND: [${apiName}ListWhereInput!]\n OR: [${apiName}ListWhereInput!]\n }\n\n type ${apiName}ListResponse {\n data: [${apiName}!]\n error: AcoError\n meta: AcoMeta\n }\n\n enum ${apiName}ListSorter {\n ${sortEnumRender}\n }\n\n extend type SearchQuery {\n get${apiName}(id: ID!): ${apiName}Response!\n list${apiName}(\n where: ${apiName}ListWhereInput\n search: String\n limit: Int\n after: String\n sort: [${apiName}ListSorter!]\n ): ${apiName}ListResponse!\n list${apiName}Tags(where: AcoSearchRecordTagListWhereInput): AcoSearchRecordTagListResponse!\n }\n\n extend type SearchMutation {\n create${apiName}(data: ${apiName}CreateInput!): ${apiName}Response!\n update${apiName}(id: ID!, data: ${apiName}UpdateInput!): ${apiName}Response!\n move${apiName}(id: ID!, folderId: ID!): AcoSearchRecordMoveResponse!\n delete${apiName}(id: ID!): AcoBooleanResponse!\n }\n `;\n};\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { CreateAcoParams } from "../types";
2
+ import { AcoSearchRecordCrud } from "./record.types";
3
+ export declare const createSearchRecordCrudMethods: ({ storageOperations }: CreateAcoParams) => AcoSearchRecordCrud;
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createSearchRecordCrudMethods = void 0;
7
+ var _pubsub = require("@webiny/pubsub");
8
+ const createSearchRecordCrudMethods = ({
9
+ storageOperations
10
+ }) => {
11
+ // create
12
+ const onSearchRecordBeforeCreate = (0, _pubsub.createTopic)("aco.onSearchRecordBeforeCreate");
13
+ const onSearchRecordAfterCreate = (0, _pubsub.createTopic)("aco.onSearchRecordAfterCreate");
14
+ // update
15
+ const onSearchRecordBeforeUpdate = (0, _pubsub.createTopic)("aco.onSearchRecordBeforeUpdate");
16
+ const onSearchRecordAfterUpdate = (0, _pubsub.createTopic)("aco.onSearchRecordAfterUpdate");
17
+ // move
18
+ const onSearchRecordBeforeMove = (0, _pubsub.createTopic)("aco.onSearchRecordBeforeMove");
19
+ const onSearchRecordAfterMove = (0, _pubsub.createTopic)("aco.onSearchRecordAfterMove");
20
+ // delete
21
+ const onSearchRecordBeforeDelete = (0, _pubsub.createTopic)("aco.onSearchRecordBeforeDelete");
22
+ const onSearchRecordAfterDelete = (0, _pubsub.createTopic)("aco.onSearchRecordAfterDelete");
23
+ return {
24
+ /**
25
+ * Lifecycle events
26
+ */
27
+ onSearchRecordBeforeCreate,
28
+ onSearchRecordAfterCreate,
29
+ onSearchRecordBeforeUpdate,
30
+ onSearchRecordAfterUpdate,
31
+ onSearchRecordBeforeMove,
32
+ onSearchRecordAfterMove,
33
+ onSearchRecordBeforeDelete,
34
+ onSearchRecordAfterDelete,
35
+ async get(model, id) {
36
+ return storageOperations.getRecord(model, {
37
+ id
38
+ });
39
+ },
40
+ async list(model, params) {
41
+ return storageOperations.listRecords(model, params);
42
+ },
43
+ async create(model, data) {
44
+ await onSearchRecordBeforeCreate.publish({
45
+ model,
46
+ input: data
47
+ });
48
+ const record = await storageOperations.createRecord(model, {
49
+ data
50
+ });
51
+ await onSearchRecordAfterCreate.publish({
52
+ model,
53
+ record
54
+ });
55
+ return record;
56
+ },
57
+ async update(model, id, data) {
58
+ const original = await storageOperations.getRecord(model, {
59
+ id
60
+ });
61
+ await onSearchRecordBeforeUpdate.publish({
62
+ model,
63
+ original,
64
+ input: {
65
+ id,
66
+ data
67
+ }
68
+ });
69
+ const record = await storageOperations.updateRecord(model, {
70
+ id,
71
+ data
72
+ });
73
+ await onSearchRecordAfterUpdate.publish({
74
+ model,
75
+ original,
76
+ input: {
77
+ id,
78
+ data
79
+ },
80
+ record
81
+ });
82
+ return record;
83
+ },
84
+ async move(model, id, folderId) {
85
+ const original = await storageOperations.getRecord(model, {
86
+ id
87
+ });
88
+ await onSearchRecordBeforeMove.publish({
89
+ model,
90
+ original,
91
+ folderId
92
+ });
93
+ const result = await storageOperations.moveRecord(model, {
94
+ id,
95
+ folderId
96
+ });
97
+ await onSearchRecordAfterMove.publish({
98
+ model,
99
+ original,
100
+ folderId
101
+ });
102
+ return result;
103
+ },
104
+ async delete(model, id) {
105
+ const record = await storageOperations.getRecord(model, {
106
+ id
107
+ });
108
+ await onSearchRecordBeforeDelete.publish({
109
+ model,
110
+ record
111
+ });
112
+ await storageOperations.deleteRecord(model, {
113
+ id
114
+ });
115
+ await onSearchRecordAfterDelete.publish({
116
+ model,
117
+ record
118
+ });
119
+ return true;
120
+ },
121
+ async listTags(model, params) {
122
+ return storageOperations.listTags(model, params);
123
+ }
124
+ };
125
+ };
126
+ exports.createSearchRecordCrudMethods = createSearchRecordCrudMethods;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createSearchRecordCrudMethods","storageOperations","onSearchRecordBeforeCreate","createTopic","onSearchRecordAfterCreate","onSearchRecordBeforeUpdate","onSearchRecordAfterUpdate","onSearchRecordBeforeMove","onSearchRecordAfterMove","onSearchRecordBeforeDelete","onSearchRecordAfterDelete","get","model","id","getRecord","list","params","listRecords","create","data","publish","input","record","createRecord","update","original","updateRecord","move","folderId","result","moveRecord","delete","deleteRecord","listTags"],"sources":["record.crud.ts"],"sourcesContent":["import { createTopic } from \"@webiny/pubsub\";\nimport {\n CreateAcoParams,\n OnSearchRecordAfterMoveTopicParams,\n OnSearchRecordBeforeMoveTopicParams\n} from \"~/types\";\nimport {\n AcoSearchRecordCrud,\n OnSearchRecordAfterCreateTopicParams,\n OnSearchRecordAfterDeleteTopicParams,\n OnSearchRecordAfterUpdateTopicParams,\n OnSearchRecordBeforeCreateTopicParams,\n OnSearchRecordBeforeDeleteTopicParams,\n OnSearchRecordBeforeUpdateTopicParams\n} from \"./record.types\";\n\nexport const createSearchRecordCrudMethods = ({\n storageOperations\n}: CreateAcoParams): AcoSearchRecordCrud => {\n // create\n const onSearchRecordBeforeCreate = createTopic<OnSearchRecordBeforeCreateTopicParams>(\n \"aco.onSearchRecordBeforeCreate\"\n );\n const onSearchRecordAfterCreate = createTopic<OnSearchRecordAfterCreateTopicParams>(\n \"aco.onSearchRecordAfterCreate\"\n );\n // update\n const onSearchRecordBeforeUpdate = createTopic<OnSearchRecordBeforeUpdateTopicParams>(\n \"aco.onSearchRecordBeforeUpdate\"\n );\n const onSearchRecordAfterUpdate = createTopic<OnSearchRecordAfterUpdateTopicParams>(\n \"aco.onSearchRecordAfterUpdate\"\n );\n // move\n const onSearchRecordBeforeMove = createTopic<OnSearchRecordBeforeMoveTopicParams>(\n \"aco.onSearchRecordBeforeMove\"\n );\n const onSearchRecordAfterMove = createTopic<OnSearchRecordAfterMoveTopicParams>(\n \"aco.onSearchRecordAfterMove\"\n );\n // delete\n const onSearchRecordBeforeDelete = createTopic<OnSearchRecordBeforeDeleteTopicParams>(\n \"aco.onSearchRecordBeforeDelete\"\n );\n const onSearchRecordAfterDelete = createTopic<OnSearchRecordAfterDeleteTopicParams>(\n \"aco.onSearchRecordAfterDelete\"\n );\n\n return {\n /**\n * Lifecycle events\n */\n onSearchRecordBeforeCreate,\n onSearchRecordAfterCreate,\n onSearchRecordBeforeUpdate,\n onSearchRecordAfterUpdate,\n onSearchRecordBeforeMove,\n onSearchRecordAfterMove,\n onSearchRecordBeforeDelete,\n onSearchRecordAfterDelete,\n async get(model, id) {\n return storageOperations.getRecord(model, { id });\n },\n async list(model, params) {\n return storageOperations.listRecords(model, params);\n },\n async create(model, data) {\n await onSearchRecordBeforeCreate.publish({ model, input: data });\n const record = await storageOperations.createRecord(model, { data });\n await onSearchRecordAfterCreate.publish({ model, record });\n return record;\n },\n async update(model, id, data) {\n const original = await storageOperations.getRecord(model, { id });\n await onSearchRecordBeforeUpdate.publish({ model, original, input: { id, data } });\n const record = await storageOperations.updateRecord(model, { id, data });\n await onSearchRecordAfterUpdate.publish({\n model,\n original,\n input: { id, data },\n record\n });\n return record;\n },\n async move(model, id, folderId) {\n const original = await storageOperations.getRecord(model, { id });\n await onSearchRecordBeforeMove.publish({ model, original, folderId });\n const result = await storageOperations.moveRecord(model, {\n id,\n folderId\n });\n await onSearchRecordAfterMove.publish({\n model,\n original,\n folderId\n });\n return result;\n },\n async delete(model, id: string) {\n const record = await storageOperations.getRecord(model, { id });\n await onSearchRecordBeforeDelete.publish({ model, record });\n await storageOperations.deleteRecord(model, { id });\n await onSearchRecordAfterDelete.publish({ model, record });\n return true;\n },\n async listTags(model, params) {\n return storageOperations.listTags(model, params);\n }\n };\n};\n"],"mappings":";;;;;;AAAA;AAgBO,MAAMA,6BAA6B,GAAG,CAAC;EAC1CC;AACa,CAAC,KAA0B;EACxC;EACA,MAAMC,0BAA0B,GAAG,IAAAC,mBAAW,EAC1C,gCAAgC,CACnC;EACD,MAAMC,yBAAyB,GAAG,IAAAD,mBAAW,EACzC,+BAA+B,CAClC;EACD;EACA,MAAME,0BAA0B,GAAG,IAAAF,mBAAW,EAC1C,gCAAgC,CACnC;EACD,MAAMG,yBAAyB,GAAG,IAAAH,mBAAW,EACzC,+BAA+B,CAClC;EACD;EACA,MAAMI,wBAAwB,GAAG,IAAAJ,mBAAW,EACxC,8BAA8B,CACjC;EACD,MAAMK,uBAAuB,GAAG,IAAAL,mBAAW,EACvC,6BAA6B,CAChC;EACD;EACA,MAAMM,0BAA0B,GAAG,IAAAN,mBAAW,EAC1C,gCAAgC,CACnC;EACD,MAAMO,yBAAyB,GAAG,IAAAP,mBAAW,EACzC,+BAA+B,CAClC;EAED,OAAO;IACH;AACR;AACA;IACQD,0BAA0B;IAC1BE,yBAAyB;IACzBC,0BAA0B;IAC1BC,yBAAyB;IACzBC,wBAAwB;IACxBC,uBAAuB;IACvBC,0BAA0B;IAC1BC,yBAAyB;IACzB,MAAMC,GAAG,CAACC,KAAK,EAAEC,EAAE,EAAE;MACjB,OAAOZ,iBAAiB,CAACa,SAAS,CAACF,KAAK,EAAE;QAAEC;MAAG,CAAC,CAAC;IACrD,CAAC;IACD,MAAME,IAAI,CAACH,KAAK,EAAEI,MAAM,EAAE;MACtB,OAAOf,iBAAiB,CAACgB,WAAW,CAACL,KAAK,EAAEI,MAAM,CAAC;IACvD,CAAC;IACD,MAAME,MAAM,CAACN,KAAK,EAAEO,IAAI,EAAE;MACtB,MAAMjB,0BAA0B,CAACkB,OAAO,CAAC;QAAER,KAAK;QAAES,KAAK,EAAEF;MAAK,CAAC,CAAC;MAChE,MAAMG,MAAM,GAAG,MAAMrB,iBAAiB,CAACsB,YAAY,CAACX,KAAK,EAAE;QAAEO;MAAK,CAAC,CAAC;MACpE,MAAMf,yBAAyB,CAACgB,OAAO,CAAC;QAAER,KAAK;QAAEU;MAAO,CAAC,CAAC;MAC1D,OAAOA,MAAM;IACjB,CAAC;IACD,MAAME,MAAM,CAACZ,KAAK,EAAEC,EAAE,EAAEM,IAAI,EAAE;MAC1B,MAAMM,QAAQ,GAAG,MAAMxB,iBAAiB,CAACa,SAAS,CAACF,KAAK,EAAE;QAAEC;MAAG,CAAC,CAAC;MACjE,MAAMR,0BAA0B,CAACe,OAAO,CAAC;QAAER,KAAK;QAAEa,QAAQ;QAAEJ,KAAK,EAAE;UAAER,EAAE;UAAEM;QAAK;MAAE,CAAC,CAAC;MAClF,MAAMG,MAAM,GAAG,MAAMrB,iBAAiB,CAACyB,YAAY,CAACd,KAAK,EAAE;QAAEC,EAAE;QAAEM;MAAK,CAAC,CAAC;MACxE,MAAMb,yBAAyB,CAACc,OAAO,CAAC;QACpCR,KAAK;QACLa,QAAQ;QACRJ,KAAK,EAAE;UAAER,EAAE;UAAEM;QAAK,CAAC;QACnBG;MACJ,CAAC,CAAC;MACF,OAAOA,MAAM;IACjB,CAAC;IACD,MAAMK,IAAI,CAACf,KAAK,EAAEC,EAAE,EAAEe,QAAQ,EAAE;MAC5B,MAAMH,QAAQ,GAAG,MAAMxB,iBAAiB,CAACa,SAAS,CAACF,KAAK,EAAE;QAAEC;MAAG,CAAC,CAAC;MACjE,MAAMN,wBAAwB,CAACa,OAAO,CAAC;QAAER,KAAK;QAAEa,QAAQ;QAAEG;MAAS,CAAC,CAAC;MACrE,MAAMC,MAAM,GAAG,MAAM5B,iBAAiB,CAAC6B,UAAU,CAAClB,KAAK,EAAE;QACrDC,EAAE;QACFe;MACJ,CAAC,CAAC;MACF,MAAMpB,uBAAuB,CAACY,OAAO,CAAC;QAClCR,KAAK;QACLa,QAAQ;QACRG;MACJ,CAAC,CAAC;MACF,OAAOC,MAAM;IACjB,CAAC;IACD,MAAME,MAAM,CAACnB,KAAK,EAAEC,EAAU,EAAE;MAC5B,MAAMS,MAAM,GAAG,MAAMrB,iBAAiB,CAACa,SAAS,CAACF,KAAK,EAAE;QAAEC;MAAG,CAAC,CAAC;MAC/D,MAAMJ,0BAA0B,CAACW,OAAO,CAAC;QAAER,KAAK;QAAEU;MAAO,CAAC,CAAC;MAC3D,MAAMrB,iBAAiB,CAAC+B,YAAY,CAACpB,KAAK,EAAE;QAAEC;MAAG,CAAC,CAAC;MACnD,MAAMH,yBAAyB,CAACU,OAAO,CAAC;QAAER,KAAK;QAAEU;MAAO,CAAC,CAAC;MAC1D,OAAO,IAAI;IACf,CAAC;IACD,MAAMW,QAAQ,CAACrB,KAAK,EAAEI,MAAM,EAAE;MAC1B,OAAOf,iBAAiB,CAACgC,QAAQ,CAACrB,KAAK,EAAEI,MAAM,CAAC;IACpD;EACJ,CAAC;AACL,CAAC;AAAC"}
@@ -0,0 +1,8 @@
1
+ import { AcoContext, IAcoApp } from "../types";
2
+ import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
3
+ interface Params {
4
+ context: AcoContext;
5
+ app: IAcoApp;
6
+ }
7
+ export declare const createSchema: (params: Params) => Promise<GraphQLSchemaPlugin<import("@webiny/api/types").Context>>;
8
+ export {};
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createSchema = void 0;
7
+ var _handlerGraphql = require("@webiny/handler-graphql");
8
+ var _createAppSchema = require("./graphql/createAppSchema");
9
+ var _createAppResolvers = require("./graphql/createAppResolvers");
10
+ const createSchema = async params => {
11
+ const {
12
+ context,
13
+ app
14
+ } = params;
15
+ const plugins = context.plugins.byType("cms-model-field-to-graphql").reduce((fields, plugin) => {
16
+ fields[plugin.fieldType] = plugin;
17
+ return fields;
18
+ }, {});
19
+ const models = await context.security.withoutAuthorization(async () => {
20
+ return (await context.cms.listModels()).filter(model => {
21
+ return !model.isPrivate;
22
+ });
23
+ });
24
+ return context.benchmark.measure(`aco.schema.generate.${app.name}`, async () => {
25
+ const plugin = new _handlerGraphql.GraphQLSchemaPlugin({
26
+ typeDefs: (0, _createAppSchema.createAppSchema)({
27
+ models,
28
+ app,
29
+ plugins
30
+ }),
31
+ resolvers: (0, _createAppResolvers.createAppResolvers)({
32
+ models,
33
+ app,
34
+ plugins
35
+ })
36
+ });
37
+ plugin.name = `aco.graphql.appSchema.searchRecord.${app.name}`;
38
+ return plugin;
39
+ });
40
+ };
41
+ exports.createSchema = createSchema;