@hypequery/protocol-conformance 0.9.2 → 0.10.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/dist/adapters/generators.d.ts.map +1 -1
- package/dist/adapters/generators.js +14 -0
- package/dist/adapters/reference.d.ts +10 -1
- package/dist/adapters/reference.d.ts.map +1 -1
- package/dist/adapters/reference.js +52 -1
- package/dist/adapters/stdio.d.ts +3 -1
- package/dist/adapters/stdio.d.ts.map +1 -1
- package/dist/adapters/stdio.js +3 -0
- package/dist/bin/reference-adapter.js +2 -1
- package/dist/compare.js +10 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/report.d.ts.map +1 -1
- package/dist/report.js +4 -0
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +74 -8
- package/dist/types.d.ts +14 -0
- package/dist/types.d.ts.map +1 -1
- package/fixtures/cache-keys-v1/README.md +59 -0
- package/fixtures/cache-keys-v1/rejections.json +172 -0
- package/fixtures/cache-keys-v1/success.json +134 -0
- package/fixtures/identifiers-v1/rejections.json +38 -0
- package/fixtures/identifiers-v1/success.json +18 -0
- package/fixtures/manifest.json +161 -39
- package/fixtures/tagged-values-v1/README.md +56 -5
- package/fixtures/tagged-values-v1/rejections.json +89 -0
- package/fixtures/tagged-values-v1/success.json +241 -0
- package/package.json +2 -2
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "basic",
|
|
4
|
+
"secretHex": "1111111111111111111111111111111111111111111111111111111111111111",
|
|
5
|
+
"namespace": {
|
|
6
|
+
"project": "acme",
|
|
7
|
+
"environment": "production"
|
|
8
|
+
},
|
|
9
|
+
"keyVersion": 1,
|
|
10
|
+
"preimageUtf8": "{\"kind\":\"dataset\",\"target\":\"orders\",\"v\":1}",
|
|
11
|
+
"namespaceToken": "QZmJzTyhPUpRooLespx4XQ",
|
|
12
|
+
"key": "hq1.1.QZmJzTyhPUpRooLespx4XQ.uDrSq4MwQ-yttsrzdpCHbiGutMxHn2LM8sf2T0boN3k"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "namespace-separates-environment",
|
|
16
|
+
"secretHex": "1111111111111111111111111111111111111111111111111111111111111111",
|
|
17
|
+
"namespace": {
|
|
18
|
+
"project": "acme",
|
|
19
|
+
"environment": "staging"
|
|
20
|
+
},
|
|
21
|
+
"keyVersion": 1,
|
|
22
|
+
"preimageUtf8": "{\"kind\":\"dataset\",\"target\":\"orders\",\"v\":1}",
|
|
23
|
+
"namespaceToken": "Ze61MnuVhdrTfAaVhRQAlw",
|
|
24
|
+
"key": "hq1.1.Ze61MnuVhdrTfAaVhRQAlw.yOeRV5mUwtkZ2ElBExrNWtjpiO2VC7Ite2vLVtyua7U"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "namespace-separates-project",
|
|
28
|
+
"secretHex": "1111111111111111111111111111111111111111111111111111111111111111",
|
|
29
|
+
"namespace": {
|
|
30
|
+
"project": "globex",
|
|
31
|
+
"environment": "production"
|
|
32
|
+
},
|
|
33
|
+
"keyVersion": 1,
|
|
34
|
+
"preimageUtf8": "{\"kind\":\"dataset\",\"target\":\"orders\",\"v\":1}",
|
|
35
|
+
"namespaceToken": "VOSW_B4ow0Tv5VwAzLza9Q",
|
|
36
|
+
"key": "hq1.1.VOSW_B4ow0Tv5VwAzLza9Q.m3d9igKuFNjuJKT1K15y4H5VqnkqZ3YiYIrtZbeOhqI"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "rotation-changes-key",
|
|
40
|
+
"secretHex": "1111111111111111111111111111111111111111111111111111111111111111",
|
|
41
|
+
"namespace": {
|
|
42
|
+
"project": "acme",
|
|
43
|
+
"environment": "production"
|
|
44
|
+
},
|
|
45
|
+
"keyVersion": 2,
|
|
46
|
+
"preimageUtf8": "{\"kind\":\"dataset\",\"target\":\"orders\",\"v\":1}",
|
|
47
|
+
"namespaceToken": "QZmJzTyhPUpRooLespx4XQ",
|
|
48
|
+
"key": "hq1.2.QZmJzTyhPUpRooLespx4XQ.uDrSq4MwQ-yttsrzdpCHbiGutMxHn2LM8sf2T0boN3k"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"id": "secret-separates-key",
|
|
52
|
+
"secretHex": "2222222222222222222222222222222222222222222222222222222222222222",
|
|
53
|
+
"namespace": {
|
|
54
|
+
"project": "acme",
|
|
55
|
+
"environment": "production"
|
|
56
|
+
},
|
|
57
|
+
"keyVersion": 1,
|
|
58
|
+
"preimageUtf8": "{\"kind\":\"dataset\",\"target\":\"orders\",\"v\":1}",
|
|
59
|
+
"namespaceToken": "IOwBfU4fGoFMYm-dzKMTxw",
|
|
60
|
+
"key": "hq1.1.IOwBfU4fGoFMYm-dzKMTxw.0bhDqv_vgmO_y7t6gSX64uIh4uWj8iZX5Z5HIthWTZc"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"id": "long-secret",
|
|
64
|
+
"secretHex": "33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333",
|
|
65
|
+
"namespace": {
|
|
66
|
+
"project": "acme",
|
|
67
|
+
"environment": "production"
|
|
68
|
+
},
|
|
69
|
+
"keyVersion": 1,
|
|
70
|
+
"preimageUtf8": "{\"kind\":\"dataset\",\"target\":\"orders\",\"v\":1}",
|
|
71
|
+
"namespaceToken": "ZIWp472wGrPSAa8KgOAQAg",
|
|
72
|
+
"key": "hq1.1.ZIWp472wGrPSAa8KgOAQAg.k3DrKZocGPEgjdpv4_Y7AYzDbFZGe-mZUxPyEakGHWM"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"id": "empty-preimage",
|
|
76
|
+
"secretHex": "1111111111111111111111111111111111111111111111111111111111111111",
|
|
77
|
+
"namespace": {
|
|
78
|
+
"project": "acme",
|
|
79
|
+
"environment": "production"
|
|
80
|
+
},
|
|
81
|
+
"keyVersion": 1,
|
|
82
|
+
"preimageUtf8": "",
|
|
83
|
+
"namespaceToken": "QZmJzTyhPUpRooLespx4XQ",
|
|
84
|
+
"key": "hq1.1.QZmJzTyhPUpRooLespx4XQ.JyTBb3tVj3hk39GNDkQdfzzacOFM7Mi28KI2JFF3x0U"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"id": "sensitive-preimage-not-recoverable",
|
|
88
|
+
"secretHex": "1111111111111111111111111111111111111111111111111111111111111111",
|
|
89
|
+
"namespace": {
|
|
90
|
+
"project": "acme",
|
|
91
|
+
"environment": "production"
|
|
92
|
+
},
|
|
93
|
+
"keyVersion": 1,
|
|
94
|
+
"preimageUtf8": "{\"filters\":[{\"field\":\"email\",\"operator\":\"eq\",\"value\":\"ana@example.com\"}],\"tenant\":{\"value\":\"acme_corp\"}}",
|
|
95
|
+
"namespaceToken": "QZmJzTyhPUpRooLespx4XQ",
|
|
96
|
+
"key": "hq1.1.QZmJzTyhPUpRooLespx4XQ.GYbj4VYnkB6WuxsF1qI0k1PmLQiyiE1harFHqlUvREk"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"id": "max-key-version",
|
|
100
|
+
"secretHex": "1111111111111111111111111111111111111111111111111111111111111111",
|
|
101
|
+
"namespace": {
|
|
102
|
+
"project": "acme",
|
|
103
|
+
"environment": "production"
|
|
104
|
+
},
|
|
105
|
+
"keyVersion": 2147483647,
|
|
106
|
+
"preimageUtf8": "{\"kind\":\"dataset\",\"target\":\"orders\",\"v\":1}",
|
|
107
|
+
"namespaceToken": "QZmJzTyhPUpRooLespx4XQ",
|
|
108
|
+
"key": "hq1.2147483647.QZmJzTyhPUpRooLespx4XQ.uDrSq4MwQ-yttsrzdpCHbiGutMxHn2LM8sf2T0boN3k"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"id": "deployment-target-punctuation",
|
|
112
|
+
"secretHex": "1111111111111111111111111111111111111111111111111111111111111111",
|
|
113
|
+
"namespace": {
|
|
114
|
+
"project": "project-1",
|
|
115
|
+
"environment": "preview.eu:1"
|
|
116
|
+
},
|
|
117
|
+
"keyVersion": 1,
|
|
118
|
+
"preimageUtf8": "{\"kind\":\"dataset\",\"target\":\"orders\",\"v\":1}",
|
|
119
|
+
"namespaceToken": "5K9R0USPhZZ80IwqwSQTpA",
|
|
120
|
+
"key": "hq1.1.5K9R0USPhZZ80IwqwSQTpA.IoVojW5ZVqSAIc1xOKExteLniKobmndoGRIQ1SulVu4"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"id": "deployment-target-leading-digit",
|
|
124
|
+
"secretHex": "1111111111111111111111111111111111111111111111111111111111111111",
|
|
125
|
+
"namespace": {
|
|
126
|
+
"project": "1acme",
|
|
127
|
+
"environment": "production"
|
|
128
|
+
},
|
|
129
|
+
"keyVersion": 1,
|
|
130
|
+
"preimageUtf8": "{\"kind\":\"dataset\",\"target\":\"orders\",\"v\":1}",
|
|
131
|
+
"namespaceToken": "nCVELIgkASbf5L3bU9HY1Q",
|
|
132
|
+
"key": "hq1.1.nCVELIgkASbf5L3bU9HY1Q.0QiWBc1mnpiVmKm8nvYnTXoppJ7SEHtJNQgW-70eDMo"
|
|
133
|
+
}
|
|
134
|
+
]
|
|
@@ -54,5 +54,43 @@
|
|
|
54
54
|
"count": 9
|
|
55
55
|
},
|
|
56
56
|
"error": "HQ_IDENTIFIER_TOO_MANY_SEGMENTS"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"id": "qualified-bytes-513",
|
|
60
|
+
"mode": "qualified",
|
|
61
|
+
"value": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
62
|
+
"error": "HQ_IDENTIFIER_TOO_LONG"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"id": "reserved-non-first-segment",
|
|
66
|
+
"mode": "qualified",
|
|
67
|
+
"value": "orders.__hypequery_internal",
|
|
68
|
+
"error": "HQ_IDENTIFIER_RESERVED"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"id": "precedence-length-before-reserved",
|
|
72
|
+
"mode": "simple",
|
|
73
|
+
"generator": {
|
|
74
|
+
"type": "repeat-string",
|
|
75
|
+
"value": "__hypequery",
|
|
76
|
+
"count": 12
|
|
77
|
+
},
|
|
78
|
+
"error": "HQ_IDENTIFIER_TOO_LONG"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"id": "precedence-length-before-format",
|
|
82
|
+
"mode": "simple",
|
|
83
|
+
"generator": {
|
|
84
|
+
"type": "repeat-string",
|
|
85
|
+
"value": "-",
|
|
86
|
+
"count": 129
|
|
87
|
+
},
|
|
88
|
+
"error": "HQ_IDENTIFIER_TOO_LONG"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"id": "precedence-format-before-reserved",
|
|
92
|
+
"mode": "simple",
|
|
93
|
+
"value": "__hypequery-internal",
|
|
94
|
+
"error": "HQ_IDENTIFIER_INVALID_FORMAT"
|
|
57
95
|
}
|
|
58
96
|
]
|
|
@@ -22,5 +22,23 @@
|
|
|
22
22
|
"mode": "qualified",
|
|
23
23
|
"value": "orders.customer.country",
|
|
24
24
|
"segments": ["orders", "customer", "country"]
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "segment-bytes-128",
|
|
28
|
+
"mode": "simple",
|
|
29
|
+
"value": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
30
|
+
"segments": ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "qualified-segments-8",
|
|
34
|
+
"mode": "qualified",
|
|
35
|
+
"value": "s0.s1.s2.s3.s4.s5.s6.s7",
|
|
36
|
+
"segments": ["s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7"]
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "qualified-bytes-512",
|
|
40
|
+
"mode": "qualified",
|
|
41
|
+
"value": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
42
|
+
"segments": ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]
|
|
25
43
|
}
|
|
26
44
|
]
|
package/fixtures/manifest.json
CHANGED
|
@@ -5,113 +5,235 @@
|
|
|
5
5
|
{
|
|
6
6
|
"name": "tagged-values-v1",
|
|
7
7
|
"rfc": "0001",
|
|
8
|
-
"codePrefixes": [
|
|
8
|
+
"codePrefixes": [
|
|
9
|
+
"HQ_VALUE_"
|
|
10
|
+
],
|
|
9
11
|
"files": [
|
|
10
|
-
{
|
|
11
|
-
|
|
12
|
+
{
|
|
13
|
+
"path": "tagged-values-v1/success.json",
|
|
14
|
+
"role": "success"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"path": "tagged-values-v1/rejections.json",
|
|
18
|
+
"role": "rejection"
|
|
19
|
+
}
|
|
12
20
|
]
|
|
13
21
|
},
|
|
14
22
|
{
|
|
15
23
|
"name": "identifiers-v1",
|
|
16
24
|
"rfc": "0002",
|
|
17
|
-
"codePrefixes": [
|
|
25
|
+
"codePrefixes": [
|
|
26
|
+
"HQ_IDENTIFIER_"
|
|
27
|
+
],
|
|
18
28
|
"files": [
|
|
19
|
-
{
|
|
20
|
-
|
|
29
|
+
{
|
|
30
|
+
"path": "identifiers-v1/success.json",
|
|
31
|
+
"role": "success"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"path": "identifiers-v1/rejections.json",
|
|
35
|
+
"role": "rejection"
|
|
36
|
+
}
|
|
21
37
|
]
|
|
22
38
|
},
|
|
23
39
|
{
|
|
24
40
|
"name": "expressions-v1",
|
|
25
41
|
"rfc": "0003",
|
|
26
|
-
"codePrefixes": [
|
|
42
|
+
"codePrefixes": [
|
|
43
|
+
"HQ_EXPRESSION_"
|
|
44
|
+
],
|
|
27
45
|
"files": [
|
|
28
46
|
{
|
|
29
47
|
"path": "expressions-v1/success.json",
|
|
30
48
|
"role": "success",
|
|
31
|
-
"sections": [
|
|
49
|
+
"sections": [
|
|
50
|
+
"/expressions",
|
|
51
|
+
"/queries"
|
|
52
|
+
]
|
|
32
53
|
},
|
|
33
|
-
{
|
|
54
|
+
{
|
|
55
|
+
"path": "expressions-v1/rejections.json",
|
|
56
|
+
"role": "rejection"
|
|
57
|
+
}
|
|
34
58
|
]
|
|
35
59
|
},
|
|
36
60
|
{
|
|
37
61
|
"name": "query-schemas-v1",
|
|
38
62
|
"rfc": "0004",
|
|
39
|
-
"codePrefixes": [
|
|
63
|
+
"codePrefixes": [
|
|
64
|
+
"HQ_SCHEMA_"
|
|
65
|
+
],
|
|
40
66
|
"files": [
|
|
41
|
-
{
|
|
42
|
-
|
|
67
|
+
{
|
|
68
|
+
"path": "query-schemas-v1/success.json",
|
|
69
|
+
"role": "success"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"path": "query-schemas-v1/rejections.json",
|
|
73
|
+
"role": "rejection"
|
|
74
|
+
}
|
|
43
75
|
]
|
|
44
76
|
},
|
|
45
77
|
{
|
|
46
78
|
"name": "query-implementations-v1",
|
|
47
79
|
"rfc": "0005",
|
|
48
|
-
"codePrefixes": [
|
|
80
|
+
"codePrefixes": [
|
|
81
|
+
"HQ_QUERY_IMPLEMENTATION_"
|
|
82
|
+
],
|
|
49
83
|
"files": [
|
|
50
|
-
{
|
|
51
|
-
|
|
84
|
+
{
|
|
85
|
+
"path": "query-implementations-v1/success.json",
|
|
86
|
+
"role": "success"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"path": "query-implementations-v1/rejections.json",
|
|
90
|
+
"role": "rejection"
|
|
91
|
+
}
|
|
52
92
|
]
|
|
53
93
|
},
|
|
54
94
|
{
|
|
55
95
|
"name": "deployments-v1",
|
|
56
96
|
"rfc": "0006",
|
|
57
|
-
"codePrefixes": [
|
|
97
|
+
"codePrefixes": [
|
|
98
|
+
"HQ_DEPLOYMENT_"
|
|
99
|
+
],
|
|
58
100
|
"files": [
|
|
59
|
-
{
|
|
60
|
-
|
|
61
|
-
|
|
101
|
+
{
|
|
102
|
+
"path": "deployments-v1/success.json",
|
|
103
|
+
"role": "success"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"path": "deployments-v1/rejections.json",
|
|
107
|
+
"role": "rejection"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"path": "deployments-v1/identity.json",
|
|
111
|
+
"role": "identity"
|
|
112
|
+
}
|
|
62
113
|
]
|
|
63
114
|
},
|
|
64
115
|
{
|
|
65
116
|
"name": "deployment-bundles-v1",
|
|
66
117
|
"rfc": "0007",
|
|
67
|
-
"codePrefixes": [
|
|
118
|
+
"codePrefixes": [
|
|
119
|
+
"HQ_BUNDLE_"
|
|
120
|
+
],
|
|
68
121
|
"files": [
|
|
69
|
-
{
|
|
70
|
-
|
|
71
|
-
|
|
122
|
+
{
|
|
123
|
+
"path": "deployment-bundles-v1/success.json",
|
|
124
|
+
"role": "success"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"path": "deployment-bundles-v1/rejections.json",
|
|
128
|
+
"role": "rejection"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"path": "deployment-bundles-v1/identity.json",
|
|
132
|
+
"role": "identity"
|
|
133
|
+
}
|
|
72
134
|
]
|
|
73
135
|
},
|
|
74
136
|
{
|
|
75
137
|
"name": "deployment-releases-v1",
|
|
76
138
|
"rfc": "0008",
|
|
77
|
-
"codePrefixes": [
|
|
139
|
+
"codePrefixes": [
|
|
140
|
+
"HQ_RELEASE_"
|
|
141
|
+
],
|
|
78
142
|
"files": [
|
|
79
|
-
{
|
|
80
|
-
|
|
81
|
-
|
|
143
|
+
{
|
|
144
|
+
"path": "deployment-releases-v1/success.json",
|
|
145
|
+
"role": "success"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"path": "deployment-releases-v1/rejections.json",
|
|
149
|
+
"role": "rejection"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"path": "deployment-releases-v1/identity.json",
|
|
153
|
+
"role": "identity"
|
|
154
|
+
}
|
|
82
155
|
]
|
|
83
156
|
},
|
|
84
157
|
{
|
|
85
158
|
"name": "query-events-v1",
|
|
86
159
|
"rfc": "0011",
|
|
87
|
-
"codePrefixes": [
|
|
160
|
+
"codePrefixes": [
|
|
161
|
+
"HQ_EVENT_"
|
|
162
|
+
],
|
|
88
163
|
"files": [
|
|
89
|
-
{
|
|
90
|
-
|
|
164
|
+
{
|
|
165
|
+
"path": "query-events-v1/success.json",
|
|
166
|
+
"role": "success"
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"path": "query-events-v1/rejections.json",
|
|
170
|
+
"role": "rejection"
|
|
171
|
+
}
|
|
91
172
|
]
|
|
92
173
|
},
|
|
93
174
|
{
|
|
94
175
|
"name": "query-diagnostics-v1",
|
|
95
176
|
"rfc": "0011",
|
|
96
|
-
"codePrefixes": [
|
|
177
|
+
"codePrefixes": [
|
|
178
|
+
"HQ_DIAGNOSTICS_"
|
|
179
|
+
],
|
|
97
180
|
"files": [
|
|
98
|
-
{
|
|
99
|
-
|
|
181
|
+
{
|
|
182
|
+
"path": "query-diagnostics-v1/success.json",
|
|
183
|
+
"role": "success"
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"path": "query-diagnostics-v1/rejections.json",
|
|
187
|
+
"role": "rejection"
|
|
188
|
+
}
|
|
100
189
|
]
|
|
101
190
|
},
|
|
102
191
|
{
|
|
103
192
|
"name": "sql-portability-v1",
|
|
104
193
|
"rfc": "0003",
|
|
105
|
-
"codePrefixes": [
|
|
194
|
+
"codePrefixes": [
|
|
195
|
+
"HQ_SQL_PORT_"
|
|
196
|
+
],
|
|
106
197
|
"files": [
|
|
107
|
-
{
|
|
108
|
-
|
|
198
|
+
{
|
|
199
|
+
"path": "sql-portability-v1/portable.json",
|
|
200
|
+
"role": "portable"
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"path": "sql-portability-v1/non-portable.json",
|
|
204
|
+
"role": "non-portable"
|
|
205
|
+
}
|
|
206
|
+
]
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
"name": "cache-keys-v1",
|
|
210
|
+
"rfc": "0013",
|
|
211
|
+
"codePrefixes": [
|
|
212
|
+
"HQ_CACHE_KEY_"
|
|
213
|
+
],
|
|
214
|
+
"files": [
|
|
215
|
+
{
|
|
216
|
+
"path": "cache-keys-v1/success.json",
|
|
217
|
+
"role": "success"
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"path": "cache-keys-v1/rejections.json",
|
|
221
|
+
"role": "rejection"
|
|
222
|
+
}
|
|
109
223
|
]
|
|
110
224
|
}
|
|
111
225
|
],
|
|
112
226
|
"fuzz": [
|
|
113
|
-
{
|
|
114
|
-
|
|
115
|
-
|
|
227
|
+
{
|
|
228
|
+
"path": "fuzz-seeds-v1/value-sources.json",
|
|
229
|
+
"family": "tagged-values-v1"
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"path": "fuzz-seeds-v1/structured-values.json"
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"path": "fuzz-seeds-v1/sql-expressions.json",
|
|
236
|
+
"family": "sql-portability-v1"
|
|
237
|
+
}
|
|
116
238
|
]
|
|
117
239
|
}
|
|
@@ -1,8 +1,59 @@
|
|
|
1
|
-
# Tagged value
|
|
1
|
+
# Tagged value version 1 fixtures
|
|
2
2
|
|
|
3
|
-
These draft fixtures accompany RFC 0001
|
|
3
|
+
These draft language-neutral fixtures accompany RFC 0001. They become
|
|
4
|
+
normative when the RFC is accepted.
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
- `rejections.json` contains exact JSON source, parsed values, or deterministic boundary generators with required error codes.
|
|
6
|
+
## Success manifest
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Each entry in `success.json` contains:
|
|
9
|
+
|
|
10
|
+
- `id`: stable fixture identifier;
|
|
11
|
+
- `value`: the parsed canonical value before JCS;
|
|
12
|
+
- `canonicalHex`: exact RFC 8785 canonical UTF-8 bytes as lowercase hex;
|
|
13
|
+
- `sha256`: lowercase SHA-256 of those exact bytes.
|
|
14
|
+
|
|
15
|
+
The hash is a fixture integrity check, not a deployment digest or cache key.
|
|
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
|
+
|
|
21
|
+
## Rejection manifest
|
|
22
|
+
|
|
23
|
+
Entries in `rejections.json` use one of:
|
|
24
|
+
|
|
25
|
+
- `sourceUtf8`: exact JSON source presented to a duplicate-aware parser;
|
|
26
|
+
- `value`: an already parsed value presented to model validation;
|
|
27
|
+
- `generator`: a deterministic boundary case that would be wasteful to store
|
|
28
|
+
expanded.
|
|
29
|
+
|
|
30
|
+
`declaredClickHouseType`, when present, supplies the containing schema type
|
|
31
|
+
needed to validate integer-tag requirements and exact tag/type compatibility.
|
|
32
|
+
|
|
33
|
+
Generators expand as follows:
|
|
34
|
+
|
|
35
|
+
- `non-finite-float`: creates the host-language non-finite number named by
|
|
36
|
+
`value` (`NaN`, `Infinity`, or `-Infinity`) after JSON parsing;
|
|
37
|
+
- `nested-array`: wraps `leaf` in the tagged array form `depth` times;
|
|
38
|
+
- `array`: creates one tagged array containing `items` copies of `value`;
|
|
39
|
+
- `array-tree`: creates one tagged array containing `branches` tagged arrays,
|
|
40
|
+
each containing `itemsPerBranch` copies of `value`;
|
|
41
|
+
- `repeat-string`: concatenates `count` copies of the UTF-8 string `utf8`;
|
|
42
|
+
- `unsafe-accessor`: builds an object whose `$hypequery` member is served by a
|
|
43
|
+
computed accessor rather than a plain data property. Implementations whose
|
|
44
|
+
input model cannot express computed accessors respond `skipped`, and must
|
|
45
|
+
then declare their own hostile-object suite per RFC 0012.
|
|
46
|
+
|
|
47
|
+
`error` is the required stable failure code. `phase` identifies the earliest
|
|
48
|
+
stage that must reject the input. A consumer may reject earlier only when it
|
|
49
|
+
returns the same code and does not partially execute or hash the value.
|
|
50
|
+
|
|
51
|
+
## What these fixtures cannot express
|
|
52
|
+
|
|
53
|
+
Metadata integers are accepted by value, not by lexical form: `1`, `1.0`, and
|
|
54
|
+
`1e0` all denote `1` and all canonicalize to `1`. The manifest cannot carry
|
|
55
|
+
that distinction — writing `1.0` into a `value` field serializes back to `1` —
|
|
56
|
+
so per-language unit tests cover the coercion of an integral host float.
|
|
57
|
+
|
|
58
|
+
Fixture runners must not pass `sourceUtf8` through an ordinary JSON dictionary
|
|
59
|
+
parser before duplicate-key detection.
|
|
@@ -294,5 +294,94 @@
|
|
|
294
294
|
"count": 65537
|
|
295
295
|
},
|
|
296
296
|
"error": "HQ_VALUE_TOO_LARGE"
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
"id": "datetime64-nanoseconds-overflow",
|
|
300
|
+
"phase": "model",
|
|
301
|
+
"value": {
|
|
302
|
+
"$hypequery": {
|
|
303
|
+
"type": "datetime",
|
|
304
|
+
"version": 1,
|
|
305
|
+
"clickhouseType": "DateTime64",
|
|
306
|
+
"precision": 9,
|
|
307
|
+
"timezone": "UTC",
|
|
308
|
+
"value": "2262-04-11T23:47:16.854775808Z"
|
|
309
|
+
}
|
|
310
|
+
},
|
|
311
|
+
"error": "HQ_VALUE_OUT_OF_RANGE"
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
"id": "timezone-fixed-offset",
|
|
315
|
+
"phase": "model",
|
|
316
|
+
"value": {
|
|
317
|
+
"$hypequery": {
|
|
318
|
+
"type": "datetime",
|
|
319
|
+
"version": 1,
|
|
320
|
+
"clickhouseType": "DateTime",
|
|
321
|
+
"precision": 0,
|
|
322
|
+
"timezone": "+02:00",
|
|
323
|
+
"value": "2026-07-13T14:30:45Z"
|
|
324
|
+
}
|
|
325
|
+
},
|
|
326
|
+
"error": "HQ_VALUE_INVALID_FORMAT"
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
"id": "control-character-vertical-tab",
|
|
330
|
+
"phase": "model",
|
|
331
|
+
"value": "before\u000bafter",
|
|
332
|
+
"error": "HQ_VALUE_CONTROL_CHARACTER"
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
"id": "value-unsafe-accessor",
|
|
336
|
+
"phase": "model",
|
|
337
|
+
"generator": {
|
|
338
|
+
"type": "unsafe-accessor"
|
|
339
|
+
},
|
|
340
|
+
"error": "HQ_VALUE_UNSAFE_OBJECT"
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
"id": "timezone-offset-shaped",
|
|
344
|
+
"phase": "model",
|
|
345
|
+
"value": {
|
|
346
|
+
"$hypequery": {
|
|
347
|
+
"type": "datetime",
|
|
348
|
+
"version": 1,
|
|
349
|
+
"clickhouseType": "DateTime",
|
|
350
|
+
"precision": 0,
|
|
351
|
+
"timezone": "+0200",
|
|
352
|
+
"value": "2026-07-13T14:30:45Z"
|
|
353
|
+
}
|
|
354
|
+
},
|
|
355
|
+
"error": "HQ_VALUE_INVALID_FORMAT"
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
"id": "timezone-leading-underscore",
|
|
359
|
+
"phase": "model",
|
|
360
|
+
"value": {
|
|
361
|
+
"$hypequery": {
|
|
362
|
+
"type": "datetime",
|
|
363
|
+
"version": 1,
|
|
364
|
+
"clickhouseType": "DateTime",
|
|
365
|
+
"precision": 0,
|
|
366
|
+
"timezone": "_Foo/Bar",
|
|
367
|
+
"value": "2026-07-13T14:30:45Z"
|
|
368
|
+
}
|
|
369
|
+
},
|
|
370
|
+
"error": "HQ_VALUE_INVALID_FORMAT"
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
"id": "timezone-too-long",
|
|
374
|
+
"phase": "model",
|
|
375
|
+
"value": {
|
|
376
|
+
"$hypequery": {
|
|
377
|
+
"type": "datetime",
|
|
378
|
+
"version": 1,
|
|
379
|
+
"clickhouseType": "DateTime",
|
|
380
|
+
"precision": 0,
|
|
381
|
+
"timezone": "Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
382
|
+
"value": "2026-07-13T14:30:45Z"
|
|
383
|
+
}
|
|
384
|
+
},
|
|
385
|
+
"error": "HQ_VALUE_TOO_LARGE"
|
|
297
386
|
}
|
|
298
387
|
]
|