@webiny/api-headless-cms 0.0.0-unstable.c2780f51fe → 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 (147) 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/referenceFieldsMapping.js +34 -5
  7. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  8. package/crud/contentEntry.crud.d.ts +8 -4
  9. package/crud/contentEntry.crud.js +329 -64
  10. package/crud/contentEntry.crud.js.map +1 -1
  11. package/crud/contentModel/validateModelFields.js +1 -1
  12. package/crud/contentModel/validateModelFields.js.map +1 -1
  13. package/crud/contentModel/validation.d.ts +76 -76
  14. package/crud/contentModel.crud.d.ts +2 -0
  15. package/crud/contentModel.crud.js +22 -12
  16. package/crud/contentModel.crud.js.map +1 -1
  17. package/crud/contentModelGroup/validation.d.ts +4 -4
  18. package/crud/contentModelGroup.crud.d.ts +2 -0
  19. package/crud/contentModelGroup.crud.js +42 -27
  20. package/crud/contentModelGroup.crud.js.map +1 -1
  21. package/crud/settings.crud.d.ts +2 -0
  22. package/crud/settings.crud.js +2 -6
  23. package/crud/settings.crud.js.map +1 -1
  24. package/graphql/getSchema.js +1 -1
  25. package/graphql/getSchema.js.map +1 -1
  26. package/graphql/index.d.ts +1 -1
  27. package/graphql/schema/baseSchema.js +31 -0
  28. package/graphql/schema/baseSchema.js.map +1 -1
  29. package/graphql/schema/contentEntries.js +6 -1
  30. package/graphql/schema/contentEntries.js.map +1 -1
  31. package/graphql/schema/createFieldResolvers.d.ts +1 -1
  32. package/graphql/schema/createFieldResolvers.js +6 -12
  33. package/graphql/schema/createFieldResolvers.js.map +1 -1
  34. package/graphql/schema/createFieldTypePluginRecords.d.ts +3 -0
  35. package/graphql/schema/createFieldTypePluginRecords.js +13 -0
  36. package/graphql/schema/createFieldTypePluginRecords.js.map +1 -0
  37. package/graphql/schema/createManageResolvers.d.ts +1 -1
  38. package/graphql/schema/createManageResolvers.js +14 -0
  39. package/graphql/schema/createManageResolvers.js.map +1 -1
  40. package/graphql/schema/createManageSDL.js +51 -28
  41. package/graphql/schema/createManageSDL.js.map +1 -1
  42. package/graphql/schema/createReadSDL.js +23 -19
  43. package/graphql/schema/createReadSDL.js.map +1 -1
  44. package/graphql/schema/resolvers/manage/resolveDelete.d.ts +2 -1
  45. package/graphql/schema/resolvers/manage/resolveDelete.js +13 -3
  46. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  47. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.d.ts +7 -0
  48. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +20 -0
  49. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -0
  50. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.d.ts +4 -0
  51. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +18 -0
  52. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -0
  53. package/graphql/schema/resolvers/manage/resolveMove.d.ts +8 -0
  54. package/graphql/schema/resolvers/manage/resolveMove.js +30 -0
  55. package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -0
  56. package/graphql/schema/schemaPlugins.js +2 -11
  57. package/graphql/schema/schemaPlugins.js.map +1 -1
  58. package/graphql/system.d.ts +2 -5
  59. package/graphql/system.js +1 -11
  60. package/graphql/system.js.map +1 -1
  61. package/graphqlFields/dynamicZone/dynamicZoneField.js +43 -28
  62. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  63. package/graphqlFields/number.js +1 -0
  64. package/graphqlFields/number.js.map +1 -1
  65. package/graphqlFields/object.js +2 -2
  66. package/graphqlFields/object.js.map +1 -1
  67. package/graphqlFields/text.js +2 -0
  68. package/graphqlFields/text.js.map +1 -1
  69. package/index.d.ts +1 -1
  70. package/package.json +31 -35
  71. package/plugins/CmsModelPlugin.d.ts +3 -1
  72. package/plugins/CmsModelPlugin.js.map +1 -1
  73. package/types.d.ts +101 -17
  74. package/types.js +11 -0
  75. package/types.js.map +1 -1
  76. package/utils/converters/valueKeyStorageConverter.js +5 -2
  77. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  78. package/utils/createTypeFromFields.js +1 -1
  79. package/utils/createTypeFromFields.js.map +1 -1
  80. package/utils/getBaseFieldType.d.ts +1 -3
  81. package/utils/getBaseFieldType.js.map +1 -1
  82. package/utils/getEntryDescription.d.ts +1 -1
  83. package/utils/getEntryDescription.js.map +1 -1
  84. package/utils/getEntryImage.d.ts +1 -1
  85. package/utils/getEntryImage.js.map +1 -1
  86. package/utils/getEntryTitle.d.ts +1 -1
  87. package/utils/getEntryTitle.js.map +1 -1
  88. package/utils/permissions/EntriesPermissions.d.ts +4 -0
  89. package/utils/permissions/EntriesPermissions.js +9 -0
  90. package/utils/permissions/EntriesPermissions.js.map +1 -0
  91. package/utils/permissions/ModelGroupsPermissions.d.ts +11 -0
  92. package/utils/permissions/ModelGroupsPermissions.js +48 -0
  93. package/utils/permissions/ModelGroupsPermissions.js.map +1 -0
  94. package/utils/permissions/ModelsPermissions.d.ts +20 -0
  95. package/utils/permissions/ModelsPermissions.js +91 -0
  96. package/utils/permissions/ModelsPermissions.js.map +1 -0
  97. package/utils/permissions/SettingsPermissions.d.ts +4 -0
  98. package/utils/permissions/SettingsPermissions.js +9 -0
  99. package/utils/permissions/SettingsPermissions.js.map +1 -0
  100. package/utils/renderFields.d.ts +2 -1
  101. package/utils/renderFields.js +2 -1
  102. package/utils/renderFields.js.map +1 -1
  103. package/utils/renderGetFilterFields.d.ts +2 -2
  104. package/utils/renderGetFilterFields.js +7 -20
  105. package/utils/renderGetFilterFields.js.map +1 -1
  106. package/utils/renderInputFields.d.ts +2 -1
  107. package/utils/renderInputFields.js +14 -6
  108. package/utils/renderInputFields.js.map +1 -1
  109. package/utils/renderListFilterFields.d.ts +3 -1
  110. package/utils/renderListFilterFields.js +16 -21
  111. package/utils/renderListFilterFields.js.map +1 -1
  112. package/utils/renderSortEnum.d.ts +3 -2
  113. package/utils/renderSortEnum.js +5 -1
  114. package/utils/renderSortEnum.js.map +1 -1
  115. package/crud/contentModel/createFieldModels.d.ts +0 -2
  116. package/crud/contentModel/createFieldModels.js +0 -26
  117. package/crud/contentModel/createFieldModels.js.map +0 -1
  118. package/crud/contentModel/fieldIdValidation.d.ts +0 -1
  119. package/crud/contentModel/fieldIdValidation.js +0 -25
  120. package/crud/contentModel/fieldIdValidation.js.map +0 -1
  121. package/crud/contentModel/idValidation.d.ts +0 -1
  122. package/crud/contentModel/idValidation.js +0 -22
  123. package/crud/contentModel/idValidation.js.map +0 -1
  124. package/crud/contentModel/models.d.ts +0 -4
  125. package/crud/contentModel/models.js +0 -192
  126. package/crud/contentModel/models.js.map +0 -1
  127. package/crud/contentModel/systemFields.d.ts +0 -1
  128. package/crud/contentModel/systemFields.js +0 -8
  129. package/crud/contentModel/systemFields.js.map +0 -1
  130. package/upgrades/5.33.0/index.d.ts +0 -3
  131. package/upgrades/5.33.0/index.js +0 -182
  132. package/upgrades/5.33.0/index.js.map +0 -1
  133. package/upgrades/index.d.ts +0 -1
  134. package/upgrades/index.js +0 -12
  135. package/upgrades/index.js.map +0 -1
  136. package/utils/access.d.ts +0 -8
  137. package/utils/access.js +0 -76
  138. package/utils/access.js.map +0 -1
  139. package/utils/ownership.d.ts +0 -8
  140. package/utils/ownership.js +0 -33
  141. package/utils/ownership.js.map +0 -1
  142. package/utils/permissions.d.ts +0 -7
  143. package/utils/permissions.js +0 -91
  144. package/utils/permissions.js.map +0 -1
  145. package/utils/pluralizedTypeName.d.ts +0 -1
  146. package/utils/pluralizedTypeName.js +0 -26
  147. package/utils/pluralizedTypeName.js.map +0 -1
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 {
@@ -118,6 +117,7 @@ export interface CmsModelFieldSettings {
118
117
  */
119
118
  [key: string]: any;
120
119
  }
120
+ export declare type CmsModelFieldType = "boolean" | "datetime" | "file" | "long-text" | "number" | "object" | "ref" | "rich-text" | "text" | "dynamicZone" | string;
121
121
  /**
122
122
  * A definition for content model field. This type exists on the app side as well.
123
123
  *
@@ -138,7 +138,7 @@ export interface CmsModelField {
138
138
  * A type of the field.
139
139
  * We are defining our built-in fields, so people know which are available by the default.
140
140
  */
141
- type: "boolean" | "datetime" | "file" | "long-text" | "number" | "object" | "ref" | "rich-text" | "text" | "dynamicZone" | string;
141
+ type: CmsModelFieldType;
142
142
  /**
143
143
  * A unique storage ID for storing actual values.
144
144
  * Must in form of a-zA-Z0-9@a-zA-Z0-9
@@ -513,6 +513,7 @@ interface CmsModelFieldToGraphQLCreateResolverParams<TField> {
513
513
  graphQLType: string;
514
514
  field: TField;
515
515
  createFieldResolvers: any;
516
+ fieldTypePlugins: CmsFieldTypePlugins;
516
517
  }
517
518
  export interface CmsModelFieldToGraphQLCreateResolver<TField = CmsModelField> {
518
519
  (params: CmsModelFieldToGraphQLCreateResolverParams<TField>): GraphQLFieldResolver | {
@@ -594,7 +595,7 @@ export interface CmsModelFieldToGraphQLPlugin<TField extends CmsModelField = Cms
594
595
  */
595
596
  createStorageId?: (params: {
596
597
  model: CmsModel;
597
- field: TField;
598
+ field: Omit<TField, "storageId"> & Partial<Pick<TField, "storageId">>;
598
599
  }) => string | null | undefined;
599
600
  /**
600
601
  * Read API methods.
@@ -612,7 +613,6 @@ export interface CmsModelFieldToGraphQLPlugin<TField extends CmsModelField = Cms
612
613
  * ```
613
614
  */
614
615
  createGetFilters?(params: {
615
- model: CmsModel;
616
616
  field: TField;
617
617
  }): string;
618
618
  /**
@@ -632,7 +632,7 @@ export interface CmsModelFieldToGraphQLPlugin<TField extends CmsModelField = Cms
632
632
  * ```
633
633
  */
634
634
  createListFilters?(params: {
635
- model: CmsModel;
635
+ model: Pick<CmsModel, "singularApiName">;
636
636
  field: TField;
637
637
  plugins: CmsFieldTypePlugins;
638
638
  }): string;
@@ -713,7 +713,7 @@ export interface CmsModelFieldToGraphQLPlugin<TField extends CmsModelField = Cms
713
713
  * ```
714
714
  */
715
715
  createListFilters?: (params: {
716
- model: CmsModel;
716
+ model: Pick<CmsModel, "singularApiName">;
717
717
  field: TField;
718
718
  plugins: CmsFieldTypePlugins;
719
719
  }) => string;
@@ -1478,6 +1478,12 @@ export interface CmsEntry<T = CmsEntryValues> {
1478
1478
  * @see CmsModelField
1479
1479
  */
1480
1480
  values: T;
1481
+ /**
1482
+ * Advanced Content Organization
1483
+ */
1484
+ location?: {
1485
+ folderId?: string | null;
1486
+ };
1481
1487
  /**
1482
1488
  * Settings for the given entry.
1483
1489
  *
@@ -1493,6 +1499,10 @@ export interface CmsEntry<T = CmsEntryValues> {
1493
1499
  export interface CmsStorageEntry extends CmsEntry {
1494
1500
  [key: string]: any;
1495
1501
  }
1502
+ export interface CmsEntryUniqueValue {
1503
+ value: string;
1504
+ count: number;
1505
+ }
1496
1506
  /**
1497
1507
  * A definition for content model manager to be used in the code.
1498
1508
  * The default one uses `CmsEntryContext` methods internally, but devs can change to what every they want.
@@ -1935,7 +1945,7 @@ export interface OnEntryAfterUpdateTopicParams {
1935
1945
  }
1936
1946
  export interface OnEntryUpdateErrorTopicParams {
1937
1947
  error: Error;
1938
- input: CreateFromCmsEntryInput;
1948
+ input: UpdateCmsEntryInput;
1939
1949
  entry: CmsEntry;
1940
1950
  model: CmsModel;
1941
1951
  }
@@ -2016,6 +2026,22 @@ export interface OnEntryRevisionDeleteErrorTopicParams {
2016
2026
  entry: CmsEntry;
2017
2027
  model: CmsModel;
2018
2028
  }
2029
+ export interface OnEntryBeforeDeleteMultipleTopicParams {
2030
+ model: CmsModel;
2031
+ entries: CmsEntry[];
2032
+ ids: string[];
2033
+ }
2034
+ export interface OnEntryAfterDeleteMultipleTopicParams {
2035
+ model: CmsModel;
2036
+ entries: CmsEntry[];
2037
+ ids: string[];
2038
+ }
2039
+ export interface OnEntryDeleteMultipleErrorTopicParams {
2040
+ model: CmsModel;
2041
+ entries: CmsEntry[];
2042
+ ids: string[];
2043
+ error: Error;
2044
+ }
2019
2045
  export interface OnEntryBeforeGetTopicParams {
2020
2046
  model: CmsModel;
2021
2047
  where: CmsEntryListWhere;
@@ -2030,6 +2056,9 @@ export interface EntryBeforeListTopicParams {
2030
2056
  */
2031
2057
  export interface CreateCmsEntryInput {
2032
2058
  id?: string;
2059
+ wbyAco_location?: {
2060
+ folderId?: string | null;
2061
+ };
2033
2062
  [key: string]: any;
2034
2063
  }
2035
2064
  /**
@@ -2044,8 +2073,39 @@ export interface CreateFromCmsEntryInput {
2044
2073
  * @category CmsEntry
2045
2074
  */
2046
2075
  export interface UpdateCmsEntryInput {
2076
+ wbyAco_location?: {
2077
+ folderId?: string | null;
2078
+ };
2047
2079
  [key: string]: any;
2048
2080
  }
2081
+ /**
2082
+ * @category Context
2083
+ * @category CmsEntry
2084
+ */
2085
+ export interface GetUniqueFieldValuesParams {
2086
+ where: CmsEntryListWhere;
2087
+ fieldId: string;
2088
+ }
2089
+ /**
2090
+ * @category CmsEntry
2091
+ */
2092
+ export interface CmsDeleteEntryOptions {
2093
+ /**
2094
+ * Runs the delete commands even if the entry is not found in the DynamoDB.
2095
+ * This is to force clean the entry records that might have been left behind a failed delete.
2096
+ */
2097
+ force?: boolean;
2098
+ }
2099
+ /**
2100
+ * @category Context
2101
+ * @category CmsEntry
2102
+ */
2103
+ export interface DeleteMultipleEntriesParams {
2104
+ entries: string[];
2105
+ }
2106
+ export declare type DeleteMultipleEntriesResponse = {
2107
+ id: string;
2108
+ }[];
2049
2109
  /**
2050
2110
  * Cms Entry CRUD methods in the context.
2051
2111
  *
@@ -2056,7 +2116,7 @@ export interface CmsEntryContext {
2056
2116
  /**
2057
2117
  * Get a single content entry for a model.
2058
2118
  */
2059
- getEntry: (model: CmsModel, params: CmsEntryGetParams) => Promise<CmsEntry | null>;
2119
+ getEntry: (model: CmsModel, params: CmsEntryGetParams) => Promise<CmsEntry>;
2060
2120
  /**
2061
2121
  * Get a list of entries for a model by a given ID (revision).
2062
2122
  */
@@ -2068,15 +2128,15 @@ export interface CmsEntryContext {
2068
2128
  /**
2069
2129
  * List entries for a model. Internal method used by get, listLatest and listPublished.
2070
2130
  */
2071
- listEntries: (model: CmsModel, params: CmsEntryListParams) => Promise<[CmsEntry[], CmsEntryMeta]>;
2131
+ listEntries: <T = CmsEntryValues>(model: CmsModel, params: CmsEntryListParams) => Promise<[CmsEntry<T>[], CmsEntryMeta]>;
2072
2132
  /**
2073
2133
  * Lists the latest entries. Used for manage API.
2074
2134
  */
2075
- listLatestEntries: (model: CmsModel, params?: CmsEntryListParams) => Promise<[CmsEntry[], CmsEntryMeta]>;
2135
+ listLatestEntries: <T = CmsEntryValues>(model: CmsModel, params?: CmsEntryListParams) => Promise<[CmsEntry<T>[], CmsEntryMeta]>;
2076
2136
  /**
2077
2137
  * List published entries. Used for read API.
2078
2138
  */
2079
- listPublishedEntries: (model: CmsModel, params?: CmsEntryListParams) => Promise<[CmsEntry[], CmsEntryMeta]>;
2139
+ listPublishedEntries: <T = CmsEntryValues>(model: CmsModel, params?: CmsEntryListParams) => Promise<[CmsEntry<T>[], CmsEntryMeta]>;
2080
2140
  /**
2081
2141
  * List published entries by IDs.
2082
2142
  */
@@ -2109,7 +2169,11 @@ export interface CmsEntryContext {
2109
2169
  /**
2110
2170
  * Delete entry with all its revisions.
2111
2171
  */
2112
- deleteEntry: (model: CmsModel, id: string) => Promise<void>;
2172
+ deleteEntry: (model: CmsModel, id: string, options?: CmsDeleteEntryOptions) => Promise<void>;
2173
+ /**
2174
+ * Delete multiple entries
2175
+ */
2176
+ deleteMultipleEntries: (model: CmsModel, params: DeleteMultipleEntriesParams) => Promise<DeleteMultipleEntriesResponse>;
2113
2177
  /**
2114
2178
  * Publish entry.
2115
2179
  */
@@ -2123,7 +2187,13 @@ export interface CmsEntryContext {
2123
2187
  */
2124
2188
  getEntryRevisions: (model: CmsModel, id: string) => Promise<CmsEntry[]>;
2125
2189
  /**
2126
- * Lifecyle events - deprecated.
2190
+ * List all unique values for a given field.
2191
+ *
2192
+ * @internal
2193
+ */
2194
+ getUniqueFieldValues: (model: CmsModel, params: GetUniqueFieldValuesParams) => Promise<CmsEntryUniqueValue[]>;
2195
+ /**
2196
+ * Lifecycle events - deprecated.
2127
2197
  */
2128
2198
  /**
2129
2199
  * @deprecated
@@ -2469,11 +2539,11 @@ export interface CmsEntryStorageOperationsDeleteRevisionParams<T extends CmsStor
2469
2539
  latestStorageEntry: T | null;
2470
2540
  }
2471
2541
  export interface CmsEntryStorageOperationsDeleteParams {
2472
- /**
2473
- * Entry that is going to be deleted.
2474
- */
2475
2542
  entry: CmsEntry;
2476
2543
  }
2544
+ export interface CmsEntryStorageOperationsDeleteEntriesParams {
2545
+ entries: string[];
2546
+ }
2477
2547
  export interface CmsEntryStorageOperationsPublishParams<T extends CmsStorageEntry = CmsStorageEntry> {
2478
2548
  /**
2479
2549
  * The modified entry that is going to be saved as published.
@@ -2495,6 +2565,10 @@ export interface CmsEntryStorageOperationsUnpublishParams<T extends CmsStorageEn
2495
2565
  */
2496
2566
  storageEntry: T;
2497
2567
  }
2568
+ export interface CmsEntryStorageOperationsGetUniqueFieldValuesParams {
2569
+ where: CmsEntryListWhere;
2570
+ fieldId: string;
2571
+ }
2498
2572
  export interface CmsEntryStorageOperationsGetByIdsParams {
2499
2573
  ids: readonly string[];
2500
2574
  }
@@ -2608,6 +2682,10 @@ export interface CmsEntryStorageOperations<T extends CmsStorageEntry = CmsStorag
2608
2682
  * Delete the entry.
2609
2683
  */
2610
2684
  delete: (model: CmsModel, params: CmsEntryStorageOperationsDeleteParams) => Promise<void>;
2685
+ /**
2686
+ * Delete multiple entries, with a limit on how much can be deleted in one call.
2687
+ */
2688
+ deleteMultipleEntries: (model: CmsModel, params: CmsEntryStorageOperationsDeleteEntriesParams) => Promise<void>;
2611
2689
  /**
2612
2690
  * Publish the entry.
2613
2691
  */
@@ -2616,6 +2694,12 @@ export interface CmsEntryStorageOperations<T extends CmsStorageEntry = CmsStorag
2616
2694
  * Unpublish the entry.
2617
2695
  */
2618
2696
  unpublish: (model: CmsModel, params: CmsEntryStorageOperationsUnpublishParams<T>) => Promise<T>;
2697
+ /**
2698
+ * Method to list all the unique values for the given field id.
2699
+ * Simplest use case would be to aggregate tags for some content.
2700
+ * @internal
2701
+ */
2702
+ getUniqueFieldValues: (model: CmsModel, params: CmsEntryStorageOperationsGetUniqueFieldValuesParams) => Promise<CmsEntryUniqueValue[]>;
2619
2703
  }
2620
2704
  export declare enum CONTENT_ENTRY_STATUS {
2621
2705
  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
  *