metal-orm 1.1.10 → 1.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +758 -769
- package/dist/index.cjs +106 -43
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/index.js +106 -43
- package/dist/index.js.map +1 -1
- package/package.json +100 -96
- package/scripts/generate-entities/render.mjs +21 -12
- package/scripts/generate-entities/schema.mjs +209 -195
- package/scripts/generate-entities/tree-detection.mjs +159 -153
- package/scripts/inflection/pt-br.mjs +468 -468
- package/scripts/run-eslint.mjs +33 -34
- package/scripts/show-sql-seed.sql +102 -0
- package/scripts/show-sql.mjs +321 -325
- package/src/bulk/bulk-delete-executor.ts +3 -5
- package/src/bulk/bulk-insert-executor.ts +7 -7
- package/src/bulk/bulk-update-executor.ts +2 -2
- package/src/bulk/bulk-upsert-executor.ts +5 -7
- package/src/codegen/naming-strategy.ts +54 -54
- package/src/codegen/typescript.ts +482 -482
- package/src/core/ast/adapters.ts +1 -1
- package/src/core/ast/builders.ts +123 -123
- package/src/core/ast/expression-builders.ts +745 -745
- package/src/core/ast/expression-nodes.ts +304 -304
- package/src/core/ast/expression-visitor.ts +212 -212
- package/src/core/ast/expression.ts +20 -20
- package/src/core/ast/helpers.ts +14 -14
- package/src/core/ast/join.ts +18 -18
- package/src/core/ast/query.ts +200 -200
- package/src/core/ddl/dialects/base-schema-dialect.ts +1 -1
- package/src/core/ddl/dialects/mssql-schema-dialect.ts +1 -1
- package/src/core/ddl/dialects/mysql-schema-dialect.ts +1 -1
- package/src/core/ddl/dialects/postgres-schema-dialect.ts +1 -1
- package/src/core/ddl/dialects/render-reference.test.ts +70 -70
- package/src/core/ddl/dialects/sqlite-schema-dialect.ts +1 -1
- package/src/core/ddl/introspect/catalogs/index.ts +5 -5
- package/src/core/ddl/introspect/catalogs/postgres.ts +146 -146
- package/src/core/ddl/introspect/context.ts +15 -15
- package/src/core/ddl/introspect/functions/postgres.ts +35 -35
- package/src/core/ddl/introspect/mysql.ts +113 -36
- package/src/core/ddl/introspect/registry.ts +40 -40
- package/src/core/ddl/introspect/run-select.ts +35 -35
- package/src/core/ddl/introspect/utils.ts +56 -56
- package/src/core/ddl/naming-strategy.ts +16 -16
- package/src/core/ddl/schema-dialect.ts +56 -56
- package/src/core/ddl/schema-diff.ts +234 -234
- package/src/core/ddl/schema-generator.ts +1 -1
- package/src/core/ddl/schema-introspect.ts +25 -25
- package/src/core/ddl/sql-writing.ts +171 -171
- package/src/core/dialect/abstract.ts +541 -541
- package/src/core/dialect/base/cte-compiler.ts +33 -33
- package/src/core/dialect/base/function-table-formatter.ts +103 -103
- package/src/core/dialect/base/groupby-compiler.ts +21 -21
- package/src/core/dialect/base/join-compiler.ts +25 -25
- package/src/core/dialect/base/orderby-compiler.ts +35 -35
- package/src/core/dialect/base/pagination-strategy.ts +32 -32
- package/src/core/dialect/base/returning-strategy.ts +57 -57
- package/src/core/dialect/base/sql-dialect.ts +294 -294
- package/src/core/dialect/dialect-factory.ts +91 -91
- package/src/core/dialect/mssql/functions.ts +120 -120
- package/src/core/dialect/mssql/index.ts +317 -317
- package/src/core/dialect/mysql/functions.ts +103 -103
- package/src/core/dialect/mysql/index.ts +105 -105
- package/src/core/dialect/postgres/functions.ts +108 -108
- package/src/core/dialect/postgres/index.ts +91 -91
- package/src/core/dialect/sqlite/functions.ts +129 -129
- package/src/core/dialect/sqlite/index.ts +67 -67
- package/src/core/driver/database-driver.ts +19 -19
- package/src/core/driver/mssql-driver.ts +23 -23
- package/src/core/driver/mysql-driver.ts +23 -23
- package/src/core/driver/postgres-driver.ts +23 -23
- package/src/core/driver/sqlite-driver.ts +23 -23
- package/src/core/execution/db-executor.ts +92 -92
- package/src/core/execution/executors/better-sqlite3-executor.ts +94 -94
- package/src/core/execution/executors/mssql-executor.ts +184 -184
- package/src/core/execution/executors/mysql-executor.ts +88 -88
- package/src/core/execution/executors/postgres-executor.ts +26 -26
- package/src/core/execution/executors/sqlite-executor.ts +42 -42
- package/src/core/execution/pooling/pool-types.ts +30 -30
- package/src/core/execution/pooling/pool.ts +275 -275
- package/src/core/functions/array.ts +35 -35
- package/src/core/functions/control-flow.ts +79 -79
- package/src/core/functions/datetime.ts +237 -237
- package/src/core/functions/json.ts +70 -70
- package/src/core/functions/numeric.ts +297 -297
- package/src/core/functions/text.ts +334 -334
- package/src/core/functions/types.ts +33 -33
- package/src/core/hydration/types.ts +51 -51
- package/src/core/sql/sql-operator-config.ts +39 -39
- package/src/core/sql/sql.ts +152 -152
- package/src/decorators/column-decorator.ts +87 -87
- package/src/decorators/decorator-metadata.ts +143 -143
- package/src/decorators/entity.ts +93 -93
- package/src/decorators/index.ts +39 -39
- package/src/decorators/relations.ts +231 -231
- package/src/decorators/transformers/built-in/string-transformers.ts +231 -231
- package/src/decorators/transformers/transformer-decorators.ts +134 -134
- package/src/decorators/transformers/transformer-executor.ts +171 -171
- package/src/decorators/transformers/transformer-metadata.ts +73 -73
- package/src/decorators/validators/built-in/br-cep-validator.ts +55 -55
- package/src/decorators/validators/built-in/br-cnpj-validator.ts +105 -105
- package/src/decorators/validators/built-in/br-cpf-validator.ts +103 -103
- package/src/decorators/validators/country-validator-registry.ts +64 -64
- package/src/decorators/validators/country-validators-decorators.ts +203 -203
- package/src/decorators/validators/country-validators.ts +105 -105
- package/src/decorators/validators/validator-metadata.ts +59 -59
- package/src/dto/dto-types.ts +226 -226
- package/src/dto/filter-types.ts +141 -141
- package/src/dto/index.ts +95 -95
- package/src/dto/openapi/generators/base.ts +29 -29
- package/src/dto/openapi/generators/column.ts +37 -37
- package/src/dto/openapi/generators/dto.ts +91 -91
- package/src/dto/openapi/generators/filter.ts +75 -75
- package/src/dto/openapi/generators/nested-dto.ts +618 -618
- package/src/dto/openapi/generators/pagination.ts +111 -111
- package/src/dto/openapi/generators/relation-filter.ts +228 -228
- package/src/dto/openapi/index.ts +12 -12
- package/src/dto/openapi/types.ts +101 -101
- package/src/dto/openapi/utilities.ts +95 -95
- package/src/dto/pagination-utils.ts +150 -150
- package/src/dto/transform.ts +197 -197
- package/src/index.ts +86 -86
- package/src/orm/als.ts +58 -58
- package/src/orm/domain-event-bus.ts +119 -119
- package/src/orm/entity-context.ts +86 -86
- package/src/orm/entity-materializer.ts +159 -159
- package/src/orm/entity-meta.ts +97 -97
- package/src/orm/entity-registry.ts +39 -39
- package/src/orm/entity-relation-cache.ts +39 -39
- package/src/orm/execute.ts +194 -194
- package/src/orm/execution-context.ts +18 -18
- package/src/orm/hydration-context.ts +26 -26
- package/src/orm/hydration.ts +112 -112
- package/src/orm/identity-map.ts +61 -61
- package/src/orm/interceptor-pipeline.ts +16 -16
- package/src/orm/lazy-batch/belongs-to-many.ts +119 -119
- package/src/orm/lazy-batch/belongs-to.ts +108 -108
- package/src/orm/lazy-batch/has-many.ts +69 -69
- package/src/orm/lazy-batch/has-one.ts +68 -68
- package/src/orm/lazy-batch/shared.ts +125 -125
- package/src/orm/orm-session.ts +620 -620
- package/src/orm/orm.ts +34 -34
- package/src/orm/pooled-executor-factory.ts +121 -121
- package/src/orm/query-logger.ts +40 -40
- package/src/orm/relation-change-processor.ts +420 -420
- package/src/orm/relations/belongs-to.ts +143 -143
- package/src/orm/relations/has-many.ts +204 -204
- package/src/orm/relations/has-one.ts +174 -174
- package/src/orm/relations/many-to-many.ts +288 -288
- package/src/orm/relations/morph-many.ts +156 -156
- package/src/orm/relations/morph-one.ts +151 -151
- package/src/orm/relations/morph-to.ts +162 -162
- package/src/orm/runtime-types.ts +92 -92
- package/src/orm/save-graph.ts +561 -561
- package/src/orm/transaction-runner.ts +24 -24
- package/src/orm/unit-of-work.ts +426 -426
- package/src/query/index.ts +69 -69
- package/src/query/target.ts +46 -46
- package/src/query-builder/column-selector.ts +81 -81
- package/src/query-builder/delete.ts +141 -141
- package/src/query-builder/insert-query-state.ts +149 -149
- package/src/query-builder/insert.ts +117 -117
- package/src/query-builder/query-ast-service.ts +287 -287
- package/src/query-builder/query-resolution.ts +78 -78
- package/src/query-builder/raw-column-parser.ts +38 -38
- package/src/query-builder/relation-filter-utils.ts +153 -153
- package/src/query-builder/relation-join-planner.ts +10 -10
- package/src/query-builder/relation-manager.ts +87 -87
- package/src/query-builder/relation-projection-helper.ts +102 -102
- package/src/query-builder/relation-types.ts +9 -9
- package/src/query-builder/relation-utils.ts +15 -15
- package/src/query-builder/select/cte-facet.ts +40 -40
- package/src/query-builder/select/from-facet.ts +80 -80
- package/src/query-builder/select/join-facet.ts +62 -62
- package/src/query-builder/select/predicate-facet.ts +104 -104
- package/src/query-builder/select/projection-facet.ts +70 -70
- package/src/query-builder/select/relation-facet.ts +81 -81
- package/src/query-builder/select/setop-facet.ts +36 -36
- package/src/query-builder/select-helpers.ts +1 -1
- package/src/query-builder/select-query-builder-deps.ts +130 -130
- package/src/query-builder/select-query-state.ts +207 -207
- package/src/query-builder/update.ts +151 -151
- package/src/schema/column-types.ts +322 -322
- package/src/schema/table-guards.ts +37 -37
- package/src/schema/table.ts +281 -281
- package/src/tree/index.ts +13 -13
- package/src/tree/nested-set-strategy.ts +545 -545
- package/src/tree/tree-decorator.ts +397 -397
- package/src/tree/tree-manager.ts +754 -754
- package/src/tree/tree-query.ts +427 -427
- package/src/tree/tree-types.ts +299 -299
|
@@ -1,105 +1,105 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base interface for country-specific identifier validators
|
|
3
|
-
*/
|
|
4
|
-
export interface CountryValidator<T = string> {
|
|
5
|
-
/** ISO 3166-1 alpha-2 country code (e.g., 'BR', 'US') */
|
|
6
|
-
readonly countryCode: string;
|
|
7
|
-
|
|
8
|
-
/** Identifier type (e.g., 'cpf', 'cnpj', 'ssn', 'zip') */
|
|
9
|
-
readonly identifierType: string;
|
|
10
|
-
|
|
11
|
-
/** Unique validator name (e.g., 'br-cpf', 'us-ssn') */
|
|
12
|
-
readonly name: string;
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Validates an identifier value
|
|
16
|
-
* @param value - The identifier value to validate
|
|
17
|
-
* @param options - Validation options
|
|
18
|
-
* @returns Validation result with success status and optional error message
|
|
19
|
-
*/
|
|
20
|
-
validate(value: T, options?: ValidationOptions): ValidationResult;
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Normalizes an identifier value (removes formatting, standardizes)
|
|
24
|
-
* @param value - The identifier value to normalize
|
|
25
|
-
* @returns Normalized value (digits only, uppercase, etc.)
|
|
26
|
-
*/
|
|
27
|
-
normalize(value: T): string;
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Formats an identifier value according to country standards
|
|
31
|
-
* @param value - The identifier value to format (can be normalized or formatted)
|
|
32
|
-
* @returns Formatted value (e.g., '123.456.789-01' for CPF)
|
|
33
|
-
*/
|
|
34
|
-
format(value: T): string;
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Attempts to auto-correct an invalid value
|
|
38
|
-
* @param value - The invalid value to correct
|
|
39
|
-
* @returns Auto-correction result or undefined if not possible
|
|
40
|
-
*/
|
|
41
|
-
autoCorrect?(value: T): AutoCorrectionResult<T>;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Validation options for country identifiers
|
|
46
|
-
*/
|
|
47
|
-
export interface ValidationOptions {
|
|
48
|
-
/** Whether to allow formatted input (e.g., '123.456.789-01') */
|
|
49
|
-
allowFormatted?: boolean;
|
|
50
|
-
|
|
51
|
-
/** Whether to allow normalized input (e.g., '12345678901') */
|
|
52
|
-
allowNormalized?: boolean;
|
|
53
|
-
|
|
54
|
-
/** Whether to perform strict validation (e.g., check for known invalid numbers) */
|
|
55
|
-
strict?: boolean;
|
|
56
|
-
|
|
57
|
-
/** Custom error message */
|
|
58
|
-
errorMessage?: string;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Validation result
|
|
63
|
-
*/
|
|
64
|
-
export interface ValidationResult {
|
|
65
|
-
/** Whether validation passed */
|
|
66
|
-
isValid: boolean;
|
|
67
|
-
|
|
68
|
-
/** Error message if validation failed */
|
|
69
|
-
error?: string;
|
|
70
|
-
|
|
71
|
-
/** Normalized value (if validation passed) */
|
|
72
|
-
normalizedValue?: string;
|
|
73
|
-
|
|
74
|
-
/** Formatted value (if validation passed) */
|
|
75
|
-
formattedValue?: string;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Auto-correction result
|
|
80
|
-
*/
|
|
81
|
-
export interface AutoCorrectionResult<T = string> {
|
|
82
|
-
/** Whether auto-correction was successful */
|
|
83
|
-
success: boolean;
|
|
84
|
-
|
|
85
|
-
/** Corrected value */
|
|
86
|
-
correctedValue?: T;
|
|
87
|
-
|
|
88
|
-
/** Description of what was corrected */
|
|
89
|
-
message?: string;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
// Country Validator Factory
|
|
93
|
-
export type CountryValidatorFactory<T = string> = (options?: ValidatorFactoryOptions) => CountryValidator<T>;
|
|
94
|
-
|
|
95
|
-
// Options for creating a validator instance
|
|
96
|
-
export interface ValidatorFactoryOptions {
|
|
97
|
-
/** Custom validation rules */
|
|
98
|
-
customRules?: Record<string, unknown>;
|
|
99
|
-
|
|
100
|
-
/** Whether to enable strict mode by default */
|
|
101
|
-
strict?: boolean;
|
|
102
|
-
|
|
103
|
-
/** Custom error messages */
|
|
104
|
-
errorMessages?: Record<string, string>;
|
|
105
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Base interface for country-specific identifier validators
|
|
3
|
+
*/
|
|
4
|
+
export interface CountryValidator<T = string> {
|
|
5
|
+
/** ISO 3166-1 alpha-2 country code (e.g., 'BR', 'US') */
|
|
6
|
+
readonly countryCode: string;
|
|
7
|
+
|
|
8
|
+
/** Identifier type (e.g., 'cpf', 'cnpj', 'ssn', 'zip') */
|
|
9
|
+
readonly identifierType: string;
|
|
10
|
+
|
|
11
|
+
/** Unique validator name (e.g., 'br-cpf', 'us-ssn') */
|
|
12
|
+
readonly name: string;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Validates an identifier value
|
|
16
|
+
* @param value - The identifier value to validate
|
|
17
|
+
* @param options - Validation options
|
|
18
|
+
* @returns Validation result with success status and optional error message
|
|
19
|
+
*/
|
|
20
|
+
validate(value: T, options?: ValidationOptions): ValidationResult;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Normalizes an identifier value (removes formatting, standardizes)
|
|
24
|
+
* @param value - The identifier value to normalize
|
|
25
|
+
* @returns Normalized value (digits only, uppercase, etc.)
|
|
26
|
+
*/
|
|
27
|
+
normalize(value: T): string;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Formats an identifier value according to country standards
|
|
31
|
+
* @param value - The identifier value to format (can be normalized or formatted)
|
|
32
|
+
* @returns Formatted value (e.g., '123.456.789-01' for CPF)
|
|
33
|
+
*/
|
|
34
|
+
format(value: T): string;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Attempts to auto-correct an invalid value
|
|
38
|
+
* @param value - The invalid value to correct
|
|
39
|
+
* @returns Auto-correction result or undefined if not possible
|
|
40
|
+
*/
|
|
41
|
+
autoCorrect?(value: T): AutoCorrectionResult<T>;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Validation options for country identifiers
|
|
46
|
+
*/
|
|
47
|
+
export interface ValidationOptions {
|
|
48
|
+
/** Whether to allow formatted input (e.g., '123.456.789-01') */
|
|
49
|
+
allowFormatted?: boolean;
|
|
50
|
+
|
|
51
|
+
/** Whether to allow normalized input (e.g., '12345678901') */
|
|
52
|
+
allowNormalized?: boolean;
|
|
53
|
+
|
|
54
|
+
/** Whether to perform strict validation (e.g., check for known invalid numbers) */
|
|
55
|
+
strict?: boolean;
|
|
56
|
+
|
|
57
|
+
/** Custom error message */
|
|
58
|
+
errorMessage?: string;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Validation result
|
|
63
|
+
*/
|
|
64
|
+
export interface ValidationResult {
|
|
65
|
+
/** Whether validation passed */
|
|
66
|
+
isValid: boolean;
|
|
67
|
+
|
|
68
|
+
/** Error message if validation failed */
|
|
69
|
+
error?: string;
|
|
70
|
+
|
|
71
|
+
/** Normalized value (if validation passed) */
|
|
72
|
+
normalizedValue?: string;
|
|
73
|
+
|
|
74
|
+
/** Formatted value (if validation passed) */
|
|
75
|
+
formattedValue?: string;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Auto-correction result
|
|
80
|
+
*/
|
|
81
|
+
export interface AutoCorrectionResult<T = string> {
|
|
82
|
+
/** Whether auto-correction was successful */
|
|
83
|
+
success: boolean;
|
|
84
|
+
|
|
85
|
+
/** Corrected value */
|
|
86
|
+
correctedValue?: T;
|
|
87
|
+
|
|
88
|
+
/** Description of what was corrected */
|
|
89
|
+
message?: string;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Country Validator Factory
|
|
93
|
+
export type CountryValidatorFactory<T = string> = (options?: ValidatorFactoryOptions) => CountryValidator<T>;
|
|
94
|
+
|
|
95
|
+
// Options for creating a validator instance
|
|
96
|
+
export interface ValidatorFactoryOptions {
|
|
97
|
+
/** Custom validation rules */
|
|
98
|
+
customRules?: Record<string, unknown>;
|
|
99
|
+
|
|
100
|
+
/** Whether to enable strict mode by default */
|
|
101
|
+
strict?: boolean;
|
|
102
|
+
|
|
103
|
+
/** Custom error messages */
|
|
104
|
+
errorMessages?: Record<string, string>;
|
|
105
|
+
}
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Validation options for country identifiers
|
|
3
|
-
*/
|
|
4
|
-
export interface ValidationOptions {
|
|
5
|
-
/** Whether to allow formatted input (e.g., '123.456.789-01') */
|
|
6
|
-
allowFormatted?: boolean;
|
|
7
|
-
|
|
8
|
-
/** Whether to allow normalized input (e.g., '12345678901') */
|
|
9
|
-
allowNormalized?: boolean;
|
|
10
|
-
|
|
11
|
-
/** Whether to perform strict validation (e.g., check for known invalid numbers) */
|
|
12
|
-
strict?: boolean;
|
|
13
|
-
|
|
14
|
-
/** Custom error message */
|
|
15
|
-
errorMessage?: string;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Validation result
|
|
20
|
-
*/
|
|
21
|
-
export interface ValidationResult {
|
|
22
|
-
/** Whether validation passed */
|
|
23
|
-
isValid: boolean;
|
|
24
|
-
|
|
25
|
-
/** Error message if validation failed */
|
|
26
|
-
error?: string;
|
|
27
|
-
|
|
28
|
-
/** Normalized value (if validation passed) */
|
|
29
|
-
normalizedValue?: string;
|
|
30
|
-
|
|
31
|
-
/** Formatted value (if validation passed) */
|
|
32
|
-
formattedValue?: string;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Auto-correction result
|
|
37
|
-
*/
|
|
38
|
-
export interface AutoCorrectionResult<T = string> {
|
|
39
|
-
/** Whether auto-correction was successful */
|
|
40
|
-
success: boolean;
|
|
41
|
-
|
|
42
|
-
/** Corrected value */
|
|
43
|
-
correctedValue?: T;
|
|
44
|
-
|
|
45
|
-
/** Description of what was corrected */
|
|
46
|
-
message?: string;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
// Options for creating a validator instance
|
|
50
|
-
export interface ValidatorFactoryOptions {
|
|
51
|
-
/** Custom validation rules */
|
|
52
|
-
customRules?: Record<string, unknown>;
|
|
53
|
-
|
|
54
|
-
/** Whether to enable strict mode by default */
|
|
55
|
-
strict?: boolean;
|
|
56
|
-
|
|
57
|
-
/** Custom error messages */
|
|
58
|
-
errorMessages?: Record<string, string>;
|
|
59
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Validation options for country identifiers
|
|
3
|
+
*/
|
|
4
|
+
export interface ValidationOptions {
|
|
5
|
+
/** Whether to allow formatted input (e.g., '123.456.789-01') */
|
|
6
|
+
allowFormatted?: boolean;
|
|
7
|
+
|
|
8
|
+
/** Whether to allow normalized input (e.g., '12345678901') */
|
|
9
|
+
allowNormalized?: boolean;
|
|
10
|
+
|
|
11
|
+
/** Whether to perform strict validation (e.g., check for known invalid numbers) */
|
|
12
|
+
strict?: boolean;
|
|
13
|
+
|
|
14
|
+
/** Custom error message */
|
|
15
|
+
errorMessage?: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Validation result
|
|
20
|
+
*/
|
|
21
|
+
export interface ValidationResult {
|
|
22
|
+
/** Whether validation passed */
|
|
23
|
+
isValid: boolean;
|
|
24
|
+
|
|
25
|
+
/** Error message if validation failed */
|
|
26
|
+
error?: string;
|
|
27
|
+
|
|
28
|
+
/** Normalized value (if validation passed) */
|
|
29
|
+
normalizedValue?: string;
|
|
30
|
+
|
|
31
|
+
/** Formatted value (if validation passed) */
|
|
32
|
+
formattedValue?: string;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Auto-correction result
|
|
37
|
+
*/
|
|
38
|
+
export interface AutoCorrectionResult<T = string> {
|
|
39
|
+
/** Whether auto-correction was successful */
|
|
40
|
+
success: boolean;
|
|
41
|
+
|
|
42
|
+
/** Corrected value */
|
|
43
|
+
correctedValue?: T;
|
|
44
|
+
|
|
45
|
+
/** Description of what was corrected */
|
|
46
|
+
message?: string;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Options for creating a validator instance
|
|
50
|
+
export interface ValidatorFactoryOptions {
|
|
51
|
+
/** Custom validation rules */
|
|
52
|
+
customRules?: Record<string, unknown>;
|
|
53
|
+
|
|
54
|
+
/** Whether to enable strict mode by default */
|
|
55
|
+
strict?: boolean;
|
|
56
|
+
|
|
57
|
+
/** Custom error messages */
|
|
58
|
+
errorMessages?: Record<string, string>;
|
|
59
|
+
}
|