You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
constmessage=`Invalid array index "-" at position ${referenceTokenPosition} in "${jsonPointer}". The "-" token always refers to a nonexistent element during evaluation`;
60
-
61
-
tracer?.step({
62
-
referenceToken,
63
-
input: current,
64
-
success: false,
65
-
reason: message,
66
-
});
67
-
68
-
thrownewJSONPointerIndexError(message,{
69
-
jsonPointer,
70
-
referenceTokens,
71
-
referenceToken,
72
-
referenceTokenPosition,
73
-
currentValue: current,
74
-
realm: realm.name,
75
-
});
52
+
thrownewJSONPointerIndexError(
53
+
`Invalid array index "-" at position ${referenceTokenPosition} in "${jsonPointer}". The "-" token always refers to a nonexistent element during evaluation`,
constmessage=`Invalid array index "${referenceToken}" at position ${referenceTokenPosition} in "${jsonPointer}": index MUST be "0", or digits without a leading "0"`;
`Invalid array index "${referenceToken}" at position ${referenceTokenPosition} in "${jsonPointer}": index MUST be "0", or digits without a leading "0"`,
79
+
{
80
+
jsonPointer,
81
+
referenceTokens,
82
+
referenceToken,
83
+
referenceTokenPosition,
84
+
currentValue: current,
85
+
realm: realm.name,
86
+
},
87
+
);
107
88
}
108
89
109
90
constindex=Number(referenceToken);
110
-
constindexUint32=index>>>0;
111
-
112
-
if(strictArrays&&index!==indexUint32){
113
-
constmessage=`Invalid array index "${referenceToken}" at position ${referenceTokenPosition} in "${jsonPointer}": index must be an unsigned 32-bit integer`;
114
-
115
-
tracer?.step({
116
-
referenceToken,
117
-
input: current,
118
-
success: false,
119
-
reason: message,
120
-
});
121
-
122
-
thrownewJSONPointerIndexError(message,{
123
-
jsonPointer,
124
-
referenceTokens,
125
-
referenceToken,
126
-
referenceTokenPosition,
127
-
currentValue: current,
128
-
realm: realm.name,
129
-
});
91
+
92
+
if(!Number.isSafeInteger(index)){
93
+
thrownewJSONPointerIndexError(
94
+
`Invalid array index "${referenceToken}" at position ${referenceTokenPosition} in "${jsonPointer}": index must be a safe integer`,
95
+
{
96
+
jsonPointer,
97
+
referenceTokens,
98
+
referenceToken,
99
+
referenceTokenPosition,
100
+
currentValue: current,
101
+
realm: realm.name,
102
+
},
103
+
);
130
104
}
131
105
132
-
if(strictArrays&&index>=realm.sizeOf(current)){
133
-
constmessage=`Invalid array index "${index}" at position ${referenceTokenPosition} in "${jsonPointer}": out of bounds`;
constmessage=`Invalid object key "${referenceToken}" at position ${referenceTokenPosition} in "${jsonPointer}": key not found in object`;
166
-
167
-
tracer?.step({
168
-
referenceToken,
169
-
input: current,
170
-
success: false,
171
-
reason: message,
172
-
});
173
-
174
-
thrownewJSONPointerKeyError(message,{
175
-
jsonPointer,
176
-
referenceTokens,
177
-
referenceToken,
178
-
referenceTokenPosition,
179
-
currentValue: current,
180
-
realm: realm.name,
181
-
});
133
+
thrownewJSONPointerKeyError(
134
+
`Invalid object key "${referenceToken}" at position ${referenceTokenPosition} in "${jsonPointer}": key not found in object`,
135
+
{
136
+
jsonPointer,
137
+
referenceTokens,
138
+
referenceToken,
139
+
referenceTokenPosition,
140
+
currentValue: current,
141
+
realm: realm.name,
142
+
},
143
+
);
182
144
}
183
145
184
146
output=realm.evaluate(current,referenceToken);
@@ -192,25 +154,26 @@ const evaluate = (
192
154
returnoutput;
193
155
}
194
156
195
-
constmessage=`Invalid reference token "${referenceToken}" at position ${referenceTokenPosition} in "${jsonPointer}": cannot be applied to a non-object/non-array value`;
196
-
197
-
tracer?.step({
198
-
referenceToken,
199
-
input: current,
200
-
success: false,
201
-
reason: message,
202
-
});
203
-
204
-
thrownewJSONPointerTypeError(message,{
205
-
jsonPointer,
206
-
referenceTokens,
207
-
referenceToken,
208
-
referenceTokenPosition,
209
-
currentValue: current,
210
-
realm: realm.name,
211
-
});
157
+
thrownewJSONPointerTypeError(
158
+
`Invalid reference token "${referenceToken}" at position ${referenceTokenPosition} in "${jsonPointer}": cannot be applied to a non-object/non-array value`,
0 commit comments