@traqula/generator-sparql-1-2 0.0.16 → 0.0.18

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/lib/index.cjs CHANGED
@@ -20,7 +20,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // lib/index.ts
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
- Generator: () => Generator
23
+ Generator: () => Generator,
24
+ sparql12GeneratorBuilder: () => sparql12GeneratorBuilder
24
25
  });
25
26
  module.exports = __toCommonJS(index_exports);
26
27
 
@@ -9717,6 +9718,11 @@ var LexerBuilder = class _LexerBuilder {
9717
9718
 
9718
9719
  // ../../packages/core/lib/Transformers.js
9719
9720
  var TransformerType = class {
9721
+ clone(obj) {
9722
+ const newObj = Object.create(Object.getPrototypeOf(obj));
9723
+ Object.defineProperties(newObj, Object.getOwnPropertyDescriptors(obj));
9724
+ return newObj;
9725
+ }
9720
9726
  safeObjectVisit(value, mapper) {
9721
9727
  if (value && typeof value === "object") {
9722
9728
  if (Array.isArray(value)) {
@@ -9726,104 +9732,213 @@ var TransformerType = class {
9726
9732
  }
9727
9733
  return value;
9728
9734
  }
9729
- transformNode(curObject, nodeCallBacks) {
9730
- let continueCheck;
9731
- let transformation;
9732
- const casted = curObject;
9733
- if (casted.type) {
9734
- continueCheck = nodeCallBacks[casted.type]?.continue;
9735
- transformation = nodeCallBacks[casted.type]?.transform;
9736
- }
9737
- let shouldContinue = true;
9738
- if (continueCheck) {
9739
- shouldContinue = continueCheck(curObject);
9740
- }
9741
- if (!shouldContinue) {
9742
- return curObject;
9743
- }
9744
- const copy3 = { ...curObject };
9745
- for (const [key, value] of Object.entries(copy3)) {
9746
- copy3[key] = this.safeObjectVisit(value, (obj) => this.transformNode(obj, nodeCallBacks));
9747
- }
9748
- if (transformation) {
9749
- return transformation(copy3);
9750
- }
9751
- return copy3;
9735
+ /**
9736
+ * Recursively transforms all objects that are not arrays. Mapper is called on deeper objects first.
9737
+ * @param startObject object to start iterating from
9738
+ * @param mapper mapper to transform the various objects - argument is a copy of the original
9739
+ * @param preVisitor callback that is evaluated before iterating deeper.
9740
+ * If continues is false, we do not iterate deeper, current object is still mapped. - default: true
9741
+ * If shortcut is true, we do not iterate deeper, nor do we branch out, this mapper will be the last one called.
9742
+ * - Default false
9743
+ */
9744
+ transformObject(startObject, mapper, preVisitor = () => ({})) {
9745
+ let didShortCut = false;
9746
+ const recurse = (curObject) => {
9747
+ const copy3 = this.clone(curObject);
9748
+ const context = preVisitor(copy3);
9749
+ didShortCut = context.shortcut ?? false;
9750
+ const continues = context.continue ?? true;
9751
+ if (continues && !didShortCut) {
9752
+ for (const [key, value] of Object.entries(copy3)) {
9753
+ if (didShortCut) {
9754
+ return copy3;
9755
+ }
9756
+ copy3[key] = this.safeObjectVisit(value, (obj) => recurse(obj));
9757
+ }
9758
+ }
9759
+ return mapper(copy3);
9760
+ };
9761
+ return recurse(startObject);
9752
9762
  }
9753
- visitNode(curObject, nodeCallBacks) {
9754
- let callback;
9755
- const casted = curObject;
9756
- if (casted.type) {
9757
- callback = nodeCallBacks[casted.type];
9758
- }
9759
- let shouldIterate = true;
9760
- if (callback) {
9761
- shouldIterate = callback(curObject);
9762
- }
9763
- if (shouldIterate) {
9764
- for (const value of Object.values(curObject)) {
9765
- this.safeObjectVisit(value, (obj) => this.visitNode(obj, nodeCallBacks));
9763
+ /**
9764
+ * Visitor that visits all objects. Visits deeper objects first.
9765
+ */
9766
+ visitObject(startObject, visitor, preVisitor = () => ({})) {
9767
+ let didShortCut = false;
9768
+ const recurse = (curObject) => {
9769
+ const context = preVisitor(curObject);
9770
+ didShortCut = context.shortcut ?? false;
9771
+ const continues = context.continue ?? true;
9772
+ if (continues && !didShortCut) {
9773
+ for (const value of Object.values(curObject)) {
9774
+ if (didShortCut) {
9775
+ return;
9776
+ }
9777
+ this.safeObjectVisit(value, (obj) => recurse(obj));
9778
+ }
9766
9779
  }
9767
- }
9780
+ visitor(curObject);
9781
+ };
9782
+ recurse(startObject);
9783
+ }
9784
+ transformNode(startObject, nodeCallBacks) {
9785
+ const transformWrapper = (curObject) => {
9786
+ const casted = curObject;
9787
+ if (casted.type) {
9788
+ const ogFunc = nodeCallBacks[casted.type]?.transform;
9789
+ if (ogFunc) {
9790
+ return ogFunc(casted);
9791
+ }
9792
+ }
9793
+ return curObject;
9794
+ };
9795
+ const preTransformWrapper = (curObject) => {
9796
+ const casted = curObject;
9797
+ if (casted.type) {
9798
+ const ogFunc = nodeCallBacks[casted.type]?.preVisitor;
9799
+ if (ogFunc) {
9800
+ return ogFunc(casted);
9801
+ }
9802
+ }
9803
+ return {};
9804
+ };
9805
+ return this.transformObject(startObject, transformWrapper, preTransformWrapper);
9806
+ }
9807
+ visitNode(startObject, nodeCallBacks) {
9808
+ const visitWrapper = (curObject) => {
9809
+ const casted = curObject;
9810
+ if (casted.type) {
9811
+ const ogFunc = nodeCallBacks[casted.type]?.visitor;
9812
+ if (ogFunc) {
9813
+ ogFunc(casted);
9814
+ }
9815
+ }
9816
+ };
9817
+ const preVisitWrapper = (curObject) => {
9818
+ const casted = curObject;
9819
+ if (casted.type) {
9820
+ const ogFunc = nodeCallBacks[casted.type]?.preVisitor;
9821
+ if (ogFunc) {
9822
+ return ogFunc(casted);
9823
+ }
9824
+ }
9825
+ return {};
9826
+ };
9827
+ this.visitObject(startObject, visitWrapper, preVisitWrapper);
9828
+ }
9829
+ traverseNodes(currentNode, traverse) {
9830
+ let didShortCut = false;
9831
+ const recurse = (curNode) => {
9832
+ const traverser = traverse[curNode.type];
9833
+ if (traverser) {
9834
+ const { next, shortcut } = traverser(curNode);
9835
+ didShortCut = shortcut ?? false;
9836
+ if (!didShortCut) {
9837
+ for (const node of next ?? []) {
9838
+ if (didShortCut) {
9839
+ return;
9840
+ }
9841
+ recurse(node);
9842
+ }
9843
+ }
9844
+ }
9845
+ };
9846
+ recurse(currentNode);
9768
9847
  }
9769
9848
  };
9770
9849
  var TransformerSubType = class extends TransformerType {
9771
- // Public visitObjects(curObject: object, visitor: (current: object) => void): void {
9772
- // for (const value of Object.values(curObject)) {
9773
- // this.safeObjectVisit(value, obj => this.visitObjects(obj, visitor));
9774
- // }
9775
- // }
9776
- transformNodeSpecific(curObject, nodeCallBacks, nodeSpecificCallBacks = {}) {
9777
- let continueCheck;
9778
- let transformation;
9779
- const casted = curObject;
9780
- if (casted.type && casted.subType) {
9781
- const specific = nodeSpecificCallBacks[casted.type];
9782
- if (specific) {
9783
- continueCheck = specific[casted.subType]?.continue;
9784
- transformation = specific[casted.subType]?.transform;
9785
- }
9786
- }
9787
- let shouldContinue = true;
9788
- if (continueCheck) {
9789
- shouldContinue = continueCheck(curObject);
9790
- }
9791
- if (!shouldContinue) {
9792
- return curObject;
9793
- }
9794
- const copy3 = { ...curObject };
9795
- for (const [key, value] of Object.entries(copy3)) {
9796
- copy3[key] = this.safeObjectVisit(value, (obj) => this.transformNodeSpecific(obj, nodeCallBacks, nodeSpecificCallBacks));
9797
- }
9798
- if (transformation) {
9799
- return transformation(copy3);
9800
- }
9801
- return copy3;
9850
+ transformNodeSpecific(startObject, nodeCallBacks, nodeSpecificCallBacks) {
9851
+ const transformWrapper = (curObject) => {
9852
+ let ogTransform;
9853
+ const casted = curObject;
9854
+ if (casted.type && casted.subType) {
9855
+ const specific = nodeSpecificCallBacks[casted.type];
9856
+ if (specific) {
9857
+ ogTransform = specific[casted.subType]?.transform;
9858
+ }
9859
+ if (!ogTransform) {
9860
+ ogTransform = nodeCallBacks[casted.type]?.transform;
9861
+ }
9862
+ }
9863
+ return ogTransform ? ogTransform(casted) : curObject;
9864
+ };
9865
+ const preVisitWrapper = (curObject) => {
9866
+ let ogPreVisit;
9867
+ const casted = curObject;
9868
+ if (casted.type && casted.subType) {
9869
+ const specific = nodeSpecificCallBacks[casted.type];
9870
+ if (specific) {
9871
+ ogPreVisit = specific[casted.subType]?.preVisitor;
9872
+ }
9873
+ if (!ogPreVisit) {
9874
+ ogPreVisit = nodeCallBacks[casted.type]?.preVisitor;
9875
+ }
9876
+ }
9877
+ return ogPreVisit ? ogPreVisit(casted) : curObject;
9878
+ };
9879
+ return this.transformObject(startObject, transformWrapper, preVisitWrapper);
9802
9880
  }
9803
9881
  /**
9804
9882
  * When both nodeCallBack and NodeSpecific callBack are matched, will only look at nodeSpecifCallback
9805
9883
  */
9806
- visitNodeSpecific(curObject, nodeCallBacks, nodeSpecificCallBacks = {}) {
9807
- let callback;
9808
- const casted = curObject;
9809
- if (casted.type && casted.subType) {
9810
- const specific = nodeSpecificCallBacks[casted.type];
9811
- if (specific) {
9812
- callback = specific[casted.subType];
9884
+ visitNodeSpecific(startObject, nodeCallBacks, nodeSpecificCallBacks) {
9885
+ const visitWrapper = (curObject) => {
9886
+ let ogTransform;
9887
+ const casted = curObject;
9888
+ if (casted.type && casted.subType) {
9889
+ const specific = nodeSpecificCallBacks[casted.type];
9890
+ if (specific) {
9891
+ ogTransform = specific[casted.subType]?.visitor;
9892
+ }
9893
+ if (!ogTransform) {
9894
+ ogTransform = nodeCallBacks[casted.type]?.visitor;
9895
+ }
9813
9896
  }
9814
- }
9815
- if (!callback && casted.type) {
9816
- callback = nodeCallBacks[curObject.type];
9817
- }
9818
- let shouldIterate = true;
9819
- if (callback) {
9820
- shouldIterate = callback(curObject) ?? true;
9821
- }
9822
- if (shouldIterate) {
9823
- for (const value of Object.values(curObject)) {
9824
- this.safeObjectVisit(value, (obj) => this.visitNodeSpecific(obj, nodeCallBacks, nodeSpecificCallBacks));
9897
+ if (ogTransform) {
9898
+ ogTransform(casted);
9825
9899
  }
9826
- }
9900
+ };
9901
+ const preVisitWrapper = (curObject) => {
9902
+ let ogPreVisit;
9903
+ const casted = curObject;
9904
+ if (casted.type && casted.subType) {
9905
+ const specific = nodeSpecificCallBacks[casted.type];
9906
+ if (specific) {
9907
+ ogPreVisit = specific[casted.subType]?.preVisitor;
9908
+ }
9909
+ if (!ogPreVisit) {
9910
+ ogPreVisit = nodeCallBacks[casted.type]?.preVisitor;
9911
+ }
9912
+ }
9913
+ return ogPreVisit ? ogPreVisit(casted) : curObject;
9914
+ };
9915
+ this.visitObject(startObject, visitWrapper, preVisitWrapper);
9916
+ }
9917
+ traverseSubNodes(currentNode, traverseNode, traverseSubNode) {
9918
+ let didShortCut = false;
9919
+ const recurse = (curNode) => {
9920
+ let traverser;
9921
+ const subObj = traverseSubNode[curNode.type];
9922
+ if (subObj) {
9923
+ traverser = subObj[curNode.subType];
9924
+ }
9925
+ if (!traverser) {
9926
+ traverser = traverseNode[curNode.type];
9927
+ }
9928
+ if (traverser) {
9929
+ const { next, shortcut } = traverser(curNode);
9930
+ didShortCut = shortcut ?? false;
9931
+ if (!didShortCut) {
9932
+ for (const node of next ?? []) {
9933
+ if (didShortCut) {
9934
+ return;
9935
+ }
9936
+ recurse(node);
9937
+ }
9938
+ }
9939
+ }
9940
+ };
9941
+ recurse(currentNode);
9827
9942
  }
9828
9943
  };
9829
9944
 
@@ -10065,8 +10180,9 @@ __export(lexer_exports, {
10065
10180
  construct: () => construct,
10066
10181
  copy: () => copy,
10067
10182
  create: () => create,
10068
- dataClause: () => dataClause,
10069
10183
  deleteClause: () => deleteClause,
10184
+ deleteDataClause: () => deleteDataClause,
10185
+ deleteWhereClause: () => deleteWhereClause,
10070
10186
  describe: () => describe,
10071
10187
  distinct: () => distinct,
10072
10188
  drop: () => drop2,
@@ -10078,6 +10194,7 @@ __export(lexer_exports, {
10078
10194
  having: () => having,
10079
10195
  in_: () => in_,
10080
10196
  insertClause: () => insertClause,
10197
+ insertDataClause: () => insertDataClause,
10081
10198
  limit: () => limit,
10082
10199
  load: () => load,
10083
10200
  loadInto: () => loadInto,
@@ -10376,6 +10493,44 @@ var graph = createToken2({ name: "Graph", pattern: /graph/i, label: "GRAPH" });
10376
10493
  var graphAll = createToken2({ name: "GraphAll", pattern: /all/i, label: "ALL" });
10377
10494
  var allGraphTokens = LexerBuilder.create().add(named, default_, graph, graphAll);
10378
10495
 
10496
+ // ../../packages/rules-sparql-1-1/lib/lexer/lexerPatterns.js
10497
+ var pnCharsBasePattern = /[A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF]/;
10498
+ var pnCharsUPattern = new RegExp(`${pnCharsBasePattern.source}|_`);
10499
+ var varNamePattern = new RegExp(`((${pnCharsUPattern.source})|[0-9])((${pnCharsUPattern.source})|[0-9]|[\xB7\u0300-\u036F\u203F-\u2040])*`);
10500
+ var iriRefPattern = /<([^\u0000-\u0020"<>\\^`{|}])*>/;
10501
+ var pnCharsPattern = new RegExp(`(${pnCharsUPattern.source})|[\\-0-9\xB7\u0300-\u036F\u203F-\u2040]`);
10502
+ var pnPrefixPattern = new RegExp(`(${pnCharsBasePattern.source})(((${pnCharsPattern.source})|\\.)*(${pnCharsPattern.source}))?`);
10503
+ var pNameNsPattern = new RegExp(`(${pnPrefixPattern.source})?:`);
10504
+ var percentPattern = /%[\dA-Fa-f]{2}/;
10505
+ var pnLocalEscPattern = /\\[!#$%&'()*+,./;=?@\\_~-]/;
10506
+ var plxPattern = new RegExp(`(${percentPattern.source})|(${pnLocalEscPattern.source})`);
10507
+ var pnLocalPattern = new RegExp(`((${pnCharsUPattern.source})|:|[0-9]|(${plxPattern.source}))(((${pnCharsPattern.source})|\\.|:|(${plxPattern.source}))*((${pnCharsPattern.source})|:|(${plxPattern.source})))?`);
10508
+ var pNameLnPattern = new RegExp(`(${pNameNsPattern.source})(${pnLocalPattern.source})`);
10509
+ var blankNodeLabelPattern = new RegExp(`_:((${pnCharsUPattern.source})|[0-9])(((${pnCharsPattern.source})|\\.)*(${pnCharsPattern.source}))?`);
10510
+ var var1Pattern = new RegExp(`\\?(${varNamePattern.source})`);
10511
+ var var2Pattern = new RegExp(`\\$(${varNamePattern.source})`);
10512
+ var langTagPattern = /@[A-Za-z]+(-[\dA-Za-z]+)*/;
10513
+ var integerPattern = /\d+/;
10514
+ var decimalPattern2 = /\d+\.\d+/;
10515
+ var exponentPattern = /[Ee][+-]?\d+/;
10516
+ var doublePattern = new RegExp(`([0-9]+\\.[0-9]*(${exponentPattern.source}))|(\\.[0-9]+(${exponentPattern.source}))|([0-9]+(${exponentPattern.source}))`);
10517
+ var interferePositivePattern = new RegExp(`\\+${integerPattern.source}`);
10518
+ var decimalPositivePattern = new RegExp(`\\+${decimalPattern2.source}`);
10519
+ var doublePositivePattern = new RegExp(`\\+${doublePattern.source}`);
10520
+ var integerNegativePattern = new RegExp(`-${integerPattern.source}`);
10521
+ var decimalNegativePattern = new RegExp(`-${decimalPattern2.source}`);
10522
+ var doubleNegativePattern = new RegExp(`-${doublePattern.source}`);
10523
+ var echarPattern = /\\[\\"'bfnrt]/u;
10524
+ var stringLiteral1Pattern = new RegExp(`'(([^\\u0027\\u005C\\u000A\r])|(${echarPattern.source}))*'`);
10525
+ var stringLiteral2Pattern = new RegExp(`"(([^\\u0022\\u005C\\u000A\\u000D])|(${echarPattern.source}))*"`);
10526
+ var stringLiteralLong1Pattern = new RegExp(`'''(('|(''))?([^'\\\\]|(${echarPattern.source})))*'''`);
10527
+ var stringLiteralLong2Pattern = new RegExp(`"""(("|(""))?([^"\\\\]|(${echarPattern.source})))*"""`);
10528
+ var wsPattern = /[\u0009\u000A\u000D ]/;
10529
+ var nilPattern = new RegExp(`\\((${wsPattern.source})*\\)`);
10530
+ var anonPattern = new RegExp(`\\[(${wsPattern.source})*\\]`);
10531
+ var commentPattern = /#[^\n]*\n/;
10532
+ var atLeastOneBlankPattern = new RegExp(`((${wsPattern.source}+)|(${commentPattern.source}))+`);
10533
+
10379
10534
  // ../../packages/rules-sparql-1-1/lib/lexer/symbols.js
10380
10535
  var symbols_exports = {};
10381
10536
  __export(symbols_exports, {
@@ -10464,40 +10619,6 @@ __export(terminals_exports, {
10464
10619
  var2: () => var2,
10465
10620
  ws: () => ws
10466
10621
  });
10467
- var pnCharsBasePattern = /[A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF]/;
10468
- var pnCharsUPattern = new RegExp(`${pnCharsBasePattern.source}|_`);
10469
- var varNamePattern = new RegExp(`((${pnCharsUPattern.source})|[0-9])((${pnCharsUPattern.source})|[0-9]|[\xB7\u0300-\u036F\u203F-\u2040])*`);
10470
- var iriRefPattern = /<([^\u0000-\u0020"<>\\^`{|}])*>/;
10471
- var pnCharsPattern = new RegExp(`(${pnCharsUPattern.source})|[\\-0-9\xB7\u0300-\u036F\u203F-\u2040]`);
10472
- var pnPrefixPattern = new RegExp(`(${pnCharsBasePattern.source})(((${pnCharsPattern.source})|\\.)*(${pnCharsPattern.source}))?`);
10473
- var pNameNsPattern = new RegExp(`(${pnPrefixPattern.source})?:`);
10474
- var percentPattern = /%[\dA-Fa-f]{2}/;
10475
- var pnLocalEscPattern = /\\[!#$%&'()*+,./;=?@\\_~-]/;
10476
- var plxPattern = new RegExp(`(${percentPattern.source})|(${pnLocalEscPattern.source})`);
10477
- var pnLocalPattern = new RegExp(`((${pnCharsUPattern.source})|:|[0-9]|(${plxPattern.source}))(((${pnCharsPattern.source})|\\.|:|(${plxPattern.source}))*((${pnCharsPattern.source})|:|(${plxPattern.source})))?`);
10478
- var pNameLnPattern = new RegExp(`(${pNameNsPattern.source})(${pnLocalPattern.source})`);
10479
- var blankNodeLabelPattern = new RegExp(`_:((${pnCharsUPattern.source})|[0-9])(((${pnCharsPattern.source})|\\.)*(${pnCharsPattern.source}))?`);
10480
- var var1Pattern = new RegExp(`\\?(${varNamePattern.source})`);
10481
- var var2Pattern = new RegExp(`\\$(${varNamePattern.source})`);
10482
- var langTagPattern = /@[A-Za-z]+(-[\dA-Za-z]+)*/;
10483
- var integerPattern = /\d+/;
10484
- var decimalPattern2 = /\d+\.\d+/;
10485
- var exponentPattern = /[Ee][+-]?\d+/;
10486
- var doublePattern = new RegExp(`([0-9]+\\.[0-9]*(${exponentPattern.source}))|(\\.[0-9]+(${exponentPattern.source}))|([0-9]+(${exponentPattern.source}))`);
10487
- var interferePositivePattern = new RegExp(`\\+${integerPattern.source}`);
10488
- var decimalPositivePattern = new RegExp(`\\+${decimalPattern2.source}`);
10489
- var doublePositivePattern = new RegExp(`\\+${doublePattern.source}`);
10490
- var integerNegativePattern = new RegExp(`-${integerPattern.source}`);
10491
- var decimalNegativePattern = new RegExp(`-${decimalPattern2.source}`);
10492
- var doubleNegativePattern = new RegExp(`-${doublePattern.source}`);
10493
- var echarPattern = /\\[\\"'bfnrt]/u;
10494
- var stringLiteral1Pattern = new RegExp(`'(([^\\u0027\\u005C\\u000A\r])|(${echarPattern.source}))*'`);
10495
- var stringLiteral2Pattern = new RegExp(`"(([^\\u0022\\u005C\\u000A\\u000D])|(${echarPattern.source}))*"`);
10496
- var stringLiteralLong1Pattern = new RegExp(`'''(('|(''))?([^'\\\\]|(${echarPattern.source})))*'''`);
10497
- var stringLiteralLong2Pattern = new RegExp(`"""(("|(""))?([^"\\\\]|(${echarPattern.source})))*"""`);
10498
- var wsPattern = /[\u0009\u000A\u000D ]/;
10499
- var nilPattern = new RegExp(`\\((${wsPattern.source})*\\)`);
10500
- var anonPattern = new RegExp(`\\[(${wsPattern.source})*\\]`);
10501
10622
  var iriRef = createToken2({ name: "IriRef", pattern: iriRefPattern });
10502
10623
  var pNameLn = createToken2({ name: "PNameLn", pattern: pNameLnPattern });
10503
10624
  var pNameNs = createToken2({ name: "PNameNs", pattern: pNameNsPattern, longer_alt: [pNameLn] });
@@ -10519,7 +10640,7 @@ var stringLiteral2 = createToken2({ name: "StringLiteral2", pattern: stringLiter
10519
10640
  var stringLiteralLong1 = createToken2({ name: "StringLiteralLong1", pattern: stringLiteralLong1Pattern });
10520
10641
  var stringLiteralLong2 = createToken2({ name: "StringLiteralLong2", pattern: stringLiteralLong2Pattern });
10521
10642
  var ws = createToken2({ name: "Ws", pattern: wsPattern, group: Lexer.SKIPPED });
10522
- var comment = createToken2({ name: "Comment", pattern: /#[^\n]*/, group: Lexer.SKIPPED });
10643
+ var comment = createToken2({ name: "Comment", pattern: commentPattern, group: Lexer.SKIPPED });
10523
10644
  var nil = createToken2({ name: "Nil", pattern: nilPattern });
10524
10645
  var anon = createToken2({ name: "Anon", pattern: anonPattern });
10525
10646
  var allTerminals = LexerBuilder.create().add(iriRef, pNameNs, pNameLn, blankNodeLabel, var1, var2, langTag, double, decimal, integer, integerPositive, decimalPositive, doublePositive, integerNegative, decimalNegative, doubleNegative, stringLiteralLong1, stringLiteralLong2, stringLiteral1, stringLiteral2, ws, comment, nil, anon);
@@ -10556,9 +10677,23 @@ var to = createToken2({ name: "To", pattern: /to/i, label: "TO" });
10556
10677
  var move = createToken2({ name: "Move", pattern: /move/i, label: "MOVE" });
10557
10678
  var copy = createToken2({ name: "Copy", pattern: /copy/i, label: "COPY" });
10558
10679
  var modifyWith = createToken2({ name: "ModifyWith", pattern: /with/i, label: "WITH" });
10680
+ var deleteDataClause = createToken2({
10681
+ name: "DeleteDataClause",
10682
+ pattern: new RegExp(`delete(${atLeastOneBlankPattern.source})data`, "i"),
10683
+ label: "DELETE DATA"
10684
+ });
10685
+ var deleteWhereClause = createToken2({
10686
+ name: "DeleteWhereClause",
10687
+ pattern: new RegExp(`delete(${atLeastOneBlankPattern.source})where`, "i"),
10688
+ label: "DELETE WHERE"
10689
+ });
10559
10690
  var deleteClause = createToken2({ name: "DeleteClause", pattern: /delete/i, label: "DELETE" });
10560
- var insertClause = createToken2({ name: "InsertClause", pattern: /insert/i, label: "INSERT" });
10561
- var dataClause = createToken2({ name: "DataClause", pattern: /data/i, label: "DATA", longer_alt: datatype });
10691
+ var insertDataClause = createToken2({
10692
+ name: "InsertDataClause",
10693
+ pattern: new RegExp(`insert(${atLeastOneBlankPattern.source})data`, "i"),
10694
+ label: "INSERT DATA"
10695
+ });
10696
+ var insertClause = createToken2({ name: "InsertClause", pattern: /insert/i, label: "insert" });
10562
10697
  var usingClause = createToken2({ name: "UsingClause", pattern: /using/i, label: "USING" });
10563
10698
  var optional = createToken2({ name: "Optional", pattern: /optional/i, label: "OPTIONAL" });
10564
10699
  var service = createToken2({ name: "Service", pattern: /service/i, label: "SERVICE" });
@@ -10573,8 +10708,8 @@ var false_ = createToken2({ name: "False", pattern: /false/i, label: "false" });
10573
10708
  var in_ = createToken2({ name: "In", pattern: /in/i, label: "IN" });
10574
10709
  var notIn = createToken2({ name: "NotIn", pattern: /not[\u0020\u0009\u000D\u000A]+in/i, label: "NOT IN" });
10575
10710
  var separator = createToken2({ name: "Separator", pattern: /separator/i, label: "SEPARATOR" });
10576
- var allBaseTokens = LexerBuilder.create().add(baseDecl, prefixDecl, select, distinct, reduced, construct, describe, ask, from, where, having, groupByGroup, by, order, orderAsc, orderDesc, limit, offset, values2, load, silent, loadInto, clear, drop2, create, add, to, move, copy, modifyWith, deleteClause, insertClause, dataClause, usingClause, optional, service, bind, undef, minus, union, filter2, as, a, true_, false_, in_, notIn, separator);
10577
- var sparql11LexerBuilder = LexerBuilder.create(allTerminals).merge(allBaseTokens).merge(allBuiltInCalls).merge(allGraphTokens).merge(allSymbols).moveBefore(datatype, dataClause).moveAfter(avg, a).moveBefore(a, graphAll).moveAfter(groupConcat, groupByGroup);
10711
+ var allBaseTokens = LexerBuilder.create().add(baseDecl, prefixDecl, select, distinct, reduced, construct, describe, ask, from, where, having, groupByGroup, by, order, orderAsc, orderDesc, limit, offset, values2, load, silent, loadInto, clear, drop2, create, add, to, move, copy, modifyWith, deleteWhereClause, deleteDataClause, deleteClause, insertDataClause, insertClause, usingClause, optional, service, bind, undef, minus, union, filter2, as, a, true_, false_, in_, notIn, separator);
10712
+ var sparql11LexerBuilder = LexerBuilder.create(allTerminals).merge(allBaseTokens).merge(allBuiltInCalls).merge(allGraphTokens).merge(allSymbols).moveAfter(avg, a).moveBefore(a, graphAll).moveAfter(groupConcat, groupByGroup);
10578
10713
 
10579
10714
  // ../../packages/rules-sparql-1-1/lib/factoryMixins/ContextFactory.js
10580
10715
  var nodeType = "contextDef";
@@ -11319,12 +11454,12 @@ var CommonIRIs;
11319
11454
  CommonIRIs2["NIL"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil";
11320
11455
  CommonIRIs2["TYPE"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type";
11321
11456
  })(CommonIRIs || (CommonIRIs = {}));
11322
- var TransformerSparql11 = class extends TransformerSubType {
11457
+ var AstTransformer = class extends TransformerSubType {
11323
11458
  };
11324
11459
 
11325
11460
  // ../../packages/rules-sparql-1-1/lib/validation/validators.js
11326
11461
  var F = new AstFactory();
11327
- var transformer = new TransformerSparql11();
11462
+ var transformer = new AstTransformer();
11328
11463
  function getAggregatesOfExpression(expression2) {
11329
11464
  if (F.isExpressionAggregate(expression2)) {
11330
11465
  return [expression2];
@@ -11403,77 +11538,69 @@ function queryIsGood(query2) {
11403
11538
  }
11404
11539
  }
11405
11540
  }
11541
+ function notUndefined(some2) {
11542
+ return some2 !== void 0;
11543
+ }
11406
11544
  function findPatternBoundedVars(iter, boundedVars) {
11407
- if (F.isQuery(iter) || F.isUpdate(iter)) {
11408
- if (F.isQuerySelect(iter) || F.isQueryDescribe(iter)) {
11409
- if (iter.where && iter.variables.some((x) => F.isWildcard(x))) {
11410
- findPatternBoundedVars(iter.where, boundedVars);
11411
- } else {
11412
- for (const v of iter.variables) {
11413
- findPatternBoundedVars(v, boundedVars);
11414
- }
11415
- }
11416
- if (iter.solutionModifiers.group) {
11417
- const grouping = iter.solutionModifiers.group;
11418
- for (const g of grouping.groupings) {
11419
- if ("variable" in g) {
11420
- findPatternBoundedVars(g.variable, boundedVars);
11421
- }
11422
- }
11423
- }
11424
- if (iter.values?.values && iter.values.values.length > 0) {
11425
- const values3 = iter.values.values;
11426
- for (const v of Object.keys(values3[0])) {
11545
+ transformer.traverseSubNodes(iter, {
11546
+ query: (op) => ({ next: [
11547
+ op.solutionModifiers.group
11548
+ ].filter(notUndefined) }),
11549
+ triple: (op) => ({ next: [op.subject, op.predicate, op.object] }),
11550
+ path: (op) => ({ next: op.items }),
11551
+ tripleCollection: (op) => ({ next: [op.identifier, ...op.triples] })
11552
+ }, {
11553
+ query: {
11554
+ select: (op) => ({ next: [
11555
+ ...op.variables.some((x) => F.isWildcard(x)) ? [op.where] : op.variables,
11556
+ op.solutionModifiers.group,
11557
+ op.values
11558
+ ].filter(notUndefined) }),
11559
+ describe: (op) => ({ next: [
11560
+ ...op.variables.some((x) => F.isWildcard(x)) ? [op.where] : op.variables,
11561
+ op.solutionModifiers.group,
11562
+ op.values
11563
+ ].filter(notUndefined) })
11564
+ },
11565
+ solutionModifier: {
11566
+ group: (op) => ({
11567
+ next: op.groupings.filter((g) => "variable" in g).map((x) => x.variable)
11568
+ }),
11569
+ having: (op) => ({ next: op.having }),
11570
+ order: (op) => ({ next: op.orderDefs.map((x) => x.expression) })
11571
+ },
11572
+ pattern: {
11573
+ values: (op) => {
11574
+ for (const v of Object.keys(op.values.at(0) ?? {})) {
11427
11575
  boundedVars.add(v);
11428
11576
  }
11577
+ return {};
11578
+ },
11579
+ bgp: (op) => ({ next: op.triples }),
11580
+ group: (op) => ({ next: op.patterns }),
11581
+ union: (op) => ({ next: op.patterns }),
11582
+ optional: (op) => ({ next: op.patterns }),
11583
+ service: (op) => ({ next: [op.name, ...op.patterns] }),
11584
+ bind: (op) => ({ next: [op.variable] }),
11585
+ graph: (op) => ({ next: [op.name, ...op.patterns] }),
11586
+ minus: (op) => ({ next: op.patterns.slice(0, 1) })
11587
+ },
11588
+ term: {
11589
+ variable: (op) => {
11590
+ boundedVars.add(op.value);
11591
+ return {};
11429
11592
  }
11430
11593
  }
11431
- } else if (F.isTerm(iter)) {
11432
- if (F.isTermVariable(iter)) {
11433
- boundedVars.add(iter.value);
11434
- }
11435
- } else if (F.isTriple(iter)) {
11436
- findPatternBoundedVars(iter.subject, boundedVars);
11437
- findPatternBoundedVars(iter.predicate, boundedVars);
11438
- findPatternBoundedVars(iter.object, boundedVars);
11439
- } else if (F.isPath(iter)) {
11440
- if (!F.isTerm(iter)) {
11441
- for (const item of iter.items) {
11442
- findPatternBoundedVars(item, boundedVars);
11443
- }
11444
- }
11445
- } else if (F.isTripleCollection(iter) || F.isPatternBgp(iter)) {
11446
- for (const triple of iter.triples) {
11447
- findPatternBoundedVars(triple, boundedVars);
11448
- }
11449
- } else if (F.isPatternGroup(iter) || F.isPatternUnion(iter) || F.isPatternOptional(iter) || F.isPatternService(iter)) {
11450
- for (const pattern of iter.patterns) {
11451
- findPatternBoundedVars(pattern, boundedVars);
11452
- }
11453
- if (F.isPatternService(iter)) {
11454
- findPatternBoundedVars(iter.name, boundedVars);
11455
- }
11456
- } else if (F.isPatternBind(iter)) {
11457
- findPatternBoundedVars(iter.variable, boundedVars);
11458
- } else if (F.isPatternValues(iter)) {
11459
- for (const variable of Object.keys(iter.values.at(0) ?? {})) {
11460
- boundedVars.add(variable);
11461
- }
11462
- } else if (F.isPatternGraph(iter)) {
11463
- findPatternBoundedVars(iter.name, boundedVars);
11464
- for (const pattern of iter.patterns) {
11465
- findPatternBoundedVars(pattern, boundedVars);
11466
- }
11467
- }
11594
+ });
11468
11595
  }
11469
11596
  function checkNote13(patterns) {
11470
11597
  for (const [index, pattern] of patterns.entries()) {
11471
11598
  if (F.isPatternBind(pattern) && index > 0 && F.isPatternBgp(patterns[index - 1])) {
11472
11599
  const bgp = patterns[index - 1];
11473
11600
  const variables = [];
11474
- transformer.visitNodeSpecific(bgp, {}, { term: { variable: (var_2) => {
11601
+ transformer.visitNodeSpecific(bgp, {}, { term: { variable: { visitor: (var_2) => {
11475
11602
  variables.push(var_2);
11476
- } } });
11603
+ } } } });
11477
11604
  if (variables.some((var_2) => var_2.value === pattern.variable.value)) {
11478
11605
  throw new Error(`Variable used to bind is already bound (?${pattern.variable.value})`);
11479
11606
  }
@@ -11499,12 +11626,12 @@ function updateNoReuseBlankNodeLabels(updateQuery) {
11499
11626
  const operation = update2.operation;
11500
11627
  if (operation.subType === "insertdata") {
11501
11628
  const blankNodesHere = /* @__PURE__ */ new Set();
11502
- transformer.visitNodeSpecific(operation, {}, { term: { blankNode: (blankNode2) => {
11629
+ transformer.visitNodeSpecific(operation, {}, { term: { blankNode: { visitor: (blankNode2) => {
11503
11630
  blankNodesHere.add(blankNode2.label);
11504
11631
  if (blankLabelsUsedInInsertData.has(blankNode2.label)) {
11505
11632
  throw new Error("Detected reuse blank node across different INSERT DATA clauses");
11506
11633
  }
11507
- } } });
11634
+ } } } });
11508
11635
  for (const blankNode2 of blankNodesHere) {
11509
11636
  blankLabelsUsedInInsertData.add(blankNode2);
11510
11637
  }
@@ -14191,12 +14318,11 @@ var quadData = {
14191
14318
  return ACTION(() => C.astFactory.wrap(val.val, C.astFactory.sourceLocation(open, close)));
14192
14319
  }
14193
14320
  };
14194
- function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
14321
+ function insertDeleteDelWhere(name, subType, cons1, dataRule) {
14195
14322
  return {
14196
14323
  name,
14197
14324
  impl: ({ ACTION, SUBRULE1, CONSUME }) => (C) => {
14198
14325
  const insDelToken = CONSUME(cons1);
14199
- CONSUME(cons2);
14200
14326
  let couldCreateBlankNodes = true;
14201
14327
  if (name !== "insertData") {
14202
14328
  couldCreateBlankNodes = ACTION(() => C.parseMode.delete("canCreateBlankNodes"));
@@ -14228,9 +14354,9 @@ function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
14228
14354
  }
14229
14355
  };
14230
14356
  }
14231
- var insertData = insertDeleteDelWhere("insertData", "insertdata", insertClause, dataClause, quadData);
14232
- var deleteData = insertDeleteDelWhere("deleteData", "deletedata", deleteClause, dataClause, quadData);
14233
- var deleteWhere = insertDeleteDelWhere("deleteWhere", "deletewhere", deleteClause, where, quadPattern);
14357
+ var insertData = insertDeleteDelWhere("insertData", "insertdata", insertDataClause, quadData);
14358
+ var deleteData = insertDeleteDelWhere("deleteData", "deletedata", deleteDataClause, quadData);
14359
+ var deleteWhere = insertDeleteDelWhere("deleteWhere", "deletewhere", deleteWhereClause, quadPattern);
14234
14360
  var modify = {
14235
14361
  name: "modify",
14236
14362
  impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OR }) => (C) => {
package/lib/index.d.ts CHANGED
@@ -1,79 +1,79 @@
1
1
  import { GeneratorBuilder } from '@traqula/core';
2
2
  import type { Patch } from '@traqula/core';
3
3
  import type * as T12 from '@traqula/rules-sparql-1-2';
4
- declare const sparql12GeneratorBuilder: GeneratorBuilder<T12.SparqlGeneratorContext, "filter" | "graphRef" | "load" | "clear" | "drop" | "create" | "add" | "move" | "copy" | "modify" | "update" | "query" | "datasetClauses" | "bind" | "solutionModifier" | "expression" | "aggregate" | "path" | "blankNode" | "selectQuery" | "selectClause" | "constructQuery" | "describeQuery" | "askQuery" | "update1" | "insertData" | "deleteData" | "deleteWhere" | "graphRefAll" | "quads" | "quadsNotTriples" | "usingClauses" | "argList" | "iriOrFunction" | "prologue" | "baseDecl" | "prefixDecl" | "varOrTerm" | "var" | "graphTerm" | "rdfLiteral" | "iri" | "iriFull" | "prefixedName" | "groupClause" | "havingClause" | "orderClause" | "limitOffsetClauses" | "triplesBlock" | "collectionPath" | "triplesNodePath" | "blankNodePropertyListPath" | "graphNodePath" | "whereClause" | "groupGraphPattern" | "generatePattern" | "graphPatternNotTriples" | "optionalGraphPattern" | "graphGraphPattern" | "serviceGraphPattern" | "inlineData" | "minusGraphPattern" | "groupOrUnionGraphPattern" | "queryOrUpdate" | "reifiedTriple" | "versionDecl" | "annotationPath" | "annotationBlockPath" | "tripleTerm", {
5
- filter: never;
6
- graphRef: never;
7
- load: never;
8
- clear: never;
9
- drop: never;
10
- create: never;
11
- add: never;
12
- move: never;
13
- copy: never;
14
- modify: never;
15
- update: never;
16
- query: never;
17
- datasetClauses: never;
18
- bind: never;
19
- solutionModifier: never;
20
- expression: never;
21
- aggregate: never;
4
+ export declare const sparql12GeneratorBuilder: GeneratorBuilder<T12.SparqlGeneratorContext, "path" | "queryOrUpdate" | "triplesBlock" | "blankNode" | "collectionPath" | "triplesNodePath" | "blankNodePropertyListPath" | "graphNodePath" | "expression" | "iriOrFunction" | "rdfLiteral" | "var" | "aggregate" | "iri" | "prefixedName" | "argList" | "varOrTerm" | "iriFull" | "graphTerm" | "selectClause" | "whereClause" | "solutionModifier" | "query" | "groupGraphPattern" | "graphPatternNotTriples" | "filter" | "bind" | "groupOrUnionGraphPattern" | "optionalGraphPattern" | "minusGraphPattern" | "graphGraphPattern" | "serviceGraphPattern" | "inlineData" | "groupClause" | "havingClause" | "orderClause" | "limitOffsetClauses" | "prologue" | "selectQuery" | "constructQuery" | "describeQuery" | "askQuery" | "baseDecl" | "prefixDecl" | "datasetClauses" | "update1" | "load" | "clear" | "drop" | "add" | "move" | "copy" | "create" | "insertData" | "deleteData" | "deleteWhere" | "modify" | "update" | "graphRef" | "graphRefAll" | "quads" | "quadsNotTriples" | "usingClauses" | "generatePattern" | "reifiedTriple" | "tripleTerm" | "annotationBlockPath" | "annotationPath" | "versionDecl", {
22
5
  path: never;
6
+ queryOrUpdate: never;
7
+ triplesBlock: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "triplesBlock", T12.PatternBgp, []>;
23
8
  blankNode: never;
24
- selectQuery: never;
9
+ collectionPath: never;
10
+ triplesNodePath: never;
11
+ blankNodePropertyListPath: never;
12
+ graphNodePath: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "graphNodePath", T12.GraphNode, []>;
13
+ expression: never;
14
+ iriOrFunction: never;
15
+ rdfLiteral: never;
16
+ var: never;
17
+ aggregate: never;
18
+ iri: never;
19
+ prefixedName: never;
20
+ argList: never;
21
+ varOrTerm: never;
22
+ iriFull: never;
23
+ graphTerm: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "graphTerm", T12.GraphTerm, []>;
25
24
  selectClause: never;
25
+ whereClause: never;
26
+ solutionModifier: never;
27
+ query: never;
28
+ groupGraphPattern: never;
29
+ graphPatternNotTriples: never;
30
+ filter: never;
31
+ bind: never;
32
+ groupOrUnionGraphPattern: never;
33
+ optionalGraphPattern: never;
34
+ minusGraphPattern: never;
35
+ graphGraphPattern: never;
36
+ serviceGraphPattern: never;
37
+ inlineData: never;
38
+ groupClause: never;
39
+ havingClause: never;
40
+ orderClause: never;
41
+ limitOffsetClauses: never;
42
+ prologue: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "prologue", T12.ContextDefinition[], []>;
43
+ selectQuery: never;
26
44
  constructQuery: never;
27
45
  describeQuery: never;
28
46
  askQuery: never;
47
+ baseDecl: never;
48
+ prefixDecl: never;
49
+ datasetClauses: never;
29
50
  update1: never;
51
+ load: never;
52
+ clear: never;
53
+ drop: never;
54
+ add: never;
55
+ move: never;
56
+ copy: never;
57
+ create: never;
30
58
  insertData: never;
31
59
  deleteData: never;
32
60
  deleteWhere: never;
61
+ modify: never;
62
+ update: never;
63
+ graphRef: never;
33
64
  graphRefAll: never;
34
65
  quads: never;
35
66
  quadsNotTriples: never;
36
67
  usingClauses: never;
37
- argList: never;
38
- iriOrFunction: never;
39
- prologue: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "prologue", T12.ContextDefinition[], []>;
40
- baseDecl: never;
41
- prefixDecl: never;
42
- varOrTerm: never;
43
- var: never;
44
- graphTerm: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "graphTerm", T12.GraphTerm, []>;
45
- rdfLiteral: never;
46
- iri: never;
47
- iriFull: never;
48
- prefixedName: never;
49
- groupClause: never;
50
- havingClause: never;
51
- orderClause: never;
52
- limitOffsetClauses: never;
53
- triplesBlock: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "triplesBlock", T12.PatternBgp, []>;
54
- collectionPath: never;
55
- triplesNodePath: never;
56
- blankNodePropertyListPath: never;
57
- graphNodePath: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "graphNodePath", T12.GraphNode, []>;
58
- whereClause: never;
59
- groupGraphPattern: never;
60
68
  generatePattern: never;
61
- graphPatternNotTriples: never;
62
- optionalGraphPattern: never;
63
- graphGraphPattern: never;
64
- serviceGraphPattern: never;
65
- inlineData: never;
66
- minusGraphPattern: never;
67
- groupOrUnionGraphPattern: never;
68
- queryOrUpdate: never;
69
69
  reifiedTriple: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "reifiedTriple", T12.TripleCollectionReifiedTriple, []>;
70
- versionDecl: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "versionDecl", T12.ContextDefinitionVersion, []>;
71
- annotationPath: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "annotationPath", T12.Annotation[], []>;
70
+ tripleTerm: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "tripleTerm", T12.TermTriple, []>;
72
71
  annotationBlockPath: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "annotationBlockPath", Patch<import("@traqula/rules-sparql-1-1").TripleCollectionBlankNodeProperties, {
73
72
  triples: T12.TripleNesting[];
74
73
  identifier: T12.TermBlank | T12.TermVariable | T12.TermIri;
75
74
  }>, []>;
76
- tripleTerm: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "tripleTerm", T12.TermTriple, []>;
75
+ annotationPath: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "annotationPath", T12.Annotation[], []>;
76
+ versionDecl: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "versionDecl", T12.ContextDefinitionVersion, []>;
77
77
  }>;
78
78
  export type SparqlGenerator = ReturnType<typeof sparql12GeneratorBuilder.build>;
79
79
  export declare class Generator {
@@ -86,4 +86,3 @@ export declare class Generator {
86
86
  origSource: string;
87
87
  }>): string;
88
88
  }
89
- export {};
package/lib/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { GeneratorBuilder } from '@traqula/core';
2
2
  import { sparql11GeneratorBuilder } from '@traqula/generator-sparql-1-1';
3
3
  import { completeParseContext, AstFactory, gram as g12 } from '@traqula/rules-sparql-1-2';
4
- const sparql12GeneratorBuilder = GeneratorBuilder.create(sparql11GeneratorBuilder)
4
+ export const sparql12GeneratorBuilder = GeneratorBuilder.create(sparql11GeneratorBuilder)
5
5
  .widenContext()
6
6
  .typePatch()
7
7
  .addRule(g12.tripleTerm)
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAIzE,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAG1F,MAAM,wBAAwB,GAC5B,gBAAgB,CAAC,MAAM,CAAC,wBAAwB,CAAC;KAC9C,YAAY,EAA8B;KAC1C,SAAS,EA6EN;KACH,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;KACvB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;KAC1B,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC;KAC5B,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;KAChC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;KAC3B,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;KACxB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;KACvB,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC;KACnC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAItC,MAAM,OAAO,SAAS;IACH,SAAS,GAAoB,wBAAwB,CAAC,KAAK,EAAE,CAAC;IAC9D,CAAC,GAAG,IAAI,UAAU,EAAE,CAAC;IAE/B,QAAQ,CACb,GAA2B,EAC/B,UAA+D,EAAE;QAE7D,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,CAAC;IAEM,YAAY,CAAC,GAAa,EAAE,UAA+D,EAAE;QAClG,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;IAC5E,CAAC;CACF","sourcesContent":["import { GeneratorBuilder } from '@traqula/core';\nimport type { Wrap, Patch } from '@traqula/core';\nimport { sparql11GeneratorBuilder } from '@traqula/generator-sparql-1-1';\nimport type {\n gram as g11,\n} from '@traqula/rules-sparql-1-1';\nimport { completeParseContext, AstFactory, gram as g12 } from '@traqula/rules-sparql-1-2';\nimport type * as T12 from '@traqula/rules-sparql-1-2';\n\nconst sparql12GeneratorBuilder =\n GeneratorBuilder.create(sparql11GeneratorBuilder)\n .widenContext<T12.SparqlGeneratorContext>()\n .typePatch<{\n [g11.queryOrUpdate.name]: [T12.SparqlQuery];\n [g11.query.name]: [T12.Query];\n [g11.selectQuery.name]: [Omit<T12.QuerySelect, g11.HandledByBase>];\n [g11.constructQuery.name]: [ Omit<T12.QueryConstruct, g11.HandledByBase>];\n [g11.describeQuery.name]: [Omit<T12.QueryDescribe, g11.HandledByBase>];\n [g11.askQuery.name]: [Omit<T12.QueryAsk, g11.HandledByBase>];\n [g11.selectClause.name]: [ Wrap<Pick<T12.QuerySelect, 'variables' | 'distinct' | 'reduced'>> ];\n\n [g11.update.name]: [T12.Update];\n [g11.update1.name]: [T12.UpdateOperation];\n [g11.load.name]: [T12.UpdateOperationLoad];\n [g11.clear.name]: [T12.UpdateOperationClear];\n [g11.drop.name]: [T12.UpdateOperationDrop];\n [g11.create.name]: [T12.UpdateOperationCreate];\n [g11.copy.name]: [T12.UpdateOperationCopy];\n [g11.move.name]: [T12.UpdateOperationMove];\n [g11.add.name]: [T12.UpdateOperationAdd];\n [g11.insertData.name]: [T12.UpdateOperationInsertData];\n [g11.deleteData.name]: [T12.UpdateOperationDeleteData];\n [g11.deleteWhere.name]: [T12.UpdateOperationDeleteWhere];\n [g11.modify.name]: [T12.UpdateOperationModify];\n [g11.graphRef.name]: [T12.TermIri];\n [g11.graphRefAll.name]: [T12.GraphRef];\n [g11.quads.name]: [Wrap<T12.Quads[]>];\n [g11.quadsNotTriples.name]: [T12.GraphQuads];\n\n [g11.aggregate.name]: [ T12.ExpressionAggregate ];\n\n [g11.datasetClauseStar.name]: [ T12.DatasetClauses ];\n [g11.usingClauseStar.name]: [ T12.DatasetClauses ];\n\n // [g11.datasetClause.name]: unchanged;\n [g11.argList.name]: [ Patch<g11.IArgList, { args: T12.Expression[] }> ];\n [g11.expression.name]: [ T12.Expression ];\n [g11.iriOrFunction.name]: [T12.TermIri | T12.ExpressionFunctionCall];\n\n [g11.prologue.name]: [ T12.ContextDefinition[] ];\n [g11.prefixDecl.name]: [ T12.ContextDefinitionPrefix ];\n [g11.baseDecl.name]: [ T12.ContextDefinitionBase ];\n // [g11.var_.name]: unchanged;\n [g11.varOrTerm.name]: [ T12.Term ];\n [g11.graphTerm.name]: [ T12.GraphTerm ];\n\n [g11.rdfLiteral.name]: [T12.TermLiteral];\n // [g11.string.name]: unchanged;\n // [g11.iri.name]: unchanged;\n // [g11.iriFull.name]: unchanged;\n // [g11.prefixedName.name]: unchanged;\n // [g11.blankNode.name]: unchanged;\n\n // [g11.path.name]: unchanged;\n //\n [g11.solutionModifier.name]: [ T12.SolutionModifiers ];\n [g11.groupClause.name]: [ T12.SolutionModifierGroup ];\n [g11.havingClause.name]: [ T12.SolutionModifierHaving ];\n [g11.orderClause.name]: [ T12.SolutionModifierOrder ];\n [g11.limitOffsetClauses.name]: [ T12.SolutionModifierLimitOffset ];\n\n [g11.triplesBlock.name]: [ T12.PatternBgp ];\n [g11.collectionPath.name]: [ T12.TripleCollectionList ];\n [g11.blankNodePropertyListPath.name]: [ T12.TripleCollectionBlankNodeProperties ];\n [g11.triplesNodePath.name]: [ T12.TripleCollection ];\n [g11.graphNodePath.name]: [ T12.Term | T12.TripleCollection ];\n\n [g11.whereClause.name]: [ Wrap<T12.PatternGroup> ];\n [g11.generatePattern.name]: [ T12.Pattern ];\n [g11.groupGraphPattern.name]: [ T12.PatternGroup ];\n [g11.graphPatternNotTriples.name]: [ Exclude<T12.Pattern, T12.SubSelect | T12.PatternBgp> ];\n [g11.optionalGraphPattern.name]: [ T12.PatternOptional ];\n [g11.graphGraphPattern.name]: [ T12.PatternGroup ];\n [g11.serviceGraphPattern.name]: [ T12.PatternService ];\n [g11.bind.name]: [ T12.PatternBind ];\n [g11.inlineData.name]: [ T12.PatternValues ];\n [g11.minusGraphPattern.name]: [ T12.PatternMinus ];\n [g11.groupOrUnionGraphPattern.name]: [ T12.PatternGroup | T12.PatternUnion ];\n [g11.filter.name]: [ T12.PatternFilter ];\n }>()\n .addRule(g12.tripleTerm)\n .addRule(g12.reifiedTriple)\n .patchRule(g12.graphNodePath)\n .addRule(g12.annotationBlockPath)\n .addRule(g12.annotationPath)\n .addRule(g12.versionDecl)\n .patchRule(g12.prologue)\n .patchRule(g12.generateTriplesBlock)\n .patchRule(g12.generateGraphTerm);\n\nexport type SparqlGenerator = ReturnType<typeof sparql12GeneratorBuilder.build>;\n\nexport class Generator {\n private readonly generator: SparqlGenerator = sparql12GeneratorBuilder.build();\n private readonly F = new AstFactory();\n\n public generate(\n ast: T12.Query | T12.Update,\ncontext: Partial<T12.SparqlContext & { origSource: string }> = {},\n ): string {\n return this.generator.queryOrUpdate(ast, completeParseContext(context));\n }\n\n public generatePath(ast: T12.Path, context: Partial<T12.SparqlContext & { origSource: string }> = {}): string {\n return this.generator.path(ast, completeParseContext(context), undefined);\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAIzE,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAG1F,MAAM,CAAC,MAAM,wBAAwB,GACnC,gBAAgB,CAAC,MAAM,CAAC,wBAAwB,CAAC;KAC9C,YAAY,EAA8B;KAC1C,SAAS,EA6EN;KACH,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;KACvB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;KAC1B,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC;KAC5B,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;KAChC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;KAC3B,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;KACxB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;KACvB,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC;KACnC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAItC,MAAM,OAAO,SAAS;IACH,SAAS,GAAoB,wBAAwB,CAAC,KAAK,EAAE,CAAC;IAC9D,CAAC,GAAG,IAAI,UAAU,EAAE,CAAC;IAE/B,QAAQ,CACb,GAA2B,EAC/B,UAA+D,EAAE;QAE7D,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,CAAC;IAEM,YAAY,CAAC,GAAa,EAAE,UAA+D,EAAE;QAClG,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;IAC5E,CAAC;CACF","sourcesContent":["import { GeneratorBuilder } from '@traqula/core';\nimport type { Wrap, Patch } from '@traqula/core';\nimport { sparql11GeneratorBuilder } from '@traqula/generator-sparql-1-1';\nimport type {\n gram as g11,\n} from '@traqula/rules-sparql-1-1';\nimport { completeParseContext, AstFactory, gram as g12 } from '@traqula/rules-sparql-1-2';\nimport type * as T12 from '@traqula/rules-sparql-1-2';\n\nexport const sparql12GeneratorBuilder =\n GeneratorBuilder.create(sparql11GeneratorBuilder)\n .widenContext<T12.SparqlGeneratorContext>()\n .typePatch<{\n [g11.queryOrUpdate.name]: [T12.SparqlQuery];\n [g11.query.name]: [T12.Query];\n [g11.selectQuery.name]: [Omit<T12.QuerySelect, g11.HandledByBase>];\n [g11.constructQuery.name]: [ Omit<T12.QueryConstruct, g11.HandledByBase>];\n [g11.describeQuery.name]: [Omit<T12.QueryDescribe, g11.HandledByBase>];\n [g11.askQuery.name]: [Omit<T12.QueryAsk, g11.HandledByBase>];\n [g11.selectClause.name]: [ Wrap<Pick<T12.QuerySelect, 'variables' | 'distinct' | 'reduced'>> ];\n\n [g11.update.name]: [T12.Update];\n [g11.update1.name]: [T12.UpdateOperation];\n [g11.load.name]: [T12.UpdateOperationLoad];\n [g11.clear.name]: [T12.UpdateOperationClear];\n [g11.drop.name]: [T12.UpdateOperationDrop];\n [g11.create.name]: [T12.UpdateOperationCreate];\n [g11.copy.name]: [T12.UpdateOperationCopy];\n [g11.move.name]: [T12.UpdateOperationMove];\n [g11.add.name]: [T12.UpdateOperationAdd];\n [g11.insertData.name]: [T12.UpdateOperationInsertData];\n [g11.deleteData.name]: [T12.UpdateOperationDeleteData];\n [g11.deleteWhere.name]: [T12.UpdateOperationDeleteWhere];\n [g11.modify.name]: [T12.UpdateOperationModify];\n [g11.graphRef.name]: [T12.TermIri];\n [g11.graphRefAll.name]: [T12.GraphRef];\n [g11.quads.name]: [Wrap<T12.Quads[]>];\n [g11.quadsNotTriples.name]: [T12.GraphQuads];\n\n [g11.aggregate.name]: [ T12.ExpressionAggregate ];\n\n [g11.datasetClauseStar.name]: [ T12.DatasetClauses ];\n [g11.usingClauseStar.name]: [ T12.DatasetClauses ];\n\n // [g11.datasetClause.name]: unchanged;\n [g11.argList.name]: [ Patch<g11.IArgList, { args: T12.Expression[] }> ];\n [g11.expression.name]: [ T12.Expression ];\n [g11.iriOrFunction.name]: [T12.TermIri | T12.ExpressionFunctionCall];\n\n [g11.prologue.name]: [ T12.ContextDefinition[] ];\n [g11.prefixDecl.name]: [ T12.ContextDefinitionPrefix ];\n [g11.baseDecl.name]: [ T12.ContextDefinitionBase ];\n // [g11.var_.name]: unchanged;\n [g11.varOrTerm.name]: [ T12.Term ];\n [g11.graphTerm.name]: [ T12.GraphTerm ];\n\n [g11.rdfLiteral.name]: [T12.TermLiteral];\n // [g11.string.name]: unchanged;\n // [g11.iri.name]: unchanged;\n // [g11.iriFull.name]: unchanged;\n // [g11.prefixedName.name]: unchanged;\n // [g11.blankNode.name]: unchanged;\n\n // [g11.path.name]: unchanged;\n //\n [g11.solutionModifier.name]: [ T12.SolutionModifiers ];\n [g11.groupClause.name]: [ T12.SolutionModifierGroup ];\n [g11.havingClause.name]: [ T12.SolutionModifierHaving ];\n [g11.orderClause.name]: [ T12.SolutionModifierOrder ];\n [g11.limitOffsetClauses.name]: [ T12.SolutionModifierLimitOffset ];\n\n [g11.triplesBlock.name]: [ T12.PatternBgp ];\n [g11.collectionPath.name]: [ T12.TripleCollectionList ];\n [g11.blankNodePropertyListPath.name]: [ T12.TripleCollectionBlankNodeProperties ];\n [g11.triplesNodePath.name]: [ T12.TripleCollection ];\n [g11.graphNodePath.name]: [ T12.Term | T12.TripleCollection ];\n\n [g11.whereClause.name]: [ Wrap<T12.PatternGroup> ];\n [g11.generatePattern.name]: [ T12.Pattern ];\n [g11.groupGraphPattern.name]: [ T12.PatternGroup ];\n [g11.graphPatternNotTriples.name]: [ Exclude<T12.Pattern, T12.SubSelect | T12.PatternBgp> ];\n [g11.optionalGraphPattern.name]: [ T12.PatternOptional ];\n [g11.graphGraphPattern.name]: [ T12.PatternGroup ];\n [g11.serviceGraphPattern.name]: [ T12.PatternService ];\n [g11.bind.name]: [ T12.PatternBind ];\n [g11.inlineData.name]: [ T12.PatternValues ];\n [g11.minusGraphPattern.name]: [ T12.PatternMinus ];\n [g11.groupOrUnionGraphPattern.name]: [ T12.PatternGroup | T12.PatternUnion ];\n [g11.filter.name]: [ T12.PatternFilter ];\n }>()\n .addRule(g12.tripleTerm)\n .addRule(g12.reifiedTriple)\n .patchRule(g12.graphNodePath)\n .addRule(g12.annotationBlockPath)\n .addRule(g12.annotationPath)\n .addRule(g12.versionDecl)\n .patchRule(g12.prologue)\n .patchRule(g12.generateTriplesBlock)\n .patchRule(g12.generateGraphTerm);\n\nexport type SparqlGenerator = ReturnType<typeof sparql12GeneratorBuilder.build>;\n\nexport class Generator {\n private readonly generator: SparqlGenerator = sparql12GeneratorBuilder.build();\n private readonly F = new AstFactory();\n\n public generate(\n ast: T12.Query | T12.Update,\ncontext: Partial<T12.SparqlContext & { origSource: string }> = {},\n ): string {\n return this.generator.queryOrUpdate(ast, completeParseContext(context));\n }\n\n public generatePath(ast: T12.Path, context: Partial<T12.SparqlContext & { origSource: string }> = {}): string {\n return this.generator.path(ast, completeParseContext(context), undefined);\n }\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@traqula/generator-sparql-1-2",
3
3
  "type": "module",
4
- "version": "0.0.16",
4
+ "version": "0.0.18",
5
5
  "description": "SPARQL 1.2 generator",
6
6
  "lsd:module": true,
7
7
  "license": "MIT",
@@ -42,14 +42,14 @@
42
42
  "build:transpile": " node \"../../node_modules/esbuild/bin/esbuild\" --format=cjs --bundle --log-level=error --outfile=lib/index.cjs lib/index.ts"
43
43
  },
44
44
  "dependencies": {
45
- "@traqula/core": "^0.0.16",
46
- "@traqula/generator-sparql-1-1": "^0.0.16",
47
- "@traqula/rules-sparql-1-1": "^0.0.16",
48
- "@traqula/rules-sparql-1-2": "^0.0.16"
45
+ "@traqula/core": "^0.0.18",
46
+ "@traqula/generator-sparql-1-1": "^0.0.18",
47
+ "@traqula/rules-sparql-1-1": "^0.0.18",
48
+ "@traqula/rules-sparql-1-2": "^0.0.18"
49
49
  },
50
50
  "devDependencies": {
51
- "@traqula/parser-sparql-1-2": "^0.0.16",
52
- "@traqula/test-utils": "^0.0.16"
51
+ "@traqula/parser-sparql-1-2": "^0.0.18",
52
+ "@traqula/test-utils": "^0.0.18"
53
53
  },
54
- "gitHead": "2de4ee608a2337bed63ecc5cf336b1a57c39e45f"
54
+ "gitHead": "1bb6a7d67631010ee01b325e33ff76f2f7530e02"
55
55
  }