@hypequery/protocol-conformance 0.10.0 → 0.10.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.
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
These adversarial inputs replay on every conformance run under RFC 0012. An implementation may accept a seed within documented limits or reject it with a stable `HQ_*` code; it must never crash, hang, partially execute input, or allocate without bounds.
|
|
4
4
|
|
|
5
5
|
- `value-sources.json` targets duplicate-aware JSON decoding and tagged values.
|
|
6
|
+
- `identifiers.json` targets Unicode ambiguity, reserved names, separators,
|
|
7
|
+
validation limits, and non-string identifier inputs.
|
|
6
8
|
- `structured-values.json` targets selected structural validator families.
|
|
7
9
|
- `sql-expressions.json` targets the SQL portability compiler.
|
|
8
10
|
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
[
|
|
2
|
+
{ "id": "identifier-null", "mode": "simple", "value": null },
|
|
3
|
+
{ "id": "identifier-control-character", "mode": "simple", "value": "order\u0000id" },
|
|
4
|
+
{ "id": "identifier-sql-shaped", "mode": "simple", "value": "orders;DROP_TABLE_users" },
|
|
5
|
+
{ "id": "identifier-cyrillic-confusable", "mode": "simple", "value": "аdmin" },
|
|
6
|
+
{ "id": "identifier-combining-mark", "mode": "simple", "value": "café" },
|
|
7
|
+
{ "id": "identifier-fullwidth-dot", "mode": "qualified", "value": "orders.customer" },
|
|
8
|
+
{ "id": "identifier-lone-high-surrogate", "mode": "simple", "value": "\ud800" },
|
|
9
|
+
{ "id": "identifier-lone-low-surrogate", "mode": "simple", "value": "\udc00" },
|
|
10
|
+
{ "id": "identifier-surrogate-pair", "mode": "simple", "value": "\ud83d\ude00" },
|
|
11
|
+
{ "id": "identifier-reserved-mixed-case", "mode": "simple", "value": "__HyPeQuErY_admin" },
|
|
12
|
+
{ "id": "identifier-qualified-leading-dot", "mode": "qualified", "value": ".orders" },
|
|
13
|
+
{ "id": "identifier-qualified-trailing-dot", "mode": "qualified", "value": "orders." },
|
|
14
|
+
{ "id": "identifier-qualified-repeated-dot", "mode": "qualified", "value": "orders..customer" },
|
|
15
|
+
{ "id": "identifier-long-segment", "mode": "simple", "generator": { "type": "repeat-string", "value": "a", "count": 10000 } },
|
|
16
|
+
{ "id": "identifier-many-segments", "mode": "qualified", "generator": { "type": "qualified-segments", "segment": "a", "count": 1000 } }
|
|
17
|
+
]
|
package/fixtures/manifest.json
CHANGED
|
@@ -14,6 +14,10 @@ Each entry in `success.json` contains:
|
|
|
14
14
|
|
|
15
15
|
The hash is a fixture integrity check, not a deployment digest or cache key.
|
|
16
16
|
|
|
17
|
+
The success corpus includes every finite, non-negative-zero number from RFC
|
|
18
|
+
8785 Appendix B. RFC 0001 is intentionally stricter than JCS for negative zero,
|
|
19
|
+
NaN, and infinities, so those Appendix B cases live in the rejection corpus.
|
|
20
|
+
|
|
17
21
|
## Rejection manifest
|
|
18
22
|
|
|
19
23
|
Entries in `rejections.json` use one of:
|
|
@@ -385,5 +385,119 @@
|
|
|
385
385
|
},
|
|
386
386
|
"canonicalHex": "7b2224687970657175657279223a7b22636c69636b686f75736554797065223a224461746554696d65222c22707265636973696f6e223a302c2274696d657a6f6e65223a22455354222c2274797065223a226461746574696d65222c2276616c7565223a22323032362d30372d31335431343a33303a34355a222c2276657273696f6e223a317d7d",
|
|
387
387
|
"sha256": "6bee1aad475dfbf35566bf71dc664b6f0c7a4c9dcc4ba0b5a76e9069be2cce6e"
|
|
388
|
+
},
|
|
389
|
+
{
|
|
390
|
+
"id": "rfc8785-positive-zero",
|
|
391
|
+
"value": 0,
|
|
392
|
+
"canonicalHex": "30",
|
|
393
|
+
"sha256": "5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9"
|
|
394
|
+
},
|
|
395
|
+
{
|
|
396
|
+
"id": "rfc8785-min-negative",
|
|
397
|
+
"value": -5e-324,
|
|
398
|
+
"canonicalHex": "2d35652d333234",
|
|
399
|
+
"sha256": "046f4049d09944fcb2efbf2ddb0ea8f05e0204591d6d02c9106efc88190fa7f9"
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
"id": "rfc8785-max-negative",
|
|
403
|
+
"value": -1.7976931348623157e+308,
|
|
404
|
+
"canonicalHex": "2d312e37393736393331333438363233313537652b333038",
|
|
405
|
+
"sha256": "f0347276b171ff0c36491c912285a2833de7313d1a103a4b1be0274bfe7c021f"
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
"id": "rfc8785-max-positive-integer",
|
|
409
|
+
"value": 9007199254740992,
|
|
410
|
+
"canonicalHex": "39303037313939323534373430393932",
|
|
411
|
+
"sha256": "c681da39d7273a6a24c15c9cac3a75526ff2ecf8ba4ee60346a0c70c8163bdb2"
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
"id": "rfc8785-max-negative-integer",
|
|
415
|
+
"value": -9007199254740992,
|
|
416
|
+
"canonicalHex": "2d39303037313939323534373430393932",
|
|
417
|
+
"sha256": "83e109bfd7fb4984b47a46f363627c18dbbd7e57e36b05a04cd162d304df72e9"
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
"id": "rfc8785-two-to-68",
|
|
421
|
+
"value": 295147905179352830000,
|
|
422
|
+
"canonicalHex": "323935313437393035313739333532383330303030",
|
|
423
|
+
"sha256": "7933ef1b34c194c7a327ef424e54282dd2872bc7bda27812f9edf7882ca340c0"
|
|
424
|
+
},
|
|
425
|
+
{
|
|
426
|
+
"id": "rfc8785-just-below-1e23",
|
|
427
|
+
"value": 9.999999999999997e+22,
|
|
428
|
+
"canonicalHex": "392e393939393939393939393939393937652b3232",
|
|
429
|
+
"sha256": "143eadc1fc2fe10a563df313c717399d1835652d710fa189119ff2e1d5cde33d"
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
"id": "rfc8785-1e23",
|
|
433
|
+
"value": 1e+23,
|
|
434
|
+
"canonicalHex": "31652b3233",
|
|
435
|
+
"sha256": "0b1af6b73e932475817f8eb620deecf21ad7570df3400a23db5c79a9001597f7"
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
"id": "rfc8785-just-above-1e23",
|
|
439
|
+
"value": 1.0000000000000001e+23,
|
|
440
|
+
"canonicalHex": "312e30303030303030303030303030303031652b3233",
|
|
441
|
+
"sha256": "de7cb5db5ee06bf7ef5b74ebcf94cd9d7efda28125905f7ff590724953173c7b"
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
"id": "rfc8785-below-1e21-a",
|
|
445
|
+
"value": 999999999999999700000,
|
|
446
|
+
"canonicalHex": "393939393939393939393939393939373030303030",
|
|
447
|
+
"sha256": "dcabf7269f6bb6ec5ba8b9530825cd7ffe215d4dd26e0a237f9d753513792c07"
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
"id": "rfc8785-below-1e21-b",
|
|
451
|
+
"value": 999999999999999900000,
|
|
452
|
+
"canonicalHex": "393939393939393939393939393939393030303030",
|
|
453
|
+
"sha256": "914b4f8b4bbe2f6e7c36ad7791fc842a7516d149e694b3a71b78cee465ff6d7a"
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
"id": "rfc8785-below-1e-6",
|
|
457
|
+
"value": 9.999999999999997e-7,
|
|
458
|
+
"canonicalHex": "392e393939393939393939393939393937652d37",
|
|
459
|
+
"sha256": "2ace34b29d30d300aeacd4f2bb83367fa186f11a3f02ed461f35f00fd741a242"
|
|
460
|
+
},
|
|
461
|
+
{
|
|
462
|
+
"id": "rfc8785-thirds-a",
|
|
463
|
+
"value": 333333333.3333332,
|
|
464
|
+
"canonicalHex": "3333333333333333332e33333333333332",
|
|
465
|
+
"sha256": "0fdb7bafaf219ccaf278cd0c0a580473db01c774a0baafe72a07d01230ac5c6d"
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
"id": "rfc8785-thirds-b",
|
|
469
|
+
"value": 333333333.33333325,
|
|
470
|
+
"canonicalHex": "3333333333333333332e3333333333333235",
|
|
471
|
+
"sha256": "bcbe1777b7d3c91c19c7f90100c595a9b3f1d9b395567da4258baf7ac655d403"
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
"id": "rfc8785-thirds-c",
|
|
475
|
+
"value": 333333333.3333333,
|
|
476
|
+
"canonicalHex": "3333333333333333332e33333333333333",
|
|
477
|
+
"sha256": "6bd9be1c141028789cc35db62f1b43e80d5d4ee24d6d542e775deb16799ff4c7"
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
"id": "rfc8785-thirds-d",
|
|
481
|
+
"value": 333333333.3333334,
|
|
482
|
+
"canonicalHex": "3333333333333333332e33333333333334",
|
|
483
|
+
"sha256": "1e099031ca0cb3cf4054688f7e2e8c95fc72828de5fa7605ce3f729e6cf79d43"
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
"id": "rfc8785-thirds-e",
|
|
487
|
+
"value": 333333333.33333343,
|
|
488
|
+
"canonicalHex": "3333333333333333332e3333333333333433",
|
|
489
|
+
"sha256": "cf68ab5e198a77538aafd967fb122a305ba1df95c9348b1fe3dff453c7f7215f"
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
"id": "rfc8785-negative-small",
|
|
493
|
+
"value": -0.0000033333333333333333,
|
|
494
|
+
"canonicalHex": "2d302e30303030303333333333333333333333333333333333",
|
|
495
|
+
"sha256": "4e703d4e0928e4f339d03e1fb5454ddc33db657ad735b02530d98123b4fd4b61"
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
"id": "rfc8785-round-to-even",
|
|
499
|
+
"value": 1424953923781206.2,
|
|
500
|
+
"canonicalHex": "313432343935333932333738313230362e32",
|
|
501
|
+
"sha256": "e1547479d27f057e3197d49417a1dcbe19dd8781b34fa9f83b789925943d00cb"
|
|
388
502
|
}
|
|
389
503
|
]
|