@nixxie-cms/core 1.0.3 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/CHANGES-1.1.md +134 -0
  2. package/context/dist/nixxie-cms-core-context.cjs.js +4 -3
  3. package/context/dist/nixxie-cms-core-context.esm.js +3 -2
  4. package/dist/declarations/src/access.d.ts +2 -2
  5. package/dist/declarations/src/access.d.ts.map +1 -1
  6. package/dist/declarations/src/admin-ui/components/Navigation.d.ts +2 -2
  7. package/dist/declarations/src/admin-ui/components/Navigation.d.ts.map +1 -1
  8. package/dist/declarations/src/admin-ui/context.d.ts +6 -6
  9. package/dist/declarations/src/admin-ui/context.d.ts.map +1 -1
  10. package/dist/declarations/src/admin-ui/utils/Fields.d.ts +3 -3
  11. package/dist/declarations/src/admin-ui/utils/Fields.d.ts.map +1 -1
  12. package/dist/declarations/src/admin-ui/utils/filters.d.ts +5 -5
  13. package/dist/declarations/src/admin-ui/utils/filters.d.ts.map +1 -1
  14. package/dist/declarations/src/admin-ui/utils/useCreateItem.d.ts +3 -3
  15. package/dist/declarations/src/admin-ui/utils/useCreateItem.d.ts.map +1 -1
  16. package/dist/declarations/src/admin-ui/utils/utils.d.ts +2 -2
  17. package/dist/declarations/src/admin-ui/utils/utils.d.ts.map +1 -1
  18. package/dist/declarations/src/context.d.ts +1 -1
  19. package/dist/declarations/src/context.d.ts.map +1 -1
  20. package/dist/declarations/src/fields/types/bigInt/index.d.ts +3 -3
  21. package/dist/declarations/src/fields/types/bigInt/index.d.ts.map +1 -1
  22. package/dist/declarations/src/fields/types/bytes/index.d.ts +3 -3
  23. package/dist/declarations/src/fields/types/bytes/index.d.ts.map +1 -1
  24. package/dist/declarations/src/fields/types/calendarDay/index.d.ts +3 -3
  25. package/dist/declarations/src/fields/types/calendarDay/index.d.ts.map +1 -1
  26. package/dist/declarations/src/fields/types/checkbox/index.d.ts +3 -3
  27. package/dist/declarations/src/fields/types/checkbox/index.d.ts.map +1 -1
  28. package/dist/declarations/src/fields/types/decimal/index.d.ts +3 -3
  29. package/dist/declarations/src/fields/types/decimal/index.d.ts.map +1 -1
  30. package/dist/declarations/src/fields/types/file/index.d.ts +4 -4
  31. package/dist/declarations/src/fields/types/file/index.d.ts.map +1 -1
  32. package/dist/declarations/src/fields/types/float/index.d.ts +3 -3
  33. package/dist/declarations/src/fields/types/float/index.d.ts.map +1 -1
  34. package/dist/declarations/src/fields/types/image/index.d.ts +4 -4
  35. package/dist/declarations/src/fields/types/image/index.d.ts.map +1 -1
  36. package/dist/declarations/src/fields/types/integer/index.d.ts +3 -3
  37. package/dist/declarations/src/fields/types/integer/index.d.ts.map +1 -1
  38. package/dist/declarations/src/fields/types/json/index.d.ts +3 -3
  39. package/dist/declarations/src/fields/types/json/index.d.ts.map +1 -1
  40. package/dist/declarations/src/fields/types/multiselect/index.d.ts +3 -3
  41. package/dist/declarations/src/fields/types/multiselect/index.d.ts.map +1 -1
  42. package/dist/declarations/src/fields/types/multiselect/views/index.d.ts.map +1 -1
  43. package/dist/declarations/src/fields/types/password/index.d.ts +3 -3
  44. package/dist/declarations/src/fields/types/password/index.d.ts.map +1 -1
  45. package/dist/declarations/src/fields/types/relationship/index.d.ts +8 -8
  46. package/dist/declarations/src/fields/types/relationship/index.d.ts.map +1 -1
  47. package/dist/declarations/src/fields/types/relationship/views/ComboboxMany.d.ts +3 -3
  48. package/dist/declarations/src/fields/types/relationship/views/ComboboxMany.d.ts.map +1 -1
  49. package/dist/declarations/src/fields/types/relationship/views/ComboboxSingle.d.ts +3 -3
  50. package/dist/declarations/src/fields/types/relationship/views/ComboboxSingle.d.ts.map +1 -1
  51. package/dist/declarations/src/fields/types/relationship/views/index.d.ts +3 -3
  52. package/dist/declarations/src/fields/types/relationship/views/index.d.ts.map +1 -1
  53. package/dist/declarations/src/fields/types/relationship/views/types.d.ts +3 -3
  54. package/dist/declarations/src/fields/types/relationship/views/types.d.ts.map +1 -1
  55. package/dist/declarations/src/fields/types/select/index.d.ts +3 -3
  56. package/dist/declarations/src/fields/types/select/index.d.ts.map +1 -1
  57. package/dist/declarations/src/fields/types/text/index.d.ts +3 -3
  58. package/dist/declarations/src/fields/types/text/index.d.ts.map +1 -1
  59. package/dist/declarations/src/fields/types/timestamp/index.d.ts +3 -3
  60. package/dist/declarations/src/fields/types/timestamp/index.d.ts.map +1 -1
  61. package/dist/declarations/src/fields/types/virtual/index.d.ts +7 -7
  62. package/dist/declarations/src/fields/types/virtual/index.d.ts.map +1 -1
  63. package/dist/declarations/src/helpers.d.ts +249 -13
  64. package/dist/declarations/src/helpers.d.ts.map +1 -1
  65. package/dist/declarations/src/index.d.ts +9 -4
  66. package/dist/declarations/src/index.d.ts.map +1 -1
  67. package/dist/declarations/src/internal-unstable/admin-ui/pages/ListPage/index.d.ts.map +1 -1
  68. package/dist/declarations/src/lib/admin-meta.d.ts +11 -11
  69. package/dist/declarations/src/lib/admin-meta.d.ts.map +1 -1
  70. package/dist/declarations/src/lib/core/access-control.d.ts +18 -18
  71. package/dist/declarations/src/lib/core/access-control.d.ts.map +1 -1
  72. package/dist/declarations/src/lib/core/cascade.d.ts +47 -0
  73. package/dist/declarations/src/lib/core/cascade.d.ts.map +1 -0
  74. package/dist/declarations/src/lib/core/initialise-lists.d.ts +27 -24
  75. package/dist/declarations/src/lib/core/initialise-lists.d.ts.map +1 -1
  76. package/dist/declarations/src/lib/env.d.ts +9 -0
  77. package/dist/declarations/src/lib/env.d.ts.map +1 -0
  78. package/dist/declarations/src/lib/system.d.ts +1 -1
  79. package/dist/declarations/src/lib/system.d.ts.map +1 -1
  80. package/dist/declarations/src/list-features.d.ts +162 -0
  81. package/dist/declarations/src/list-features.d.ts.map +1 -0
  82. package/dist/declarations/src/schema.d.ts +24 -23
  83. package/dist/declarations/src/schema.d.ts.map +1 -1
  84. package/dist/declarations/src/session.d.ts +75 -0
  85. package/dist/declarations/src/session.d.ts.map +1 -1
  86. package/dist/declarations/src/types/admin-meta.d.ts +11 -11
  87. package/dist/declarations/src/types/admin-meta.d.ts.map +1 -1
  88. package/dist/declarations/src/types/config/access-control.d.ts +42 -42
  89. package/dist/declarations/src/types/config/access-control.d.ts.map +1 -1
  90. package/dist/declarations/src/types/config/fields.d.ts +19 -19
  91. package/dist/declarations/src/types/config/fields.d.ts.map +1 -1
  92. package/dist/declarations/src/types/config/hooks.d.ts +131 -131
  93. package/dist/declarations/src/types/config/hooks.d.ts.map +1 -1
  94. package/dist/declarations/src/types/config/index.d.ts +171 -8
  95. package/dist/declarations/src/types/config/index.d.ts.map +1 -1
  96. package/dist/declarations/src/types/config/lists.d.ts +146 -108
  97. package/dist/declarations/src/types/config/lists.d.ts.map +1 -1
  98. package/dist/declarations/src/types/context.d.ts +349 -47
  99. package/dist/declarations/src/types/context.d.ts.map +1 -1
  100. package/dist/declarations/src/types/next-fields.d.ts +28 -28
  101. package/dist/declarations/src/types/next-fields.d.ts.map +1 -1
  102. package/dist/declarations/src/types/type-info.d.ts +3 -3
  103. package/dist/declarations/src/types/type-info.d.ts.map +1 -1
  104. package/dist/{express-7559ca2d.esm.js → express-0abbce07.esm.js} +6 -6
  105. package/dist/{express-455ae20c.cjs.js → express-7ca6f76a.cjs.js} +6 -6
  106. package/dist/{index-15c8f81e.esm.js → index-5d8b0b4e.esm.js} +363 -183
  107. package/dist/index-6055753b.cjs.js +393 -0
  108. package/dist/{index-42045902.cjs.js → index-ac29f382.cjs.js} +363 -185
  109. package/dist/index-f1703b7b.esm.js +386 -0
  110. package/dist/nixxie-cms-core.cjs.js +1387 -30
  111. package/dist/nixxie-cms-core.esm.js +1361 -24
  112. package/dist/{non-null-graphql-add6bb3d.cjs.js → non-null-graphql-4a44c122.cjs.js} +1 -1
  113. package/dist/{non-null-graphql-a84ed64d.esm.js → non-null-graphql-8c5feaae.esm.js} +1 -1
  114. package/dist/{resolve-hooks-165a9ce2.cjs.js → resolve-hooks-10a5f84c.cjs.js} +240 -6
  115. package/dist/{resolve-hooks-6813a045.esm.js → resolve-hooks-9e676794.esm.js} +238 -7
  116. package/dist/{system-03e49e4f.esm.js → system-4d2a2648.esm.js} +32 -7
  117. package/dist/{system-a321642d.cjs.js → system-69e1a285.cjs.js} +32 -7
  118. package/fields/dist/nixxie-cms-core-fields.cjs.js +29 -576
  119. package/fields/dist/nixxie-cms-core-fields.esm.js +18 -565
  120. package/fields/types/bytes/dist/nixxie-cms-core-fields-types-bytes.cjs.js +4 -2
  121. package/fields/types/bytes/dist/nixxie-cms-core-fields-types-bytes.esm.js +4 -2
  122. package/fields/types/multiselect/views/dist/nixxie-cms-core-fields-types-multiselect-views.cjs.js +1 -6
  123. package/fields/types/multiselect/views/dist/nixxie-cms-core-fields-types-multiselect-views.esm.js +1 -6
  124. package/fields/types/password/dist/nixxie-cms-core-fields-types-password.cjs.js +4 -2
  125. package/fields/types/password/dist/nixxie-cms-core-fields-types-password.esm.js +4 -2
  126. package/internal-unstable/artifacts/dist/nixxie-cms-core-internal-unstable-artifacts.cjs.js +4 -3
  127. package/internal-unstable/artifacts/dist/nixxie-cms-core-internal-unstable-artifacts.esm.js +4 -3
  128. package/package.json +4 -4
  129. package/scripts/cli/dist/nixxie-cms-core-scripts-cli.cjs.js +4 -3
  130. package/scripts/cli/dist/nixxie-cms-core-scripts-cli.esm.js +4 -3
  131. package/scripts/dist/nixxie-cms-core-scripts.cjs.js +4 -3
  132. package/scripts/dist/nixxie-cms-core-scripts.esm.js +4 -3
  133. package/session/dist/nixxie-cms-core-session.cjs.js +286 -0
  134. package/session/dist/nixxie-cms-core-session.esm.js +279 -1
  135. package/src/access.ts +25 -25
  136. package/src/admin-ui/admin-meta-graphql.ts +5 -5
  137. package/src/admin-ui/components/CreateButtonLink.tsx +46 -46
  138. package/src/admin-ui/components/Navigation.tsx +3 -3
  139. package/src/admin-ui/context.tsx +6 -6
  140. package/src/admin-ui/utils/Fields.tsx +241 -241
  141. package/src/admin-ui/utils/actionData.ts +36 -36
  142. package/src/admin-ui/utils/filters.ts +148 -148
  143. package/src/admin-ui/utils/useCreateItem.ts +171 -171
  144. package/src/admin-ui/utils/utils.tsx +127 -127
  145. package/src/context.ts +1 -1
  146. package/src/fields/non-null-graphql.ts +115 -115
  147. package/src/fields/types/bigInt/index.ts +6 -6
  148. package/src/fields/types/bytes/index.ts +6 -6
  149. package/src/fields/types/calendarDay/index.ts +18 -19
  150. package/src/fields/types/checkbox/index.ts +6 -6
  151. package/src/fields/types/decimal/index.ts +6 -6
  152. package/src/fields/types/file/index.ts +8 -8
  153. package/src/fields/types/float/index.ts +6 -6
  154. package/src/fields/types/image/index.ts +8 -8
  155. package/src/fields/types/integer/index.ts +6 -6
  156. package/src/fields/types/json/index.ts +5 -5
  157. package/src/fields/types/multiselect/index.ts +7 -7
  158. package/src/fields/types/multiselect/views/index.tsx +149 -151
  159. package/src/fields/types/password/index.ts +6 -6
  160. package/src/fields/types/relationship/index.ts +13 -13
  161. package/src/fields/types/relationship/views/ComboboxMany.tsx +110 -110
  162. package/src/fields/types/relationship/views/ComboboxSingle.tsx +115 -115
  163. package/src/fields/types/relationship/views/ContextualActions.tsx +139 -139
  164. package/src/fields/types/relationship/views/index.tsx +492 -492
  165. package/src/fields/types/relationship/views/types.ts +46 -46
  166. package/src/fields/types/relationship/views/useApolloQuery.ts +185 -185
  167. package/src/fields/types/relationship/views/useFilter.tsx +109 -109
  168. package/src/fields/types/select/index.ts +6 -6
  169. package/src/fields/types/text/index.ts +6 -6
  170. package/src/fields/types/timestamp/index.ts +23 -21
  171. package/src/fields/types/virtual/index.ts +11 -11
  172. package/src/helpers.ts +773 -42
  173. package/src/index.ts +66 -24
  174. package/src/internal-unstable/admin-ui/pages/ItemPage/common.tsx +4 -4
  175. package/src/internal-unstable/admin-ui/pages/ItemPage/index.tsx +5 -5
  176. package/src/internal-unstable/admin-ui/pages/ListPage/index.tsx +8 -8
  177. package/src/lib/admin-meta.ts +369 -369
  178. package/src/lib/context/createContext.ts +5 -0
  179. package/src/lib/core/access-control.ts +434 -434
  180. package/src/lib/core/cascade.ts +236 -0
  181. package/src/lib/core/initialise-lists.ts +49 -33
  182. package/src/lib/core/mutations/index.ts +7 -0
  183. package/src/lib/core/mutations/nested-mutation-many-input-resolvers.ts +145 -145
  184. package/src/lib/core/mutations/nested-mutation-one-input-resolvers.ts +71 -71
  185. package/src/lib/core/queries/output-field.ts +178 -178
  186. package/src/lib/env.ts +50 -0
  187. package/src/lib/id-field.ts +2 -2
  188. package/src/lib/system.ts +221 -207
  189. package/src/lib/typescript-schema-printer.ts +227 -227
  190. package/src/list-features.ts +476 -0
  191. package/src/schema.ts +91 -22
  192. package/src/session.ts +225 -0
  193. package/src/types/admin-meta.ts +218 -218
  194. package/src/types/config/access-control.ts +186 -186
  195. package/src/types/config/fields.ts +96 -96
  196. package/src/types/config/hooks.ts +529 -529
  197. package/src/types/config/index.ts +185 -7
  198. package/src/types/config/lists.ts +606 -565
  199. package/src/types/context.ts +426 -55
  200. package/src/types/next-fields.ts +31 -31
  201. package/src/types/type-info.ts +38 -38
  202. package/src/types/type-tests.ts +21 -21
