ata-validator 1.30.1 → 1.30.3
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/index.js +73 -21
- package/lib/js-compiler.js +17 -9
- package/lib/version.js +1 -1
- package/package.json +9 -9
package/index.js
CHANGED
|
@@ -1672,37 +1672,59 @@ class Validator {
|
|
|
1672
1672
|
this.isValid = (buf) => {
|
|
1673
1673
|
self._ensureNative();
|
|
1674
1674
|
const slot = self._fastSlot;
|
|
1675
|
-
self.isValid =
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1675
|
+
self.isValid = slot < 0
|
|
1676
|
+
? (b) => self._slowBufferValid(b, 'isValid')
|
|
1677
|
+
: (b) => {
|
|
1678
|
+
if (typeof b === 'string') b = Buffer.from(b);
|
|
1679
|
+
else if (!(b instanceof Uint8Array)) throw new TypeError('isValid() requires a Buffer, Uint8Array, or string. For parsed objects, use isValidObject().');
|
|
1680
|
+
return native.rawFastValidate(slot, b);
|
|
1681
|
+
};
|
|
1680
1682
|
return self.isValid(buf);
|
|
1681
1683
|
};
|
|
1682
1684
|
this.countValid = (ndjsonBuf) => {
|
|
1683
1685
|
self._ensureNative();
|
|
1684
1686
|
const slot = self._fastSlot;
|
|
1685
|
-
self.countValid =
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1687
|
+
self.countValid = slot < 0
|
|
1688
|
+
? (b) => {
|
|
1689
|
+
if (typeof b !== 'string' && !(b instanceof Uint8Array)) throw new TypeError('countValid() requires a Buffer, Uint8Array, or string');
|
|
1690
|
+
const text = typeof b === 'string' ? b : Buffer.from(b.buffer, b.byteOffset, b.byteLength).toString('utf8');
|
|
1691
|
+
let c = 0;
|
|
1692
|
+
for (const line of text.split('\n')) {
|
|
1693
|
+
if (line.trim() === '') continue;
|
|
1694
|
+
if (self._slowBufferValid(line, 'countValid')) c++;
|
|
1695
|
+
}
|
|
1696
|
+
return c;
|
|
1697
|
+
}
|
|
1698
|
+
: (b) => {
|
|
1699
|
+
if (typeof b === 'string') b = Buffer.from(b);
|
|
1700
|
+
else if (!(b instanceof Uint8Array)) throw new TypeError('countValid() requires a Buffer, Uint8Array, or string');
|
|
1701
|
+
const r = native.rawNDJSONValidate(slot, b);
|
|
1702
|
+
let c = 0;
|
|
1703
|
+
for (let i = 0; i < r.length; i++) if (r[i]) c++;
|
|
1704
|
+
return c;
|
|
1705
|
+
};
|
|
1693
1706
|
return self.countValid(ndjsonBuf);
|
|
1694
1707
|
};
|
|
1695
1708
|
this.batchIsValid = (buffers) => {
|
|
1696
1709
|
self._ensureNative();
|
|
1697
1710
|
const slot = self._fastSlot;
|
|
1698
|
-
self.batchIsValid =
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1711
|
+
self.batchIsValid = slot < 0
|
|
1712
|
+
? (bufs) => {
|
|
1713
|
+
let v = 0;
|
|
1714
|
+
for (const b of bufs) {
|
|
1715
|
+
if (!(b instanceof Uint8Array)) throw new TypeError('batchIsValid() requires Buffer or Uint8Array elements');
|
|
1716
|
+
if (self._slowBufferValid(b, 'batchIsValid')) v++;
|
|
1717
|
+
}
|
|
1718
|
+
return v;
|
|
1703
1719
|
}
|
|
1704
|
-
|
|
1705
|
-
|
|
1720
|
+
: (bufs) => {
|
|
1721
|
+
let v = 0;
|
|
1722
|
+
for (const b of bufs) {
|
|
1723
|
+
if (!(b instanceof Uint8Array)) throw new TypeError('batchIsValid() requires Buffer or Uint8Array elements');
|
|
1724
|
+
if (native.rawFastValidate(slot, b)) v++;
|
|
1725
|
+
}
|
|
1726
|
+
return v;
|
|
1727
|
+
};
|
|
1706
1728
|
return self.batchIsValid(buffers);
|
|
1707
1729
|
};
|
|
1708
1730
|
}
|
|
@@ -2106,7 +2128,37 @@ class Validator {
|
|
|
2106
2128
|
nativeSchemaStr = JSON.stringify(merged);
|
|
2107
2129
|
}
|
|
2108
2130
|
this._compiled = new native.CompiledSchema(nativeSchemaStr);
|
|
2109
|
-
|
|
2131
|
+
// The fast registry is a fixed array of slots in the addon, and registering
|
|
2132
|
+
// a distinct schema past the last one throws. It is an accelerator for the
|
|
2133
|
+
// buffer path, not a requirement, so a full registry leaves the slot at -1
|
|
2134
|
+
// and the buffer methods answer from the JS engine instead. Letting this
|
|
2135
|
+
// throw made every validator built after the 4096th unusable on that path.
|
|
2136
|
+
try {
|
|
2137
|
+
this._fastSlot = native.fastRegister(nativeSchemaStr);
|
|
2138
|
+
} catch {
|
|
2139
|
+
this._fastSlot = -1;
|
|
2140
|
+
}
|
|
2141
|
+
}
|
|
2142
|
+
|
|
2143
|
+
// The buffer path without a fast slot: decode, parse, and hand the value to
|
|
2144
|
+
// the engine that does not need one. Slower than the zero-copy walk, and the
|
|
2145
|
+
// same answer. A negative slot must never reach rawFastValidate, whose bounds
|
|
2146
|
+
// check would report a valid document as invalid.
|
|
2147
|
+
_slowBufferValid(input, who) {
|
|
2148
|
+
let text;
|
|
2149
|
+
if (typeof input === 'string') text = input;
|
|
2150
|
+
else if (input instanceof Uint8Array) {
|
|
2151
|
+
text = Buffer.from(input.buffer, input.byteOffset, input.byteLength).toString('utf8');
|
|
2152
|
+
} else {
|
|
2153
|
+
throw new TypeError(who + '() requires a Buffer, Uint8Array, or string');
|
|
2154
|
+
}
|
|
2155
|
+
let parsed;
|
|
2156
|
+
try {
|
|
2157
|
+
parsed = JSON.parse(text);
|
|
2158
|
+
} catch {
|
|
2159
|
+
return false;
|
|
2160
|
+
}
|
|
2161
|
+
return this.isValidObject(parsed);
|
|
2110
2162
|
}
|
|
2111
2163
|
|
|
2112
2164
|
addSchema(schema) {
|
package/lib/js-compiler.js
CHANGED
|
@@ -1838,6 +1838,13 @@ function genCode(schema, v, lines, ctx, knownType) {
|
|
|
1838
1838
|
ctx.regExpMap = new Map();
|
|
1839
1839
|
}
|
|
1840
1840
|
|
|
1841
|
+
// Bookkeeping about THIS node, so it stays in this call. On `ctx` it outlived
|
|
1842
|
+
// the node: a sibling that set one made the next node skip a check it owed,
|
|
1843
|
+
// and `propertyNames` then vanished from the emitted program. Same class as
|
|
1844
|
+
// the deferred additionalProperties bug, so same answer, a local.
|
|
1845
|
+
let ppHandledPropertyNames = false
|
|
1846
|
+
let earlyKeyCount = false
|
|
1847
|
+
|
|
1841
1848
|
// $ref — guard against circular references
|
|
1842
1849
|
// In 2020-12 with unevaluated*, $ref can coexist with siblings — don't early return
|
|
1843
1850
|
// Only when THIS schema has unevaluated keywords directly (not via $ref target)
|
|
@@ -2062,7 +2069,7 @@ function genCode(schema, v, lines, ctx, knownType) {
|
|
|
2062
2069
|
} else {
|
|
2063
2070
|
lines.push(`if(Object.keys(${v}).length!==${propCount})return false`)
|
|
2064
2071
|
}
|
|
2065
|
-
|
|
2072
|
+
earlyKeyCount = true // this node emitted its key count already
|
|
2066
2073
|
}
|
|
2067
2074
|
}
|
|
2068
2075
|
}
|
|
@@ -2278,8 +2285,7 @@ function genCode(schema, v, lines, ctx, knownType) {
|
|
|
2278
2285
|
// A key that is neither declared nor matched by any pattern is
|
|
2279
2286
|
// additional: rejected outright, or run through the additionalProperties
|
|
2280
2287
|
// schema when there is one.
|
|
2281
|
-
|
|
2282
|
-
ctx._ppHandledPropertyNames = !!pn
|
|
2288
|
+
ppHandledPropertyNames = !!pn
|
|
2283
2289
|
const propKeys = Object.keys(schema.properties || {})
|
|
2284
2290
|
let apCheck = null
|
|
2285
2291
|
if (apSchema) {
|
|
@@ -2337,7 +2343,7 @@ function genCode(schema, v, lines, ctx, knownType) {
|
|
|
2337
2343
|
lines.push(`}}`)
|
|
2338
2344
|
} else {
|
|
2339
2345
|
// No additionalProperties: validate matching keys + propertyNames
|
|
2340
|
-
|
|
2346
|
+
ppHandledPropertyNames = !!pn
|
|
2341
2347
|
lines.push(`${guard}{for(const ${kVar} in ${v}){`)
|
|
2342
2348
|
// propertyNames checks (merged)
|
|
2343
2349
|
if (pn) {
|
|
@@ -2389,7 +2395,7 @@ function genCode(schema, v, lines, ctx, knownType) {
|
|
|
2389
2395
|
}
|
|
2390
2396
|
|
|
2391
2397
|
// propertyNames — only emit if not already merged into patternProperties loop
|
|
2392
|
-
if (schema.propertyNames && typeof schema.propertyNames === 'object' && !
|
|
2398
|
+
if (schema.propertyNames && typeof schema.propertyNames === 'object' && !ppHandledPropertyNames) {
|
|
2393
2399
|
const pn = schema.propertyNames
|
|
2394
2400
|
const ki = ctx.varCounter++
|
|
2395
2401
|
const guard = isObj ? '' : `if(typeof ${v}==='object'&&${v}!==null&&!Array.isArray(${v}))`
|
|
@@ -2620,7 +2626,7 @@ function genCode(schema, v, lines, ctx, knownType) {
|
|
|
2620
2626
|
let inner
|
|
2621
2627
|
if (allRequired && propCount > 0) {
|
|
2622
2628
|
// TRICK 1: required covers all — key count check only
|
|
2623
|
-
if (!
|
|
2629
|
+
if (!earlyKeyCount) {
|
|
2624
2630
|
// Adaptive: for-in for <=15 keys, Object.keys for >15
|
|
2625
2631
|
inner = propCount <= 15
|
|
2626
2632
|
? `var _n=0;for(var _k in ${v})_n++;if(_n!==${propCount})return false`
|
|
@@ -4291,6 +4297,8 @@ function compileToJSCombined(schema, VALID_RESULT, schemaMap, userFormats) {
|
|
|
4291
4297
|
// If type check fails → push error, skip property checks (they'd crash).
|
|
4292
4298
|
function genCodeC(schema, v, pathExpr, lines, ctx, schemaPrefix) {
|
|
4293
4299
|
if (!schemaPrefix) schemaPrefix = '#'
|
|
4300
|
+
// Per-node, for the reason spelled out in genCode.
|
|
4301
|
+
let ppHandledPropertyNames = false
|
|
4294
4302
|
if (schema === false) {
|
|
4295
4303
|
// Leading semicolon: the previous generated line may end in an
|
|
4296
4304
|
// expression, and a line starting with `(` would be parsed as a call.
|
|
@@ -4692,7 +4700,7 @@ function genCodeC(schema, v, pathExpr, lines, ctx, schemaPrefix) {
|
|
|
4692
4700
|
const kVar = `_k${pi}`
|
|
4693
4701
|
|
|
4694
4702
|
if (schema.additionalProperties === false && schema.properties) {
|
|
4695
|
-
|
|
4703
|
+
ppHandledPropertyNames = !!pn
|
|
4696
4704
|
const propKeys = Object.keys(schema.properties)
|
|
4697
4705
|
// Inline key comparison for small property sets
|
|
4698
4706
|
const keyCheck = propKeys.length <= 8
|
|
@@ -4740,7 +4748,7 @@ function genCodeC(schema, v, pathExpr, lines, ctx, schemaPrefix) {
|
|
|
4740
4748
|
lines.push(`if(!_m${pi}){${fail('additionalProperties', 'additionalProperties', `{additionalProperty:${kVar}}`, "'must NOT have additional properties'")}}`)
|
|
4741
4749
|
lines.push(`}}`)
|
|
4742
4750
|
} else {
|
|
4743
|
-
|
|
4751
|
+
ppHandledPropertyNames = !!pn
|
|
4744
4752
|
lines.push(`${guard}{for(const ${kVar} in ${v}){`)
|
|
4745
4753
|
if (pn) {
|
|
4746
4754
|
if (pn.minLength !== undefined) lines.push(`if(${kVar}.length<${pn.minLength}){${fail('minLength', 'propertyNames/minLength', `{limit:${pn.minLength}}`, `'must NOT have fewer than ${pn.minLength} characters'`)}}`)
|
|
@@ -4789,7 +4797,7 @@ function genCodeC(schema, v, pathExpr, lines, ctx, schemaPrefix) {
|
|
|
4789
4797
|
}
|
|
4790
4798
|
|
|
4791
4799
|
// propertyNames — skip if already merged into patternProperties loop
|
|
4792
|
-
if (schema.propertyNames && typeof schema.propertyNames === 'object' && !
|
|
4800
|
+
if (schema.propertyNames && typeof schema.propertyNames === 'object' && !ppHandledPropertyNames) {
|
|
4793
4801
|
const pn = schema.propertyNames
|
|
4794
4802
|
const ki = ctx.varCounter++
|
|
4795
4803
|
lines.push(`if(typeof ${v}==='object'&&${v}!==null&&!Array.isArray(${v})){for(const _k${ki} in ${v}){`)
|
package/lib/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ata-validator",
|
|
3
|
-
"version": "1.30.
|
|
3
|
+
"version": "1.30.3",
|
|
4
4
|
"description": "JSON Schema validation that compiles for speed and still runs where code generation is blocked. Compiled and interpreted engines answer identically at 100% of the official suite. TypeScript inference, Standard Schema V1, and a build step that emits dependency-free modules.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"module": "index.mjs",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"release:check": "node scripts/regen-safe-regex-source.js && node tests/test_pack_purity.js && node scripts/check-doc-coverage.js && node tests/test_error_codes_lock.js && node tests/test_safe_regex_source_sync.js && node tests/test_version_sync.js",
|
|
52
52
|
"build": "cmake-js build --target ata",
|
|
53
53
|
"rebuild": "cmake-js rebuild --target ata",
|
|
54
|
-
"test": "node test.js && node tests/test_removed_aot_methods.js && node tests/test_no_native.js && node tests/test_no_eval.js && node tests/test_property_dependencies.js && node tests/test_v1_dialect.js && node tests/test_buffer_path_parity.js && node tests/test_buffer_gate.js && node tests/test_scanner_differential.js && node tests/test_validate_json_scanner_cost.js && node tests/test_buffer_reject_cost.js && node tests/test_nan_verdict.js && node tests/test_remove_additional_nested.js && node tests/test_exclusive_bounds.js && node tests/test_engine_differential.js && node tests/test_error_shape_differential.js && node tests/test_output_format.js && node tests/test_retry_message.js && node tests/test_describe_schema.js && node tests/test_aot_parse.js && node tests/test_draft7_semantics.js && node tests/test_metaschema_ref.js && node tests/test_pure_js_unsupported.js && node tests/test_native_load_order.js && node tests/test_pack_purity.js && node tests/test_make_native_package.js && node tests/test_browser_nofs.js && node tests/test_browser_imports_guard.js && node tests/test_version_sync.js && node tests/test_native_loaded.js && node tests/test_safe_regex_source_sync.js && node tests/test_t_builder.js && node tests/test_async_refine.js && node tests/test_safe_regex.js && node tests/test_safe_regex_integration.js && node tests/test_aot_build.js && node tests/test_aot_differential.js && node tests/test_aot_cli_build.js && node tests/test_aot_cli_smoke.js && node tests/test_bundle_standalone.js && node tests/test_standalone_anyof.js && node tests/test_standalone_formats.js && node tests/test_aot_format_mode.js && node tests/test_aot_additional_props_errors.js && node tests/test_id_anchor_refs.js && node tests/test_engine_routing.js && node tests/test_engine_option.js && node tests/test_compile_cache_order.js && node tests/test_engine_diagnostic.js && node tests/test_format_engine_parity.js && node tests/test_error_accumulator_collision.js && node tests/test_uri_helper_parity.js && node tests/test_formats_single_pass.js && node tests/test_email_format_cost.js && node tests/test_format_single_error.js && node tests/test_defs_pointer_alias.js && node tests/test_cross_doc_root_ref.js && node tests/test_codegen_entrypoint_agreement.js && node tests/test_hybrid_agreement.js && node tests/test_codegen_edge_shapes.js && node tests/test_deferred_def_scope.js && node tests/test_ajv_errors.js && node tests/test_custom_keywords.js && node tests/test_strict_schema.js && node tests/test_aot_external_checks.js && node tests/test_ajv_parity.js && node tests/test_user_format_error_path.js && node tests/test_unevaluated_error_path.js && node tests/test_unevaluated_error_shape.js && node tests/test_pattern_properties_errors.js && node tests/test_additional_properties_scaling.js && node tests/test_additional_props_combined_cost.js && node tests/test_no_input_mutation.js && node tests/test_typed_validator_runner.js && node tests/test_define_schema.js && node tests/test_error_codes_lock.js && node tests/test_error_code_lookup.js && node tests/test_error_order.js && node tests/test_error_order_ordinal.js && node tests/test_rejection_shape.js && node tests/test_lazy_normalization.js && node tests/test_value_equality.js && node tests/test_vocabulary.js && node tests/test_schema_scan.js && node tests/test_lazy_errors.js && node tests/test_single_pass_errors.js && node tests/test_lazy_json_errors.js && node tests/test_lazy_instance.js && node tests/test_cyclic_input.js && node tests/test_native_error_codes.js && node tests/test_verdict_preprocess.js && node tests/test_defaults_own_keys.js && node tests/test_plan_compiler.js && node tests/test_nullable.js && node tests/test_validate_and_parse.js && node tests/test_validate_data.js && node tests/test_enrich_error.js && node tests/test_enrich_received.js && node tests/test_rich_errors_optout.js && node tests/test_error_messages.js && node tests/test_source_positions.js && node tests/fuzz_positions.js && node tests/test_malformed_json_termination.js && node tests/test_data_positions.js && node tests/test_targeted_positions.js && node tests/test_position_map_cost.js && node tests/test_targeted_positions_cost.js && node tests/test_aot_staleness.js && node tests/test_file_positions.js && node tests/test_aot_positions_cost.js && node tests/test_schema_hash.js && node tests/test_render_shared.js && node tests/test_renderers.js && node tests/test_additive_fields.js && node tests/test_diagnostic_source.js && node tests/test_diagnose.js && node tests/test_correlate.js && node tests/test_diagnostics_score.js && node tests/test_runtime_error_dx.js && node tests/test_aot_error_dx.js && node tests/test_abort_early.js && node tests/test_branch_collapse.js && node tests/test_suggestions.js && node tests/test_cli_validate.js && node tests/test_cli_version.js && node benchmark/bench_aot_size.mjs",
|
|
54
|
+
"test": "node test.js && node tests/test_removed_aot_methods.js && node tests/test_no_native.js && node tests/test_no_eval.js && node tests/test_property_dependencies.js && node tests/test_v1_dialect.js && node tests/test_buffer_path_parity.js && node tests/test_buffer_gate.js && node tests/test_scanner_differential.js && node tests/test_validate_json_scanner_cost.js && node tests/test_buffer_reject_cost.js && node tests/test_nan_verdict.js && node tests/test_remove_additional_nested.js && node tests/test_exclusive_bounds.js && node tests/test_engine_differential.js && node tests/test_error_shape_differential.js && node tests/test_output_format.js && node tests/test_retry_message.js && node tests/test_describe_schema.js && node tests/test_aot_parse.js && node tests/test_draft7_semantics.js && node tests/test_metaschema_ref.js && node tests/test_pure_js_unsupported.js && node tests/test_native_load_order.js && node tests/test_pack_purity.js && node tests/test_make_native_package.js && node tests/test_browser_nofs.js && node tests/test_browser_imports_guard.js && node tests/test_version_sync.js && node tests/test_native_loaded.js && node tests/test_safe_regex_source_sync.js && node tests/test_t_builder.js && node tests/test_async_refine.js && node tests/test_safe_regex.js && node tests/test_safe_regex_integration.js && node tests/test_aot_build.js && node tests/test_aot_differential.js && node tests/test_aot_cli_build.js && node tests/test_aot_cli_smoke.js && node tests/test_bundle_standalone.js && node tests/test_standalone_anyof.js && node tests/test_standalone_formats.js && node tests/test_aot_format_mode.js && node tests/test_aot_additional_props_errors.js && node tests/test_id_anchor_refs.js && node tests/test_engine_routing.js && node tests/test_engine_option.js && node tests/test_compile_cache_order.js && node tests/test_engine_diagnostic.js && node tests/test_format_engine_parity.js && node tests/test_error_accumulator_collision.js && node tests/test_uri_helper_parity.js && node tests/test_formats_single_pass.js && node tests/test_email_format_cost.js && node tests/test_format_single_error.js && node tests/test_defs_pointer_alias.js && node tests/test_cross_doc_root_ref.js && node tests/test_codegen_entrypoint_agreement.js && node tests/test_hybrid_agreement.js && node tests/test_codegen_edge_shapes.js && node tests/test_deferred_def_scope.js && node tests/test_node_scoped_ctx_flags.js && node tests/test_fast_slot_exhaustion.js && node tests/test_ajv_errors.js && node tests/test_custom_keywords.js && node tests/test_strict_schema.js && node tests/test_aot_external_checks.js && node tests/test_ajv_parity.js && node tests/test_user_format_error_path.js && node tests/test_unevaluated_error_path.js && node tests/test_unevaluated_error_shape.js && node tests/test_pattern_properties_errors.js && node tests/test_additional_properties_scaling.js && node tests/test_additional_props_combined_cost.js && node tests/test_no_input_mutation.js && node tests/test_typed_validator_runner.js && node tests/test_define_schema.js && node tests/test_error_codes_lock.js && node tests/test_error_code_lookup.js && node tests/test_error_order.js && node tests/test_error_order_ordinal.js && node tests/test_rejection_shape.js && node tests/test_lazy_normalization.js && node tests/test_value_equality.js && node tests/test_vocabulary.js && node tests/test_schema_scan.js && node tests/test_lazy_errors.js && node tests/test_single_pass_errors.js && node tests/test_lazy_json_errors.js && node tests/test_lazy_instance.js && node tests/test_cyclic_input.js && node tests/test_native_error_codes.js && node tests/test_verdict_preprocess.js && node tests/test_defaults_own_keys.js && node tests/test_plan_compiler.js && node tests/test_nullable.js && node tests/test_validate_and_parse.js && node tests/test_validate_data.js && node tests/test_enrich_error.js && node tests/test_enrich_received.js && node tests/test_rich_errors_optout.js && node tests/test_error_messages.js && node tests/test_source_positions.js && node tests/fuzz_positions.js && node tests/test_malformed_json_termination.js && node tests/test_data_positions.js && node tests/test_targeted_positions.js && node tests/test_position_map_cost.js && node tests/test_targeted_positions_cost.js && node tests/test_aot_staleness.js && node tests/test_file_positions.js && node tests/test_aot_positions_cost.js && node tests/test_schema_hash.js && node tests/test_render_shared.js && node tests/test_renderers.js && node tests/test_additive_fields.js && node tests/test_diagnostic_source.js && node tests/test_diagnose.js && node tests/test_correlate.js && node tests/test_diagnostics_score.js && node tests/test_runtime_error_dx.js && node tests/test_aot_error_dx.js && node tests/test_abort_early.js && node tests/test_branch_collapse.js && node tests/test_suggestions.js && node tests/test_cli_validate.js && node tests/test_cli_version.js && node benchmark/bench_aot_size.mjs",
|
|
55
55
|
"bench:size": "node benchmark/bench_aot_size.mjs",
|
|
56
56
|
"test:suite": "node tests/run_suite.js && node tests/run_suite.js draft7 && node tests/run_suite.js v1",
|
|
57
57
|
"test:compat": "node tests/test_compat.js",
|
|
@@ -121,13 +121,13 @@
|
|
|
121
121
|
"LICENSE"
|
|
122
122
|
],
|
|
123
123
|
"optionalDependencies": {
|
|
124
|
-
"@ata-validator/native-darwin-arm64": "1.30.
|
|
125
|
-
"@ata-validator/native-darwin-x64": "1.30.
|
|
126
|
-
"@ata-validator/native-linux-arm64-gnu": "1.30.
|
|
127
|
-
"@ata-validator/native-linux-arm64-musl": "1.30.
|
|
128
|
-
"@ata-validator/native-linux-x64-gnu": "1.30.
|
|
129
|
-
"@ata-validator/native-linux-x64-musl": "1.30.
|
|
130
|
-
"@ata-validator/native-win32-x64": "1.30.
|
|
124
|
+
"@ata-validator/native-darwin-arm64": "1.30.3",
|
|
125
|
+
"@ata-validator/native-darwin-x64": "1.30.3",
|
|
126
|
+
"@ata-validator/native-linux-arm64-gnu": "1.30.3",
|
|
127
|
+
"@ata-validator/native-linux-arm64-musl": "1.30.3",
|
|
128
|
+
"@ata-validator/native-linux-x64-gnu": "1.30.3",
|
|
129
|
+
"@ata-validator/native-linux-x64-musl": "1.30.3",
|
|
130
|
+
"@ata-validator/native-win32-x64": "1.30.3"
|
|
131
131
|
},
|
|
132
132
|
"peerDependencies": {
|
|
133
133
|
"yaml": "^2.0.0"
|