@traqula/rules-sparql-1-1 0.0.22 → 0.0.24

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.
Files changed (76) hide show
  1. package/dist/cjs/lib/MinimalSparqlParser.js +35 -58
  2. package/dist/cjs/lib/MinimalSparqlParser.js.map +1 -0
  3. package/dist/cjs/lib/Sparql11types.js +2 -15
  4. package/dist/cjs/lib/Sparql11types.js.map +1 -0
  5. package/dist/cjs/lib/astFactory.js +107 -119
  6. package/dist/cjs/lib/astFactory.js.map +1 -0
  7. package/dist/cjs/lib/expressionHelpers.js +181 -191
  8. package/dist/cjs/lib/expressionHelpers.js.map +1 -0
  9. package/dist/cjs/lib/factoryMixins/ContextFactory.js +30 -52
  10. package/dist/cjs/lib/factoryMixins/ContextFactory.js.map +1 -0
  11. package/dist/cjs/lib/factoryMixins/ExpressionFactory.js +83 -102
  12. package/dist/cjs/lib/factoryMixins/ExpressionFactory.js.map +1 -0
  13. package/dist/cjs/lib/factoryMixins/GraphRefFactory.js +51 -73
  14. package/dist/cjs/lib/factoryMixins/GraphRefFactory.js.map +1 -0
  15. package/dist/cjs/lib/factoryMixins/PathFactory.js +68 -87
  16. package/dist/cjs/lib/factoryMixins/PathFactory.js.map +1 -0
  17. package/dist/cjs/lib/factoryMixins/Patternfactory.js +98 -120
  18. package/dist/cjs/lib/factoryMixins/Patternfactory.js.map +1 -0
  19. package/dist/cjs/lib/factoryMixins/QueryFactory.js +43 -65
  20. package/dist/cjs/lib/factoryMixins/QueryFactory.js.map +1 -0
  21. package/dist/cjs/lib/factoryMixins/SolutionModifiersFactory.js +55 -77
  22. package/dist/cjs/lib/factoryMixins/SolutionModifiersFactory.js.map +1 -0
  23. package/dist/cjs/lib/factoryMixins/TermFactory.js +81 -102
  24. package/dist/cjs/lib/factoryMixins/TermFactory.js.map +1 -0
  25. package/dist/cjs/lib/factoryMixins/UpdateOperationFactory.js +126 -147
  26. package/dist/cjs/lib/factoryMixins/UpdateOperationFactory.js.map +1 -0
  27. package/dist/cjs/lib/factoryMixins/mixins.js +21 -38
  28. package/dist/cjs/lib/factoryMixins/mixins.js.map +1 -0
  29. package/dist/cjs/lib/grammar/builtIn.js +277 -377
  30. package/dist/cjs/lib/grammar/builtIn.js.map +1 -0
  31. package/dist/cjs/lib/grammar/dataSetClause.js +110 -109
  32. package/dist/cjs/lib/grammar/dataSetClause.js.map +1 -0
  33. package/dist/cjs/lib/grammar/expression.js +387 -358
  34. package/dist/cjs/lib/grammar/expression.js.map +1 -0
  35. package/dist/cjs/lib/grammar/general.js +173 -158
  36. package/dist/cjs/lib/grammar/general.js.map +1 -0
  37. package/dist/cjs/lib/grammar/index.js +94 -111
  38. package/dist/cjs/lib/grammar/index.js.map +1 -0
  39. package/dist/cjs/lib/grammar/literals.js +282 -266
  40. package/dist/cjs/lib/grammar/literals.js.map +1 -0
  41. package/dist/cjs/lib/grammar/propertyPaths.js +206 -193
  42. package/dist/cjs/lib/grammar/propertyPaths.js.map +1 -0
  43. package/dist/cjs/lib/grammar/queryUnit.js +395 -372
  44. package/dist/cjs/lib/grammar/queryUnit.js.map +1 -0
  45. package/dist/cjs/lib/grammar/solutionModifier.js +281 -265
  46. package/dist/cjs/lib/grammar/solutionModifier.js.map +1 -0
  47. package/dist/cjs/lib/grammar/tripleBlock.js +390 -355
  48. package/dist/cjs/lib/grammar/tripleBlock.js.map +1 -0
  49. package/dist/cjs/lib/grammar/updateUnit.js +551 -519
  50. package/dist/cjs/lib/grammar/updateUnit.js.map +1 -0
  51. package/dist/cjs/lib/grammar/whereClause.js +486 -459
  52. package/dist/cjs/lib/grammar/whereClause.js.map +1 -0
  53. package/dist/cjs/lib/index.js +47 -54
  54. package/dist/cjs/lib/index.js.map +1 -0
  55. package/dist/cjs/lib/lexer/BuiltInCalls.js +188 -333
  56. package/dist/cjs/lib/lexer/BuiltInCalls.js.map +1 -0
  57. package/dist/cjs/lib/lexer/graph.js +10 -40
  58. package/dist/cjs/lib/lexer/graph.js.map +1 -0
  59. package/dist/cjs/lib/lexer/index.js +43 -48
  60. package/dist/cjs/lib/lexer/index.js.map +1 -0
  61. package/dist/cjs/lib/lexer/lexer.js +84 -195
  62. package/dist/cjs/lib/lexer/lexer.js.map +1 -0
  63. package/dist/cjs/lib/lexer/lexerPatterns.js +40 -132
  64. package/dist/cjs/lib/lexer/lexerPatterns.js.map +1 -0
  65. package/dist/cjs/lib/lexer/symbols.js +31 -106
  66. package/dist/cjs/lib/lexer/symbols.js.map +1 -0
  67. package/dist/cjs/lib/lexer/terminals.js +100 -102
  68. package/dist/cjs/lib/lexer/terminals.js.map +1 -0
  69. package/dist/cjs/lib/sparql11HelperTypes.js +2 -15
  70. package/dist/cjs/lib/sparql11HelperTypes.js.map +1 -0
  71. package/dist/cjs/lib/utils.js +40 -58
  72. package/dist/cjs/lib/utils.js.map +1 -0
  73. package/dist/cjs/lib/validation/validators.js +197 -186
  74. package/dist/cjs/lib/validation/validators.js.map +1 -0
  75. package/dist/cjs/package.json +1 -0
  76. package/package.json +10 -9
