@webiny/api-headless-cms 0.0.0-unstable.40876133bb → 0.0.0-unstable.60e968001a

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 (146) hide show
  1. package/context.d.ts +5 -2
  2. package/context.js +63 -4
  3. package/context.js.map +1 -1
  4. package/crud/contentEntry/markLockedFields.js +5 -2
  5. package/crud/contentEntry/markLockedFields.js.map +1 -1
  6. package/crud/contentEntry/referenceFieldsMapping.js +9 -5
  7. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  8. package/crud/contentEntry/searchableFields.d.ts +9 -0
  9. package/crud/contentEntry/searchableFields.js +83 -0
  10. package/crud/contentEntry/searchableFields.js.map +1 -0
  11. package/crud/contentEntry.crud.js +65 -40
  12. package/crud/contentEntry.crud.js.map +1 -1
  13. package/crud/contentModel/createFieldStorageId.js +5 -1
  14. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  15. package/crud/contentModel/models.js +12 -0
  16. package/crud/contentModel/models.js.map +1 -1
  17. package/crud/contentModel/validateModelFields.js +46 -37
  18. package/crud/contentModel/validateModelFields.js.map +1 -1
  19. package/crud/contentModel/validation.d.ts +477 -0
  20. package/crud/contentModel/validation.js +109 -0
  21. package/crud/contentModel/validation.js.map +1 -0
  22. package/crud/contentModel.crud.js +227 -175
  23. package/crud/contentModel.crud.js.map +1 -1
  24. package/crud/contentModelGroup/validation.d.ts +30 -0
  25. package/crud/contentModelGroup/validation.js +43 -0
  26. package/crud/contentModelGroup/validation.js.map +1 -0
  27. package/crud/contentModelGroup.crud.js +54 -54
  28. package/crud/contentModelGroup.crud.js.map +1 -1
  29. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +11 -0
  30. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +239 -0
  31. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -0
  32. package/fieldConverters/index.d.ts +2 -1
  33. package/fieldConverters/index.js +3 -1
  34. package/fieldConverters/index.js.map +1 -1
  35. package/graphql/buildSchemaPlugins.d.ts +2 -2
  36. package/graphql/buildSchemaPlugins.js.map +1 -1
  37. package/graphql/graphQLHandlerFactory.js +58 -28
  38. package/graphql/graphQLHandlerFactory.js.map +1 -1
  39. package/graphql/index.d.ts +2 -2
  40. package/graphql/index.js +49 -38
  41. package/graphql/index.js.map +1 -1
  42. package/graphql/schema/baseContentSchema.d.ts +2 -2
  43. package/graphql/schema/baseContentSchema.js +3 -3
  44. package/graphql/schema/baseContentSchema.js.map +1 -1
  45. package/graphql/schema/contentEntries.d.ts +2 -2
  46. package/graphql/schema/contentEntries.js +5 -5
  47. package/graphql/schema/contentEntries.js.map +1 -1
  48. package/graphql/schema/contentModelGroups.d.ts +2 -2
  49. package/graphql/schema/contentModelGroups.js +3 -3
  50. package/graphql/schema/contentModelGroups.js.map +1 -1
  51. package/graphql/schema/contentModels.d.ts +2 -2
  52. package/graphql/schema/contentModels.js +26 -7
  53. package/graphql/schema/contentModels.js.map +1 -1
  54. package/graphql/schema/createFieldResolvers.d.ts +1 -1
  55. package/graphql/schema/createFieldResolvers.js +23 -7
  56. package/graphql/schema/createFieldResolvers.js.map +1 -1
  57. package/graphql/schema/createManageSDL.d.ts +2 -0
  58. package/graphql/schema/createManageSDL.js +9 -6
  59. package/graphql/schema/createManageSDL.js.map +1 -1
  60. package/graphql/schema/createReadResolvers.js +5 -0
  61. package/graphql/schema/createReadResolvers.js.map +1 -1
  62. package/graphql/schema/createReadSDL.d.ts +2 -0
  63. package/graphql/schema/createReadSDL.js +11 -5
  64. package/graphql/schema/createReadSDL.js.map +1 -1
  65. package/graphql/schema/schemaPlugins.d.ts +2 -2
  66. package/graphql/schema/schemaPlugins.js +11 -8
  67. package/graphql/schema/schemaPlugins.js.map +1 -1
  68. package/graphql/system.js +79 -82
  69. package/graphql/system.js.map +1 -1
  70. package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +2 -0
  71. package/graphqlFields/dynamicZone/dynamicZoneField.js +234 -0
  72. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -0
  73. package/graphqlFields/dynamicZone/dynamicZoneStorage.d.ts +3 -0
  74. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +79 -0
  75. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -0
  76. package/graphqlFields/dynamicZone/index.d.ts +2 -0
  77. package/graphqlFields/dynamicZone/index.js +21 -0
  78. package/graphqlFields/dynamicZone/index.js.map +1 -0
  79. package/graphqlFields/index.d.ts +1 -1
  80. package/graphqlFields/index.js +3 -1
  81. package/graphqlFields/index.js.map +1 -1
  82. package/graphqlFields/number.js +4 -0
  83. package/graphqlFields/number.js.map +1 -1
  84. package/graphqlFields/object.js +122 -72
  85. package/graphqlFields/object.js.map +1 -1
  86. package/graphqlFields/ref.js +34 -48
  87. package/graphqlFields/ref.js.map +1 -1
  88. package/index.d.ts +3 -3
  89. package/index.js +4 -8
  90. package/index.js.map +1 -1
  91. package/package.json +26 -26
  92. package/plugins/CmsGraphQLSchemaPlugin.d.ts +5 -0
  93. package/plugins/CmsGraphQLSchemaPlugin.js +17 -0
  94. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -0
  95. package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +20 -0
  96. package/plugins/CmsGraphQLSchemaSorterPlugin.js +38 -0
  97. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -0
  98. package/plugins/CmsModelFieldConverterPlugin.d.ts +2 -2
  99. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  100. package/plugins/StorageTransformPlugin.d.ts +11 -11
  101. package/plugins/StorageTransformPlugin.js.map +1 -1
  102. package/plugins/index.d.ts +2 -0
  103. package/plugins/index.js +26 -0
  104. package/plugins/index.js.map +1 -1
  105. package/storage/object.js +5 -2
  106. package/storage/object.js.map +1 -1
  107. package/types.d.ts +203 -55
  108. package/types.js +55 -7
  109. package/types.js.map +1 -1
  110. package/utils/converters/ConverterCollection.js +6 -2
  111. package/utils/converters/ConverterCollection.js.map +1 -1
  112. package/utils/createTypeFromFields.d.ts +15 -0
  113. package/utils/createTypeFromFields.js +75 -0
  114. package/utils/createTypeFromFields.js.map +1 -0
  115. package/utils/createTypeName.js +3 -1
  116. package/utils/createTypeName.js.map +1 -1
  117. package/utils/entryStorage.js +15 -12
  118. package/utils/entryStorage.js.map +1 -1
  119. package/utils/getBaseFieldType.d.ts +4 -0
  120. package/utils/getBaseFieldType.js +12 -0
  121. package/utils/getBaseFieldType.js.map +1 -0
  122. package/utils/renderFields.js +3 -1
  123. package/utils/renderFields.js.map +1 -1
  124. package/utils/renderGetFilterFields.js +8 -3
  125. package/utils/renderGetFilterFields.js.map +1 -1
  126. package/utils/renderInputFields.js +3 -1
  127. package/utils/renderInputFields.js.map +1 -1
  128. package/utils/renderListFilterFields.js +5 -2
  129. package/utils/renderListFilterFields.js.map +1 -1
  130. package/utils/renderSortEnum.d.ts +7 -4
  131. package/utils/renderSortEnum.js +23 -4
  132. package/utils/renderSortEnum.js.map +1 -1
  133. package/validators/dynamicZone.d.ts +2 -0
  134. package/validators/dynamicZone.js +24 -0
  135. package/validators/dynamicZone.js.map +1 -0
  136. package/validators/index.js +3 -1
  137. package/validators/index.js.map +1 -1
  138. package/crud/index.d.ts +0 -6
  139. package/crud/index.js +0 -85
  140. package/crud/index.js.map +0 -1
  141. package/graphql/schema/resolvers/manage/resolveRequestChanges.d.ts +0 -7
  142. package/graphql/schema/resolvers/manage/resolveRequestChanges.js +0 -21
  143. package/graphql/schema/resolvers/manage/resolveRequestChanges.js.map +0 -1
  144. package/graphql/schema/resolvers/manage/resolveRequestReview.d.ts +0 -7
  145. package/graphql/schema/resolvers/manage/resolveRequestReview.js +0 -21
  146. package/graphql/schema/resolvers/manage/resolveRequestReview.js.map +0 -1
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["createHeadlessCmsGraphQL","params","createPathParameterPlugin","createHeaderParameterPlugin","createContextParameterPlugin","baseCreateGraphQL","createHeadlessCmsContext","createContextPlugin","createDefaultModelManager","createCrud","createGraphQLFields","createFieldConverters","createValidators","createDefaultStorageTransform","createObjectStorageTransform","createUpgrades"],"sources":["index.ts"],"sourcesContent":["import { createGraphQL as baseCreateGraphQL, CreateGraphQLParams } from \"~/graphql\";\nimport { createUpgrades } from \"~/upgrades\";\nimport { createDefaultModelManager } from \"~/modelManager\";\nimport { createCrud, CrudParams } from \"~/crud\";\nimport { createGraphQLFields } from \"~/graphqlFields\";\nimport { createValidators } from \"~/validators\";\nimport { createDefaultStorageTransform } from \"~/storage/default\";\nimport { createObjectStorageTransform } from \"~/storage/object\";\nimport {\n createContextParameterPlugin,\n createHeaderParameterPlugin,\n createPathParameterPlugin\n} from \"~/parameters\";\nimport { createContextPlugin } from \"~/context\";\nimport {\n entryFieldFromStorageTransform,\n entryFromStorageTransform,\n entryToStorageTransform\n} from \"./utils/entryStorage\";\nimport { createFieldConverters } from \"~/fieldConverters\";\n\nexport type CreateHeadlessCmsGraphQLParams = CreateGraphQLParams;\nexport const createHeadlessCmsGraphQL = (params: CreateHeadlessCmsGraphQLParams = {}) => {\n return [\n /**\n * PathParameter plugins are used to determine the type of the cms endpoint\n */\n createPathParameterPlugin(),\n createHeaderParameterPlugin(),\n createContextParameterPlugin(),\n /**\n * At this point we can create, or not create, CMS GraphQL Schema.\n */\n baseCreateGraphQL(params)\n ];\n};\n\nexport type ContentContextParams = CrudParams;\nexport const createHeadlessCmsContext = (params: ContentContextParams) => {\n return [\n /**\n * Context for all Lambdas - everything is loaded now.\n */\n createContextPlugin(),\n createDefaultModelManager(),\n /**\n *\n */\n createCrud(params),\n createGraphQLFields(),\n createFieldConverters(),\n createValidators(),\n createDefaultStorageTransform(),\n createObjectStorageTransform(),\n createUpgrades()\n ];\n};\nexport * from \"~/graphqlFields\";\nexport * from \"~/plugins\";\nexport { entryToStorageTransform, entryFieldFromStorageTransform, entryFromStorageTransform };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAqDA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AApDA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AAKA;;AAuCA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AApCO,MAAMA,wBAAwB,GAAG,CAACC,MAAsC,GAAG,EAA1C,KAAiD;EACrF,OAAO;EACH;AACR;AACA;EACQ,IAAAC,qCAAA,GAJG,EAKH,IAAAC,uCAAA,GALG,EAMH,IAAAC,wCAAA,GANG;EAOH;AACR;AACA;EACQ,IAAAC,sBAAA,EAAkBJ,MAAlB,CAVG,CAAP;AAYH,CAbM;;;;AAgBA,MAAMK,wBAAwB,GAAIL,MAAD,IAAkC;EACtE,OAAO;EACH;AACR;AACA;EACQ,IAAAM,4BAAA,GAJG,EAKH,IAAAC,uCAAA,GALG;EAMH;AACR;AACA;EACQ,IAAAC,gBAAA,EAAWR,MAAX,CATG,EAUH,IAAAS,kCAAA,GAVG,EAWH,IAAAC,sCAAA,GAXG,EAYH,IAAAC,4BAAA,GAZG,EAaH,IAAAC,sCAAA,GAbG,EAcH,IAAAC,oCAAA,GAdG,EAeH,IAAAC,wBAAA,GAfG,CAAP;AAiBH,CAlBM"}
1
+ {"version":3,"names":["createHeadlessCmsGraphQL","params","createPathParameterPlugin","createHeaderParameterPlugin","createContextParameterPlugin","baseCreateGraphQL","createHeadlessCmsContext","createContextPlugin","createDefaultModelManager","createGraphQLFields","createFieldConverters","createValidators","createDefaultStorageTransform","createObjectStorageTransform","createDynamicZoneStorageTransform","createUpgrades"],"sources":["index.ts"],"sourcesContent":["import { createGraphQL as baseCreateGraphQL, CreateGraphQLParams } from \"~/graphql\";\nimport { createUpgrades } from \"~/upgrades\";\nimport { createDefaultModelManager } from \"~/modelManager\";\nimport { createGraphQLFields } from \"~/graphqlFields\";\nimport { createValidators } from \"~/validators\";\nimport { createDefaultStorageTransform } from \"~/storage/default\";\nimport { createObjectStorageTransform } from \"~/storage/object\";\nimport { createDynamicZoneStorageTransform } from \"~/graphqlFields/dynamicZone/dynamicZoneStorage\";\nimport {\n createContextParameterPlugin,\n createHeaderParameterPlugin,\n createPathParameterPlugin\n} from \"~/parameters\";\nimport { createContextPlugin, CrudParams } from \"~/context\";\nimport {\n entryFieldFromStorageTransform,\n entryFromStorageTransform,\n entryToStorageTransform\n} from \"./utils/entryStorage\";\nimport { createFieldConverters } from \"~/fieldConverters\";\n\nexport type CreateHeadlessCmsGraphQLParams = CreateGraphQLParams;\nexport const createHeadlessCmsGraphQL = (params: CreateHeadlessCmsGraphQLParams = {}) => {\n return [\n /**\n * PathParameter plugins are used to determine the type of the cms endpoint\n */\n createPathParameterPlugin(),\n createHeaderParameterPlugin(),\n createContextParameterPlugin(),\n /**\n * At this point we can create, or not create, CMS GraphQL Schema.\n */\n ...baseCreateGraphQL(params)\n ];\n};\n\nexport type ContentContextParams = CrudParams;\nexport const createHeadlessCmsContext = (params: ContentContextParams) => {\n return [\n /**\n * Context for all Lambdas - everything is loaded now.\n */\n createContextPlugin(params),\n createDefaultModelManager(),\n createGraphQLFields(),\n createFieldConverters(),\n createValidators(),\n createDefaultStorageTransform(),\n createObjectStorageTransform(),\n createDynamicZoneStorageTransform(),\n createUpgrades()\n ];\n};\nexport * from \"~/graphqlFields\";\nexport * from \"~/plugins\";\nexport { entryToStorageTransform, entryFieldFromStorageTransform, entryFromStorageTransform };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAmDA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AAlDA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AAKA;;AAoCA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AAjCO,MAAMA,wBAAwB,GAAG,CAACC,MAAsC,GAAG,EAA1C,KAAiD;EACrF,OAAO;EACH;AACR;AACA;EACQ,IAAAC,qCAAA,GAJG,EAKH,IAAAC,uCAAA,GALG,EAMH,IAAAC,wCAAA,GANG;EAOH;AACR;AACA;EACQ,GAAG,IAAAC,sBAAA,EAAkBJ,MAAlB,CAVA,CAAP;AAYH,CAbM;;;;AAgBA,MAAMK,wBAAwB,GAAIL,MAAD,IAAkC;EACtE,OAAO;EACH;AACR;AACA;EACQ,IAAAM,4BAAA,EAAoBN,MAApB,CAJG,EAKH,IAAAO,uCAAA,GALG,EAMH,IAAAC,kCAAA,GANG,EAOH,IAAAC,sCAAA,GAPG,EAQH,IAAAC,4BAAA,GARG,EASH,IAAAC,sCAAA,GATG,EAUH,IAAAC,oCAAA,GAVG,EAWH,IAAAC,qDAAA,GAXG,EAYH,IAAAC,wBAAA,GAZG,CAAP;AAcH,CAfM"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-headless-cms",
3
- "version": "0.0.0-unstable.40876133bb",
3
+ "version": "0.0.0-unstable.60e968001a",
4
4
  "main": "index.js",
5
5
  "keywords": [
6
6
  "cms:base"
@@ -19,25 +19,24 @@
19
19
  "license": "MIT",
20
20
  "dependencies": {
21
21
  "@babel/runtime": "7.19.0",
22
- "@commodo/fields": "1.1.2-beta.20",
23
22
  "@graphql-tools/schema": "7.1.5",
24
- "@webiny/api": "0.0.0-unstable.40876133bb",
25
- "@webiny/api-file-manager": "0.0.0-unstable.40876133bb",
26
- "@webiny/api-i18n": "0.0.0-unstable.40876133bb",
27
- "@webiny/api-i18n-ddb": "0.0.0-unstable.40876133bb",
28
- "@webiny/api-security": "0.0.0-unstable.40876133bb",
29
- "@webiny/api-tenancy": "0.0.0-unstable.40876133bb",
30
- "@webiny/api-upgrade": "0.0.0-unstable.40876133bb",
31
- "@webiny/error": "0.0.0-unstable.40876133bb",
32
- "@webiny/handler": "0.0.0-unstable.40876133bb",
33
- "@webiny/handler-aws": "0.0.0-unstable.40876133bb",
34
- "@webiny/handler-db": "0.0.0-unstable.40876133bb",
35
- "@webiny/handler-graphql": "0.0.0-unstable.40876133bb",
36
- "@webiny/plugins": "0.0.0-unstable.40876133bb",
37
- "@webiny/pubsub": "0.0.0-unstable.40876133bb",
38
- "@webiny/utils": "0.0.0-unstable.40876133bb",
39
- "@webiny/validation": "0.0.0-unstable.40876133bb",
40
- "commodo-fields-object": "1.0.6",
23
+ "@webiny/api": "0.0.0-unstable.60e968001a",
24
+ "@webiny/api-file-manager": "0.0.0-unstable.60e968001a",
25
+ "@webiny/api-i18n": "0.0.0-unstable.60e968001a",
26
+ "@webiny/api-i18n-ddb": "0.0.0-unstable.60e968001a",
27
+ "@webiny/api-security": "0.0.0-unstable.60e968001a",
28
+ "@webiny/api-tenancy": "0.0.0-unstable.60e968001a",
29
+ "@webiny/api-upgrade": "0.0.0-unstable.60e968001a",
30
+ "@webiny/error": "0.0.0-unstable.60e968001a",
31
+ "@webiny/handler": "0.0.0-unstable.60e968001a",
32
+ "@webiny/handler-aws": "0.0.0-unstable.60e968001a",
33
+ "@webiny/handler-db": "0.0.0-unstable.60e968001a",
34
+ "@webiny/handler-graphql": "0.0.0-unstable.60e968001a",
35
+ "@webiny/plugins": "0.0.0-unstable.60e968001a",
36
+ "@webiny/pubsub": "0.0.0-unstable.60e968001a",
37
+ "@webiny/utils": "0.0.0-unstable.60e968001a",
38
+ "@webiny/validation": "0.0.0-unstable.60e968001a",
39
+ "code-frame": "5.0.0",
41
40
  "dataloader": "2.1.0",
42
41
  "dot-prop": "6.0.1",
43
42
  "graphql-tag": "2.12.6",
@@ -46,17 +45,18 @@
46
45
  "p-reduce": "2.1.0",
47
46
  "pluralize": "8.0.0",
48
47
  "semver": "6.3.0",
49
- "slugify": "1.6.5"
48
+ "slugify": "1.6.5",
49
+ "zod": "3.20.2"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@babel/cli": "^7.19.3",
53
53
  "@babel/core": "^7.19.3",
54
54
  "@babel/preset-env": "^7.19.4",
55
- "@webiny/api-security-so-ddb": "^0.0.0-unstable.40876133bb",
56
- "@webiny/api-tenancy-so-ddb": "^0.0.0-unstable.40876133bb",
57
- "@webiny/api-wcp": "^0.0.0-unstable.40876133bb",
58
- "@webiny/cli": "^0.0.0-unstable.40876133bb",
59
- "@webiny/project-utils": "^0.0.0-unstable.40876133bb",
55
+ "@webiny/api-security-so-ddb": "^0.0.0-unstable.60e968001a",
56
+ "@webiny/api-tenancy-so-ddb": "^0.0.0-unstable.60e968001a",
57
+ "@webiny/api-wcp": "^0.0.0-unstable.60e968001a",
58
+ "@webiny/cli": "^0.0.0-unstable.60e968001a",
59
+ "@webiny/project-utils": "^0.0.0-unstable.60e968001a",
60
60
  "apollo-graphql": "^0.9.5",
61
61
  "get-yarn-workspaces": "^1.0.2",
62
62
  "graphql": "^15.7.2",
@@ -76,5 +76,5 @@
76
76
  "build": "yarn webiny run build",
77
77
  "watch": "yarn webiny run watch"
78
78
  },
79
- "gitHead": "f33811072795d25c5787ae39808e75e3312fb247"
79
+ "gitHead": "60e968001a7897edd990fe7d7eecf7dd0a1c2977"
80
80
  }
@@ -0,0 +1,5 @@
1
+ import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
2
+ import { CmsContext } from "../types";
3
+ export declare class CmsGraphQLSchemaPlugin<T = CmsContext> extends GraphQLSchemaPlugin<T> {
4
+ static type: string;
5
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.CmsGraphQLSchemaPlugin = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _handlerGraphql = require("@webiny/handler-graphql");
13
+
14
+ class CmsGraphQLSchemaPlugin extends _handlerGraphql.GraphQLSchemaPlugin {}
15
+
16
+ exports.CmsGraphQLSchemaPlugin = CmsGraphQLSchemaPlugin;
17
+ (0, _defineProperty2.default)(CmsGraphQLSchemaPlugin, "type", "cms.graphql.schema");
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CmsGraphQLSchemaPlugin","GraphQLSchemaPlugin"],"sources":["CmsGraphQLSchemaPlugin.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { CmsContext } from \"~/types\";\n\nexport class CmsGraphQLSchemaPlugin<T = CmsContext> extends GraphQLSchemaPlugin<T> {\n public static override type = \"cms.graphql.schema\";\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AAGO,MAAMA,sBAAN,SAAqDC,mCAArD,CAA4E;;;8BAAtED,sB,UACqB,oB"}
@@ -0,0 +1,20 @@
1
+ import { Plugin } from "@webiny/plugins";
2
+ import { CmsModel } from "../types";
3
+ interface CmsGraphQLSchemaSorterPluginCallableParams {
4
+ model: CmsModel;
5
+ sorters: string[];
6
+ }
7
+ interface CmsGraphQLSchemaSorterPluginCallable {
8
+ (params: CmsGraphQLSchemaSorterPluginCallableParams): string[];
9
+ }
10
+ export declare class CmsGraphQLSchemaSorterPlugin extends Plugin {
11
+ static readonly type: string;
12
+ private readonly cb;
13
+ constructor(cb: CmsGraphQLSchemaSorterPluginCallable);
14
+ /**
15
+ * Method must return new sorting array. Or existing one if no changes are made.
16
+ */
17
+ createSorter(params: CmsGraphQLSchemaSorterPluginCallableParams): string[];
18
+ }
19
+ export declare const createCmsGraphQLSchemaSorterPlugin: (cb: CmsGraphQLSchemaSorterPluginCallable) => CmsGraphQLSchemaSorterPlugin;
20
+ export {};
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.createCmsGraphQLSchemaSorterPlugin = exports.CmsGraphQLSchemaSorterPlugin = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _plugins = require("@webiny/plugins");
13
+
14
+ class CmsGraphQLSchemaSorterPlugin extends _plugins.Plugin {
15
+ constructor(cb) {
16
+ super();
17
+ (0, _defineProperty2.default)(this, "cb", void 0);
18
+ this.cb = cb;
19
+ }
20
+ /**
21
+ * Method must return new sorting array. Or existing one if no changes are made.
22
+ */
23
+
24
+
25
+ createSorter(params) {
26
+ return this.cb(params);
27
+ }
28
+
29
+ }
30
+
31
+ exports.CmsGraphQLSchemaSorterPlugin = CmsGraphQLSchemaSorterPlugin;
32
+ (0, _defineProperty2.default)(CmsGraphQLSchemaSorterPlugin, "type", "cms.graphql.schema.sorter");
33
+
34
+ const createCmsGraphQLSchemaSorterPlugin = cb => {
35
+ return new CmsGraphQLSchemaSorterPlugin(cb);
36
+ };
37
+
38
+ exports.createCmsGraphQLSchemaSorterPlugin = createCmsGraphQLSchemaSorterPlugin;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CmsGraphQLSchemaSorterPlugin","Plugin","constructor","cb","createSorter","params","createCmsGraphQLSchemaSorterPlugin"],"sources":["CmsGraphQLSchemaSorterPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { CmsModel } from \"~/types\";\n\ninterface CmsGraphQLSchemaSorterPluginCallableParams {\n model: CmsModel;\n sorters: string[];\n}\ninterface CmsGraphQLSchemaSorterPluginCallable {\n (params: CmsGraphQLSchemaSorterPluginCallableParams): string[];\n}\nexport class CmsGraphQLSchemaSorterPlugin extends Plugin {\n public static override readonly type: string = \"cms.graphql.schema.sorter\";\n\n private readonly cb: CmsGraphQLSchemaSorterPluginCallable;\n public constructor(cb: CmsGraphQLSchemaSorterPluginCallable) {\n super();\n\n this.cb = cb;\n }\n /**\n * Method must return new sorting array. Or existing one if no changes are made.\n */\n public createSorter(params: CmsGraphQLSchemaSorterPluginCallableParams): string[] {\n return this.cb(params);\n }\n}\n\nexport const createCmsGraphQLSchemaSorterPlugin = (\n cb: CmsGraphQLSchemaSorterPluginCallable\n): CmsGraphQLSchemaSorterPlugin => {\n return new CmsGraphQLSchemaSorterPlugin(cb);\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AAUO,MAAMA,4BAAN,SAA2CC,eAA3C,CAAkD;EAI9CC,WAAW,CAACC,EAAD,EAA2C;IACzD;IADyD;IAGzD,KAAKA,EAAL,GAAUA,EAAV;EACH;EACD;AACJ;AACA;;;EACWC,YAAY,CAACC,MAAD,EAA+D;IAC9E,OAAO,KAAKF,EAAL,CAAQE,MAAR,CAAP;EACH;;AAdoD;;;8BAA5CL,4B,UACsC,2B;;AAgB5C,MAAMM,kCAAkC,GAC3CH,EAD8C,IAEf;EAC/B,OAAO,IAAIH,4BAAJ,CAAiCG,EAAjC,CAAP;AACH,CAJM"}
@@ -1,8 +1,8 @@
1
1
  import { Plugin } from "@webiny/plugins";
2
2
  import { CmsEntryValues, CmsModelFieldWithParent } from "../types";
3
3
  import { ConverterCollection } from "../utils/converters/ConverterCollection";
4
- export interface ConvertParams {
5
- field: CmsModelFieldWithParent;
4
+ export interface ConvertParams<F = CmsModelFieldWithParent> {
5
+ field: F;
6
6
  value: any;
7
7
  converterCollection: ConverterCollection;
8
8
  }
@@ -1 +1 @@
1
- {"version":3,"names":["CmsModelFieldConverterPlugin","Plugin"],"sources":["CmsModelFieldConverterPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { CmsEntryValues, CmsModelFieldWithParent } from \"~/types\";\nimport { ConverterCollection } from \"~/utils/converters/ConverterCollection\";\n\nexport interface ConvertParams {\n field: CmsModelFieldWithParent;\n value: any;\n converterCollection: ConverterCollection;\n}\n\nexport abstract class CmsModelFieldConverterPlugin extends Plugin {\n public static override type = \"cms.field.converter\";\n\n public abstract getFieldType(): string;\n\n public abstract convertToStorage(params: ConvertParams): CmsEntryValues;\n public abstract convertFromStorage(params: ConvertParams): CmsEntryValues;\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AAUO,MAAeA,4BAAf,SAAoDC,eAApD,CAA2D;;;8BAA5CD,4B,UACY,qB"}
1
+ {"version":3,"names":["CmsModelFieldConverterPlugin","Plugin"],"sources":["CmsModelFieldConverterPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { CmsEntryValues, CmsModelFieldWithParent } from \"~/types\";\nimport { ConverterCollection } from \"~/utils/converters/ConverterCollection\";\n\nexport interface ConvertParams<F = CmsModelFieldWithParent> {\n field: F;\n value: any;\n converterCollection: ConverterCollection;\n}\n\nexport abstract class CmsModelFieldConverterPlugin extends Plugin {\n public static override type = \"cms.field.converter\";\n\n public abstract getFieldType(): string;\n\n public abstract convertToStorage(params: ConvertParams): CmsEntryValues;\n public abstract convertFromStorage(params: ConvertParams): CmsEntryValues;\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AAUO,MAAeA,4BAAf,SAAoDC,eAApD,CAA2D;;;8BAA5CD,4B,UACY,qB"}
@@ -1,31 +1,31 @@
1
1
  import { Plugin } from "@webiny/plugins/Plugin";
2
2
  import { CmsModel, CmsModelField } from "../types";
3
3
  import { PluginsContainer } from "@webiny/plugins";
4
- export interface ToStorageParams<T> {
4
+ export interface ToStorageParams<T, F extends CmsModelField> {
5
5
  model: CmsModel;
6
- field: CmsModelField;
6
+ field: F;
7
7
  value: T;
8
8
  getStoragePlugin(fieldType: string): StorageTransformPlugin<T>;
9
9
  plugins: PluginsContainer;
10
10
  }
11
- export interface FromStorageParams<T> {
11
+ export interface FromStorageParams<T, F extends CmsModelField> {
12
12
  model: CmsModel;
13
- field: CmsModelField;
13
+ field: Partial<F> & Pick<F, "id" | "fieldId" | "storageId" | "type" | "settings">;
14
14
  value: T;
15
15
  getStoragePlugin(fieldType: string): StorageTransformPlugin<T>;
16
16
  plugins: PluginsContainer;
17
17
  }
18
- export interface StorageTransformPluginParams<T, R> {
18
+ export interface StorageTransformPluginParams<T, R, F extends CmsModelField> {
19
19
  name?: string;
20
20
  fieldType: string;
21
- toStorage: (params: ToStorageParams<T>) => Promise<R>;
22
- fromStorage: (params: FromStorageParams<R>) => Promise<T>;
21
+ toStorage: (params: ToStorageParams<T, F>) => Promise<R>;
22
+ fromStorage: (params: FromStorageParams<R, F>) => Promise<T>;
23
23
  }
24
- export declare class StorageTransformPlugin<T = any, R = any> extends Plugin {
24
+ export declare class StorageTransformPlugin<T = any, R = any, F extends CmsModelField = CmsModelField> extends Plugin {
25
25
  static readonly type: string;
26
26
  get fieldType(): string;
27
27
  private readonly config;
28
- constructor(config: StorageTransformPluginParams<T, R>);
29
- toStorage(params: ToStorageParams<T>): Promise<R>;
30
- fromStorage(params: FromStorageParams<R>): Promise<T>;
28
+ constructor(config: StorageTransformPluginParams<T, R, F>);
29
+ toStorage(params: ToStorageParams<T, F>): Promise<R>;
30
+ fromStorage(params: FromStorageParams<R, F>): Promise<T>;
31
31
  }
@@ -1 +1 @@
1
- {"version":3,"names":["StorageTransformPlugin","Plugin","fieldType","config","constructor","name","toStorage","params","fromStorage"],"sources":["StorageTransformPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins/Plugin\";\nimport { CmsModel, CmsModelField } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\nexport interface ToStorageParams<T> {\n model: CmsModel;\n field: CmsModelField;\n value: T;\n getStoragePlugin(fieldType: string): StorageTransformPlugin<T>;\n plugins: PluginsContainer;\n}\n\nexport interface FromStorageParams<T> {\n model: CmsModel;\n field: CmsModelField;\n value: T;\n getStoragePlugin(fieldType: string): StorageTransformPlugin<T>;\n plugins: PluginsContainer;\n}\n\nexport interface StorageTransformPluginParams<T, R> {\n name?: string;\n fieldType: string;\n toStorage: (params: ToStorageParams<T>) => Promise<R>;\n fromStorage: (params: FromStorageParams<R>) => Promise<T>;\n}\nexport class StorageTransformPlugin<T = any, R = any> extends Plugin {\n public static override readonly type: string = \"cms.storage.transform.plugin\";\n public get fieldType(): string {\n return this.config.fieldType;\n }\n\n private readonly config: StorageTransformPluginParams<T, R>;\n\n public constructor(config: StorageTransformPluginParams<T, R>) {\n super();\n this.name = config.name;\n this.config = config;\n }\n\n public toStorage(params: ToStorageParams<T>): Promise<R> {\n return this.config.toStorage(params);\n }\n\n public fromStorage(params: FromStorageParams<R>): Promise<T> {\n return this.config.fromStorage(params);\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AA0BO,MAAMA,sBAAN,SAAuDC,cAAvD,CAA8D;EAE7C,IAATC,SAAS,GAAW;IAC3B,OAAO,KAAKC,MAAL,CAAYD,SAAnB;EACH;;EAIME,WAAW,CAACD,MAAD,EAA6C;IAC3D;IAD2D;IAE3D,KAAKE,IAAL,GAAYF,MAAM,CAACE,IAAnB;IACA,KAAKF,MAAL,GAAcA,MAAd;EACH;;EAEMG,SAAS,CAACC,MAAD,EAAyC;IACrD,OAAO,KAAKJ,MAAL,CAAYG,SAAZ,CAAsBC,MAAtB,CAAP;EACH;;EAEMC,WAAW,CAACD,MAAD,EAA2C;IACzD,OAAO,KAAKJ,MAAL,CAAYK,WAAZ,CAAwBD,MAAxB,CAAP;EACH;;AApBgE;;;8BAAxDP,sB,UACsC,8B"}
1
+ {"version":3,"names":["StorageTransformPlugin","Plugin","fieldType","config","constructor","name","toStorage","params","fromStorage"],"sources":["StorageTransformPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins/Plugin\";\nimport { CmsModel, CmsModelField } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\nexport interface ToStorageParams<T, F extends CmsModelField> {\n model: CmsModel;\n field: F;\n value: T;\n getStoragePlugin(fieldType: string): StorageTransformPlugin<T>;\n plugins: PluginsContainer;\n}\n\nexport interface FromStorageParams<T, F extends CmsModelField> {\n model: CmsModel;\n field: Partial<F> & Pick<F, \"id\" | \"fieldId\" | \"storageId\" | \"type\" | \"settings\">;\n value: T;\n getStoragePlugin(fieldType: string): StorageTransformPlugin<T>;\n plugins: PluginsContainer;\n}\n\nexport interface StorageTransformPluginParams<T, R, F extends CmsModelField> {\n name?: string;\n fieldType: string;\n toStorage: (params: ToStorageParams<T, F>) => Promise<R>;\n fromStorage: (params: FromStorageParams<R, F>) => Promise<T>;\n}\nexport class StorageTransformPlugin<\n T = any,\n R = any,\n F extends CmsModelField = CmsModelField\n> extends Plugin {\n public static override readonly type: string = \"cms.storage.transform.plugin\";\n public get fieldType(): string {\n return this.config.fieldType;\n }\n\n private readonly config: StorageTransformPluginParams<T, R, F>;\n\n public constructor(config: StorageTransformPluginParams<T, R, F>) {\n super();\n this.name = config.name;\n this.config = config;\n }\n\n public toStorage(params: ToStorageParams<T, F>): Promise<R> {\n return this.config.toStorage(params);\n }\n\n public fromStorage(params: FromStorageParams<R, F>): Promise<T> {\n return this.config.fromStorage(params);\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AA0BO,MAAMA,sBAAN,SAIGC,cAJH,CAIU;EAEO,IAATC,SAAS,GAAW;IAC3B,OAAO,KAAKC,MAAL,CAAYD,SAAnB;EACH;;EAIME,WAAW,CAACD,MAAD,EAAgD;IAC9D;IAD8D;IAE9D,KAAKE,IAAL,GAAYF,MAAM,CAACE,IAAnB;IACA,KAAKF,MAAL,GAAcA,MAAd;EACH;;EAEMG,SAAS,CAACC,MAAD,EAA4C;IACxD,OAAO,KAAKJ,MAAL,CAAYG,SAAZ,CAAsBC,MAAtB,CAAP;EACH;;EAEMC,WAAW,CAACD,MAAD,EAA8C;IAC5D,OAAO,KAAKJ,MAAL,CAAYK,WAAZ,CAAwBD,MAAxB,CAAP;EACH;;AApBY;;;8BAJJP,sB,UAKsC,8B"}
@@ -3,3 +3,5 @@ export * from "./CmsModelPlugin";
3
3
  export * from "./StorageTransformPlugin";
4
4
  export * from "./CmsParametersPlugin";
5
5
  export * from "./CmsModelFieldConverterPlugin";
6
+ export * from "./CmsGraphQLSchemaPlugin";
7
+ export * from "./CmsGraphQLSchemaSorterPlugin";
package/plugins/index.js CHANGED
@@ -67,4 +67,30 @@ Object.keys(_CmsModelFieldConverterPlugin).forEach(function (key) {
67
67
  return _CmsModelFieldConverterPlugin[key];
68
68
  }
69
69
  });
70
+ });
71
+
72
+ var _CmsGraphQLSchemaPlugin = require("./CmsGraphQLSchemaPlugin");
73
+
74
+ Object.keys(_CmsGraphQLSchemaPlugin).forEach(function (key) {
75
+ if (key === "default" || key === "__esModule") return;
76
+ if (key in exports && exports[key] === _CmsGraphQLSchemaPlugin[key]) return;
77
+ Object.defineProperty(exports, key, {
78
+ enumerable: true,
79
+ get: function () {
80
+ return _CmsGraphQLSchemaPlugin[key];
81
+ }
82
+ });
83
+ });
84
+
85
+ var _CmsGraphQLSchemaSorterPlugin = require("./CmsGraphQLSchemaSorterPlugin");
86
+
87
+ Object.keys(_CmsGraphQLSchemaSorterPlugin).forEach(function (key) {
88
+ if (key === "default" || key === "__esModule") return;
89
+ if (key in exports && exports[key] === _CmsGraphQLSchemaSorterPlugin[key]) return;
90
+ Object.defineProperty(exports, key, {
91
+ enumerable: true,
92
+ get: function () {
93
+ return _CmsGraphQLSchemaSorterPlugin[key];
94
+ }
95
+ });
70
96
  });
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./CmsGroupPlugin\";\nexport * from \"./CmsModelPlugin\";\nexport * from \"./StorageTransformPlugin\";\nexport * from \"./CmsParametersPlugin\";\nexport * from \"./CmsModelFieldConverterPlugin\";\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./CmsGroupPlugin\";\nexport * from \"./CmsModelPlugin\";\nexport * from \"./StorageTransformPlugin\";\nexport * from \"./CmsParametersPlugin\";\nexport * from \"./CmsModelFieldConverterPlugin\";\nexport * from \"./CmsGraphQLSchemaPlugin\";\nexport * from \"./CmsGraphQLSchemaSorterPlugin\";\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
package/storage/object.js CHANGED
@@ -15,6 +15,8 @@ var _pMap = _interopRequireDefault(require("p-map"));
15
15
 
16
16
  var _StorageTransformPlugin = require("../plugins/StorageTransformPlugin");
17
17
 
18
+ var _getBaseFieldType = require("../utils/getBaseFieldType");
19
+
18
20
  const processValue = async params => {
19
21
  const {
20
22
  fields,
@@ -25,10 +27,11 @@ const processValue = async params => {
25
27
  operation
26
28
  } = params;
27
29
  return await (0, _pReduce.default)(fields, async (values, field) => {
28
- const plugin = getStoragePlugin(field.type);
30
+ const baseType = (0, _getBaseFieldType.getBaseFieldType)(field);
31
+ const plugin = getStoragePlugin(baseType);
29
32
 
30
33
  if (!plugin) {
31
- throw new Error(`Missing storage plugin for field type "${field.type}".`);
34
+ throw new Error(`Missing storage plugin for field type "${baseType}".`);
32
35
  }
33
36
 
34
37
  const value = await plugin[operation]({
@@ -1 +1 @@
1
- {"version":3,"names":["processValue","params","fields","sourceValue","getStoragePlugin","plugins","model","operation","pReduce","values","field","plugin","type","Error","value","fieldId","createObjectStorageTransform","StorageTransformPlugin","name","fieldType","toStorage","settings","multipleValues","pMap","fromStorage"],"sources":["object.ts"],"sourcesContent":["import pReduce from \"p-reduce\";\nimport pMap from \"p-map\";\nimport { CmsModel, CmsModelField } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { StorageTransformPlugin } from \"~/plugins/StorageTransformPlugin\";\n\ninterface ProcessValueParams {\n fields: CmsModelField[];\n sourceValue: Record<string, any>;\n getStoragePlugin: (fieldType: string) => StorageTransformPlugin;\n plugins: PluginsContainer;\n model: CmsModel;\n operation: \"toStorage\" | \"fromStorage\";\n}\ninterface ProcessValue {\n (params: ProcessValueParams): Promise<Record<string, any>>;\n}\n\nconst processValue: ProcessValue = async params => {\n const { fields, sourceValue, getStoragePlugin, plugins, model, operation } = params;\n return await pReduce(\n fields,\n async (values, field) => {\n const plugin = getStoragePlugin(field.type);\n if (!plugin) {\n throw new Error(`Missing storage plugin for field type \"${field.type}\".`);\n }\n const value = await plugin[operation]({\n plugins,\n model,\n field,\n value: sourceValue[field.fieldId],\n getStoragePlugin\n });\n return { ...values, [field.fieldId]: value };\n },\n {}\n );\n};\n\nexport const createObjectStorageTransform = (): StorageTransformPlugin => {\n return new StorageTransformPlugin({\n name: \"headless-cms.storage-transform.object.default\",\n fieldType: \"object\",\n toStorage: async ({ field, value, getStoragePlugin, model, plugins }) => {\n if (!value) {\n return null;\n }\n\n const fields = (field.settings?.fields || []) as CmsModelField[];\n\n if (field.multipleValues) {\n return await pMap(value as Record<string, any>[], value =>\n processValue({\n sourceValue: value,\n getStoragePlugin,\n model,\n plugins,\n operation: \"toStorage\",\n fields\n })\n );\n }\n\n return await processValue({\n sourceValue: value,\n getStoragePlugin,\n model,\n plugins,\n operation: \"toStorage\",\n fields\n });\n },\n fromStorage: async ({ field, value, getStoragePlugin, plugins, model }) => {\n if (!value) {\n return null;\n }\n\n const fields = (field.settings?.fields || []) as CmsModelField[];\n\n if (field.multipleValues) {\n return pMap(value as Record<string, any>[], value =>\n processValue({\n sourceValue: value,\n getStoragePlugin,\n model,\n plugins,\n operation: \"fromStorage\",\n fields\n })\n );\n }\n\n return processValue({\n sourceValue: value,\n getStoragePlugin,\n model,\n plugins,\n operation: \"fromStorage\",\n fields\n });\n }\n });\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAGA;;AAcA,MAAMA,YAA0B,GAAG,MAAMC,MAAN,IAAgB;EAC/C,MAAM;IAAEC,MAAF;IAAUC,WAAV;IAAuBC,gBAAvB;IAAyCC,OAAzC;IAAkDC,KAAlD;IAAyDC;EAAzD,IAAuEN,MAA7E;EACA,OAAO,MAAM,IAAAO,gBAAA,EACTN,MADS,EAET,OAAOO,MAAP,EAAeC,KAAf,KAAyB;IACrB,MAAMC,MAAM,GAAGP,gBAAgB,CAACM,KAAK,CAACE,IAAP,CAA/B;;IACA,IAAI,CAACD,MAAL,EAAa;MACT,MAAM,IAAIE,KAAJ,CAAW,0CAAyCH,KAAK,CAACE,IAAK,IAA/D,CAAN;IACH;;IACD,MAAME,KAAK,GAAG,MAAMH,MAAM,CAACJ,SAAD,CAAN,CAAkB;MAClCF,OADkC;MAElCC,KAFkC;MAGlCI,KAHkC;MAIlCI,KAAK,EAAEX,WAAW,CAACO,KAAK,CAACK,OAAP,CAJgB;MAKlCX;IALkC,CAAlB,CAApB;IAOA,mEAAYK,MAAZ;MAAoB,CAACC,KAAK,CAACK,OAAP,GAAiBD;IAArC;EACH,CAfQ,EAgBT,EAhBS,CAAb;AAkBH,CApBD;;AAsBO,MAAME,4BAA4B,GAAG,MAA8B;EACtE,OAAO,IAAIC,8CAAJ,CAA2B;IAC9BC,IAAI,EAAE,+CADwB;IAE9BC,SAAS,EAAE,QAFmB;IAG9BC,SAAS,EAAE,OAAO;MAAEV,KAAF;MAASI,KAAT;MAAgBV,gBAAhB;MAAkCE,KAAlC;MAAyCD;IAAzC,CAAP,KAA8D;MAAA;;MACrE,IAAI,CAACS,KAAL,EAAY;QACR,OAAO,IAAP;MACH;;MAED,MAAMZ,MAAM,GAAI,oBAAAQ,KAAK,CAACW,QAAN,oEAAgBnB,MAAhB,KAA0B,EAA1C;;MAEA,IAAIQ,KAAK,CAACY,cAAV,EAA0B;QACtB,OAAO,MAAM,IAAAC,aAAA,EAAKT,KAAL,EAAqCA,KAAK,IACnDd,YAAY,CAAC;UACTG,WAAW,EAAEW,KADJ;UAETV,gBAFS;UAGTE,KAHS;UAITD,OAJS;UAKTE,SAAS,EAAE,WALF;UAMTL;QANS,CAAD,CADH,CAAb;MAUH;;MAED,OAAO,MAAMF,YAAY,CAAC;QACtBG,WAAW,EAAEW,KADS;QAEtBV,gBAFsB;QAGtBE,KAHsB;QAItBD,OAJsB;QAKtBE,SAAS,EAAE,WALW;QAMtBL;MANsB,CAAD,CAAzB;IAQH,CA/B6B;IAgC9BsB,WAAW,EAAE,OAAO;MAAEd,KAAF;MAASI,KAAT;MAAgBV,gBAAhB;MAAkCC,OAAlC;MAA2CC;IAA3C,CAAP,KAA8D;MAAA;;MACvE,IAAI,CAACQ,KAAL,EAAY;QACR,OAAO,IAAP;MACH;;MAED,MAAMZ,MAAM,GAAI,qBAAAQ,KAAK,CAACW,QAAN,sEAAgBnB,MAAhB,KAA0B,EAA1C;;MAEA,IAAIQ,KAAK,CAACY,cAAV,EAA0B;QACtB,OAAO,IAAAC,aAAA,EAAKT,KAAL,EAAqCA,KAAK,IAC7Cd,YAAY,CAAC;UACTG,WAAW,EAAEW,KADJ;UAETV,gBAFS;UAGTE,KAHS;UAITD,OAJS;UAKTE,SAAS,EAAE,aALF;UAMTL;QANS,CAAD,CADT,CAAP;MAUH;;MAED,OAAOF,YAAY,CAAC;QAChBG,WAAW,EAAEW,KADG;QAEhBV,gBAFgB;QAGhBE,KAHgB;QAIhBD,OAJgB;QAKhBE,SAAS,EAAE,aALK;QAMhBL;MANgB,CAAD,CAAnB;IAQH;EA5D6B,CAA3B,CAAP;AA8DH,CA/DM"}
1
+ {"version":3,"names":["processValue","params","fields","sourceValue","getStoragePlugin","plugins","model","operation","pReduce","values","field","baseType","getBaseFieldType","plugin","Error","value","fieldId","createObjectStorageTransform","StorageTransformPlugin","name","fieldType","toStorage","settings","multipleValues","pMap","fromStorage"],"sources":["object.ts"],"sourcesContent":["import pReduce from \"p-reduce\";\nimport pMap from \"p-map\";\nimport { CmsModel, CmsModelField } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { StorageTransformPlugin } from \"~/plugins/StorageTransformPlugin\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\n\ninterface ProcessValueParams {\n fields: CmsModelField[];\n sourceValue: Record<string, any>;\n getStoragePlugin: (fieldType: string) => StorageTransformPlugin;\n plugins: PluginsContainer;\n model: CmsModel;\n operation: \"toStorage\" | \"fromStorage\";\n}\ninterface ProcessValue {\n (params: ProcessValueParams): Promise<Record<string, any>>;\n}\n\nconst processValue: ProcessValue = async params => {\n const { fields, sourceValue, getStoragePlugin, plugins, model, operation } = params;\n return await pReduce(\n fields,\n async (values, field) => {\n const baseType = getBaseFieldType(field);\n const plugin = getStoragePlugin(baseType);\n if (!plugin) {\n throw new Error(`Missing storage plugin for field type \"${baseType}\".`);\n }\n const value = await plugin[operation]({\n plugins,\n model,\n field,\n value: sourceValue[field.fieldId],\n getStoragePlugin\n });\n return { ...values, [field.fieldId]: value };\n },\n {}\n );\n};\n\nexport const createObjectStorageTransform = (): StorageTransformPlugin => {\n return new StorageTransformPlugin({\n name: \"headless-cms.storage-transform.object.default\",\n fieldType: \"object\",\n toStorage: async ({ field, value, getStoragePlugin, model, plugins }) => {\n if (!value) {\n return null;\n }\n\n const fields = (field.settings?.fields || []) as CmsModelField[];\n\n if (field.multipleValues) {\n return await pMap(value as Record<string, any>[], value =>\n processValue({\n sourceValue: value,\n getStoragePlugin,\n model,\n plugins,\n operation: \"toStorage\",\n fields\n })\n );\n }\n\n return await processValue({\n sourceValue: value,\n getStoragePlugin,\n model,\n plugins,\n operation: \"toStorage\",\n fields\n });\n },\n fromStorage: async ({ field, value, getStoragePlugin, plugins, model }) => {\n if (!value) {\n return null;\n }\n\n const fields = (field.settings?.fields || []) as CmsModelField[];\n\n if (field.multipleValues) {\n return pMap(value as Record<string, any>[], value =>\n processValue({\n sourceValue: value,\n getStoragePlugin,\n model,\n plugins,\n operation: \"fromStorage\",\n fields\n })\n );\n }\n\n return processValue({\n sourceValue: value,\n getStoragePlugin,\n model,\n plugins,\n operation: \"fromStorage\",\n fields\n });\n }\n });\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAGA;;AACA;;AAcA,MAAMA,YAA0B,GAAG,MAAMC,MAAN,IAAgB;EAC/C,MAAM;IAAEC,MAAF;IAAUC,WAAV;IAAuBC,gBAAvB;IAAyCC,OAAzC;IAAkDC,KAAlD;IAAyDC;EAAzD,IAAuEN,MAA7E;EACA,OAAO,MAAM,IAAAO,gBAAA,EACTN,MADS,EAET,OAAOO,MAAP,EAAeC,KAAf,KAAyB;IACrB,MAAMC,QAAQ,GAAG,IAAAC,kCAAA,EAAiBF,KAAjB,CAAjB;IACA,MAAMG,MAAM,GAAGT,gBAAgB,CAACO,QAAD,CAA/B;;IACA,IAAI,CAACE,MAAL,EAAa;MACT,MAAM,IAAIC,KAAJ,CAAW,0CAAyCH,QAAS,IAA7D,CAAN;IACH;;IACD,MAAMI,KAAK,GAAG,MAAMF,MAAM,CAACN,SAAD,CAAN,CAAkB;MAClCF,OADkC;MAElCC,KAFkC;MAGlCI,KAHkC;MAIlCK,KAAK,EAAEZ,WAAW,CAACO,KAAK,CAACM,OAAP,CAJgB;MAKlCZ;IALkC,CAAlB,CAApB;IAOA,mEAAYK,MAAZ;MAAoB,CAACC,KAAK,CAACM,OAAP,GAAiBD;IAArC;EACH,CAhBQ,EAiBT,EAjBS,CAAb;AAmBH,CArBD;;AAuBO,MAAME,4BAA4B,GAAG,MAA8B;EACtE,OAAO,IAAIC,8CAAJ,CAA2B;IAC9BC,IAAI,EAAE,+CADwB;IAE9BC,SAAS,EAAE,QAFmB;IAG9BC,SAAS,EAAE,OAAO;MAAEX,KAAF;MAASK,KAAT;MAAgBX,gBAAhB;MAAkCE,KAAlC;MAAyCD;IAAzC,CAAP,KAA8D;MAAA;;MACrE,IAAI,CAACU,KAAL,EAAY;QACR,OAAO,IAAP;MACH;;MAED,MAAMb,MAAM,GAAI,oBAAAQ,KAAK,CAACY,QAAN,oEAAgBpB,MAAhB,KAA0B,EAA1C;;MAEA,IAAIQ,KAAK,CAACa,cAAV,EAA0B;QACtB,OAAO,MAAM,IAAAC,aAAA,EAAKT,KAAL,EAAqCA,KAAK,IACnDf,YAAY,CAAC;UACTG,WAAW,EAAEY,KADJ;UAETX,gBAFS;UAGTE,KAHS;UAITD,OAJS;UAKTE,SAAS,EAAE,WALF;UAMTL;QANS,CAAD,CADH,CAAb;MAUH;;MAED,OAAO,MAAMF,YAAY,CAAC;QACtBG,WAAW,EAAEY,KADS;QAEtBX,gBAFsB;QAGtBE,KAHsB;QAItBD,OAJsB;QAKtBE,SAAS,EAAE,WALW;QAMtBL;MANsB,CAAD,CAAzB;IAQH,CA/B6B;IAgC9BuB,WAAW,EAAE,OAAO;MAAEf,KAAF;MAASK,KAAT;MAAgBX,gBAAhB;MAAkCC,OAAlC;MAA2CC;IAA3C,CAAP,KAA8D;MAAA;;MACvE,IAAI,CAACS,KAAL,EAAY;QACR,OAAO,IAAP;MACH;;MAED,MAAMb,MAAM,GAAI,qBAAAQ,KAAK,CAACY,QAAN,sEAAgBpB,MAAhB,KAA0B,EAA1C;;MAEA,IAAIQ,KAAK,CAACa,cAAV,EAA0B;QACtB,OAAO,IAAAC,aAAA,EAAKT,KAAL,EAAqCA,KAAK,IAC7Cf,YAAY,CAAC;UACTG,WAAW,EAAEY,KADJ;UAETX,gBAFS;UAGTE,KAHS;UAITD,OAJS;UAKTE,SAAS,EAAE,aALF;UAMTL;QANS,CAAD,CADT,CAAP;MAUH;;MAED,OAAOF,YAAY,CAAC;QAChBG,WAAW,EAAEY,KADG;QAEhBX,gBAFgB;QAGhBE,KAHgB;QAIhBD,OAJgB;QAKhBE,SAAS,EAAE,aALK;QAMhBL;MANgB,CAAD,CAAnB;IAQH;EA5D6B,CAA3B,CAAP;AA8DH,CA/DM"}