schema-dsl 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +130 -113
- package/LICENSE +21 -21
- package/README.md +628 -628
- package/dist/{DslBuilder-DkLaOo9Q.d.ts → DslBuilder-BIgQOAXp.d.ts} +2 -0
- package/dist/{DslBuilder-DQDN0ZxZ.d.cts → DslBuilder-CjHTucNQ.d.cts} +2 -0
- package/dist/{Validator-hFWKGxir.d.ts → Validator-CllRdrY0.d.ts} +1 -1
- package/dist/{Validator-C7GsVQOH.d.cts → Validator-D6okG9tr.d.cts} +1 -1
- package/dist/index.cjs +75 -29
- package/dist/index.d.cts +10 -4
- package/dist/index.d.ts +10 -4
- package/dist/index.js +75 -29
- package/dist/plugins/custom-format.cjs +33 -17
- package/dist/plugins/custom-format.d.cts +1 -1
- package/dist/plugins/custom-format.d.ts +1 -1
- package/dist/plugins/custom-format.js +33 -17
- package/dist/plugins/custom-type-example.cjs +33 -17
- package/dist/plugins/custom-type-example.d.cts +1 -1
- package/dist/plugins/custom-type-example.d.ts +1 -1
- package/dist/plugins/custom-type-example.js +33 -17
- package/dist/plugins/custom-validator.cjs +0 -2
- package/dist/plugins/custom-validator.d.cts +1 -1
- package/dist/plugins/custom-validator.d.ts +1 -1
- package/dist/plugins/custom-validator.js +0 -2
- package/docs/FEATURE-INDEX.md +553 -553
- package/docs/add-custom-locale.md +496 -496
- package/docs/add-keyword.md +24 -24
- package/docs/api-reference.md +1047 -1047
- package/docs/api.md +13 -13
- package/docs/best-practices-project-structure.md +417 -417
- package/docs/best-practices.md +712 -712
- package/docs/cache-manager.md +344 -344
- package/docs/compile.md +45 -45
- package/docs/conditional-api.md +1307 -1307
- package/docs/custom-extensions-guide.md +339 -339
- package/docs/design-philosophy.md +606 -606
- package/docs/doc-index.md +324 -324
- package/docs/dsl-syntax.md +714 -714
- package/docs/dynamic-locale.md +608 -608
- package/docs/enum.md +482 -482
- package/docs/error-handling.md +1975 -1975
- package/docs/export-guide.md +501 -501
- package/docs/export-limitations.md +567 -567
- package/docs/faq.md +596 -596
- package/docs/frontend-i18n-guide.md +307 -307
- package/docs/i18n-user-guide.md +487 -487
- package/docs/i18n.md +476 -476
- package/docs/index.md +48 -48
- package/docs/json-schema-basics.md +40 -40
- package/docs/label-vs-description.md +271 -271
- package/docs/markdown-exporter.md +406 -406
- package/docs/mongodb-exporter.md +302 -302
- package/docs/multi-language.md +26 -26
- package/docs/multi-type-support.md +322 -322
- package/docs/mysql-exporter.md +280 -280
- package/docs/number-operators.md +449 -449
- package/docs/optional-marker-guide.md +326 -326
- package/docs/performance-guide.md +49 -49
- package/docs/plugin-system.md +381 -381
- package/docs/plugin-type-registration.md +34 -34
- package/docs/postgresql-exporter.md +311 -311
- package/docs/public/favicon.svg +4 -4
- package/docs/quick-start.md +435 -435
- package/docs/runtime-locale-support.md +532 -532
- package/docs/schema-helper.md +345 -345
- package/docs/schema-utils-advanced-issues.md +23 -23
- package/docs/schema-utils-best-practices.md +20 -20
- package/docs/schema-utils-chaining.md +150 -150
- package/docs/schema-utils.md +524 -524
- package/docs/security-checklist.md +20 -20
- package/docs/string-extensions.md +488 -488
- package/docs/troubleshooting.md +486 -486
- package/docs/type-converter.md +310 -310
- package/docs/type-reference.md +242 -242
- package/docs/typescript-guide.md +584 -584
- package/docs/union-type-guide.md +157 -157
- package/docs/union-types.md +284 -284
- package/docs/validate-async.md +491 -491
- package/docs/validate-batch.md +49 -49
- package/docs/validate-dsl-object-support.md +578 -578
- package/docs/validate.md +506 -506
- package/docs/validation-guide.md +502 -502
- package/docs/validator.md +39 -39
- package/package.json +131 -131
- package/plugins/custom-format.cjs +8 -8
- package/plugins/custom-type-example.cjs +8 -8
- package/plugins/custom-validator.cjs +8 -8
- package/src/adapters/DslAdapter.ts +111 -111
- package/src/adapters/index.ts +1 -1
- package/src/config/constants.ts +83 -83
- package/src/config/index.ts +2 -2
- package/src/config/patterns.ts +77 -77
- package/src/core/CacheManager.ts +169 -159
- package/src/core/ConditionalBuilder.ts +382 -382
- package/src/core/ConditionalRuntime.ts +27 -27
- package/src/core/ConditionalValidator.ts +254 -254
- package/src/core/DslBuilder.ts +687 -677
- package/src/core/ErrorCodes.ts +38 -38
- package/src/core/ErrorFormatter.ts +271 -271
- package/src/core/JSONSchemaCore.ts +65 -65
- package/src/core/Locale.ts +187 -187
- package/src/core/MessageTemplate.ts +42 -42
- package/src/core/ObjectDslBuilder.ts +64 -64
- package/src/core/PluginManager.ts +326 -326
- package/src/core/StringExtensions.ts +140 -140
- package/src/core/TemplateEngine.ts +44 -44
- package/src/core/Validator.ts +448 -448
- package/src/errors/I18nError.ts +159 -159
- package/src/errors/ValidationError.ts +105 -105
- package/src/exporters/BaseExporter.ts +60 -60
- package/src/exporters/MarkdownExporter.ts +305 -305
- package/src/exporters/MongoDBExporter.ts +126 -126
- package/src/exporters/MySQLExporter.ts +156 -155
- package/src/exporters/PostgreSQLExporter.ts +222 -222
- package/src/exporters/index.ts +18 -18
- package/src/index.ts +651 -633
- package/src/locales/en-US.ts +160 -160
- package/src/locales/es-ES.ts +160 -160
- package/src/locales/fr-FR.ts +160 -160
- package/src/locales/index.ts +103 -103
- package/src/locales/ja-JP.ts +160 -160
- package/src/locales/types.ts +156 -156
- package/src/locales/zh-CN.ts +160 -160
- package/src/parser/ConstraintParser.ts +101 -101
- package/src/parser/DslParser.ts +470 -470
- package/src/parser/SchemaCompiler.ts +66 -66
- package/src/parser/TypeRegistry.ts +250 -250
- package/src/parser/index.ts +6 -6
- package/src/plugins/custom-format.ts +124 -126
- package/src/plugins/custom-type-example.ts +106 -108
- package/src/plugins/custom-validator.ts +138 -140
- package/src/types/conditional.ts +28 -28
- package/src/types/config.ts +59 -59
- package/src/types/dsl.ts +131 -131
- package/src/types/error.ts +60 -60
- package/src/types/index.ts +17 -17
- package/src/types/infer.ts +127 -127
- package/src/types/plugin.ts +58 -58
- package/src/types/safe-regex.d.ts +9 -9
- package/src/types/schema.ts +66 -66
- package/src/types/validate.ts +71 -71
- package/src/utils/SchemaHelper.ts +196 -196
- package/src/utils/SchemaUtils.ts +365 -346
- package/src/utils/TypeConverter.ts +215 -215
- package/src/utils/index.ts +10 -10
- package/src/validators/CustomKeywords.ts +477 -477
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ObjectDslBuilder — v1 compat: dsl(object) returns a chainable builder.
|
|
3
|
-
*
|
|
4
|
-
* BC-2 fix: in v1, the schema returned by dsl({...}) / parseObject() supported .strict() /
|
|
5
|
-
* .requireAll() and other chain decorators, and implemented the toSchema() duck-type interface
|
|
6
|
-
* (Validator passes through internal schema). After v2 refactor, parseObject() returned plain
|
|
7
|
-
* JSONSchema, losing all chain API. This class wraps the DslParser.parseObject() result and
|
|
8
|
-
* exposes v1-equivalent chain methods:
|
|
9
|
-
* - toSchema() — return internal JSONSchema (Validator duck-type entry point)
|
|
10
|
-
* - toJsonSchema() — return clean JSON Schema (internal schema-dsl keywords stripped)
|
|
11
|
-
* - strict() — disallow extra properties
|
|
12
|
-
* - requireAll() — require all defined properties to be present
|
|
13
|
-
* - toString() — serialize to JSON string
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
import type { JSONSchema } from '../types/schema.js'
|
|
17
|
-
import { TypeRegistry } from '../parser/TypeRegistry.js'
|
|
18
|
-
|
|
19
|
-
export class ObjectDslBuilder {
|
|
20
|
-
readonly _isDslBuilder = true as const
|
|
21
|
-
readonly _isObjectDsl = true as const
|
|
22
|
-
|
|
23
|
-
private _schema: JSONSchema
|
|
24
|
-
|
|
25
|
-
constructor(schema: JSONSchema) {
|
|
26
|
-
this._schema = schema
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// ==================== Output Methods ====================
|
|
30
|
-
|
|
31
|
-
/** Return internal JSONSchema (Validator.validate() duck-type entry point). */
|
|
32
|
-
toSchema(): JSONSchema {
|
|
33
|
-
return this._schema
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/** Return clean JSON Schema (internal schema-dsl keywords stripped; safe for serialization or external tools). */
|
|
37
|
-
toJsonSchema(): JSONSchema {
|
|
38
|
-
return TypeRegistry.toJsonSchema(this._schema)
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
toString(): string {
|
|
42
|
-
return JSON.stringify(this.toJsonSchema())
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// ==================== Chain Decorator Methods ====================
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* strict() — disallow extra properties (v1 compat).
|
|
49
|
-
* Equivalent to setting strictSchema: true on the compiled schema.
|
|
50
|
-
*/
|
|
51
|
-
strict(): this {
|
|
52
|
-
; (this._schema as Record<string, unknown>)['strictSchema'] = true
|
|
53
|
-
return this
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* requireAll() — require all defined properties to be present (v1 compat).
|
|
58
|
-
* Equivalent to setting requiredAll: true on the compiled schema.
|
|
59
|
-
*/
|
|
60
|
-
requireAll(): this {
|
|
61
|
-
; (this._schema as Record<string, unknown>)['requiredAll'] = true
|
|
62
|
-
return this
|
|
63
|
-
}
|
|
64
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* ObjectDslBuilder — v1 compat: dsl(object) returns a chainable builder.
|
|
3
|
+
*
|
|
4
|
+
* BC-2 fix: in v1, the schema returned by dsl({...}) / parseObject() supported .strict() /
|
|
5
|
+
* .requireAll() and other chain decorators, and implemented the toSchema() duck-type interface
|
|
6
|
+
* (Validator passes through internal schema). After v2 refactor, parseObject() returned plain
|
|
7
|
+
* JSONSchema, losing all chain API. This class wraps the DslParser.parseObject() result and
|
|
8
|
+
* exposes v1-equivalent chain methods:
|
|
9
|
+
* - toSchema() — return internal JSONSchema (Validator duck-type entry point)
|
|
10
|
+
* - toJsonSchema() — return clean JSON Schema (internal schema-dsl keywords stripped)
|
|
11
|
+
* - strict() — disallow extra properties
|
|
12
|
+
* - requireAll() — require all defined properties to be present
|
|
13
|
+
* - toString() — serialize to JSON string
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import type { JSONSchema } from '../types/schema.js'
|
|
17
|
+
import { TypeRegistry } from '../parser/TypeRegistry.js'
|
|
18
|
+
|
|
19
|
+
export class ObjectDslBuilder {
|
|
20
|
+
readonly _isDslBuilder = true as const
|
|
21
|
+
readonly _isObjectDsl = true as const
|
|
22
|
+
|
|
23
|
+
private _schema: JSONSchema
|
|
24
|
+
|
|
25
|
+
constructor(schema: JSONSchema) {
|
|
26
|
+
this._schema = schema
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// ==================== Output Methods ====================
|
|
30
|
+
|
|
31
|
+
/** Return internal JSONSchema (Validator.validate() duck-type entry point). */
|
|
32
|
+
toSchema(): JSONSchema {
|
|
33
|
+
return this._schema
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** Return clean JSON Schema (internal schema-dsl keywords stripped; safe for serialization or external tools). */
|
|
37
|
+
toJsonSchema(): JSONSchema {
|
|
38
|
+
return TypeRegistry.toJsonSchema(this._schema)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
toString(): string {
|
|
42
|
+
return JSON.stringify(this.toJsonSchema())
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// ==================== Chain Decorator Methods ====================
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* strict() — disallow extra properties (v1 compat).
|
|
49
|
+
* Equivalent to setting strictSchema: true on the compiled schema.
|
|
50
|
+
*/
|
|
51
|
+
strict(): this {
|
|
52
|
+
; (this._schema as Record<string, unknown>)['strictSchema'] = true
|
|
53
|
+
return this
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* requireAll() — require all defined properties to be present (v1 compat).
|
|
58
|
+
* Equivalent to setting requiredAll: true on the compiled schema.
|
|
59
|
+
*/
|
|
60
|
+
requireAll(): this {
|
|
61
|
+
; (this._schema as Record<string, unknown>)['requiredAll'] = true
|
|
62
|
+
return this
|
|
63
|
+
}
|
|
64
|
+
}
|