@@ -1,16 +1,17 @@
1
1
  import type { CacheHint } from '@apollo/cache-control-types';
2
- import { GInputObjectType, type GArg, type GInputType } from '@graphql-ts/schema';
2
+ import type { GInputObjectType } from '@graphql-ts/schema';
3
+ import { type GArg, type GInputType } from '@graphql-ts/schema';
3
4
  import type { GroupInfo } from "../../schema.js";
4
- import type { ActionMeta, BaseFieldTypeInfo, BaseListTypeInfo, CacheHintArgs, GraphQLTypesForList, NixxieConfig, MaybeFieldFunction, NextFieldType } from "../../types/index.js";
5
- import type { ResolvedFieldHooks, ResolvedListHooks } from "../../types/config/hooks.js";
6
- import type { BaseActions, MaybeBooleanItemFunctionWithFilter, MaybeBooleanSessionFunctionWithFilter, MaybeItemActionFunctionWithFilter, MaybeItemFieldFunction, MaybeItemFieldFunctionWithFilter, MaybeSessionFunction, MaybeSessionFunctionWithFilter } from "../../types/config/lists.js";
5
+ import type { ActionMeta, BaseFieldTypeInfo, BaseCollectionTypeInfo, CacheHintArgs, GraphQLTypesForCollection, NixxieConfig, MaybeFieldFunction, NextFieldType } from "../../types/index.js";
6
+ import type { ResolvedFieldHooks, ResolvedCollectionHooks } from "../../types/config/hooks.js";
7
+ import type { BaseActions, CascadeRule, MaybeBooleanItemFunctionWithFilter, MaybeBooleanSessionFunctionWithFilter, MaybeItemActionFunctionWithFilter, MaybeItemFieldFunction, MaybeItemFieldFunctionWithFilter, MaybeSessionFunction, MaybeSessionFunctionWithFilter } from "../../types/config/lists.js";
7
8
  import { type GraphQLNames } from "../../types/utils.js";
