convex-verify 1.0.5 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +271 -235
  2. package/dist/core/index.d.mts +14 -85
  3. package/dist/core/index.d.ts +14 -85
  4. package/dist/core/index.js +520 -83
  5. package/dist/core/index.js.map +1 -1
  6. package/dist/core/index.mjs +516 -80
  7. package/dist/core/index.mjs.map +1 -1
  8. package/dist/index.d.mts +9 -6
  9. package/dist/index.d.ts +9 -6
  10. package/dist/index.js +386 -233
  11. package/dist/index.js.map +1 -1
  12. package/dist/index.mjs +383 -226
  13. package/dist/index.mjs.map +1 -1
  14. package/dist/types-B8ZkLuJ2.d.mts +141 -0
  15. package/dist/types-B8ZkLuJ2.d.ts +141 -0
  16. package/dist/utils/index.d.mts +3 -2
  17. package/dist/utils/index.d.ts +3 -2
  18. package/dist/utils/index.js +1 -1
  19. package/dist/utils/index.js.map +1 -1
  20. package/dist/utils/index.mjs +1 -1
  21. package/dist/utils/index.mjs.map +1 -1
  22. package/dist/verifyConfig-CTrtqMr_.d.ts +94 -0
  23. package/dist/verifyConfig-Kn3Ikj00.d.mts +94 -0
  24. package/package.json +5 -22
  25. package/dist/configs/index.d.mts +0 -51
  26. package/dist/configs/index.d.ts +0 -51
  27. package/dist/configs/index.js +0 -38
  28. package/dist/configs/index.js.map +0 -1
  29. package/dist/configs/index.mjs +0 -11
  30. package/dist/configs/index.mjs.map +0 -1
  31. package/dist/plugin-BjJ7yjrc.d.ts +0 -141
  32. package/dist/plugin-mHMV2-SG.d.mts +0 -141
  33. package/dist/plugins/index.d.mts +0 -85
  34. package/dist/plugins/index.d.ts +0 -85
  35. package/dist/plugins/index.js +0 -312
  36. package/dist/plugins/index.js.map +0 -1
  37. package/dist/plugins/index.mjs +0 -284
  38. package/dist/plugins/index.mjs.map +0 -1
  39. package/dist/transforms/index.d.mts +0 -38
  40. package/dist/transforms/index.d.ts +0 -38
  41. package/dist/transforms/index.js +0 -46
  42. package/dist/transforms/index.js.map +0 -1
  43. package/dist/transforms/index.mjs +0 -19
  44. package/dist/transforms/index.mjs.map +0 -1
  45. package/dist/types-_64SXyva.d.mts +0 -151
  46. package/dist/types-_64SXyva.d.ts +0 -151
