@opra/common 0.17.1 → 0.17.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.
- package/browser.js +12220 -0
- package/cjs/document/data-type/complex-type.js +1 -1
- package/cjs/document/resource/collection.js +13 -7
- package/cjs/filter/antlr/OpraFilterLexer.js +209 -238
- package/cjs/filter/antlr/OpraFilterListener.js +1 -1
- package/cjs/filter/antlr/OpraFilterParser.js +795 -1482
- package/cjs/filter/antlr/OpraFilterVisitor.js +1 -1
- package/cjs/filter/ast/expressions/logical-expression.js +4 -0
- package/cjs/filter/ast/expressions/{parentheses-expression.js → negative-expression.js} +3 -3
- package/cjs/filter/ast/expressions/parenthesized-expression.js +14 -0
- package/cjs/filter/ast/index.js +2 -1
- package/cjs/filter/build.js +1 -1
- package/cjs/filter/filter-tree-visitor.js +44 -66
- package/cjs/filter/index.js +2 -5
- package/cjs/filter/opra-filter.ns.js +8 -0
- package/cjs/filter/parse.js +5 -6
- package/cjs/http/codecs/filter-codec.js +2 -2
- package/cjs/http/http-message.host.js +6 -6
- package/cjs/http/http-request-message.js +3 -3
- package/cjs/http/http-response-message.js +2 -2
- package/cjs/http/multipart/batch-multipart.js +1 -1
- package/cjs/i18n/i18n.js +1 -1
- package/esm/document/data-type/complex-type.js +1 -1
- package/esm/document/resource/collection.js +14 -8
- package/esm/filter/antlr/OpraFilterLexer.js +209 -238
- package/esm/filter/antlr/OpraFilterListener.js +1 -1
- package/esm/filter/antlr/OpraFilterParser.js +775 -1448
- package/esm/filter/antlr/OpraFilterVisitor.js +1 -1
- package/esm/filter/ast/expressions/logical-expression.js +4 -0
- package/esm/filter/ast/expressions/{parentheses-expression.js → negative-expression.js} +1 -1
- package/esm/filter/ast/expressions/parenthesized-expression.js +10 -0
- package/esm/filter/ast/index.js +2 -1
- package/esm/filter/build.js +2 -2
- package/esm/filter/filter-tree-visitor.js +46 -68
- package/esm/filter/index.js +1 -5
- package/esm/filter/opra-filter.ns.js +5 -0
- package/esm/filter/parse.js +3 -4
- package/esm/http/codecs/filter-codec.js +2 -2
- package/esm/http/http-message.host.js +1 -1
- package/esm/http/http-request-message.js +1 -1
- package/esm/http/http-response-message.js +1 -1
- package/esm/http/multipart/batch-multipart.js +1 -1
- package/esm/i18n/i18n.js +1 -1
- package/package.json +29 -17
- package/types/document/resource/collection.d.ts +2 -2
- package/types/filter/antlr/OpraFilterLexer.d.ts +9 -22
- package/types/filter/antlr/OpraFilterListener.d.ts +89 -217
- package/types/filter/antlr/OpraFilterParser.d.ts +91 -206
- package/types/filter/antlr/OpraFilterVisitor.d.ts +49 -124
- package/types/filter/ast/expressions/{parentheses-expression.d.ts → negative-expression.d.ts} +1 -1
- package/types/filter/ast/expressions/parenthesized-expression.d.ts +6 -0
- package/types/filter/ast/index.d.ts +2 -1
- package/types/filter/build.d.ts +2 -2
- package/types/filter/filter-tree-visitor.d.ts +10 -11
- package/types/filter/index.d.ts +1 -5
- package/types/filter/opra-filter.ns.d.ts +5 -0
- package/types/filter/parse.d.ts +1 -1
- package/types/http/http-message.host.d.ts +1 -1
- package/types/i18n/i18n.d.ts +2 -2
- package/types/i18n/translate.d.ts +1 -1
- package/types/schema/data-type/complex-type.interface.d.ts +1 -1
- package/types/schema/resource/endpoint.interface.d.ts +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
// Generated from ./src/filter/antlr/OpraFilter.g4 by ANTLR 4.12.0
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
// Generated from ./src/filter/antlr/OpraFilter.g4 by ANTLR 4.11.2-SNAPSHOT
|
|
4
4
|
const antlr4_1 = require("@browsery/antlr4");
|
|
5
5
|
/**
|
|
6
6
|
* This interface defines a complete generic visitor for a parse tree produced
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.NegativeExpression = void 0;
|
|
4
4
|
const expression_js_1 = require("../abstract/expression.js");
|
|
5
|
-
class
|
|
5
|
+
class NegativeExpression extends expression_js_1.Expression {
|
|
6
6
|
constructor(expression) {
|
|
7
7
|
super();
|
|
8
8
|
this.expression = expression;
|
|
@@ -11,4 +11,4 @@ class ParenthesesExpression extends expression_js_1.Expression {
|
|
|
11
11
|
return `(${this.expression})`;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
exports.
|
|
14
|
+
exports.NegativeExpression = NegativeExpression;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ParenthesizedExpression = void 0;
|
|
4
|
+
const expression_js_1 = require("../abstract/expression.js");
|
|
5
|
+
class ParenthesizedExpression extends expression_js_1.Expression {
|
|
6
|
+
constructor(expression) {
|
|
7
|
+
super();
|
|
8
|
+
this.expression = expression;
|
|
9
|
+
}
|
|
10
|
+
toString() {
|
|
11
|
+
return `(${this.expression})`;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.ParenthesizedExpression = ParenthesizedExpression;
|
package/cjs/filter/ast/index.js
CHANGED
|
@@ -9,7 +9,8 @@ tslib_1.__exportStar(require("./expressions/arithmetic-expression.js"), exports)
|
|
|
9
9
|
tslib_1.__exportStar(require("./expressions/array-expression.js"), exports);
|
|
10
10
|
tslib_1.__exportStar(require("./expressions/comparison-expression.js"), exports);
|
|
11
11
|
tslib_1.__exportStar(require("./expressions/logical-expression.js"), exports);
|
|
12
|
-
tslib_1.__exportStar(require("./expressions/
|
|
12
|
+
tslib_1.__exportStar(require("./expressions/parenthesized-expression.js"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./expressions/negative-expression.js"), exports);
|
|
13
14
|
tslib_1.__exportStar(require("./terms/boolean-literal.js"), exports);
|
|
14
15
|
tslib_1.__exportStar(require("./terms/date-literal.js"), exports);
|
|
15
16
|
tslib_1.__exportStar(require("./terms/null-literal.js"), exports);
|
package/cjs/filter/build.js
CHANGED
|
@@ -79,7 +79,7 @@ function $notILike(left, right) {
|
|
|
79
79
|
}
|
|
80
80
|
exports.$notILike = $notILike;
|
|
81
81
|
function $paren(expression) {
|
|
82
|
-
return new index_js_1.
|
|
82
|
+
return new index_js_1.ParenthesizedExpression(expression);
|
|
83
83
|
}
|
|
84
84
|
exports.$paren = $paren;
|
|
85
85
|
function $arithmetic(n) {
|
|
@@ -6,7 +6,6 @@ const antlr4_1 = tslib_1.__importDefault(require("@browsery/antlr4"));
|
|
|
6
6
|
const OpraFilterParser_js_1 = require("./antlr/OpraFilterParser.js");
|
|
7
7
|
const index_js_1 = require("./ast/index.js");
|
|
8
8
|
const external_constant_js_1 = require("./ast/terms/external-constant.js");
|
|
9
|
-
const errors_js_1 = require("./errors.js");
|
|
10
9
|
const utils_js_1 = require("./utils.js");
|
|
11
10
|
// Fix: antlr4 d.ts files are invalid
|
|
12
11
|
const ParseTreeVisitor = antlr4_1.default.tree.ParseTreeVisitor;
|
|
@@ -19,7 +18,7 @@ class FilterTreeVisitor extends ParseTreeVisitor {
|
|
|
19
18
|
const result = super.visitChildren(node);
|
|
20
19
|
if (Array.isArray(result) && result.length < 2)
|
|
21
20
|
return result[0];
|
|
22
|
-
return result;
|
|
21
|
+
return result ?? node.getText();
|
|
23
22
|
}
|
|
24
23
|
defaultResult() {
|
|
25
24
|
return undefined;
|
|
@@ -27,8 +26,47 @@ class FilterTreeVisitor extends ParseTreeVisitor {
|
|
|
27
26
|
visitRoot(ctx) {
|
|
28
27
|
return this.visit(ctx.expression());
|
|
29
28
|
}
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
visitParenthesizedExpression(ctx) {
|
|
30
|
+
const expression = this.visit(ctx.parenthesizedItem());
|
|
31
|
+
return new index_js_1.ParenthesizedExpression(expression);
|
|
32
|
+
}
|
|
33
|
+
visitParenthesizedItem(ctx) {
|
|
34
|
+
return this.visit(ctx.expression());
|
|
35
|
+
}
|
|
36
|
+
visitNegativeExpression(ctx) {
|
|
37
|
+
const expression = this.visit(ctx.expression());
|
|
38
|
+
return new index_js_1.NegativeExpression(expression);
|
|
39
|
+
}
|
|
40
|
+
visitComparisonExpression(ctx) {
|
|
41
|
+
return new index_js_1.ComparisonExpression({
|
|
42
|
+
op: ctx.comparisonOperator().getText(),
|
|
43
|
+
left: this.visit(ctx.comparisonLeft()),
|
|
44
|
+
right: this.visit(ctx.comparisonRight())
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
visitLogicalExpression(ctx) {
|
|
48
|
+
const items = [];
|
|
49
|
+
const wrapChildren = (arr, op) => {
|
|
50
|
+
for (const c of arr) {
|
|
51
|
+
if (c instanceof OpraFilterParser_js_1.LogicalExpressionContext && c.logicalOperator().getText() === op) {
|
|
52
|
+
wrapChildren(c.expression_list(), c.logicalOperator().getText());
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const o = this.visit(c);
|
|
56
|
+
items.push(o);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
wrapChildren(ctx.expression_list(), ctx.logicalOperator().getText());
|
|
60
|
+
return new index_js_1.LogicalExpression({
|
|
61
|
+
op: ctx.logicalOperator().getText(),
|
|
62
|
+
items
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
visitQualifiedIdentifier(ctx) {
|
|
66
|
+
return new index_js_1.QualifiedIdentifier(ctx.getText());
|
|
67
|
+
}
|
|
68
|
+
visitExternalConstant(ctx) {
|
|
69
|
+
return new external_constant_js_1.ExternalConstant(ctx.identifier().getText());
|
|
32
70
|
}
|
|
33
71
|
visitNullLiteral() {
|
|
34
72
|
return new index_js_1.NullLiteral();
|
|
@@ -54,68 +92,8 @@ class FilterTreeVisitor extends ParseTreeVisitor {
|
|
|
54
92
|
visitTimeLiteral(ctx) {
|
|
55
93
|
return new index_js_1.TimeLiteral((0, utils_js_1.unquoteFilterString)(ctx.getText()));
|
|
56
94
|
}
|
|
57
|
-
|
|
58
|
-
return new index_js_1.
|
|
59
|
-
}
|
|
60
|
-
visitPolarityExpression(ctx) {
|
|
61
|
-
const x = this.visit(ctx.expression());
|
|
62
|
-
if (x.kind === 'NumberLiteral') {
|
|
63
|
-
if (ctx.polarOp().getText() === '-')
|
|
64
|
-
x.value *= -1;
|
|
65
|
-
return x;
|
|
66
|
-
}
|
|
67
|
-
throw new errors_js_1.SyntaxError('Unexpected token "' + ctx.getText() + '"');
|
|
68
|
-
}
|
|
69
|
-
visitExternalConstantTerm(ctx) {
|
|
70
|
-
return new external_constant_js_1.ExternalConstant(ctx.externalConstant().getText().substring(1));
|
|
71
|
-
}
|
|
72
|
-
visitParenthesizedExpression(ctx) {
|
|
73
|
-
const expression = this.visit(ctx.expression());
|
|
74
|
-
return new index_js_1.ParenthesesExpression(expression);
|
|
75
|
-
}
|
|
76
|
-
visitArrayExpression(ctx) {
|
|
77
|
-
return new index_js_1.ArrayExpression(ctx.expression_list().map(child => this.visit(child)));
|
|
78
|
-
}
|
|
79
|
-
visitComparisonExpression(ctx) {
|
|
80
|
-
return new index_js_1.ComparisonExpression({
|
|
81
|
-
op: ctx.compOp().getText(),
|
|
82
|
-
left: this.visit(ctx.expression(0)),
|
|
83
|
-
right: this.visit(ctx.expression(1))
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
visitLogicalExpression(ctx) {
|
|
87
|
-
const items = [];
|
|
88
|
-
const wrapChildren = (arr, op) => {
|
|
89
|
-
for (const c of arr) {
|
|
90
|
-
if (c instanceof OpraFilterParser_js_1.LogicalExpressionContext && c.logOp().getText() === op) {
|
|
91
|
-
wrapChildren(c.expression_list(), c.logOp().getText());
|
|
92
|
-
continue;
|
|
93
|
-
}
|
|
94
|
-
const o = this.visit(c);
|
|
95
|
-
items.push(o);
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
wrapChildren(ctx.expression_list(), ctx.logOp().getText());
|
|
99
|
-
return new index_js_1.LogicalExpression({
|
|
100
|
-
op: ctx.logOp().getText(),
|
|
101
|
-
items
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
visitArithmeticExpression(ctx) {
|
|
105
|
-
const exp = new index_js_1.ArithmeticExpression();
|
|
106
|
-
const wrapChildren = (children, op) => {
|
|
107
|
-
for (let i = 0, len = children.length; i < len; i++) {
|
|
108
|
-
const child = children[i];
|
|
109
|
-
if (child instanceof OpraFilterParser_js_1.ArithmeticExpressionContext) {
|
|
110
|
-
wrapChildren(child.expression_list(), child.arthOp().getText());
|
|
111
|
-
continue;
|
|
112
|
-
}
|
|
113
|
-
const value = this.visit(child);
|
|
114
|
-
exp.append(op || '+', value);
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
|
-
wrapChildren(ctx.expression_list(), ctx.arthOp().getText());
|
|
118
|
-
return exp;
|
|
95
|
+
visitArrayValue(ctx) {
|
|
96
|
+
return new index_js_1.ArrayExpression(ctx.value_list().map(child => this.visit(child)));
|
|
119
97
|
}
|
|
120
98
|
}
|
|
121
99
|
exports.FilterTreeVisitor = FilterTreeVisitor;
|
package/cjs/filter/index.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpraFilter = void 0;
|
|
3
4
|
const tslib_1 = require("tslib");
|
|
4
|
-
tslib_1.
|
|
5
|
-
tslib_1.__exportStar(require("./parse.js"), exports);
|
|
6
|
-
tslib_1.__exportStar(require("./build.js"), exports);
|
|
7
|
-
tslib_1.__exportStar(require("./opra-error-listener.js"), exports);
|
|
8
|
-
tslib_1.__exportStar(require("./filter-tree-visitor.js"), exports);
|
|
5
|
+
exports.OpraFilter = tslib_1.__importStar(require("./opra-filter.ns.js"));
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./ast/index.js"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./parse.js"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./build.js"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./opra-error-listener.js"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./filter-tree-visitor.js"), exports);
|
package/cjs/filter/parse.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.parse = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const antlr4_1 = require("@browsery/antlr4");
|
|
6
6
|
const OpraFilterLexer_js_1 = tslib_1.__importDefault(require("./antlr/OpraFilterLexer.js"));
|
|
@@ -8,7 +8,7 @@ const OpraFilterParser_js_1 = tslib_1.__importDefault(require("./antlr/OpraFilte
|
|
|
8
8
|
const errors_js_1 = require("./errors.js");
|
|
9
9
|
const filter_tree_visitor_js_1 = require("./filter-tree-visitor.js");
|
|
10
10
|
const opra_error_listener_js_1 = require("./opra-error-listener.js");
|
|
11
|
-
function
|
|
11
|
+
function parse(text, visitor) {
|
|
12
12
|
const chars = new antlr4_1.CharStream(text);
|
|
13
13
|
const lexer = new OpraFilterLexer_js_1.default(chars);
|
|
14
14
|
const tokenStream = new antlr4_1.CommonTokenStream(lexer);
|
|
@@ -21,8 +21,6 @@ function parseFilter(text, visitor) {
|
|
|
21
21
|
parser.removeErrorListeners();
|
|
22
22
|
parser.addErrorListener(errorListener);
|
|
23
23
|
const tree = parser.root();
|
|
24
|
-
visitor = visitor || new filter_tree_visitor_js_1.FilterTreeVisitor();
|
|
25
|
-
const result = visitor.visit(tree);
|
|
26
24
|
if (errors.length) {
|
|
27
25
|
const errMsgs = [];
|
|
28
26
|
for (const err of errors) {
|
|
@@ -35,6 +33,7 @@ function parseFilter(text, visitor) {
|
|
|
35
33
|
e.errors = errors;
|
|
36
34
|
throw e;
|
|
37
35
|
}
|
|
38
|
-
|
|
36
|
+
visitor = visitor || new filter_tree_visitor_js_1.FilterTreeVisitor();
|
|
37
|
+
return visitor.visit(tree);
|
|
39
38
|
}
|
|
40
|
-
exports.
|
|
39
|
+
exports.parse = parse;
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FilterCodec = void 0;
|
|
4
4
|
const index_js_1 = require("../../filter/ast/index.js");
|
|
5
|
-
const
|
|
5
|
+
const index_js_2 = require("../../filter/index.js");
|
|
6
6
|
class FilterCodec {
|
|
7
7
|
decode(value) {
|
|
8
8
|
if (value instanceof index_js_1.Expression)
|
|
9
9
|
return value;
|
|
10
|
-
return
|
|
10
|
+
return index_js_2.OpraFilter.parse(value);
|
|
11
11
|
}
|
|
12
12
|
encode(value) {
|
|
13
13
|
// @ts-ignore
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.HttpMessageHost = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
const http_parser_js_1 = require("http-parser-js");
|
|
6
5
|
const stream_1 = tslib_1.__importDefault(require("stream"));
|
|
6
|
+
const http_parser_1 = require("@browsery/http-parser");
|
|
7
7
|
const http_headers_js_1 = require("./http-headers.js");
|
|
8
8
|
const kHeaders = Symbol('kHeaders');
|
|
9
9
|
const kHeadersProxy = Symbol('kHeadersProxy');
|
|
@@ -148,11 +148,11 @@ class HttpMessageHost {
|
|
|
148
148
|
this.body = args.body;
|
|
149
149
|
}
|
|
150
150
|
_parseBuffer(buf, parserType) {
|
|
151
|
-
const parser = new
|
|
152
|
-
parser[
|
|
153
|
-
parser[
|
|
154
|
-
parser[
|
|
155
|
-
parser[
|
|
151
|
+
const parser = new http_parser_1.HTTPParser(parserType);
|
|
152
|
+
parser[http_parser_1.HTTPParser.kOnHeadersComplete] = this[kOnHeaderReceived].bind(this);
|
|
153
|
+
parser[http_parser_1.HTTPParser.kOnBody] = this[kOnBodyChunk].bind(this);
|
|
154
|
+
parser[http_parser_1.HTTPParser.kOnHeaders] = this[kOnTrailersReceived].bind(this);
|
|
155
|
+
parser[http_parser_1.HTTPParser.kOnMessageComplete] = this[kOnReadComplete].bind(this);
|
|
156
156
|
const buffer = Buffer.from(buf);
|
|
157
157
|
let x = parser.execute(buffer);
|
|
158
158
|
if (typeof x === 'object')
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.HttpRequestMessage = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const accepts_1 = tslib_1.__importDefault(require("accepts"));
|
|
6
|
-
const http_parser_js_1 = require("http-parser-js");
|
|
7
6
|
const type_is_1 = tslib_1.__importDefault(require("type-is"));
|
|
7
|
+
const http_parser_1 = require("@browsery/http-parser");
|
|
8
8
|
const http_message_host_js_1 = require("./http-message.host.js");
|
|
9
9
|
const http_params_js_1 = require("./http-params.js");
|
|
10
10
|
const HTTP_VERSION_PATTERN = /^(\d)\.(\d)$/;
|
|
@@ -130,7 +130,7 @@ class HttpRequestMessageHost extends http_message_host_js_1.HttpMessageHost {
|
|
|
130
130
|
}
|
|
131
131
|
[http_message_host_js_1.HttpMessageHost.kOnHeaderReceived](info) {
|
|
132
132
|
super[http_message_host_js_1.HttpMessageHost.kOnHeaderReceived](info);
|
|
133
|
-
this.method =
|
|
133
|
+
this.method = http_parser_1.HTTPParser.methods[info.method];
|
|
134
134
|
this.url = info.url;
|
|
135
135
|
this.baseUrl = info.url;
|
|
136
136
|
}
|
|
@@ -141,7 +141,7 @@ class HttpRequestMessageHost extends http_message_host_js_1.HttpMessageHost {
|
|
|
141
141
|
}
|
|
142
142
|
static fromBuffer(buffer) {
|
|
143
143
|
const msg = new HttpRequestMessageHost();
|
|
144
|
-
msg._parseBuffer(buffer,
|
|
144
|
+
msg._parseBuffer(buffer, http_parser_1.HTTPParser.REQUEST);
|
|
145
145
|
return msg;
|
|
146
146
|
}
|
|
147
147
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -6,9 +6,9 @@ const content_disposition_1 = tslib_1.__importDefault(require("content-dispositi
|
|
|
6
6
|
const cookie_1 = tslib_1.__importDefault(require("cookie"));
|
|
7
7
|
const cookie_signature_1 = tslib_1.__importDefault(require("cookie-signature"));
|
|
8
8
|
const encodeurl_1 = tslib_1.__importDefault(require("encodeurl"));
|
|
9
|
-
const http_parser_js_1 = require("http-parser-js");
|
|
10
9
|
const mime_types_1 = tslib_1.__importDefault(require("mime-types"));
|
|
11
10
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
11
|
+
const http_parser_1 = require("@browsery/http-parser");
|
|
12
12
|
const http_status_messages_js_1 = require("./enums/http-status-messages.js");
|
|
13
13
|
const http_message_host_js_1 = require("./http-message.host.js");
|
|
14
14
|
/**
|
|
@@ -227,7 +227,7 @@ class HttpResponseMessageHost extends http_message_host_js_1.HttpMessageHost {
|
|
|
227
227
|
}
|
|
228
228
|
static fromBuffer(buffer) {
|
|
229
229
|
const msg = new HttpResponseMessageHost();
|
|
230
|
-
msg._parseBuffer(buffer,
|
|
230
|
+
msg._parseBuffer(buffer, http_parser_1.HTTPParser.RESPONSE);
|
|
231
231
|
return msg;
|
|
232
232
|
}
|
|
233
233
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
package/cjs/i18n/i18n.js
CHANGED
|
@@ -4,8 +4,8 @@ exports.I18n = exports.BaseI18n = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const fast_tokenizer_1 = require("fast-tokenizer");
|
|
6
6
|
const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
7
|
-
const i18next_1 = tslib_1.__importDefault(require("i18next"));
|
|
8
7
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
8
|
+
const i18next_1 = tslib_1.__importDefault(require("@browsery/i18next"));
|
|
9
9
|
const index_js_1 = require("../helpers/index.js");
|
|
10
10
|
const string_utils_js_1 = require("./string-utils.js");
|
|
11
11
|
exports.BaseI18n = Object.getPrototypeOf(i18next_1.default).constructor;
|
|
@@ -138,7 +138,7 @@ const proto = {
|
|
|
138
138
|
if (dataType && !dataType.additionalFields) {
|
|
139
139
|
if (silent)
|
|
140
140
|
return { done: true, value: [] };
|
|
141
|
-
throw new Error(`Invalid field
|
|
141
|
+
throw new Error(`Unknown or Invalid field (${curPath})`);
|
|
142
142
|
}
|
|
143
143
|
}
|
|
144
144
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import omit from 'lodash.omit';
|
|
2
2
|
import merge from 'putil-merge';
|
|
3
3
|
import { BadRequestError } from '../../exception/index.js';
|
|
4
|
-
import {
|
|
4
|
+
import { OpraFilter } from '../../filter/index.js';
|
|
5
5
|
import { omitUndefined } from '../../helpers/index.js';
|
|
6
6
|
import { translate } from '../../i18n/index.js';
|
|
7
7
|
import { OpraSchema } from '../../schema/index.js';
|
|
@@ -133,23 +133,29 @@ const proto = {
|
|
|
133
133
|
});
|
|
134
134
|
return normalized;
|
|
135
135
|
},
|
|
136
|
-
normalizeFilter(
|
|
137
|
-
if (
|
|
136
|
+
normalizeFilter(filter) {
|
|
137
|
+
if (!filter)
|
|
138
|
+
return;
|
|
139
|
+
const ast = typeof filter === 'string' ? OpraFilter.parse(filter) : filter;
|
|
140
|
+
if (ast instanceof OpraFilter.ComparisonExpression) {
|
|
138
141
|
this.normalizeFilter(ast.left);
|
|
142
|
+
if (!(ast.left instanceof OpraFilter.QualifiedIdentifier && ast.left.field))
|
|
143
|
+
throw new TypeError(`Invalid filter query. Left side should be a data field.`);
|
|
144
|
+
this.normalizeFilter(ast.right);
|
|
139
145
|
}
|
|
140
|
-
else if (ast instanceof LogicalExpression) {
|
|
146
|
+
else if (ast instanceof OpraFilter.LogicalExpression) {
|
|
141
147
|
ast.items.forEach(item => this.normalizeFilter(item));
|
|
142
148
|
}
|
|
143
|
-
else if (ast instanceof ArithmeticExpression) {
|
|
149
|
+
else if (ast instanceof OpraFilter.ArithmeticExpression) {
|
|
144
150
|
ast.items.forEach(item => this.normalizeFilter(item.expression));
|
|
145
151
|
}
|
|
146
|
-
else if (ast instanceof ArrayExpression) {
|
|
152
|
+
else if (ast instanceof OpraFilter.ArrayExpression) {
|
|
147
153
|
ast.items.forEach(item => this.normalizeFilter(item));
|
|
148
154
|
}
|
|
149
|
-
else if (ast instanceof
|
|
155
|
+
else if (ast instanceof OpraFilter.ParenthesizedExpression) {
|
|
150
156
|
this.normalizeFilter(ast.expression);
|
|
151
157
|
}
|
|
152
|
-
else if (ast instanceof QualifiedIdentifier) {
|
|
158
|
+
else if (ast instanceof OpraFilter.QualifiedIdentifier) {
|
|
153
159
|
ast.field = this.type.findField(ast.value);
|
|
154
160
|
ast.dataType = ast.field?.type || this.document.getDataType('any');
|
|
155
161
|
ast.value = this.type.normalizeFieldPath(ast.value);
|