@nixxie-cms/core 1.0.0 → 1.0.2
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/README.md +2 -2
- package/admin-ui/components/dist/nixxie-cms-core-admin-ui-components.cjs.js +4 -4
- package/admin-ui/components/dist/nixxie-cms-core-admin-ui-components.esm.js +4 -4
- package/admin-ui/context/dist/nixxie-cms-core-admin-ui-context.cjs.js +2 -2
- package/admin-ui/context/dist/nixxie-cms-core-admin-ui-context.esm.js +2 -2
- package/context/dist/nixxie-cms-core-context.cjs.js +2 -2
- package/context/dist/nixxie-cms-core-context.esm.js +2 -2
- package/dist/{CreateItemDialog-33335548.esm.js → CreateItemDialog-7008b050.esm.js} +1 -1
- package/dist/{CreateItemDialog-56cf59b7.cjs.js → CreateItemDialog-a0cab315.cjs.js} +1 -1
- package/dist/{PageContainer-7db73317.esm.js → PageContainer-5ae731cc.esm.js} +25 -18
- package/dist/{PageContainer-27c27f10.cjs.js → PageContainer-abd7159f.cjs.js} +25 -18
- package/dist/{admin-meta-graphql-6f7f5331.esm.js → admin-meta-graphql-0e6e606e.esm.js} +1 -1
- package/dist/{admin-meta-graphql-c8f926e9.cjs.js → admin-meta-graphql-306c224a.cjs.js} +1 -1
- package/dist/{context-3132c3ed.esm.js → context-af9957ed.esm.js} +2 -2
- package/dist/{context-e7a45152.cjs.js → context-b5204629.cjs.js} +2 -2
- package/dist/declarations/src/admin-ui/components/Navigation.d.ts.map +1 -1
- package/dist/declarations/src/admin-ui/components/PageContainer.d.ts.map +1 -1
- package/dist/declarations/src/helpers.d.ts.map +1 -1
- package/dist/declarations/src/index.d.ts +1 -0
- package/dist/declarations/src/index.d.ts.map +1 -1
- package/dist/declarations/src/internal-unstable/admin-ui/id-field-view.d.ts.map +1 -0
- package/dist/declarations/src/internal-unstable/admin-ui/pages/App/index.d.ts.map +1 -0
- package/dist/declarations/src/internal-unstable/admin-ui/pages/CreateItemPage/index.d.ts.map +1 -0
- package/dist/declarations/src/internal-unstable/admin-ui/pages/HomePage/index.d.ts.map +1 -0
- package/dist/declarations/src/internal-unstable/admin-ui/pages/ItemPage/index.d.ts.map +1 -0
- package/dist/declarations/src/internal-unstable/admin-ui/pages/ListPage/index.d.ts.map +1 -0
- package/dist/declarations/src/internal-unstable/admin-ui/pages/NoAccessPage/index.d.ts.map +1 -0
- package/dist/declarations/src/internal-unstable/artifacts.d.ts.map +1 -0
- package/dist/declarations/src/lib/core/initialise-lists.d.ts +1 -1
- package/dist/declarations/src/schema.d.ts.map +1 -1
- package/dist/declarations/src/types/config/index.d.ts +60 -1
- package/dist/declarations/src/types/config/index.d.ts.map +1 -1
- package/dist/declarations/src/types/config/lists.d.ts +4 -4
- package/dist/declarations/src/types/context.d.ts +150 -0
- package/dist/declarations/src/types/context.d.ts.map +1 -1
- package/dist/declarations/src/types/next-fields.d.ts +1 -1
- package/dist/{express-e9ed9a7d.cjs.js → express-455ae20c.cjs.js} +1 -1
- package/dist/{express-6743b918.esm.js → express-7559ca2d.esm.js} +1 -1
- package/dist/{index-ac01583b.cjs.js → index-89635494.cjs.js} +4 -4
- package/dist/{index-24b78415.esm.js → index-baa799e0.esm.js} +4 -4
- package/dist/nixxie-cms-core.cjs.js +104 -77
- package/dist/nixxie-cms-core.esm.js +104 -77
- package/dist/{non-null-graphql-5315718c.esm.js → non-null-graphql-a84ed64d.esm.js} +1 -1
- package/dist/{non-null-graphql-17b83ddc.cjs.js → non-null-graphql-add6bb3d.cjs.js} +1 -1
- package/dist/{resolve-hooks-66fe8a8e.cjs.js → resolve-hooks-165a9ce2.cjs.js} +1 -1
- package/dist/{resolve-hooks-17aafd37.esm.js → resolve-hooks-6813a045.esm.js} +2 -2
- package/dist/{system-dfec2f0a.esm.js → system-03e49e4f.esm.js} +8 -4
- package/dist/{system-48c5f6df.cjs.js → system-a321642d.cjs.js} +8 -4
- package/dist/{useFilter-0b5a1ee6.esm.js → useFilter-9b6db1f9.esm.js} +1 -1
- package/dist/{useFilter-1a4e6900.cjs.js → useFilter-acc9d413.cjs.js} +1 -1
- package/fields/dist/nixxie-cms-core-fields.cjs.js +16 -16
- package/fields/dist/nixxie-cms-core-fields.esm.js +17 -17
- package/fields/types/bytes/dist/nixxie-cms-core-fields-types-bytes.cjs.js +3 -3
- package/fields/types/bytes/dist/nixxie-cms-core-fields-types-bytes.esm.js +3 -3
- package/fields/types/bytes/views/dist/nixxie-cms-core-fields-types-bytes-views.cjs.js +1 -1
- package/fields/types/bytes/views/dist/nixxie-cms-core-fields-types-bytes-views.esm.js +1 -1
- package/fields/types/password/dist/nixxie-cms-core-fields-types-password.cjs.js +3 -3
- package/fields/types/password/dist/nixxie-cms-core-fields-types-password.esm.js +3 -3
- package/fields/types/relationship/views/dist/nixxie-cms-core-fields-types-relationship-views.cjs.js +4 -4
- package/fields/types/relationship/views/dist/nixxie-cms-core-fields-types-relationship-views.esm.js +4 -4
- package/fields/types/select/views/dist/nixxie-cms-core-fields-types-select-views.cjs.js +1 -1
- package/fields/types/select/views/dist/nixxie-cms-core-fields-types-select-views.esm.js +1 -1
- package/fields/types/text/views/dist/nixxie-cms-core-fields-types-text-views.cjs.js +1 -1
- package/fields/types/text/views/dist/nixxie-cms-core-fields-types-text-views.esm.js +1 -1
- package/internal-unstable/admin-ui/id-field-view/dist/nixxie-cms-core-internal-unstable-admin-ui-id-field-view.cjs.d.ts +2 -0
- package/internal-unstable/admin-ui/id-field-view/dist/nixxie-cms-core-internal-unstable-admin-ui-id-field-view.cjs.js +244 -0
- package/internal-unstable/admin-ui/id-field-view/dist/nixxie-cms-core-internal-unstable-admin-ui-id-field-view.esm.js +235 -0
- package/internal-unstable/admin-ui/id-field-view/package.json +4 -0
- package/internal-unstable/admin-ui/next-config/package.json +4 -0
- package/internal-unstable/admin-ui/pages/App/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-App.cjs.d.ts +2 -0
- package/internal-unstable/admin-ui/pages/App/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-App.cjs.js +59 -0
- package/internal-unstable/admin-ui/pages/App/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-App.esm.js +55 -0
- package/internal-unstable/admin-ui/pages/App/package.json +4 -0
- package/internal-unstable/admin-ui/pages/CreateItemPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-CreateItemPage.cjs.d.ts +2 -0
- package/internal-unstable/admin-ui/pages/CreateItemPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-CreateItemPage.cjs.js +116 -0
- package/internal-unstable/admin-ui/pages/CreateItemPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-CreateItemPage.esm.js +112 -0
- package/internal-unstable/admin-ui/pages/CreateItemPage/package.json +4 -0
- package/internal-unstable/admin-ui/pages/HomePage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-HomePage.cjs.d.ts +2 -0
- package/internal-unstable/admin-ui/pages/HomePage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-HomePage.cjs.js +336 -0
- package/internal-unstable/admin-ui/pages/HomePage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-HomePage.esm.js +332 -0
- package/internal-unstable/admin-ui/pages/HomePage/package.json +4 -0
- package/internal-unstable/admin-ui/pages/ItemPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-ItemPage.cjs.d.ts +2 -0
- package/internal-unstable/admin-ui/pages/ItemPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-ItemPage.cjs.js +463 -0
- package/internal-unstable/admin-ui/pages/ItemPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-ItemPage.esm.js +455 -0
- package/internal-unstable/admin-ui/pages/ItemPage/package.json +4 -0
- package/internal-unstable/admin-ui/pages/ListPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-ListPage.cjs.d.ts +2 -0
- package/internal-unstable/admin-ui/pages/ListPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-ListPage.cjs.js +1195 -0
- package/internal-unstable/admin-ui/pages/ListPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-ListPage.esm.js +1187 -0
- package/internal-unstable/admin-ui/pages/ListPage/package.json +4 -0
- package/internal-unstable/admin-ui/pages/NoAccessPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-NoAccessPage.cjs.d.ts +2 -0
- package/internal-unstable/admin-ui/pages/NoAccessPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-NoAccessPage.cjs.js +40 -0
- package/internal-unstable/admin-ui/pages/NoAccessPage/dist/nixxie-cms-core-internal-unstable-admin-ui-pages-NoAccessPage.esm.js +35 -0
- package/internal-unstable/admin-ui/pages/NoAccessPage/package.json +4 -0
- package/internal-unstable/artifacts/dist/nixxie-cms-core-internal-unstable-artifacts.cjs.d.ts +2 -0
- package/internal-unstable/artifacts/dist/nixxie-cms-core-internal-unstable-artifacts.cjs.js +51 -0
- package/internal-unstable/artifacts/dist/nixxie-cms-core-internal-unstable-artifacts.esm.js +38 -0
- package/internal-unstable/artifacts/package.json +4 -0
- package/package.json +44 -44
- package/scripts/cli/dist/nixxie-cms-core-scripts-cli.cjs.js +44 -15
- package/scripts/cli/dist/nixxie-cms-core-scripts-cli.esm.js +44 -15
- package/scripts/dist/nixxie-cms-core-scripts.cjs.js +3 -3
- package/scripts/dist/nixxie-cms-core-scripts.esm.js +3 -3
- package/src/admin-ui/admin-meta-graphql.ts +168 -168
- package/src/admin-ui/components/CommandPalette.tsx +433 -431
- package/src/admin-ui/components/Navigation.tsx +389 -385
- package/src/admin-ui/components/PageContainer.tsx +311 -310
- package/src/admin-ui/components/WelcomeDialog.tsx +1 -1
- package/src/admin-ui/context.tsx +338 -338
- package/src/admin-ui/templates/app.ts +60 -60
- package/src/admin-ui/templates/create-item.ts +5 -5
- package/src/admin-ui/templates/home.ts +2 -2
- package/src/admin-ui/templates/item.tsx +5 -5
- package/src/admin-ui/templates/list.tsx +5 -5
- package/src/admin-ui/templates/next-config.ts +29 -0
- package/src/admin-ui/templates/no-access.ts +7 -7
- package/src/fields/types/bigInt/index.ts +181 -181
- package/src/fields/types/bytes/index.ts +275 -275
- package/src/fields/types/calendarDay/index.ts +194 -194
- package/src/fields/types/checkbox/index.ts +76 -76
- package/src/fields/types/decimal/index.ts +182 -182
- package/src/fields/types/file/index.ts +168 -168
- package/src/fields/types/float/index.ts +133 -133
- package/src/fields/types/image/index.ts +244 -244
- package/src/fields/types/integer/index.ts +156 -156
- package/src/fields/types/json/index.ts +77 -77
- package/src/fields/types/multiselect/index.ts +212 -212
- package/src/fields/types/password/index.ts +241 -241
- package/src/fields/types/relationship/index.ts +381 -381
- package/src/fields/types/relationship/views/RelationshipTable.tsx +190 -190
- package/src/fields/types/select/index.ts +226 -226
- package/src/fields/types/text/index.ts +207 -207
- package/src/fields/types/timestamp/index.ts +116 -116
- package/src/fields/types/virtual/index.ts +108 -108
- package/src/helpers.ts +342 -316
- package/src/index.ts +4 -0
- package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/id-field-view.tsx +167 -167
- package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/App/index.tsx +22 -22
- package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/CreateItemPage/index.tsx +71 -71
- package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/HomePage/index.tsx +333 -333
- package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/ItemPage/common.tsx +358 -358
- package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/ItemPage/index.tsx +483 -483
- package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/ListPage/FilterAdd.tsx +221 -221
- package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/ListPage/PaginationControls.tsx +170 -170
- package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/ListPage/Tag.tsx +72 -72
- package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/ListPage/index.tsx +1006 -1006
- package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/NoAccessPage/index.tsx +24 -24
- package/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/artifacts.ts +5 -5
- package/src/lib/context/createContext.ts +165 -161
- package/src/lib/core/initialise-lists.ts +1097 -1097
- package/src/lib/id-field.ts +214 -214
- package/src/lib/telemetry.ts +342 -342
- package/src/schema.ts +237 -233
- package/src/scripts/telemetry.ts +1 -1
- package/src/types/config/index.ts +400 -333
- package/src/types/config/lists.ts +4 -4
- package/src/types/context.ts +700 -530
- package/src/types/next-fields.ts +499 -499
- package/src/types/telemetry.ts +51 -51
- package/tests/telemetry.test.ts +361 -361
- package/CHANGELOG.md +0 -3158
- package/___internal-do-not-use-will-break-in-patch/admin-ui/id-field-view/package.json +0 -4
- package/___internal-do-not-use-will-break-in-patch/admin-ui/next-config/package.json +0 -4
- package/___internal-do-not-use-will-break-in-patch/admin-ui/pages/App/package.json +0 -4
- package/___internal-do-not-use-will-break-in-patch/admin-ui/pages/CreateItemPage/package.json +0 -4
- package/___internal-do-not-use-will-break-in-patch/admin-ui/pages/HomePage/package.json +0 -4
- package/___internal-do-not-use-will-break-in-patch/admin-ui/pages/ItemPage/package.json +0 -4
- package/___internal-do-not-use-will-break-in-patch/admin-ui/pages/ListPage/package.json +0 -4
- package/___internal-do-not-use-will-break-in-patch/admin-ui/pages/NoAccessPage/package.json +0 -4
- package/___internal-do-not-use-will-break-in-patch/artifacts/package.json +0 -4
- package/dist/declarations/src/___internal-do-not-use-will-break-in-patch/admin-ui/id-field-view.d.ts.map +0 -1
- package/dist/declarations/src/___internal-do-not-use-will-break-in-patch/admin-ui/pages/App/index.d.ts.map +0 -1
- package/dist/declarations/src/___internal-do-not-use-will-break-in-patch/admin-ui/pages/CreateItemPage/index.d.ts.map +0 -1
- package/dist/declarations/src/___internal-do-not-use-will-break-in-patch/admin-ui/pages/HomePage/index.d.ts.map +0 -1
- package/dist/declarations/src/___internal-do-not-use-will-break-in-patch/admin-ui/pages/ItemPage/index.d.ts.map +0 -1
- package/dist/declarations/src/___internal-do-not-use-will-break-in-patch/admin-ui/pages/ListPage/index.d.ts.map +0 -1
- package/dist/declarations/src/___internal-do-not-use-will-break-in-patch/admin-ui/pages/NoAccessPage/index.d.ts.map +0 -1
- package/dist/declarations/src/___internal-do-not-use-will-break-in-patch/artifacts.d.ts.map +0 -1
- /package/dist/{common-1a350e11.cjs.js → common-5933f758.cjs.js} +0 -0
- /package/dist/{common-29fc82e6.esm.js → common-ea5c441a.esm.js} +0 -0
- /package/dist/declarations/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/id-field-view.d.ts +0 -0
- /package/dist/declarations/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/App/index.d.ts +0 -0
- /package/dist/declarations/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/CreateItemPage/index.d.ts +0 -0
- /package/dist/declarations/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/HomePage/index.d.ts +0 -0
- /package/dist/declarations/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/ItemPage/index.d.ts +0 -0
- /package/dist/declarations/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/ListPage/index.d.ts +0 -0
- /package/dist/declarations/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/admin-ui/pages/NoAccessPage/index.d.ts +0 -0
- /package/dist/declarations/src/{___internal-do-not-use-will-break-in-patch → internal-unstable}/artifacts.d.ts +0 -0
|
@@ -1,333 +1,400 @@
|
|
|
1
|
-
import type { Server } from 'node:http'
|
|
2
|
-
import type { ListenOptions } from 'node:net'
|
|
3
|
-
|
|
4
|
-
import type { ApolloServerOptions } from '@apollo/server'
|
|
5
|
-
import type { Options as BodyParserOptions } from 'body-parser'
|
|
6
|
-
import type { CorsOptions } from 'cors'
|
|
7
|
-
import type express from 'express'
|
|
8
|
-
import type { GraphQLSchema } from 'graphql'
|
|
9
|
-
|
|
10
|
-
import type {
|
|
11
|
-
BaseNixxieTypeInfo,
|
|
12
|
-
DatabaseProvider,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
import type {
|
|
27
|
-
import type {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
type
|
|
40
|
-
type
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
*
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
*
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
* a stacktrace
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
| {
|
|
154
|
-
/**
|
|
155
|
-
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
*
|
|
181
|
-
*
|
|
182
|
-
*
|
|
183
|
-
*
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
*
|
|
197
|
-
*
|
|
198
|
-
*
|
|
199
|
-
*
|
|
200
|
-
*
|
|
201
|
-
*
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
*
|
|
211
|
-
*
|
|
212
|
-
*
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
*
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
*
|
|
225
|
-
*
|
|
226
|
-
*
|
|
227
|
-
*
|
|
228
|
-
*
|
|
229
|
-
*
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
*
|
|
239
|
-
*
|
|
240
|
-
*
|
|
241
|
-
*
|
|
242
|
-
*
|
|
243
|
-
*
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
*
|
|
253
|
-
*
|
|
254
|
-
*
|
|
255
|
-
*
|
|
256
|
-
*
|
|
257
|
-
*
|
|
258
|
-
*
|
|
259
|
-
*
|
|
260
|
-
*
|
|
261
|
-
*
|
|
262
|
-
*
|
|
263
|
-
*
|
|
264
|
-
*
|
|
265
|
-
*
|
|
266
|
-
*
|
|
267
|
-
*
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
export
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
1
|
+
import type { Server } from 'node:http'
|
|
2
|
+
import type { ListenOptions } from 'node:net'
|
|
3
|
+
|
|
4
|
+
import type { ApolloServerOptions } from '@apollo/server'
|
|
5
|
+
import type { Options as BodyParserOptions } from 'body-parser'
|
|
6
|
+
import type { CorsOptions } from 'cors'
|
|
7
|
+
import type express from 'express'
|
|
8
|
+
import type { GraphQLSchema } from 'graphql'
|
|
9
|
+
|
|
10
|
+
import type {
|
|
11
|
+
BaseNixxieTypeInfo,
|
|
12
|
+
DatabaseProvider,
|
|
13
|
+
NixxieAiService,
|
|
14
|
+
NixxieAuditService,
|
|
15
|
+
NixxieCacheService,
|
|
16
|
+
NixxieContext,
|
|
17
|
+
NixxieEmailService,
|
|
18
|
+
NixxieHealthService,
|
|
19
|
+
NixxieJobsService,
|
|
20
|
+
NixxieNotificationsService,
|
|
21
|
+
NixxieRateLimitService,
|
|
22
|
+
NixxieSearchService,
|
|
23
|
+
NixxieStorageService,
|
|
24
|
+
NixxieWebhooksService,
|
|
25
|
+
} from '..'
|
|
26
|
+
import type { SessionStrategy } from '../session'
|
|
27
|
+
import type { MaybePromise } from '../utils'
|
|
28
|
+
import type { FieldAccessControl, ListAccessControl } from './access-control'
|
|
29
|
+
import type { BaseFields } from './fields'
|
|
30
|
+
import type { FieldHooks, ListHooks } from './hooks'
|
|
31
|
+
import type {
|
|
32
|
+
IdFieldConfig,
|
|
33
|
+
ListConfig,
|
|
34
|
+
MaybeItemFunctionWithFilter,
|
|
35
|
+
MaybeSessionFunction,
|
|
36
|
+
} from './lists'
|
|
37
|
+
|
|
38
|
+
export type * from './access-control'
|
|
39
|
+
export type * from './fields'
|
|
40
|
+
export type * from './lists'
|
|
41
|
+
|
|
42
|
+
// copy of the Prisma's LogLevel types from `src/runtime/getLogLevel.ts`, as we dont have them
|
|
43
|
+
type PrismaLogLevel = 'info' | 'query' | 'warn' | 'error'
|
|
44
|
+
type PrismaLogDefinition = {
|
|
45
|
+
level: PrismaLogLevel
|
|
46
|
+
emit: 'stdout' | 'event'
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export type NixxieConfigPre<TypeInfo extends BaseNixxieTypeInfo = BaseNixxieTypeInfo> = {
|
|
50
|
+
types?: {
|
|
51
|
+
path: string
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
db: {
|
|
55
|
+
provider: DatabaseProvider
|
|
56
|
+
url: string
|
|
57
|
+
|
|
58
|
+
shadowDatabaseUrl?: string
|
|
59
|
+
onConnect?: (args: NixxieContext<TypeInfo>) => Promise<void>
|
|
60
|
+
enableLogging?: boolean | Array<PrismaLogLevel | PrismaLogDefinition>
|
|
61
|
+
idField?: IdFieldConfig
|
|
62
|
+
prismaClientPath?: string
|
|
63
|
+
prismaSchemaPath?: string
|
|
64
|
+
|
|
65
|
+
extendPrismaSchema?: (schema: string) => string
|
|
66
|
+
extendPrismaClient?: (client: any) => any
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
graphql?: {
|
|
70
|
+
// The path of the GraphQL API endpoint. Default: '/api/graphql'.
|
|
71
|
+
path?: string
|
|
72
|
+
// The CORS configuration to use on the GraphQL API endpoint.
|
|
73
|
+
// Default: { origin: 'https://studio.apollographql.com', credentials: true }
|
|
74
|
+
cors?: CorsOptions
|
|
75
|
+
bodyParser?: BodyParserOptions
|
|
76
|
+
/**
|
|
77
|
+
* - `true` - Add `ApolloServerPluginLandingPageGraphQLPlayground` to the Apollo Server plugins
|
|
78
|
+
* - `false` - Add `ApolloServerPluginLandingPageDisabled` to the Apollo Server plugins
|
|
79
|
+
* - `'apollo'` - Do not add any plugins to the Apollo config, this will use [Apollo Sandbox](https://www.apollographql.com/docs/apollo-server/testing/build-run-queries/#apollo-sandbox)
|
|
80
|
+
* @default process.env.NODE_ENV !== 'production'
|
|
81
|
+
*/
|
|
82
|
+
playground?: boolean | 'apollo'
|
|
83
|
+
/**
|
|
84
|
+
* Additional options to pass into the ApolloServer constructor.
|
|
85
|
+
* @see https://www.apollographql.com/docs/apollo-server/api/apollo-server/#constructor
|
|
86
|
+
*/
|
|
87
|
+
apolloConfig?: Partial<ApolloServerOptions<NixxieContext<TypeInfo>>>
|
|
88
|
+
/**
|
|
89
|
+
* When an error is returned from the GraphQL API, Apollo can include a stacktrace
|
|
90
|
+
* indicating where the error occurred. When Nixxie is processing mutations, it
|
|
91
|
+
* will sometimes captures more than one error at a time, and then group these into
|
|
92
|
+
* a single error returned from the GraphQL API. Each of these errors will include
|
|
93
|
+
* a stacktrace.
|
|
94
|
+
*
|
|
95
|
+
* In general both categories of stacktrace are useful for debugging while developing,
|
|
96
|
+
* but should not be exposed in production, and this is the default behaviour of Nixxie.
|
|
97
|
+
*
|
|
98
|
+
* You can use the `debug` option to change this behaviour. A use case for this
|
|
99
|
+
* would be if you need to send the stacktraces to a log, but do not want to return them
|
|
100
|
+
* from the API. In this case you could set `debug: true` and use
|
|
101
|
+
* `apolloConfig.formatError` to log the stacktraces and then strip them out before
|
|
102
|
+
* returning the error.
|
|
103
|
+
*
|
|
104
|
+
* ```ts
|
|
105
|
+
* graphql: {
|
|
106
|
+
* debug: true,
|
|
107
|
+
* apolloConfig: {
|
|
108
|
+
* formatError: err => {
|
|
109
|
+
* console.error(err)
|
|
110
|
+
* delete err.extensions?.errors
|
|
111
|
+
* delete err.extensions?.exception?.errors
|
|
112
|
+
* delete err.extensions?.exception?.stacktrace
|
|
113
|
+
* return err
|
|
114
|
+
* },
|
|
115
|
+
* },
|
|
116
|
+
* }
|
|
117
|
+
* ```
|
|
118
|
+
*
|
|
119
|
+
* @default process.env.NODE_ENV !== 'production'
|
|
120
|
+
*/
|
|
121
|
+
debug?: boolean
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* The path to GraphQL schema
|
|
125
|
+
* @default 'schema.graphql'
|
|
126
|
+
*/
|
|
127
|
+
schemaPath?: string
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* A function that receives the Nixxie GraphQL schema for the developer to extend
|
|
131
|
+
* @default 'schema.graphql'
|
|
132
|
+
*/
|
|
133
|
+
extendGraphqlSchema?: (schema: GraphQLSchema) => GraphQLSchema
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
lists: Record<string, ListConfig<any>>
|
|
137
|
+
server?: {
|
|
138
|
+
/** Configuration options for the cors middleware. Set to `true` to use Nixxie's defaults */
|
|
139
|
+
cors?: boolean | CorsOptions
|
|
140
|
+
|
|
141
|
+
/** Maximum upload file size allowed (in bytes) */
|
|
142
|
+
maxFileSize?: number
|
|
143
|
+
|
|
144
|
+
/** extend the Express application used by Nixxie */
|
|
145
|
+
extendExpressApp?: (
|
|
146
|
+
app: express.Express,
|
|
147
|
+
context: NixxieContext<TypeInfo>
|
|
148
|
+
) => MaybePromise<void>
|
|
149
|
+
|
|
150
|
+
/** extend the node:http server used by Nixxie */
|
|
151
|
+
extendHttpServer?: (server: Server, context: NixxieContext<TypeInfo>) => MaybePromise<void>
|
|
152
|
+
} & (
|
|
153
|
+
| {
|
|
154
|
+
/** Port number to start the server on. Defaults to process.env.PORT || 3000 */
|
|
155
|
+
port?: number
|
|
156
|
+
}
|
|
157
|
+
| {
|
|
158
|
+
/** node http.Server options */
|
|
159
|
+
options?: ListenOptions
|
|
160
|
+
}
|
|
161
|
+
)
|
|
162
|
+
|
|
163
|
+
session?: SessionStrategy<TypeInfo['session'], TypeInfo>
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Email service instance created with `createEmail()` from `@nixxie-cms/email`.
|
|
167
|
+
* Once configured, it is available everywhere as `context.services.email`.
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```ts
|
|
171
|
+
* import { createEmail } from '@nixxie-cms/email'
|
|
172
|
+
* export default config({
|
|
173
|
+
* email: createEmail({ transport: { type: 'resend', apiKey: process.env.RESEND_API_KEY! }, from: 'app@example.com' }),
|
|
174
|
+
* })
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
email?: NixxieEmailService
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Background job scheduler created with `createJobs()` from `@nixxie-cms/jobs`.
|
|
181
|
+
* Available as `context.services.jobs`. Supports cron expressions and interval-based scheduling.
|
|
182
|
+
*
|
|
183
|
+
* @example
|
|
184
|
+
* ```ts
|
|
185
|
+
* import { createJobs } from '@nixxie-cms/jobs'
|
|
186
|
+
* export default config({
|
|
187
|
+
* jobs: createJobs({
|
|
188
|
+
* jobs: [{ name: 'cleanup', schedule: '0 3 * * *', handler: async () => { ... } }],
|
|
189
|
+
* }),
|
|
190
|
+
* })
|
|
191
|
+
* ```
|
|
192
|
+
*/
|
|
193
|
+
jobs?: NixxieJobsService
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Cache service created with `createCache()` from `@nixxie-cms/cache`.
|
|
197
|
+
* Available as `context.services.cache`. Supports in-memory (LRU) and Redis backends.
|
|
198
|
+
*
|
|
199
|
+
* @example
|
|
200
|
+
* ```ts
|
|
201
|
+
* import { createCache } from '@nixxie-cms/cache'
|
|
202
|
+
* export default config({
|
|
203
|
+
* cache: createCache({ store: 'memory', max: 500, ttl: 60_000 }),
|
|
204
|
+
* })
|
|
205
|
+
* ```
|
|
206
|
+
*/
|
|
207
|
+
cache?: NixxieCacheService
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* Audit log service created with `createAudit()` from `@nixxie-cms/audit`.
|
|
211
|
+
* Available as `context.services.audit`. Records who did what and when.
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* ```ts
|
|
215
|
+
* import { createAudit } from '@nixxie-cms/audit'
|
|
216
|
+
* export default config({
|
|
217
|
+
* audit: createAudit({ store: 'memory', maxEntries: 10_000 }),
|
|
218
|
+
* })
|
|
219
|
+
* ```
|
|
220
|
+
*/
|
|
221
|
+
audit?: NixxieAuditService
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Outbound webhook service created with `createWebhooks()` from `@nixxie-cms/webhooks`.
|
|
225
|
+
* Available as `context.services.webhooks`. Manages subscriptions and reliable delivery with retry.
|
|
226
|
+
*
|
|
227
|
+
* @example
|
|
228
|
+
* ```ts
|
|
229
|
+
* import { createWebhooks } from '@nixxie-cms/webhooks'
|
|
230
|
+
* export default config({
|
|
231
|
+
* webhooks: createWebhooks({ retries: 3, timeout: 10_000 }),
|
|
232
|
+
* })
|
|
233
|
+
* ```
|
|
234
|
+
*/
|
|
235
|
+
webhooks?: NixxieWebhooksService
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Rate limiting service created with `createRateLimit()` from `@nixxie-cms/rate-limit`.
|
|
239
|
+
* Available as `context.services.rateLimit`. Sliding-window counters backed by memory or Redis.
|
|
240
|
+
*
|
|
241
|
+
* @example
|
|
242
|
+
* ```ts
|
|
243
|
+
* import { createRateLimit } from '@nixxie-cms/rate-limit'
|
|
244
|
+
* export default config({
|
|
245
|
+
* rateLimit: createRateLimit({ store: 'memory' }),
|
|
246
|
+
* })
|
|
247
|
+
* ```
|
|
248
|
+
*/
|
|
249
|
+
rateLimit?: NixxieRateLimitService
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Health-check service created with `createHealth()` from `@nixxie-cms/health`.
|
|
253
|
+
* Available as `context.services.health`. Auto-exposes `/health/live` and `/health/ready`
|
|
254
|
+
* when mounted via `extendExpressApp`.
|
|
255
|
+
*
|
|
256
|
+
* @example
|
|
257
|
+
* ```ts
|
|
258
|
+
* import { createHealth } from '@nixxie-cms/health'
|
|
259
|
+
* export default config({
|
|
260
|
+
* health: createHealth(),
|
|
261
|
+
* server: {
|
|
262
|
+
* extendExpressApp: async (app, context) => {
|
|
263
|
+
* context.services.health.register('db', async () => {
|
|
264
|
+
* await context.prisma.$queryRaw`SELECT 1`
|
|
265
|
+
* return { ok: true }
|
|
266
|
+
* })
|
|
267
|
+
* app.use('/health', context.services.health.router())
|
|
268
|
+
* },
|
|
269
|
+
* },
|
|
270
|
+
* })
|
|
271
|
+
* ```
|
|
272
|
+
*/
|
|
273
|
+
health?: NixxieHealthService
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Blob storage service created with `createStorage()` from `@nixxie-cms/storage`.
|
|
277
|
+
* Available as `context.services.storage`. Supports local disk, S3, GCS and Azure Blob.
|
|
278
|
+
*
|
|
279
|
+
* @example
|
|
280
|
+
* ```ts
|
|
281
|
+
* import { createStorage } from '@nixxie-cms/storage'
|
|
282
|
+
* export default config({
|
|
283
|
+
* storage: createStorage({ driver: 's3', bucket: 'my-bucket', region: 'us-east-1' }),
|
|
284
|
+
* })
|
|
285
|
+
* ```
|
|
286
|
+
*/
|
|
287
|
+
storage?: NixxieStorageService
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
* Full-text search service created with `createSearch()` from `@nixxie-cms/search`.
|
|
291
|
+
* Available as `context.services.search`. Supports in-memory, Meilisearch, Typesense,
|
|
292
|
+
* Algolia and Elasticsearch backends.
|
|
293
|
+
*
|
|
294
|
+
* @example
|
|
295
|
+
* ```ts
|
|
296
|
+
* import { createSearch } from '@nixxie-cms/search'
|
|
297
|
+
* export default config({
|
|
298
|
+
* search: createSearch({ driver: 'meilisearch', url: 'http://localhost:7700', apiKey: '...' }),
|
|
299
|
+
* })
|
|
300
|
+
* ```
|
|
301
|
+
*/
|
|
302
|
+
search?: NixxieSearchService
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* Multi-channel notification service created with `createNotifications()` from
|
|
306
|
+
* `@nixxie-cms/notifications`. Available as `context.services.notifications`.
|
|
307
|
+
* Supports Slack, Discord, SMS (Twilio) and generic webhook channels.
|
|
308
|
+
*
|
|
309
|
+
* @example
|
|
310
|
+
* ```ts
|
|
311
|
+
* import { createNotifications } from '@nixxie-cms/notifications'
|
|
312
|
+
* export default config({
|
|
313
|
+
* notifications: createNotifications({ channels: { slack: { webhookUrl: process.env.SLACK_URL! } } }),
|
|
314
|
+
* })
|
|
315
|
+
* ```
|
|
316
|
+
*/
|
|
317
|
+
notifications?: NixxieNotificationsService
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* AI service created with `createAi()` from `@nixxie-cms/ai`.
|
|
321
|
+
* Available as `context.services.ai`. Provides text completion, chat and embeddings
|
|
322
|
+
* via Anthropic or OpenAI.
|
|
323
|
+
*
|
|
324
|
+
* @example
|
|
325
|
+
* ```ts
|
|
326
|
+
* import { createAi } from '@nixxie-cms/ai'
|
|
327
|
+
* export default config({
|
|
328
|
+
* ai: createAi({ provider: 'anthropic', apiKey: process.env.ANTHROPIC_API_KEY! }),
|
|
329
|
+
* })
|
|
330
|
+
* ```
|
|
331
|
+
*/
|
|
332
|
+
ai?: NixxieAiService
|
|
333
|
+
|
|
334
|
+
/** Telemetry boolean to disable telemetry for this project */
|
|
335
|
+
telemetry?: boolean
|
|
336
|
+
|
|
337
|
+
ui?: {
|
|
338
|
+
/** Completely disables the Admin UI */
|
|
339
|
+
isDisabled?: boolean
|
|
340
|
+
|
|
341
|
+
/** A function that can be run to validate that the current session should have access to the Admin UI */
|
|
342
|
+
isAccessAllowed?: (context: NixxieContext<TypeInfo>) => MaybePromise<boolean>
|
|
343
|
+
|
|
344
|
+
/** An array of page routes that bypass the isAccessAllowed function */
|
|
345
|
+
publicPages?: readonly string[]
|
|
346
|
+
|
|
347
|
+
/** The Base Path for Nixxies Admin UI */
|
|
348
|
+
basePath?: string
|
|
349
|
+
|
|
350
|
+
getAdditionalFiles?: () => MaybePromise<readonly AdminFileToWrite[]>
|
|
351
|
+
|
|
352
|
+
/** An async middleware function that can optionally return a redirect */
|
|
353
|
+
pageMiddleware?: (args: {
|
|
354
|
+
context: NixxieContext<TypeInfo>
|
|
355
|
+
wasAccessAllowed: boolean
|
|
356
|
+
basePath: string
|
|
357
|
+
}) => MaybePromise<{ kind: 'redirect'; to: string } | void>
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
export type NixxieConfig<TypeInfo extends BaseNixxieTypeInfo = BaseNixxieTypeInfo> = {
|
|
362
|
+
types: NixxieConfigPre<TypeInfo>['types']
|
|
363
|
+
db: Omit<Required<NixxieConfigPre<TypeInfo>['db']>, 'enableLogging'> & {
|
|
364
|
+
enableLogging: PrismaLogLevel | Array<PrismaLogLevel | PrismaLogDefinition>
|
|
365
|
+
}
|
|
366
|
+
graphql: NonNullable<NixxieConfigPre<TypeInfo>['graphql']> & {
|
|
367
|
+
path: string
|
|
368
|
+
}
|
|
369
|
+
lists: {
|
|
370
|
+
[listKey: string]: {
|
|
371
|
+
listKey: string
|
|
372
|
+
} & Required<NixxieConfigPre<TypeInfo>['lists'][string]>
|
|
373
|
+
}
|
|
374
|
+
server: Omit<Required<NonNullable<NixxieConfigPre<TypeInfo>['server']>>, 'cors' | 'port'> & {
|
|
375
|
+
cors: CorsOptions | null
|
|
376
|
+
options: ListenOptions
|
|
377
|
+
}
|
|
378
|
+
session: NixxieConfigPre<TypeInfo>['session']
|
|
379
|
+
email: NixxieEmailService | undefined
|
|
380
|
+
jobs: NixxieJobsService | undefined
|
|
381
|
+
cache: NixxieCacheService | undefined
|
|
382
|
+
audit: NixxieAuditService | undefined
|
|
383
|
+
webhooks: NixxieWebhooksService | undefined
|
|
384
|
+
rateLimit: NixxieRateLimitService | undefined
|
|
385
|
+
health: NixxieHealthService | undefined
|
|
386
|
+
storage: NixxieStorageService | undefined
|
|
387
|
+
search: NixxieSearchService | undefined
|
|
388
|
+
notifications: NixxieNotificationsService | undefined
|
|
389
|
+
ai: NixxieAiService | undefined
|
|
390
|
+
telemetry: boolean
|
|
391
|
+
ui: NonNullable<Required<NixxieConfigPre<TypeInfo>['ui']>>
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
export type { BaseFields, ListConfig, MaybeItemFunctionWithFilter, MaybeSessionFunction }
|
|
395
|
+
|
|
396
|
+
export type AdminFileToWrite =
|
|
397
|
+
| { mode: 'write'; src: string; outputPath: string }
|
|
398
|
+
| { mode: 'copy'; inputPath: string; outputPath: string }
|
|
399
|
+
|
|
400
|
+
export type { FieldAccessControl, FieldHooks, ListAccessControl, ListHooks }
|