@traqula/generator-sparql-1-1 0.0.21 → 0.0.23
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/index.js +54 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/test/integration.test.js +175 -0
- package/dist/cjs/test/statics.test.js +68 -0
- package/{lib → dist/esm/lib}/index.d.ts +26 -26
- package/dist/esm/lib/index.js.map +1 -0
- package/dist/esm/test/integration.test.d.ts +1 -0
- package/dist/esm/test/integration.test.js +180 -0
- package/dist/esm/test/integration.test.js.map +1 -0
- package/dist/esm/test/statics.test.d.ts +1 -0
- package/dist/esm/test/statics.test.js +49 -0
- package/dist/esm/test/statics.test.js.map +1 -0
- package/package.json +16 -17
- package/lib/index.cjs +0 -14918
- package/lib/index.js.map +0 -1
- /package/{lib → dist/esm/lib}/index.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration.test.js","sourceRoot":"","sources":["../../../test/integration.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { traqulaIndentation } from '@traqula/core';\nimport { Parser } from '@traqula/parser-sparql-1-1';\nimport type * as T11 from '@traqula/rules-sparql-1-1';\nimport { AstFactory, AstTransformer } from '@traqula/rules-sparql-1-1';\nimport { describe, it } from 'vitest';\nimport { Generator } from '../lib/index.js';\n\ndescribe('a SPARQL 1.1 generator', () => {\n const generator = new Generator();\n const parser = new Parser();\n const F = new AstFactory();\n const transformer = new AstTransformer();\n\n it ('generates simple round tripped', ({ expect }) => {\n const query = 'SELECT * WHERE { ?s ?p ?o }';\n const ast = <T11.Query> parser.parse(query);\n const result = generator.generate(ast, { origSource: query });\n expect(result).toBe(query);\n });\n\n it ('self generates on no pretty', ({ expect }) => {\n const query = 'SELECT * WHERE { ?s ?p ?o . }';\n const ast = parser.parse(query);\n const result = generator.generate(F.forcedAutoGenTree(ast), { [traqulaIndentation]: -1, indentInc: 0 });\n expect(result).toBe(query);\n });\n\n describe('on altered nodes', () => {\n it('translates ?s -> ?subject', ({ expect }) => {\n const query = 'SELECT * WHERE { ?s ?p ?o }';\n const ast = <T11.Query> parser.parse(query);\n\n const altered = transformer.transformNodeSpecific<'unsafe', T11.Query>(\n ast,\n {},\n { term: { variable: {\n transform: variable => variable.value === 's' ?\n F.termVariable('subject', F.sourceLocationNodeReplaceUnsafe(variable.loc)) :\n variable,\n }}},\n );\n\n const result = generator.generate(altered, { origSource: query });\n expect(result).toBe(`SELECT * WHERE { ?subject ?p ?o }`);\n });\n\n it('translates blanknodes -> variables', ({ expect }) => {\n const query = `\n\nBASE <ex:>\nCONSTRUCT { \n ?s0 ?p0 _:g_0 .\n_:g_0 <a0> _:g_1 .\n_:g_1 <b0> <c0> .\n[\n <a0> [\n <b0> <c0> ; \n ] ; \n] ?p0 ?o0 .\n\n}\nWHERE {\n ?s1 ?p1 _:g_4 .\n?s1 ?p1 <a1> .\n?s1 ?q1 <b1> .\n?s1 ?q1 <c1> .\n_:g_5 ?p2 ?o2 .\n?s3 ?p3 _:g_6 .\n_:g_6 <a3> <b3> .\n?s4 ?p4 _:g_7 .\n_:g_7 <a4> <b4> .\n_:g_7 <c4> <d4> .\n_:g_7 <c4> <e4> .\n?s5 ?p5 _:g_8 .\n_:g_8 <a5> _:g_9 .\n_:g_9 <b5> <c5> .\n[\n <a6> [\n <b6> <c6> ; \n ] ; \n] ?p6 ?o6 .\n_:g_12 <a7> <b7> .\n_:g_12 <c7> <d7> .\n_:g_12 <c7> <e7> .\n\n}`;\n const ast = <T11.Query> parser.parse(query);\n\n function extractCollection(collection: T11.TripleCollection): T11.TripleNesting[] {\n const result: T11.TripleNesting[] = [];\n for (const entry of collection.triples) {\n const subject = entry.subject;\n const pred = entry.predicate;\n if (F.isTripleCollection(entry.object)) {\n const identifier = { ...F.graphNodeIdentifier(entry.object) };\n result.push(F.triple(subject, pred, identifier, F.gen()));\n result.push(...extractCollection(entry.object));\n } else {\n result.push(F.triple(\n subject,\n pred,\n entry.object,\n F.gen(),\n ));\n }\n }\n return result;\n }\n\n const flattenCollections = transformer.transformNodeSpecific<'unsafe', T11.Query>(\n ast,\n {},\n { pattern: { bgp: {\n transform: (current) => {\n const bgpCopy = F.forcedAutoGenTree(current);\n const newTriples: T11.TripleNesting[] = [];\n for (const entry of bgpCopy.triples) {\n if (F.isTriple(entry)) {\n const subject = entry.subject;\n const pred = entry.predicate;\n if (F.isTripleCollection(entry.object)) {\n const object = entry.object;\n const identifier = { ...F.graphNodeIdentifier(object) };\n newTriples.push(F.triple(subject, pred, identifier));\n newTriples.push(...extractCollection(object));\n } else {\n newTriples.push(F.triple(\n subject,\n pred,\n entry.object,\n F.gen(),\n ));\n }\n } else {\n const genTriples = extractCollection(entry);\n newTriples.push(...genTriples);\n }\n }\n return F.patternBgp(newTriples, F.sourceLocationNodeReplaceUnsafe(current.loc));\n },\n }}},\n );\n\n const result = generator.generate(flattenCollections, { origSource: query });\n expect(result).toBe(`BASE <ex:>\nCONSTRUCT { \n ?s0 ?p0 _:g_0 .\n_:g_0 <a0> _:g_1 .\n_:g_1 <b0> <c0> .\n[\n <a0> [\n <b0> <c0> ;\n ] ;\n] ?p0 ?o0 .\n\n\n}\nWHERE {\n ?s1 ?p1 _:g_4 .\n?s1 ?p1 <a1> .\n?s1 ?q1 <b1> .\n?s1 ?q1 <c1> .\n_:g_5 ?p2 ?o2 .\n?s3 ?p3 _:g_6 .\n_:g_6 <a3> <b3> .\n?s4 ?p4 _:g_7 .\n_:g_7 <a4> <b4> .\n_:g_7 <c4> <d4> .\n_:g_7 <c4> <e4> .\n?s5 ?p5 _:g_8 .\n_:g_8 <a5> _:g_9 .\n_:g_9 <b5> <c5> .\n[\n <a6> [\n <b6> <c6> ;\n ] ;\n] ?p6 ?o6 .\n_:g_12 <a7> <b7> .\n_:g_12 <c7> <d7> .\n_:g_12 <c7> <e7> .\n\n\n}`);\n });\n });\n\n it ('generates hand constructed query', ({ expect }) => {\n const query = `\nSELECT * WHERE {\n ?s ?p ?o .\n}`;\n const ast = F.querySelect({\n variables: [ F.wildcard(F.gen()) ],\n datasets: F.datasetClauses([], F.sourceLocation()),\n context: [],\n where: F.patternGroup([\n F.patternBgp([\n F.triple(F.termVariable('s', F.gen()), F.termVariable('p', F.gen()), F.termVariable('o', F.gen())),\n ], F.gen()),\n ], F.gen()),\n solutionModifiers: {},\n }, F.gen());\n const result = generator.generate(ast);\n expect(result.trim()).toBe(query.trim());\n });\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { AstFactory } from '@traqula/rules-sparql-1-1';
|
|
4
|
+
import { positiveTest, getStaticFilePath } from '@traqula/test-utils';
|
|
5
|
+
import { describe, it } from 'vitest';
|
|
6
|
+
import { Generator } from '../lib/index.js';
|
|
7
|
+
describe('a SPARQL 1.1 generator', () => {
|
|
8
|
+
const generator = new Generator();
|
|
9
|
+
const F = new AstFactory();
|
|
10
|
+
function _sinkGenerated(suite, test, response) {
|
|
11
|
+
const dir = getStaticFilePath();
|
|
12
|
+
const fileLoc = path.join(dir, suite, `${test}-generated.sparql`);
|
|
13
|
+
// eslint-disable-next-line no-sync
|
|
14
|
+
fs.writeFileSync(fileLoc, response);
|
|
15
|
+
}
|
|
16
|
+
describe('positive paths', () => {
|
|
17
|
+
for (const { name, statics } of positiveTest('paths')) {
|
|
18
|
+
it(`can generate ${name}`, async ({ expect }) => {
|
|
19
|
+
const { query, ast, autoGen } = await statics();
|
|
20
|
+
const path = ast;
|
|
21
|
+
const generated = generator.generatePath(path, { origSource: query });
|
|
22
|
+
expect(generated, 'round-trip generation').toEqual(query.trim());
|
|
23
|
+
const replaceLoc = F.sourceLocationNodeReplaceUnsafe(path.loc);
|
|
24
|
+
const autoGenAst = F.forcedAutoGenTree(path);
|
|
25
|
+
autoGenAst.loc = replaceLoc;
|
|
26
|
+
const selfGenerated = generator.generatePath(autoGenAst);
|
|
27
|
+
// _sinkGenerated('paths', name, selfGenerated);
|
|
28
|
+
expect(selfGenerated, 'auto generated').toEqual(autoGen.trim());
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
describe('positive sparql 1.1', () => {
|
|
33
|
+
for (const { name, statics } of positiveTest('sparql-1-1')) {
|
|
34
|
+
it(`can generate ${name}`, async ({ expect }) => {
|
|
35
|
+
const { query, ast, autoGen } = await statics();
|
|
36
|
+
const queryUpdate = ast;
|
|
37
|
+
const roundTripped = generator.generate(queryUpdate, { origSource: query });
|
|
38
|
+
expect(roundTripped, 'round-trip generation').toEqual(query.trim());
|
|
39
|
+
const replaceLoc = F.sourceLocationNodeReplaceUnsafe(queryUpdate.loc);
|
|
40
|
+
const autoGenAst = F.forcedAutoGenTree(queryUpdate);
|
|
41
|
+
autoGenAst.loc = replaceLoc;
|
|
42
|
+
const selfGenerated = generator.generate(autoGenAst);
|
|
43
|
+
// _sinkGenerated('sparql-1-1', name, selfGenerated);
|
|
44
|
+
expect(selfGenerated, 'auto generated').toEqual(autoGen.trim());
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
//# 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 fs from 'node:fs';\nimport path from 'node:path';\nimport type * as T11 from '@traqula/rules-sparql-1-1';\nimport { AstFactory } from '@traqula/rules-sparql-1-1';\nimport { positiveTest, getStaticFilePath } from '@traqula/test-utils';\nimport { describe, it } from 'vitest';\nimport { Generator } from '../lib/index.js';\n\ndescribe('a SPARQL 1.1 generator', () => {\n const generator = new Generator();\n const F = new AstFactory();\n\n function _sinkGenerated(suite: string, test: string, response: string): void {\n const dir = getStaticFilePath();\n const fileLoc = path.join(dir, suite, `${test}-generated.sparql`);\n // eslint-disable-next-line no-sync\n fs.writeFileSync(fileLoc, response);\n }\n\n describe('positive paths', () => {\n for (const { name, statics } of positiveTest('paths')) {\n it(`can generate ${name}`, async({ expect }) => {\n const { query, ast, autoGen } = await statics();\n const path = <T11.Path>ast;\n\n const generated = generator.generatePath(path, { origSource: query });\n expect(generated, 'round-trip generation').toEqual(query.trim());\n\n const replaceLoc = F.sourceLocationNodeReplaceUnsafe(path.loc);\n const autoGenAst = F.forcedAutoGenTree(path);\n autoGenAst.loc = replaceLoc;\n const selfGenerated = generator.generatePath(autoGenAst);\n // _sinkGenerated('paths', name, selfGenerated);\n expect(selfGenerated, 'auto generated').toEqual(autoGen.trim());\n });\n }\n });\n\n describe('positive sparql 1.1', () => {\n for (const { name, statics } of positiveTest('sparql-1-1')) {\n it(`can generate ${name}`, async({ expect }) => {\n const { query, ast, autoGen } = await statics();\n const queryUpdate = <T11.Query | T11.Update>ast;\n\n const roundTripped = generator.generate(queryUpdate, { origSource: query });\n expect(roundTripped, 'round-trip generation').toEqual(query.trim());\n\n const replaceLoc = F.sourceLocationNodeReplaceUnsafe(queryUpdate.loc);\n const autoGenAst = F.forcedAutoGenTree(queryUpdate);\n autoGenAst.loc = replaceLoc;\n const selfGenerated = generator.generate(autoGenAst);\n // _sinkGenerated('sparql-1-1', name, selfGenerated);\n expect(selfGenerated, 'auto generated').toEqual(autoGen.trim());\n });\n }\n });\n});\n"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@traqula/generator-sparql-1-1",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.23",
|
|
5
5
|
"description": "SPARQL 1.1 generator",
|
|
6
6
|
"lsd:module": true,
|
|
7
7
|
"license": "MIT",
|
|
@@ -17,37 +17,36 @@
|
|
|
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
|
-
"
|
|
30
|
+
"dist/**/*.d.ts",
|
|
31
|
+
"dist/**/*.js",
|
|
32
|
+
"dist/**/*.js.map",
|
|
33
|
+
"dist/**/package.json"
|
|
34
34
|
],
|
|
35
35
|
"engines": {
|
|
36
36
|
"node": "^20.19.0 || >=22.12.0"
|
|
37
37
|
},
|
|
38
|
-
"typings": "lib/index",
|
|
39
38
|
"scripts": {
|
|
40
39
|
"build": "yarn build:ts && yarn build:transpile",
|
|
41
|
-
"build:ts": "node \"../../node_modules/typescript/bin/tsc\"",
|
|
42
|
-
"build:transpile": "
|
|
40
|
+
"build:ts": "node \"../../node_modules/typescript/bin/tsc\" -b",
|
|
41
|
+
"build:transpile": "esbuild \"dist/esm/**/*.js\" --outdir=dist/cjs --platform=node --format=cjs"
|
|
43
42
|
},
|
|
44
43
|
"dependencies": {
|
|
45
|
-
"@traqula/core": "^0.0.
|
|
46
|
-
"@traqula/rules-sparql-1-1": "^0.0.
|
|
44
|
+
"@traqula/core": "^0.0.23",
|
|
45
|
+
"@traqula/rules-sparql-1-1": "^0.0.23"
|
|
47
46
|
},
|
|
48
47
|
"devDependencies": {
|
|
49
|
-
"@traqula/parser-sparql-1-1": "^0.0.
|
|
50
|
-
"@traqula/test-utils": "^0.0.
|
|
48
|
+
"@traqula/parser-sparql-1-1": "^0.0.23",
|
|
49
|
+
"@traqula/test-utils": "^0.0.23"
|
|
51
50
|
},
|
|
52
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "36ec1aae80524a84f044182811a55ebeef6d9cda"
|
|
53
52
|
}
|