@nixxie-cms/core 1.0.3 → 1.1.0

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 (202) hide show
  1. package/CHANGES-1.1.md +134 -0
  2. package/context/dist/nixxie-cms-core-context.cjs.js +4 -3
  3. package/context/dist/nixxie-cms-core-context.esm.js +3 -2
  4. package/dist/declarations/src/access.d.ts +2 -2
  5. package/dist/declarations/src/access.d.ts.map +1 -1
  6. package/dist/declarations/src/admin-ui/components/Navigation.d.ts +2 -2
  7. package/dist/declarations/src/admin-ui/components/Navigation.d.ts.map +1 -1
  8. package/dist/declarations/src/admin-ui/context.d.ts +6 -6
  9. package/dist/declarations/src/admin-ui/context.d.ts.map +1 -1
  10. package/dist/declarations/src/admin-ui/utils/Fields.d.ts +3 -3
  11. package/dist/declarations/src/admin-ui/utils/Fields.d.ts.map +1 -1
  12. package/dist/declarations/src/admin-ui/utils/filters.d.ts +5 -5
  13. package/dist/declarations/src/admin-ui/utils/filters.d.ts.map +1 -1
  14. package/dist/declarations/src/admin-ui/utils/useCreateItem.d.ts +3 -3
  15. package/dist/declarations/src/admin-ui/utils/useCreateItem.d.ts.map +1 -1
  16. package/dist/declarations/src/admin-ui/utils/utils.d.ts +2 -2
  17. package/dist/declarations/src/admin-ui/utils/utils.d.ts.map +1 -1
  18. package/dist/declarations/src/context.d.ts +1 -1
  19. package/dist/declarations/src/context.d.ts.map +1 -1
  20. package/dist/declarations/src/fields/types/bigInt/index.d.ts +3 -3
  21. package/dist/declarations/src/fields/types/bigInt/index.d.ts.map +1 -1
  22. package/dist/declarations/src/fields/types/bytes/index.d.ts +3 -3
  23. package/dist/declarations/src/fields/types/bytes/index.d.ts.map +1 -1
  24. package/dist/declarations/src/fields/types/calendarDay/index.d.ts +3 -3
  25. package/dist/declarations/src/fields/types/calendarDay/index.d.ts.map +1 -1
  26. package/dist/declarations/src/fields/types/checkbox/index.d.ts +3 -3
  27. package/dist/declarations/src/fields/types/checkbox/index.d.ts.map +1 -1
  28. package/dist/declarations/src/fields/types/decimal/index.d.ts +3 -3
  29. package/dist/declarations/src/fields/types/decimal/index.d.ts.map +1 -1
  30. package/dist/declarations/src/fields/types/file/index.d.ts +4 -4
  31. package/dist/declarations/src/fields/types/file/index.d.ts.map +1 -1
  32. package/dist/declarations/src/fields/types/float/index.d.ts +3 -3
  33. package/dist/declarations/src/fields/types/float/index.d.ts.map +1 -1
  34. package/dist/declarations/src/fields/types/image/index.d.ts +4 -4
  35. package/dist/declarations/src/fields/types/image/index.d.ts.map +1 -1
  36. package/dist/declarations/src/fields/types/integer/index.d.ts +3 -3
  37. package/dist/declarations/src/fields/types/integer/index.d.ts.map +1 -1
  38. package/dist/declarations/src/fields/types/json/index.d.ts +3 -3
  39. package/dist/declarations/src/fields/types/json/index.d.ts.map +1 -1
  40. package/dist/declarations/src/fields/types/multiselect/index.d.ts +3 -3
  41. package/dist/declarations/src/fields/types/multiselect/index.d.ts.map +1 -1
  42. package/dist/declarations/src/fields/types/multiselect/views/index.d.ts.map +1 -1
  43. package/dist/declarations/src/fields/types/password/index.d.ts +3 -3
  44. package/dist/declarations/src/fields/types/password/index.d.ts.map +1 -1
  45. package/dist/declarations/src/fields/types/relationship/index.d.ts +8 -8
  46. package/dist/declarations/src/fields/types/relationship/index.d.ts.map +1 -1
  47. package/dist/declarations/src/fields/types/relationship/views/ComboboxMany.d.ts +3 -3
  48. package/dist/declarations/src/fields/types/relationship/views/ComboboxMany.d.ts.map +1 -1
  49. package/dist/declarations/src/fields/types/relationship/views/ComboboxSingle.d.ts +3 -3
  50. package/dist/declarations/src/fields/types/relationship/views/ComboboxSingle.d.ts.map +1 -1
  51. package/dist/declarations/src/fields/types/relationship/views/index.d.ts +3 -3
  52. package/dist/declarations/src/fields/types/relationship/views/index.d.ts.map +1 -1
  53. package/dist/declarations/src/fields/types/relationship/views/types.d.ts +3 -3
  54. package/dist/declarations/src/fields/types/relationship/views/types.d.ts.map +1 -1
  55. package/dist/declarations/src/fields/types/select/index.d.ts +3 -3
  56. package/dist/declarations/src/fields/types/select/index.d.ts.map +1 -1
  57. package/dist/declarations/src/fields/types/text/index.d.ts +3 -3
  58. package/dist/declarations/src/fields/types/text/index.d.ts.map +1 -1
  59. package/dist/declarations/src/fields/types/timestamp/index.d.ts +3 -3
  60. package/dist/declarations/src/fields/types/timestamp/index.d.ts.map +1 -1
  61. package/dist/declarations/src/fields/types/virtual/index.d.ts +7 -7
  62. package/dist/declarations/src/fields/types/virtual/index.d.ts.map +1 -1
  63. package/dist/declarations/src/helpers.d.ts +249 -13
  64. package/dist/declarations/src/helpers.d.ts.map +1 -1
  65. package/dist/declarations/src/index.d.ts +9 -4
  66. package/dist/declarations/src/index.d.ts.map +1 -1
  67. package/dist/declarations/src/internal-unstable/admin-ui/pages/ListPage/index.d.ts.map +1 -1
  68. package/dist/declarations/src/lib/admin-meta.d.ts +11 -11
  69. package/dist/declarations/src/lib/admin-meta.d.ts.map +1 -1
  70. package/dist/declarations/src/lib/core/access-control.d.ts +18 -18
  71. package/dist/declarations/src/lib/core/access-control.d.ts.map +1 -1
  72. package/dist/declarations/src/lib/core/cascade.d.ts +47 -0
  73. package/dist/declarations/src/lib/core/cascade.d.ts.map +1 -0
  74. package/dist/declarations/src/lib/core/initialise-lists.d.ts +27 -24
  75. package/dist/declarations/src/lib/core/initialise-lists.d.ts.map +1 -1
  76. package/dist/declarations/src/lib/env.d.ts +9 -0
  77. package/dist/declarations/src/lib/env.d.ts.map +1 -0
  78. package/dist/declarations/src/lib/system.d.ts +1 -1
  79. package/dist/declarations/src/lib/system.d.ts.map +1 -1
  80. package/dist/declarations/src/list-features.d.ts +162 -0
  81. package/dist/declarations/src/list-features.d.ts.map +1 -0
  82. package/dist/declarations/src/schema.d.ts +24 -23
  83. package/dist/declarations/src/schema.d.ts.map +1 -1
  84. package/dist/declarations/src/session.d.ts +75 -0
  85. package/dist/declarations/src/session.d.ts.map +1 -1
  86. package/dist/declarations/src/types/admin-meta.d.ts +11 -11
  87. package/dist/declarations/src/types/admin-meta.d.ts.map +1 -1
  88. package/dist/declarations/src/types/config/access-control.d.ts +42 -42
  89. package/dist/declarations/src/types/config/access-control.d.ts.map +1 -1
  90. package/dist/declarations/src/types/config/fields.d.ts +19 -19
  91. package/dist/declarations/src/types/config/fields.d.ts.map +1 -1
  92. package/dist/declarations/src/types/config/hooks.d.ts +131 -131
  93. package/dist/declarations/src/types/config/hooks.d.ts.map +1 -1
  94. package/dist/declarations/src/types/config/index.d.ts +171 -8
  95. package/dist/declarations/src/types/config/index.d.ts.map +1 -1
  96. package/dist/declarations/src/types/config/lists.d.ts +146 -108
  97. package/dist/declarations/src/types/config/lists.d.ts.map +1 -1
  98. package/dist/declarations/src/types/context.d.ts +349 -47
  99. package/dist/declarations/src/types/context.d.ts.map +1 -1
  100. package/dist/declarations/src/types/next-fields.d.ts +28 -28
  101. package/dist/declarations/src/types/next-fields.d.ts.map +1 -1
  102. package/dist/declarations/src/types/type-info.d.ts +3 -3
  103. package/dist/declarations/src/types/type-info.d.ts.map +1 -1
  104. package/dist/{express-7559ca2d.esm.js → express-0abbce07.esm.js} +6 -6
  105. package/dist/{express-455ae20c.cjs.js → express-7ca6f76a.cjs.js} +6 -6
  106. package/dist/{index-15c8f81e.esm.js → index-5d8b0b4e.esm.js} +363 -183
  107. package/dist/index-6055753b.cjs.js +393 -0
  108. package/dist/{index-42045902.cjs.js → index-ac29f382.cjs.js} +363 -185
  109. package/dist/index-f1703b7b.esm.js +386 -0
  110. package/dist/nixxie-cms-core.cjs.js +1387 -30
  111. package/dist/nixxie-cms-core.esm.js +1361 -24
  112. package/dist/{non-null-graphql-add6bb3d.cjs.js → non-null-graphql-4a44c122.cjs.js} +1 -1
  113. package/dist/{non-null-graphql-a84ed64d.esm.js → non-null-graphql-8c5feaae.esm.js} +1 -1
  114. package/dist/{resolve-hooks-165a9ce2.cjs.js → resolve-hooks-10a5f84c.cjs.js} +240 -6
  115. package/dist/{resolve-hooks-6813a045.esm.js → resolve-hooks-9e676794.esm.js} +238 -7
  116. package/dist/{system-03e49e4f.esm.js → system-4d2a2648.esm.js} +32 -7
  117. package/dist/{system-a321642d.cjs.js → system-69e1a285.cjs.js} +32 -7
  118. package/fields/dist/nixxie-cms-core-fields.cjs.js +29 -576
  119. package/fields/dist/nixxie-cms-core-fields.esm.js +18 -565
  120. package/fields/types/bytes/dist/nixxie-cms-core-fields-types-bytes.cjs.js +4 -2
  121. package/fields/types/bytes/dist/nixxie-cms-core-fields-types-bytes.esm.js +4 -2
  122. package/fields/types/multiselect/views/dist/nixxie-cms-core-fields-types-multiselect-views.cjs.js +1 -6
  123. package/fields/types/multiselect/views/dist/nixxie-cms-core-fields-types-multiselect-views.esm.js +1 -6
  124. package/fields/types/password/dist/nixxie-cms-core-fields-types-password.cjs.js +4 -2
  125. package/fields/types/password/dist/nixxie-cms-core-fields-types-password.esm.js +4 -2
  126. package/internal-unstable/artifacts/dist/nixxie-cms-core-internal-unstable-artifacts.cjs.js +4 -3
  127. package/internal-unstable/artifacts/dist/nixxie-cms-core-internal-unstable-artifacts.esm.js +4 -3
  128. package/package.json +4 -4
  129. package/scripts/cli/dist/nixxie-cms-core-scripts-cli.cjs.js +4 -3
  130. package/scripts/cli/dist/nixxie-cms-core-scripts-cli.esm.js +4 -3
  131. package/scripts/dist/nixxie-cms-core-scripts.cjs.js +4 -3
  132. package/scripts/dist/nixxie-cms-core-scripts.esm.js +4 -3
  133. package/session/dist/nixxie-cms-core-session.cjs.js +286 -0
  134. package/session/dist/nixxie-cms-core-session.esm.js +279 -1
  135. package/src/access.ts +25 -25
  136. package/src/admin-ui/admin-meta-graphql.ts +5 -5
  137. package/src/admin-ui/components/CreateButtonLink.tsx +46 -46
  138. package/src/admin-ui/components/Navigation.tsx +3 -3
  139. package/src/admin-ui/context.tsx +6 -6
  140. package/src/admin-ui/utils/Fields.tsx +241 -241
  141. package/src/admin-ui/utils/actionData.ts +36 -36
  142. package/src/admin-ui/utils/filters.ts +148 -148
  143. package/src/admin-ui/utils/useCreateItem.ts +171 -171
  144. package/src/admin-ui/utils/utils.tsx +127 -127
  145. package/src/context.ts +1 -1
  146. package/src/fields/non-null-graphql.ts +115 -115
  147. package/src/fields/types/bigInt/index.ts +6 -6
  148. package/src/fields/types/bytes/index.ts +6 -6
  149. package/src/fields/types/calendarDay/index.ts +18 -19
  150. package/src/fields/types/checkbox/index.ts +6 -6
  151. package/src/fields/types/decimal/index.ts +6 -6
  152. package/src/fields/types/file/index.ts +8 -8
  153. package/src/fields/types/float/index.ts +6 -6
  154. package/src/fields/types/image/index.ts +8 -8
  155. package/src/fields/types/integer/index.ts +6 -6
  156. package/src/fields/types/json/index.ts +5 -5
  157. package/src/fields/types/multiselect/index.ts +7 -7
  158. package/src/fields/types/multiselect/views/index.tsx +149 -151
  159. package/src/fields/types/password/index.ts +6 -6
  160. package/src/fields/types/relationship/index.ts +13 -13
  161. package/src/fields/types/relationship/views/ComboboxMany.tsx +110 -110
  162. package/src/fields/types/relationship/views/ComboboxSingle.tsx +115 -115
  163. package/src/fields/types/relationship/views/ContextualActions.tsx +139 -139
  164. package/src/fields/types/relationship/views/index.tsx +492 -492
  165. package/src/fields/types/relationship/views/types.ts +46 -46
  166. package/src/fields/types/relationship/views/useApolloQuery.ts +185 -185
  167. package/src/fields/types/relationship/views/useFilter.tsx +109 -109
  168. package/src/fields/types/select/index.ts +6 -6
  169. package/src/fields/types/text/index.ts +6 -6
  170. package/src/fields/types/timestamp/index.ts +23 -21
  171. package/src/fields/types/virtual/index.ts +11 -11
  172. package/src/helpers.ts +773 -42
  173. package/src/index.ts +66 -24
  174. package/src/internal-unstable/admin-ui/pages/ItemPage/common.tsx +4 -4
  175. package/src/internal-unstable/admin-ui/pages/ItemPage/index.tsx +5 -5
  176. package/src/internal-unstable/admin-ui/pages/ListPage/index.tsx +8 -8
  177. package/src/lib/admin-meta.ts +369 -369
  178. package/src/lib/context/createContext.ts +5 -0
  179. package/src/lib/core/access-control.ts +434 -434
  180. package/src/lib/core/cascade.ts +236 -0
  181. package/src/lib/core/initialise-lists.ts +49 -33
  182. package/src/lib/core/mutations/index.ts +7 -0
  183. package/src/lib/core/mutations/nested-mutation-many-input-resolvers.ts +145 -145
  184. package/src/lib/core/mutations/nested-mutation-one-input-resolvers.ts +71 -71
  185. package/src/lib/core/queries/output-field.ts +178 -178
  186. package/src/lib/env.ts +50 -0
  187. package/src/lib/id-field.ts +2 -2
  188. package/src/lib/system.ts +221 -207
  189. package/src/lib/typescript-schema-printer.ts +227 -227
  190. package/src/list-features.ts +476 -0
  191. package/src/schema.ts +91 -22
  192. package/src/session.ts +225 -0
  193. package/src/types/admin-meta.ts +218 -218
  194. package/src/types/config/access-control.ts +186 -186
  195. package/src/types/config/fields.ts +96 -96
  196. package/src/types/config/hooks.ts +529 -529
  197. package/src/types/config/index.ts +185 -7
  198. package/src/types/config/lists.ts +606 -565
  199. package/src/types/context.ts +426 -55
  200. package/src/types/next-fields.ts +31 -31
  201. package/src/types/type-info.ts +38 -38
  202. package/src/types/type-tests.ts +21 -21
