@cosmicdrift/kumiko-bundled-features 0.333.0 → 0.334.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 (40) hide show
  1. package/dist/audit/handlers/list.query.js +4 -3
  2. package/dist/auth-mfa/schema/user-mfa.d.ts +6 -0
  3. package/dist/billing-foundation/entities.d.ts +8 -0
  4. package/dist/billing-foundation/projection.d.ts +8 -0
  5. package/dist/cap-counter/entity.d.ts +1 -0
  6. package/dist/compliance-profiles/schema/profile-selection.d.ts +2 -2
  7. package/dist/config/table.d.ts +6 -0
  8. package/dist/config/web/i18n.js +12 -4
  9. package/dist/custom-fields/entity.d.ts +4 -0
  10. package/dist/data-retention/schema/tenant-retention-override.d.ts +4 -0
  11. package/dist/delivery/tables.d.ts +6 -0
  12. package/dist/document-ingest-foundation/entity.d.ts +4 -0
  13. package/dist/file-provider-s3/feature.js +1 -1
  14. package/dist/folders/entity.d.ts +8 -0
  15. package/dist/form-draft/entity.d.ts +2 -0
  16. package/dist/inbound-mail-foundation/entities.d.ts +25 -0
  17. package/dist/inbound-mail-foundation/projection.d.ts +20 -0
  18. package/dist/jobs/job-run-table.d.ts +6 -0
  19. package/dist/ledger/entity.d.ts +16 -3
  20. package/dist/managed-pages/table.d.ts +12 -0
  21. package/dist/notes-history/entity.d.ts +12 -0
  22. package/dist/personal-access-tokens/schema/api-token.d.ts +6 -0
  23. package/dist/secrets/table.d.ts +1 -0
  24. package/dist/sessions/schema/user-session.d.ts +4 -0
  25. package/dist/subscription-stripe/feature.js +3 -3
  26. package/dist/tags/entity.d.ts +9 -0
  27. package/dist/template-resolver/table.d.ts +18 -8
  28. package/dist/template-resolver/user-content-table.d.ts +14 -4
  29. package/dist/tenant/invitation-table.d.ts +8 -2
  30. package/dist/tenant/membership-table.d.ts +4 -0
  31. package/dist/tenant/schema/tenant.d.ts +8 -2
  32. package/dist/tenant-settings/feature.js +9 -6
  33. package/dist/tier-engine/entity.d.ts +2 -0
  34. package/dist/tier-engine/tier-resolver.d.ts +2 -0
  35. package/dist/user/schema/user.d.ts +14 -2
  36. package/dist/user-data-rights/run-user-export.js +6 -2
  37. package/dist/user-data-rights/schema/download-attempt.d.ts +14 -0
  38. package/dist/user-data-rights/schema/download-token.d.ts +8 -0
  39. package/dist/user-data-rights/schema/export-job.d.ts +8 -2
  40. package/package.json +9 -9
@@ -11,6 +11,7 @@ export declare const tenantEntity: import("@cosmicdrift/kumiko-types/fields").En
11
11
  readonly filterable?: boolean;
12
12
  readonly encrypted?: boolean;
13
13
  readonly sensitive?: boolean;
14
+ readonly writeOnly?: boolean;
14
15
  readonly readAsInstruction?: boolean;
15
16
  readonly format?: "email" | "url" | "phone" | "password";
16
17
  readonly default?: string;
@@ -31,6 +32,7 @@ export declare const tenantEntity: import("@cosmicdrift/kumiko-types/fields").En
31
32
  readonly filterable?: boolean;
32
33
  readonly encrypted?: boolean;
33
34
  readonly sensitive?: boolean;
35
+ readonly writeOnly?: boolean;
34
36
  readonly readAsInstruction?: boolean;
35
37
  readonly format?: "email" | "url" | "phone" | "password";
36
38
  readonly default?: string;
@@ -63,7 +65,7 @@ export declare const tenantEntity: import("@cosmicdrift/kumiko-types/fields").En
63
65
  readonly destroying?: import("@cosmicdrift/kumiko-types/fields").SelectOptionTone | undefined;
64
66
  } | undefined;
65
67
  readonly optionsQuery?: string;
66
- readonly optionsQueryPayload?: Readonly<Record<string, string | number | boolean>>;
68
+ readonly optionsQueryPayload?: import("@cosmicdrift/kumiko-types/fields").OptionsQueryPayload;
67
69
  } & import("@cosmicdrift/kumiko-types/fields").ResolvedPiiFlags & {
68
70
  required: true;
69
71
  };