@@ -1,88 +1,17 @@
1
- import { GenericSchema, DataModelFromSchemaDefinition, SchemaDefinition, TableNamesInDataModel, DocumentByName, GenericMutationCtx, WithoutSystemFields } from 'convex/server';
2
- import { GenericId } from 'convex/values';
3
- import { a as ValidatePlugin } from '../plugin-mHMV2-SG.mjs';
4
- export { V as ValidateContext, b as ValidatePluginRecord, c as createValidatePlugin, i as isValidatePlugin, r as runValidatePlugins } from '../plugin-mHMV2-SG.mjs';
5
- import { V as VerifyConfigInput, H as HasKey, M as MakeOptional, b as OptionalKeysForTable, a as OnFailCallback, d as ProtectedKeysForTable } from '../types-_64SXyva.mjs';
6
- export { B as BaseConfigReturn, k as DMGeneric, D as DefaultValuesConfigData, l as DefaultValuesInput, E as ExtractDefaultValuesConfig, c as ExtractProtectedColumnsConfig, I as IndexConfigBaseOptions, j as IndexConfigEntry, N as NormalizedIndexConfig, O as OnFailArgs, P as Prettify, m as ProtectedColumnsInput, g as UniqueColumnConfigData, h as UniqueColumnConfigEntry, i as UniqueColumnConfigOptions, U as UniqueRowConfigData, e as UniqueRowConfigEntry, f as UniqueRowConfigOptions, n as normalizeIndexConfigEntry } from '../types-_64SXyva.mjs';
1
+ import { c as createExtension$1, i as isExtension$1, r as runExtensions$1 } from '../verifyConfig-Kn3Ikj00.mjs';
2
+ export { d as Extension, E as ExtensionContext, a as ExtensionInput, b as ExtensionInputForSchema, e as ExtensionRecord, S as SchemaExtension, v as verifyConfig } from '../verifyConfig-Kn3Ikj00.mjs';
3
+ export { v as BaseConfigReturn, B as BuiltinConfigKey, C as ConfigRegistry, w as DMGeneric, D as DataModelForSchema, c as DefaultValuesConfigData, d as DefaultValuesConfigInput, k as DefaultValuesVerifyFn, m as ExtensionStyleVerifyFn, E as ExtractDefaultValuesConfig, g as ExtractProtectedColumnsConfig, H as HasKey, I as IndexConfigBaseOptions, u as IndexConfigEntry, M as MakeOptional, a as MutationCtxForSchema, N as NormalizedIndexConfig, O as OnFailArgs, b as OnFailCallback, f as OptionalKeysForTable, P as Prettify, e as ProtectedColumnsConfigData, l as ProtectedColumnsVerifyFn, h as ProtectedKeysForTable, q as UniqueColumnConfigData, r as UniqueColumnConfigEntry, s as UniqueColumnConfigOptions, U as UniqueRowConfigData, o as UniqueRowConfigEntry, p as UniqueRowConfigOptions, V as VerifyConfigInput, i as VerifyInsertInput, j as VerifyPatchInput, n as VerifyRegistry, t as normalizeIndexConfigEntry } from '../types-B8ZkLuJ2.mjs';
4
+ import 'convex/server';
5
+ import 'convex/values';
7
6
 
