@nixxie-cms/core 1.0.0 → 1.0.1
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 +15 -15
- package/scripts/cli/dist/nixxie-cms-core-scripts-cli.esm.js +15 -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/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,60 +1,60 @@
|
|
|
1
|
-
import Path from 'node:path'
|
|
2
|
-
import resolve from 'resolve'
|
|
3
|
-
|
|
4
|
-
import type { AdminMetaSource } from '../../lib/admin-meta'
|
|
5
|
-
import type { NixxieConfig } from '../../types'
|
|
6
|
-
|
|
7
|
-
function doesConfigExist(path: string[]) {
|
|
8
|
-
try {
|
|
9
|
-
const configPath = Path.join(process.cwd(), ...path)
|
|
10
|
-
resolve.sync(configPath, {
|
|
11
|
-
extensions: ['.ts', '.tsx', '.js'],
|
|
12
|
-
preserveSymlinks: false,
|
|
13
|
-
})
|
|
14
|
-
return true
|
|
15
|
-
} catch (err: any) {
|
|
16
|
-
if (err.code === 'MODULE_NOT_FOUND') return false
|
|
17
|
-
throw err
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export function appTemplate(config: NixxieConfig, adminMeta: AdminMetaSource) {
|
|
22
|
-
const allViews = adminMeta.views.map(viewRelativeToProject => {
|
|
23
|
-
const isRelativeToFile =
|
|
24
|
-
viewRelativeToProject.startsWith('./') || viewRelativeToProject.startsWith('../')
|
|
25
|
-
const viewRelativeToAppFile = isRelativeToFile
|
|
26
|
-
? '../../../' + viewRelativeToProject
|
|
27
|
-
: viewRelativeToProject
|
|
28
|
-
|
|
29
|
-
// we're not using serializePathForImport here because we want the thing you write for a view
|
|
30
|
-
// to be exactly what you would put in an import in the project directory.
|
|
31
|
-
// we're still using JSON.stringify to escape anything that might need to be though
|
|
32
|
-
return JSON.stringify(viewRelativeToAppFile)
|
|
33
|
-
})
|
|
34
|
-
// -- TEMPLATE START
|
|
35
|
-
return `import { getApp } from '@nixxie-cms/core/
|
|
36
|
-
|
|
37
|
-
${allViews.map((views, i) => `import * as view${i} from ${views}`).join('\n')}
|
|
38
|
-
|
|
39
|
-
${
|
|
40
|
-
doesConfigExist(['.nixxie', 'admin', 'config'])
|
|
41
|
-
? `import * as packageAdminConfig from "../../../.nixxie/admin/config"`
|
|
42
|
-
: 'let packageAdminConfig = {}'
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
${
|
|
46
|
-
doesConfigExist(['admin', 'config'])
|
|
47
|
-
? `import * as userAdminConfig from "../../../admin/config"`
|
|
48
|
-
: 'let userAdminConfig = {}'
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export default getApp({
|
|
52
|
-
adminConfig: {
|
|
53
|
-
...packageAdminConfig,
|
|
54
|
-
...userAdminConfig
|
|
55
|
-
},
|
|
56
|
-
apiPath: "${config.graphql.path}",
|
|
57
|
-
fieldViews: [${allViews.map((_, i) => `view${i}`)}],
|
|
58
|
-
})
|
|
59
|
-
`
|
|
60
|
-
}
|
|
1
|
+
import Path from 'node:path'
|
|
2
|
+
import resolve from 'resolve'
|
|
3
|
+
|
|
4
|
+
import type { AdminMetaSource } from '../../lib/admin-meta'
|
|
5
|
+
import type { NixxieConfig } from '../../types'
|
|
6
|
+
|
|
7
|
+
function doesConfigExist(path: string[]) {
|
|
8
|
+
try {
|
|
9
|
+
const configPath = Path.join(process.cwd(), ...path)
|
|
10
|
+
resolve.sync(configPath, {
|
|
11
|
+
extensions: ['.ts', '.tsx', '.js'],
|
|
12
|
+
preserveSymlinks: false,
|
|
13
|
+
})
|
|
14
|
+
return true
|
|
15
|
+
} catch (err: any) {
|
|
16
|
+
if (err.code === 'MODULE_NOT_FOUND') return false
|
|
17
|
+
throw err
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function appTemplate(config: NixxieConfig, adminMeta: AdminMetaSource) {
|
|
22
|
+
const allViews = adminMeta.views.map(viewRelativeToProject => {
|
|
23
|
+
const isRelativeToFile =
|
|
24
|
+
viewRelativeToProject.startsWith('./') || viewRelativeToProject.startsWith('../')
|
|
25
|
+
const viewRelativeToAppFile = isRelativeToFile
|
|
26
|
+
? '../../../' + viewRelativeToProject
|
|
27
|
+
: viewRelativeToProject
|
|
28
|
+
|
|
29
|
+
// we're not using serializePathForImport here because we want the thing you write for a view
|
|
30
|
+
// to be exactly what you would put in an import in the project directory.
|
|
31
|
+
// we're still using JSON.stringify to escape anything that might need to be though
|
|
32
|
+
return JSON.stringify(viewRelativeToAppFile)
|
|
33
|
+
})
|
|
34
|
+
// -- TEMPLATE START
|
|
35
|
+
return `import { getApp } from '@nixxie-cms/core/internal-unstable/admin-ui/pages/App'
|
|
36
|
+
|
|
37
|
+
${allViews.map((views, i) => `import * as view${i} from ${views}`).join('\n')}
|
|
38
|
+
|
|
39
|
+
${
|
|
40
|
+
doesConfigExist(['.nixxie', 'admin', 'config'])
|
|
41
|
+
? `import * as packageAdminConfig from "../../../.nixxie/admin/config"`
|
|
42
|
+
: 'let packageAdminConfig = {}'
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
${
|
|
46
|
+
doesConfigExist(['admin', 'config'])
|
|
47
|
+
? `import * as userAdminConfig from "../../../admin/config"`
|
|
48
|
+
: 'let userAdminConfig = {}'
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export default getApp({
|
|
52
|
+
adminConfig: {
|
|
53
|
+
...packageAdminConfig,
|
|
54
|
+
...userAdminConfig
|
|
55
|
+
},
|
|
56
|
+
apiPath: "${config.graphql.path}",
|
|
57
|
+
fieldViews: [${allViews.map((_, i) => `view${i}`)}],
|
|
58
|
+
})
|
|
59
|
+
`
|
|
60
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export const createItemTemplate = (listKey: string) =>
|
|
2
|
-
`import { getCreateItemPage } from '@nixxie-cms/core/
|
|
3
|
-
|
|
4
|
-
export default getCreateItemPage(${JSON.stringify({ listKey })})
|
|
5
|
-
`
|
|
1
|
+
export const createItemTemplate = (listKey: string) =>
|
|
2
|
+
`import { getCreateItemPage } from '@nixxie-cms/core/internal-unstable/admin-ui/pages/CreateItemPage';
|
|
3
|
+
|
|
4
|
+
export default getCreateItemPage(${JSON.stringify({ listKey })})
|
|
5
|
+
`
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const homeTemplate = `export { HomePage as default } from '@nixxie-cms/core/
|
|
2
|
-
`
|
|
1
|
+
export const homeTemplate = `export { HomePage as default } from '@nixxie-cms/core/internal-unstable/admin-ui/pages/HomePage';
|
|
2
|
+
`
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export const itemTemplate = (listKey: string) =>
|
|
2
|
-
`import { getItemPage } from '@nixxie-cms/core/
|
|
3
|
-
|
|
4
|
-
export default getItemPage(${JSON.stringify({ listKey })})
|
|
5
|
-
`
|
|
1
|
+
export const itemTemplate = (listKey: string) =>
|
|
2
|
+
`import { getItemPage } from '@nixxie-cms/core/internal-unstable/admin-ui/pages/ItemPage';
|
|
3
|
+
|
|
4
|
+
export default getItemPage(${JSON.stringify({ listKey })})
|
|
5
|
+
`
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export const listTemplate = (listKey: string) =>
|
|
2
|
-
`import { getListPage } from '@nixxie-cms/core/
|
|
3
|
-
|
|
4
|
-
export default getListPage(${JSON.stringify({ listKey })});
|
|
5
|
-
`
|
|
1
|
+
export const listTemplate = (listKey: string) =>
|
|
2
|
+
`import { getListPage } from '@nixxie-cms/core/internal-unstable/admin-ui/pages/ListPage';
|
|
3
|
+
|
|
4
|
+
export default getListPage(${JSON.stringify({ listKey })});
|
|
5
|
+
`
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { NixxieConfig } from '../../types'
|
|
2
|
-
|
|
3
|
-
export const noAccessTemplate = (session: NixxieConfig['session']) =>
|
|
4
|
-
`import { getNoAccessPage } from '@nixxie-cms/core/
|
|
5
|
-
|
|
6
|
-
export default getNoAccessPage(${JSON.stringify({ sessionsEnabled: !!session })})
|
|
7
|
-
`
|
|
1
|
+
import type { NixxieConfig } from '../../types'
|
|
2
|
+
|
|
3
|
+
export const noAccessTemplate = (session: NixxieConfig['session']) =>
|
|
4
|
+
`import { getNoAccessPage } from '@nixxie-cms/core/internal-unstable/admin-ui/pages/NoAccessPage';
|
|
5
|
+
|
|
6
|
+
export default getNoAccessPage(${JSON.stringify({ sessionsEnabled: !!session })})
|
|
7
|
+
`
|
|
@@ -1,181 +1,181 @@
|
|
|
1
|
-
import type { SimpleFieldTypeInfo } from '../../../types'
|
|
2
|
-
import {
|
|
3
|
-
type BaseListTypeInfo,
|
|
4
|
-
type CommonFieldConfig,
|
|
5
|
-
type FieldTypeFunc,
|
|
6
|
-
fieldType,
|
|
7
|
-
orderDirectionEnum,
|
|
8
|
-
} from '../../../types'
|
|
9
|
-
import { g } from '../../..'
|
|
10
|
-
import { filters } from '../../filters'
|
|
11
|
-
import { resolveDbNullable, makeValidateHook, defaultIsRequired } from '../../non-null-graphql'
|
|
12
|
-
import type { controller } from './views'
|
|
13
|
-
|
|
14
|
-
export type BigIntFieldConfig<ListTypeInfo extends BaseListTypeInfo> = CommonFieldConfig<
|
|
15
|
-
ListTypeInfo,
|
|
16
|
-
SimpleFieldTypeInfo<'BigInt'>
|
|
17
|
-
> & {
|
|
18
|
-
isIndexed?: boolean | 'unique'
|
|
19
|
-
defaultValue?: bigint | null | { kind: 'autoincrement' }
|
|
20
|
-
validation?: {
|
|
21
|
-
isRequired?: boolean
|
|
22
|
-
min?: bigint
|
|
23
|
-
max?: bigint
|
|
24
|
-
}
|
|
25
|
-
db?: {
|
|
26
|
-
isNullable?: boolean
|
|
27
|
-
map?: string
|
|
28
|
-
extendPrismaSchema?: (field: string) => string
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
// for a signed 64-bit integer
|
|
33
|
-
const MAX_INT = 9223372036854775807n
|
|
34
|
-
const MIN_INT = -9223372036854775808n
|
|
35
|
-
|
|
36
|
-
// TODO: https://github.com/Nixxie/keystatic/blob/main/design-system/pkg/src/number-field/NumberField.tsx
|
|
37
|
-
export function bigInt<ListTypeInfo extends BaseListTypeInfo>(
|
|
38
|
-
config: BigIntFieldConfig<ListTypeInfo> = {}
|
|
39
|
-
): FieldTypeFunc<ListTypeInfo> {
|
|
40
|
-
const { defaultValue: defaultValue_ = null, isIndexed, validation = {} } = config
|
|
41
|
-
|
|
42
|
-
const { isRequired = false, min, max } = validation
|
|
43
|
-
const defaultValue =
|
|
44
|
-
typeof defaultValue_ === 'bigint' ? defaultValue_ : (defaultValue_?.kind ?? null)
|
|
45
|
-
|
|
46
|
-
return meta => {
|
|
47
|
-
if (defaultValue === 'autoincrement') {
|
|
48
|
-
if (meta.provider === 'sqlite' || meta.provider === 'mysql') {
|
|
49
|
-
throw new Error(
|
|
50
|
-
`${meta.listKey}.${meta.fieldKey} specifies defaultValue: { kind: 'autoincrement' }, this is not supported on ${meta.provider}`
|
|
51
|
-
)
|
|
52
|
-
}
|
|
53
|
-
const isNullable = resolveDbNullable(validation, config.db)
|
|
54
|
-
if (isNullable !== false) {
|
|
55
|
-
throw new Error(
|
|
56
|
-
`${meta.listKey}.${meta.fieldKey} specifies defaultValue: { kind: 'autoincrement' } but doesn't specify db.isNullable: false.\n` +
|
|
57
|
-
`Having nullable autoincrements on Prisma currently incorrectly creates a non-nullable column so it is not allowed.\n` +
|
|
58
|
-
`https://github.com/prisma/prisma/issues/8663`
|
|
59
|
-
)
|
|
60
|
-
}
|
|
61
|
-
if (isRequired) {
|
|
62
|
-
throw new Error(
|
|
63
|
-
`${meta.listKey}.${meta.fieldKey} defaultValue: { kind: 'autoincrement' } conflicts with validation.isRequired: true`
|
|
64
|
-
)
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
if (
|
|
68
|
-
// TODO: prefer typescript only?
|
|
69
|
-
defaultValue !== null &&
|
|
70
|
-
defaultValue !== 'autoincrement' &&
|
|
71
|
-
typeof defaultValue !== 'bigint'
|
|
72
|
-
) {
|
|
73
|
-
throw new Error(
|
|
74
|
-
`${meta.listKey}.${meta.fieldKey} specifies a default value of: ${defaultValue} but it must be a valid finite number`
|
|
75
|
-
)
|
|
76
|
-
}
|
|
77
|
-
if (min !== undefined && !Number.isInteger(min)) {
|
|
78
|
-
throw new Error(
|
|
79
|
-
`${meta.listKey}.${meta.fieldKey} specifies validation.min: ${min} but it must be an integer`
|
|
80
|
-
)
|
|
81
|
-
}
|
|
82
|
-
if (max !== undefined && !Number.isInteger(max)) {
|
|
83
|
-
throw new Error(
|
|
84
|
-
`${meta.listKey}.${meta.fieldKey} specifies validation.max: ${max} but it must be an integer`
|
|
85
|
-
)
|
|
86
|
-
}
|
|
87
|
-
if (min !== undefined && (min > MAX_INT || min < MIN_INT)) {
|
|
88
|
-
throw new Error(
|
|
89
|
-
`${meta.listKey}.${meta.fieldKey} specifies validation.min: ${min} which is outside of the range of a 64-bit signed integer`
|
|
90
|
-
)
|
|
91
|
-
}
|
|
92
|
-
if (max !== undefined && (max > MAX_INT || max < MIN_INT)) {
|
|
93
|
-
throw new Error(
|
|
94
|
-
`${meta.listKey}.${meta.fieldKey} specifies validation.max: ${max} which is outside of the range of a 64-bit signed integer`
|
|
95
|
-
)
|
|
96
|
-
}
|
|
97
|
-
if (min !== undefined && max !== undefined && min > max) {
|
|
98
|
-
throw new Error(
|
|
99
|
-
`${meta.listKey}.${meta.fieldKey} specifies a validation.max that is less than the validation.min, and therefore has no valid options`
|
|
100
|
-
)
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
const hasAdditionalValidation = min !== undefined || max !== undefined
|
|
104
|
-
const { mode, validate } = makeValidateHook(
|
|
105
|
-
meta,
|
|
106
|
-
config,
|
|
107
|
-
hasAdditionalValidation
|
|
108
|
-
? ({ resolvedData, operation, addValidationError }) => {
|
|
109
|
-
if (operation === 'delete') return
|
|
110
|
-
|
|
111
|
-
const value = resolvedData[meta.fieldKey]
|
|
112
|
-
if (typeof value === 'number') {
|
|
113
|
-
if (min !== undefined && value < min) {
|
|
114
|
-
addValidationError(`value must be greater than or equal to ${min}`)
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
if (max !== undefined && value > max) {
|
|
118
|
-
addValidationError(`value must be less than or equal to ${max}`)
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
: undefined
|
|
123
|
-
)
|
|
124
|
-
|
|
125
|
-
return fieldType({
|
|
126
|
-
kind: 'scalar',
|
|
127
|
-
mode,
|
|
128
|
-
scalar: 'BigInt',
|
|
129
|
-
index: isIndexed === true ? 'index' : isIndexed || undefined,
|
|
130
|
-
default:
|
|
131
|
-
typeof defaultValue === 'bigint'
|
|
132
|
-
? { kind: 'literal', value: defaultValue }
|
|
133
|
-
: defaultValue === 'autoincrement'
|
|
134
|
-
? { kind: 'autoincrement' }
|
|
135
|
-
: undefined,
|
|
136
|
-
map: config.db?.map,
|
|
137
|
-
extendPrismaSchema: config.db?.extendPrismaSchema,
|
|
138
|
-
})({
|
|
139
|
-
...config,
|
|
140
|
-
...defaultIsRequired(config, isRequired),
|
|
141
|
-
hooks: {
|
|
142
|
-
...config.hooks,
|
|
143
|
-
validate,
|
|
144
|
-
},
|
|
145
|
-
input: {
|
|
146
|
-
uniqueWhere: isIndexed === 'unique' ? { arg: g.arg({ type: g.BigInt }) } : undefined,
|
|
147
|
-
where: {
|
|
148
|
-
arg: g.arg({ type: filters[meta.provider].BigInt[mode] }),
|
|
149
|
-
resolve: mode === 'optional' ? filters.resolveCommon : undefined,
|
|
150
|
-
},
|
|
151
|
-
create: {
|
|
152
|
-
arg: g.arg({
|
|
153
|
-
type: g.BigInt,
|
|
154
|
-
defaultValue: typeof defaultValue === 'bigint' ? defaultValue : undefined,
|
|
155
|
-
}),
|
|
156
|
-
resolve(value) {
|
|
157
|
-
if (value === undefined) {
|
|
158
|
-
if (defaultValue === 'autoincrement') return null
|
|
159
|
-
return defaultValue
|
|
160
|
-
}
|
|
161
|
-
return value
|
|
162
|
-
},
|
|
163
|
-
},
|
|
164
|
-
update: { arg: g.arg({ type: g.BigInt }) },
|
|
165
|
-
orderBy: { arg: g.arg({ type: orderDirectionEnum }) },
|
|
166
|
-
},
|
|
167
|
-
output: g.field({ type: g.BigInt }),
|
|
168
|
-
|
|
169
|
-
views: '@nixxie-cms/core/fields/types/bigInt/views',
|
|
170
|
-
getAdminMeta(): Parameters<typeof controller>[0]['fieldMeta'] {
|
|
171
|
-
return {
|
|
172
|
-
validation: {
|
|
173
|
-
min: min?.toString() ?? `${MIN_INT}`,
|
|
174
|
-
max: max?.toString() ?? `${MAX_INT}`,
|
|
175
|
-
},
|
|
176
|
-
defaultValue: typeof defaultValue === 'bigint' ? defaultValue.toString() : defaultValue,
|
|
177
|
-
}
|
|
178
|
-
},
|
|
179
|
-
})
|
|
180
|
-
}
|
|
181
|
-
}
|
|
1
|
+
import type { SimpleFieldTypeInfo } from '../../../types'
|
|
2
|
+
import {
|
|
3
|
+
type BaseListTypeInfo,
|
|
4
|
+
type CommonFieldConfig,
|
|
5
|
+
type FieldTypeFunc,
|
|
6
|
+
fieldType,
|
|
7
|
+
orderDirectionEnum,
|
|
8
|
+
} from '../../../types'
|
|
9
|
+
import { g } from '../../..'
|
|
10
|
+
import { filters } from '../../filters'
|
|
11
|
+
import { resolveDbNullable, makeValidateHook, defaultIsRequired } from '../../non-null-graphql'
|
|
12
|
+
import type { controller } from './views'
|
|
13
|
+
|
|
14
|
+
export type BigIntFieldConfig<ListTypeInfo extends BaseListTypeInfo> = CommonFieldConfig<
|
|
15
|
+
ListTypeInfo,
|
|
16
|
+
SimpleFieldTypeInfo<'BigInt'>
|
|
17
|
+
> & {
|
|
18
|
+
isIndexed?: boolean | 'unique'
|
|
19
|
+
defaultValue?: bigint | null | { kind: 'autoincrement' }
|
|
20
|
+
validation?: {
|
|
21
|
+
isRequired?: boolean
|
|
22
|
+
min?: bigint
|
|
23
|
+
max?: bigint
|
|
24
|
+
}
|
|
25
|
+
db?: {
|
|
26
|
+
isNullable?: boolean
|
|
27
|
+
map?: string
|
|
28
|
+
extendPrismaSchema?: (field: string) => string
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// for a signed 64-bit integer
|
|
33
|
+
const MAX_INT = 9223372036854775807n
|
|
34
|
+
const MIN_INT = -9223372036854775808n
|
|
35
|
+
|
|
36
|
+
// TODO: https://github.com/Nixxie/keystatic/blob/main/design-system/pkg/src/number-field/NumberField.tsx
|
|
37
|
+
export function bigInt<ListTypeInfo extends BaseListTypeInfo>(
|
|
38
|
+
config: BigIntFieldConfig<ListTypeInfo> = {}
|
|
39
|
+
): FieldTypeFunc<ListTypeInfo> {
|
|
40
|
+
const { defaultValue: defaultValue_ = null, isIndexed, validation = {} } = config
|
|
41
|
+
|
|
42
|
+
const { isRequired = false, min, max } = validation
|
|
43
|
+
const defaultValue =
|
|
44
|
+
typeof defaultValue_ === 'bigint' ? defaultValue_ : (defaultValue_?.kind ?? null)
|
|
45
|
+
|
|
46
|
+
return meta => {
|
|
47
|
+
if (defaultValue === 'autoincrement') {
|
|
48
|
+
if (meta.provider === 'sqlite' || meta.provider === 'mysql') {
|
|
49
|
+
throw new Error(
|
|
50
|
+
`${meta.listKey}.${meta.fieldKey} specifies defaultValue: { kind: 'autoincrement' }, this is not supported on ${meta.provider}`
|
|
51
|
+
)
|
|
52
|
+
}
|
|
53
|
+
const isNullable = resolveDbNullable(validation, config.db)
|
|
54
|
+
if (isNullable !== false) {
|
|
55
|
+
throw new Error(
|
|
56
|
+
`${meta.listKey}.${meta.fieldKey} specifies defaultValue: { kind: 'autoincrement' } but doesn't specify db.isNullable: false.\n` +
|
|
57
|
+
`Having nullable autoincrements on Prisma currently incorrectly creates a non-nullable column so it is not allowed.\n` +
|
|
58
|
+
`https://github.com/prisma/prisma/issues/8663`
|
|
59
|
+
)
|
|
60
|
+
}
|
|
61
|
+
if (isRequired) {
|
|
62
|
+
throw new Error(
|
|
63
|
+
`${meta.listKey}.${meta.fieldKey} defaultValue: { kind: 'autoincrement' } conflicts with validation.isRequired: true`
|
|
64
|
+
)
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (
|
|
68
|
+
// TODO: prefer typescript only?
|
|
69
|
+
defaultValue !== null &&
|
|
70
|
+
defaultValue !== 'autoincrement' &&
|
|
71
|
+
typeof defaultValue !== 'bigint'
|
|
72
|
+
) {
|
|
73
|
+
throw new Error(
|
|
74
|
+
`${meta.listKey}.${meta.fieldKey} specifies a default value of: ${defaultValue} but it must be a valid finite number`
|
|
75
|
+
)
|
|
76
|
+
}
|
|
77
|
+
if (min !== undefined && !Number.isInteger(min)) {
|
|
78
|
+
throw new Error(
|
|
79
|
+
`${meta.listKey}.${meta.fieldKey} specifies validation.min: ${min} but it must be an integer`
|
|
80
|
+
)
|
|
81
|
+
}
|
|
82
|
+
if (max !== undefined && !Number.isInteger(max)) {
|
|
83
|
+
throw new Error(
|
|
84
|
+
`${meta.listKey}.${meta.fieldKey} specifies validation.max: ${max} but it must be an integer`
|
|
85
|
+
)
|
|
86
|
+
}
|
|
87
|
+
if (min !== undefined && (min > MAX_INT || min < MIN_INT)) {
|
|
88
|
+
throw new Error(
|
|
89
|
+
`${meta.listKey}.${meta.fieldKey} specifies validation.min: ${min} which is outside of the range of a 64-bit signed integer`
|
|
90
|
+
)
|
|
91
|
+
}
|
|
92
|
+
if (max !== undefined && (max > MAX_INT || max < MIN_INT)) {
|
|
93
|
+
throw new Error(
|
|
94
|
+
`${meta.listKey}.${meta.fieldKey} specifies validation.max: ${max} which is outside of the range of a 64-bit signed integer`
|
|
95
|
+
)
|
|
96
|
+
}
|
|
97
|
+
if (min !== undefined && max !== undefined && min > max) {
|
|
98
|
+
throw new Error(
|
|
99
|
+
`${meta.listKey}.${meta.fieldKey} specifies a validation.max that is less than the validation.min, and therefore has no valid options`
|
|
100
|
+
)
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
const hasAdditionalValidation = min !== undefined || max !== undefined
|
|
104
|
+
const { mode, validate } = makeValidateHook(
|
|
105
|
+
meta,
|
|
106
|
+
config,
|
|
107
|
+
hasAdditionalValidation
|
|
108
|
+
? ({ resolvedData, operation, addValidationError }) => {
|
|
109
|
+
if (operation === 'delete') return
|
|
110
|
+
|
|
111
|
+
const value = resolvedData[meta.fieldKey]
|
|
112
|
+
if (typeof value === 'number') {
|
|
113
|
+
if (min !== undefined && value < min) {
|
|
114
|
+
addValidationError(`value must be greater than or equal to ${min}`)
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
if (max !== undefined && value > max) {
|
|
118
|
+
addValidationError(`value must be less than or equal to ${max}`)
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
: undefined
|
|
123
|
+
)
|
|
124
|
+
|
|
125
|
+
return fieldType({
|
|
126
|
+
kind: 'scalar',
|
|
127
|
+
mode,
|
|
128
|
+
scalar: 'BigInt',
|
|
129
|
+
index: isIndexed === true ? 'index' : isIndexed || undefined,
|
|
130
|
+
default:
|
|
131
|
+
typeof defaultValue === 'bigint'
|
|
132
|
+
? { kind: 'literal', value: defaultValue }
|
|
133
|
+
: defaultValue === 'autoincrement'
|
|
134
|
+
? { kind: 'autoincrement' }
|
|
135
|
+
: undefined,
|
|
136
|
+
map: config.db?.map,
|
|
137
|
+
extendPrismaSchema: config.db?.extendPrismaSchema,
|
|
138
|
+
})({
|
|
139
|
+
...config,
|
|
140
|
+
...defaultIsRequired(config, isRequired),
|
|
141
|
+
hooks: {
|
|
142
|
+
...config.hooks,
|
|
143
|
+
validate,
|
|
144
|
+
},
|
|
145
|
+
input: {
|
|
146
|
+
uniqueWhere: isIndexed === 'unique' ? { arg: g.arg({ type: g.BigInt }) } : undefined,
|
|
147
|
+
where: {
|
|
148
|
+
arg: g.arg({ type: filters[meta.provider].BigInt[mode] }),
|
|
149
|
+
resolve: mode === 'optional' ? filters.resolveCommon : undefined,
|
|
150
|
+
},
|
|
151
|
+
create: {
|
|
152
|
+
arg: g.arg({
|
|
153
|
+
type: g.BigInt,
|
|
154
|
+
defaultValue: typeof defaultValue === 'bigint' ? defaultValue : undefined,
|
|
155
|
+
}),
|
|
156
|
+
resolve(value) {
|
|
157
|
+
if (value === undefined) {
|
|
158
|
+
if (defaultValue === 'autoincrement') return null
|
|
159
|
+
return defaultValue
|
|
160
|
+
}
|
|
161
|
+
return value
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
update: { arg: g.arg({ type: g.BigInt }) },
|
|
165
|
+
orderBy: { arg: g.arg({ type: orderDirectionEnum }) },
|
|
166
|
+
},
|
|
167
|
+
output: g.field({ type: g.BigInt }),
|
|
168
|
+
__nxTelemetryFieldTypeName: '@nixxie-cms/bigInt',
|
|
169
|
+
views: '@nixxie-cms/core/fields/types/bigInt/views',
|
|
170
|
+
getAdminMeta(): Parameters<typeof controller>[0]['fieldMeta'] {
|
|
171
|
+
return {
|
|
172
|
+
validation: {
|
|
173
|
+
min: min?.toString() ?? `${MIN_INT}`,
|
|
174
|
+
max: max?.toString() ?? `${MAX_INT}`,
|
|
175
|
+
},
|
|
176
|
+
defaultValue: typeof defaultValue === 'bigint' ? defaultValue.toString() : defaultValue,
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
})
|
|
180
|
+
}
|
|
181
|
+
}
|