@@ -92,6 +94,7 @@ export declare const tenantEntity: import("@cosmicdrift/kumiko-types/fields").En
92
94
  readonly filterable?: boolean;
93
95
  readonly encrypted?: boolean;
94
96
  readonly sensitive?: boolean;
97
+ readonly writeOnly?: boolean;
95
98
  readonly readAsInstruction?: boolean;
96
99
  readonly format?: "email" | "url" | "phone" | "password";
97
100
  readonly default?: string;
@@ -159,6 +162,7 @@ export declare const tenantTable: import("@cosmicdrift/kumiko-framework/db").Ent
159
162
  readonly filterable?: boolean;
160
163
  readonly encrypted?: boolean;
161
164
  readonly sensitive?: boolean;
165
+ readonly writeOnly?: boolean;
162
166
  readonly readAsInstruction?: boolean;
163
167
  readonly format?: "email" | "url" | "phone" | "password";
164
168
  readonly default?: string;
@@ -179,6 +183,7 @@ export declare const tenantTable: import("@cosmicdrift/kumiko-framework/db").Ent
179
183
  readonly filterable?: boolean;
180
184
  readonly encrypted?: boolean;
181
185
  readonly sensitive?: boolean;
186
+ readonly writeOnly?: boolean;
182
187
  readonly readAsInstruction?: boolean;
183
188
  readonly format?: "email" | "url" | "phone" | "password";
184
189
  readonly default?: string;
@@ -211,7 +216,7 @@ export declare const tenantTable: import("@cosmicdrift/kumiko-framework/db").Ent
211
216
  readonly destroying?: import("@cosmicdrift/kumiko-types/fields").SelectOptionTone | undefined;
212
217
  } | undefined;
213
218
  readonly optionsQuery?: string;
214
- readonly optionsQueryPayload?: Readonly<Record<string, string | number | boolean>>;
219
+ readonly optionsQueryPayload?: import("@cosmicdrift/kumiko-types/fields").OptionsQueryPayload;
215
220
  } & import("@cosmicdrift/kumiko-types/fields").ResolvedPiiFlags & {
216
221
  required: true;
217
222
  };
@@ -240,6 +245,7 @@ export declare const tenantTable: import("@cosmicdrift/kumiko-framework/db").Ent
240
245
  readonly filterable?: boolean;
241
246
  readonly encrypted?: boolean;
242
247
  readonly sensitive?: boolean;
248
+ readonly writeOnly?: boolean;
243
249
  readonly readAsInstruction?: boolean;
244
250
  readonly format?: "email" | "url" | "phone" | "password";
245
251
  readonly default?: string;
@@ -21,21 +21,24 @@ export function createTenantSettingsFeature(opts = {}) {
21
21
  r.config({ keys: buildTenantSettingsKeys(opts) });
22
22
  r.translations({
23
23
  keys: {
24
- "tenant-settings.currency": { en: "Default Currency" },
25
- "tenant-settings.locale": { en: "Default Locale" },
24
+ "tenant-settings.currency": { en: "Default currency" },
25
+ "tenant-settings.locale": { en: "Default locale" },
26
26
  // Settings-Hub-derived configEdit screen title (buildConfigFeatureSchema) —
27
27
  // required by the i18n boot-validator whenever a feature masks config keys.
28
- "screen:tenant-settings-system.title": { en: "Tenant Settings" },
29
- "screen:tenant-settings-tenant.title": { en: "Tenant Settings" },
28
+ "screen:tenant-settings-system.title": { en: "Tenant defaults" },
29
+ "screen:tenant-settings-tenant.title": { en: "Tenant settings" },
30
30
  // Settings-Hub nav label + configEdit section heading (same key, both
31
31
  // scopes fall back here — see buildConfigFeatureSchema).
32
- "tenant-settings.settings": { en: "Tenant Settings" },
32
+ "tenant-settings.settings": { en: "Tenant settings" },
33
+ // Section heading below the page title (the page title is the same words as
34
+ // `.settings`, which RenderEdit would drop as a repeat).
35
+ "tenant-settings.settings.section": { en: "Currency and language" },
33
36
  // Both currency/locale are tenant-home with admin write access, which
34
37
  // cascades a SystemAdmin-only "set the platform default" screen up to
35
38
  // the system audience — scoped override so its nav entry reads
36
39
  // differently from the tenant-home entry instead of repeating the
37
40
  // same words under both "Platform" and "Organization".
38
- "tenant-settings.settings.system": { en: "Tenant Settings (Platform Default)" },
41
+ "tenant-settings.settings.system": { en: "Tenant defaults" },
39
42
  },
40
43
  });
41
44
  });