8
- import { type ResolvedActionAccessControl, type ResolvedFieldAccessControl, type ResolvedListAccessControl } from "./access-control.js";
9
+ import { type ResolvedActionAccessControl, type ResolvedFieldAccessControl, type ResolvedCollectionAccessControl } from "./access-control.js";
9
10
  import { type ResolvedDBField } from "./resolve-relationships.js";
10
11
  export type InitialisedAction = {
11
12
  actionKey: string;
12
13
  access: ResolvedActionAccessControl;
13
- resolve: BaseActions<BaseListTypeInfo>[keyof BaseActions<BaseListTypeInfo>]['resolve'];
14
+ resolve: BaseActions<BaseCollectionTypeInfo>[keyof BaseActions<BaseCollectionTypeInfo>]['resolve'];
14
15
  graphql: {
15
16
  arguments: {
16
17
  name: string;
@@ -35,10 +36,10 @@ export type InitialisedAction = {
35
36
  icon: ActionMeta['icon'];
36
37
  messages: ActionMeta['messages'];
37
38
  itemView: Omit<ActionMeta['itemView'], 'actionMode'> & {
38
- actionMode: MaybeItemActionFunctionWithFilter<'enabled' | 'disabled' | 'hidden', 'disabled' | 'hidden', BaseListTypeInfo>;
39
+ actionMode: MaybeItemActionFunctionWithFilter<'enabled' | 'disabled' | 'hidden', 'disabled' | 'hidden', BaseCollectionTypeInfo>;
39
40
  };
40
41
  listView: {
41
- actionMode: MaybeSessionFunctionWithFilter<'enabled' | 'disabled' | 'hidden', 'disabled' | 'hidden', BaseListTypeInfo>;
42
+ actionMode: MaybeSessionFunctionWithFilter<'enabled' | 'disabled' | 'hidden', 'disabled' | 'hidden', BaseCollectionTypeInfo>;
42
43
  };
43
44
  argSources: Record<string, {
44
45
  itemField: string;
@@ -49,14 +50,14 @@ export type InitialisedField = {
49
50
  fieldKey: string;
50
51
  access: ResolvedFieldAccessControl;
51
52
  dbField: ResolvedDBField;
52
- hooks: ResolvedFieldHooks<BaseListTypeInfo, BaseFieldTypeInfo>;
53
+ hooks: ResolvedFieldHooks<BaseCollectionTypeInfo, BaseFieldTypeInfo>;
53
54
  graphql: {
54
55
  isEnabled: {
55
56
  read: boolean;
56
57
  create: boolean;
57
58
  update: boolean;
58
- filter: MaybeFieldFunction<BaseListTypeInfo>;
59
- orderBy: MaybeFieldFunction<BaseListTypeInfo>;
59
+ filter: MaybeFieldFunction<BaseCollectionTypeInfo>;
60
+ orderBy: MaybeFieldFunction<BaseCollectionTypeInfo>;
60
61
  };
61
62
  isNonNull: {
62
63
  read: boolean;
@@ -70,31 +71,33 @@ export type InitialisedField = {
70
71
  description: string;
71
72
  views: string | null;
72
73
  createView: {
73
- fieldMode: MaybeSessionFunctionWithFilter<'edit' | 'hidden', 'hidden', BaseListTypeInfo>;
74
- isRequired: MaybeBooleanSessionFunctionWithFilter<BaseListTypeInfo>;
74
+ fieldMode: MaybeSessionFunctionWithFilter<'edit' | 'hidden', 'hidden', BaseCollectionTypeInfo>;
75
+ isRequired: MaybeBooleanSessionFunctionWithFilter<BaseCollectionTypeInfo>;
75
76
  };
76
77
  itemView: {
77
- fieldMode: MaybeItemFieldFunctionWithFilter<'read' | 'edit' | 'hidden', 'read' | 'hidden', BaseListTypeInfo, BaseFieldTypeInfo>;
78
- fieldPosition: MaybeItemFieldFunction<'form' | 'sidebar', BaseListTypeInfo, BaseFieldTypeInfo>;
79
- isRequired: MaybeBooleanItemFunctionWithFilter<BaseListTypeInfo, BaseFieldTypeInfo>;
78
+ fieldMode: MaybeItemFieldFunctionWithFilter<'read' | 'edit' | 'hidden', 'read' | 'hidden', BaseCollectionTypeInfo, BaseFieldTypeInfo>;
79
+ fieldPosition: MaybeItemFieldFunction<'form' | 'sidebar', BaseCollectionTypeInfo, BaseFieldTypeInfo>;
80
+ isRequired: MaybeBooleanItemFunctionWithFilter<BaseCollectionTypeInfo, BaseFieldTypeInfo>;
80
81
  };
81
82
  listView: {
82
- fieldMode: MaybeSessionFunction<'read' | 'hidden', BaseListTypeInfo>;
83
+ fieldMode: MaybeSessionFunction<'read' | 'hidden', BaseCollectionTypeInfo>;
83
84
  };
84
85
  };
85
86
  } & Pick<NextFieldType, 'input' | 'output' | 'getAdminMeta' | 'views' | '__nxTelemetryFieldTypeName' | 'extraOutputFields' | 'unreferencedConcreteInterfaceImplementations'>;
86
87
  export type InitialisedList = {
87
88
  listKey: string;
88
- access: ResolvedListAccessControl;
89
+ access: ResolvedCollectionAccessControl;
90
+ /** Referential-integrity rules enacted on delete (see CascadeRule). */
91
+ cascade: CascadeRule[];
89
92
  fields: Record<string, InitialisedField>;
90
93
  actions: InitialisedAction[];
91
- groups: GroupInfo<BaseListTypeInfo>[];
92
- hooks: ResolvedListHooks<BaseListTypeInfo>;
94
+ groups: GroupInfo<BaseCollectionTypeInfo>[];
95
+ hooks: ResolvedCollectionHooks<BaseCollectionTypeInfo>;
93
96
  /** This will include the opposites to one-sided relationships */
94
97
  resolvedDbFields: Record<string, ResolvedDBField>;
95
98
  lists: Record<string, InitialisedList>;
96
99
  graphql: {
97
- types: GraphQLTypesForList;
100
+ types: GraphQLTypesForCollection;
98
101
  names: GraphQLNames;
99
102
  isEnabled: {
100
103
  type: boolean;
@@ -102,8 +105,8 @@ export type InitialisedList = {
102
105
  create: boolean;
103
106
  update: boolean;
104
107
  delete: boolean;
105
- filter: MaybeFieldFunction<BaseListTypeInfo>;
106
- orderBy: MaybeFieldFunction<BaseListTypeInfo>;
108
+ filter: MaybeFieldFunction<BaseCollectionTypeInfo>;
109
+ orderBy: MaybeFieldFunction<BaseCollectionTypeInfo>;
107
110
  };
108
111
  };
109
112
  prisma: {
@@ -125,7 +128,7 @@ export type InitialisedList = {
125
128
  triviallySearchableFields: Set<string>;
126
129
  };
127
130
  isSingleton: boolean;
128
- cacheHint: ((args: CacheHintArgs<BaseListTypeInfo>) => CacheHint) | undefined;
131
+ cacheHint: ((args: CacheHintArgs<BaseCollectionTypeInfo>) => CacheHint) | undefined;
129
132
  };
130
133
  export declare function initialiseLists(config: NixxieConfig): Record<string, InitialisedList>;
131
134
  //# sourceMappingURL=initialise-lists.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"initialise-lists.d.ts","sourceRoot":"../../../../../src/lib/core","sources":["initialise-lists.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"initialise-lists.d.ts","sourceRoot":"../../../../../src/lib/core","sources":["initialise-lists.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { NixxieEnvSpec } from "../types/index.js";
2
+ /**
3
+ * Validate `env` (default `process.env`) against a spec. Applies `default`s to the env
4
+ * object for unset variables, then throws one aggregated error listing every missing or
5
+ * malformed variable. Called automatically when the config declares `env`, and exported
6
+ * for standalone use.
7
+ */
8
+ export declare function validateEnv(spec: NixxieEnvSpec, env?: Record<string, string | undefined>): void;
9
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"../../../../src/lib","sources":["env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAoB,0BAAgB;AAS/D;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,aAAa,EACnB,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,IAAI,CA+BN"}
@@ -31,5 +31,5 @@ export declare function createSystem(config: NixxieConfig): {
31
31
  };
32
32
  };
33
33
  export type System = ReturnType<typeof createSystem>;
34
- export declare function getContext<TypeInfo extends BaseNixxieTypeInfo>(config: NixxieConfig<TypeInfo>, PrismaModule: unknown): NixxieContext<TypeInfo>;
34
+ export declare function createNixxieContext<TypeInfo extends BaseNixxieTypeInfo>(config: NixxieConfig<TypeInfo>, PrismaModule: unknown): NixxieContext<TypeInfo>;
35
35
  //# sourceMappingURL=system.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"system.d.ts","sourceRoot":"../../../../src/lib","sources":["system.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,0BAAgB;AAG/E,OAAO,EAAmB,KAAK,eAAe,EAAE,mCAA+B;AAI/E,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,MAAM,UAE1D;AAsID,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY;;;;;;;;;;oBAe7B,MAAM;;;;;;;;;;;;;oBAEN,GAAG;;;;;EAgCtB;AAED,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAA;AAEpD,wBAAgB,UAAU,CAAC,QAAQ,SAAS,kBAAkB,EAC5D,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC9B,YAAY,EAAE,OAAO,GACpB,aAAa,CAAC,QAAQ,CAAC,CAIzB"}
1
+ {"version":3,"file":"system.d.ts","sourceRoot":"../../../../src/lib","sources":["system.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,0BAAgB;AAG/E,OAAO,EAAmB,KAAK,eAAe,EAAE,mCAA+B;AAI/E,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,MAAM,UAE1D;AAsID,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY;;;;;;;;;;oBAe7B,MAAM;;;;;;;;;;;;;oBAEN,GAAG;;;;;EA8CtB;AAED,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAA;AAEpD,wBAAgB,mBAAmB,CAAC,QAAQ,SAAS,kBAAkB,EACrE,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC9B,YAAY,EAAE,OAAO,GACpB,aAAa,CAAC,QAAQ,CAAC,CAIzB"}
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Declarative collection features compiled into hooks + access-control filters by
3
+ * `defineCollection()`: computed fields, constraints, default filters, state machines,
4
+ * policies, events, search indexing and version snapshots.
5
+ *
6
+ * Everything here builds on the public hook/access surface — no resolver internals —
7
+ * so the features compose with mixins and user hooks via the same merge pipeline.
8
+ */
9
+ import type { CollectionHooks } from "./types/index.js";
10
+ import type { MaybePromise } from "./types/utils.js";
11
+ type AnyArgs = any;
12
+ /**
13
+ * Persisted derived fields, recalculated on every create/update after all other
14
+ * `resolveInput` hooks have run. The target keys must be real fields on the collection
15
+ * (unlike `virtual()` fields, computed values are stored — so they can be filtered and
16
+ * sorted). `merged` is the item's prospective state (existing values + this write).
17
+ *
18
+ * @example
19
+ * computed: { total: ({ merged }) => merged.price * merged.quantity }
20
+ */
21
+ export type ComputedConfig = Record<string, (args: {
22
+ operation: 'create' | 'update';
23
+ resolvedData: Record<string, any>;
24
+ /** Existing item values overlaid with this operation's resolved data. */
25
+ merged: Record<string, any>;
26
+ item: Record<string, any> | undefined;
27
+ context: any;
28
+ }) => MaybePromise<unknown>>;
29
+ /**
30
+ * Data-integrity rules checked before every create/update.
31
+ *
32
+ * - `uniqueTogether`: compound uniqueness over scalar fields (e.g. `[['tenant', 'slug']]`).
33
+ * Checked with a query, so add a DB index for hot paths.
34
+ * - `checks`: named cross-field rules; return an error message to reject the write.
35
+ *
36
+ * @example
37
+ * constraints: {
38
+ * uniqueTogether: [['translationKey', 'locale']],
39
+ * checks: { dates: ({ merged }) => merged.endDate <= merged.startDate ? 'endDate must be after startDate' : undefined },
40
+ * }
41
+ */
42
+ export type ConstraintsConfig = {
43
+ uniqueTogether?: string[][];
44
+ checks?: Record<string, (args: {
45
+ operation: 'create' | 'update';
46
+ resolvedData: Record<string, any>;
47
+ merged: Record<string, any>;
48
+ item: Record<string, any> | undefined;
49
+ context: any;
50
+ }) => MaybePromise<string | undefined | void>>;
51
+ };
52
+ /**
53
+ * A where-filter automatically ANDed into every query/update/delete — including the
54
+ * Admin UI, which respects access filters. This is what makes `withSoftDelete()` real:
55
+ *
56
+ * @example
57
+ * defaultFilter: { deletedAt: null }
58
+ * @example
59
+ * defaultFilter: ({ session }) => session?.data?.isAdmin ? true : { status: { equals: 'published' } }
60
+ */
61
+ export type DefaultFilterConfig = Record<string, unknown> | ((args: {
62
+ session?: any;
63
+ context: any;
64
+ }) => MaybePromise<boolean | Record<string, unknown>>);
65
+ /**
66
+ * Enforce legal status transitions on a select field at the mutation layer.
67
+ *
68
+ * @example
69
+ * stateMachine: {
70
+ * field: 'status',
71
+ * transitions: { draft: ['review'], review: ['published', 'draft'], published: ['archived'] },
72
+ * guards: { 'review->published': ({ session }) => session?.data?.role === 'editor' || 'Only editors can publish' },
73
+ * }
74
+ */
75
+ export type StateMachineConfig = {
76
+ /** The (select) field holding the state. */
77
+ field: string;
78
+ /** Allowed transitions: from-state → list of reachable states. */
79
+ transitions: Record<string, string[]>;
80
+ /**
81
+ * Optional guards keyed `"from->to"`. Return `false` to block (generic message)
82
+ * or a string to block with that message.
83
+ */
84
+ guards?: Record<string, (args: {
85
+ item: Record<string, any>;
86
+ resolvedData: Record<string, any>;
87
+ context: any;
88
+ session?: any;
89
+ }) => MaybePromise<boolean | string>>;
90
+ /** States allowed on create. Omit to allow any state on create. */
91
+ initial?: string | string[];
92
+ };
93
+ /** One row-level access rule: the first rule whose `when` matches decides the filter. */
94
+ export type PolicyRule = {
95
+ /** Does this rule apply to the session? (e.g. `session => session?.data?.role === 'editor'`) */
96
+ when: (session: any) => boolean;
97
+ /** `true` = unrestricted, `false` = no access, object = where-filter, function = computed filter. */
98
+ filter: boolean | Record<string, unknown> | ((session: any) => boolean | Record<string, unknown>);
99
+ };
100
+ /**
101
+ * Declarative row-level access: per operation, rules are evaluated in order and the
102
+ * first matching `when` supplies the filter; no match means no access. ANDed with any
103
+ * explicit `access.filter` you also configure. Pairs naturally with @nixxie-cms/rbac.
104
+ *
105
+ * @example
106
+ * policies: {
107
+ * query: [
108
+ * { when: s => s?.data?.role === 'admin', filter: true },
109
+ * { when: s => !!s, filter: s => ({ author: { id: { equals: s.itemId } } }) },
110
+ * ],
111
+ * }
112
+ */
113
+ export type PoliciesConfig = Partial<Record<'query' | 'update' | 'delete', PolicyRule[]>>;
114
+ /**
115
+ * Emit lifecycle events through `context.services.webhooks` after every write:
116
+ * `<prefix>.created` / `.updated` / `.deleted` (prefix defaults to the list key).
117
+ * No-op when the webhooks service is not configured.
118
+ */
119
+ export type EventsConfig = true | {
120
+ /** Event name prefix. @default the list key */
121
+ prefix?: string;
122
+ operations?: ('create' | 'update' | 'delete')[];
123
+ /** Customise the event payload. @default { listKey, id, item } */
124
+ payload?: (args: AnyArgs) => unknown;
125
+ };
126
+ /**
127
+ * Keep a search index in sync through `context.services.search`: documents are indexed
128
+ * after create/update and removed after delete. No-op when search is not configured.
129
+ */
130
+ export type SearchableConfig = true | {
131
+ /** Index name. @default the list key lowercased */
132
+ index?: string;
133
+ /** Item fields copied into the document. @default all scalar values on the item */
134
+ fields?: string[];
135
+ };
136
+ /**
137
+ * Snapshot every create/update into `context.services.versioning` (resource = list key).
138
+ * No-op when versioning is not configured.
139
+ */
140
+ export type VersionedConfig = true | {
141
+ /** Optional label for each snapshot. */
142
+ label?: (args: AnyArgs) => string | undefined;
143
+ };
144
+ export type ListFeaturesConfig = {
145
+ computed?: ComputedConfig;
146
+ constraints?: ConstraintsConfig;
147
+ defaultFilter?: DefaultFilterConfig;
148
+ stateMachine?: StateMachineConfig;
149
+ policies?: PoliciesConfig;
150
+ events?: EventsConfig;
151
+ searchable?: SearchableConfig;
152
+ versioned?: VersionedConfig;
153
+ };
154
+ /** Compile the declarative features into hook fragments, in a deliberate order. */
155
+ export declare function compileFeatureHooks(features: ListFeaturesConfig): Array<Partial<CollectionHooks<any>>>;
156
+ /**
157
+ * Merge `defaultFilter` and `policies` into an access-control object. Existing filters
158
+ * are preserved and ANDed with the feature filters.
159
+ */
160
+ export declare function applyAccessFeatures(access: any, features: Pick<ListFeaturesConfig, 'defaultFilter' | 'policies'>): any;
161
+ export {};
162
+ //# sourceMappingURL=list-features.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-features.d.ts","sourceRoot":"../../../src","sources":["list-features.ts"],"names":[],"mappings":"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"}
@@ -1,40 +1,41 @@
1
- import type { Action, ActionArgsConfig, BaseFields, BaseNixxieTypeInfo, BaseListTypeInfo, DeclaredAction, NixxieConfig, NixxieConfigPre, ListConfig, MaybeItemFunctionWithFilter, MaybeSessionFunction, MaybeSessionFunctionWithFilter } from "./types/index.js";
2
- export declare function config<TypeInfo extends BaseNixxieTypeInfo>(config: NixxieConfigPre<TypeInfo>): NixxieConfig<TypeInfo>;
3
- export type GroupInfo<ListTypeInfo extends BaseListTypeInfo> = {
1
+ import type { Action, ActionArgsConfig, BaseFields, BaseNixxieTypeInfo, BaseCollectionTypeInfo, DeclaredAction, NixxieConfig, NixxieConfigPre, CollectionConfig, MaybeItemFunctionWithFilter, MaybeSessionFunction, MaybeSessionFunctionWithFilter } from "./types/index.js";
2
+ export declare function buildConfig<TypeInfo extends BaseNixxieTypeInfo>(config: NixxieConfigPre<TypeInfo>): NixxieConfig<TypeInfo>;
3
+ export type GroupInfo<CollectionTypeInfo extends BaseCollectionTypeInfo> = {
4
4
  fields: string[];
5
5
  label: string;
6
6
  description: string;
7
- ui: GroupUIConfig<ListTypeInfo> | undefined;
7
+ ui: GroupUIConfig<CollectionTypeInfo> | undefined;
8
8
  };
9
- type GroupUIConfig<ListTypeInfo extends BaseListTypeInfo> = {
9
+ type GroupUIConfig<CollectionTypeInfo extends BaseCollectionTypeInfo> = {
10
10
  createView?: {
11
- defaultFieldMode?: MaybeSessionFunctionWithFilter<'hidden' | 'edit', 'hidden', ListTypeInfo>;
11
+ defaultFieldMode?: MaybeSessionFunctionWithFilter<'hidden' | 'edit', 'hidden', CollectionTypeInfo>;
12
12
  };
13
13
  itemView?: {
14
- defaultFieldMode?: MaybeItemFunctionWithFilter<'edit' | 'hidden' | 'read', 'hidden' | 'read', ListTypeInfo>;
14
+ defaultFieldMode?: MaybeItemFunctionWithFilter<'edit' | 'hidden' | 'read', 'hidden' | 'read', CollectionTypeInfo>;
15
15
  };
16
16
  listView?: {
17
- defaultFieldMode?: MaybeSessionFunction<'read' | 'hidden', ListTypeInfo>;
17
+ defaultFieldMode?: MaybeSessionFunction<'read' | 'hidden', CollectionTypeInfo>;
18
18
  };
19
19
  };
20
- export declare function group<ListTypeInfo extends BaseListTypeInfo>(config: {
20
+ export declare function fieldGroup<CollectionTypeInfo extends BaseCollectionTypeInfo>(config: {
21
21
  label: string;
22
22
  description?: string;
23
- ui?: GroupUIConfig<ListTypeInfo>;
24
- fields: BaseFields<ListTypeInfo>;
25
- }): BaseFields<ListTypeInfo>;
26
- export declare function list<ListTypeInfo extends BaseListTypeInfo>(listConfig: ListConfig<ListTypeInfo>): {
27
- access: import("./types/index.js").ListAccessControl<ListTypeInfo>;
28
- fields: BaseFields<ListTypeInfo>;
29
- actions?: import("./types/index.js").BaseActions<ListTypeInfo> | undefined;
30
- ui?: import("./types/index.js").ListAdminUIConfig<ListTypeInfo> | undefined;
31
- hooks?: import("./types/index.js").ListHooks<ListTypeInfo> | undefined;
32
- graphql?: import("./types/index.js").ListGraphQLConfig<ListTypeInfo> | undefined;
33
- db?: import("./types/index.js").ListDBConfig;
23
+ ui?: GroupUIConfig<CollectionTypeInfo>;
24
+ fields: BaseFields<CollectionTypeInfo>;
25
+ }): BaseFields<CollectionTypeInfo>;
26
+ export declare function collection<CollectionTypeInfo extends BaseCollectionTypeInfo>(listConfig: CollectionConfig<CollectionTypeInfo>): {
27
+ access: import("./types/index.js").CollectionAccessControl<CollectionTypeInfo>;
28
+ cascade?: import("./index.js").CascadeRule[];
29
+ fields: BaseFields<CollectionTypeInfo>;
30
+ actions?: import("./types/index.js").BaseActions<CollectionTypeInfo> | undefined;
31
+ ui?: import("./types/index.js").CollectionAdminUIConfig<CollectionTypeInfo> | undefined;
32
+ hooks?: import("./types/index.js").CollectionHooks<CollectionTypeInfo> | undefined;
33
+ graphql?: import("./types/index.js").CollectionGraphQLConfig<CollectionTypeInfo> | undefined;
34
+ db?: import("./types/index.js").CollectionDBConfig;
34
35
  isSingleton?: boolean;
35
- defaultIsFilterable?: import("./types/index.js").MaybeFieldFunction<ListTypeInfo> | undefined;
36
- defaultIsOrderable?: import("./types/index.js").MaybeFieldFunction<ListTypeInfo> | undefined;
36
+ defaultIsFilterable?: import("./types/index.js").MaybeFieldFunction<CollectionTypeInfo> | undefined;
37
+ defaultIsOrderable?: import("./types/index.js").MaybeFieldFunction<CollectionTypeInfo> | undefined;
37
38
  };
38
- export declare function action<ListTypeInfo extends BaseListTypeInfo, Args extends ActionArgsConfig<ListTypeInfo> | undefined = undefined>(action: Action<ListTypeInfo, Args>): DeclaredAction<ListTypeInfo>;
39
+ export declare function createAction<CollectionTypeInfo extends BaseCollectionTypeInfo, Args extends ActionArgsConfig<CollectionTypeInfo> | undefined = undefined>(action: Action<CollectionTypeInfo, Args>): DeclaredAction<CollectionTypeInfo>;
39
40
  export {};
40
41
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"../../../src","sources":["schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,MAAM,EACN,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EAEd,YAAY,EACZ,eAAe,EAEf,UAAU,EACV,2BAA2B,EAC3B,oBAAoB,EACpB,8BAA8B,EAC/B,yBAAe;AAsEhB,wBAAgB,MAAM,CAAC,QAAQ,SAAS,kBAAkB,EACxD,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,GAChC,YAAY,CAAC,QAAQ,CAAC,CAqFxB;AAID,MAAM,MAAM,SAAS,CAAC,YAAY,SAAS,gBAAgB,IAAI;IAC7D,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,EAAE,EAAE,aAAa,CAAC,YAAY,CAAC,GAAG,SAAS,CAAA;CAC5C,CAAA;AAED,KAAK,aAAa,CAAC,YAAY,SAAS,gBAAgB,IAAI;IAC1D,UAAU,CAAC,EAAE;QACX,gBAAgB,CAAC,EAAE,8BAA8B,CAAC,QAAQ,GAAG,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;KAC7F,CAAA;IACD,QAAQ,CAAC,EAAE;QACT,gBAAgB,CAAC,EAAE,2BAA2B,CAC5C,MAAM,GAAG,QAAQ,GAAG,MAAM,EAC1B,QAAQ,GAAG,MAAM,EACjB,YAAY,CACb,CAAA;KACF,CAAA;IACD,QAAQ,CAAC,EAAE;QACT,gBAAgB,CAAC,EAAE,oBAAoB,CAAC,MAAM,GAAG,QAAQ,EAAE,YAAY,CAAC,CAAA;KACzE,CAAA;CACF,CAAA;AAED,wBAAgB,KAAK,CAAC,YAAY,SAAS,gBAAgB,EAAE,MAAM,EAAE;IACnE,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,EAAE,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;IAChC,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,CAAA;CACjC,GAcM,UAAU,CAAC,YAAY,CAAC,CAC9B;AAED,wBAAgB,IAAI,CAAC,YAAY,SAAS,gBAAgB,EAAE,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC;;;;;;;;;;;EAE/F;AAED,wBAAgB,MAAM,CACpB,YAAY,SAAS,gBAAgB,EACrC,IAAI,SAAS,gBAAgB,CAAC,YAAY,CAAC,GAAG,SAAS,GAAG,SAAS,EACnE,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,cAAc,CAAC,YAAY,CAAC,CAKlE"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"../../../src","sources":["schema.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,MAAM,EACN,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EAEd,YAAY,EACZ,eAAe,EAEf,gBAAgB,EAChB,2BAA2B,EAC3B,oBAAoB,EACpB,8BAA8B,EAC/B,yBAAe;AA4HhB,wBAAgB,WAAW,CAAC,QAAQ,SAAS,kBAAkB,EAC7D,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,GAChC,YAAY,CAAC,QAAQ,CAAC,CA6FxB;AAID,MAAM,MAAM,SAAS,CAAC,kBAAkB,SAAS,sBAAsB,IAAI;IACzE,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,EAAE,EAAE,aAAa,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAA;CAClD,CAAA;AAED,KAAK,aAAa,CAAC,kBAAkB,SAAS,sBAAsB,IAAI;IACtE,UAAU,CAAC,EAAE;QACX,gBAAgB,CAAC,EAAE,8BAA8B,CAC/C,QAAQ,GAAG,MAAM,EACjB,QAAQ,EACR,kBAAkB,CACnB,CAAA;KACF,CAAA;IACD,QAAQ,CAAC,EAAE;QACT,gBAAgB,CAAC,EAAE,2BAA2B,CAC5C,MAAM,GAAG,QAAQ,GAAG,MAAM,EAC1B,QAAQ,GAAG,MAAM,EACjB,kBAAkB,CACnB,CAAA;KACF,CAAA;IACD,QAAQ,CAAC,EAAE;QACT,gBAAgB,CAAC,EAAE,oBAAoB,CAAC,MAAM,GAAG,QAAQ,EAAE,kBAAkB,CAAC,CAAA;KAC/E,CAAA;CACF,CAAA;AAED,wBAAgB,UAAU,CAAC,kBAAkB,SAAS,sBAAsB,EAAE,MAAM,EAAE;IACpF,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,EAAE,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAA;IACtC,MAAM,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAA;CACvC,GAcM,UAAU,CAAC,kBAAkB,CAAC,CACpC;AAED,wBAAgB,UAAU,CAAC,kBAAkB,SAAS,sBAAsB,EAC1E,UAAU,EAAE,gBAAgB,CAAC,kBAAkB,CAAC;;;;;;;;;;;;EAGjD;AAED,wBAAgB,YAAY,CAC1B,kBAAkB,SAAS,sBAAsB,EACjD,IAAI,SAAS,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,SAAS,GAAG,SAAS,EACzE,MAAM,EAAE,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAK9E"}
@@ -67,6 +67,68 @@ cookieName, path, secure, ironOptions, domain, sameSite, }?: StatelessSessionsOp
67
67
  data: Session;
68
68
  }): Promise<string | undefined>;
69
69
  };
70
+ type PersistentSessionsOptions = StatelessSessionsOptions & {
71
+ /**
72
+ * Key of the collection that stores sessions (see `sessionCollection()`).
73
+ * @default 'UserSession'
74
+ */
75
+ collection?: string;
76
+ };
77
+ /**
78
+ * Database-backed sessions: the cookie carries only an opaque token; the session itself
79
+ * lives in a collection, so sessions survive restarts, can be listed per user, and can be
80
+ * revoked server-side (see `listSessions` / `revokeSession` / `revokeUserSessions`).
81
+ *
82
+ * Tracks `lastSeenAt` (refreshed at most once a minute), `userAgent` and `ip` per session.
83
+ * Pair with a scheduled `pruneSessions()` job to clear expired/revoked rows.
84
+ */
85
+ export declare function persistentSessions<Session>({ collection, maxAge, // 8 hours
86
+ ...statelessSessionsOptions }?: PersistentSessionsOptions): {
87
+ get({ context }: {
88
+ context: NixxieContext<any>;
89
+ }): Promise<Session | undefined>;
90
+ start({ context, data }: {
91
+ context: NixxieContext<any>;
92
+ data: Session;
93
+ }): Promise<string>;
94
+ end({ context }: {
95
+ context: NixxieContext<any>;
96
+ }): Promise<void>;
97
+ };
98
+ export type SessionInfo = {
99
+ id: string;
100
+ itemId: string | null;
101
+ createdAt: Date;
102
+ lastSeenAt: Date | null;
103
+ expiresAt: Date | null;
104
+ revokedAt: Date | null;
105
+ userAgent: string | null;
106
+ ip: string | null;
107
+ };
108
+ /** Active (non-revoked, non-expired) sessions for a user, without their tokens. */
109
+ export declare function listSessions(context: NixxieContext, itemId: string, { collection }?: {
110
+ collection?: string;
111
+ }): Promise<SessionInfo[]>;
112
+ /** Revoke a single session by its row id. The next request with its cookie is signed out. */
113
+ export declare function revokeSession(context: NixxieContext, sessionId: string, { collection }?: {
114
+ collection?: string;
115
+ }): Promise<void>;
116
+ /** Revoke every session belonging to a user (e.g. after a password change). */
117
+ export declare function revokeUserSessions(context: NixxieContext, itemId: string, { collection }?: {
118
+ collection?: string;
119
+ }): Promise<number>;
120
+ /** Delete expired and revoked session rows. Run from a scheduled job. */
121
+ export declare function pruneSessions(context: NixxieContext, { collection }?: {
122
+ collection?: string;
123
+ }): Promise<number>;
124
+ /**
125
+ * Sign the current user in as another user, recording who is impersonating in the
126
+ * session (`impersonatedBy`). Works with any session strategy. The caller is
127
+ * responsible for authorising the action (e.g. an admin-only check).
128
+ */
129
+ export declare function startImpersonation(context: NixxieContext, itemId: string | number): Promise<void>;
130
+ /** Return from an impersonated session to the original user's session. */
131
+ export declare function endImpersonation(context: NixxieContext): Promise<void>;
70
132
  export declare function storedSessions<Session>({ store: storeFn, maxAge, // 8 hours
71
133
  ...statelessSessionsOptions }: {
72
134
  store: SessionStoreFunction<Session>;
@@ -82,5 +144,18 @@ export declare function storedSessions<Session>({ store: storeFn, maxAge, // 8 h
82
144
  context: NixxieContext<any>;
83
145
  }): Promise<void>;
84
146
  };
147
+ /**
148
+ * Ready-made collection definition backing `persistentSessions()`.
149
+ *
150
+ * @example
151
+ * config({
152
+ * collections: {
153
+ * UserSession: sessionCollection(),
154
+ * ...collections,
155
+ * },
156
+ * session: persistentSessions({ collection: 'UserSession' }),
157
+ * })
158
+ */
159
+ export declare function sessionCollection(): any;
85
160
  export {};
86
161
  //# sourceMappingURL=session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"../../../src","sources":["session.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,YAAY,CAAA;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAmB,oBAAoB,EAAE,mDAAgB;AAGpF,KAAK,wBAAwB,GAAG;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;OAKG;IACH,WAAW,CAAC,EAAE,IAAI,CAAC,WAAW,CAAA;IAC9B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;CACpD,CAAA;AAaD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,EACzC,MAA8C,EAC9C,MAAoB,EAAE,WAAW;AACjC,UAAgC,EAChC,IAAU,EACV,MAA8C,EAC9C,WAA2B,EAC3B,MAAM,EACN,QAAgB,GACjB,GAAE,wBAA6B;;;;;;;;;;;EAsD/B;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,EACtC,KAAK,EAAE,OAAO,EACd,MAAoB,EAAE,UAAU;AAChC,GAAG,wBAAwB,EAC5B,EAAE;IACD,KAAK,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAA;CACrC,GAAG,wBAAwB;;;;;;;;;;;EAwB3B"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"../../../src","sources":["session.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import type { allIcons as KeystarIcons } from '@keystar/ui/icon/all';
2
2
  import type { ReactElement } from 'react';
3
- import type { ConditionalFilter, ConditionalFilterCase, ListSortDescriptor } from "./config/index.js";
4
- import type { BaseListTypeInfo } from "./type-info.js";
3
+ import type { ConditionalFilter, ConditionalFilterCase, CollectionSortDescriptor } from "./config/index.js";
4
+ import type { BaseCollectionTypeInfo } from "./type-info.js";
5
5
  import type { GraphQLNames, JSONValue } from "./utils.js";
6
6
  export type NavigationProps = {
7
- lists: ListMeta[];
7
+ lists: CollectionMeta[];
8
8
  };
9
9
  export type AdminConfig = {
10
10
  components?: {
@@ -76,13 +76,13 @@ export type FieldMeta = {
76
76
  search: 'default' | 'insensitive' | null;
77
77
  isNonNull: ('read' | 'create' | 'update')[];
78
78
  createView: {
79
- fieldMode: ConditionalFilter<'edit' | 'hidden', 'hidden', BaseListTypeInfo>;
80
- isRequired: ConditionalFilterCase<BaseListTypeInfo>;
79
+ fieldMode: ConditionalFilter<'edit' | 'hidden', 'hidden', BaseCollectionTypeInfo>;
80
+ isRequired: ConditionalFilterCase<BaseCollectionTypeInfo>;
81
81
  };
82
82
  itemView: {
83
- fieldMode: ConditionalFilter<'edit' | 'read' | 'hidden', 'read' | 'hidden', BaseListTypeInfo>;
83
+ fieldMode: ConditionalFilter<'edit' | 'read' | 'hidden', 'read' | 'hidden', BaseCollectionTypeInfo>;
84
84
  fieldPosition: 'form' | 'sidebar';
85
- isRequired: ConditionalFilterCase<BaseListTypeInfo>;
85
+ isRequired: ConditionalFilterCase<BaseCollectionTypeInfo>;
86
86
  };
87
87
  listView: {
88
88
  fieldMode: 'read' | 'hidden';
@@ -123,16 +123,16 @@ export type ActionMeta = {
123
123
  successMany: string;
124
124
  };
125
125
  itemView: {
126
- actionMode: ConditionalFilter<'enabled' | 'disabled' | 'hidden', 'disabled' | 'hidden', BaseListTypeInfo>;
126
+ actionMode: ConditionalFilter<'enabled' | 'disabled' | 'hidden', 'disabled' | 'hidden', BaseCollectionTypeInfo>;
127
127
  navigation: 'follow' | 'refetch' | 'return';
128
128
  hidePrompt: boolean;
129
129
  hideToast: boolean;
130
130
  };
131
131
  listView: {
132
- actionMode: ConditionalFilter<'enabled' | 'disabled' | 'hidden', 'disabled' | 'hidden', BaseListTypeInfo>;
132
+ actionMode: ConditionalFilter<'enabled' | 'disabled' | 'hidden', 'disabled' | 'hidden', BaseCollectionTypeInfo>;
133
133
  };
134
134
  };
135
- export type ListMeta = {
135
+ export type CollectionMeta = {
136
136
  key: string;
137
137
  label: string;
138
138
  singular: string;
@@ -150,7 +150,7 @@ export type ListMeta = {
150
150
  pageSize: number;
151
151
  initialColumns: string[];
152
152
  initialSearchFields: string[];
153
- initialSort: ListSortDescriptor<string>;
153
+ initialSort: CollectionSortDescriptor<string>;
154
154
  initialFilter: JSONValue;
155
155
  isSingleton: boolean;
156
156
  hideNavigation: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"admin-meta.d.ts","sourceRoot":"../../../../src/types","sources":["admin-meta.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin-meta.d.ts","sourceRoot":"../../../../src/types","sources":["admin-meta.ts"],"names":[],"mappings":"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"}