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

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 (90) hide show
  1. package/crud/contentEntry/referenceFieldsMapping.js +34 -5
  2. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  3. package/crud/contentEntry.crud.d.ts +4 -4
  4. package/crud/contentEntry.crud.js +183 -18
  5. package/crud/contentEntry.crud.js.map +1 -1
  6. package/crud/contentModelGroup.crud.js +1 -7
  7. package/crud/contentModelGroup.crud.js.map +1 -1
  8. package/graphql/schema/baseSchema.js +15 -0
  9. package/graphql/schema/baseSchema.js.map +1 -1
  10. package/graphql/schema/createFieldResolvers.d.ts +1 -1
  11. package/graphql/schema/createFieldResolvers.js +6 -12
  12. package/graphql/schema/createFieldResolvers.js.map +1 -1
  13. package/graphql/schema/createFieldTypePluginRecords.d.ts +3 -0
  14. package/graphql/schema/createFieldTypePluginRecords.js +13 -0
  15. package/graphql/schema/createFieldTypePluginRecords.js.map +1 -0
  16. package/graphql/schema/createManageResolvers.js +4 -0
  17. package/graphql/schema/createManageResolvers.js.map +1 -1
  18. package/graphql/schema/createManageSDL.js +34 -26
  19. package/graphql/schema/createManageSDL.js.map +1 -1
  20. package/graphql/schema/createReadSDL.js +22 -19
  21. package/graphql/schema/createReadSDL.js.map +1 -1
  22. package/graphql/schema/resolvers/manage/resolveDelete.d.ts +2 -1
  23. package/graphql/schema/resolvers/manage/resolveDelete.js +13 -3
  24. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  25. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.d.ts +7 -0
  26. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +20 -0
  27. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -0
  28. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.d.ts +4 -0
  29. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +18 -0
  30. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -0
  31. package/graphql/schema/schemaPlugins.js +2 -11
  32. package/graphql/schema/schemaPlugins.js.map +1 -1
  33. package/graphqlFields/dynamicZone/dynamicZoneField.js +43 -28
  34. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  35. package/graphqlFields/object.js.map +1 -1
  36. package/package.json +35 -35
  37. package/plugins/CmsModelPlugin.d.ts +3 -1
  38. package/plugins/CmsModelPlugin.js.map +1 -1
  39. package/types.d.ts +82 -31
  40. package/types.js +11 -0
  41. package/types.js.map +1 -1
  42. package/utils/converters/valueKeyStorageConverter.js +5 -2
  43. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  44. package/utils/getBaseFieldType.d.ts +1 -3
  45. package/utils/getBaseFieldType.js.map +1 -1
  46. package/utils/getEntryDescription.d.ts +1 -1
  47. package/utils/getEntryDescription.js.map +1 -1
  48. package/utils/getEntryImage.d.ts +1 -1
  49. package/utils/getEntryImage.js.map +1 -1
  50. package/utils/getEntryTitle.d.ts +1 -1
  51. package/utils/getEntryTitle.js.map +1 -1
  52. package/utils/renderFields.d.ts +2 -1
  53. package/utils/renderFields.js +2 -1
  54. package/utils/renderFields.js.map +1 -1
  55. package/utils/renderGetFilterFields.d.ts +2 -2
  56. package/utils/renderGetFilterFields.js +7 -20
  57. package/utils/renderGetFilterFields.js.map +1 -1
  58. package/utils/renderInputFields.d.ts +2 -1
  59. package/utils/renderInputFields.js +14 -6
  60. package/utils/renderInputFields.js.map +1 -1
  61. package/utils/renderListFilterFields.d.ts +2 -1
  62. package/utils/renderListFilterFields.js +9 -20
  63. package/utils/renderListFilterFields.js.map +1 -1
  64. package/utils/renderSortEnum.d.ts +2 -1
  65. package/utils/renderSortEnum.js +2 -1
  66. package/utils/renderSortEnum.js.map +1 -1
  67. package/crud/contentModel/createFieldModels.d.ts +0 -2
  68. package/crud/contentModel/createFieldModels.js +0 -26
  69. package/crud/contentModel/createFieldModels.js.map +0 -1
  70. package/crud/contentModel/fieldIdValidation.d.ts +0 -1
  71. package/crud/contentModel/fieldIdValidation.js +0 -25
  72. package/crud/contentModel/fieldIdValidation.js.map +0 -1
  73. package/crud/contentModel/idValidation.d.ts +0 -1
  74. package/crud/contentModel/idValidation.js +0 -22
  75. package/crud/contentModel/idValidation.js.map +0 -1
  76. package/crud/contentModel/models.d.ts +0 -4
  77. package/crud/contentModel/models.js +0 -192
  78. package/crud/contentModel/models.js.map +0 -1
  79. package/crud/contentModel/systemFields.d.ts +0 -1
  80. package/crud/contentModel/systemFields.js +0 -8
  81. package/crud/contentModel/systemFields.js.map +0 -1
  82. package/upgrades/5.33.0/index.d.ts +0 -3
  83. package/upgrades/5.33.0/index.js +0 -182
  84. package/upgrades/5.33.0/index.js.map +0 -1
  85. package/upgrades/index.d.ts +0 -1
  86. package/upgrades/index.js +0 -12
  87. package/upgrades/index.js.map +0 -1
  88. package/utils/pluralizedTypeName.d.ts +0 -1
  89. package/utils/pluralizedTypeName.js +0 -26
  90. package/utils/pluralizedTypeName.js.map +0 -1