@@ -9,6 +9,7 @@ export declare const tierAssignmentEntity: import("@cosmicdrift/kumiko-types/fie
9
9
  readonly filterable?: boolean;
10
10
  readonly encrypted?: boolean;
11
11
  readonly sensitive?: boolean;
12
+ readonly writeOnly?: boolean;
12
13
  readonly readAsInstruction?: boolean;
13
14
  readonly format?: "email" | "url" | "phone" | "password";
14
15
  readonly default?: string;
@@ -29,6 +30,7 @@ export declare const tierAssignmentEntity: import("@cosmicdrift/kumiko-types/fie
29
30
  readonly filterable?: boolean;
30
31
  readonly encrypted?: boolean;
31
32
  readonly sensitive?: boolean;
33
+ readonly writeOnly?: boolean;
32
34
  readonly readAsInstruction?: boolean;
33
35
  readonly format?: "email" | "url" | "phone" | "password";
34
36
  readonly default?: string;
@@ -17,6 +17,7 @@ export declare function createTierResolver<TTier extends string, TCaps>(deps: Ti
17
17
  readonly filterable?: boolean;
18
18
  readonly encrypted?: boolean;
19
19
  readonly sensitive?: boolean;
20
+ readonly writeOnly?: boolean;
20
21
  readonly readAsInstruction?: boolean;
21
22
  readonly format?: "email" | "url" | "phone" | "password";
22
23
  readonly default?: string;
@@ -37,6 +38,7 @@ export declare function createTierResolver<TTier extends string, TCaps>(deps: Ti
37
38
  readonly filterable?: boolean;
38
39
  readonly encrypted?: boolean;
39
40
  readonly sensitive?: boolean;
41
+ readonly writeOnly?: boolean;
40
42
  readonly readAsInstruction?: boolean;
41
43
  readonly format?: "email" | "url" | "phone" | "password";
42
44
  readonly default?: string;
@@ -38,6 +38,7 @@ export declare const userEntity: import("@cosmicdrift/kumiko-types/fields").Enti
38
38
  readonly filterable?: boolean;
39
39
  readonly encrypted?: boolean;
40
40
  readonly sensitive?: boolean;
41
+ readonly writeOnly?: boolean;
41
42
  readonly readAsInstruction?: boolean;
42
43
  readonly format?: "email" | "url" | "phone" | "password";
43
44
  readonly default?: string;
@@ -58,6 +59,7 @@ export declare const userEntity: import("@cosmicdrift/kumiko-types/fields").Enti
58
59
  readonly filterable?: boolean;
59
60
  readonly encrypted?: boolean;
60
61
  readonly sensitive?: boolean;
62
+ readonly writeOnly?: boolean;
61
63
  readonly readAsInstruction?: boolean;
62
64
  readonly format?: "email" | "url" | "phone" | "password";
63
65
  readonly default?: string;
@@ -78,6 +80,7 @@ export declare const userEntity: import("@cosmicdrift/kumiko-types/fields").Enti
78
80
  readonly filterable?: boolean;
79
81
  readonly encrypted?: boolean;
80
82
  readonly sensitive?: boolean;
83
+ readonly writeOnly?: boolean;
81
84
  readonly readAsInstruction?: boolean;
82
85
  readonly format?: "email" | "url" | "phone" | "password";
83
86
  readonly default?: string;
@@ -98,6 +101,7 @@ export declare const userEntity: import("@cosmicdrift/kumiko-types/fields").Enti
98
101
  readonly filterable?: boolean;
99
102
  readonly encrypted?: boolean;
100
103
  readonly sensitive?: boolean;
104
+ readonly writeOnly?: boolean;
101
105
  readonly readAsInstruction?: boolean;
102
106
  readonly format?: "email" | "url" | "phone" | "password";
103
107
  readonly default?: string;
@@ -127,6 +131,7 @@ export declare const userEntity: import("@cosmicdrift/kumiko-types/fields").Enti
127
131
  readonly filterable?: boolean;
128
132
  readonly encrypted?: boolean;
129
133
  readonly sensitive?: boolean;
134
+ readonly writeOnly?: boolean;
130
135
  readonly readAsInstruction?: boolean;
131
136
  readonly format?: "email" | "url" | "phone" | "password";
132
137
  readonly default?: string;
@@ -159,7 +164,7 @@ export declare const userEntity: import("@cosmicdrift/kumiko-types/fields").Enti
159
164
  readonly restricted?: import("@cosmicdrift/kumiko-types/fields").SelectOptionTone | undefined;
160
165
  } | undefined;
161
166
  readonly optionsQuery?: string;
162
- readonly optionsQueryPayload?: Readonly<Record<string, string | number | boolean>>;
167
+ readonly optionsQueryPayload?: import("@cosmicdrift/kumiko-types/fields").OptionsQueryPayload;
163
168
  } & import("@cosmicdrift/kumiko-types/fields").ResolvedPiiFlags & {
164
169
  required: true;
165
170
  };
@@ -188,6 +193,7 @@ export declare const userEntity: import("@cosmicdrift/kumiko-types/fields").Enti
188
193
  readonly filterable?: boolean;
189
194
  readonly encrypted?: boolean;
190
195
  readonly sensitive?: boolean;
196
+ readonly writeOnly?: boolean;
191
197
  readonly readAsInstruction?: boolean;
192
198
  readonly format?: "email" | "url" | "phone" | "password";
193
199
  readonly default?: string;
@@ -210,6 +216,7 @@ export declare const userTable: import("@cosmicdrift/kumiko-framework/db").Entit
210
216
  readonly filterable?: boolean;
211
217
  readonly encrypted?: boolean;
212
218
  readonly sensitive?: boolean;
219
+ readonly writeOnly?: boolean;
213
220
  readonly readAsInstruction?: boolean;
214
221
  readonly format?: "email" | "url" | "phone" | "password";
215
222
  readonly default?: string;
@@ -230,6 +237,7 @@ export declare const userTable: import("@cosmicdrift/kumiko-framework/db").Entit
230
237
  readonly filterable?: boolean;
231
238
  readonly encrypted?: boolean;
232
239
  readonly sensitive?: boolean;
240
+ readonly writeOnly?: boolean;
233
241
  readonly readAsInstruction?: boolean;
234
242
  readonly format?: "email" | "url" | "phone" | "password";
235
243
  readonly default?: string;
@@ -250,6 +258,7 @@ export declare const userTable: import("@cosmicdrift/kumiko-framework/db").Entit
250
258
  readonly filterable?: boolean;
251
259
  readonly encrypted?: boolean;
252
260
  readonly sensitive?: boolean;
261
+ readonly writeOnly?: boolean;
253
262
  readonly readAsInstruction?: boolean;
254
263
  readonly format?: "email" | "url" | "phone" | "password";
255
264
  readonly default?: string;
@@ -270,6 +279,7 @@ export declare const userTable: import("@cosmicdrift/kumiko-framework/db").Entit
270
279
  readonly filterable?: boolean;
271
280
  readonly encrypted?: boolean;
272
281
  readonly sensitive?: boolean;
282
+ readonly writeOnly?: boolean;
273
283
  readonly readAsInstruction?: boolean;
274
284
  readonly format?: "email" | "url" | "phone" | "password";
275
285
  readonly default?: string;
@@ -299,6 +309,7 @@ export declare const userTable: import("@cosmicdrift/kumiko-framework/db").Entit
299
309
  readonly filterable?: boolean;
300
310
  readonly encrypted?: boolean;
301
311
  readonly sensitive?: boolean;
312
+ readonly writeOnly?: boolean;
302
313
  readonly readAsInstruction?: boolean;
303
314
  readonly format?: "email" | "url" | "phone" | "password";
304
315
  readonly default?: string;
@@ -331,7 +342,7 @@ export declare const userTable: import("@cosmicdrift/kumiko-framework/db").Entit
331
342
  readonly restricted?: import("@cosmicdrift/kumiko-types/fields").SelectOptionTone | undefined;
332
343
  } | undefined;
333
344
  readonly optionsQuery?: string;
334
- readonly optionsQueryPayload?: Readonly<Record<string, string | number | boolean>>;
345
+ readonly optionsQueryPayload?: import("@cosmicdrift/kumiko-types/fields").OptionsQueryPayload;
335
346
  } & import("@cosmicdrift/kumiko-types/fields").ResolvedPiiFlags & {
336
347
  required: true;
337
348
  };
