@webiny/api-headless-cms 0.0.0-unstable.c59b9cc5b9 → 0.0.0-unstable.c7dec08bb0

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 (80) hide show
  1. package/constants.d.ts +1 -0
  2. package/constants.js +8 -0
  3. package/constants.js.map +1 -0
  4. package/context.js +37 -5
  5. package/context.js.map +1 -1
  6. package/crud/contentEntry.crud.d.ts +4 -0
  7. package/crud/contentEntry.crud.js +155 -55
  8. package/crud/contentEntry.crud.js.map +1 -1
  9. package/crud/contentModel/validateModelFields.js +1 -1
  10. package/crud/contentModel/validateModelFields.js.map +1 -1
  11. package/crud/contentModel/validation.d.ts +76 -76
  12. package/crud/contentModel.crud.d.ts +2 -0
  13. package/crud/contentModel.crud.js +22 -12
  14. package/crud/contentModel.crud.js.map +1 -1
  15. package/crud/contentModelGroup/validation.d.ts +4 -4
  16. package/crud/contentModelGroup.crud.d.ts +2 -0
  17. package/crud/contentModelGroup.crud.js +41 -20
  18. package/crud/contentModelGroup.crud.js.map +1 -1
  19. package/crud/settings.crud.d.ts +2 -0
  20. package/crud/settings.crud.js +2 -6
  21. package/crud/settings.crud.js.map +1 -1
  22. package/graphql/getSchema.js +1 -1
  23. package/graphql/getSchema.js.map +1 -1
  24. package/graphql/index.d.ts +1 -1
  25. package/graphql/schema/baseSchema.js +16 -0
  26. package/graphql/schema/baseSchema.js.map +1 -1
  27. package/graphql/schema/contentEntries.js +6 -1
  28. package/graphql/schema/contentEntries.js.map +1 -1
  29. package/graphql/schema/createManageResolvers.d.ts +1 -1
  30. package/graphql/schema/createManageResolvers.js +10 -0
  31. package/graphql/schema/createManageResolvers.js.map +1 -1
  32. package/graphql/schema/createManageSDL.js +19 -4
  33. package/graphql/schema/createManageSDL.js.map +1 -1
  34. package/graphql/schema/createReadSDL.js +1 -0
  35. package/graphql/schema/createReadSDL.js.map +1 -1
  36. package/graphql/schema/resolvers/manage/resolveMove.d.ts +8 -0
  37. package/graphql/schema/resolvers/manage/resolveMove.js +30 -0
  38. package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -0
  39. package/graphql/system.d.ts +2 -5
  40. package/graphql/system.js +1 -11
  41. package/graphql/system.js.map +1 -1
  42. package/graphqlFields/number.js +1 -0
  43. package/graphqlFields/number.js.map +1 -1
  44. package/graphqlFields/object.js +2 -2
  45. package/graphqlFields/object.js.map +1 -1
  46. package/graphqlFields/text.js +2 -0
  47. package/graphqlFields/text.js.map +1 -1
  48. package/index.d.ts +1 -1
  49. package/package.json +19 -23
  50. package/types.d.ts +38 -5
  51. package/types.js.map +1 -1
  52. package/utils/createTypeFromFields.js +1 -1
  53. package/utils/createTypeFromFields.js.map +1 -1
  54. package/utils/permissions/EntriesPermissions.d.ts +4 -0
  55. package/utils/permissions/EntriesPermissions.js +9 -0
  56. package/utils/permissions/EntriesPermissions.js.map +1 -0
  57. package/utils/permissions/ModelGroupsPermissions.d.ts +11 -0
  58. package/utils/permissions/ModelGroupsPermissions.js +48 -0
  59. package/utils/permissions/ModelGroupsPermissions.js.map +1 -0
  60. package/utils/permissions/ModelsPermissions.d.ts +20 -0
  61. package/utils/permissions/ModelsPermissions.js +91 -0
  62. package/utils/permissions/ModelsPermissions.js.map +1 -0
  63. package/utils/permissions/SettingsPermissions.d.ts +4 -0
  64. package/utils/permissions/SettingsPermissions.js +9 -0
  65. package/utils/permissions/SettingsPermissions.js.map +1 -0
  66. package/utils/renderListFilterFields.d.ts +1 -0
  67. package/utils/renderListFilterFields.js +10 -4
  68. package/utils/renderListFilterFields.js.map +1 -1
  69. package/utils/renderSortEnum.d.ts +1 -1
  70. package/utils/renderSortEnum.js +3 -0
  71. package/utils/renderSortEnum.js.map +1 -1
  72. package/utils/access.d.ts +0 -8
  73. package/utils/access.js +0 -76
  74. package/utils/access.js.map +0 -1
  75. package/utils/ownership.d.ts +0 -8
  76. package/utils/ownership.js +0 -33
  77. package/utils/ownership.js.map +0 -1
  78. package/utils/permissions.d.ts +0 -7
  79. package/utils/permissions.js +0 -91
  80. package/utils/permissions.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["emptyResolver","plugin","GraphQLSchemaPlugin","typeDefs","resolvers","Query","cms","Mutation","CmsQuery","version","_","__","context","getSystemVersion","e","ErrorResponse","CmsMutation","install","code","message","installSystem","Response","name","createSystemSchemaPlugin","ContextPlugin","type","plugins","register"],"sources":["system.ts"],"sourcesContent":["import { ErrorResponse, GraphQLSchemaPlugin, Response } from \"@webiny/handler-graphql\";\nimport { CmsContext } from \"~/types\";\nimport { ContextPlugin } from \"@webiny/api\";\n\nconst emptyResolver = () => ({});\n\nconst plugin = new GraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n extend type Query {\n cms: CmsQuery\n }\n\n extend type Mutation {\n cms: CmsMutation\n }\n\n type CmsQuery {\n _empty: String\n }\n\n type CmsMutation {\n _empty: String\n }\n extend type CmsQuery {\n # Get installed version\n version: String\n }\n\n extend type CmsMutation {\n # Install CMS\n install: CmsBooleanResponse\n }\n `,\n resolvers: {\n Query: {\n cms: emptyResolver\n },\n Mutation: {\n cms: emptyResolver\n },\n CmsQuery: {\n version: async (_: any, __: any, context: CmsContext) => {\n try {\n return context.cms.getSystemVersion();\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n CmsMutation: {\n install: async (_: any, __: any, { cms }: CmsContext) => {\n try {\n const version = await cms.getSystemVersion();\n if (version) {\n return new ErrorResponse({\n code: \"CMS_INSTALLATION_ERROR\",\n message: \"CMS is already installed.\"\n });\n }\n\n await cms.installSystem();\n return new Response(true);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n }\n }\n});\nplugin.name = \"cms.graphql.schema.system\";\n/**\n * We only register system schema plugin if the endpoint is not manage/preview/read.\n */\nexport const createSystemSchemaPlugin = (): ContextPlugin<CmsContext> => {\n return new ContextPlugin<CmsContext>(async context => {\n if (context.cms?.type) {\n return;\n }\n context.plugins.register(plugin);\n });\n};\n"],"mappings":";;;;;;AAAA;AAEA;AAEA,MAAMA,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC;AAEhC,MAAMC,MAAM,GAAG,IAAIC,mCAAmB,CAAC;EACnCC,QAAQ,EAAE,aAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;EACDC,SAAS,EAAE;IACPC,KAAK,EAAE;MACHC,GAAG,EAAEN;IACT,CAAC;IACDO,QAAQ,EAAE;MACND,GAAG,EAAEN;IACT,CAAC;IACDQ,QAAQ,EAAE;MACNC,OAAO,EAAE,OAAOC,CAAM,EAAEC,EAAO,EAAEC,OAAmB,KAAK;QACrD,IAAI;UACA,OAAOA,OAAO,CAACN,GAAG,CAACO,gBAAgB,EAAE;QACzC,CAAC,CAAC,OAAOC,CAAC,EAAE;UACR,OAAO,IAAIC,6BAAa,CAACD,CAAC,CAAC;QAC/B;MACJ;IACJ,CAAC;IACDE,WAAW,EAAE;MACTC,OAAO,EAAE,OAAOP,CAAM,EAAEC,EAAO,EAAE;QAAEL;MAAgB,CAAC,KAAK;QACrD,IAAI;UACA,MAAMG,OAAO,GAAG,MAAMH,GAAG,CAACO,gBAAgB,EAAE;UAC5C,IAAIJ,OAAO,EAAE;YACT,OAAO,IAAIM,6BAAa,CAAC;cACrBG,IAAI,EAAE,wBAAwB;cAC9BC,OAAO,EAAE;YACb,CAAC,CAAC;UACN;UAEA,MAAMb,GAAG,CAACc,aAAa,EAAE;UACzB,OAAO,IAAIC,wBAAQ,CAAC,IAAI,CAAC;QAC7B,CAAC,CAAC,OAAOP,CAAC,EAAE;UACR,OAAO,IAAIC,6BAAa,CAACD,CAAC,CAAC;QAC/B;MACJ;IACJ;EACJ;AACJ,CAAC,CAAC;AACFb,MAAM,CAACqB,IAAI,GAAG,2BAA2B;AACzC;AACA;AACA;AACO,MAAMC,wBAAwB,GAAG,MAAiC;EACrE,OAAO,IAAIC,kBAAa,CAAa,MAAMZ,OAAO,IAAI;IAAA;IAClD,oBAAIA,OAAO,CAACN,GAAG,yCAAX,aAAamB,IAAI,EAAE;MACnB;IACJ;IACAb,OAAO,CAACc,OAAO,CAACC,QAAQ,CAAC1B,MAAM,CAAC;EACpC,CAAC,CAAC;AACN,CAAC;AAAC"}