@@ -1,115 +1,98 @@
1
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;
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
17
15
  };
18
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
19
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
- var grammar_exports = {};
21
- __export(grammar_exports, {
22
- queryOrUpdate: () => queryOrUpdate
23
- });
24
- module.exports = __toCommonJS(grammar_exports);
25
- var import_lexer = require("../lexer/index.js");
26
- var import_validators = require("../validation/validators.js");
27
- var import_general = require("./general.js");
28
- var import_queryUnit = require("./queryUnit.js");
29
- var import_updateUnit = require("./updateUnit.js");
30
- __reExport(grammar_exports, require("./queryUnit.js"), module.exports);
31
- __reExport(grammar_exports, require("./updateUnit.js"), module.exports);
32
- __reExport(grammar_exports, require("./builtIn.js"), module.exports);
33
- __reExport(grammar_exports, require("./dataSetClause.js"), module.exports);
34
- __reExport(grammar_exports, require("./expression.js"), module.exports);
35
- __reExport(grammar_exports, require("../expressionHelpers.js"), module.exports);
36
- __reExport(grammar_exports, require("./general.js"), module.exports);
37
- __reExport(grammar_exports, require("./literals.js"), module.exports);
38
- __reExport(grammar_exports, require("./propertyPaths.js"), module.exports);
39
- __reExport(grammar_exports, require("./solutionModifier.js"), module.exports);
40
- __reExport(grammar_exports, require("./tripleBlock.js"), module.exports);
41
- __reExport(grammar_exports, require("./whereClause.js"), module.exports);
42
- const queryOrUpdate = {
43
- name: "queryOrUpdate",
44
- impl: ({ ACTION, SUBRULE, OR1, OR2, MANY, OPTION1, CONSUME, SUBRULE2 }) => (C) => {
45
- const prologueValues = SUBRULE(import_general.prologue);
46
- return OR1([
47
- { ALT: () => {
48
- const subType = OR2([
49
- { ALT: () => SUBRULE(import_queryUnit.selectQuery) },
50
- { ALT: () => SUBRULE(import_queryUnit.constructQuery) },
51
- { ALT: () => SUBRULE(import_queryUnit.describeQuery) },
52
- { ALT: () => SUBRULE(import_queryUnit.askQuery) }
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.queryOrUpdate = void 0;
18
+ const index_js_1 = require("../lexer/index.js");
19
+ const validators_js_1 = require("../validation/validators.js");
20
+ const general_js_1 = require("./general.js");
21
+ const queryUnit_js_1 = require("./queryUnit.js");
22
+ const updateUnit_js_1 = require("./updateUnit.js");
23
+ __exportStar(require("./queryUnit.js"), exports);
24
+ __exportStar(require("./updateUnit.js"), exports);
25
+ __exportStar(require("./builtIn.js"), exports);
26
+ __exportStar(require("./dataSetClause.js"), exports);
27
+ __exportStar(require("./expression.js"), exports);
28
+ __exportStar(require("../expressionHelpers.js"), exports);
29
+ __exportStar(require("./general.js"), exports);
30
+ __exportStar(require("./literals.js"), exports);
31
+ __exportStar(require("./propertyPaths.js"), exports);
32
+ __exportStar(require("./solutionModifier.js"), exports);
33
+ __exportStar(require("./tripleBlock.js"), exports);
34
+ __exportStar(require("./whereClause.js"), exports);
35
+ /**
36
+ * Query or update, optimized for the Query case.
37
+ * One could implement a new rule that does not use BACKTRACK.
38
+ */
39
+ exports.queryOrUpdate = {
40
+ name: 'queryOrUpdate',
41
+ impl: ({ ACTION, SUBRULE, OR1, OR2, MANY, OPTION1, CONSUME, SUBRULE2 }) => (C) => {
42
+ const prologueValues = SUBRULE(general_js_1.prologue);
43
+ return OR1([
44
+ { ALT: () => {
45
+ const subType = OR2([
46
+ { ALT: () => SUBRULE(queryUnit_js_1.selectQuery) },
47
+ { ALT: () => SUBRULE(queryUnit_js_1.constructQuery) },
48
+ { ALT: () => SUBRULE(queryUnit_js_1.describeQuery) },
49
+ { ALT: () => SUBRULE(queryUnit_js_1.askQuery) },
50
+ ]);
51
+ const values = SUBRULE(queryUnit_js_1.valuesClause);
52
+ return ACTION(() => ({
53
+ context: prologueValues,
54
+ ...subType,
55
+ type: 'query',
56
+ ...(values && { values }),
57
+ loc: C.astFactory.sourceLocation(prologueValues.at(0), subType, values),
58
+ }));
59
+ } },
60
+ { ALT: () => {
61
+ const updates = [];
62
+ updates.push({ context: prologueValues });
63
+ let parsedSemi = true;
64
+ MANY({
65
+ GATE: () => parsedSemi,
66
+ DEF: () => {
67
+ parsedSemi = false;
68
+ updates.at(-1).operation = SUBRULE(updateUnit_js_1.update1);
69
+ OPTION1(() => {
70
+ CONSUME(index_js_1.symbols.semi);
71
+ parsedSemi = true;
72
+ const innerPrologue = SUBRULE2(general_js_1.prologue);
73
+ updates.push({ context: innerPrologue });
74
+ });
75
+ },
76
+ });
77
+ return ACTION(() => {
78
+ const update = {
79
+ type: 'update',
80
+ updates,
81
+ loc: C.astFactory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation),
82
+ };
83
+ (0, validators_js_1.updateNoReuseBlankNodeLabels)(update);
84
+ return update;
85
+ });
86
+ } },
53
87
  ]);
54
- const values = SUBRULE(import_queryUnit.valuesClause);
55
- return ACTION(() => ({
56
- context: prologueValues,
57
- ...subType,
58
- type: "query",
59
- ...values && { values },
60
- loc: C.astFactory.sourceLocation(prologueValues.at(0), subType, values)
61
- }));
62
- } },
63
- { ALT: () => {
64
- const updates = [];
65
- updates.push({ context: prologueValues });
66
- let parsedSemi = true;
67
- MANY({
68
- GATE: () => parsedSemi,
69
- DEF: () => {
70
- parsedSemi = false;
71
- updates.at(-1).operation = SUBRULE(import_updateUnit.update1);
72
- OPTION1(() => {
73
- CONSUME(import_lexer.symbols.semi);
74
- parsedSemi = true;
75
- const innerPrologue = SUBRULE2(import_general.prologue);
76
- updates.push({ context: innerPrologue });
77
- });
78
- }
79
- });
80
- return ACTION(() => {
81
- const update2 = {
82
- type: "update",
83
- updates,
84
- loc: C.astFactory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation)
85
- };
86
- (0, import_validators.updateNoReuseBlankNodeLabels)(update2);
87
- return update2;
88
- });
89
- } }
90
- ]);
91
- },
92
- gImpl: ({ SUBRULE }) => (ast, { astFactory: F }) => {
93
- if (F.isQuery(ast)) {
94
- SUBRULE(import_queryUnit.query, ast);
95
- } else {
96
- SUBRULE(import_updateUnit.update, ast);
97
- }
98
- }
88
+ },
89
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F }) => {
90
+ if (F.isQuery(ast)) {
91
+ SUBRULE(queryUnit_js_1.query, ast);
92
+ }
93
+ else {
94
+ SUBRULE(updateUnit_js_1.update, ast);
95
+ }
96
+ },
99
97
  };
