@nixxie-cms/core 1.0.3 → 2.0.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.
- package/CHANGELOG.md +36 -0
- package/CHANGES-1.1.md +134 -0
- package/context/dist/nixxie-cms-core-context.cjs.js +4 -3
- package/context/dist/nixxie-cms-core-context.esm.js +3 -2
- package/dist/declarations/src/access.d.ts +2 -2
- package/dist/declarations/src/access.d.ts.map +1 -1
- package/dist/declarations/src/admin-ui/components/Navigation.d.ts +2 -2
- package/dist/declarations/src/admin-ui/components/Navigation.d.ts.map +1 -1
- package/dist/declarations/src/admin-ui/context.d.ts +6 -6
- package/dist/declarations/src/admin-ui/context.d.ts.map +1 -1
- package/dist/declarations/src/admin-ui/utils/Fields.d.ts +3 -3
- package/dist/declarations/src/admin-ui/utils/Fields.d.ts.map +1 -1
- package/dist/declarations/src/admin-ui/utils/filters.d.ts +5 -5
- package/dist/declarations/src/admin-ui/utils/filters.d.ts.map +1 -1
- package/dist/declarations/src/admin-ui/utils/useCreateItem.d.ts +3 -3
- package/dist/declarations/src/admin-ui/utils/useCreateItem.d.ts.map +1 -1
- package/dist/declarations/src/admin-ui/utils/utils.d.ts +2 -2
- package/dist/declarations/src/admin-ui/utils/utils.d.ts.map +1 -1
- package/dist/declarations/src/context.d.ts +1 -1
- package/dist/declarations/src/context.d.ts.map +1 -1
- package/dist/declarations/src/fields/types/bigInt/index.d.ts +3 -3
- package/dist/declarations/src/fields/types/bigInt/index.d.ts.map +1 -1
- package/dist/declarations/src/fields/types/bytes/index.d.ts +3 -3
- package/dist/declarations/src/fields/types/bytes/index.d.ts.map +1 -1
- package/dist/declarations/src/fields/types/calendarDay/index.d.ts +3 -3
- package/dist/declarations/src/fields/types/calendarDay/index.d.ts.map +1 -1
- package/dist/declarations/src/fields/types/checkbox/index.d.ts +3 -3
- package/dist/declarations/src/fields/types/checkbox/index.d.ts.map +1 -1
- package/dist/declarations/src/fields/types/decimal/index.d.ts +3 -3
- package/dist/declarations/src/fields/types/decimal/index.d.ts.map +1 -1
- package/dist/declarations/src/fields/types/file/index.d.ts +4 -4
- package/dist/declarations/src/fields/types/file/index.d.ts.map +1 -1
- package/dist/declarations/src/fields/types/float/index.d.ts +3 -3
- package/dist/declarations/src/fields/types/float/index.d.ts.map +1 -1
- package/dist/declarations/src/fields/types/image/index.d.ts +4 -4
- package/dist/declarations/src/fields/types/image/index.d.ts.map +1 -1
- package/dist/declarations/src/fields/types/integer/index.d.ts +3 -3
- package/dist/declarations/src/fields/types/integer/index.d.ts.map +1 -1
- package/dist/declarations/src/fields/types/json/index.d.ts +3 -3
- package/dist/declarations/src/fields/types/json/index.d.ts.map +1 -1
- package/dist/declarations/src/fields/types/multiselect/index.d.ts +3 -3
- package/dist/declarations/src/fields/types/multiselect/index.d.ts.map +1 -1
- package/dist/declarations/src/fields/types/multiselect/views/index.d.ts.map +1 -1
- package/dist/declarations/src/fields/types/password/index.d.ts +3 -3
- package/dist/declarations/src/fields/types/password/index.d.ts.map +1 -1
- package/dist/declarations/src/fields/types/relationship/index.d.ts +8 -8
- package/dist/declarations/src/fields/types/relationship/index.d.ts.map +1 -1
- package/dist/declarations/src/fields/types/relationship/views/ComboboxMany.d.ts +3 -3
- package/dist/declarations/src/fields/types/relationship/views/ComboboxMany.d.ts.map +1 -1
- package/dist/declarations/src/fields/types/relationship/views/ComboboxSingle.d.ts +3 -3
- package/dist/declarations/src/fields/types/relationship/views/ComboboxSingle.d.ts.map +1 -1
- package/dist/declarations/src/fields/types/relationship/views/index.d.ts +3 -3
- package/dist/declarations/src/fields/types/relationship/views/index.d.ts.map +1 -1
- package/dist/declarations/src/fields/types/relationship/views/types.d.ts +3 -3
- package/dist/declarations/src/fields/types/relationship/views/types.d.ts.map +1 -1
- package/dist/declarations/src/fields/types/select/index.d.ts +3 -3
- package/dist/declarations/src/fields/types/select/index.d.ts.map +1 -1
- package/dist/declarations/src/fields/types/text/index.d.ts +3 -3
- package/dist/declarations/src/fields/types/text/index.d.ts.map +1 -1
- package/dist/declarations/src/fields/types/timestamp/index.d.ts +3 -3
- package/dist/declarations/src/fields/types/timestamp/index.d.ts.map +1 -1
- package/dist/declarations/src/fields/types/virtual/index.d.ts +7 -7
- package/dist/declarations/src/fields/types/virtual/index.d.ts.map +1 -1
- package/dist/declarations/src/helpers.d.ts +249 -13
- package/dist/declarations/src/helpers.d.ts.map +1 -1
- package/dist/declarations/src/index.d.ts +9 -4
- package/dist/declarations/src/index.d.ts.map +1 -1
- package/dist/declarations/src/internal-unstable/admin-ui/pages/ListPage/index.d.ts.map +1 -1
- package/dist/declarations/src/lib/admin-meta.d.ts +11 -11
- package/dist/declarations/src/lib/admin-meta.d.ts.map +1 -1
- package/dist/declarations/src/lib/core/access-control.d.ts +18 -18
- package/dist/declarations/src/lib/core/access-control.d.ts.map +1 -1
- package/dist/declarations/src/lib/core/cascade.d.ts +47 -0
- package/dist/declarations/src/lib/core/cascade.d.ts.map +1 -0
- package/dist/declarations/src/lib/core/initialise-lists.d.ts +27 -24
- package/dist/declarations/src/lib/core/initialise-lists.d.ts.map +1 -1
- package/dist/declarations/src/lib/env.d.ts +9 -0
- package/dist/declarations/src/lib/env.d.ts.map +1 -0
- package/dist/declarations/src/lib/system.d.ts +1 -1
- package/dist/declarations/src/lib/system.d.ts.map +1 -1
- package/dist/declarations/src/list-features.d.ts +162 -0
- package/dist/declarations/src/list-features.d.ts.map +1 -0
- package/dist/declarations/src/schema.d.ts +24 -23
- package/dist/declarations/src/schema.d.ts.map +1 -1
- package/dist/declarations/src/session.d.ts +75 -0
- package/dist/declarations/src/session.d.ts.map +1 -1
- package/dist/declarations/src/types/admin-meta.d.ts +11 -11
- package/dist/declarations/src/types/admin-meta.d.ts.map +1 -1
- package/dist/declarations/src/types/config/access-control.d.ts +42 -42
- package/dist/declarations/src/types/config/access-control.d.ts.map +1 -1
- package/dist/declarations/src/types/config/fields.d.ts +19 -19
- package/dist/declarations/src/types/config/fields.d.ts.map +1 -1
- package/dist/declarations/src/types/config/hooks.d.ts +131 -131
- package/dist/declarations/src/types/config/hooks.d.ts.map +1 -1
- package/dist/declarations/src/types/config/index.d.ts +190 -8
- package/dist/declarations/src/types/config/index.d.ts.map +1 -1
- package/dist/declarations/src/types/config/lists.d.ts +146 -108
- package/dist/declarations/src/types/config/lists.d.ts.map +1 -1
- package/dist/declarations/src/types/context.d.ts +507 -47
- package/dist/declarations/src/types/context.d.ts.map +1 -1
- package/dist/declarations/src/types/next-fields.d.ts +28 -28
- package/dist/declarations/src/types/next-fields.d.ts.map +1 -1
- package/dist/declarations/src/types/type-info.d.ts +3 -3
- package/dist/declarations/src/types/type-info.d.ts.map +1 -1
- package/dist/{express-455ae20c.cjs.js → express-84d534c2.cjs.js} +6 -6
- package/dist/{express-7559ca2d.esm.js → express-d0a4ce99.esm.js} +6 -6
- package/dist/{index-15c8f81e.esm.js → index-5d8b0b4e.esm.js} +363 -183
- package/dist/index-6055753b.cjs.js +393 -0
- package/dist/{index-42045902.cjs.js → index-ac29f382.cjs.js} +363 -185
- package/dist/index-f1703b7b.esm.js +386 -0
- package/dist/nixxie-cms-core.cjs.js +1388 -30
- package/dist/nixxie-cms-core.esm.js +1362 -24
- package/dist/{non-null-graphql-add6bb3d.cjs.js → non-null-graphql-4a44c122.cjs.js} +1 -1
- package/dist/{non-null-graphql-a84ed64d.esm.js → non-null-graphql-8c5feaae.esm.js} +1 -1
- package/dist/{resolve-hooks-165a9ce2.cjs.js → resolve-hooks-10a5f84c.cjs.js} +240 -6
- package/dist/{resolve-hooks-6813a045.esm.js → resolve-hooks-9e676794.esm.js} +238 -7
- package/dist/{system-a321642d.cjs.js → system-6b37a5f8.cjs.js} +33 -7
- package/dist/{system-03e49e4f.esm.js → system-e591d821.esm.js} +33 -7
- package/fields/dist/nixxie-cms-core-fields.cjs.js +29 -576
- package/fields/dist/nixxie-cms-core-fields.esm.js +18 -565
- package/fields/types/bytes/dist/nixxie-cms-core-fields-types-bytes.cjs.js +4 -2
- package/fields/types/bytes/dist/nixxie-cms-core-fields-types-bytes.esm.js +4 -2
- package/fields/types/multiselect/views/dist/nixxie-cms-core-fields-types-multiselect-views.cjs.js +1 -6
- package/fields/types/multiselect/views/dist/nixxie-cms-core-fields-types-multiselect-views.esm.js +1 -6
- package/fields/types/password/dist/nixxie-cms-core-fields-types-password.cjs.js +4 -2
- package/fields/types/password/dist/nixxie-cms-core-fields-types-password.esm.js +4 -2
- package/internal-unstable/artifacts/dist/nixxie-cms-core-internal-unstable-artifacts.cjs.js +4 -3
- package/internal-unstable/artifacts/dist/nixxie-cms-core-internal-unstable-artifacts.esm.js +4 -3
- package/package.json +4 -4
- package/scripts/cli/dist/nixxie-cms-core-scripts-cli.cjs.js +4 -3
- package/scripts/cli/dist/nixxie-cms-core-scripts-cli.esm.js +4 -3
- package/scripts/dist/nixxie-cms-core-scripts.cjs.js +4 -3
- package/scripts/dist/nixxie-cms-core-scripts.esm.js +4 -3
- package/session/dist/nixxie-cms-core-session.cjs.js +286 -0
- package/session/dist/nixxie-cms-core-session.esm.js +279 -1
- package/src/access.ts +25 -25
- package/src/admin-ui/admin-meta-graphql.ts +5 -5
- package/src/admin-ui/components/CreateButtonLink.tsx +46 -46
- package/src/admin-ui/components/Navigation.tsx +3 -3
- package/src/admin-ui/context.tsx +6 -6
- package/src/admin-ui/utils/Fields.tsx +241 -241
- package/src/admin-ui/utils/actionData.ts +36 -36
- package/src/admin-ui/utils/filters.ts +148 -148
- package/src/admin-ui/utils/useCreateItem.ts +171 -171
- package/src/admin-ui/utils/utils.tsx +127 -127
- package/src/context.ts +1 -1
- package/src/fields/non-null-graphql.ts +115 -115
- package/src/fields/types/bigInt/index.ts +6 -6
- package/src/fields/types/bytes/index.ts +6 -6
- package/src/fields/types/calendarDay/index.ts +18 -19
- package/src/fields/types/checkbox/index.ts +6 -6
- package/src/fields/types/decimal/index.ts +6 -6
- package/src/fields/types/file/index.ts +8 -8
- package/src/fields/types/float/index.ts +6 -6
- package/src/fields/types/image/index.ts +8 -8
- package/src/fields/types/integer/index.ts +6 -6
- package/src/fields/types/json/index.ts +5 -5
- package/src/fields/types/multiselect/index.ts +7 -7
- package/src/fields/types/multiselect/views/index.tsx +149 -151
- package/src/fields/types/password/index.ts +6 -6
- package/src/fields/types/relationship/index.ts +13 -13
- package/src/fields/types/relationship/views/ComboboxMany.tsx +110 -110
- package/src/fields/types/relationship/views/ComboboxSingle.tsx +115 -115
- package/src/fields/types/relationship/views/ContextualActions.tsx +139 -139
- package/src/fields/types/relationship/views/index.tsx +492 -492
- package/src/fields/types/relationship/views/types.ts +46 -46
- package/src/fields/types/relationship/views/useApolloQuery.ts +185 -185
- package/src/fields/types/relationship/views/useFilter.tsx +109 -109
- package/src/fields/types/select/index.ts +6 -6
- package/src/fields/types/text/index.ts +6 -6
- package/src/fields/types/timestamp/index.ts +23 -21
- package/src/fields/types/virtual/index.ts +11 -11
- package/src/helpers.ts +773 -42
- package/src/index.ts +66 -24
- package/src/internal-unstable/admin-ui/pages/ItemPage/common.tsx +4 -4
- package/src/internal-unstable/admin-ui/pages/ItemPage/index.tsx +5 -5
- package/src/internal-unstable/admin-ui/pages/ListPage/index.tsx +8 -8
- package/src/lib/admin-meta.ts +369 -369
- package/src/lib/context/createContext.ts +6 -0
- package/src/lib/core/access-control.ts +434 -434
- package/src/lib/core/cascade.ts +236 -0
- package/src/lib/core/initialise-lists.ts +49 -33
- package/src/lib/core/mutations/index.ts +7 -0
- package/src/lib/core/mutations/nested-mutation-many-input-resolvers.ts +145 -145
- package/src/lib/core/mutations/nested-mutation-one-input-resolvers.ts +71 -71
- package/src/lib/core/queries/output-field.ts +178 -178
- package/src/lib/env.ts +50 -0
- package/src/lib/id-field.ts +2 -2
- package/src/lib/system.ts +221 -207
- package/src/lib/typescript-schema-printer.ts +227 -227
- package/src/list-features.ts +476 -0
- package/src/schema.ts +92 -22
- package/src/session.ts +225 -0
- package/src/types/admin-meta.ts +218 -218
- package/src/types/config/access-control.ts +186 -186
- package/src/types/config/fields.ts +96 -96
- package/src/types/config/hooks.ts +529 -529
- package/src/types/config/index.ts +206 -7
- package/src/types/config/lists.ts +606 -565
- package/src/types/context.ts +592 -55
- package/src/types/next-fields.ts +31 -31
- package/src/types/type-info.ts +38 -38
- 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, NixxieAiRagService, 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,
|
|
11
|
+
import type { FieldAccessControl, CollectionAccessControl } from "./access-control.js";
|
|
12
12
|
import type { BaseFields } from "./fields.js";
|
|
13
|
-
import type { FieldHooks,
|
|
14
|
-
import type { IdFieldConfig,
|
|
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
|
-
|
|
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,103 @@ export type NixxieConfigPre<TypeInfo extends BaseNixxieTypeInfo = BaseNixxieType
|
|
|
273
352
|
* ```
|
|
274
353
|
*/
|
|
275
354
|
ai?: NixxieAiService;
|
|
355
|
+
/**
|
|
356
|
+
* Custom RAG assistant created with `createAiRag()` from `@nixxie-cms/ai-rag`.
|
|
357
|
+
* Available as `context.services.aiRag`. Stores a knowledge base, indexes it into
|
|
358
|
+
* embeddings, and answers questions grounded in that content with citations and
|
|
359
|
+
* hallucination guarding. Prefer registering it via `ragPlugin()` so the knowledge-base
|
|
360
|
+
* collections, HTTP routes and scheduled indexing are wired automatically.
|
|
361
|
+
*
|
|
362
|
+
* @example
|
|
363
|
+
* ```ts
|
|
364
|
+
* import { createAiRag, ragPlugin } from '@nixxie-cms/ai-rag'
|
|
365
|
+
* const aiRag = createAiRag({
|
|
366
|
+
* generation: { provider: 'anthropic', apiKey: process.env.ANTHROPIC_API_KEY! },
|
|
367
|
+
* embedding: { provider: 'openai', apiKey: process.env.OPENAI_API_KEY! },
|
|
368
|
+
* })
|
|
369
|
+
* export default config({ aiRag, plugins: [ragPlugin({ service: aiRag })] })
|
|
370
|
+
* ```
|
|
371
|
+
*/
|
|
372
|
+
aiRag?: NixxieAiRagService;
|
|
373
|
+
/**
|
|
374
|
+
* Content revision history created with `createVersioning()` from
|
|
375
|
+
* `@nixxie-cms/versioning`. Available as `context.services.versioning`.
|
|
376
|
+
* Snapshots item data so changes can be listed, diffed and rolled back.
|
|
377
|
+
*
|
|
378
|
+
* @example
|
|
379
|
+
* ```ts
|
|
380
|
+
* import { createVersioning } from '@nixxie-cms/versioning'
|
|
381
|
+
* export default config({
|
|
382
|
+
* versioning: createVersioning({ store: 'memory' }),
|
|
383
|
+
* })
|
|
384
|
+
* ```
|
|
385
|
+
*/
|
|
386
|
+
versioning?: NixxieVersioningService;
|
|
387
|
+
/**
|
|
388
|
+
* Editorial state machine created with `createWorkflow()` from
|
|
389
|
+
* `@nixxie-cms/workflow`. Available as `context.services.workflow`.
|
|
390
|
+
* Enforces allowed transitions (e.g. draft → review → published).
|
|
391
|
+
*
|
|
392
|
+
* @example
|
|
393
|
+
* ```ts
|
|
394
|
+
* import { createWorkflow } from '@nixxie-cms/workflow'
|
|
395
|
+
* export default config({
|
|
396
|
+
* workflow: createWorkflow({
|
|
397
|
+
* name: 'editorial',
|
|
398
|
+
* initial: 'draft',
|
|
399
|
+
* states: ['draft', 'review', 'published'],
|
|
400
|
+
* transitions: [
|
|
401
|
+
* { from: 'draft', to: 'review', name: 'submit' },
|
|
402
|
+
* { from: 'review', to: 'published', name: 'publish' },
|
|
403
|
+
* { from: 'review', to: 'draft', name: 'reject' },
|
|
404
|
+
* ],
|
|
405
|
+
* }),
|
|
406
|
+
* })
|
|
407
|
+
* ```
|
|
408
|
+
*/
|
|
409
|
+
workflow?: NixxieWorkflowService;
|
|
410
|
+
/**
|
|
411
|
+
* Machine-to-machine API keys created with `createApiKeys()` from
|
|
412
|
+
* `@nixxie-cms/api-keys`. Available as `context.services.apiKeys`.
|
|
413
|
+
* Issues scoped, revocable tokens; only key hashes are stored.
|
|
414
|
+
*
|
|
415
|
+
* @example
|
|
416
|
+
* ```ts
|
|
417
|
+
* import { createApiKeys } from '@nixxie-cms/api-keys'
|
|
418
|
+
* export default config({
|
|
419
|
+
* apiKeys: createApiKeys({ store: 'memory', prefix: 'nxk' }),
|
|
420
|
+
* })
|
|
421
|
+
* ```
|
|
422
|
+
*/
|
|
423
|
+
apiKeys?: NixxieApiKeysService;
|
|
424
|
+
/**
|
|
425
|
+
* Structured logger created with `createLogger()` from `@nixxie-cms/logger`.
|
|
426
|
+
* Available as `context.services.logger`. Level-aware with bound child loggers
|
|
427
|
+
* and pluggable sinks.
|
|
428
|
+
*
|
|
429
|
+
* @example
|
|
430
|
+
* ```ts
|
|
431
|
+
* import { createLogger } from '@nixxie-cms/logger'
|
|
432
|
+
* export default config({
|
|
433
|
+
* logger: createLogger({ level: 'info', pretty: process.env.NODE_ENV !== 'production' }),
|
|
434
|
+
* })
|
|
435
|
+
* ```
|
|
436
|
+
*/
|
|
437
|
+
logger?: NixxieLoggerService;
|
|
438
|
+
/**
|
|
439
|
+
* Content export / import / seed created with `createBackup()` from
|
|
440
|
+
* `@nixxie-cms/backup`. Available as `context.services.backup`.
|
|
441
|
+
*
|
|
442
|
+
* @example
|
|
443
|
+
* ```ts
|
|
444
|
+
* import { createBackup, nixxieDataSource } from '@nixxie-cms/backup'
|
|
445
|
+
* // `getContext()` returns a long-lived context (see createNixxieContext)
|
|
446
|
+
* export default config({
|
|
447
|
+
* backup: createBackup({ source: () => nixxieDataSource(getContext().sudo()) }),
|
|
448
|
+
* })
|
|
449
|
+
* ```
|
|
450
|
+
*/
|
|
451
|
+
backup?: NixxieBackupService;
|
|
276
452
|
/** Telemetry boolean to disable telemetry for this project */
|
|
277
453
|
telemetry?: boolean;
|
|
278
454
|
ui?: {
|
|
@@ -307,7 +483,7 @@ export type NixxieConfig<TypeInfo extends BaseNixxieTypeInfo = BaseNixxieTypeInf
|
|
|
307
483
|
lists: {
|
|
308
484
|
[listKey: string]: {
|
|
309
485
|
listKey: string;
|
|
310
|
-
} & Required<NixxieConfigPre<TypeInfo>['
|
|
486
|
+
} & Required<NixxieConfigPre<TypeInfo>['collections'][string]>;
|
|
311
487
|
};
|
|
312
488
|
server: Omit<Required<NonNullable<NixxieConfigPre<TypeInfo>['server']>>, 'cors' | 'port'> & {
|
|
313
489
|
cors: CorsOptions | null;
|
|
@@ -325,10 +501,16 @@ export type NixxieConfig<TypeInfo extends BaseNixxieTypeInfo = BaseNixxieTypeInf
|
|
|
325
501
|
search: NixxieSearchService | undefined;
|
|
326
502
|
notifications: NixxieNotificationsService | undefined;
|
|
327
503
|
ai: NixxieAiService | undefined;
|
|
504
|
+
aiRag: NixxieAiRagService | undefined;
|
|
505
|
+
versioning: NixxieVersioningService | undefined;
|
|
506
|
+
workflow: NixxieWorkflowService | undefined;
|
|
507
|
+
apiKeys: NixxieApiKeysService | undefined;
|
|
508
|
+
logger: NixxieLoggerService | undefined;
|
|
509
|
+
backup: NixxieBackupService | undefined;
|
|
328
510
|
telemetry: boolean;
|
|
329
511
|
ui: NonNullable<Required<NixxieConfigPre<TypeInfo>['ui']>>;
|
|
330
512
|
};
|
|
331
|
-
export type { BaseFields,
|
|
513
|
+
export type { BaseFields, CollectionConfig, MaybeItemFunctionWithFilter, MaybeSessionFunction };
|
|
332
514
|
export type AdminFileToWrite = {
|
|
333
515
|
mode: 'write';
|
|
334
516
|
src: string;
|
|
@@ -338,5 +520,5 @@ export type AdminFileToWrite = {
|
|
|
338
520
|
inputPath: string;
|
|
339
521
|
outputPath: string;
|
|
340
522
|
};
|
|
341
|
-
export type { FieldAccessControl, FieldHooks,
|
|
523
|
+
export type { FieldAccessControl, FieldHooks, CollectionAccessControl, CollectionHooks };
|
|
342
524
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"../../../../../src/types/config","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,KAAK,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,0BAA0B,EAC1B,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACtB,oBAAU;AACX,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAkB;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAgB;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"../../../../../src/types/config","sources":["index.ts"],"names":[],"mappings":"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"}
|