1
+ {"version":3,"names":["emptyResolver","plugin","GraphQLSchemaPlugin","typeDefs","resolvers","Query","cms","Mutation","CmsQuery","version","_","__","context","getSystemVersion","e","ErrorResponse","CmsMutation","install","code","message","installSystem","Response","name","createSystemSchemaPlugin"],"sources":["system.ts"],"sourcesContent":["import { ErrorResponse, GraphQLSchemaPlugin, Response } from \"@webiny/handler-graphql\";\nimport { CmsContext } from \"~/types\";\n\nconst emptyResolver = () => ({});\n\nconst plugin = new GraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n extend type Query {\n cms: CmsQuery\n }\n\n extend type Mutation {\n cms: CmsMutation\n }\n\n type CmsQuery {\n _empty: String\n }\n\n type CmsMutation {\n _empty: String\n }\n extend type CmsQuery {\n # Get installed version\n version: String\n }\n\n extend type CmsMutation {\n # Install CMS\n install: CmsBooleanResponse\n }\n `,\n resolvers: {\n Query: {\n cms: emptyResolver\n },\n Mutation: {\n cms: emptyResolver\n },\n CmsQuery: {\n version: async (_: any, __: any, context: CmsContext) => {\n try {\n return context.cms.getSystemVersion();\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n CmsMutation: {\n install: async (_: any, __: any, { cms }: CmsContext) => {\n try {\n const version = await cms.getSystemVersion();\n if (version) {\n return new ErrorResponse({\n code: \"CMS_INSTALLATION_ERROR\",\n message: \"CMS is already installed.\"\n });\n }\n\n await cms.installSystem();\n return new Response(true);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n }\n }\n});\nplugin.name = \"cms.graphql.schema.system\";\n\nexport const createSystemSchemaPlugin = () => {\n return plugin;\n};\n"],"mappings":";;;;;;AAAA;AAGA,MAAMA,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC;AAEhC,MAAMC,MAAM,GAAG,IAAIC,mCAAmB,CAAC;EACnCC,QAAQ,EAAE,aAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;EACDC,SAAS,EAAE;IACPC,KAAK,EAAE;MACHC,GAAG,EAAEN;IACT,CAAC;IACDO,QAAQ,EAAE;MACND,GAAG,EAAEN;IACT,CAAC;IACDQ,QAAQ,EAAE;MACNC,OAAO,EAAE,OAAOC,CAAM,EAAEC,EAAO,EAAEC,OAAmB,KAAK;QACrD,IAAI;UACA,OAAOA,OAAO,CAACN,GAAG,CAACO,gBAAgB,EAAE;QACzC,CAAC,CAAC,OAAOC,CAAC,EAAE;UACR,OAAO,IAAIC,6BAAa,CAACD,CAAC,CAAC;QAC/B;MACJ;IACJ,CAAC;IACDE,WAAW,EAAE;MACTC,OAAO,EAAE,OAAOP,CAAM,EAAEC,EAAO,EAAE;QAAEL;MAAgB,CAAC,KAAK;QACrD,IAAI;UACA,MAAMG,OAAO,GAAG,MAAMH,GAAG,CAACO,gBAAgB,EAAE;UAC5C,IAAIJ,OAAO,EAAE;YACT,OAAO,IAAIM,6BAAa,CAAC;cACrBG,IAAI,EAAE,wBAAwB;cAC9BC,OAAO,EAAE;YACb,CAAC,CAAC;UACN;UAEA,MAAMb,GAAG,CAACc,aAAa,EAAE;UACzB,OAAO,IAAIC,wBAAQ,CAAC,IAAI,CAAC;QAC7B,CAAC,CAAC,OAAOP,CAAC,EAAE;UACR,OAAO,IAAIC,6BAAa,CAACD,CAAC,CAAC;QAC/B;MACJ;IACJ;EACJ;AACJ,CAAC,CAAC;AACFb,MAAM,CAACqB,IAAI,GAAG,2BAA2B;AAElC,MAAMC,wBAAwB,GAAG,MAAM;EAC1C,OAAOtB,MAAM;AACjB,CAAC;AAAC"}
@@ -30,6 +30,7 @@ const createNumberField = () => {
30
30
  fieldType: "number",
31
31
  isSortable: true,
32
32
  isSearchable: true,
33
+ fullTextSearch: false,
33
34
  read: {
34
35
  createGetFilters({
35
36
  field
@@ -1 +1 @@
1
- {"version":3,"names":["createListFilters","field","fieldId","createNumberField","name","type","fieldType","isSortable","isSearchable","read","createGetFilters","createTypeField","multipleValues","manage","createInputField","createGraphQLInputField"],"sources":["number.ts"],"sourcesContent":["import { CmsModelField, CmsModelFieldToGraphQLPlugin } from \"~/types\";\nimport { createGraphQLInputField } from \"./helpers\";\n\ninterface CreateListFiltersParams {\n field: CmsModelField;\n}\nconst createListFilters = ({ field }: CreateListFiltersParams) => {\n return `\n ${field.fieldId}: Number\n ${field.fieldId}_not: Number\n ${field.fieldId}_in: [Number]\n ${field.fieldId}_not_in: [Number]\n ${field.fieldId}_lt: Number\n ${field.fieldId}_lte: Number\n ${field.fieldId}_gt: Number\n ${field.fieldId}_gte: Number\n # there must be two numbers sent in the array\n ${field.fieldId}_between: [Number!]\n # there must be two numbers sent in the array\n ${field.fieldId}_not_between: [Number!]\n `;\n};\n\nexport const createNumberField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-number\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"number\",\n isSortable: true,\n isSearchable: true,\n read: {\n createGetFilters({ field }) {\n return `${field.fieldId}: Number`;\n },\n createListFilters,\n createTypeField({ field }) {\n if (field.multipleValues) {\n return `${field.fieldId}: [Number]`;\n }\n\n return `${field.fieldId}: Number`;\n }\n },\n manage: {\n createListFilters,\n createTypeField({ field }) {\n if (field.multipleValues) {\n return field.fieldId + \": [Number]\";\n }\n\n return field.fieldId + \": Number\";\n },\n createInputField({ field }) {\n return createGraphQLInputField(field, \"Number\");\n }\n }\n };\n};\n"],"mappings":";;;;;;AACA;AAKA,MAAMA,iBAAiB,GAAG,CAAC;EAAEC;AAA+B,CAAC,KAAK;EAC9D,OAAQ;AACZ,UAAUA,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB;AACA,UAAUD,KAAK,CAACC,OAAQ;AACxB;AACA,UAAUD,KAAK,CAACC,OAAQ;AACxB,KAAK;AACL,CAAC;AAEM,MAAMC,iBAAiB,GAAG,MAAoC;EACjE,OAAO;IACHC,IAAI,EAAE,mCAAmC;IACzCC,IAAI,EAAE,4BAA4B;IAClCC,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE,IAAI;IAChBC,YAAY,EAAE,IAAI;IAClBC,IAAI,EAAE;MACFC,gBAAgB,CAAC;QAAET;MAAM,CAAC,EAAE;QACxB,OAAQ,GAAEA,KAAK,CAACC,OAAQ,UAAS;MACrC,CAAC;MACDF,iBAAiB;MACjBW,eAAe,CAAC;QAAEV;MAAM,CAAC,EAAE;QACvB,IAAIA,KAAK,CAACW,cAAc,EAAE;UACtB,OAAQ,GAAEX,KAAK,CAACC,OAAQ,YAAW;QACvC;QAEA,OAAQ,GAAED,KAAK,CAACC,OAAQ,UAAS;MACrC;IACJ,CAAC;IACDW,MAAM,EAAE;MACJb,iBAAiB;MACjBW,eAAe,CAAC;QAAEV;MAAM,CAAC,EAAE;QACvB,IAAIA,KAAK,CAACW,cAAc,EAAE;UACtB,OAAOX,KAAK,CAACC,OAAO,GAAG,YAAY;QACvC;QAEA,OAAOD,KAAK,CAACC,OAAO,GAAG,UAAU;MACrC,CAAC;MACDY,gBAAgB,CAAC;QAAEb;MAAM,CAAC,EAAE;QACxB,OAAO,IAAAc,gCAAuB,EAACd,KAAK,EAAE,QAAQ,CAAC;MACnD;IACJ;EACJ,CAAC;AACL,CAAC;AAAC"}
1
+ {"version":3,"names":["createListFilters","field","fieldId","createNumberField","name","type","fieldType","isSortable","isSearchable","fullTextSearch","read","createGetFilters","createTypeField","multipleValues","manage","createInputField","createGraphQLInputField"],"sources":["number.ts"],"sourcesContent":["import { CmsModelField, CmsModelFieldToGraphQLPlugin } from \"~/types\";\nimport { createGraphQLInputField } from \"./helpers\";\n\ninterface CreateListFiltersParams {\n field: CmsModelField;\n}\nconst createListFilters = ({ field }: CreateListFiltersParams) => {\n return `\n ${field.fieldId}: Number\n ${field.fieldId}_not: Number\n ${field.fieldId}_in: [Number]\n ${field.fieldId}_not_in: [Number]\n ${field.fieldId}_lt: Number\n ${field.fieldId}_lte: Number\n ${field.fieldId}_gt: Number\n ${field.fieldId}_gte: Number\n # there must be two numbers sent in the array\n ${field.fieldId}_between: [Number!]\n # there must be two numbers sent in the array\n ${field.fieldId}_not_between: [Number!]\n `;\n};\n\nexport const createNumberField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-number\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"number\",\n isSortable: true,\n isSearchable: true,\n fullTextSearch: false,\n read: {\n createGetFilters({ field }) {\n return `${field.fieldId}: Number`;\n },\n createListFilters,\n createTypeField({ field }) {\n if (field.multipleValues) {\n return `${field.fieldId}: [Number]`;\n }\n\n return `${field.fieldId}: Number`;\n }\n },\n manage: {\n createListFilters,\n createTypeField({ field }) {\n if (field.multipleValues) {\n return field.fieldId + \": [Number]\";\n }\n\n return field.fieldId + \": Number\";\n },\n createInputField({ field }) {\n return createGraphQLInputField(field, \"Number\");\n }\n }\n };\n};\n"],"mappings":";;;;;;AACA;AAKA,MAAMA,iBAAiB,GAAG,CAAC;EAAEC;AAA+B,CAAC,KAAK;EAC9D,OAAQ;AACZ,UAAUA,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB;AACA,UAAUD,KAAK,CAACC,OAAQ;AACxB;AACA,UAAUD,KAAK,CAACC,OAAQ;AACxB,KAAK;AACL,CAAC;AAEM,MAAMC,iBAAiB,GAAG,MAAoC;EACjE,OAAO;IACHC,IAAI,EAAE,mCAAmC;IACzCC,IAAI,EAAE,4BAA4B;IAClCC,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE,IAAI;IAChBC,YAAY,EAAE,IAAI;IAClBC,cAAc,EAAE,KAAK;IACrBC,IAAI,EAAE;MACFC,gBAAgB,CAAC;QAAEV;MAAM,CAAC,EAAE;QACxB,OAAQ,GAAEA,KAAK,CAACC,OAAQ,UAAS;MACrC,CAAC;MACDF,iBAAiB;MACjBY,eAAe,CAAC;QAAEX;MAAM,CAAC,EAAE;QACvB,IAAIA,KAAK,CAACY,cAAc,EAAE;UACtB,OAAQ,GAAEZ,KAAK,CAACC,OAAQ,YAAW;QACvC;QAEA,OAAQ,GAAED,KAAK,CAACC,OAAQ,UAAS;MACrC;IACJ,CAAC;IACDY,MAAM,EAAE;MACJd,iBAAiB;MACjBY,eAAe,CAAC;QAAEX;MAAM,CAAC,EAAE;QACvB,IAAIA,KAAK,CAACY,cAAc,EAAE;UACtB,OAAOZ,KAAK,CAACC,OAAO,GAAG,YAAY;QACvC;QAEA,OAAOD,KAAK,CAACC,OAAO,GAAG,UAAU;MACrC,CAAC;MACDa,gBAAgB,CAAC;QAAEd;MAAM,CAAC,EAAE;QACxB,OAAO,IAAAe,gCAAuB,EAACf,KAAK,EAAE,QAAQ,CAAC;MACnD;IACJ;EACJ,CAAC;AACL,CAAC;AAAC"}
@@ -46,7 +46,7 @@ const createChildTypeDefs = params => {
46
46
  }).filter(Boolean).join("\n");
47
47
  return `input ${typeName}WhereInput {
48
48
  ${filters || "_empty: String"}
49
- }`;
49
+ }\n`;
50
50
  };
51
51
  const createTypeName = params => {
52
52
  const {
@@ -197,7 +197,7 @@ const createObjectField = () => {
197
197
  });
198
198
  return {
199
199
  fields: `${field.fieldId}: ${field.multipleValues ? `[${fieldType}!]` : fieldType}`,
200
- typeDefs: `${typeDefs}${childTypeDefs}`
200
+ typeDefs: `${typeDefs}\n${childTypeDefs}`
201
201
  };
202
202
  },
203
203
  createInputField({
@@ -1 +1 @@
1
- {"version":3,"names":["createChildTypeDefs","params","field","plugins","model","endpointType","fields","settings","typeName","createTypeName","parents","filters","map","child","createListFilters","type","concat","fieldId","filter","Boolean","join","singularApiName","id","lodashUpperFirst","createObjectField","name","fieldType","isSortable","isSearchable","validateChildFields","originalField","validate","hasDynamicZone","some","f","WebinyError","fieldLabel","label","originalFields","read","createTypeField","models","fieldTypePlugins","result","createTypeFromFields","typeOfType","typeNamePrefix","typeDefs","childTypeDefs","multipleValues","createResolver","createFieldResolvers","graphQLType","length","upperFirst","typeResolvers","resolver","manage","createInputField","attachRequiredFieldValue"],"sources":["object.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport upperFirst from \"lodash/upperFirst\";\nimport {\n CmsFieldTypePlugins,\n CmsModel,\n CmsModelField,\n CmsModelFieldToGraphQLPlugin\n} from \"~/types\";\nimport { attachRequiredFieldValue } from \"./helpers\";\nimport lodashUpperFirst from \"lodash/upperFirst\";\nimport { createTypeFromFields } from \"~/utils/createTypeFromFields\";\n\ninterface AttachTypeDefinitionsParams {\n model: Pick<CmsModel, \"singularApiName\">;\n field: CmsModelField;\n plugins: CmsFieldTypePlugins;\n endpointType: \"manage\" | \"read\";\n}\nconst createChildTypeDefs = (params: AttachTypeDefinitionsParams): string => {\n const { field, plugins, model, endpointType } = params;\n const fields = field.settings?.fields || [];\n\n const typeName = createTypeName({\n model,\n field,\n parents: field.settings?.parents\n });\n\n const filters = fields\n .map(child => {\n const createListFilters = plugins[child.type][endpointType].createListFilters;\n if (!createListFilters) {\n return null;\n }\n\n const filters = createListFilters({\n model,\n field: {\n ...child,\n settings: {\n ...child.settings,\n parents: (child.settings?.parents || []).concat([field.fieldId])\n }\n },\n plugins\n });\n if (!filters) {\n return null;\n }\n return filters;\n })\n .filter(Boolean)\n .join(\"\\n\");\n return `input ${typeName}WhereInput {\n ${filters || \"_empty: String\"}\n }`;\n};\n\ninterface CreateTypeNameParams {\n model: Pick<CmsModel, \"singularApiName\">;\n parents?: string[];\n field: CmsModelField;\n}\nconst createTypeName = (params: CreateTypeNameParams): string => {\n const { model, parents = [], field } = params;\n return [model.singularApiName]\n .concat(parents)\n .concat([field.fieldId])\n .filter(Boolean)\n .map(id => {\n return lodashUpperFirst(id);\n })\n .join(\"_\");\n};\n\ninterface CreateListFiltersParams {\n field: CmsModelField;\n model: Pick<CmsModel, \"singularApiName\">;\n}\nconst createListFilters = ({ field, model }: CreateListFiltersParams) => {\n const typeName = createTypeName({\n model,\n field,\n parents: field.settings?.parents\n });\n\n return `${field.fieldId}: ${typeName}WhereInput`;\n};\n\nexport const createObjectField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-object\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"object\",\n isSortable: false,\n isSearchable: false,\n validateChildFields: params => {\n const { field, originalField, validate } = params;\n\n const fields = field.settings?.fields || [];\n /**\n * At the moment we do not allow dynamic zone fields inside the object field.\n */\n const hasDynamicZone = fields.some(f => f.type === \"dynamicZone\");\n if (hasDynamicZone) {\n throw new WebinyError(\n \"Dynamic zones cannot be used inside of an object field.\",\n \"DYNAMIC_ZONE_INSIDE_OBJECT\",\n {\n id: field.id,\n fieldId: field.fieldId,\n fieldLabel: field.label\n }\n );\n }\n\n validate({\n fields,\n originalFields: originalField?.settings?.fields || []\n });\n },\n read: {\n createTypeField({ field, models, model, fieldTypePlugins }) {\n const result = createTypeFromFields({\n models,\n typeOfType: \"type\",\n model,\n type: \"read\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldTypePlugins\n });\n\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n const childTypeDefs = createChildTypeDefs({\n model,\n field,\n plugins: fieldTypePlugins,\n endpointType: \"read\"\n });\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${fieldType}!]` : fieldType\n }`,\n typeDefs: `${typeDefs}${childTypeDefs}`\n };\n },\n createResolver({ field, createFieldResolvers, graphQLType }) {\n if (!field.settings?.fields || field.settings.fields.length === 0) {\n return false;\n }\n\n const fieldType = `${graphQLType}_${upperFirst(field.fieldId)}`;\n\n const typeResolvers = createFieldResolvers({\n graphQLType: fieldType,\n fields: field.settings.fields\n });\n return {\n resolver: null,\n typeResolvers: typeResolvers || {}\n };\n },\n createListFilters\n },\n manage: {\n createTypeField({ models, model, field, fieldTypePlugins }) {\n const result = createTypeFromFields({\n typeOfType: \"type\",\n models,\n model,\n type: \"manage\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldTypePlugins\n });\n\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n const childTypeDefs = createChildTypeDefs({\n model,\n field,\n plugins: fieldTypePlugins,\n endpointType: \"manage\"\n });\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${fieldType}!]` : fieldType\n }`,\n typeDefs: `${typeDefs}${childTypeDefs}`\n };\n },\n createInputField({ models, model, field, fieldTypePlugins }) {\n const result = createTypeFromFields({\n typeOfType: \"input\",\n models,\n model,\n type: \"manage\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldTypePlugins\n });\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n return {\n fields: attachRequiredFieldValue(\n `${field.fieldId}: ${field.multipleValues ? `[${fieldType}!]` : fieldType}`,\n field\n ),\n typeDefs\n };\n },\n createResolver({ graphQLType, field, createFieldResolvers }) {\n if (!field.settings?.fields || field.settings.fields.length === 0) {\n return false;\n }\n const fieldType = `${graphQLType}_${upperFirst(field.fieldId)}`;\n const typeResolvers = createFieldResolvers({\n graphQLType: fieldType,\n fields: field.settings.fields\n });\n return {\n resolver: null,\n typeResolvers: typeResolvers || {}\n };\n },\n createListFilters\n }\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["createChildTypeDefs","params","field","plugins","model","endpointType","fields","settings","typeName","createTypeName","parents","filters","map","child","createListFilters","type","concat","fieldId","filter","Boolean","join","singularApiName","id","lodashUpperFirst","createObjectField","name","fieldType","isSortable","isSearchable","validateChildFields","originalField","validate","hasDynamicZone","some","f","WebinyError","fieldLabel","label","originalFields","read","createTypeField","models","fieldTypePlugins","result","createTypeFromFields","typeOfType","typeNamePrefix","typeDefs","childTypeDefs","multipleValues","createResolver","createFieldResolvers","graphQLType","length","upperFirst","typeResolvers","resolver","manage","createInputField","attachRequiredFieldValue"],"sources":["object.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport upperFirst from \"lodash/upperFirst\";\nimport {\n CmsFieldTypePlugins,\n CmsModel,\n CmsModelField,\n CmsModelFieldToGraphQLPlugin\n} from \"~/types\";\nimport { attachRequiredFieldValue } from \"./helpers\";\nimport lodashUpperFirst from \"lodash/upperFirst\";\nimport { createTypeFromFields } from \"~/utils/createTypeFromFields\";\n\ninterface AttachTypeDefinitionsParams {\n model: Pick<CmsModel, \"singularApiName\">;\n field: CmsModelField;\n plugins: CmsFieldTypePlugins;\n endpointType: \"manage\" | \"read\";\n}\nconst createChildTypeDefs = (params: AttachTypeDefinitionsParams): string => {\n const { field, plugins, model, endpointType } = params;\n const fields = field.settings?.fields || [];\n\n const typeName = createTypeName({\n model,\n field,\n parents: field.settings?.parents\n });\n\n const filters = fields\n .map(child => {\n const createListFilters = plugins[child.type][endpointType].createListFilters;\n if (!createListFilters) {\n return null;\n }\n\n const filters = createListFilters({\n model,\n field: {\n ...child,\n settings: {\n ...child.settings,\n parents: (child.settings?.parents || []).concat([field.fieldId])\n }\n },\n plugins\n });\n if (!filters) {\n return null;\n }\n return filters;\n })\n .filter(Boolean)\n .join(\"\\n\");\n return `input ${typeName}WhereInput {\n ${filters || \"_empty: String\"}\n }\\n`;\n};\n\ninterface CreateTypeNameParams {\n model: Pick<CmsModel, \"singularApiName\">;\n parents?: string[];\n field: CmsModelField;\n}\nconst createTypeName = (params: CreateTypeNameParams): string => {\n const { model, parents = [], field } = params;\n return [model.singularApiName]\n .concat(parents)\n .concat([field.fieldId])\n .filter(Boolean)\n .map(id => {\n return lodashUpperFirst(id);\n })\n .join(\"_\");\n};\n\ninterface CreateListFiltersParams {\n field: CmsModelField;\n model: Pick<CmsModel, \"singularApiName\">;\n}\nconst createListFilters = ({ field, model }: CreateListFiltersParams) => {\n const typeName = createTypeName({\n model,\n field,\n parents: field.settings?.parents\n });\n\n return `${field.fieldId}: ${typeName}WhereInput`;\n};\n\nexport const createObjectField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-object\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"object\",\n isSortable: false,\n isSearchable: false,\n validateChildFields: params => {\n const { field, originalField, validate } = params;\n\n const fields = field.settings?.fields || [];\n /**\n * At the moment we do not allow dynamic zone fields inside the object field.\n */\n const hasDynamicZone = fields.some(f => f.type === \"dynamicZone\");\n if (hasDynamicZone) {\n throw new WebinyError(\n \"Dynamic zones cannot be used inside of an object field.\",\n \"DYNAMIC_ZONE_INSIDE_OBJECT\",\n {\n id: field.id,\n fieldId: field.fieldId,\n fieldLabel: field.label\n }\n );\n }\n\n validate({\n fields,\n originalFields: originalField?.settings?.fields || []\n });\n },\n read: {\n createTypeField({ field, models, model, fieldTypePlugins }) {\n const result = createTypeFromFields({\n models,\n typeOfType: \"type\",\n model,\n type: \"read\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldTypePlugins\n });\n\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n const childTypeDefs = createChildTypeDefs({\n model,\n field,\n plugins: fieldTypePlugins,\n endpointType: \"read\"\n });\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${fieldType}!]` : fieldType\n }`,\n typeDefs: `${typeDefs}${childTypeDefs}`\n };\n },\n createResolver({ field, createFieldResolvers, graphQLType }) {\n if (!field.settings?.fields || field.settings.fields.length === 0) {\n return false;\n }\n\n const fieldType = `${graphQLType}_${upperFirst(field.fieldId)}`;\n\n const typeResolvers = createFieldResolvers({\n graphQLType: fieldType,\n fields: field.settings.fields\n });\n return {\n resolver: null,\n typeResolvers: typeResolvers || {}\n };\n },\n createListFilters\n },\n manage: {\n createTypeField({ models, model, field, fieldTypePlugins }) {\n const result = createTypeFromFields({\n typeOfType: \"type\",\n models,\n model,\n type: \"manage\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldTypePlugins\n });\n\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n const childTypeDefs = createChildTypeDefs({\n model,\n field,\n plugins: fieldTypePlugins,\n endpointType: \"manage\"\n });\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${fieldType}!]` : fieldType\n }`,\n typeDefs: `${typeDefs}\\n${childTypeDefs}`\n };\n },\n createInputField({ models, model, field, fieldTypePlugins }) {\n const result = createTypeFromFields({\n typeOfType: \"input\",\n models,\n model,\n type: \"manage\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldTypePlugins\n });\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n return {\n fields: attachRequiredFieldValue(\n `${field.fieldId}: ${field.multipleValues ? `[${fieldType}!]` : fieldType}`,\n field\n ),\n typeDefs\n };\n },\n createResolver({ graphQLType, field, createFieldResolvers }) {\n if (!field.settings?.fields || field.settings.fields.length === 0) {\n return false;\n }\n const fieldType = `${graphQLType}_${upperFirst(field.fieldId)}`;\n const typeResolvers = createFieldResolvers({\n graphQLType: fieldType,\n fields: field.settings.fields\n });\n return {\n resolver: null,\n typeResolvers: typeResolvers || {}\n };\n },\n createListFilters\n }\n };\n};\n"],"mappings":"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"}
@@ -15,6 +15,8 @@ const createListFilters = ({
15
15
  ${field.fieldId}_not_in: [String]
16
16
  ${field.fieldId}_contains: String
17
17
  ${field.fieldId}_not_contains: String
18
+ ${field.fieldId}_startsWith: String
19
+ ${field.fieldId}_not_startsWith: String
18
20
  `;
19
21
  };
20
22
  const createTextField = () => {
@@ -1 +1 @@
1
- {"version":3,"names":["createListFilters","field","fieldId","createTextField","name","type","fieldType","isSortable","isSearchable","fullTextSearch","read","createTypeField","multipleValues","createGetFilters","manage","createInputField","createGraphQLInputField"],"sources":["text.ts"],"sourcesContent":["import { CmsModelField, CmsModelFieldToGraphQLPlugin } from \"~/types\";\nimport { createGraphQLInputField } from \"./helpers\";\n\ninterface CreateListFiltersParams {\n field: CmsModelField;\n}\nconst createListFilters = ({ field }: CreateListFiltersParams) => {\n return `\n ${field.fieldId}: String\n ${field.fieldId}_not: String\n ${field.fieldId}_in: [String]\n ${field.fieldId}_not_in: [String]\n ${field.fieldId}_contains: String\n ${field.fieldId}_not_contains: String\n `;\n};\n\nexport const createTextField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-text\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"text\",\n isSortable: true,\n isSearchable: true,\n fullTextSearch: true,\n read: {\n createTypeField({ field }) {\n if (field.multipleValues) {\n return `${field.fieldId}: [String]`;\n }\n return `${field.fieldId}: String`;\n },\n createGetFilters({ field }) {\n return `${field.fieldId}: String`;\n },\n createListFilters\n },\n manage: {\n createListFilters,\n createTypeField({ field }) {\n if (field.multipleValues) {\n return `${field.fieldId}: [String]`;\n }\n return `${field.fieldId}: String`;\n },\n createInputField({ field }) {\n return createGraphQLInputField(field, \"String\");\n }\n }\n };\n};\n"],"mappings":";;;;;;AACA;AAKA,MAAMA,iBAAiB,GAAG,CAAC;EAAEC;AAA+B,CAAC,KAAK;EAC9D,OAAQ;AACZ,UAAUA,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,KAAK;AACL,CAAC;AAEM,MAAMC,eAAe,GAAG,MAAoC;EAC/D,OAAO;IACHC,IAAI,EAAE,iCAAiC;IACvCC,IAAI,EAAE,4BAA4B;IAClCC,SAAS,EAAE,MAAM;IACjBC,UAAU,EAAE,IAAI;IAChBC,YAAY,EAAE,IAAI;IAClBC,cAAc,EAAE,IAAI;IACpBC,IAAI,EAAE;MACFC,eAAe,CAAC;QAAEV;MAAM,CAAC,EAAE;QACvB,IAAIA,KAAK,CAACW,cAAc,EAAE;UACtB,OAAQ,GAAEX,KAAK,CAACC,OAAQ,YAAW;QACvC;QACA,OAAQ,GAAED,KAAK,CAACC,OAAQ,UAAS;MACrC,CAAC;MACDW,gBAAgB,CAAC;QAAEZ;MAAM,CAAC,EAAE;QACxB,OAAQ,GAAEA,KAAK,CAACC,OAAQ,UAAS;MACrC,CAAC;MACDF;IACJ,CAAC;IACDc,MAAM,EAAE;MACJd,iBAAiB;MACjBW,eAAe,CAAC;QAAEV;MAAM,CAAC,EAAE;QACvB,IAAIA,KAAK,CAACW,cAAc,EAAE;UACtB,OAAQ,GAAEX,KAAK,CAACC,OAAQ,YAAW;QACvC;QACA,OAAQ,GAAED,KAAK,CAACC,OAAQ,UAAS;MACrC,CAAC;MACDa,gBAAgB,CAAC;QAAEd;MAAM,CAAC,EAAE;QACxB,OAAO,IAAAe,gCAAuB,EAACf,KAAK,EAAE,QAAQ,CAAC;MACnD;IACJ;EACJ,CAAC;AACL,CAAC;AAAC"}
1
+ {"version":3,"names":["createListFilters","field","fieldId","createTextField","name","type","fieldType","isSortable","isSearchable","fullTextSearch","read","createTypeField","multipleValues","createGetFilters","manage","createInputField","createGraphQLInputField"],"sources":["text.ts"],"sourcesContent":["import { CmsModelField, CmsModelFieldToGraphQLPlugin } from \"~/types\";\nimport { createGraphQLInputField } from \"./helpers\";\n\ninterface CreateListFiltersParams {\n field: CmsModelField;\n}\nconst createListFilters = ({ field }: CreateListFiltersParams) => {\n return `\n ${field.fieldId}: String\n ${field.fieldId}_not: String\n ${field.fieldId}_in: [String]\n ${field.fieldId}_not_in: [String]\n ${field.fieldId}_contains: String\n ${field.fieldId}_not_contains: String\n ${field.fieldId}_startsWith: String\n ${field.fieldId}_not_startsWith: String\n `;\n};\n\nexport const createTextField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-text\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"text\",\n isSortable: true,\n isSearchable: true,\n fullTextSearch: true,\n read: {\n createTypeField({ field }) {\n if (field.multipleValues) {\n return `${field.fieldId}: [String]`;\n }\n return `${field.fieldId}: String`;\n },\n createGetFilters({ field }) {\n return `${field.fieldId}: String`;\n },\n createListFilters\n },\n manage: {\n createListFilters,\n createTypeField({ field }) {\n if (field.multipleValues) {\n return `${field.fieldId}: [String]`;\n }\n return `${field.fieldId}: String`;\n },\n createInputField({ field }) {\n return createGraphQLInputField(field, \"String\");\n }\n }\n };\n};\n"],"mappings":";;;;;;AACA;AAKA,MAAMA,iBAAiB,GAAG,CAAC;EAAEC;AAA+B,CAAC,KAAK;EAC9D,OAAQ;AACZ,UAAUA,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,KAAK;AACL,CAAC;AAEM,MAAMC,eAAe,GAAG,MAAoC;EAC/D,OAAO;IACHC,IAAI,EAAE,iCAAiC;IACvCC,IAAI,EAAE,4BAA4B;IAClCC,SAAS,EAAE,MAAM;IACjBC,UAAU,EAAE,IAAI;IAChBC,YAAY,EAAE,IAAI;IAClBC,cAAc,EAAE,IAAI;IACpBC,IAAI,EAAE;MACFC,eAAe,CAAC;QAAEV;MAAM,CAAC,EAAE;QACvB,IAAIA,KAAK,CAACW,cAAc,EAAE;UACtB,OAAQ,GAAEX,KAAK,CAACC,OAAQ,YAAW;QACvC;QACA,OAAQ,GAAED,KAAK,CAACC,OAAQ,UAAS;MACrC,CAAC;MACDW,gBAAgB,CAAC;QAAEZ;MAAM,CAAC,EAAE;QACxB,OAAQ,GAAEA,KAAK,CAACC,OAAQ,UAAS;MACrC,CAAC;MACDF;IACJ,CAAC;IACDc,MAAM,EAAE;MACJd,iBAAiB;MACjBW,eAAe,CAAC;QAAEV;MAAM,CAAC,EAAE;QACvB,IAAIA,KAAK,CAACW,cAAc,EAAE;UACtB,OAAQ,GAAEX,KAAK,CAACC,OAAQ,YAAW;QACvC;QACA,OAAQ,GAAED,KAAK,CAACC,OAAQ,UAAS;MACrC,CAAC;MACDa,gBAAgB,CAAC;QAAEd;MAAM,CAAC,EAAE;QACxB,OAAO,IAAAe,gCAAuB,EAACf,KAAK,EAAE,QAAQ,CAAC;MACnD;IACJ;EACJ,CAAC;AACL,CAAC;AAAC"}
package/index.d.ts CHANGED
@@ -2,7 +2,7 @@ import { CreateGraphQLParams } from "./graphql";
2
2
  import { CrudParams } from "./context";
3
3
  import { entryFieldFromStorageTransform, entryFromStorageTransform, entryToStorageTransform } from "./utils/entryStorage";
4
4
  export declare type CreateHeadlessCmsGraphQLParams = CreateGraphQLParams;
5
- export declare const createHeadlessCmsGraphQL: (params?: CreateHeadlessCmsGraphQLParams) => (import("./plugins").CmsParametersPlugin | import("@webiny/handler-graphql").GraphQLSchemaPlugin<import("./types").CmsContext> | import("@webiny/api").ContextPlugin<import("./types").CmsContext> | import("@webiny/plugins/types").PluginCollection)[];
5
+ export declare const createHeadlessCmsGraphQL: (params?: CreateHeadlessCmsGraphQLParams) => (import("@webiny/plugins/types").PluginCollection | import("./plugins").CmsParametersPlugin | import("@webiny/handler-graphql").GraphQLSchemaPlugin<import("./types").CmsContext>)[];
6
6
  export declare type ContentContextParams = CrudParams;
7
7
  export declare const createHeadlessCmsContext: (params: ContentContextParams) => (import("./types").ModelManagerPlugin | import("./plugins").StorageTransformPlugin<any, any, import("./types").CmsModelField> | import("@webiny/api").ContextPlugin<import("./types").CmsContext> | import("./plugins").StorageTransformPlugin<any, any, import("./types").CmsModelDynamicZoneField> | import("./types").CmsModelFieldToGraphQLPlugin<any>[] | (import("./types").CmsModelFieldValidatorPlugin | import("./types").CmsModelFieldPatternValidatorPlugin[])[] | (import("./fieldConverters/CmsModelObjectFieldConverterPlugin").CmsModelObjectFieldConverterPlugin | import("./fieldConverters/CmsModelDefaultFieldConverterPlugin").CmsModelDefaultFieldConverterPlugin | import("./fieldConverters/CmsModelDynamicZoneFieldConverterPlugin").CmsModelDynamicZoneFieldConverterPlugin)[])[];
8
8
  export * from "./graphqlFields";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-headless-cms",
3
- "version": "0.0.0-unstable.c59b9cc5b9",
3
+ "version": "0.0.0-unstable.c7dec08bb0",
4
4
  "main": "index.js",
5
5
  "keywords": [
6
6
  "cms:base"
@@ -20,21 +20,19 @@
20
20
  "dependencies": {
21
21
  "@babel/runtime": "7.20.13",
22
22
  "@graphql-tools/schema": "7.1.5",
23
- "@webiny/api": "0.0.0-unstable.c59b9cc5b9",
24
- "@webiny/api-file-manager": "0.0.0-unstable.c59b9cc5b9",
25
- "@webiny/api-i18n": "0.0.0-unstable.c59b9cc5b9",
26
- "@webiny/api-i18n-ddb": "0.0.0-unstable.c59b9cc5b9",
27
- "@webiny/api-security": "0.0.0-unstable.c59b9cc5b9",
28
- "@webiny/api-tenancy": "0.0.0-unstable.c59b9cc5b9",
29
- "@webiny/error": "0.0.0-unstable.c59b9cc5b9",
30
- "@webiny/handler": "0.0.0-unstable.c59b9cc5b9",
31
- "@webiny/handler-aws": "0.0.0-unstable.c59b9cc5b9",
32
- "@webiny/handler-db": "0.0.0-unstable.c59b9cc5b9",
33
- "@webiny/handler-graphql": "0.0.0-unstable.c59b9cc5b9",
34
- "@webiny/plugins": "0.0.0-unstable.c59b9cc5b9",
35
- "@webiny/pubsub": "0.0.0-unstable.c59b9cc5b9",
36
- "@webiny/utils": "0.0.0-unstable.c59b9cc5b9",
37
- "@webiny/validation": "0.0.0-unstable.c59b9cc5b9",
23
+ "@webiny/api": "0.0.0-unstable.c7dec08bb0",
24
+ "@webiny/api-i18n": "0.0.0-unstable.c7dec08bb0",
25
+ "@webiny/api-security": "0.0.0-unstable.c7dec08bb0",
26
+ "@webiny/api-tenancy": "0.0.0-unstable.c7dec08bb0",
27
+ "@webiny/error": "0.0.0-unstable.c7dec08bb0",
28
+ "@webiny/handler": "0.0.0-unstable.c7dec08bb0",
29
+ "@webiny/handler-aws": "0.0.0-unstable.c7dec08bb0",
30
+ "@webiny/handler-db": "0.0.0-unstable.c7dec08bb0",
31
+ "@webiny/handler-graphql": "0.0.0-unstable.c7dec08bb0",
32
+ "@webiny/plugins": "0.0.0-unstable.c7dec08bb0",
33
+ "@webiny/pubsub": "0.0.0-unstable.c7dec08bb0",
34
+ "@webiny/utils": "0.0.0-unstable.c7dec08bb0",
35
+ "@webiny/validation": "0.0.0-unstable.c7dec08bb0",
38
36
  "code-frame": "5.0.0",
39
37
  "dataloader": "2.2.1",
40
38
  "dot-prop": "6.0.1",
@@ -51,15 +49,13 @@
51
49
  "@babel/cli": "7.20.7",
52
50
  "@babel/core": "7.20.12",
53
51
  "@babel/preset-env": "7.20.2",
54
- "@webiny/api-security-so-ddb": "0.0.0-unstable.c59b9cc5b9",
55
- "@webiny/api-tenancy-so-ddb": "0.0.0-unstable.c59b9cc5b9",
56
- "@webiny/api-wcp": "0.0.0-unstable.c59b9cc5b9",
57
- "@webiny/cli": "0.0.0-unstable.c59b9cc5b9",
58
- "@webiny/project-utils": "0.0.0-unstable.c59b9cc5b9",
52
+ "@webiny/api-wcp": "0.0.0-unstable.c7dec08bb0",
53
+ "@webiny/cli": "0.0.0-unstable.c7dec08bb0",
54
+ "@webiny/project-utils": "0.0.0-unstable.c7dec08bb0",
59
55
  "apollo-graphql": "0.9.7",
60
56
  "get-yarn-workspaces": "1.0.2",
61
57
  "graphql": "15.8.0",
62
- "jest": "28.1.3",
58
+ "jest": "29.5.0",
63
59
  "prettier": "2.8.3",
64
60
  "rimraf": "3.0.2",
65
61
  "sinon": "9.2.4",
@@ -75,5 +71,5 @@
75
71
  "build": "yarn webiny run build",
76
72
  "watch": "yarn webiny run watch"
77
73
  },
78
- "gitHead": "c59b9cc5b96b7fd91388de93c7fff2d977d25220"
74
+ "gitHead": "c7dec08bb095467cca6a61381bd399d66b7bb147"
79
75
  }
package/types.d.ts CHANGED
@@ -4,7 +4,6 @@ import { Context } from "@webiny/api/types";
4
4
  import { GraphQLFieldResolver, GraphQLSchemaDefinition, Resolvers } from "@webiny/handler-graphql/types";
5
5
  import { SecurityPermission } from "@webiny/api-security/types";
6
6
  import { DbContext } from "@webiny/handler-db/types";
7
- import { FileManagerContext } from "@webiny/api-file-manager/types";
8
7
  import { Topic } from "@webiny/pubsub/types";
9
8
  import { CmsModelConverterCallable } from "./utils/converters/ConverterCollection";
10
9
  export declare type ApiEndpoint = "manage" | "preview" | "read";
@@ -43,7 +42,7 @@ export interface HeadlessCms extends CmsSettingsContext, CmsSystemContext, CmsGr
43
42
  *
44
43
  * @category Context
45
44
  */
46
- export interface CmsContext extends Context, DbContext, I18NContext, FileManagerContext {
45
+ export interface CmsContext extends Context, DbContext, I18NContext {
47
46
  cms: HeadlessCms;
48
47
  }
49
48
  interface CmsModelFieldPredefinedValuesValue {
@@ -580,6 +579,24 @@ export interface CmsModelFieldToGraphQLPlugin<TField extends CmsModelField = Cms
580
579
  * ```
581
580
  */
582
581
  isSortable: boolean;
582
+ /**
583
+ * Optional method which creates the storageId.
584
+ * Primary use is for the datetime field, but if users has some specific fields, they can customize the storageId to their needs.
585
+ *
586
+ * ```ts
587
+ * createStorageId: ({field}) => {
588
+ * if (field.settings.type === "time) {
589
+ * return `${field.type}_time@${field.id}`
590
+ * }
591
+ * // use default method
592
+ * return undefined;
593
+ * }
594
+ * ```
595
+ */
596
+ createStorageId?: (params: {
597
+ model: CmsModel;
598
+ field: Omit<TField, "storageId"> & Partial<Pick<TField, "storageId">>;
599
+ }) => string | null | undefined;
583
600
  /**
584
601
  * Read API methods.
585
602
  */
@@ -1461,6 +1478,12 @@ export interface CmsEntry<T = CmsEntryValues> {
1461
1478
  * @see CmsModelField
1462
1479
  */
1463
1480
  values: T;
1481
+ /**
1482
+ * Advanced Content Organization
1483
+ */
1484
+ location?: {
1485
+ folderId?: string | null;
1486
+ };
1464
1487
  /**
1465
1488
  * Settings for the given entry.
1466
1489
  *
@@ -1476,6 +1499,10 @@ export interface CmsEntry<T = CmsEntryValues> {
1476
1499
  export interface CmsStorageEntry extends CmsEntry {
1477
1500
  [key: string]: any;
1478
1501
  }
1502
+ export interface CmsEntryUniqueValue {
1503
+ value: string;
1504
+ count: number;
1505
+ }
1479
1506
  /**
1480
1507
  * A definition for content model manager to be used in the code.
1481
1508
  * The default one uses `CmsEntryContext` methods internally, but devs can change to what every they want.
@@ -1918,7 +1945,7 @@ export interface OnEntryAfterUpdateTopicParams {
1918
1945
  }
1919
1946
  export interface OnEntryUpdateErrorTopicParams {
1920
1947
  error: Error;
1921
- input: CreateFromCmsEntryInput;
1948
+ input: UpdateCmsEntryInput;
1922
1949
  entry: CmsEntry;
1923
1950
  model: CmsModel;
1924
1951
  }
@@ -2029,6 +2056,9 @@ export interface EntryBeforeListTopicParams {
2029
2056
  */
2030
2057
  export interface CreateCmsEntryInput {
2031
2058
  id?: string;
2059
+ wbyAco_location?: {
2060
+ folderId?: string | null;
2061
+ };
2032
2062
  [key: string]: any;
2033
2063
  }
2034
2064
  /**
@@ -2043,6 +2073,9 @@ export interface CreateFromCmsEntryInput {
2043
2073
  * @category CmsEntry
2044
2074
  */
2045
2075
  export interface UpdateCmsEntryInput {
2076
+ wbyAco_location?: {
2077
+ folderId?: string | null;
2078
+ };
2046
2079
  [key: string]: any;
2047
2080
  }
2048
2081
  /**
@@ -2158,7 +2191,7 @@ export interface CmsEntryContext {
2158
2191
  *
2159
2192
  * @internal
2160
2193
  */
2161
- getUniqueFieldValues: (model: CmsModel, params: GetUniqueFieldValuesParams) => Promise<string[]>;
2194
+ getUniqueFieldValues: (model: CmsModel, params: GetUniqueFieldValuesParams) => Promise<CmsEntryUniqueValue[]>;
2162
2195
  /**
2163
2196
  * Lifecycle events - deprecated.
2164
2197
  */
@@ -2666,7 +2699,7 @@ export interface CmsEntryStorageOperations<T extends CmsStorageEntry = CmsStorag
2666
2699
  * Simplest use case would be to aggregate tags for some content.
2667
2700
  * @internal
2668
2701
  */
2669
- getUniqueFieldValues: (model: CmsModel, params: CmsEntryStorageOperationsGetUniqueFieldValuesParams) => Promise<string[]>;
2702
+ getUniqueFieldValues: (model: CmsModel, params: CmsEntryStorageOperationsGetUniqueFieldValuesParams) => Promise<CmsEntryUniqueValue[]>;
2670
2703
  }
2671
2704
  export declare enum CONTENT_ENTRY_STATUS {
2672
2705
  DRAFT = "draft",