@balena/odata-parser 4.2.8 → 4.2.9
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/.versionbot/CHANGELOG.yml +12 -1
- package/CHANGELOG.md +5 -0
- package/odata-parser.js +17 -28
- package/odata-parser.pegjs +18 -29
- package/package.json +2 -2
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
- commits:
|
|
2
|
+
- subject: Replace `CollapseObjectArray` with `Object.fromEntries`
|
|
3
|
+
hash: cff575f1888896b9278adda63988df3922aae6c7
|
|
4
|
+
body: ""
|
|
5
|
+
footer:
|
|
6
|
+
Change-type: patch
|
|
7
|
+
change-type: patch
|
|
8
|
+
author: Pagan Gazzard
|
|
9
|
+
version: 4.2.9
|
|
10
|
+
title: ""
|
|
11
|
+
date: 2025-10-16T13:59:19.198Z
|
|
1
12
|
- commits:
|
|
2
13
|
- subject: Update dependency lint-staged to v16
|
|
3
14
|
hash: 1ad6c3e66d76d9fba07440f75e719f210505f9d9
|
|
@@ -9,7 +20,7 @@
|
|
|
9
20
|
author: balena-renovate[bot]
|
|
10
21
|
version: 4.2.8
|
|
11
22
|
title: ""
|
|
12
|
-
date: 2025-09-11T12:
|
|
23
|
+
date: 2025-09-11T12:20:28.065Z
|
|
13
24
|
- commits:
|
|
14
25
|
- subject: Update dependency peggy to v5
|
|
15
26
|
hash: a3bd65a4f4a63999b58a5076563e0eaa51a755d3
|
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file
|
|
|
4
4
|
automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
|
|
5
5
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
|
6
6
|
|
|
7
|
+
# v4.2.9
|
|
8
|
+
## (2025-10-16)
|
|
9
|
+
|
|
10
|
+
* Replace `CollapseObjectArray` with `Object.fromEntries` [Pagan Gazzard]
|
|
11
|
+
|
|
7
12
|
# v4.2.8
|
|
8
13
|
## (2025-09-11)
|
|
9
14
|
|
package/odata-parser.js
CHANGED
|
@@ -72,14 +72,6 @@
|
|
|
72
72
|
// mod: 5
|
|
73
73
|
// };
|
|
74
74
|
|
|
75
|
-
function CollapseObjectArray(options) {
|
|
76
|
-
const optionsObj = {};
|
|
77
|
-
for(const i in options) {
|
|
78
|
-
optionsObj[options[i].name] = options[i].value;
|
|
79
|
-
}
|
|
80
|
-
return optionsObj;
|
|
81
|
-
};
|
|
82
|
-
|
|
83
75
|
class peg$SyntaxError extends SyntaxError {
|
|
84
76
|
constructor(message, expected, found, location) {
|
|
85
77
|
super(message);
|
|
@@ -476,36 +468,33 @@ function peg$parse(input, options) {
|
|
|
476
468
|
function peg$f3(model) { return model }
|
|
477
469
|
function peg$f4() { return { resource: '$metadata' } }
|
|
478
470
|
function peg$f5() { return { resource: '$serviceroot' } }
|
|
479
|
-
function peg$f6(options) { return
|
|
471
|
+
function peg$f6(options) { return Object.fromEntries(options) }
|
|
480
472
|
function peg$f7(name, n) { return [ 'Real', n ] }
|
|
481
473
|
function peg$f8(name, b) { return [ 'Boolean', b ] }
|
|
482
474
|
function peg$f9(name, s) { return [ 'Text', s ] }
|
|
483
475
|
function peg$f10(name, value) { return !binds['@' + name] }
|
|
484
476
|
function peg$f11(name, value) {
|
|
485
477
|
binds['@' + name] = value
|
|
486
|
-
return
|
|
487
|
-
name: '@' + name,
|
|
488
|
-
value
|
|
489
|
-
}
|
|
478
|
+
return [ '@' + name, value ]
|
|
490
479
|
}
|
|
491
|
-
function peg$f12(name, value) { return
|
|
492
|
-
function peg$f13(properties) { return
|
|
480
|
+
function peg$f12(name, value) { return [ name, value ] }
|
|
481
|
+
function peg$f13(properties) { return [ '$orderby', { properties } ] }
|
|
493
482
|
function peg$f14(property) { return 'desc' }
|
|
494
483
|
function peg$f15(property, order) {
|
|
495
484
|
property.order = order;
|
|
496
485
|
return property
|
|
497
486
|
}
|
|
498
|
-
function peg$f16(value) { return
|
|
499
|
-
function peg$f17(value) { return
|
|
487
|
+
function peg$f16(value) { return [ '$top', value ] }
|
|
488
|
+
function peg$f17(value) { return [ '$skip', value ] }
|
|
500
489
|
function peg$f18() { return '' }
|
|
501
|
-
function peg$f19(value) { return
|
|
502
|
-
function peg$f20(value) { return
|
|
503
|
-
function peg$f21(properties) { return
|
|
490
|
+
function peg$f19(value) { return [ '$inlinecount', value ] }
|
|
491
|
+
function peg$f20(value) { return [ '$count', value ] }
|
|
492
|
+
function peg$f21(properties) { return [ '$expand', { properties } ] }
|
|
504
493
|
function peg$f22(properties) { return { properties } }
|
|
505
|
-
function peg$f23(value) { return
|
|
506
|
-
function peg$f24(expr) { return
|
|
507
|
-
function peg$f25(type, metadata) { return
|
|
508
|
-
function peg$f26(type) { return
|
|
494
|
+
function peg$f23(value) { return [ '$select', value ] }
|
|
495
|
+
function peg$f24(expr) { return [ '$filter', expr ] }
|
|
496
|
+
function peg$f25(type, metadata) { return [ '$format', { type, metadata } ] }
|
|
497
|
+
function peg$f26(type) { return [ '$format', type ] }
|
|
509
498
|
function peg$f27() {
|
|
510
499
|
precedence = 0;
|
|
511
500
|
}
|
|
@@ -557,21 +546,21 @@ function peg$parse(input, options) {
|
|
|
557
546
|
function peg$f42(methodName, args) { return [ 'call', { args, method: methodName } ] }
|
|
558
547
|
function peg$f43(name) { return { name } }
|
|
559
548
|
function peg$f44(result, property) { result.property = property }
|
|
560
|
-
function peg$f45(result, option) { result.options =
|
|
549
|
+
function peg$f45(result, option) { result.options = Object.fromEntries([option]) }
|
|
561
550
|
function peg$f46(result) { result.count = true }
|
|
562
551
|
function peg$f47(result, key) { result.key = key }
|
|
563
552
|
function peg$f48(result, property) { result.property = property }
|
|
564
553
|
function peg$f49(result) { return result }
|
|
565
554
|
function peg$f50(name) { return { name } }
|
|
566
555
|
function peg$f51(result) { result.count = true }
|
|
567
|
-
function peg$f52(result, options) { result.options =
|
|
556
|
+
function peg$f52(result, options) { result.options = Object.fromEntries(options) }
|
|
568
557
|
function peg$f53(result, next) { result.property = next }
|
|
569
558
|
function peg$f54(result) { return result }
|
|
570
559
|
function peg$f55(resource, next) { return { name: resource, property: next } }
|
|
571
560
|
function peg$f56(resource, lambda) { return { name: resource, lambda } }
|
|
572
561
|
function peg$f57(resource, method) { return { name: resource, method } }
|
|
573
|
-
function peg$f58(keyBinds) { return
|
|
574
|
-
function peg$f59(name, value) { return
|
|
562
|
+
function peg$f58(keyBinds) { return Object.fromEntries(keyBinds) }
|
|
563
|
+
function peg$f59(name, value) { return [ name, value ] }
|
|
575
564
|
function peg$f60(resource) { return { resource } }
|
|
576
565
|
function peg$f61(result, key) { result.key = key }
|
|
577
566
|
function peg$f62(result, link) {result.link = link }
|
package/odata-parser.pegjs
CHANGED
|
@@ -65,14 +65,6 @@
|
|
|
65
65
|
// div: 5,
|
|
66
66
|
// mod: 5
|
|
67
67
|
// };
|
|
68
|
-
|
|
69
|
-
function CollapseObjectArray(options) {
|
|
70
|
-
const optionsObj = {};
|
|
71
|
-
for(const i in options) {
|
|
72
|
-
optionsObj[options[i].name] = options[i].value;
|
|
73
|
-
}
|
|
74
|
-
return optionsObj;
|
|
75
|
-
};
|
|
76
68
|
}}
|
|
77
69
|
{
|
|
78
70
|
let binds = [];
|
|
@@ -113,7 +105,7 @@ OData =
|
|
|
113
105
|
|
|
114
106
|
QueryOptions =
|
|
115
107
|
options:QueryOption|1..,'&'|
|
|
116
|
-
{ return
|
|
108
|
+
{ return Object.fromEntries(options) }
|
|
117
109
|
|
|
118
110
|
QueryOption =
|
|
119
111
|
Dollar
|
|
@@ -148,20 +140,17 @@ ParameterAliasOption =
|
|
|
148
140
|
&{ return !binds['@' + name] }
|
|
149
141
|
{
|
|
150
142
|
binds['@' + name] = value
|
|
151
|
-
return
|
|
152
|
-
name: '@' + name,
|
|
153
|
-
value
|
|
154
|
-
}
|
|
143
|
+
return [ '@' + name, value ]
|
|
155
144
|
}
|
|
156
145
|
|
|
157
146
|
OperationParam =
|
|
158
147
|
name:Text '=' value:Text
|
|
159
|
-
{ return
|
|
148
|
+
{ return [ name, value ] }
|
|
160
149
|
|
|
161
150
|
SortOption =
|
|
162
151
|
'orderby='
|
|
163
152
|
properties:SortProperty|1..,','|
|
|
164
|
-
{ return
|
|
153
|
+
{ return [ '$orderby', { properties } ] }
|
|
165
154
|
|
|
166
155
|
SortProperty =
|
|
167
156
|
property:PropertyPath
|
|
@@ -181,12 +170,12 @@ SortProperty =
|
|
|
181
170
|
TopOption =
|
|
182
171
|
'top='
|
|
183
172
|
value:UnsignedIntegerBind
|
|
184
|
-
{ return
|
|
173
|
+
{ return [ '$top', value ] }
|
|
185
174
|
|
|
186
175
|
SkipOption =
|
|
187
176
|
'skip='
|
|
188
177
|
value:UnsignedIntegerBind
|
|
189
|
-
{ return
|
|
178
|
+
{ return [ '$skip', value ] }
|
|
190
179
|
|
|
191
180
|
InlineCountOption =
|
|
192
181
|
'inlinecount='
|
|
@@ -195,17 +184,17 @@ InlineCountOption =
|
|
|
195
184
|
/ 'none'
|
|
196
185
|
/ Text { return '' }
|
|
197
186
|
)
|
|
198
|
-
{ return
|
|
187
|
+
{ return [ '$inlinecount', value ] }
|
|
199
188
|
|
|
200
189
|
CountOption =
|
|
201
190
|
'count='
|
|
202
191
|
value:Boolean
|
|
203
|
-
{ return
|
|
192
|
+
{ return [ '$count', value ] }
|
|
204
193
|
|
|
205
194
|
ExpandOption =
|
|
206
195
|
'expand='
|
|
207
196
|
properties:ExpandPropertyPathList
|
|
208
|
-
{ return
|
|
197
|
+
{ return [ '$expand', { properties } ] }
|
|
209
198
|
|
|
210
199
|
SelectOption =
|
|
211
200
|
'select='
|
|
@@ -214,13 +203,13 @@ SelectOption =
|
|
|
214
203
|
/ properties:PropertyPathList
|
|
215
204
|
{ return { properties } }
|
|
216
205
|
)
|
|
217
|
-
{ return
|
|
206
|
+
{ return [ '$select', value ] }
|
|
218
207
|
|
|
219
208
|
|
|
220
209
|
FilterByOption =
|
|
221
210
|
'filter='
|
|
222
211
|
expr:FilterByExpression
|
|
223
|
-
{ return
|
|
212
|
+
{ return [ '$filter', expr ] }
|
|
224
213
|
|
|
225
214
|
|
|
226
215
|
ContentType =
|
|
@@ -244,8 +233,8 @@ FormatOption =
|
|
|
244
233
|
/ 'minimal'
|
|
245
234
|
/ 'full'
|
|
246
235
|
)
|
|
247
|
-
{ return
|
|
248
|
-
/ '' { return
|
|
236
|
+
{ return [ '$format', { type, metadata } ] }
|
|
237
|
+
/ '' { return [ '$format', type ] }
|
|
249
238
|
)
|
|
250
239
|
|
|
251
240
|
FilterByExpression =
|
|
@@ -344,7 +333,7 @@ FilterNegateExpression =
|
|
|
344
333
|
GroupedPrimitive =
|
|
345
334
|
'(' spaces
|
|
346
335
|
bindings:(@Primitive|1..,',' spaces|)
|
|
347
|
-
spaces
|
|
336
|
+
spaces
|
|
348
337
|
')'
|
|
349
338
|
{
|
|
350
339
|
const bindValues = [];
|
|
@@ -454,7 +443,7 @@ PropertyPath =
|
|
|
454
443
|
'('
|
|
455
444
|
( Dollar
|
|
456
445
|
option:FilterByOption
|
|
457
|
-
{ result.options =
|
|
446
|
+
{ result.options = Object.fromEntries([option]) }
|
|
458
447
|
)
|
|
459
448
|
')'
|
|
460
449
|
)?
|
|
@@ -490,7 +479,7 @@ ExpandPropertyPath =
|
|
|
490
479
|
'('
|
|
491
480
|
(
|
|
492
481
|
options:QueryOption|1..,[&;]|
|
|
493
|
-
{ result.options =
|
|
482
|
+
{ result.options = Object.fromEntries(options) }
|
|
494
483
|
/ ''
|
|
495
484
|
)
|
|
496
485
|
')'
|
|
@@ -516,12 +505,12 @@ Key =
|
|
|
516
505
|
'('
|
|
517
506
|
@( KeyBind
|
|
518
507
|
/ keyBinds:NamedKeyBind|1..,','|
|
|
519
|
-
{ return
|
|
508
|
+
{ return Object.fromEntries(keyBinds) }
|
|
520
509
|
)
|
|
521
510
|
')'
|
|
522
511
|
NamedKeyBind =
|
|
523
512
|
name:ResourceName '=' value:KeyBind
|
|
524
|
-
{ return
|
|
513
|
+
{ return [ name, value ] }
|
|
525
514
|
KeyBind =
|
|
526
515
|
NumberBind
|
|
527
516
|
/ QuotedTextBind
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@balena/odata-parser",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.9",
|
|
4
4
|
"description": "An OData parser written in OMeta",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "odata-parser.js",
|
|
@@ -40,6 +40,6 @@
|
|
|
40
40
|
"npm": ">=8.1.0"
|
|
41
41
|
},
|
|
42
42
|
"versionist": {
|
|
43
|
-
"publishedAt": "2025-
|
|
43
|
+
"publishedAt": "2025-10-16T13:59:19.285Z"
|
|
44
44
|
}
|
|
45
45
|
}
|