@traqula/rules-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/grammar.d.ts CHANGED
@@ -57,12 +57,12 @@ export declare const triplesSameSubjectPath: SparqlGrammarRule<"triplesSameSubje
57
57
  * OVERRIDING RULE: {@link S11.object}.
58
58
  * [[86]](https://www.w3.org/TR/sparql12-query/#rObject) Used by ObjectList
59
59
  */
60
- export declare const object: SparqlGrammarRule<"object", TripleNesting, [GraphNode, T11.TermIriFull | T11.TermIriPrefixed | T11.TermVariable | T11.PropertyPathChain | T11.PathModified | T11.PathNegated]>;
60
+ export declare const object: SparqlGrammarRule<"object", TripleNesting, [GraphNode, T11.TermIriFull | T11.TermIriPrefixed | T11.PropertyPathChain | T11.PathModified | T11.PathNegated | T11.TermVariable]>;
61
61
  /**
62
62
  * OVERRIDING RULE: {@link S11.objectPath}.
63
63
  * [[87]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubjectPath) Used by ObjectListPath
64
64
  */
65
- export declare const objectPath: SparqlGrammarRule<"objectPath", TripleNesting, [GraphNode, T11.TermIriFull | T11.TermIriPrefixed | T11.TermVariable | T11.PropertyPathChain | T11.PathModified | T11.PathNegated]>;
65
+ export declare const objectPath: SparqlGrammarRule<"objectPath", TripleNesting, [GraphNode, T11.TermIriFull | T11.TermIriPrefixed | T11.PropertyPathChain | T11.PathModified | T11.PathNegated | T11.TermVariable]>;
66
66
  /**
67
67
  * [[109]](https://www.w3.org/TR/sparql12-query/#rAnnotationPath)
68
68
  */
package/lib/index.cjs CHANGED
@@ -21,6 +21,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
23
  AstFactory: () => AstFactory2,
24
+ AstTransformer: () => AstTransformer2,
24
25
  completeParseContext: () => completeParseContext,
25
26
  findPatternBoundedVars: () => findPatternBoundedVars2,
26
27
  gram: () => grammar_exports2,
@@ -9526,6 +9527,11 @@ var LexerBuilder = class _LexerBuilder {
9526
9527
 
9527
9528
  // ../core/lib/Transformers.js
9528
9529
  var TransformerType = class {
9530
+ clone(obj) {
9531
+ const newObj = Object.create(Object.getPrototypeOf(obj));
9532
+ Object.defineProperties(newObj, Object.getOwnPropertyDescriptors(obj));
9533
+ return newObj;
9534
+ }
9529
9535
  safeObjectVisit(value, mapper) {
9530
9536
  if (value && typeof value === "object") {
9531
9537
  if (Array.isArray(value)) {
@@ -9535,104 +9541,213 @@ var TransformerType = class {
9535
9541
  }
9536
9542
  return value;
9537
9543
  }
9538
- transformNode(curObject, nodeCallBacks) {
9539
- let continueCheck;
9540
- let transformation;
9541
- const casted = curObject;
9542
- if (casted.type) {
9543
- continueCheck = nodeCallBacks[casted.type]?.continue;
9544
- transformation = nodeCallBacks[casted.type]?.transform;
9545
- }
9546
- let shouldContinue = true;
9547
- if (continueCheck) {
9548
- shouldContinue = continueCheck(curObject);
9549
- }
9550
- if (!shouldContinue) {
9551
- return curObject;
9552
- }
9553
- const copy3 = { ...curObject };
9554
- for (const [key, value] of Object.entries(copy3)) {
9555
- copy3[key] = this.safeObjectVisit(value, (obj) => this.transformNode(obj, nodeCallBacks));
9556
- }
9557
- if (transformation) {
9558
- return transformation(copy3);
9559
- }
9560
- return copy3;
9544
+ /**
9545
+ * Recursively transforms all objects that are not arrays. Mapper is called on deeper objects first.
9546
+ * @param startObject object to start iterating from
9547
+ * @param mapper mapper to transform the various objects - argument is a copy of the original
9548
+ * @param preVisitor callback that is evaluated before iterating deeper.
9549
+ * If continues is false, we do not iterate deeper, current object is still mapped. - default: true
9550
+ * If shortcut is true, we do not iterate deeper, nor do we branch out, this mapper will be the last one called.
9551
+ * - Default false
9552
+ */
9553
+ transformObject(startObject, mapper, preVisitor = () => ({})) {
9554
+ let didShortCut = false;
9555
+ const recurse = (curObject) => {
9556
+ const copy3 = this.clone(curObject);
9557
+ const context = preVisitor(copy3);
9558
+ didShortCut = context.shortcut ?? false;
9559
+ const continues = context.continue ?? true;
9560
+ if (continues && !didShortCut) {
9561
+ for (const [key, value] of Object.entries(copy3)) {
9562
+ if (didShortCut) {
9563
+ return copy3;
9564
+ }
9565
+ copy3[key] = this.safeObjectVisit(value, (obj) => recurse(obj));
9566
+ }
9567
+ }
9568
+ return mapper(copy3);
9569
+ };
9570
+ return recurse(startObject);
9561
9571
  }
9562
- visitNode(curObject, nodeCallBacks) {
9563
- let callback;
9564
- const casted = curObject;
9565
- if (casted.type) {
9566
- callback = nodeCallBacks[casted.type];
9567
- }
9568
- let shouldIterate = true;
9569
- if (callback) {
9570
- shouldIterate = callback(curObject);
9571
- }
9572
- if (shouldIterate) {
9573
- for (const value of Object.values(curObject)) {
9574
- this.safeObjectVisit(value, (obj) => this.visitNode(obj, nodeCallBacks));
9572
+ /**
9573
+ * Visitor that visits all objects. Visits deeper objects first.
9574
+ */
9575
+ visitObject(startObject, visitor, preVisitor = () => ({})) {
9576
+ let didShortCut = false;
9577
+ const recurse = (curObject) => {
9578
+ const context = preVisitor(curObject);
9579
+ didShortCut = context.shortcut ?? false;
9580
+ const continues = context.continue ?? true;
9581
+ if (continues && !didShortCut) {
9582
+ for (const value of Object.values(curObject)) {
9583
+ if (didShortCut) {
9584
+ return;
9585
+ }
9586
+ this.safeObjectVisit(value, (obj) => recurse(obj));
9587
+ }
9575
9588
  }
9576
- }
9589
+ visitor(curObject);
9590
+ };
9591
+ recurse(startObject);
9592
+ }
9593
+ transformNode(startObject, nodeCallBacks) {
9594
+ const transformWrapper = (curObject) => {
9595
+ const casted = curObject;
9596
+ if (casted.type) {
9597
+ const ogFunc = nodeCallBacks[casted.type]?.transform;
9598
+ if (ogFunc) {
9599
+ return ogFunc(casted);
9600
+ }
9601
+ }
9602
+ return curObject;
9603
+ };
9604
+ const preTransformWrapper = (curObject) => {
9605
+ const casted = curObject;
9606
+ if (casted.type) {
9607
+ const ogFunc = nodeCallBacks[casted.type]?.preVisitor;
9608
+ if (ogFunc) {
9609
+ return ogFunc(casted);
9610
+ }
9611
+ }
9612
+ return {};
9613
+ };
9614
+ return this.transformObject(startObject, transformWrapper, preTransformWrapper);
9615
+ }
9616
+ visitNode(startObject, nodeCallBacks) {
9617
+ const visitWrapper = (curObject) => {
9618
+ const casted = curObject;
9619
+ if (casted.type) {
9620
+ const ogFunc = nodeCallBacks[casted.type]?.visitor;
9621
+ if (ogFunc) {
9622
+ ogFunc(casted);
9623
+ }
9624
+ }
9625
+ };
9626
+ const preVisitWrapper = (curObject) => {
9627
+ const casted = curObject;
9628
+ if (casted.type) {
9629
+ const ogFunc = nodeCallBacks[casted.type]?.preVisitor;
9630
+ if (ogFunc) {
9631
+ return ogFunc(casted);
9632
+ }
9633
+ }
9634
+ return {};
9635
+ };
9636
+ this.visitObject(startObject, visitWrapper, preVisitWrapper);
9637
+ }
9638
+ traverseNodes(currentNode, traverse) {
9639
+ let didShortCut = false;
9640
+ const recurse = (curNode) => {
9641
+ const traverser = traverse[curNode.type];
9642
+ if (traverser) {
9643
+ const { next, shortcut } = traverser(curNode);
9644
+ didShortCut = shortcut ?? false;
9645
+ if (!didShortCut) {
9646
+ for (const node of next ?? []) {
9647
+ if (didShortCut) {
9648
+ return;
9649
+ }
9650
+ recurse(node);
9651
+ }
9652
+ }
9653
+ }
9654
+ };
9655
+ recurse(currentNode);
9577
9656
  }
9578
9657
  };
9579
9658
  var TransformerSubType = class extends TransformerType {
9580
- // Public visitObjects(curObject: object, visitor: (current: object) => void): void {
9581
- // for (const value of Object.values(curObject)) {
9582
- // this.safeObjectVisit(value, obj => this.visitObjects(obj, visitor));
9583
- // }
9584
- // }
9585
- transformNodeSpecific(curObject, nodeCallBacks, nodeSpecificCallBacks = {}) {
9586
- let continueCheck;
9587
- let transformation;
9588
- const casted = curObject;
9589
- if (casted.type && casted.subType) {
9590
- const specific = nodeSpecificCallBacks[casted.type];
9591
- if (specific) {
9592
- continueCheck = specific[casted.subType]?.continue;
9593
- transformation = specific[casted.subType]?.transform;
9594
- }
9595
- }
9596
- let shouldContinue = true;
9597
- if (continueCheck) {
9598
- shouldContinue = continueCheck(curObject);
9599
- }
9600
- if (!shouldContinue) {
9601
- return curObject;
9602
- }
9603
- const copy3 = { ...curObject };
9604
- for (const [key, value] of Object.entries(copy3)) {
9605
- copy3[key] = this.safeObjectVisit(value, (obj) => this.transformNodeSpecific(obj, nodeCallBacks, nodeSpecificCallBacks));
9606
- }
9607
- if (transformation) {
9608
- return transformation(copy3);
9609
- }
9610
- return copy3;
9659
+ transformNodeSpecific(startObject, nodeCallBacks, nodeSpecificCallBacks) {
9660
+ const transformWrapper = (curObject) => {
9661
+ let ogTransform;
9662
+ const casted = curObject;
9663
+ if (casted.type && casted.subType) {
9664
+ const specific = nodeSpecificCallBacks[casted.type];
9665
+ if (specific) {
9666
+ ogTransform = specific[casted.subType]?.transform;
9667
+ }
9668
+ if (!ogTransform) {
9669
+ ogTransform = nodeCallBacks[casted.type]?.transform;
9670
+ }
9671
+ }
9672
+ return ogTransform ? ogTransform(casted) : curObject;
9673
+ };
9674
+ const preVisitWrapper = (curObject) => {
9675
+ let ogPreVisit;
9676
+ const casted = curObject;
9677
+ if (casted.type && casted.subType) {
9678
+ const specific = nodeSpecificCallBacks[casted.type];
9679
+ if (specific) {
9680
+ ogPreVisit = specific[casted.subType]?.preVisitor;
9681
+ }
9682
+ if (!ogPreVisit) {
9683
+ ogPreVisit = nodeCallBacks[casted.type]?.preVisitor;
9684
+ }
9685
+ }
9686
+ return ogPreVisit ? ogPreVisit(casted) : curObject;
9687
+ };
9688
+ return this.transformObject(startObject, transformWrapper, preVisitWrapper);
9611
9689
  }
9612
9690
  /**
9613
9691
  * When both nodeCallBack and NodeSpecific callBack are matched, will only look at nodeSpecifCallback
9614
9692
  */
9615
- visitNodeSpecific(curObject, nodeCallBacks, nodeSpecificCallBacks = {}) {
9616
- let callback;
9617
- const casted = curObject;
9618
- if (casted.type && casted.subType) {
9619
- const specific = nodeSpecificCallBacks[casted.type];
9620
- if (specific) {
9621
- callback = specific[casted.subType];
9693
+ visitNodeSpecific(startObject, nodeCallBacks, nodeSpecificCallBacks) {
9694
+ const visitWrapper = (curObject) => {
9695
+ let ogTransform;
9696
+ const casted = curObject;
9697
+ if (casted.type && casted.subType) {
9698
+ const specific = nodeSpecificCallBacks[casted.type];
9699
+ if (specific) {
9700
+ ogTransform = specific[casted.subType]?.visitor;
9701
+ }
9702
+ if (!ogTransform) {
9703
+ ogTransform = nodeCallBacks[casted.type]?.visitor;
9704
+ }
9622
9705
  }
9623
- }
9624
- if (!callback && casted.type) {
9625
- callback = nodeCallBacks[curObject.type];
9626
- }
9627
- let shouldIterate = true;
9628
- if (callback) {
9629
- shouldIterate = callback(curObject) ?? true;
9630
- }
9631
- if (shouldIterate) {
9632
- for (const value of Object.values(curObject)) {
9633
- this.safeObjectVisit(value, (obj) => this.visitNodeSpecific(obj, nodeCallBacks, nodeSpecificCallBacks));
9706
+ if (ogTransform) {
9707
+ ogTransform(casted);
9634
9708
  }
9635
- }
9709
+ };
9710
+ const preVisitWrapper = (curObject) => {
9711
+ let ogPreVisit;
9712
+ const casted = curObject;
9713
+ if (casted.type && casted.subType) {
9714
+ const specific = nodeSpecificCallBacks[casted.type];
9715
+ if (specific) {
9716
+ ogPreVisit = specific[casted.subType]?.preVisitor;
9717
+ }
9718
+ if (!ogPreVisit) {
9719
+ ogPreVisit = nodeCallBacks[casted.type]?.preVisitor;
9720
+ }
9721
+ }
9722
+ return ogPreVisit ? ogPreVisit(casted) : curObject;
9723
+ };
9724
+ this.visitObject(startObject, visitWrapper, preVisitWrapper);
9725
+ }
9726
+ traverseSubNodes(currentNode, traverseNode, traverseSubNode) {
9727
+ let didShortCut = false;
9728
+ const recurse = (curNode) => {
9729
+ let traverser;
9730
+ const subObj = traverseSubNode[curNode.type];
9731
+ if (subObj) {
9732
+ traverser = subObj[curNode.subType];
9733
+ }
9734
+ if (!traverser) {
9735
+ traverser = traverseNode[curNode.type];
9736
+ }
9737
+ if (traverser) {
9738
+ const { next, shortcut } = traverser(curNode);
9739
+ didShortCut = shortcut ?? false;
9740
+ if (!didShortCut) {
9741
+ for (const node of next ?? []) {
9742
+ if (didShortCut) {
9743
+ return;
9744
+ }
9745
+ recurse(node);
9746
+ }
9747
+ }
9748
+ }
9749
+ };
9750
+ recurse(currentNode);
9636
9751
  }
9637
9752
  };
9638
9753
 
@@ -9874,8 +9989,9 @@ __export(lexer_exports, {
9874
9989
  construct: () => construct,
9875
9990
  copy: () => copy,
9876
9991
  create: () => create,
9877
- dataClause: () => dataClause,
9878
9992
  deleteClause: () => deleteClause,
9993
+ deleteDataClause: () => deleteDataClause,
9994
+ deleteWhereClause: () => deleteWhereClause,
9879
9995
  describe: () => describe,
9880
9996
  distinct: () => distinct,
9881
9997
  drop: () => drop2,
@@ -9887,6 +10003,7 @@ __export(lexer_exports, {
9887
10003
  having: () => having,
9888
10004
  in_: () => in_,
9889
10005
  insertClause: () => insertClause,
10006
+ insertDataClause: () => insertDataClause,
9890
10007
  limit: () => limit,
9891
10008
  load: () => load,
9892
10009
  loadInto: () => loadInto,
@@ -10185,6 +10302,44 @@ var graph = createToken2({ name: "Graph", pattern: /graph/i, label: "GRAPH" });
10185
10302
  var graphAll = createToken2({ name: "GraphAll", pattern: /all/i, label: "ALL" });
10186
10303
  var allGraphTokens = LexerBuilder.create().add(named, default_, graph, graphAll);
10187
10304
 
10305
+ // ../rules-sparql-1-1/lib/lexer/lexerPatterns.js
10306
+ 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]/;
10307
+ var pnCharsUPattern = new RegExp(`${pnCharsBasePattern.source}|_`);
10308
+ var varNamePattern = new RegExp(`((${pnCharsUPattern.source})|[0-9])((${pnCharsUPattern.source})|[0-9]|[\xB7\u0300-\u036F\u203F-\u2040])*`);
10309
+ var iriRefPattern = /<([^\u0000-\u0020"<>\\^`{|}])*>/;
10310
+ var pnCharsPattern = new RegExp(`(${pnCharsUPattern.source})|[\\-0-9\xB7\u0300-\u036F\u203F-\u2040]`);
10311
+ var pnPrefixPattern = new RegExp(`(${pnCharsBasePattern.source})(((${pnCharsPattern.source})|\\.)*(${pnCharsPattern.source}))?`);
10312
+ var pNameNsPattern = new RegExp(`(${pnPrefixPattern.source})?:`);
10313
+ var percentPattern = /%[\dA-Fa-f]{2}/;
10314
+ var pnLocalEscPattern = /\\[!#$%&'()*+,./;=?@\\_~-]/;
10315
+ var plxPattern = new RegExp(`(${percentPattern.source})|(${pnLocalEscPattern.source})`);
10316
+ var pnLocalPattern = new RegExp(`((${pnCharsUPattern.source})|:|[0-9]|(${plxPattern.source}))(((${pnCharsPattern.source})|\\.|:|(${plxPattern.source}))*((${pnCharsPattern.source})|:|(${plxPattern.source})))?`);
10317
+ var pNameLnPattern = new RegExp(`(${pNameNsPattern.source})(${pnLocalPattern.source})`);
10318
+ var blankNodeLabelPattern = new RegExp(`_:((${pnCharsUPattern.source})|[0-9])(((${pnCharsPattern.source})|\\.)*(${pnCharsPattern.source}))?`);
10319
+ var var1Pattern = new RegExp(`\\?(${varNamePattern.source})`);
10320
+ var var2Pattern = new RegExp(`\\$(${varNamePattern.source})`);
10321
+ var langTagPattern = /@[A-Za-z]+(-[\dA-Za-z]+)*/;
10322
+ var integerPattern = /\d+/;
10323
+ var decimalPattern2 = /\d+\.\d+/;
10324
+ var exponentPattern = /[Ee][+-]?\d+/;
10325
+ var doublePattern = new RegExp(`([0-9]+\\.[0-9]*(${exponentPattern.source}))|(\\.[0-9]+(${exponentPattern.source}))|([0-9]+(${exponentPattern.source}))`);
10326
+ var interferePositivePattern = new RegExp(`\\+${integerPattern.source}`);
10327
+ var decimalPositivePattern = new RegExp(`\\+${decimalPattern2.source}`);
10328
+ var doublePositivePattern = new RegExp(`\\+${doublePattern.source}`);
10329
+ var integerNegativePattern = new RegExp(`-${integerPattern.source}`);
10330
+ var decimalNegativePattern = new RegExp(`-${decimalPattern2.source}`);
10331
+ var doubleNegativePattern = new RegExp(`-${doublePattern.source}`);
10332
+ var echarPattern = /\\[\\"'bfnrt]/u;
10333
+ var stringLiteral1Pattern = new RegExp(`'(([^\\u0027\\u005C\\u000A\r])|(${echarPattern.source}))*'`);
10334
+ var stringLiteral2Pattern = new RegExp(`"(([^\\u0022\\u005C\\u000A\\u000D])|(${echarPattern.source}))*"`);
10335
+ var stringLiteralLong1Pattern = new RegExp(`'''(('|(''))?([^'\\\\]|(${echarPattern.source})))*'''`);
10336
+ var stringLiteralLong2Pattern = new RegExp(`"""(("|(""))?([^"\\\\]|(${echarPattern.source})))*"""`);
10337
+ var wsPattern = /[\u0009\u000A\u000D ]/;
10338
+ var nilPattern = new RegExp(`\\((${wsPattern.source})*\\)`);
10339
+ var anonPattern = new RegExp(`\\[(${wsPattern.source})*\\]`);
10340
+ var commentPattern = /#[^\n]*\n/;
10341
+ var atLeastOneBlankPattern = new RegExp(`((${wsPattern.source}+)|(${commentPattern.source}))+`);
10342
+
10188
10343
  // ../rules-sparql-1-1/lib/lexer/symbols.js
10189
10344
  var symbols_exports = {};
10190
10345
  __export(symbols_exports, {
@@ -10273,40 +10428,6 @@ __export(terminals_exports, {
10273
10428
  var2: () => var2,
10274
10429
  ws: () => ws
10275
10430
  });
10276
- 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]/;
10277
- var pnCharsUPattern = new RegExp(`${pnCharsBasePattern.source}|_`);
10278
- var varNamePattern = new RegExp(`((${pnCharsUPattern.source})|[0-9])((${pnCharsUPattern.source})|[0-9]|[\xB7\u0300-\u036F\u203F-\u2040])*`);
10279
- var iriRefPattern = /<([^\u0000-\u0020"<>\\^`{|}])*>/;
10280
- var pnCharsPattern = new RegExp(`(${pnCharsUPattern.source})|[\\-0-9\xB7\u0300-\u036F\u203F-\u2040]`);
10281
- var pnPrefixPattern = new RegExp(`(${pnCharsBasePattern.source})(((${pnCharsPattern.source})|\\.)*(${pnCharsPattern.source}))?`);
10282
- var pNameNsPattern = new RegExp(`(${pnPrefixPattern.source})?:`);
10283
- var percentPattern = /%[\dA-Fa-f]{2}/;
10284
- var pnLocalEscPattern = /\\[!#$%&'()*+,./;=?@\\_~-]/;
10285
- var plxPattern = new RegExp(`(${percentPattern.source})|(${pnLocalEscPattern.source})`);
10286
- var pnLocalPattern = new RegExp(`((${pnCharsUPattern.source})|:|[0-9]|(${plxPattern.source}))(((${pnCharsPattern.source})|\\.|:|(${plxPattern.source}))*((${pnCharsPattern.source})|:|(${plxPattern.source})))?`);
10287
- var pNameLnPattern = new RegExp(`(${pNameNsPattern.source})(${pnLocalPattern.source})`);
10288
- var blankNodeLabelPattern = new RegExp(`_:((${pnCharsUPattern.source})|[0-9])(((${pnCharsPattern.source})|\\.)*(${pnCharsPattern.source}))?`);
10289
- var var1Pattern = new RegExp(`\\?(${varNamePattern.source})`);
10290
- var var2Pattern = new RegExp(`\\$(${varNamePattern.source})`);
10291
- var langTagPattern = /@[A-Za-z]+(-[\dA-Za-z]+)*/;
10292
- var integerPattern = /\d+/;
10293
- var decimalPattern2 = /\d+\.\d+/;
10294
- var exponentPattern = /[Ee][+-]?\d+/;
10295
- var doublePattern = new RegExp(`([0-9]+\\.[0-9]*(${exponentPattern.source}))|(\\.[0-9]+(${exponentPattern.source}))|([0-9]+(${exponentPattern.source}))`);
10296
- var interferePositivePattern = new RegExp(`\\+${integerPattern.source}`);
10297
- var decimalPositivePattern = new RegExp(`\\+${decimalPattern2.source}`);
10298
- var doublePositivePattern = new RegExp(`\\+${doublePattern.source}`);
10299
- var integerNegativePattern = new RegExp(`-${integerPattern.source}`);
10300
- var decimalNegativePattern = new RegExp(`-${decimalPattern2.source}`);
10301
- var doubleNegativePattern = new RegExp(`-${doublePattern.source}`);
10302
- var echarPattern = /\\[\\"'bfnrt]/u;
10303
- var stringLiteral1Pattern = new RegExp(`'(([^\\u0027\\u005C\\u000A\r])|(${echarPattern.source}))*'`);
10304
- var stringLiteral2Pattern = new RegExp(`"(([^\\u0022\\u005C\\u000A\\u000D])|(${echarPattern.source}))*"`);
10305
- var stringLiteralLong1Pattern = new RegExp(`'''(('|(''))?([^'\\\\]|(${echarPattern.source})))*'''`);
10306
- var stringLiteralLong2Pattern = new RegExp(`"""(("|(""))?([^"\\\\]|(${echarPattern.source})))*"""`);
10307
- var wsPattern = /[\u0009\u000A\u000D ]/;
10308
- var nilPattern = new RegExp(`\\((${wsPattern.source})*\\)`);
10309
- var anonPattern = new RegExp(`\\[(${wsPattern.source})*\\]`);
10310
10431
  var iriRef = createToken2({ name: "IriRef", pattern: iriRefPattern });
10311
10432
  var pNameLn = createToken2({ name: "PNameLn", pattern: pNameLnPattern });
10312
10433
  var pNameNs = createToken2({ name: "PNameNs", pattern: pNameNsPattern, longer_alt: [pNameLn] });
@@ -10328,7 +10449,7 @@ var stringLiteral2 = createToken2({ name: "StringLiteral2", pattern: stringLiter
10328
10449
  var stringLiteralLong1 = createToken2({ name: "StringLiteralLong1", pattern: stringLiteralLong1Pattern });
10329
10450
  var stringLiteralLong2 = createToken2({ name: "StringLiteralLong2", pattern: stringLiteralLong2Pattern });
10330
10451
  var ws = createToken2({ name: "Ws", pattern: wsPattern, group: Lexer.SKIPPED });
10331
- var comment = createToken2({ name: "Comment", pattern: /#[^\n]*/, group: Lexer.SKIPPED });
10452
+ var comment = createToken2({ name: "Comment", pattern: commentPattern, group: Lexer.SKIPPED });
10332
10453
  var nil = createToken2({ name: "Nil", pattern: nilPattern });
10333
10454
  var anon = createToken2({ name: "Anon", pattern: anonPattern });
10334
10455
  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);
@@ -10365,9 +10486,23 @@ var to = createToken2({ name: "To", pattern: /to/i, label: "TO" });
10365
10486
  var move = createToken2({ name: "Move", pattern: /move/i, label: "MOVE" });
10366
10487
  var copy = createToken2({ name: "Copy", pattern: /copy/i, label: "COPY" });
10367
10488
  var modifyWith = createToken2({ name: "ModifyWith", pattern: /with/i, label: "WITH" });
10489
+ var deleteDataClause = createToken2({
10490
+ name: "DeleteDataClause",
10491
+ pattern: new RegExp(`delete(${atLeastOneBlankPattern.source})data`, "i"),
10492
+ label: "DELETE DATA"
10493
+ });
10494
+ var deleteWhereClause = createToken2({
10495
+ name: "DeleteWhereClause",
10496
+ pattern: new RegExp(`delete(${atLeastOneBlankPattern.source})where`, "i"),
10497
+ label: "DELETE WHERE"
10498
+ });
10368
10499
  var deleteClause = createToken2({ name: "DeleteClause", pattern: /delete/i, label: "DELETE" });
10369
- var insertClause = createToken2({ name: "InsertClause", pattern: /insert/i, label: "INSERT" });
10370
- var dataClause = createToken2({ name: "DataClause", pattern: /data/i, label: "DATA", longer_alt: datatype });
10500
+ var insertDataClause = createToken2({
10501
+ name: "InsertDataClause",
10502
+ pattern: new RegExp(`insert(${atLeastOneBlankPattern.source})data`, "i"),
10503
+ label: "INSERT DATA"
10504
+ });
10505
+ var insertClause = createToken2({ name: "InsertClause", pattern: /insert/i, label: "insert" });
10371
10506
  var usingClause = createToken2({ name: "UsingClause", pattern: /using/i, label: "USING" });
10372
10507
  var optional = createToken2({ name: "Optional", pattern: /optional/i, label: "OPTIONAL" });
10373
10508
  var service = createToken2({ name: "Service", pattern: /service/i, label: "SERVICE" });
@@ -10382,8 +10517,8 @@ var false_ = createToken2({ name: "False", pattern: /false/i, label: "false" });
10382
10517
  var in_ = createToken2({ name: "In", pattern: /in/i, label: "IN" });
10383
10518
  var notIn = createToken2({ name: "NotIn", pattern: /not[\u0020\u0009\u000D\u000A]+in/i, label: "NOT IN" });
10384
10519
  var separator = createToken2({ name: "Separator", pattern: /separator/i, label: "SEPARATOR" });
10385
- 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);
10386
- 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);
10520
+ 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);
10521
+ var sparql11LexerBuilder = LexerBuilder.create(allTerminals).merge(allBaseTokens).merge(allBuiltInCalls).merge(allGraphTokens).merge(allSymbols).moveAfter(avg, a).moveBefore(a, graphAll).moveAfter(groupConcat, groupByGroup);
10387
10522
 
10388
10523
  // ../rules-sparql-1-1/lib/factoryMixins/ContextFactory.js
10389
10524
  var nodeType = "contextDef";
@@ -11128,12 +11263,12 @@ var CommonIRIs;
11128
11263
  CommonIRIs2["NIL"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil";
11129
11264
  CommonIRIs2["TYPE"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type";
11130
11265
  })(CommonIRIs || (CommonIRIs = {}));
11131
- var TransformerSparql11 = class extends TransformerSubType {
11266
+ var AstTransformer = class extends TransformerSubType {
11132
11267
  };
11133
11268
 
11134
11269
  // ../rules-sparql-1-1/lib/validation/validators.js
11135
11270
  var F = new AstFactory();
11136
- var transformer = new TransformerSparql11();
11271
+ var transformer = new AstTransformer();
11137
11272
  function getAggregatesOfExpression(expression2) {
11138
11273
  if (F.isExpressionAggregate(expression2)) {
11139
11274
  return [expression2];
@@ -11212,77 +11347,69 @@ function queryIsGood(query2) {
11212
11347
  }
11213
11348
  }
11214
11349
  }
11350
+ function notUndefined(some2) {
11351
+ return some2 !== void 0;
11352
+ }
11215
11353
  function findPatternBoundedVars(iter, boundedVars) {
11216
- if (F.isQuery(iter) || F.isUpdate(iter)) {
11217
- if (F.isQuerySelect(iter) || F.isQueryDescribe(iter)) {
11218
- if (iter.where && iter.variables.some((x) => F.isWildcard(x))) {
11219
- findPatternBoundedVars(iter.where, boundedVars);
11220
- } else {
11221
- for (const v of iter.variables) {
11222
- findPatternBoundedVars(v, boundedVars);
11223
- }
11224
- }
11225
- if (iter.solutionModifiers.group) {
11226
- const grouping = iter.solutionModifiers.group;
11227
- for (const g of grouping.groupings) {
11228
- if ("variable" in g) {
11229
- findPatternBoundedVars(g.variable, boundedVars);
11230
- }
11231
- }
11232
- }
11233
- if (iter.values?.values && iter.values.values.length > 0) {
11234
- const values3 = iter.values.values;
11235
- for (const v of Object.keys(values3[0])) {
11354
+ transformer.traverseSubNodes(iter, {
11355
+ query: (op) => ({ next: [
11356
+ op.solutionModifiers.group
11357
+ ].filter(notUndefined) }),
11358
+ triple: (op) => ({ next: [op.subject, op.predicate, op.object] }),
11359
+ path: (op) => ({ next: op.items }),
11360
+ tripleCollection: (op) => ({ next: [op.identifier, ...op.triples] })
11361
+ }, {
11362
+ query: {
11363
+ select: (op) => ({ next: [
11364
+ ...op.variables.some((x) => F.isWildcard(x)) ? [op.where] : op.variables,
11365
+ op.solutionModifiers.group,
11366
+ op.values
11367
+ ].filter(notUndefined) }),
11368
+ describe: (op) => ({ next: [
11369
+ ...op.variables.some((x) => F.isWildcard(x)) ? [op.where] : op.variables,
11370
+ op.solutionModifiers.group,
11371
+ op.values
11372
+ ].filter(notUndefined) })
11373
+ },
11374
+ solutionModifier: {
11375
+ group: (op) => ({
11376
+ next: op.groupings.filter((g) => "variable" in g).map((x) => x.variable)
11377
+ }),
11378
+ having: (op) => ({ next: op.having }),
11379
+ order: (op) => ({ next: op.orderDefs.map((x) => x.expression) })
11380
+ },
11381
+ pattern: {
11382
+ values: (op) => {
11383
+ for (const v of Object.keys(op.values.at(0) ?? {})) {
11236
11384
  boundedVars.add(v);
11237
11385
  }
11386
+ return {};
11387
+ },
11388
+ bgp: (op) => ({ next: op.triples }),
11389
+ group: (op) => ({ next: op.patterns }),
11390
+ union: (op) => ({ next: op.patterns }),
11391
+ optional: (op) => ({ next: op.patterns }),
11392
+ service: (op) => ({ next: [op.name, ...op.patterns] }),
11393
+ bind: (op) => ({ next: [op.variable] }),
11394
+ graph: (op) => ({ next: [op.name, ...op.patterns] }),
11395
+ minus: (op) => ({ next: op.patterns.slice(0, 1) })
11396
+ },
11397
+ term: {
11398
+ variable: (op) => {
11399
+ boundedVars.add(op.value);
11400
+ return {};
11238
11401
  }
11239
11402
  }
11240
- } else if (F.isTerm(iter)) {
11241
- if (F.isTermVariable(iter)) {
11242
- boundedVars.add(iter.value);
11243
- }
11244
- } else if (F.isTriple(iter)) {
11245
- findPatternBoundedVars(iter.subject, boundedVars);
11246
- findPatternBoundedVars(iter.predicate, boundedVars);
11247
- findPatternBoundedVars(iter.object, boundedVars);
11248
- } else if (F.isPath(iter)) {
11249
- if (!F.isTerm(iter)) {
11250
- for (const item of iter.items) {
11251
- findPatternBoundedVars(item, boundedVars);
11252
- }
11253
- }
11254
- } else if (F.isTripleCollection(iter) || F.isPatternBgp(iter)) {
11255
- for (const triple of iter.triples) {
11256
- findPatternBoundedVars(triple, boundedVars);
11257
- }
11258
- } else if (F.isPatternGroup(iter) || F.isPatternUnion(iter) || F.isPatternOptional(iter) || F.isPatternService(iter)) {
11259
- for (const pattern of iter.patterns) {
11260
- findPatternBoundedVars(pattern, boundedVars);
11261
- }
11262
- if (F.isPatternService(iter)) {
11263
- findPatternBoundedVars(iter.name, boundedVars);
11264
- }
11265
- } else if (F.isPatternBind(iter)) {
11266
- findPatternBoundedVars(iter.variable, boundedVars);
11267
- } else if (F.isPatternValues(iter)) {
11268
- for (const variable of Object.keys(iter.values.at(0) ?? {})) {
11269
- boundedVars.add(variable);
11270
- }
11271
- } else if (F.isPatternGraph(iter)) {
11272
- findPatternBoundedVars(iter.name, boundedVars);
11273
- for (const pattern of iter.patterns) {
11274
- findPatternBoundedVars(pattern, boundedVars);
11275
- }
11276
- }
11403
+ });
11277
11404
  }
11278
11405
  function checkNote13(patterns) {
11279
11406
  for (const [index, pattern] of patterns.entries()) {
11280
11407
  if (F.isPatternBind(pattern) && index > 0 && F.isPatternBgp(patterns[index - 1])) {
11281
11408
  const bgp = patterns[index - 1];
11282
11409
  const variables = [];
11283
- transformer.visitNodeSpecific(bgp, {}, { term: { variable: (var_2) => {
11410
+ transformer.visitNodeSpecific(bgp, {}, { term: { variable: { visitor: (var_2) => {
11284
11411
  variables.push(var_2);
11285
- } } });
11412
+ } } } });
11286
11413
  if (variables.some((var_2) => var_2.value === pattern.variable.value)) {
11287
11414
  throw new Error(`Variable used to bind is already bound (?${pattern.variable.value})`);
11288
11415
  }
@@ -11308,12 +11435,12 @@ function updateNoReuseBlankNodeLabels(updateQuery) {
11308
11435
  const operation = update2.operation;
11309
11436
  if (operation.subType === "insertdata") {
11310
11437
  const blankNodesHere = /* @__PURE__ */ new Set();
11311
- transformer.visitNodeSpecific(operation, {}, { term: { blankNode: (blankNode2) => {
11438
+ transformer.visitNodeSpecific(operation, {}, { term: { blankNode: { visitor: (blankNode2) => {
11312
11439
  blankNodesHere.add(blankNode2.label);
11313
11440
  if (blankLabelsUsedInInsertData.has(blankNode2.label)) {
11314
11441
  throw new Error("Detected reuse blank node across different INSERT DATA clauses");
11315
11442
  }
11316
- } } });
11443
+ } } } });
11317
11444
  for (const blankNode2 of blankNodesHere) {
11318
11445
  blankLabelsUsedInInsertData.add(blankNode2);
11319
11446
  }
@@ -14000,12 +14127,11 @@ var quadData = {
14000
14127
  return ACTION(() => C.astFactory.wrap(val.val, C.astFactory.sourceLocation(open, close)));
14001
14128
  }
14002
14129
  };
14003
- function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
14130
+ function insertDeleteDelWhere(name, subType, cons1, dataRule) {
14004
14131
  return {
14005
14132
  name,
14006
14133
  impl: ({ ACTION, SUBRULE1, CONSUME }) => (C) => {
14007
14134
  const insDelToken = CONSUME(cons1);
14008
- CONSUME(cons2);
14009
14135
  let couldCreateBlankNodes = true;
14010
14136
  if (name !== "insertData") {
14011
14137
  couldCreateBlankNodes = ACTION(() => C.parseMode.delete("canCreateBlankNodes"));
@@ -14037,9 +14163,9 @@ function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
14037
14163
  }
14038
14164
  };
14039
14165
  }
14040
- var insertData = insertDeleteDelWhere("insertData", "insertdata", insertClause, dataClause, quadData);
14041
- var deleteData = insertDeleteDelWhere("deleteData", "deletedata", deleteClause, dataClause, quadData);
14042
- var deleteWhere = insertDeleteDelWhere("deleteWhere", "deletewhere", deleteClause, where, quadPattern);
14166
+ var insertData = insertDeleteDelWhere("insertData", "insertdata", insertDataClause, quadData);
14167
+ var deleteData = insertDeleteDelWhere("deleteData", "deletedata", deleteDataClause, quadData);
14168
+ var deleteWhere = insertDeleteDelWhere("deleteWhere", "deletewhere", deleteWhereClause, quadPattern);
14043
14169
  var modify = {
14044
14170
  name: "modify",
14045
14171
  impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OR }) => (C) => {
@@ -15018,6 +15144,8 @@ function completeParseContext(context) {
15018
15144
  [traqulaIndentation]: context[traqulaIndentation] ?? 0
15019
15145
  };
15020
15146
  }
15147
+ var AstTransformer2 = class extends TransformerSubType {
15148
+ };
15021
15149
  /*! Bundled license information:
15022
15150
 
15023
15151
  lodash-es/lodash.js:
package/lib/lexer.d.ts CHANGED
@@ -17,4 +17,4 @@ export declare const buildInSUBJECT: import("@traqula/core").NamedToken<"BuiltIn
17
17
  export declare const buildInPREDICATE: import("@traqula/core").NamedToken<"BuiltInPredicate">;
18
18
  export declare const buildInOBJECT: import("@traqula/core").NamedToken<"BuiltInObject">;
19
19
  export declare const LANG_DIR: import("@traqula/core").NamedToken<"LANG_DIR">;
20
- export declare const sparql12LexerBuilder: LexerBuilder<"Version" | "Tilde" | "AnnotationOpen" | "AnnotationClose" | "ReificationOpen" | "ReificationClose" | "TripleTermOpen" | "TripleTermClose" | "BuiltInLangdir" | "BuiltInStrLangdir" | "BuiltInHasLang" | "BuiltInHasLangdir" | "BuiltInIsTriple" | "BuiltInTriple" | "BuiltInSubject" | "BuiltInPredicate" | "BuiltInObject" | "LANG_DIR" | "IriRef" | "PNameNs" | "PNameLn" | "BlankNodeLabel" | "Var1" | "Var2" | "Double" | "Decimal" | "Integer" | "InterferePositive" | "DecimalPositive" | "DoublePositive" | "IntegerNegative" | "DecimalNegative" | "DoubleNegative" | "StringLiteralLong1" | "StringLiteralLong2" | "StringLiteral1" | "StringLiteral2" | "Ws" | "Comment" | "Nil" | "Anon" | "BaseDecl" | "PrefixDecl" | "Select" | "Distinct" | "Reduced" | "Construct" | "Describe" | "Ask" | "From" | "Where" | "Having" | "GroupByGroup" | "By" | "Order" | "OrderAsc" | "OrderDesc" | "Limit" | "Offset" | "Values" | "Load" | "Silent" | "LoadInto" | "Clear" | "Drop" | "Create" | "Add" | "To" | "Move" | "Copy" | "ModifyWith" | "DeleteClause" | "InsertClause" | "DataClause" | "BuiltInDatatype" | "UsingClause" | "Optional" | "Service" | "Bind" | "Undef" | "Minus" | "Union" | "Filter" | "As" | "a" | "True" | "False" | "In" | "NotIn" | "Separator" | "BuiltInLangmatches" | "BuiltInLang" | "BuiltInBound" | "BuiltInIri" | "BuiltInUri" | "BuiltInBnode" | "BuiltInRand" | "BuiltInAbs" | "BuiltInCeil" | "BuiltInFloor" | "BuiltInRound" | "BuiltInConcat" | "BuiltInStrlen" | "BuiltInUcase" | "BuiltInLcase" | "BuiltInEncode_for_uri" | "BuiltInContains" | "BuiltInStrstarts" | "BuiltInStrends" | "BuiltInStrbefore" | "BuiltInStrafter" | "BuiltInYear" | "BuiltInMonth" | "BuiltInDay" | "BuiltInHours" | "BuiltInMinutes" | "BuiltInSeconds" | "BuiltInTimezone" | "BuiltInTz" | "BuiltInNow" | "BuiltInUuid" | "BuiltInStruuid" | "BuiltInMd5" | "BuiltInSha1" | "BuiltInSha256" | "BuiltInSha384" | "BuiltInSha512" | "BuiltInCoalesce" | "BuiltInIf" | "BuiltInStrlang" | "BuiltInStrdt" | "BuiltInSameterm" | "BuiltInIsiri" | "BuiltInIsuri" | "BuiltInIsblank" | "BuiltInIsliteral" | "BuiltInIsnumeric" | "BuiltInRegex" | "BuiltInSubstr" | "BuiltInReplace" | "BuiltInExists" | "BuiltInNotexists" | "BuiltInCount" | "BuiltInSum" | "BuiltInMin" | "BuiltInMax" | "BuiltInAvg" | "BuiltInSample" | "BuiltInGroup_concat" | "BuiltInStr" | "NamedGraph" | "DefaultGraph" | "Graph" | "GraphAll" | "LogicAnd" | "LogicOr" | "NotEqual" | "LessThanEqual" | "GreaterThanEqual" | "LCurly" | "RCurly" | "Dot" | "Comma" | "Semi" | "LParen" | "RParen" | "LSquare" | "RSquare" | "Pipe" | "Slash" | "Hathat" | "Hat" | "Question" | "Star" | "OpPlus" | "OpMinus" | "Exclamation" | "Equal" | "LessThan" | "GreaterThan">;
20
+ export declare const sparql12LexerBuilder: LexerBuilder<"BuiltInStr" | "BuiltInLang" | "BuiltInLangmatches" | "BuiltInDatatype" | "BuiltInBound" | "BuiltInIri" | "BuiltInUri" | "BuiltInBnode" | "BuiltInRand" | "BuiltInAbs" | "BuiltInCeil" | "BuiltInFloor" | "BuiltInRound" | "BuiltInConcat" | "BuiltInStrlen" | "BuiltInUcase" | "BuiltInLcase" | "BuiltInEncode_for_uri" | "BuiltInContains" | "BuiltInStrstarts" | "BuiltInStrends" | "BuiltInStrbefore" | "BuiltInStrafter" | "BuiltInYear" | "BuiltInMonth" | "BuiltInDay" | "BuiltInHours" | "BuiltInMinutes" | "BuiltInSeconds" | "BuiltInTimezone" | "BuiltInTz" | "BuiltInNow" | "BuiltInUuid" | "BuiltInStruuid" | "BuiltInMd5" | "BuiltInSha1" | "BuiltInSha256" | "BuiltInSha384" | "BuiltInSha512" | "BuiltInCoalesce" | "BuiltInIf" | "BuiltInStrlang" | "BuiltInStrdt" | "BuiltInSameterm" | "BuiltInIsiri" | "BuiltInIsuri" | "BuiltInIsblank" | "BuiltInIsliteral" | "BuiltInIsnumeric" | "BuiltInRegex" | "BuiltInSubstr" | "BuiltInReplace" | "BuiltInExists" | "BuiltInNotexists" | "BuiltInCount" | "BuiltInSum" | "BuiltInMin" | "BuiltInMax" | "BuiltInAvg" | "BuiltInSample" | "BuiltInGroup_concat" | "NamedGraph" | "DefaultGraph" | "Graph" | "GraphAll" | "BaseDecl" | "PrefixDecl" | "Select" | "Distinct" | "Reduced" | "As" | "Construct" | "Describe" | "Ask" | "From" | "Where" | "GroupByGroup" | "By" | "Having" | "Order" | "OrderAsc" | "OrderDesc" | "Limit" | "Offset" | "Values" | "Load" | "Silent" | "LoadInto" | "Clear" | "Drop" | "Create" | "Add" | "To" | "Move" | "Copy" | "ModifyWith" | "DeleteDataClause" | "DeleteWhereClause" | "DeleteClause" | "InsertDataClause" | "InsertClause" | "UsingClause" | "Optional" | "Service" | "Bind" | "Undef" | "Minus" | "Union" | "Filter" | "a" | "True" | "False" | "In" | "NotIn" | "Separator" | "LCurly" | "RCurly" | "LParen" | "RParen" | "Nil" | "Dot" | "Pipe" | "Slash" | "Question" | "Star" | "OpPlus" | "Hat" | "Exclamation" | "PNameNs" | "PNameLn" | "Var1" | "Var2" | "Comma" | "Equal" | "NotEqual" | "LessThan" | "GreaterThan" | "LessThanEqual" | "GreaterThanEqual" | "OpMinus" | "LogicOr" | "LogicAnd" | "Semi" | "LSquare" | "RSquare" | "Hathat" | "Integer" | "IriRef" | "BlankNodeLabel" | "Double" | "Decimal" | "InterferePositive" | "DecimalPositive" | "DoublePositive" | "IntegerNegative" | "DecimalNegative" | "DoubleNegative" | "StringLiteralLong1" | "StringLiteralLong2" | "StringLiteral1" | "StringLiteral2" | "Ws" | "Comment" | "Anon" | "Version" | "Tilde" | "AnnotationOpen" | "AnnotationClose" | "ReificationOpen" | "ReificationClose" | "TripleTermOpen" | "TripleTermClose" | "BuiltInLangdir" | "BuiltInStrLangdir" | "BuiltInHasLang" | "BuiltInHasLangdir" | "BuiltInIsTriple" | "BuiltInTriple" | "BuiltInSubject" | "BuiltInPredicate" | "BuiltInObject" | "LANG_DIR">;
@@ -1,4 +1,6 @@
1
+ import { TransformerSubType } from '@traqula/core';
1
2
  import type { SparqlContext, SparqlGeneratorContext } from './sparql12HelperTypes.js';
3
+ import type { Sparql12Nodes } from './sparql12Types.js';
2
4
  export declare function completeParseContext(context: Partial<SparqlContext & SparqlGeneratorContext & {
3
5
  origSource: string;
4
6
  offset?: number;
@@ -6,3 +8,5 @@ export declare function completeParseContext(context: Partial<SparqlContext & Sp
6
8
  origSource: string;
7
9
  offset?: number;
8
10
  };
11
+ export declare class AstTransformer extends TransformerSubType<Sparql12Nodes> {
12
+ }
@@ -1,4 +1,4 @@
1
- import { traqulaIndentation } from '@traqula/core';
1
+ import { TransformerSubType, traqulaIndentation } from '@traqula/core';
2
2
  import { AstFactory } from './AstFactory.js';
3
3
  export function completeParseContext(context) {
4
4
  return {
@@ -13,4 +13,6 @@ export function completeParseContext(context) {
13
13
  [traqulaIndentation]: context[traqulaIndentation] ?? 0,
14
14
  };
15
15
  }
16
+ export class AstTransformer extends TransformerSubType {
17
+ }
16
18
  //# sourceMappingURL=parserUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parserUtils.js","sourceRoot":"","sources":["parserUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,MAAM,UAAU,oBAAoB,CAClC,OAAkG;IAElG,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI,UAAU,EAAE;QAClD,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE;QACjC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAE,cAAc,EAAE,qBAAqB,CAAE,CAAC;QAC9G,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,KAAK;QAC/C,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,CAAC;QACjC,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC;KACvD,CAAC;AACJ,CAAC","sourcesContent":["import { traqulaIndentation } from '@traqula/core';\nimport { AstFactory } from './AstFactory.js';\nimport type { SparqlContext, SparqlGeneratorContext } from './sparql12HelperTypes.js';\n\nexport function completeParseContext(\n context: Partial<SparqlContext & SparqlGeneratorContext & { origSource: string; offset?: number }>,\n): SparqlContext & SparqlGeneratorContext & { origSource: string; offset?: number } {\n return {\n astFactory: context.astFactory ?? new AstFactory(),\n baseIRI: context.baseIRI,\n prefixes: { ...context.prefixes },\n origSource: context.origSource ?? '',\n offset: context.offset,\n parseMode: context.parseMode ? new Set(context.parseMode) : new Set([ 'canParseVars', 'canCreateBlankNodes' ]),\n skipValidation: context.skipValidation ?? false,\n indentInc: context.indentInc ?? 2,\n [traqulaIndentation]: context[traqulaIndentation] ?? 0,\n };\n}\n"]}
1
+ {"version":3,"file":"parserUtils.js","sourceRoot":"","sources":["parserUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,MAAM,UAAU,oBAAoB,CAClC,OAAkG;IAElG,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI,UAAU,EAAE;QAClD,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE;QACjC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAE,cAAc,EAAE,qBAAqB,CAAE,CAAC;QAC9G,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,KAAK;QAC/C,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,CAAC;QACjC,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC;KACvD,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,cAAe,SAAQ,kBAAiC;CAAG","sourcesContent":["import { TransformerSubType, traqulaIndentation } from '@traqula/core';\nimport { AstFactory } from './AstFactory.js';\nimport type { SparqlContext, SparqlGeneratorContext } from './sparql12HelperTypes.js';\nimport type { Sparql12Nodes } from './sparql12Types.js';\n\nexport function completeParseContext(\n context: Partial<SparqlContext & SparqlGeneratorContext & { origSource: string; offset?: number }>,\n): SparqlContext & SparqlGeneratorContext & { origSource: string; offset?: number } {\n return {\n astFactory: context.astFactory ?? new AstFactory(),\n baseIRI: context.baseIRI,\n prefixes: { ...context.prefixes },\n origSource: context.origSource ?? '',\n offset: context.offset,\n parseMode: context.parseMode ? new Set(context.parseMode) : new Set([ 'canParseVars', 'canCreateBlankNodes' ]),\n skipValidation: context.skipValidation ?? false,\n indentInc: context.indentInc ?? 2,\n [traqulaIndentation]: context[traqulaIndentation] ?? 0,\n };\n}\n\nexport class AstTransformer extends TransformerSubType<Sparql12Nodes> {}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@traqula/rules-sparql-1-2",
3
3
  "type": "module",
4
- "version": "0.0.16",
4
+ "version": "0.0.18",
5
5
  "description": "Traqula Lexer and Grammar Rules for sparql 1.2",
6
6
  "lsd:module": true,
7
7
  "license": "MIT",
@@ -42,8 +42,8 @@
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/rules-sparql-1-1": "^0.0.16"
45
+ "@traqula/core": "^0.0.18",
46
+ "@traqula/rules-sparql-1-1": "^0.0.18"
47
47
  },
48
- "gitHead": "2de4ee608a2337bed63ecc5cf336b1a57c39e45f"
48
+ "gitHead": "1bb6a7d67631010ee01b325e33ff76f2f7530e02"
49
49
  }