@traqula/parser-sparql-1-2 0.0.23 → 0.0.25

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@traqula/parser-sparql-1-2",
3
3
  "type": "module",
4
- "version": "0.0.23",
4
+ "version": "0.0.25",
5
5
  "description": "SPARQL 1.2 parser",
6
6
  "lsd:module": true,
7
7
  "license": "MIT",
@@ -27,18 +27,19 @@
27
27
  "access": "public"
28
28
  },
29
29
  "files": [
30
- "dist/**/*.d.ts",
31
- "dist/**/*.js",
32
- "dist/**/*.js.map",
33
- "dist/**/package.json"
30
+ "dist/*/lib/**/*.d.ts",
31
+ "dist/*/lib/**/*.js",
32
+ "dist/*/lib/**/*.js.map",
33
+ "dist/cjs/package.json"
34
34
  ],
35
35
  "engines": {
36
36
  "node": "^20.19.0 || >=22.12.0"
37
37
  },
38
38
  "scripts": {
39
- "build": "yarn build:ts && yarn build:transpile && yarn build:transpile-spec",
39
+ "build": "yarn build:ts && yarn build:cjs",
40
40
  "build:ts": "node \"../../node_modules/typescript/bin/tsc\" -b",
41
- "build:transpile": "esbuild \"dist/esm/**/*.js\" --outdir=dist/cjs --platform=node --format=cjs",
41
+ "build:cjs": "node \"../../node_modules/typescript/bin/tsc\" -b tsconfig.cjs.json",
42
+ "spec:base-1-0": "rdf-test-suite dist/cjs/spec/parser.js https://w3c.github.io/rdf-tests/sparql/sparql10/manifest.ttl -c ../../.rdf-test-suite-cache/ --skip \"(syn-bad-GRAPH-breaks-BGP|syn-bad-UNION-breaks-BGP|syn-bad-OPT-breaks-BGP|syn-bad-38|syn-bad-37|syn-bad-36|syn-bad-35|syn-bad-34|blabel-cross-union-bad|blabel-cross-optional-bad|blabel-cross-graph-bad)\"",
42
43
  "spec:base-1-1": "rdf-test-suite dist/cjs/spec/parser.js http://w3c.github.io/rdf-tests/sparql/sparql11/manifest-all.ttl -c ../../.rdf-test-suite-cache/",
43
44
  "spec:base-1-2": "rdf-test-suite dist/cjs/spec/parser.js https://w3c.github.io/rdf-tests/sparql/sparql12/manifest.ttl -c ../../.rdf-test-suite-cache/",
44
45
  "spec:query-1-1": "yarn spec:base-1-1 -- -s http://www.w3.org/TR/sparql11-query/",
@@ -47,22 +48,22 @@
47
48
  "spec:earl:query-1-1": "yarn spec:query-1-1 --silent -- -o earl -p spec/earl-meta.json > spec/earl-sparql-1-1-query.ttl",
48
49
  "spec:earl:update-1-1": "yarn spec:update-1-1 --silent -- -o earl -p spec/earl-meta.json > spec/earl-sparql-1-1-update.ttl",
49
50
  "spec:earl:query-1-2": "yarn spec:query-1-2 --silent -- -o earl -p spec/earl-meta.json > spec/earl-sparql-1-2-query.ttl",
50
- "spec:all": "exit 0 && yarn spec:base-1-1 && yarn spec:base-1-2 && yarn spec:earl:query-1-2",
51
- "spec:earl": "yarn spec:earl:query-1-1 && yarn spec:earl:update-1-1"
51
+ "spec:earl:base-1-0": "yarn spec:base-1-0 --silent -- -o earl -p spec/earl-meta.json > spec/earl-sparql-1-0-query.ttl",
52
+ "spec:all": "yarn spec:base-1-0 && yarn spec:base-1-1 && yarn spec:base-1-2 && yarn spec:query-1-2",
53
+ "spec:earl": "yarn spec:earl:base-1-0 && yarn spec:earl:query-1-1 && yarn spec:earl:update-1-1"
52
54
  },