package/types.d.ts CHANGED
@@ -118,6 +118,7 @@ export interface CmsModelFieldSettings {
118
118
  */
119
119
  [key: string]: any;
120
120
  }
121
+ export declare type CmsModelFieldType = "boolean" | "datetime" | "file" | "long-text" | "number" | "object" | "ref" | "rich-text" | "text" | "dynamicZone" | string;
121
122
  /**
122
123
  * A definition for content model field. This type exists on the app side as well.
123
124
  *
@@ -138,7 +139,7 @@ export interface CmsModelField {
138
139
  * A type of the field.
139
140
  * We are defining our built-in fields, so people know which are available by the default.
140
141
  */
141
- type: "boolean" | "datetime" | "file" | "long-text" | "number" | "object" | "ref" | "rich-text" | "text" | "dynamicZone" | string;
142
+ type: CmsModelFieldType;
142
143
  /**
143
144
  * A unique storage ID for storing actual values.
144
145
  * Must in form of a-zA-Z0-9@a-zA-Z0-9
@@ -513,6 +514,7 @@ interface CmsModelFieldToGraphQLCreateResolverParams<TField> {
513
514
  graphQLType: string;
514
515
  field: TField;
515
516
  createFieldResolvers: any;
517
+ fieldTypePlugins: CmsFieldTypePlugins;
516
518
  }
517
519
  export interface CmsModelFieldToGraphQLCreateResolver<TField = CmsModelField> {
518
520
  (params: CmsModelFieldToGraphQLCreateResolverParams<TField>): GraphQLFieldResolver | {
@@ -578,24 +580,6 @@ export interface CmsModelFieldToGraphQLPlugin<TField extends CmsModelField = Cms
578
580
  * ```
579
581
  */
580
582
  isSortable: boolean;
581
- /**
582
- * Optional method which creates the storageId.
583
- * Primary use is for the datetime field, but if users has some specific fields, they can customize the storageId to their needs.
584
- *
585
- * ```ts
586
- * createStorageId: ({field}) => {
587
- * if (field.settings.type === "time) {
588
- * return `${field.type}_time@${field.id}`
589
- * }
590
- * // use default method
591
- * return undefined;
592
- * }
593
- * ```
594
- */
595
- createStorageId?: (params: {
596
- model: CmsModel;
597
- field: TField;
598
- }) => string | null | undefined;
599
583
  /**
600
584
  * Read API methods.
601
585
  */
@@ -612,7 +596,6 @@ export interface CmsModelFieldToGraphQLPlugin<TField extends CmsModelField = Cms
612
596
  * ```
613
597
  */
614
598
  createGetFilters?(params: {
615
- model: CmsModel;
616
599
  field: TField;
617
600
  }): string;
618
601
  /**
@@ -632,7 +615,7 @@ export interface CmsModelFieldToGraphQLPlugin<TField extends CmsModelField = Cms
632
615
  * ```
633
616
  */
634
617
  createListFilters?(params: {
635
- model: CmsModel;
618
+ model: Pick<CmsModel, "singularApiName">;
636
619
  field: TField;
637
620
  plugins: CmsFieldTypePlugins;
638
621
  }): string;