100
- // Annotate the CommonJS export names for ESM import in node:
101
- 0 && (module.exports = {
102
- queryOrUpdate,
103
- ...require("./queryUnit.js"),
104
- ...require("./updateUnit.js"),
105
- ...require("./builtIn.js"),
106
- ...require("./dataSetClause.js"),
107
- ...require("./expression.js"),
108
- ...require("../expressionHelpers.js"),
109
- ...require("./general.js"),
110
- ...require("./literals.js"),
111
- ...require("./propertyPaths.js"),
112
- ...require("./solutionModifier.js"),
113
- ...require("./tripleBlock.js"),
114
- ...require("./whereClause.js")
115
- });
98
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/grammar/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { symbols } from '../lexer/index.js';\nimport type { SparqlRule } from '../sparql11HelperTypes.js';\nimport type { Query, SparqlQuery, Update } from '../Sparql11types.js';\nimport { updateNoReuseBlankNodeLabels } from '../validation/validators.js';\nimport { prologue } from './general.js';\nimport type { HandledByBase } from './queryUnit.js';\nimport { query, askQuery, constructQuery, describeQuery, selectQuery, valuesClause } from './queryUnit.js';\nimport { update, update1 } from './updateUnit.js';\n\nexport * from './queryUnit.js';\nexport * from './updateUnit.js';\nexport * from './builtIn.js';\nexport * from './dataSetClause.js';\nexport * from './expression.js';\nexport * from '../expressionHelpers.js';\nexport * from './general.js';\nexport * from './literals.js';\nexport * from './propertyPaths.js';\nexport * from './solutionModifier.js';\nexport * from './tripleBlock.js';\nexport * from './whereClause.js';\n\n/**\n * Query or update, optimized for the Query case.\n * One could implement a new rule that does not use BACKTRACK.\n */\nexport const queryOrUpdate: SparqlRule<'queryOrUpdate', SparqlQuery> = {\n name: 'queryOrUpdate',\n impl: ({ ACTION, SUBRULE, OR1, OR2, MANY, OPTION1, CONSUME, SUBRULE2 }) => (C) => {\n const prologueValues = SUBRULE(prologue);\n return OR1<Query | Update>([\n { ALT: () => {\n const subType = OR2<Omit<Query, HandledByBase>>([\n { ALT: () => SUBRULE(selectQuery) },\n { ALT: () => SUBRULE(constructQuery) },\n { ALT: () => SUBRULE(describeQuery) },\n { ALT: () => SUBRULE(askQuery) },\n ]);\n const values = SUBRULE(valuesClause);\n return ACTION(() => (<Query>{\n context: prologueValues,\n ...subType,\n type: 'query',\n ...(values && { values }),\n loc: C.astFactory.sourceLocation(\n prologueValues.at(0),\n subType,\n values,\n ),\n }));\n } },\n { ALT: () => {\n const updates: Update['updates'] = [];\n updates.push({ context: prologueValues });\n let parsedSemi = true;\n MANY({\n GATE: () => parsedSemi,\n DEF: () => {\n parsedSemi = false;\n updates.at(-1)!.operation = SUBRULE(update1);\n\n OPTION1(() => {\n CONSUME(symbols.semi);\n\n parsedSemi = true;\n const innerPrologue = SUBRULE2(prologue);\n updates.push({ context: innerPrologue });\n });\n },\n });\n return ACTION(() => {\n const update = {\n type: 'update',\n updates,\n loc: C.astFactory.sourceLocation(\n ...updates[0].context,\n updates[0].operation,\n ...updates.at(-1)!.context,\n updates.at(-1)?.operation,\n ),\n } satisfies Update;\n updateNoReuseBlankNodeLabels(update);\n return update;\n });\n } },\n ]);\n },\n gImpl: ({ SUBRULE }) => (ast, { astFactory: F }) => {\n if (F.isQuery(ast)) {\n SUBRULE(query, ast);\n } else {\n SUBRULE(update, ast);\n }\n },\n};\n"]}