8
- /**
9
- * Extended config input that includes optional validate plugins
10
- */
11
- type VerifyConfigInputWithPlugins = VerifyConfigInput & {
12
- /**
13
- * Unique row validation config.
14
- * Enforces uniqueness across multiple columns using composite indexes.
15
- *
16
- * Can also be added to the `plugins` array.
17
- */
18
- uniqueRow?: ValidatePlugin<"uniqueRow", any>;
19
- /**
20
- * Unique column validation config.
21
- * Enforces uniqueness on single columns using indexes.
22
- *
23
- * Can also be added to the `plugins` array.
24
- */
25
- uniqueColumn?: ValidatePlugin<"uniqueColumn", any>;
26
- /**
27
- * Additional validate plugins to run after transforms.
28
- * These plugins can validate data but don't affect input types.
29
- *
30
- * Built-in plugins (uniqueRow, uniqueColumn) can be added here
31
- * as an alternative to using their dedicated config keys.
32
- */
33
- plugins?: ValidatePlugin[];
34
- };
35
- /**
36
- * Configure type-safe insert and patch functions with validation and transforms.
37
- *
38
- * @param schema - Your Convex schema definition
39
- * @param configs - Configuration object with transforms, configs, and plugins
40
- * @returns Object with `insert`, `patch`, and `dangerouslyPatch` functions
41
- *
42
- * @example
43
- * ```ts
44
- * import {
45
- * verifyConfig,
46
- * defaultValuesConfig,
47
- * protectedColumnsConfig,
48
- * uniqueRowConfig,
49
- * uniqueColumnConfig,
50
- * } from 'convex-verify';
51
- * import schema from './schema';
52
- *
53
- * export const { insert, patch, dangerouslyPatch } = verifyConfig(schema, {
54
- * // Type-affecting configs
55
- * defaultValues: defaultValuesConfig(schema, () => ({
56
- * posts: { status: 'draft', views: 0 },
57
- * })),
58
- * protectedColumns: protectedColumnsConfig(schema, {
59
- * posts: ['authorId'],
60
- * }),
61
- *
62
- * // Built-in validation configs
63
- * uniqueRow: uniqueRowConfig(schema, {
64
- * posts: ['by_author_slug'],
65
- * }),
66
- * uniqueColumn: uniqueColumnConfig(schema, {
67
- * users: ['by_email', 'by_username'],
68
- * }),
69
- *
70
- * // Custom/third-party plugins
71
- * plugins: [myCustomPlugin()],
72
- * });
73
- * ```
74
- */
75
- declare const verifyConfig: <S extends GenericSchema, DataModel extends DataModelFromSchemaDefinition<SchemaDefinition<S, boolean>>, const VC extends VerifyConfigInputWithPlugins>(_schema: SchemaDefinition<S, boolean>, configs: VC) => {
76
- insert: <const TN extends TableNamesInDataModel<DataModel>, const D extends DocumentByName<DataModel, TN>>(ctx: Omit<GenericMutationCtx<DataModel>, never>, tableName: TN, data: HasKey<VC, "defaultValues"> extends true ? MakeOptional<WithoutSystemFields<D>, OptionalKeysForTable<VC, TN> & keyof WithoutSystemFields<D>> : WithoutSystemFields<D>, options?: {
77
- onFail?: OnFailCallback<D>;
78
- }) => Promise<GenericId<TN>>;
79
- patch: <const TN extends TableNamesInDataModel<DataModel>, const D_1 extends DocumentByName<DataModel, TN>>(ctx: Omit<GenericMutationCtx<DataModel>, never>, tableName: TN, id: GenericId<TN>, data: HasKey<VC, "protectedColumns"> extends true ? Omit<Partial<WithoutSystemFields<D_1>>, ProtectedKeysForTable<VC, TN> & keyof WithoutSystemFields<D_1>> : Partial<WithoutSystemFields<D_1>>, options?: {
80
- onFail?: OnFailCallback<D_1>;
81
- }) => Promise<void>;
82
- dangerouslyPatch: <const TN extends TableNamesInDataModel<DataModel>, const D_2 extends DocumentByName<DataModel, TN>>(ctx: Omit<GenericMutationCtx<DataModel>, never>, tableName: TN, id: GenericId<TN>, data: Partial<WithoutSystemFields<D_2>>, options?: {
83
- onFail?: OnFailCallback<D_2>;
84
- }) => Promise<void>;
85
- configs: VC;
7
+ type ProtectedColumnsLike = Record<string, readonly PropertyKey[] | undefined>;
8
+ declare const stripProtectedPatchColumns: <T extends Record<string, any>>(protectedColumns: ProtectedColumnsLike, tableName: string, data: T) => {
9
+ filteredData: T;
10
+ removedColumns: string[];
86
11
  };
87
12
 
88
- export { HasKey, MakeOptional, OnFailCallback, OptionalKeysForTable, ProtectedKeysForTable, ValidatePlugin, VerifyConfigInput, verifyConfig };
13
+ declare const createExtension: typeof createExtension$1;
14
+ declare const isExtension: typeof isExtension$1;
15
+ declare const runExtensions: typeof runExtensions$1;
16
+
17
+ export { createExtension, isExtension, runExtensions, stripProtectedPatchColumns };
@@ -1,88 +1,17 @@
1
- import { GenericSchema, DataModelFromSchemaDefinition, SchemaDefinition, TableNamesInDataModel, DocumentByName, GenericMutationCtx, WithoutSystemFields } from 'convex/server';
2
- import { GenericId } from 'convex/values';
3
- import { a as ValidatePlugin } from '../plugin-BjJ7yjrc.js';
4
- export { V as ValidateContext, b as ValidatePluginRecord, c as createValidatePlugin, i as isValidatePlugin, r as runValidatePlugins } from '../plugin-BjJ7yjrc.js';
5
- import { V as VerifyConfigInput, H as HasKey, M as MakeOptional, b as OptionalKeysForTable, a as OnFailCallback, d as ProtectedKeysForTable } from '../types-_64SXyva.js';
6
- export { B as BaseConfigReturn, k as DMGeneric, D as DefaultValuesConfigData, l as DefaultValuesInput, E as ExtractDefaultValuesConfig, c as ExtractProtectedColumnsConfig, I as IndexConfigBaseOptions, j as IndexConfigEntry, N as NormalizedIndexConfig, O as OnFailArgs, P as Prettify, m as ProtectedColumnsInput, g as UniqueColumnConfigData, h as UniqueColumnConfigEntry, i as UniqueColumnConfigOptions, U as UniqueRowConfigData, e as UniqueRowConfigEntry, f as UniqueRowConfigOptions, n as normalizeIndexConfigEntry } from '../types-_64SXyva.js';
1
+ import { c as createExtension$1, i as isExtension$1, r as runExtensions$1 } from '../verifyConfig-CTrtqMr_.js';
2
+ export { d as Extension, E as ExtensionContext, a as ExtensionInput, b as ExtensionInputForSchema, e as ExtensionRecord, S as SchemaExtension, v as verifyConfig } from '../verifyConfig-CTrtqMr_.js';
3
+ export { v as BaseConfigReturn, B as BuiltinConfigKey, C as ConfigRegistry, w as DMGeneric, D as DataModelForSchema, c as DefaultValuesConfigData, d as DefaultValuesConfigInput, k as DefaultValuesVerifyFn, m as ExtensionStyleVerifyFn, E as ExtractDefaultValuesConfig, g as ExtractProtectedColumnsConfig, H as HasKey, I as IndexConfigBaseOptions, u as IndexConfigEntry, M as MakeOptional, a as MutationCtxForSchema, N as NormalizedIndexConfig, O as OnFailArgs, b as OnFailCallback, f as OptionalKeysForTable, P as Prettify, e as ProtectedColumnsConfigData, l as ProtectedColumnsVerifyFn, h as ProtectedKeysForTable, q as UniqueColumnConfigData, r as UniqueColumnConfigEntry, s as UniqueColumnConfigOptions, U as UniqueRowConfigData, o as UniqueRowConfigEntry, p as UniqueRowConfigOptions, V as VerifyConfigInput, i as VerifyInsertInput, j as VerifyPatchInput, n as VerifyRegistry, t as normalizeIndexConfigEntry } from '../types-B8ZkLuJ2.js';
4
+ import 'convex/server';
5
+ import 'convex/values';
7
6
 
8
- /**
9
- * Extended config input that includes optional validate plugins
10
- */
11
- type VerifyConfigInputWithPlugins = VerifyConfigInput & {
12
- /**
13
- * Unique row validation config.
14
- * Enforces uniqueness across multiple columns using composite indexes.
15
- *
16
- * Can also be added to the `plugins` array.
17
- */
18
- uniqueRow?: ValidatePlugin<"uniqueRow", any>;
19
- /**
20
- * Unique column validation config.
21
- * Enforces uniqueness on single columns using indexes.
22
- *
23
- * Can also be added to the `plugins` array.
24
- */
25
- uniqueColumn?: ValidatePlugin<"uniqueColumn", any>;
26
- /**
27
- * Additional validate plugins to run after transforms.
28
- * These plugins can validate data but don't affect input types.
29
- *
30
- * Built-in plugins (uniqueRow, uniqueColumn) can be added here
31
- * as an alternative to using their dedicated config keys.
32
- */
33
- plugins?: ValidatePlugin[];
34
- };
35
- /**
36
- * Configure type-safe insert and patch functions with validation and transforms.
37
- *
38
- * @param schema - Your Convex schema definition
39
- * @param configs - Configuration object with transforms, configs, and plugins
40
- * @returns Object with `insert`, `patch`, and `dangerouslyPatch` functions
41
- *
42
- * @example
43
- * ```ts
44
- * import {
45
- * verifyConfig,
46
- * defaultValuesConfig,
47
- * protectedColumnsConfig,
48
- * uniqueRowConfig,
49
- * uniqueColumnConfig,
50
- * } from 'convex-verify';
51
- * import schema from './schema';
52
- *
53
- * export const { insert, patch, dangerouslyPatch } = verifyConfig(schema, {
54
- * // Type-affecting configs
55
- * defaultValues: defaultValuesConfig(schema, () => ({
56
- * posts: { status: 'draft', views: 0 },
57
- * })),
58
- * protectedColumns: protectedColumnsConfig(schema, {
59
- * posts: ['authorId'],
60
- * }),
61
- *
62
- * // Built-in validation configs
63
- * uniqueRow: uniqueRowConfig(schema, {
64
- * posts: ['by_author_slug'],
65
- * }),
66
- * uniqueColumn: uniqueColumnConfig(schema, {
67
- * users: ['by_email', 'by_username'],
68
- * }),
69
- *
70
- * // Custom/third-party plugins
71
- * plugins: [myCustomPlugin()],
72
- * });
73
- * ```
74
- */
75
- declare const verifyConfig: <S extends GenericSchema, DataModel extends DataModelFromSchemaDefinition<SchemaDefinition<S, boolean>>, const VC extends VerifyConfigInputWithPlugins>(_schema: SchemaDefinition<S, boolean>, configs: VC) => {
76
- insert: <const TN extends TableNamesInDataModel<DataModel>, const D extends DocumentByName<DataModel, TN>>(ctx: Omit<GenericMutationCtx<DataModel>, never>, tableName: TN, data: HasKey<VC, "defaultValues"> extends true ? MakeOptional<WithoutSystemFields<D>, OptionalKeysForTable<VC, TN> & keyof WithoutSystemFields<D>> : WithoutSystemFields<D>, options?: {
77
- onFail?: OnFailCallback<D>;
78
- }) => Promise<GenericId<TN>>;
79
- patch: <const TN extends TableNamesInDataModel<DataModel>, const D_1 extends DocumentByName<DataModel, TN>>(ctx: Omit<GenericMutationCtx<DataModel>, never>, tableName: TN, id: GenericId<TN>, data: HasKey<VC, "protectedColumns"> extends true ? Omit<Partial<WithoutSystemFields<D_1>>, ProtectedKeysForTable<VC, TN> & keyof WithoutSystemFields<D_1>> : Partial<WithoutSystemFields<D_1>>, options?: {
80
- onFail?: OnFailCallback<D_1>;
81
- }) => Promise<void>;
82
- dangerouslyPatch: <const TN extends TableNamesInDataModel<DataModel>, const D_2 extends DocumentByName<DataModel, TN>>(ctx: Omit<GenericMutationCtx<DataModel>, never>, tableName: TN, id: GenericId<TN>, data: Partial<WithoutSystemFields<D_2>>, options?: {
83
- onFail?: OnFailCallback<D_2>;
84
- }) => Promise<void>;
85
- configs: VC;
7
+ type ProtectedColumnsLike = Record<string, readonly PropertyKey[] | undefined>;
8
+ declare const stripProtectedPatchColumns: <T extends Record<string, any>>(protectedColumns: ProtectedColumnsLike, tableName: string, data: T) => {
9
+ filteredData: T;
10
+ removedColumns: string[];
86
11
  };
87
12
 
88
- export { HasKey, MakeOptional, OnFailCallback, OptionalKeysForTable, ProtectedKeysForTable, ValidatePlugin, VerifyConfigInput, verifyConfig };
13
+ declare const createExtension: typeof createExtension$1;
14
+ declare const isExtension: typeof isExtension$1;
15
+ declare const runExtensions: typeof runExtensions$1;
16
+
17
+ export { createExtension, isExtension, runExtensions, stripProtectedPatchColumns };