@@ -713,7 +696,7 @@ export interface CmsModelFieldToGraphQLPlugin<TField extends CmsModelField = Cms
713
696
  * ```
714
697
  */
715
698
  createListFilters?: (params: {
716
- model: CmsModel;
699
+ model: Pick<CmsModel, "singularApiName">;
717
700
  field: TField;
718
701
  plugins: CmsFieldTypePlugins;
719
702
  }) => string;
@@ -2016,6 +1999,22 @@ export interface OnEntryRevisionDeleteErrorTopicParams {
2016
1999
  entry: CmsEntry;
2017
2000
  model: CmsModel;
2018
2001
  }
2002
+ export interface OnEntryBeforeDeleteMultipleTopicParams {
2003
+ model: CmsModel;
2004
+ entries: CmsEntry[];
2005
+ ids: string[];
2006
+ }
2007
+ export interface OnEntryAfterDeleteMultipleTopicParams {
2008
+ model: CmsModel;
2009
+ entries: CmsEntry[];
2010
+ ids: string[];
2011
+ }
2012
+ export interface OnEntryDeleteMultipleErrorTopicParams {
2013
+ model: CmsModel;
2014
+ entries: CmsEntry[];
2015
+ ids: string[];
2016
+ error: Error;
2017
+ }
2019
2018
  export interface OnEntryBeforeGetTopicParams {
2020
2019
  model: CmsModel;
2021
2020
  where: CmsEntryListWhere;
@@ -2046,6 +2045,34 @@ export interface CreateFromCmsEntryInput {
2046
2045
  export interface UpdateCmsEntryInput {
2047
2046
  [key: string]: any;
2048
2047
  }
2048
+ /**
2049
+ * @category Context
2050
+ * @category CmsEntry
2051
+ */
2052
+ export interface GetUniqueFieldValuesParams {
2053
+ where: CmsEntryListWhere;
2054
+ fieldId: string;
2055
+ }
2056
+ /**
2057
+ * @category CmsEntry
2058
+ */
2059
+ export interface CmsDeleteEntryOptions {
2060
+ /**
2061
+ * Runs the delete commands even if the entry is not found in the DynamoDB.
2062
+ * This is to force clean the entry records that might have been left behind a failed delete.
2063
+ */
2064
+ force?: boolean;
2065
+ }
2066
+ /**
2067
+ * @category Context
2068
+ * @category CmsEntry
2069
+ */
2070
+ export interface DeleteMultipleEntriesParams {
2071
+ entries: string[];
2072
+ }
2073
+ export declare type DeleteMultipleEntriesResponse = {
2074
+ id: string;
2075
+ }[];
2049
2076
  /**
2050
2077
  * Cms Entry CRUD methods in the context.
2051
2078
  *
@@ -2056,7 +2083,7 @@ export interface CmsEntryContext {
2056
2083
  /**
2057
2084
  * Get a single content entry for a model.
2058
2085
  */
2059
- getEntry: (model: CmsModel, params: CmsEntryGetParams) => Promise<CmsEntry | null>;
2086
+ getEntry: (model: CmsModel, params: CmsEntryGetParams) => Promise<CmsEntry>;
2060
2087
  /**
2061
2088
  * Get a list of entries for a model by a given ID (revision).
2062
2089
  */
@@ -2068,15 +2095,15 @@ export interface CmsEntryContext {
2068
2095
  /**
2069
2096
  * List entries for a model. Internal method used by get, listLatest and listPublished.
2070
2097
  */
2071
- listEntries: (model: CmsModel, params: CmsEntryListParams) => Promise<[CmsEntry[], CmsEntryMeta]>;
2098
+ listEntries: <T = CmsEntryValues>(model: CmsModel, params: CmsEntryListParams) => Promise<[CmsEntry<T>[], CmsEntryMeta]>;
2072
2099
  /**
2073
2100
  * Lists the latest entries. Used for manage API.
2074
2101
  */
2075
- listLatestEntries: (model: CmsModel, params?: CmsEntryListParams) => Promise<[CmsEntry[], CmsEntryMeta]>;
2102
+ listLatestEntries: <T = CmsEntryValues>(model: CmsModel, params?: CmsEntryListParams) => Promise<[CmsEntry<T>[], CmsEntryMeta]>;
2076
2103
  /**
2077
2104
  * List published entries. Used for read API.
2078
2105
  */
2079
- listPublishedEntries: (model: CmsModel, params?: CmsEntryListParams) => Promise<[CmsEntry[], CmsEntryMeta]>;
2106
+ listPublishedEntries: <T = CmsEntryValues>(model: CmsModel, params?: CmsEntryListParams) => Promise<[CmsEntry<T>[], CmsEntryMeta]>;
2080
2107
  /**
2081
2108
  * List published entries by IDs.
2082
2109
  */
@@ -2109,7 +2136,11 @@ export interface CmsEntryContext {
2109
2136
  /**
2110
2137
  * Delete entry with all its revisions.
2111
2138
  */
2112
- deleteEntry: (model: CmsModel, id: string) => Promise<void>;
2139
+ deleteEntry: (model: CmsModel, id: string, options?: CmsDeleteEntryOptions) => Promise<void>;
2140
+ /**
2141
+ * Delete multiple entries
2142
+ */
2143
+ deleteMultipleEntries: (model: CmsModel, params: DeleteMultipleEntriesParams) => Promise<DeleteMultipleEntriesResponse>;
2113
2144
  /**
2114
2145
  * Publish entry.
2115
2146
  */
@@ -2123,7 +2154,13 @@ export interface CmsEntryContext {
2123
2154
  */
2124
2155
  getEntryRevisions: (model: CmsModel, id: string) => Promise<CmsEntry[]>;
2125
2156
  /**
2126
- * Lifecyle events - deprecated.
2157
+ * List all unique values for a given field.
2158
+ *
2159
+ * @internal
2160
+ */
2161
+ getUniqueFieldValues: (model: CmsModel, params: GetUniqueFieldValuesParams) => Promise<string[]>;
2162
+ /**
2163
+ * Lifecycle events - deprecated.
2127
2164
  */
2128
2165
  /**
2129
2166
  * @deprecated
@@ -2469,11 +2506,11 @@ export interface CmsEntryStorageOperationsDeleteRevisionParams<T extends CmsStor
2469
2506
  latestStorageEntry: T | null;
2470
2507
  }
2471
2508
  export interface CmsEntryStorageOperationsDeleteParams {
2472
- /**
2473
- * Entry that is going to be deleted.
2474
- */
2475
2509
  entry: CmsEntry;
2476
2510
  }
2511
+ export interface CmsEntryStorageOperationsDeleteEntriesParams {
2512
+ entries: string[];
2513
+ }
2477
2514
  export interface CmsEntryStorageOperationsPublishParams<T extends CmsStorageEntry = CmsStorageEntry> {
2478
2515
  /**
2479
2516
  * The modified entry that is going to be saved as published.
@@ -2495,6 +2532,10 @@ export interface CmsEntryStorageOperationsUnpublishParams<T extends CmsStorageEn
2495
2532
  */
2496
2533
  storageEntry: T;
2497
2534
  }
2535
+ export interface CmsEntryStorageOperationsGetUniqueFieldValuesParams {
2536
+ where: CmsEntryListWhere;
2537
+ fieldId: string;
2538
+ }
2498
2539
  export interface CmsEntryStorageOperationsGetByIdsParams {
2499
2540
  ids: readonly string[];
2500
2541
  }
@@ -2608,6 +2649,10 @@ export interface CmsEntryStorageOperations<T extends CmsStorageEntry = CmsStorag
2608
2649
  * Delete the entry.
2609
2650
  */
2610
2651
  delete: (model: CmsModel, params: CmsEntryStorageOperationsDeleteParams) => Promise<void>;
2652
+ /**
2653
+ * Delete multiple entries, with a limit on how much can be deleted in one call.
2654
+ */
2655
+ deleteMultipleEntries: (model: CmsModel, params: CmsEntryStorageOperationsDeleteEntriesParams) => Promise<void>;
2611
2656
  /**
2612
2657
  * Publish the entry.
2613
2658
  */
@@ -2616,6 +2661,12 @@ export interface CmsEntryStorageOperations<T extends CmsStorageEntry = CmsStorag
2616
2661
  * Unpublish the entry.
2617
2662
  */
2618
2663
  unpublish: (model: CmsModel, params: CmsEntryStorageOperationsUnpublishParams<T>) => Promise<T>;
2664
+ /**
2665
+ * Method to list all the unique values for the given field id.
2666
+ * Simplest use case would be to aggregate tags for some content.
2667
+ * @internal
2668
+ */
2669
+ getUniqueFieldValues: (model: CmsModel, params: CmsEntryStorageOperationsGetUniqueFieldValuesParams) => Promise<string[]>;
2619
2670
  }
2620
2671
  export declare enum CONTENT_ENTRY_STATUS {
2621
2672
  DRAFT = "draft",
package/types.js CHANGED
@@ -334,6 +334,17 @@ exports.CONTENT_ENTRY_STATUS = void 0;
334
334
  * @category Context
335
335
  * @category CmsEntry
336
336
  */
337
+ /**
338
+ * @category Context
339
+ * @category CmsEntry
340
+ */
341
+ /**
342
+ * @category CmsEntry
343
+ */
344
+ /**
345
+ * @category Context
346
+ * @category CmsEntry
347
+ */
337
348
  /**
338
349
  * Cms Entry CRUD methods in the context.
339
350
  *