@@ -360,6 +371,7 @@ export declare const userTable: import("@cosmicdrift/kumiko-framework/db").Entit
360
371
  readonly filterable?: boolean;
361
372
  readonly encrypted?: boolean;
362
373
  readonly sensitive?: boolean;
374
+ readonly writeOnly?: boolean;
363
375
  readonly readAsInstruction?: boolean;
364
376
  readonly format?: "email" | "url" | "phone" | "password";
365
377
  readonly default?: string;
@@ -22,7 +22,7 @@
22
22
  import { selectMany } from "@cosmicdrift/kumiko-framework/bun-db";
23
23
  import { configuredPiiSubjectKms, decryptPiiFieldValues, isPiiCiphertext, } from "@cosmicdrift/kumiko-framework/crypto";
24
24
  import { collectEncryptedFieldNames, configuredEntityFieldEncryption, createTenantDb, decryptEntityFieldValues, } from "@cosmicdrift/kumiko-framework/db";
25
- import { EXT_USER_DATA, extensionUsageEscapeHatchReason, } from "@cosmicdrift/kumiko-framework/engine";
25
+ import { EXT_USER_DATA, extensionUsageEscapeHatchReason, maskWriteOnlyFields, } from "@cosmicdrift/kumiko-framework/engine";
26
26
  import { createEscapeHatchReporter } from "@cosmicdrift/kumiko-framework/pipeline";
