@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
+ ]
@@ -228,6 +228,10 @@
228
228
  "path": "fuzz-seeds-v1/value-sources.json",
229
229
  "family": "tagged-values-v1"
230
230
  },
231
+ {
232
+ "path": "fuzz-seeds-v1/identifiers.json",
233
+ "family": "identifiers-v1"
234
+ },
231
235
  {
232
236
  "path": "fuzz-seeds-v1/structured-values.json"
233
237
  },
@@ -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
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hypequery/protocol-conformance",
3
- "version": "0.10.0",
3
+ "version": "0.10.2",
4
4
  "description": "Cross-language conformance runner for the Hypequery analytics security protocol",
5
5
  "keywords": [
6
6
  "hypequery",