@hypequery/protocol-conformance 0.9.2 → 0.10.0
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 +52 -5
- package/fixtures/tagged-values-v1/rejections.json +89 -0
- package/fixtures/tagged-values-v1/success.json +127 -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,55 @@
|
|
|
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
|
+
## Rejection manifest
|
|
18
|
+
|
|
19
|
+
Entries in `rejections.json` use one of:
|
|
20
|
+
|
|
21
|
+
- `sourceUtf8`: exact JSON source presented to a duplicate-aware parser;
|
|
22
|
+
- `value`: an already parsed value presented to model validation;
|
|
23
|
+
- `generator`: a deterministic boundary case that would be wasteful to store
|
|
24
|
+
expanded.
|
|
25
|
+
|
|
26
|
+
`declaredClickHouseType`, when present, supplies the containing schema type
|
|
27
|
+
needed to validate integer-tag requirements and exact tag/type compatibility.
|
|
28
|
+
|
|
29
|
+
Generators expand as follows:
|
|
30
|
+
|
|
31
|
+
- `non-finite-float`: creates the host-language non-finite number named by
|
|
32
|
+
`value` (`NaN`, `Infinity`, or `-Infinity`) after JSON parsing;
|
|
33
|
+
- `nested-array`: wraps `leaf` in the tagged array form `depth` times;
|
|
34
|
+
- `array`: creates one tagged array containing `items` copies of `value`;
|
|
35
|
+
- `array-tree`: creates one tagged array containing `branches` tagged arrays,
|
|
36
|
+
each containing `itemsPerBranch` copies of `value`;
|
|
37
|
+
- `repeat-string`: concatenates `count` copies of the UTF-8 string `utf8`;
|
|
38
|
+
- `unsafe-accessor`: builds an object whose `$hypequery` member is served by a
|
|
39
|
+
computed accessor rather than a plain data property. Implementations whose
|
|
40
|
+
input model cannot express computed accessors respond `skipped`, and must
|
|
41
|
+
then declare their own hostile-object suite per RFC 0012.
|
|
42
|
+
|
|
43
|
+
`error` is the required stable failure code. `phase` identifies the earliest
|
|
44
|
+
stage that must reject the input. A consumer may reject earlier only when it
|
|
45
|
+
returns the same code and does not partially execute or hash the value.
|
|
46
|
+
|
|
47
|
+
## What these fixtures cannot express
|
|
48
|
+
|
|
49
|
+
Metadata integers are accepted by value, not by lexical form: `1`, `1.0`, and
|
|
50
|
+
`1e0` all denote `1` and all canonicalize to `1`. The manifest cannot carry
|
|
51
|
+
that distinction — writing `1.0` into a `value` field serializes back to `1` —
|
|
52
|
+
so per-language unit tests cover the coercion of an integral host float.
|
|
53
|
+
|
|
54
|
+
Fixture runners must not pass `sourceUtf8` through an ordinary JSON dictionary
|
|
55
|
+
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
|
]
|