@@ -5,13 +5,13 @@ import type { Options as BodyParserOptions } from 'body-parser';
5
5
  import type { CorsOptions } from 'cors';
6
6
  import type express from 'express';
7
7
  import type { GraphQLSchema } from 'graphql';
8
- import type { BaseNixxieTypeInfo, DatabaseProvider, NixxieAiService, NixxieAuditService, NixxieCacheService, NixxieContext, NixxieEmailService, NixxieHealthService, NixxieJobsService, NixxieNotificationsService, NixxieRateLimitService, NixxieSearchService, NixxieStorageService, NixxieWebhooksService } from "../index.js";
8
+ import type { BaseNixxieTypeInfo, DatabaseProvider, NixxieAiService, NixxieApiKeysService, NixxieAuditService, NixxieBackupService, NixxieCacheService, NixxieContext, NixxieEmailService, NixxieHealthService, NixxieJobsService, NixxieLoggerService, NixxieNotificationsService, NixxieRateLimitService, NixxieSearchService, NixxieStorageService, NixxieVersioningService, NixxieWebhooksService, NixxieWorkflowService } from "../index.js";
9
9
  import type { SessionStrategy } from "../session.js";
10
10
  import type { MaybePromise } from "../utils.js";
11
- import type { FieldAccessControl, ListAccessControl } from "./access-control.js";
11
+ import type { FieldAccessControl, CollectionAccessControl } from "./access-control.js";
12
12
  import type { BaseFields } from "./fields.js";