53
55
  "dependencies": {
54
- "@traqula/core": "^0.0.23",
55
- "@traqula/parser-sparql-1-1": "^0.0.23",
56
- "@traqula/rules-sparql-1-1": "^0.0.23",
57
- "@traqula/rules-sparql-1-2": "^0.0.23",
56
+ "@traqula/core": "^0.0.25",
57
+ "@traqula/parser-sparql-1-1": "^0.0.25",
58
+ "@traqula/rules-sparql-1-1": "^0.0.25",
59
+ "@traqula/rules-sparql-1-2": "^0.0.25",
58
60
  "rdf-data-factory": "^2.0.1"
59
61
  },
60
62
  "devDependencies": {
61
- "@rdfjs/types": "^2.0.1",
62
- "@traqula/test-utils": "^0.0.23",
63
+ "@traqula/test-utils": "^0.0.25",
63
64
  "rdf-data-factory": "^2.0.1",
64
65
  "rdf-test-suite": "^2.0.0",
65
66
  "sparqljs": "^3.7.3"
66
67
  },
67
- "gitHead": "36ec1aae80524a84f044182811a55ebeef6d9cda"
68
+ "gitHead": "52cfb2b513294dc154febc0209ac811ceeb6785b"
68
69
  }
@@ -1,43 +0,0 @@
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
- });
@@ -1,22 +0,0 @@
1
- "use strict";
2
- var import_test_utils = require("@traqula/test-utils");
3
- var import_sparqljs = require("sparqljs");
4
- var import_vitest = require("vitest");
5
- var import_lib = require("../lib/index.js");
6
- (0, import_vitest.describe)("query 1.2, exclude construction", () => {
7
- const traqulaParser = new import_lib.Parser();
8
- const sparqlJSparser = new import_sparqljs.Parser();
9
- (0, import_vitest.describe)("general queries", async () => {
10
- const allQueries = await Promise.all([...(0, import_test_utils.positiveTest)("sparql-1-1")].map((x) => x.statics().then((x2) => x2.query)));
11
- (0, import_vitest.bench)("traqula parse 1.2", () => {
12
- for (const query of allQueries) {
13
- traqulaParser.parse(query);
14
- }
15
- });
16
- (0, import_vitest.bench)("sparqljs", () => {
17
- for (const query of allQueries) {
18
- sparqlJSparser.parse(query);
19
- }
20
- });
21
- });
22
- });
@@ -1,113 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from === "object" || typeof from === "function") {
10
- for (let key of __getOwnPropNames(from))
11
- if (!__hasOwnProp.call(to, key) && key !== except)
12
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
- }
14
- return to;
15
- };
16
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
- // If the importer is in node compatibility mode or this is not an ESM
18
- // file that has been converted to a CommonJS file using a Babel-
19
- // compatible transform (i.e. "__esModule" has not been set), then set
20
- // "default" to the CommonJS "module.exports" for node compatibility.
21
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
- mod
23
- ));
24
- var import_node_fs = __toESM(require("node:fs"), 1);
25
- var import_node_path = __toESM(require("node:path"), 1);
26
- var import_rules_sparql_1_2 = require("@traqula/rules-sparql-1-2");
27
- var import_test_utils = require("@traqula/test-utils");
28
- var import_rdf_data_factory = require("rdf-data-factory");
29
- var import_vitest = require("vitest");
30
- var import_lib = require("../lib/index.js");
31
- (0, import_vitest.describe)("a SPARQL 1.2 parser", () => {
32
- const parser = new import_lib.Parser();
33
- const F = new import_rules_sparql_1_2.AstFactory();
34
- const context = { prefixes: { ex: "http://example.org/" } };
35
- function _sinkAst(suite, test, response) {
36
- const dir = (0, import_test_utils.getStaticFilePath)();
37
- const fileLoc = import_node_path.default.join(dir, suite, `${test}.json`);
38
- import_node_fs.default.writeFileSync(fileLoc, JSON.stringify(response, null, 2));
39
- }
40
- (0, import_vitest.it)("passes chevrotain validation", () => {
41
- import_lib.sparql12ParserBuilder.build({
42
- tokenVocabulary: import_rules_sparql_1_2.lex.sparql12LexerBuilder.tokenVocabulary,
43
- lexerConfig: {
44
- skipValidations: false,
45
- ensureOptimizations: true
46
- },
47
- parserConfig: {
48
- skipValidations: false
49
- }
50
- });
51
- });
52
- (0, import_vitest.describe)("positive paths", () => {
53
- for (const { name, statics } of (0, import_test_utils.positiveTest)("paths")) {
54
- (0, import_vitest.it)(`can parse ${name}`, async ({ expect }) => {
55
- const { query, ast } = await statics();
56
- const res = parser.parsePath(query, context);
57
- expect(res).toEqualParsedQuery(ast);
58
- });
59
- }
60
- });
61
- (0, import_vitest.describe)("positive sparql 1.1", () => {
62
- for (const { name, statics } of (0, import_test_utils.positiveTest)("sparql-1-1")) {
63
- (0, import_vitest.it)(`can parse ${name}`, async ({ expect }) => {
64
- const { query, ast } = await statics();
65
- const res = parser.parse(query, context);
66
- expect(res).toEqualParsedQueryIgnoring((obj) => F.isTriple(obj), ["annotations"], ast);
67
- });
68
- }
69
- });
70
- (0, import_vitest.describe)("negative SPARQL 1.1", () => {
71
- for (const { name, statics } of (0, import_test_utils.negativeTest)("sparql-1-1-invalid")) {
72
- (0, import_vitest.it)(`should NOT parse ${name}`, async ({ expect }) => {
73
- const { query } = await statics();
74
- expect(() => parser.parse(query, context)).toThrow();
75
- });
76
- }
77
- });
78
- (0, import_vitest.describe)("positive sparql 1.2", () => {
79
- for (const { name, statics } of (0, import_test_utils.positiveTest)("sparql-1-2")) {
80
- (0, import_vitest.it)(`can parse ${name}`, async ({ expect }) => {
81
- const { query, ast } = await statics();
82
- const res = parser.parse(query, context);
83
- expect(res).toEqualParsedQuery(ast);
84
- });
85
- }
86
- });
87
- (0, import_vitest.it)(`should NOT parse $only thing}`, async ({ expect }) => {
88
- const query = `
89
- PREFIX : <http://example.com/ns#>
90
-
91
- SELECT * WHERE {
92
- <<( ?s ?p ?o )>> .
93
- }
94
- `;
95
- expect(() => parser.parse(query)).toThrow();
96
- });
97
- (0, import_vitest.describe)("negative sparql 1.2", () => {
98
- const skip = /* @__PURE__ */ new Set([
99
- "sparql-1-2-syntax-basic-tripleterm-subject",
100
- "sparql-1-2-syntax-compound-tripleterm-subject",
101
- "sparql-1-2-syntax-subject-tripleterm"
102
- ]);
103
- for (const { name, statics } of (0, import_test_utils.negativeTest)("sparql-1-2-invalid", (name2) => !skip.has(name2))) {
104
- (0, import_vitest.it)(`should NOT parse ${name}`, async ({ expect }) => {
105
- const { query } = await statics();
106
- expect(() => parser.parse(query, context)).toThrow();
107
- });
108
- }
109
- });
110
- (0, import_vitest.describe)("specific sparql 1.1 tests", () => {
111
- (0, import_test_utils.importSparql11NoteTests)(parser, new import_rdf_data_factory.DataFactory());
112
- });
113
- });
@@ -1,4 +0,0 @@
1
- import type { SparqlContext } from '@traqula/rules-sparql-1-2';
2
- export declare function parse(query: string, context?: Partial<SparqlContext>): void;
3
- export declare function query(): Promise<never>;
4
- export declare function update(): Promise<never>;
@@ -1,13 +0,0 @@
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
@@ -1 +0,0 @@
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-2';\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"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,23 +0,0 @@
1
- import { positiveTest } from '@traqula/test-utils';
2
- import { Parser as SparqlJSparser } from 'sparqljs';
3
- import { describe, bench } from 'vitest';
4
- import { Parser as TraqulaParser } from '../lib/index.js';
5
- describe('query 1.2, exclude construction', () => {
6
- const traqulaParser = new TraqulaParser();
7
- const sparqlJSparser = new SparqlJSparser();
8
- describe('general queries', async () => {
9
- const allQueries = await Promise.all([...positiveTest('sparql-1-1')]
10
- .map(x => x.statics().then(x => x.query)));
11
- bench('traqula parse 1.2', () => {
12
- for (const query of allQueries) {
13
- traqulaParser.parse(query);
14
- }
15
- });
16
- bench('sparqljs', () => {
17
- for (const query of allQueries) {
18
- sparqlJSparser.parse(query);
19
- }
20
- });
21
- });
22
- });
23
- //# sourceMappingURL=query.bench.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query.bench.js","sourceRoot":"","sources":["../../../test/query.bench.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE1D,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAE5C,QAAQ,CAAC,iBAAiB,EAAE,KAAK,IAAG,EAAE;QACpC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAE,GAAG,YAAY,CAAC,YAAY,CAAC,CAAE;aACnE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE7C,KAAK,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC9B,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;gBAC/B,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE;YACrB,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;gBAC/B,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { positiveTest } from '@traqula/test-utils';\nimport { Parser as SparqlJSparser } from 'sparqljs';\nimport { describe, bench } from 'vitest';\nimport { Parser as TraqulaParser } from '../lib/index.js';\n\ndescribe('query 1.2, exclude construction', () => {\n const traqulaParser = new TraqulaParser();\n const sparqlJSparser = new SparqlJSparser();\n\n describe('general queries', async() => {\n const allQueries = await Promise.all([ ...positiveTest('sparql-1-1') ]\n .map(x => x.statics().then(x => x.query)));\n\n bench('traqula parse 1.2', () => {\n for (const query of allQueries) {\n traqulaParser.parse(query);\n }\n });\n bench('sparqljs', () => {\n for (const query of allQueries) {\n sparqlJSparser.parse(query);\n }\n });\n });\n});\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,93 +0,0 @@
1
- import fs from 'node:fs';
2
- import path from 'node:path';
3
- import { AstFactory, lex as l12 } from '@traqula/rules-sparql-1-2';
4
- import { positiveTest, importSparql11NoteTests, negativeTest, getStaticFilePath } from '@traqula/test-utils';
5
- import { DataFactory } from 'rdf-data-factory';
6
- import { describe, it } from 'vitest';
7
- import { Parser, sparql12ParserBuilder } from '../lib/index.js';
8
- describe('a SPARQL 1.2 parser', () => {
9
- const parser = new Parser();
10
- const F = new AstFactory();
11
- const context = { prefixes: { ex: 'http://example.org/' } };
12
- function _sinkAst(suite, test, response) {
13
- const dir = getStaticFilePath();
14
- const fileLoc = path.join(dir, suite, `${test}.json`);
15
- // eslint-disable-next-line no-sync
16
- fs.writeFileSync(fileLoc, JSON.stringify(response, null, 2));
17
- }
18
- it('passes chevrotain validation', () => {
19
- sparql12ParserBuilder.build({
20
- tokenVocabulary: l12.sparql12LexerBuilder.tokenVocabulary,
21
- lexerConfig: {
22
- skipValidations: false,
23
- ensureOptimizations: true,
24
- },
25
- parserConfig: {
26
- skipValidations: false,
27
- },
28
- });
29
- });
30
- describe('positive paths', () => {
31
- for (const { name, statics } of positiveTest('paths')) {
32
- it(`can parse ${name}`, async ({ expect }) => {
33
- const { query, ast } = await statics();
34
- const res = parser.parsePath(query, context);
35
- expect(res).toEqualParsedQuery(ast);
36
- });
37
- }
38
- });
39
- describe('positive sparql 1.1', () => {
40
- for (const { name, statics } of positiveTest('sparql-1-1')) {
41
- it(`can parse ${name}`, async ({ expect }) => {
42
- const { query, ast } = await statics();
43
- const res = parser.parse(query, context);
44
- expect(res).toEqualParsedQueryIgnoring(obj => F.isTriple(obj), ['annotations'], ast);
45
- });
46
- }
47
- });
48
- describe('negative SPARQL 1.1', () => {
49
- for (const { name, statics } of negativeTest('sparql-1-1-invalid')) {
50
- it(`should NOT parse ${name}`, async ({ expect }) => {
51
- const { query } = await statics();
52
- expect(() => parser.parse(query, context)).toThrow();
53
- });
54
- }
55
- });
56
- describe('positive sparql 1.2', () => {
57
- for (const { name, statics } of positiveTest('sparql-1-2')) {
58
- it(`can parse ${name}`, async ({ expect }) => {
59
- const { query, ast } = await statics();
60
- const res = parser.parse(query, context);
61
- // _sinkAst('sparql-1-2', name, <object> res);
62
- expect(res).toEqualParsedQuery(ast);
63
- });
64
- }
65
- });
66
- it(`should NOT parse $only thing}`, async ({ expect }) => {
67
- const query = `
68
- PREFIX : <http://example.com/ns#>
69
-
70
- SELECT * WHERE {
71
- <<( ?s ?p ?o )>> .
72
- }
73
- `;
74
- expect(() => parser.parse(query)).toThrow();
75
- });
76
- describe('negative sparql 1.2', () => {
77
- const skip = new Set([
78
- 'sparql-1-2-syntax-basic-tripleterm-subject',
79
- 'sparql-1-2-syntax-compound-tripleterm-subject',
80
- 'sparql-1-2-syntax-subject-tripleterm',
81
- ]);
82
- for (const { name, statics } of negativeTest('sparql-1-2-invalid', name => !skip.has(name))) {
83
- it(`should NOT parse ${name}`, async ({ expect }) => {
84
- const { query } = await statics();
85
- expect(() => parser.parse(query, context)).toThrow();
86
- });
87
- }
88
- });
89
- describe('specific sparql 1.1 tests', () => {
90
- importSparql11NoteTests(parser, new DataFactory());
91
- });
92
- });
93
- //# sourceMappingURL=statics.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"statics.test.js","sourceRoot":"","sources":["../../../test/statics.test.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport type { BaseQuad } from '@rdfjs/types';\nimport { AstFactory, lex as l12 } from '@traqula/rules-sparql-1-2';\nimport { positiveTest, importSparql11NoteTests, negativeTest, getStaticFilePath } from '@traqula/test-utils';\nimport { DataFactory } from 'rdf-data-factory';\nimport { describe, it } from 'vitest';\nimport { Parser, sparql12ParserBuilder } from '../lib/index.js';\n\ndescribe('a SPARQL 1.2 parser', () => {\n const parser = new Parser();\n const F = new AstFactory();\n const context = { prefixes: { ex: 'http://example.org/' }};\n\n function _sinkAst(suite: string, test: string, response: object): void {\n const dir = getStaticFilePath();\n const fileLoc = path.join(dir, suite, `${test}.json`);\n // eslint-disable-next-line no-sync\n fs.writeFileSync(fileLoc, JSON.stringify(response, null, 2));\n }\n\n it('passes chevrotain validation', () => {\n sparql12ParserBuilder.build({\n tokenVocabulary: l12.sparql12LexerBuilder.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).toEqualParsedQueryIgnoring(obj => F.isTriple(obj), [ 'annotations' ], 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('positive sparql 1.2', () => {\n for (const { name, statics } of positiveTest('sparql-1-2')) {\n it(`can parse ${name}`, async({ expect }) => {\n const { query, ast } = await statics();\n const res: unknown = parser.parse(query, context);\n // _sinkAst('sparql-1-2', name, <object> res);\n expect(res).toEqualParsedQuery(ast);\n });\n }\n });\n\n it(`should NOT parse $only thing}`, async({ expect }) => {\n const query = `\n PREFIX : <http://example.com/ns#>\n\nSELECT * WHERE {\n <<( ?s ?p ?o )>> .\n}\n `;\n expect(() => parser.parse(query)).toThrow();\n });\n\n describe('negative sparql 1.2', () => {\n const skip = new Set([\n 'sparql-1-2-syntax-basic-tripleterm-subject',\n 'sparql-1-2-syntax-compound-tripleterm-subject',\n 'sparql-1-2-syntax-subject-tripleterm',\n ]);\n for (const { name, statics } of negativeTest('sparql-1-2-invalid', name => !skip.has(name))) {\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"]}