@traqula/parser-sparql-1-1-adjust 0.0.20 → 0.0.22
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/cjs/lib/Parser.js +46 -0
- package/dist/cjs/lib/index.js +22 -0
- package/dist/cjs/spec/parser.js +43 -0
- package/dist/cjs/test/statics.test.js +59 -0
- package/dist/esm/lib/Parser.js.map +1 -0
- package/dist/esm/lib/index.js.map +1 -0
- package/dist/esm/spec/parser.d.ts +4 -0
- package/dist/esm/spec/parser.js +13 -0
- package/dist/esm/spec/parser.js.map +1 -0
- package/dist/esm/test/statics.test.d.ts +1 -0
- package/dist/esm/test/statics.test.js +59 -0
- package/dist/esm/test/statics.test.js.map +1 -0
- package/package.json +18 -21
- package/lib/Parser.js.map +0 -1
- package/lib/index.cjs +0 -15195
- package/lib/index.js.map +0 -1
- /package/{lib → dist/esm/lib}/Parser.d.ts +0 -0
- /package/{lib → dist/esm/lib}/Parser.js +0 -0
- /package/{lib → dist/esm/lib}/index.d.ts +0 -0
- /package/{lib → dist/esm/lib}/index.js +0 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var Parser_exports = {};
|
|
20
|
+
__export(Parser_exports, {
|
|
21
|
+
Parser: () => Parser,
|
|
22
|
+
adjustLexerBuilder: () => adjustLexerBuilder,
|
|
23
|
+
adjustParserBuilder: () => adjustParserBuilder
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(Parser_exports);
|
|
26
|
+
var import_core = require("@traqula/core");
|
|
27
|
+
var import_parser_sparql_1_1 = require("@traqula/parser-sparql-1-1");
|
|
28
|
+
var import_rules_sparql_1_1 = require("@traqula/rules-sparql-1-1");
|
|
29
|
+
var import_rules_sparql_1_1_adjust = require("@traqula/rules-sparql-1-1-adjust");
|
|
30
|
+
const adjustParserBuilder = import_core.ParserBuilder.create(import_parser_sparql_1_1.sparql11ParserBuilder).typePatch().addRule(import_rules_sparql_1_1_adjust.gram.builtInAdjust).patchRule(import_rules_sparql_1_1_adjust.gram.builtInPatch);
|
|
31
|
+
const adjustLexerBuilder = import_core.LexerBuilder.create(import_rules_sparql_1_1.lex.sparql11LexerBuilder).addBefore(import_rules_sparql_1_1.lex.a, import_rules_sparql_1_1_adjust.lex.BuiltInAdjust);
|
|
32
|
+
class Parser extends import_rules_sparql_1_1.MinimalSparqlParser {
|
|
33
|
+
constructor() {
|
|
34
|
+
const parser = adjustParserBuilder.build({
|
|
35
|
+
tokenVocabulary: adjustLexerBuilder.tokenVocabulary,
|
|
36
|
+
queryPreProcessor: import_rules_sparql_1_1.sparqlCodepointEscape
|
|
37
|
+
});
|
|
38
|
+
super(parser);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
42
|
+
0 && (module.exports = {
|
|
43
|
+
Parser,
|
|
44
|
+
adjustLexerBuilder,
|
|
45
|
+
adjustParserBuilder
|
|
46
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
var lib_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(lib_exports);
|
|
18
|
+
__reExport(lib_exports, require("./Parser.js"), module.exports);
|
|
19
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
20
|
+
0 && (module.exports = {
|
|
21
|
+
...require("./Parser.js")
|
|
22
|
+
});
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var parser_exports = {};
|
|
20
|
+
__export(parser_exports, {
|
|
21
|
+
parse: () => parse,
|
|
22
|
+
query: () => query,
|
|
23
|
+
update: () => update
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(parser_exports);
|
|
26
|
+
var import_rdf_test_suite = require("rdf-test-suite");
|
|
27
|
+
var import_lib = require("../lib/index.js");
|
|
28
|
+
function parse(query2, context = {}) {
|
|
29
|
+
const parser = new import_lib.Parser();
|
|
30
|
+
parser.parse(query2, context);
|
|
31
|
+
}
|
|
32
|
+
function query() {
|
|
33
|
+
return Promise.reject(new import_rdf_test_suite.ErrorSkipped("Querying is not supported"));
|
|
34
|
+
}
|
|
35
|
+
function update() {
|
|
36
|
+
return Promise.reject(new import_rdf_test_suite.ErrorSkipped("Updating is not supported"));
|
|
37
|
+
}
|
|
38
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
39
|
+
0 && (module.exports = {
|
|
40
|
+
parse,
|
|
41
|
+
query,
|
|
42
|
+
update
|
|
43
|
+
});
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var import_test_utils = require("@traqula/test-utils");
|
|
3
|
+
var import_rdf_data_factory = require("rdf-data-factory");
|
|
4
|
+
var import_vitest = require("vitest");
|
|
5
|
+
var import_lib = require("../lib/index.js");
|
|
6
|
+
(0, import_vitest.describe)("a SPARQL 1.1 + adjust parser", () => {
|
|
7
|
+
const parser = new import_lib.Parser();
|
|
8
|
+
const context = { prefixes: { ex: "http://example.org/" } };
|
|
9
|
+
(0, import_vitest.it)("passes chevrotain validation", () => {
|
|
10
|
+
import_lib.adjustParserBuilder.build({
|
|
11
|
+
tokenVocabulary: import_lib.adjustLexerBuilder.tokenVocabulary,
|
|
12
|
+
lexerConfig: {
|
|
13
|
+
skipValidations: false,
|
|
14
|
+
ensureOptimizations: true
|
|
15
|
+
},
|
|
16
|
+
parserConfig: {
|
|
17
|
+
skipValidations: false
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
(0, import_vitest.describe)("positive paths", () => {
|
|
22
|
+
for (const { name, statics } of (0, import_test_utils.positiveTest)("paths")) {
|
|
23
|
+
(0, import_vitest.it)(`can parse ${name}`, async ({ expect }) => {
|
|
24
|
+
const { query, ast } = await statics();
|
|
25
|
+
const res = parser.parsePath(query, context);
|
|
26
|
+
expect(res).toEqualParsedQuery(ast);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
(0, import_vitest.describe)("positive sparql 1.1", () => {
|
|
31
|
+
for (const { name, statics } of (0, import_test_utils.positiveTest)("sparql-1-1")) {
|
|
32
|
+
(0, import_vitest.it)(`can parse ${name}`, async ({ expect }) => {
|
|
33
|
+
const { query, ast } = await statics();
|
|
34
|
+
const res = parser.parse(query, context);
|
|
35
|
+
expect(res).toEqualParsedQuery(ast);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
(0, import_vitest.describe)("negative SPARQL 1.1", () => {
|
|
40
|
+
for (const { name, statics } of (0, import_test_utils.negativeTest)("sparql-1-1-invalid")) {
|
|
41
|
+
(0, import_vitest.it)(`should NOT parse ${name}`, async ({ expect }) => {
|
|
42
|
+
const { query } = await statics();
|
|
43
|
+
expect(() => parser.parse(query, context)).toThrow();
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
(0, import_vitest.describe)("specific sparql 1.1 tests", () => {
|
|
48
|
+
(0, import_test_utils.importSparql11NoteTests)(parser, new import_rdf_data_factory.DataFactory());
|
|
49
|
+
});
|
|
50
|
+
(0, import_vitest.it)("parses ADJUST function", ({ expect }) => {
|
|
51
|
+
const query = `
|
|
52
|
+
SELECT ?s ?p (ADJUST(?o, "-PT10H"^^<http://www.w3.org/2001/XMLSchema#dayTimeDuration>) as ?adjusted) WHERE {
|
|
53
|
+
?s ?p ?o
|
|
54
|
+
}
|
|
55
|
+
`;
|
|
56
|
+
const res = parser.parse(query);
|
|
57
|
+
expect(res).toMatchObject({});
|
|
58
|
+
});
|
|
59
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Parser.js","sourceRoot":"","sources":["../../../lib/Parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,qBAAqB,EAAE,GAAG,IAAI,GAAG,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACnG,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,kCAAkC,CAAC;AAE7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAAC,MAAM,CAAC,qBAAqB,CAAC;IAC5E,wEAAwE;KACvE,SAAS,EAAoC;KAC7C,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;KAC3B,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAIhC,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;AAEpH,MAAM,OAAO,MAAO,SAAQ,mBAAgC;IAC1D;QACE,MAAM,MAAM,GAAmB,mBAAmB,CAAC,KAAK,CAAC;YACvD,eAAe,EAAE,kBAAkB,CAAC,eAAe;YACnD,iBAAiB,EAAE,qBAAqB;SACzC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;CACF","sourcesContent":["import { ParserBuilder, LexerBuilder } from '@traqula/core';\nimport { sparql11ParserBuilder } from '@traqula/parser-sparql-1-1';\nimport type { gram as g11, SparqlQuery } from '@traqula/rules-sparql-1-1';\nimport { sparqlCodepointEscape, lex as l11, MinimalSparqlParser } from '@traqula/rules-sparql-1-1';\nimport { gram, lex } from '@traqula/rules-sparql-1-1-adjust';\n\nexport const adjustParserBuilder = ParserBuilder.create(sparql11ParserBuilder)\n // This typePatch is not needed, but we need to import g11 for our types\n .typePatch<{ [g11.builtInCall.name]: [any]}>()\n .addRule(gram.builtInAdjust)\n .patchRule(gram.builtInPatch);\n\nexport type Adjust11Parser = ReturnType<typeof adjustParserBuilder.build>;\n\nexport const adjustLexerBuilder = LexerBuilder.create(l11.sparql11LexerBuilder).addBefore(l11.a, lex.BuiltInAdjust);\n\nexport class Parser extends MinimalSparqlParser<SparqlQuery> {\n public constructor() {\n const parser: Adjust11Parser = adjustParserBuilder.build({\n tokenVocabulary: adjustLexerBuilder.tokenVocabulary,\n queryPreProcessor: sparqlCodepointEscape,\n });\n super(parser);\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC","sourcesContent":["export * from './Parser.js';\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ErrorSkipped } from 'rdf-test-suite';
|
|
2
|
+
import { Parser } from '../lib/index.js';
|
|
3
|
+
export function parse(query, context = {}) {
|
|
4
|
+
const parser = new Parser();
|
|
5
|
+
parser.parse(query, context);
|
|
6
|
+
}
|
|
7
|
+
export function query() {
|
|
8
|
+
return Promise.reject(new ErrorSkipped('Querying is not supported'));
|
|
9
|
+
}
|
|
10
|
+
export function update() {
|
|
11
|
+
return Promise.reject(new ErrorSkipped('Updating is not supported'));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../spec/parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,MAAM,UAAU,KAAK,CAAC,KAAa,EAAE,UAAkC,EAAE;IACvE,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;IAC5B,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC/B,CAAC;AACD,MAAM,UAAU,KAAK;IACnB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,2BAA2B,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,MAAM;IACpB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,2BAA2B,CAAC,CAAC,CAAC;AACvE,CAAC","sourcesContent":["import type { SparqlContext } from '@traqula/rules-sparql-1-1';\nimport { ErrorSkipped } from 'rdf-test-suite';\nimport { Parser } from '../lib/index.js';\n\nexport function parse(query: string, context: Partial<SparqlContext> = {}): void {\n const parser = new Parser();\n parser.parse(query, context);\n}\nexport function query(): Promise<never> {\n return Promise.reject(new ErrorSkipped('Querying is not supported'));\n}\n\nexport function update(): Promise<never> {\n return Promise.reject(new ErrorSkipped('Updating is not supported'));\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { positiveTest, importSparql11NoteTests, negativeTest } from '@traqula/test-utils';
|
|
2
|
+
import { DataFactory } from 'rdf-data-factory';
|
|
3
|
+
import { describe, it } from 'vitest';
|
|
4
|
+
import { adjustParserBuilder, adjustLexerBuilder, Parser } from '../lib/index.js';
|
|
5
|
+
describe('a SPARQL 1.1 + adjust parser', () => {
|
|
6
|
+
const parser = new Parser();
|
|
7
|
+
const context = { prefixes: { ex: 'http://example.org/' } };
|
|
8
|
+
it('passes chevrotain validation', () => {
|
|
9
|
+
adjustParserBuilder.build({
|
|
10
|
+
tokenVocabulary: adjustLexerBuilder.tokenVocabulary,
|
|
11
|
+
lexerConfig: {
|
|
12
|
+
skipValidations: false,
|
|
13
|
+
ensureOptimizations: true,
|
|
14
|
+
},
|
|
15
|
+
parserConfig: {
|
|
16
|
+
skipValidations: false,
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
describe('positive paths', () => {
|
|
21
|
+
for (const { name, statics } of positiveTest('paths')) {
|
|
22
|
+
it(`can parse ${name}`, async ({ expect }) => {
|
|
23
|
+
const { query, ast } = await statics();
|
|
24
|
+
const res = parser.parsePath(query, context);
|
|
25
|
+
expect(res).toEqualParsedQuery(ast);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
describe('positive sparql 1.1', () => {
|
|
30
|
+
for (const { name, statics } of positiveTest('sparql-1-1')) {
|
|
31
|
+
it(`can parse ${name}`, async ({ expect }) => {
|
|
32
|
+
const { query, ast } = await statics();
|
|
33
|
+
const res = parser.parse(query, context);
|
|
34
|
+
expect(res).toEqualParsedQuery(ast);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
describe('negative SPARQL 1.1', () => {
|
|
39
|
+
for (const { name, statics } of negativeTest('sparql-1-1-invalid')) {
|
|
40
|
+
it(`should NOT parse ${name}`, async ({ expect }) => {
|
|
41
|
+
const { query } = await statics();
|
|
42
|
+
expect(() => parser.parse(query, context)).toThrow();
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
describe('specific sparql 1.1 tests', () => {
|
|
47
|
+
importSparql11NoteTests(parser, new DataFactory());
|
|
48
|
+
});
|
|
49
|
+
it('parses ADJUST function', ({ expect }) => {
|
|
50
|
+
const query = `
|
|
51
|
+
SELECT ?s ?p (ADJUST(?o, "-PT10H"^^<http://www.w3.org/2001/XMLSchema#dayTimeDuration>) as ?adjusted) WHERE {
|
|
52
|
+
?s ?p ?o
|
|
53
|
+
}
|
|
54
|
+
`;
|
|
55
|
+
const res = parser.parse(query);
|
|
56
|
+
expect(res).toMatchObject({});
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=statics.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statics.test.js","sourceRoot":"","sources":["../../../test/statics.test.ts"],"names":[],"mappings":"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","sourcesContent":["import type { BaseQuad } from '@rdfjs/types';\nimport { positiveTest, importSparql11NoteTests, negativeTest } from '@traqula/test-utils';\nimport { DataFactory } from 'rdf-data-factory';\nimport { describe, it } from 'vitest';\nimport { adjustParserBuilder, adjustLexerBuilder, Parser } from '../lib/index.js';\n\ndescribe('a SPARQL 1.1 + adjust parser', () => {\n const parser = new Parser();\n const context = { prefixes: { ex: 'http://example.org/' }};\n\n it('passes chevrotain validation', () => {\n adjustParserBuilder.build({\n tokenVocabulary: adjustLexerBuilder.tokenVocabulary,\n lexerConfig: {\n skipValidations: false,\n ensureOptimizations: true,\n },\n parserConfig: {\n skipValidations: false,\n },\n });\n });\n\n describe('positive paths', () => {\n for (const { name, statics } of positiveTest('paths')) {\n it(`can parse ${name}`, async({ expect }) => {\n const { query, ast } = await statics();\n const res: unknown = parser.parsePath(query, context);\n expect(res).toEqualParsedQuery(ast);\n });\n }\n });\n\n describe('positive sparql 1.1', () => {\n for (const { name, statics } of positiveTest('sparql-1-1')) {\n it(`can parse ${name}`, async({ expect }) => {\n const { query, ast } = await statics();\n const res: unknown = parser.parse(query, context);\n expect(res).toEqualParsedQuery(ast);\n });\n }\n });\n\n describe('negative SPARQL 1.1', () => {\n for (const { name, statics } of negativeTest('sparql-1-1-invalid')) {\n it(`should NOT parse ${name}`, async({ expect }) => {\n const { query } = await statics();\n expect(() => parser.parse(query, context)).toThrow();\n });\n }\n });\n\n describe('specific sparql 1.1 tests', () => {\n importSparql11NoteTests(parser, new DataFactory<BaseQuad>());\n });\n\n it('parses ADJUST function', ({ expect }) => {\n const query = `\nSELECT ?s ?p (ADJUST(?o, \"-PT10H\"^^<http://www.w3.org/2001/XMLSchema#dayTimeDuration>) as ?adjusted) WHERE {\n ?s ?p ?o\n}\n`;\n const res: unknown = parser.parse(query);\n expect(res).toMatchObject({});\n });\n});\n"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@traqula/parser-sparql-1-1-adjust",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.22",
|
|
5
5
|
"description": "SPARQL 1.1 + ADJUST parser",
|
|
6
6
|
"lsd:module": true,
|
|
7
7
|
"license": "MIT",
|
|
@@ -17,32 +17,29 @@
|
|
|
17
17
|
"exports": {
|
|
18
18
|
"./package.json": "./package.json",
|
|
19
19
|
".": {
|
|
20
|
-
"types": "./lib/index.d.ts",
|
|
21
|
-
"import": "./lib/index.js",
|
|
22
|
-
"require": "./lib/index.
|
|
20
|
+
"types": "./dist/esm/lib/index.d.ts",
|
|
21
|
+
"import": "./dist/esm/lib/index.js",
|
|
22
|
+
"require": "./dist/cjs/lib/index.js"
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
|
-
"main": "lib/index.js",
|
|
25
|
+
"main": "dist/esm/lib/index.js",
|
|
26
26
|
"publishConfig": {
|
|
27
27
|
"access": "public"
|
|
28
28
|
},
|
|
29
29
|
"files": [
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"lib/**/*.js.map"
|
|
30
|
+
"dist/**/*.d.ts",
|
|
31
|
+
"dist/**/*.js",
|
|
32
|
+
"dist/**/*.js.map"
|
|
34
33
|
],
|
|
35
34
|
"engines": {
|
|
36
35
|
"node": "^20.19.0 || >=22.12.0"
|
|
37
36
|
},
|
|
38
|
-
"typings": "lib/index",
|
|
39
37
|
"scripts": {
|
|
40
38
|
"build": "yarn build:ts && yarn build:transpile && yarn build:transpile-spec",
|
|
41
|
-
"build:ts": "node \"../../node_modules/typescript/bin/tsc\"",
|
|
42
|
-
"build:transpile": "
|
|
43
|
-
"
|
|
44
|
-
"spec:
|
|
45
|
-
"spec:adjust-spec-tests": "rdf-test-suite spec/parser.cjs https://raw.githubusercontent.com/kasei/sparql-12/xsd_datetime_duration/tests/xsd_functions/manifest.ttl -c ../../.rdf-test-suite-cache/",
|
|
39
|
+
"build:ts": "node \"../../node_modules/typescript/bin/tsc\" -b",
|
|
40
|
+
"build:transpile": "esbuild \"dist/esm/**/*.js\" --outdir=dist/cjs --platform=node --format=cjs",
|
|
41
|
+
"spec:base": "rdf-test-suite dist/cjs/spec/parser.js http://w3c.github.io/rdf-tests/sparql/sparql11/manifest-all.ttl -c ../../.rdf-test-suite-cache/",
|
|
42
|
+
"spec:adjust-spec-tests": "rdf-test-suite dist/cjs/spec/parser.js https://raw.githubusercontent.com/kasei/sparql-12/xsd_datetime_duration/tests/xsd_functions/manifest.ttl -c ../../.rdf-test-suite-cache/",
|
|
46
43
|
"spec:query": "yarn spec:base -- -s http://www.w3.org/TR/sparql11-query/",
|
|
47
44
|
"spec:update": "yarn spec:base -- -s http://www.w3.org/TR/sparql11-update/",
|
|
48
45
|
"spec:earl:query": "yarn spec:query --silent -- -o earl -p spec/earl-meta.json > spec/earl-query.ttl",
|
|
@@ -51,16 +48,16 @@
|
|
|
51
48
|
"spec:earl": "yarn spec:earl:query && yarn spec:earl:update"
|
|
52
49
|
},
|
|
53
50
|
"dependencies": {
|
|
54
|
-
"@traqula/core": "^0.0.
|
|
55
|
-
"@traqula/parser-sparql-1-1": "^0.0.
|
|
56
|
-
"@traqula/rules-sparql-1-1": "^0.0.
|
|
57
|
-
"@traqula/rules-sparql-1-1-adjust": "^0.0.
|
|
51
|
+
"@traqula/core": "^0.0.22",
|
|
52
|
+
"@traqula/parser-sparql-1-1": "^0.0.22",
|
|
53
|
+
"@traqula/rules-sparql-1-1": "^0.0.22",
|
|
54
|
+
"@traqula/rules-sparql-1-1-adjust": "^0.0.22"
|
|
58
55
|
},
|
|
59
56
|
"devDependencies": {
|
|
60
57
|
"@rdfjs/types": "^2.0.0",
|
|
61
|
-
"@traqula/test-utils": "^0.0.
|
|
58
|
+
"@traqula/test-utils": "^0.0.22",
|
|
62
59
|
"rdf-data-factory": "^2.0.1",
|
|
63
60
|
"rdf-test-suite": "^2.0.0"
|
|
64
61
|
},
|
|
65
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "e0cf04a50b3558229ebcc5992cf9562b14f9a077"
|
|
66
63
|
}
|
package/lib/Parser.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Parser.js","sourceRoot":"","sources":["Parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,qBAAqB,EAAE,GAAG,IAAI,GAAG,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACnG,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,kCAAkC,CAAC;AAE7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAAC,MAAM,CAAC,qBAAqB,CAAC;IAC5E,wEAAwE;KACvE,SAAS,EAAoC;KAC7C,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;KAC3B,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAIhC,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;AAEpH,MAAM,OAAO,MAAO,SAAQ,mBAAgC;IAC1D;QACE,MAAM,MAAM,GAAmB,mBAAmB,CAAC,KAAK,CAAC;YACvD,eAAe,EAAE,kBAAkB,CAAC,eAAe;YACnD,iBAAiB,EAAE,qBAAqB;SACzC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;CACF","sourcesContent":["import { ParserBuilder, LexerBuilder } from '@traqula/core';\nimport { sparql11ParserBuilder } from '@traqula/parser-sparql-1-1';\nimport type { gram as g11, SparqlQuery } from '@traqula/rules-sparql-1-1';\nimport { sparqlCodepointEscape, lex as l11, MinimalSparqlParser } from '@traqula/rules-sparql-1-1';\nimport { gram, lex } from '@traqula/rules-sparql-1-1-adjust';\n\nexport const adjustParserBuilder = ParserBuilder.create(sparql11ParserBuilder)\n // This typePatch is not needed, but we need to import g11 for our types\n .typePatch<{ [g11.builtInCall.name]: [any]}>()\n .addRule(gram.builtInAdjust)\n .patchRule(gram.builtInPatch);\n\nexport type Adjust11Parser = ReturnType<typeof adjustParserBuilder.build>;\n\nexport const adjustLexerBuilder = LexerBuilder.create(l11.sparql11LexerBuilder).addBefore(l11.a, lex.BuiltInAdjust);\n\nexport class Parser extends MinimalSparqlParser<SparqlQuery> {\n public constructor() {\n const parser: Adjust11Parser = adjustParserBuilder.build({\n tokenVocabulary: adjustLexerBuilder.tokenVocabulary,\n queryPreProcessor: sparqlCodepointEscape,\n });\n super(parser);\n }\n}\n"]}
|