13
- import type { FieldHooks, ListHooks } from "./hooks.js";
14
- import type { IdFieldConfig, ListConfig, MaybeItemFunctionWithFilter, MaybeSessionFunction } from "./lists.js";
13
+ import type { FieldHooks, CollectionHooks } from "./hooks.js";
14
+ import type { IdFieldConfig, CollectionConfig, MaybeItemFunctionWithFilter, MaybeSessionFunction } from "./lists.js";
15
15
  export type * from "./access-control.js";
16
16
  export type * from "./fields.js";
17
17
  export type * from "./lists.js";
@@ -20,10 +20,89 @@ type PrismaLogDefinition = {
20
20
  level: PrismaLogLevel;
21
21
  emit: 'stdout' | 'event';
22
22
  };
23
+ /**
24
+ * A Nixxie plugin — one object that can contribute collections, transform the config,
25
+ * and run setup once the database connects. Register via `config({ plugins: [...] })`.
26
+ *
27
+ * Plugins are applied in array order: collections are merged first (a key conflict with
28
+ * the user's collections or an earlier plugin throws), then `extendConfig` runs, then at
29
+ * boot every plugin's `onConnect` runs (in order) before `db.onConnect`.
30
+ *
31
+ * @example
32
+ * export function myPlugin(): NixxiePlugin {
33
+ * return {
34
+ * name: 'my-plugin',
35
+ * collections: { MyPluginLog: collection({ fields: { ... } }) },
36
+ * extendConfig: config => ({
37
+ * ...config,
38
+ * server: {
39
+ * ...config.server,
40
+ * extendExpressApp: async (app, context) => {
41
+ * await config.server?.extendExpressApp?.(app, context)
42
+ * app.get('/my-plugin/ping', (_, res) => res.send('pong'))
43
+ * },
44
+ * },
45
+ * }),
46
+ * onConnect: async context => { ... },
47
+ * }
48
+ * }
49
+ */
50
+ export type NixxiePlugin<TypeInfo extends BaseNixxieTypeInfo = BaseNixxieTypeInfo> = {
51
+ /** Unique name, used in error messages. */
52
+ name: string;
53
+ /** Collections contributed by this plugin. A key conflict throws at config build time. */
54
+ collections?: Record<string, CollectionConfig<any>>;
55
+ /**
56
+ * Transform the (pre-normalisation) config — register services, wrap hooks, extend
57
+ * the Express app, etc. Must return the new config.
58
+ */
59
+ extendConfig?: (config: NixxieConfigPre<TypeInfo>) => NixxieConfigPre<TypeInfo>;
60
+ /** Run once the database has connected, before the user's `db.onConnect`. */
61
+ onConnect?: (context: NixxieContext<TypeInfo>) => MaybePromise<void>;
62
+ };
63
+ /** Requirements for a single environment variable (see `NixxieConfigPre['env']`). */
64
+ export type NixxieEnvVarSpec = {
65
+ /**
66
+ * Fail at boot when the variable is unset (and no `default` is given).
67
+ * @default true
68
+ */
69
+ required?: boolean;
70
+ /** Regex the value must match (checked when the variable is set). */
71
+ pattern?: RegExp;
72
+ /** Applied to `process.env` when the variable is unset. */
73
+ default?: string;
74
+ /** Shown in the boot error to explain what the variable is for. */
75
+ description?: string;
76
+ };
77
+ /**
78
+ * Environment validation spec: either a list of required variable names, or a record of
79
+ * per-variable requirements. Validated when the config is built, so a misconfigured
80
+ * deployment fails immediately with one aggregated, readable error instead of a
81
+ * confusing crash later.
82
+ */
83
+ export type NixxieEnvSpec = readonly string[] | Record<string, NixxieEnvVarSpec>;
23
84
  export type NixxieConfigPre<TypeInfo extends BaseNixxieTypeInfo = BaseNixxieTypeInfo> = {
24
85
  types?: {
25
86
  path: string;
26
87
  };
88
+ /**
89
+ * Plugins to apply to this config (collections + config transforms + boot hooks).
90
+ * See `NixxiePlugin`.
91
+ */
92
+ plugins?: NixxiePlugin<TypeInfo>[];
93
+ /**
94
+ * Environment variables this app needs. Validated at config build time —
95
+ * missing or malformed variables fail the boot with one aggregated error.
96
+ *
97
+ * @example
98
+ * env: ['DATABASE_URL', 'SESSION_SECRET']
99
+ * @example
100
+ * env: {
101
+ * DATABASE_URL: { description: 'Postgres connection string' },
102
+ * SMTP_PORT: { required: false, pattern: /^\d+$/, default: '587' },
103
+ * }
104
+ */
105
+ env?: NixxieEnvSpec;
27
106
  db: {
28
107
  provider: DatabaseProvider;
29
108
  url: string;
@@ -97,7 +176,7 @@ export type NixxieConfigPre<TypeInfo extends BaseNixxieTypeInfo = BaseNixxieType
97
176
  */
98
177
  extendGraphqlSchema?: (schema: GraphQLSchema) => GraphQLSchema;
99
178
  };
100
- lists: Record<string, ListConfig<any>>;
179
+ collections: Record<string, CollectionConfig<any>>;
101
180
  server?: {
102
181
  /** Configuration options for the cors middleware. Set to `true` to use Nixxie's defaults */
103
182
  cors?: boolean | CorsOptions;
@@ -273,6 +352,85 @@ export type NixxieConfigPre<TypeInfo extends BaseNixxieTypeInfo = BaseNixxieType
273
352
  * ```
274
353
  */
275
354
  ai?: NixxieAiService;
355
+ /**
356
+ * Content revision history created with `createVersioning()` from
357
+ * `@nixxie-cms/versioning`. Available as `context.services.versioning`.
358
+ * Snapshots item data so changes can be listed, diffed and rolled back.
359
+ *
360
+ * @example
361
+ * ```ts
362
+ * import { createVersioning } from '@nixxie-cms/versioning'
363
+ * export default config({
364
+ * versioning: createVersioning({ store: 'memory' }),
365
+ * })
366
+ * ```
367
+ */
368
+ versioning?: NixxieVersioningService;
369
+ /**
370
+ * Editorial state machine created with `createWorkflow()` from
371
+ * `@nixxie-cms/workflow`. Available as `context.services.workflow`.
372
+ * Enforces allowed transitions (e.g. draft → review → published).
373
+ *
374
+ * @example
375
+ * ```ts
376
+ * import { createWorkflow } from '@nixxie-cms/workflow'
377
+ * export default config({
378
+ * workflow: createWorkflow({
379
+ * name: 'editorial',
380
+ * initial: 'draft',
381
+ * states: ['draft', 'review', 'published'],
382
+ * transitions: [
383
+ * { from: 'draft', to: 'review', name: 'submit' },
384
+ * { from: 'review', to: 'published', name: 'publish' },
385
+ * { from: 'review', to: 'draft', name: 'reject' },
386
+ * ],
387
+ * }),
388
+ * })
389
+ * ```
390
+ */
391
+ workflow?: NixxieWorkflowService;
392
+ /**
393
+ * Machine-to-machine API keys created with `createApiKeys()` from
394
+ * `@nixxie-cms/api-keys`. Available as `context.services.apiKeys`.
395
+ * Issues scoped, revocable tokens; only key hashes are stored.
396
+ *
397
+ * @example
398
+ * ```ts
399
+ * import { createApiKeys } from '@nixxie-cms/api-keys'
400
+ * export default config({
401
+ * apiKeys: createApiKeys({ store: 'memory', prefix: 'nxk' }),
402
+ * })
403
+ * ```
404
+ */
405
+ apiKeys?: NixxieApiKeysService;
406
+ /**
407
+ * Structured logger created with `createLogger()` from `@nixxie-cms/logger`.
408
+ * Available as `context.services.logger`. Level-aware with bound child loggers
409
+ * and pluggable sinks.
410
+ *
411
+ * @example
412
+ * ```ts
413
+ * import { createLogger } from '@nixxie-cms/logger'
414
+ * export default config({
415
+ * logger: createLogger({ level: 'info', pretty: process.env.NODE_ENV !== 'production' }),
416
+ * })
417
+ * ```
418
+ */
419
+ logger?: NixxieLoggerService;
420
+ /**
421
+ * Content export / import / seed created with `createBackup()` from
422
+ * `@nixxie-cms/backup`. Available as `context.services.backup`.
423
+ *
424
+ * @example
425
+ * ```ts
426
+ * import { createBackup, nixxieDataSource } from '@nixxie-cms/backup'
427
+ * // `getContext()` returns a long-lived context (see createNixxieContext)
428
+ * export default config({
429
+ * backup: createBackup({ source: () => nixxieDataSource(getContext().sudo()) }),
430
+ * })
431
+ * ```
432
+ */
433
+ backup?: NixxieBackupService;
276
434
  /** Telemetry boolean to disable telemetry for this project */
277
435
  telemetry?: boolean;
278
436
  ui?: {
@@ -307,7 +465,7 @@ export type NixxieConfig<TypeInfo extends BaseNixxieTypeInfo = BaseNixxieTypeInf
307
465
  lists: {
308
466
  [listKey: string]: {
309
467
  listKey: string;
310
- } & Required<NixxieConfigPre<TypeInfo>['lists'][string]>;
468
+ } & Required<NixxieConfigPre<TypeInfo>['collections'][string]>;
311
469
  };
312
470
  server: Omit<Required<NonNullable<NixxieConfigPre<TypeInfo>['server']>>, 'cors' | 'port'> & {
313
471
  cors: CorsOptions | null;
@@ -325,10 +483,15 @@ export type NixxieConfig<TypeInfo extends BaseNixxieTypeInfo = BaseNixxieTypeInf
325
483
  search: NixxieSearchService | undefined;
326
484
  notifications: NixxieNotificationsService | undefined;
327
485
  ai: NixxieAiService | undefined;
486
+ versioning: NixxieVersioningService | undefined;
487
+ workflow: NixxieWorkflowService | undefined;
488
+ apiKeys: NixxieApiKeysService | undefined;
489
+ logger: NixxieLoggerService | undefined;
490
+ backup: NixxieBackupService | undefined;
328
491
  telemetry: boolean;
329
492
  ui: NonNullable<Required<NixxieConfigPre<TypeInfo>['ui']>>;
330
493
  };
331
- export type { BaseFields, ListConfig, MaybeItemFunctionWithFilter, MaybeSessionFunction };
494
+ export type { BaseFields, CollectionConfig, MaybeItemFunctionWithFilter, MaybeSessionFunction };
332
495
  export type AdminFileToWrite = {
333
496
  mode: 'write';
334
497
  src: string;
@@ -338,5 +501,5 @@ export type AdminFileToWrite = {
338
501
  inputPath: string;
339
502
  outputPath: string;
340
503
  };
341
- export type { FieldAccessControl, FieldHooks, ListAccessControl, ListHooks };
504
+ export type { FieldAccessControl, FieldHooks, CollectionAccessControl, CollectionHooks };
342
505
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"../../../../../src/types/config","sources":["index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"../../../../../src/types/config","sources":["index.ts"],"names":[],"mappings":"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"}