27
27
  import { tenantMembershipsTable } from "../tenant/index.js";
28
28
  import { buildFileRefZipPath } from "./zip-path.js";
@@ -214,7 +214,11 @@ async function decryptSnippetFields(registry, hookEntityName, snippet) {
214
214
  const entity = registry.getEntity(snippet.entity) ?? registry.getEntity(hookEntityName);
215
215
  const encryptedFields = entity ? collectEncryptedFieldNames(entity) : new Set();
216
216
  const kms = configuredPiiSubjectKms();
217
- const rows = await decryptRecords(snippet.rows, encryptedFields, kms);
217
+ const decryptedRows = await decryptRecords(snippet.rows, encryptedFields, kms);
218
+ // Decrypting would otherwise hand writeOnly secrets out as plaintext.
219
+ const rows = entity
220
+ ? decryptedRows.map((row) => maskWriteOnlyFields(entity, row))
221
+ : decryptedRows;
218
222
  if (!snippet.fileRefs || snippet.fileRefs.length === 0) {
219
223
  return { ...snippet, rows };
220
224
  }
@@ -9,6 +9,7 @@ export declare const downloadAttemptEntity: import("@cosmicdrift/kumiko-types/fi
9
9
  readonly filterable?: boolean;
10
10
  readonly encrypted?: boolean;
11
11
  readonly sensitive?: boolean;
12
+ readonly writeOnly?: boolean;
12
13
  readonly readAsInstruction?: boolean;
13
14
  readonly format?: "email" | "url" | "phone" | "password";
14
15
  readonly default?: string;
@@ -29,6 +30,7 @@ export declare const downloadAttemptEntity: import("@cosmicdrift/kumiko-types/fi
29
30
  readonly filterable?: boolean;
30
31
  readonly encrypted?: boolean;
31
32
  readonly sensitive?: boolean;
33
+ readonly writeOnly?: boolean;
32
34
  readonly readAsInstruction?: boolean;
33
35
  readonly format?: "email" | "url" | "phone" | "password";
34
36
  readonly default?: string;
@@ -49,6 +51,7 @@ export declare const downloadAttemptEntity: import("@cosmicdrift/kumiko-types/fi
49
51
  readonly filterable?: boolean;
50
52
  readonly encrypted?: boolean;
51
53
  readonly sensitive?: boolean;
54
+ readonly writeOnly?: boolean;
52
55
  readonly readAsInstruction?: boolean;
53
56
  readonly format?: "email" | "url" | "phone" | "password";
54
57
  readonly default?: string;
@@ -69,6 +72,7 @@ export declare const downloadAttemptEntity: import("@cosmicdrift/kumiko-types/fi
69
72
  readonly filterable?: boolean;
70
73
  readonly encrypted?: boolean;
71
74
  readonly sensitive?: boolean;
75
+ readonly writeOnly?: boolean;
72
76
  readonly readAsInstruction?: boolean;
73
77
  readonly format?: "email" | "url" | "phone" | "password";
74
78
  readonly default?: string;
@@ -89,6 +93,7 @@ export declare const downloadAttemptEntity: import("@cosmicdrift/kumiko-types/fi
89
93
  readonly filterable?: boolean;
90
94
  readonly encrypted?: boolean;
91
95
  readonly sensitive?: boolean;
96
+ readonly writeOnly?: boolean;
92
97
  readonly readAsInstruction?: boolean;
93
98
  readonly format?: "email" | "url" | "phone" | "password";
94
99
  readonly default?: string;
@@ -109,6 +114,7 @@ export declare const downloadAttemptEntity: import("@cosmicdrift/kumiko-types/fi
109
114
  readonly filterable?: boolean;
110
115
  readonly encrypted?: boolean;
111
116
  readonly sensitive?: boolean;
117
+ readonly writeOnly?: boolean;
112
118
  readonly readAsInstruction?: boolean;
113
119
  readonly format?: "email" | "url" | "phone" | "password";
114
120
  readonly default?: string;
@@ -129,6 +135,7 @@ export declare const downloadAttemptEntity: import("@cosmicdrift/kumiko-types/fi
129
135
  readonly filterable?: boolean;
130
136
  readonly encrypted?: boolean;
131
137
  readonly sensitive?: boolean;
138
+ readonly writeOnly?: boolean;
132
139
  readonly readAsInstruction?: boolean;
133
140
  readonly format?: "email" | "url" | "phone" | "password";
134
141
  readonly default?: string;
@@ -166,6 +173,7 @@ export declare const downloadAttemptsTable: import("@cosmicdrift/kumiko-framewor
166
173
  readonly filterable?: boolean;
167
174
  readonly encrypted?: boolean;
168
175
  readonly sensitive?: boolean;
176
+ readonly writeOnly?: boolean;
169
177
  readonly readAsInstruction?: boolean;
170
178
  readonly format?: "email" | "url" | "phone" | "password";
171
179
  readonly default?: string;
@@ -186,6 +194,7 @@ export declare const downloadAttemptsTable: import("@cosmicdrift/kumiko-framewor
186
194
  readonly filterable?: boolean;
187
195
  readonly encrypted?: boolean;
188
196
  readonly sensitive?: boolean;
197
+ readonly writeOnly?: boolean;
189
198
  readonly readAsInstruction?: boolean;
190
199
  readonly format?: "email" | "url" | "phone" | "password";
191
200
  readonly default?: string;
@@ -206,6 +215,7 @@ export declare const downloadAttemptsTable: import("@cosmicdrift/kumiko-framewor
206
215
  readonly filterable?: boolean;
207
216
  readonly encrypted?: boolean;
208
217
  readonly sensitive?: boolean;
218
+ readonly writeOnly?: boolean;
209
219
  readonly readAsInstruction?: boolean;
210
220
  readonly format?: "email" | "url" | "phone" | "password";
211
221
  readonly default?: string;
@@ -226,6 +236,7 @@ export declare const downloadAttemptsTable: import("@cosmicdrift/kumiko-framewor
226
236
  readonly filterable?: boolean;
227
237
  readonly encrypted?: boolean;
228
238
  readonly sensitive?: boolean;
239
+ readonly writeOnly?: boolean;
229
240
  readonly readAsInstruction?: boolean;
230
241
  readonly format?: "email" | "url" | "phone" | "password";
231
242
  readonly default?: string;
@@ -246,6 +257,7 @@ export declare const downloadAttemptsTable: import("@cosmicdrift/kumiko-framewor
246
257
  readonly filterable?: boolean;
247
258
  readonly encrypted?: boolean;
248
259
  readonly sensitive?: boolean;
260
+ readonly writeOnly?: boolean;
249
261
  readonly readAsInstruction?: boolean;
250
262
  readonly format?: "email" | "url" | "phone" | "password";
251
263
  readonly default?: string;
@@ -266,6 +278,7 @@ export declare const downloadAttemptsTable: import("@cosmicdrift/kumiko-framewor
266
278
  readonly filterable?: boolean;
267
279
  readonly encrypted?: boolean;
268
280
  readonly sensitive?: boolean;
281
+ readonly writeOnly?: boolean;
269
282
  readonly readAsInstruction?: boolean;
270
283
  readonly format?: "email" | "url" | "phone" | "password";
271
284
  readonly default?: string;
@@ -286,6 +299,7 @@ export declare const downloadAttemptsTable: import("@cosmicdrift/kumiko-framewor
286
299
  readonly filterable?: boolean;
287
300
  readonly encrypted?: boolean;
288
301
  readonly sensitive?: boolean;
302
+ readonly writeOnly?: boolean;
289
303
  readonly readAsInstruction?: boolean;
290
304
  readonly format?: "email" | "url" | "phone" | "password";
291
305
  readonly default?: string;
@@ -9,6 +9,7 @@ export declare const exportDownloadTokenEntity: import("@cosmicdrift/kumiko-type
9
9
  readonly filterable?: boolean;
10
10
  readonly encrypted?: boolean;
11
11
  readonly sensitive?: boolean;
12
+ readonly writeOnly?: boolean;
12
13
  readonly readAsInstruction?: boolean;
13
14
  readonly format?: "email" | "url" | "phone" | "password";
14
15
  readonly default?: string;
@@ -29,6 +30,7 @@ export declare const exportDownloadTokenEntity: import("@cosmicdrift/kumiko-type
29
30
  readonly filterable?: boolean;
30
31
  readonly encrypted?: boolean;
31
32
  readonly sensitive?: boolean;
33
+ readonly writeOnly?: boolean;
32
34
  readonly readAsInstruction?: boolean;
33
35
  readonly format?: "email" | "url" | "phone" | "password";
34
36
  readonly default?: string;
@@ -106,6 +108,7 @@ export declare const exportDownloadTokenEntity: import("@cosmicdrift/kumiko-type
106
108
  readonly filterable?: boolean;
107
109
  readonly encrypted?: boolean;
108
110
  readonly sensitive?: boolean;
111
+ readonly writeOnly?: boolean;
109
112
  readonly readAsInstruction?: boolean;
110
113
  readonly format?: "email" | "url" | "phone" | "password";
111
114
  readonly default?: string;
@@ -126,6 +129,7 @@ export declare const exportDownloadTokenEntity: import("@cosmicdrift/kumiko-type
126
129
  readonly filterable?: boolean;
127
130
  readonly encrypted?: boolean;
128
131
  readonly sensitive?: boolean;
132
+ readonly writeOnly?: boolean;
129
133
  readonly readAsInstruction?: boolean;
130
134
  readonly format?: "email" | "url" | "phone" | "password";
131
135
  readonly default?: string;
@@ -148,6 +152,7 @@ export declare const exportDownloadTokensTable: import("@cosmicdrift/kumiko-fram
148
152
  readonly filterable?: boolean;
149
153
  readonly encrypted?: boolean;
150
154
  readonly sensitive?: boolean;
155
+ readonly writeOnly?: boolean;
151
156
  readonly readAsInstruction?: boolean;
152
157
  readonly format?: "email" | "url" | "phone" | "password";
153
158
  readonly default?: string;
@@ -168,6 +173,7 @@ export declare const exportDownloadTokensTable: import("@cosmicdrift/kumiko-fram
168
173
  readonly filterable?: boolean;
169
174
  readonly encrypted?: boolean;
170
175
  readonly sensitive?: boolean;
176
+ readonly writeOnly?: boolean;
171
177
  readonly readAsInstruction?: boolean;
172
178
  readonly format?: "email" | "url" | "phone" | "password";
173
179
  readonly default?: string;
@@ -245,6 +251,7 @@ export declare const exportDownloadTokensTable: import("@cosmicdrift/kumiko-fram
245
251
  readonly filterable?: boolean;
246
252
  readonly encrypted?: boolean;
247
253
  readonly sensitive?: boolean;
254
+ readonly writeOnly?: boolean;
248
255
  readonly readAsInstruction?: boolean;
249
256
  readonly format?: "email" | "url" | "phone" | "password";
250
257
  readonly default?: string;
@@ -265,6 +272,7 @@ export declare const exportDownloadTokensTable: import("@cosmicdrift/kumiko-fram
265
272
  readonly filterable?: boolean;
266
273
  readonly encrypted?: boolean;
267
274
  readonly sensitive?: boolean;
275
+ readonly writeOnly?: boolean;
268
276
  readonly readAsInstruction?: boolean;
269
277
  readonly format?: "email" | "url" | "phone" | "password";
270
278
  readonly default?: string;
@@ -23,6 +23,7 @@ export declare const exportJobEntity: import("@cosmicdrift/kumiko-types/fields")
23
23
  readonly filterable?: boolean;
24
24
  readonly encrypted?: boolean;
25
25
  readonly sensitive?: boolean;
26
+ readonly writeOnly?: boolean;
26
27
  readonly readAsInstruction?: boolean;
27
28
  readonly format?: "email" | "url" | "phone" | "password";
28
29
  readonly default?: string;
@@ -43,6 +44,7 @@ export declare const exportJobEntity: import("@cosmicdrift/kumiko-types/fields")
43
44
  readonly filterable?: boolean;
44
45
  readonly encrypted?: boolean;
45
46
  readonly sensitive?: boolean;
47
+ readonly writeOnly?: boolean;
46
48
  readonly readAsInstruction?: boolean;
47
49
  readonly format?: "email" | "url" | "phone" | "password";
48
50
  readonly default?: string;
@@ -71,7 +73,7 @@ export declare const exportJobEntity: import("@cosmicdrift/kumiko-types/fields")
71
73
  readonly running?: import("@cosmicdrift/kumiko-types/fields").SelectOptionTone | undefined;
72
74
  } | undefined;
73
75
  readonly optionsQuery?: string;
74
- readonly optionsQueryPayload?: Readonly<Record<string, string | number | boolean>>;
76
+ readonly optionsQueryPayload?: import("@cosmicdrift/kumiko-types/fields").OptionsQueryPayload;
75
77
  } & import("@cosmicdrift/kumiko-types/fields").ResolvedPiiFlags & {
76
78
  required: true;
77
79
  };
@@ -130,6 +132,7 @@ export declare const exportJobEntity: import("@cosmicdrift/kumiko-types/fields")
130
132
  readonly filterable?: boolean;
131
133
  readonly encrypted?: boolean;
132
134
  readonly sensitive?: boolean;
135
+ readonly writeOnly?: boolean;
133
136
  readonly readAsInstruction?: boolean;
134
137
  readonly format?: "email" | "url" | "phone" | "password";
135
138
  readonly default?: string;
@@ -195,6 +198,7 @@ export declare const exportJobsTable: import("@cosmicdrift/kumiko-framework/db")
195
198
  readonly filterable?: boolean;
196
199
  readonly encrypted?: boolean;
197
200
  readonly sensitive?: boolean;
201
+ readonly writeOnly?: boolean;
198
202
  readonly readAsInstruction?: boolean;
199
203
  readonly format?: "email" | "url" | "phone" | "password";
200
204
  readonly default?: string;
@@ -215,6 +219,7 @@ export declare const exportJobsTable: import("@cosmicdrift/kumiko-framework/db")
215
219
  readonly filterable?: boolean;
216
220
  readonly encrypted?: boolean;
217
221
  readonly sensitive?: boolean;
222
+ readonly writeOnly?: boolean;
218
223
  readonly readAsInstruction?: boolean;
219
224
  readonly format?: "email" | "url" | "phone" | "password";
220
225
  readonly default?: string;
@@ -243,7 +248,7 @@ export declare const exportJobsTable: import("@cosmicdrift/kumiko-framework/db")
243
248
  readonly running?: import("@cosmicdrift/kumiko-types/fields").SelectOptionTone | undefined;
244
249
  } | undefined;
245
250
  readonly optionsQuery?: string;
246
- readonly optionsQueryPayload?: Readonly<Record<string, string | number | boolean>>;
251
+ readonly optionsQueryPayload?: import("@cosmicdrift/kumiko-types/fields").OptionsQueryPayload;
247
252
  } & import("@cosmicdrift/kumiko-types/fields").ResolvedPiiFlags & {
248
253
  required: true;
249
254
  };
@@ -302,6 +307,7 @@ export declare const exportJobsTable: import("@cosmicdrift/kumiko-framework/db")
302
307
  readonly filterable?: boolean;
303
308
  readonly encrypted?: boolean;
304
309
  readonly sensitive?: boolean;
310
+ readonly writeOnly?: boolean;
305
311
  readonly readAsInstruction?: boolean;
306
312
  readonly format?: "email" | "url" | "phone" | "password";
307
313
  readonly default?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cosmicdrift/kumiko-bundled-features",
3
- "version": "0.333.0",
3
+ "version": "0.334.0",
4
4
  "description": "Built-in features — tenant, user, auth, delivery. The stuff you'd rewrite anyway, already typed.",
5
5
  "license": "BUSL-1.1",
6
6
  "author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
@@ -483,12 +483,12 @@
483
483
  }
484
484
  },
485
485
  "dependencies": {
486
- "@cosmicdrift/kumiko-dispatcher-live": "0.333.0",
487
- "@cosmicdrift/kumiko-framework": "0.333.0",
488
- "@cosmicdrift/kumiko-headless": "0.333.0",
489
- "@cosmicdrift/kumiko-renderer": "0.333.0",
490
- "@cosmicdrift/kumiko-renderer-web": "0.333.0",
491
- "@cosmicdrift/kumiko-types": "0.333.0",
486
+ "@cosmicdrift/kumiko-dispatcher-live": "0.334.0",
487
+ "@cosmicdrift/kumiko-framework": "0.334.0",
488
+ "@cosmicdrift/kumiko-headless": "0.334.0",
489
+ "@cosmicdrift/kumiko-renderer": "0.334.0",
490
+ "@cosmicdrift/kumiko-renderer-web": "0.334.0",
491
+ "@cosmicdrift/kumiko-types": "0.334.0",
492
492
  "@mollie/api-client": "^4.5.0",
493
493
  "@node-rs/argon2": "^2.0.2",
494
494
  "@types/mailparser": "^3.4.6",
@@ -983,8 +983,8 @@
983
983
  ],
984
984
  "devDependencies": {
985
985
  "@testing-library/user-event": "^14.6.1",
986
- "@cosmicdrift/kumiko-locale-de": "0.333.0",
987
- "@cosmicdrift/kumiko-locale-es": "0.333.0",
986
+ "@cosmicdrift/kumiko-locale-de": "0.334.0",
987
+ "@cosmicdrift/kumiko-locale-es": "0.334.0",
988
988
  "jsqr": "^1.4.0"
989
989
  }
990
990
  }