@faubulous/mentor-rdf-serializers 1.9.2 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/formatters/sparql-formatter.d.ts +52 -0
- package/dist/formatters/sparql-formatter.d.ts.map +1 -1
- package/dist/formatters/sparql-formatter.js +127 -7
- package/dist/formatters/sparql-formatter.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/quad-serializer-base.d.ts +19 -1
- package/dist/quad-serializer-base.d.ts.map +1 -1
- package/dist/quad-serializer-base.js +27 -59
- package/dist/quad-serializer-base.js.map +1 -1
- package/dist/term-serializer.d.ts +172 -0
- package/dist/term-serializer.d.ts.map +1 -0
- package/dist/term-serializer.js +208 -0
- package/dist/term-serializer.js.map +1 -0
- package/package.json +1 -1
|
@@ -99,6 +99,58 @@ export declare class SparqlFormatter extends TokenFormatterBase<SparqlFormatterC
|
|
|
99
99
|
private handleSparqlSemicolon;
|
|
100
100
|
private handleSparqlComma;
|
|
101
101
|
private handleSparqlOpenParen;
|
|
102
|
+
/**
|
|
103
|
+
* Indicates whether a `()` token is the empty argument list of a function call, by a
|
|
104
|
+
* built-in keyword, e.g. `NOW()`, or by an IRI, e.g. `ex:fn()`.
|
|
105
|
+
* @param lastNonWsToken The token before the `()` token.
|
|
106
|
+
* @param tokens The tokens of the query.
|
|
107
|
+
* @param index The index of the `()` token.
|
|
108
|
+
*/
|
|
109
|
+
private _isEmptyFunctionArguments;
|
|
110
|
+
/**
|
|
111
|
+
* Indicates whether a `(` or `()` token opens the arguments of a function that is called
|
|
112
|
+
* by its IRI, e.g. `ex:fn(?x)` or `ex:fn()`. In a triple pattern, an IRI followed by `(`
|
|
113
|
+
* is followed by a collection instead, e.g. `?s ex:p (1 2)`, so the call is told apart
|
|
114
|
+
* by the position of the IRI.
|
|
115
|
+
* @param tokens The tokens of the query.
|
|
116
|
+
* @param index The index of the `(` or `()` token.
|
|
117
|
+
* @returns `true` if the token opens the arguments of a function call.
|
|
118
|
+
*/
|
|
119
|
+
private _isIriFunctionCall;
|
|
120
|
+
/**
|
|
121
|
+
* Indicates whether a token is part of an expression rather than of a triple pattern.
|
|
122
|
+
* @param tokens The tokens of the query.
|
|
123
|
+
* @param index The index of the token.
|
|
124
|
+
* @returns `true` if the token is in an expression, e.g. in `FILTER`, `BIND`, a function
|
|
125
|
+
* argument, a `SELECT` expression or a solution modifier.
|
|
126
|
+
*/
|
|
127
|
+
private _isInExpression;
|
|
128
|
+
/**
|
|
129
|
+
* Indicates whether a `(` opens an expression, i.e. function arguments or a bracketted
|
|
130
|
+
* expression, rather than a collection.
|
|
131
|
+
* @param tokens The tokens of the query.
|
|
132
|
+
* @param index The index of the `(` token.
|
|
133
|
+
*/
|
|
134
|
+
private _isExpressionParen;
|
|
135
|
+
/**
|
|
136
|
+
* Returns the index of the innermost `(`, `{` or `[` that encloses a token.
|
|
137
|
+
* @param tokens The tokens of the query.
|
|
138
|
+
* @param index The index of the token.
|
|
139
|
+
* @returns The index of the opening token, or `-1` if the token is not enclosed.
|
|
140
|
+
*/
|
|
141
|
+
private _getEnclosingOpenerIndex;
|
|
142
|
+
/**
|
|
143
|
+
* Returns the index of the token before a token, skipping whitespace and comments.
|
|
144
|
+
* @param tokens The tokens of the query.
|
|
145
|
+
* @param index The index of the token.
|
|
146
|
+
* @returns The index of the previous token, or `-1` if there is none.
|
|
147
|
+
*/
|
|
148
|
+
private _getPreviousTokenIndex;
|
|
149
|
+
/**
|
|
150
|
+
* Indicates whether a token is an IRI, i.e. an IRI reference or a prefixed name.
|
|
151
|
+
* @param token The token to check.
|
|
152
|
+
*/
|
|
153
|
+
private _isIriToken;
|
|
102
154
|
private handleSparqlCloseParen;
|
|
103
155
|
private handleGroupComment;
|
|
104
156
|
private handleInlineComment;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sparql-formatter.d.ts","sourceRoot":"","sources":["../../src/formatters/sparql-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAoC,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACzG,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;IAChE;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,UAAU,sBAAuB,SAAQ,oBAAoB;IACzD,IAAI,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IACvC,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,UAAU,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC5D,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,+CAA+C;IAC/C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,4FAA4F;IAC5F,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uGAAuG;IACvG,uBAAuB,EAAE,OAAO,CAAC;IACjC,+FAA+F;IAC/F,cAAc,EAAE,OAAO,CAAC;IACxB,sEAAsE;IACtE,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,eACT,SAAQ,kBAAkB,CAAC,sBAAsB,EAAE,sBAAsB,CACzE,YAAW,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAqB;IAMlC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,mBAAmB;IAkBpF,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,sBAAsB,GAAG,mBAAmB;IAUlH,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,QAAQ,CAAC,sBAAsB,CAAC;IAmBxF,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,sBAAsB;IAkBvF,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,MAAM;IAezF;;;OAGG;IACH,OAAO,CAAC,oBAAoB;
|
|
1
|
+
{"version":3,"file":"sparql-formatter.d.ts","sourceRoot":"","sources":["../../src/formatters/sparql-formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -164,7 +164,8 @@ export class SparqlFormatter extends TokenFormatterBase {
|
|
|
164
164
|
continue;
|
|
165
165
|
}
|
|
166
166
|
if (token.tokenType === RdfToken.LPARENT || token.tokenType === RdfToken.LBRACKET) {
|
|
167
|
-
const lastWasFunction = lastTokenType && this.isFunctionKeyword({ tokenType: lastTokenType })
|
|
167
|
+
const lastWasFunction = (lastTokenType && this.isFunctionKeyword({ tokenType: lastTokenType })) ||
|
|
168
|
+
(token.tokenType === RdfToken.LPARENT && this._isIriFunctionCall(tokens, i));
|
|
168
169
|
length += (needsSpace && !lastWasFunction ? 1 : 0) + token.image.length;
|
|
169
170
|
needsSpace = false;
|
|
170
171
|
lastTokenType = token.tokenType;
|
|
@@ -187,7 +188,8 @@ export class SparqlFormatter extends TokenFormatterBase {
|
|
|
187
188
|
}
|
|
188
189
|
const tokenLength = this.formatTokenValue(token, opts).length;
|
|
189
190
|
const isOpenParen = lastTokenType === RdfToken.LPARENT || lastTokenType === RdfToken.LBRACKET;
|
|
190
|
-
|
|
191
|
+
const isEmptyArguments = token.tokenType === RdfToken.NIL && this._isEmptyFunctionArguments(lastNonWsToken, tokens, i);
|
|
192
|
+
length += (needsSpace && !isOpenParen && !isEmptyArguments ? 1 : 0) + tokenLength;
|
|
191
193
|
needsSpace = true;
|
|
192
194
|
lastTokenType = token.tokenType;
|
|
193
195
|
lastNonWsToken = token;
|
|
@@ -385,12 +387,12 @@ export class SparqlFormatter extends TokenFormatterBase {
|
|
|
385
387
|
const isLBracket = token.tokenType === RdfToken.LBRACKET;
|
|
386
388
|
const le = ctx.opts.lineEnd;
|
|
387
389
|
const ind = ctx.opts.indent;
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
390
|
+
// A function is called by a built-in keyword, e.g. `STR(`, or by its IRI, e.g. `ex:fn(`.
|
|
391
|
+
const lastWasFunction = (ctx.lastNonWsToken && this.isFunctionKeyword(ctx.lastNonWsToken)) ||
|
|
392
|
+
(isLParen && this._isIriFunctionCall(tokens, index));
|
|
393
|
+
if (isLParen && lastWasFunction) {
|
|
394
|
+
ctx.functionCallDepth++;
|
|
392
395
|
}
|
|
393
|
-
const lastWasFunction = ctx.lastNonWsToken && this.isFunctionKeyword(ctx.lastNonWsToken);
|
|
394
396
|
// Normally newlines are suppressed inside function-call argument lists so
|
|
395
397
|
// expressions stay on one line. A newline that originates from the source
|
|
396
398
|
// layout (e.g. an operand placed on its own line after `||` inside a
|
|
@@ -436,6 +438,118 @@ export class SparqlFormatter extends TokenFormatterBase {
|
|
|
436
438
|
}
|
|
437
439
|
}
|
|
438
440
|
}
|
|
441
|
+
/**
|
|
442
|
+
* Indicates whether a `()` token is the empty argument list of a function call, by a
|
|
443
|
+
* built-in keyword, e.g. `NOW()`, or by an IRI, e.g. `ex:fn()`.
|
|
444
|
+
* @param lastNonWsToken The token before the `()` token.
|
|
445
|
+
* @param tokens The tokens of the query.
|
|
446
|
+
* @param index The index of the `()` token.
|
|
447
|
+
*/
|
|
448
|
+
_isEmptyFunctionArguments(lastNonWsToken, tokens, index) {
|
|
449
|
+
return (!!lastNonWsToken && this.isFunctionKeyword(lastNonWsToken)) || this._isIriFunctionCall(tokens, index);
|
|
450
|
+
}
|
|
451
|
+
/**
|
|
452
|
+
* Indicates whether a `(` or `()` token opens the arguments of a function that is called
|
|
453
|
+
* by its IRI, e.g. `ex:fn(?x)` or `ex:fn()`. In a triple pattern, an IRI followed by `(`
|
|
454
|
+
* is followed by a collection instead, e.g. `?s ex:p (1 2)`, so the call is told apart
|
|
455
|
+
* by the position of the IRI.
|
|
456
|
+
* @param tokens The tokens of the query.
|
|
457
|
+
* @param index The index of the `(` or `()` token.
|
|
458
|
+
* @returns `true` if the token opens the arguments of a function call.
|
|
459
|
+
*/
|
|
460
|
+
_isIriFunctionCall(tokens, index) {
|
|
461
|
+
const iriIndex = this._getPreviousTokenIndex(tokens, index);
|
|
462
|
+
return iriIndex >= 0 && this._isIriToken(tokens[iriIndex]) && this._isInExpression(tokens, iriIndex);
|
|
463
|
+
}
|
|
464
|
+
/**
|
|
465
|
+
* Indicates whether a token is part of an expression rather than of a triple pattern.
|
|
466
|
+
* @param tokens The tokens of the query.
|
|
467
|
+
* @param index The index of the token.
|
|
468
|
+
* @returns `true` if the token is in an expression, e.g. in `FILTER`, `BIND`, a function
|
|
469
|
+
* argument, a `SELECT` expression or a solution modifier.
|
|
470
|
+
*/
|
|
471
|
+
_isInExpression(tokens, index) {
|
|
472
|
+
const previousIndex = this._getPreviousTokenIndex(tokens, index);
|
|
473
|
+
const previous = previousIndex >= 0 ? tokens[previousIndex] : undefined;
|
|
474
|
+
// A function called right after a keyword, e.g. `FILTER ex:fn(?x)` or `ORDER BY ex:fn(?x)`.
|
|
475
|
+
if (previous && (this.isFunctionKeyword(previous) || previous.tokenType === RdfToken.BY || previous.tokenType === RdfToken.HAVING)) {
|
|
476
|
+
return true;
|
|
477
|
+
}
|
|
478
|
+
const openerIndex = this._getEnclosingOpenerIndex(tokens, index);
|
|
479
|
+
// Outside of any group graph pattern, i.e. in the SELECT clause or the solution modifiers.
|
|
480
|
+
if (openerIndex < 0) {
|
|
481
|
+
return true;
|
|
482
|
+
}
|
|
483
|
+
// Inside braces or square brackets, the token is part of a triple pattern.
|
|
484
|
+
if (tokens[openerIndex].tokenType !== RdfToken.LPARENT) {
|
|
485
|
+
return false;
|
|
486
|
+
}
|
|
487
|
+
return this._isExpressionParen(tokens, openerIndex);
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* Indicates whether a `(` opens an expression, i.e. function arguments or a bracketted
|
|
491
|
+
* expression, rather than a collection.
|
|
492
|
+
* @param tokens The tokens of the query.
|
|
493
|
+
* @param index The index of the `(` token.
|
|
494
|
+
*/
|
|
495
|
+
_isExpressionParen(tokens, index) {
|
|
496
|
+
const previousIndex = this._getPreviousTokenIndex(tokens, index);
|
|
497
|
+
const previous = previousIndex >= 0 ? tokens[previousIndex] : undefined;
|
|
498
|
+
if (previous && this.isFunctionKeyword(previous)) {
|
|
499
|
+
return true;
|
|
500
|
+
}
|
|
501
|
+
if (previous && this._isIriToken(previous)) {
|
|
502
|
+
return this._isInExpression(tokens, previousIndex);
|
|
503
|
+
}
|
|
504
|
+
// A bracketted expression nested in an expression, or a collection nested in a collection or triple pattern.
|
|
505
|
+
return this._isInExpression(tokens, index);
|
|
506
|
+
}
|
|
507
|
+
/**
|
|
508
|
+
* Returns the index of the innermost `(`, `{` or `[` that encloses a token.
|
|
509
|
+
* @param tokens The tokens of the query.
|
|
510
|
+
* @param index The index of the token.
|
|
511
|
+
* @returns The index of the opening token, or `-1` if the token is not enclosed.
|
|
512
|
+
*/
|
|
513
|
+
_getEnclosingOpenerIndex(tokens, index) {
|
|
514
|
+
let depth = 0;
|
|
515
|
+
for (let i = index - 1; i >= 0; i--) {
|
|
516
|
+
const tokenType = tokens[i].tokenType;
|
|
517
|
+
if (tokenType === RdfToken.RPARENT || tokenType === RdfToken.RCURLY || tokenType === RdfToken.RBRACKET) {
|
|
518
|
+
depth++;
|
|
519
|
+
}
|
|
520
|
+
else if (tokenType === RdfToken.LPARENT || tokenType === RdfToken.LCURLY || tokenType === RdfToken.LBRACKET) {
|
|
521
|
+
if (depth === 0) {
|
|
522
|
+
return i;
|
|
523
|
+
}
|
|
524
|
+
depth--;
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
return -1;
|
|
528
|
+
}
|
|
529
|
+
/**
|
|
530
|
+
* Returns the index of the token before a token, skipping whitespace and comments.
|
|
531
|
+
* @param tokens The tokens of the query.
|
|
532
|
+
* @param index The index of the token.
|
|
533
|
+
* @returns The index of the previous token, or `-1` if there is none.
|
|
534
|
+
*/
|
|
535
|
+
_getPreviousTokenIndex(tokens, index) {
|
|
536
|
+
for (let i = index - 1; i >= 0; i--) {
|
|
537
|
+
const tokenType = tokens[i].tokenType;
|
|
538
|
+
if (tokenType !== RdfToken.WS && tokenType !== RdfToken.COMMENT) {
|
|
539
|
+
return i;
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
return -1;
|
|
543
|
+
}
|
|
544
|
+
/**
|
|
545
|
+
* Indicates whether a token is an IRI, i.e. an IRI reference or a prefixed name.
|
|
546
|
+
* @param token The token to check.
|
|
547
|
+
*/
|
|
548
|
+
_isIriToken(token) {
|
|
549
|
+
const tokenType = token.tokenType;
|
|
550
|
+
return tokenType === RdfToken.IRIREF || tokenType === RdfToken.IRIREF_ABS ||
|
|
551
|
+
tokenType === RdfToken.PNAME_LN || tokenType === RdfToken.PNAME_NS;
|
|
552
|
+
}
|
|
439
553
|
handleSparqlCloseParen(ctx, token, prevWasComment = false) {
|
|
440
554
|
const le = ctx.opts.lineEnd;
|
|
441
555
|
const ind = ctx.opts.indent;
|
|
@@ -903,6 +1017,12 @@ export class SparqlFormatter extends TokenFormatterBase {
|
|
|
903
1017
|
}
|
|
904
1018
|
// Triple position tracking
|
|
905
1019
|
this.handleTriplePosition(ctx, token, tokens, i, prevWasComment);
|
|
1020
|
+
// Keep empty function arguments attached to the function, e.g. `NOW()` or
|
|
1021
|
+
// `ex:fn()`; the lexer reads `()` as a single NIL token.
|
|
1022
|
+
if (token.tokenType === RdfToken.NIL && this._isEmptyFunctionArguments(ctx.lastNonWsToken, tokens, i)) {
|
|
1023
|
+
ctx.needsSpace = false;
|
|
1024
|
+
ctx.needsNewline = false;
|
|
1025
|
+
}
|
|
906
1026
|
// Keep postfix property-path operators (`*`, `+`, `?`) attached to
|
|
907
1027
|
// their operand, e.g. `rdfs:subClassOf+`, never `rdfs:subClassOf +`.
|
|
908
1028
|
if (this.isPostfixPathOperator(ctx, token)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sparql-formatter.js","sourceRoot":"","sources":["../../src/formatters/sparql-formatter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sparql-formatter.js","sourceRoot":"","sources":["../../src/formatters/sparql-formatter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export * from './quad-sorting-strategy';
|
|
|
8
8
|
export * from './quad-sorter';
|
|
9
9
|
export * from './serialization-result';
|
|
10
10
|
export * from './serialization-options';
|
|
11
|
+
export * from './term-serializer';
|
|
11
12
|
export * from './quad-context-serializer';
|
|
12
13
|
export * from './token-formatter-base';
|
|
13
14
|
export * from './token-formatter.interface';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -8,6 +8,7 @@ export * from './quad-sorting-strategy';
|
|
|
8
8
|
export * from './quad-sorter';
|
|
9
9
|
export * from './serialization-result';
|
|
10
10
|
export * from './serialization-options';
|
|
11
|
+
export * from './term-serializer';
|
|
11
12
|
export * from './quad-context-serializer';
|
|
12
13
|
export * from './token-formatter-base';
|
|
13
14
|
export * from './token-formatter.interface';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC"}
|
|
@@ -4,6 +4,7 @@ import { Rdf12Quad, Rdf12Term, TripleTerm } from './utilities/types';
|
|
|
4
4
|
import { IQuadSerializer } from './quad-serializer.interface';
|
|
5
5
|
import { SerializationResult } from './serialization-result';
|
|
6
6
|
import { SerializationOptions } from './serialization-options';
|
|
7
|
+
import { TermSerializerSettings } from './term-serializer';
|
|
7
8
|
/**
|
|
8
9
|
* Abstract base class for RDF serializers. Provides common functionality
|
|
9
10
|
* for serializing terms and literals.
|
|
@@ -25,6 +26,15 @@ export declare abstract class QuadSerializerBase implements IQuadSerializer {
|
|
|
25
26
|
* Whether this serializer supports RDF 1.2 features (triple terms, reifiers, annotations).
|
|
26
27
|
*/
|
|
27
28
|
protected supportsRdf12: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* The settings the terms of the current serialization run are written with, resolved from
|
|
31
|
+
* the capabilities of this serializer and the options the hooks are called with.
|
|
32
|
+
*/
|
|
33
|
+
private _termSettings?;
|
|
34
|
+
/**
|
|
35
|
+
* The options the term settings were resolved from.
|
|
36
|
+
*/
|
|
37
|
+
private _termOptions?;
|
|
28
38
|
/**
|
|
29
39
|
* Serializes a single quad to a string.
|
|
30
40
|
*/
|
|
@@ -44,11 +54,19 @@ export declare abstract class QuadSerializerBase implements IQuadSerializer {
|
|
|
44
54
|
/**
|
|
45
55
|
* Serializes a blank node.
|
|
46
56
|
*/
|
|
47
|
-
protected serializeBlankNode(node: BlankNode,
|
|
57
|
+
protected serializeBlankNode(node: BlankNode, options: Required<SerializationOptions>): string;
|
|
48
58
|
/**
|
|
49
59
|
* Serializes a literal value.
|
|
50
60
|
*/
|
|
51
61
|
protected serializeLiteral(literal: Literal, options: Required<SerializationOptions>): string;
|
|
62
|
+
/**
|
|
63
|
+
* Gets the settings the terms are written with for a set of options. Some serializers merge
|
|
64
|
+
* the options anew for every quad, so a run is told apart by the options object the hooks
|
|
65
|
+
* are called with; resolving the settings again is cheap.
|
|
66
|
+
* @param options The merged options of the run.
|
|
67
|
+
* @returns The term settings.
|
|
68
|
+
*/
|
|
69
|
+
protected termSettingsFor(options: Required<SerializationOptions>): TermSerializerSettings;
|
|
52
70
|
/**
|
|
53
71
|
* Serializes a SPARQL variable.
|
|
54
72
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quad-serializer-base.d.ts","sourceRoot":"","sources":["../src/quad-serializer-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"quad-serializer-base.d.ts","sourceRoot":"","sources":["../src/quad-serializer-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAmB,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAkB,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3E;;;GAGG;AACH,8BAAsB,kBAAmB,YAAW,eAAe;IAC/D;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAEpC;;OAEG;IACH,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAS;IAE5C;;OAEG;IACH,SAAS,CAAC,wBAAwB,EAAE,OAAO,CAAS;IAEpD;;OAEG;IACH,SAAS,CAAC,aAAa,EAAE,OAAO,CAAS;IAEzC;;;OAGG;IACH,OAAO,CAAC,aAAa,CAAC,CAAyB;IAE/C;;OAEG;IACH,OAAO,CAAC,YAAY,CAAC,CAAiC;IAEtD;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,MAAM;IAEtF;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAC,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,MAAM;IAE7F;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAC,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,mBAAmB;IAM9F;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM;IAI9F;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM;IAI9F;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM;IAI7F;;;;;;OAMG;IACH,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,sBAAsB;IAY1F;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM;IAIjG;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM;IAYtG;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM;IAmBhG;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ,CAAC,oBAAoB,CAAC;CAGvF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAS3F"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import { RDF, XSD } from './ontologies';
|
|
2
1
|
import { DEFAULT_OPTIONS } from './serialization-options';
|
|
3
|
-
import {
|
|
4
|
-
import { isInteger, isDecimal, isDouble, needsLongString } from "./utilities/literals";
|
|
5
|
-
import { normalizeBlankNodeId } from './utilities/blank-nodes';
|
|
6
|
-
import { findPrefix } from "./utilities/prefixes";
|
|
2
|
+
import { TermSerializer } from './term-serializer';
|
|
7
3
|
/**
|
|
8
4
|
* Abstract base class for RDF serializers. Provides common functionality
|
|
9
5
|
* for serializing terms and literals.
|
|
@@ -21,6 +17,15 @@ export class QuadSerializerBase {
|
|
|
21
17
|
* Whether this serializer supports RDF 1.2 features (triple terms, reifiers, annotations).
|
|
22
18
|
*/
|
|
23
19
|
supportsRdf12 = false;
|
|
20
|
+
/**
|
|
21
|
+
* The settings the terms of the current serialization run are written with, resolved from
|
|
22
|
+
* the capabilities of this serializer and the options the hooks are called with.
|
|
23
|
+
*/
|
|
24
|
+
_termSettings;
|
|
25
|
+
/**
|
|
26
|
+
* The options the term settings were resolved from.
|
|
27
|
+
*/
|
|
28
|
+
_termOptions;
|
|
24
29
|
/**
|
|
25
30
|
* Serializes quads with formatting, returning detailed result.
|
|
26
31
|
*/
|
|
@@ -33,70 +38,33 @@ export class QuadSerializerBase {
|
|
|
33
38
|
* Serializes a named node (IRI).
|
|
34
39
|
*/
|
|
35
40
|
serializeNamedNode(node, options) {
|
|
36
|
-
|
|
37
|
-
if (this.supportsRdfTypeShorthand && options.useRdfTypeShorthand && node.value === RDF.type) {
|
|
38
|
-
return 'a';
|
|
39
|
-
}
|
|
40
|
-
if (this.supportsPrefixes && Object.keys(options.prefixes).length > 0) {
|
|
41
|
-
const prefixMatch = findPrefix(node.value, options.prefixes);
|
|
42
|
-
if (prefixMatch) {
|
|
43
|
-
const escapedLocalName = escapeLocalName(prefixMatch.localName);
|
|
44
|
-
return `${prefixMatch.prefix}:${escapedLocalName}`;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return `<${escapeIri(node.value)}>`;
|
|
41
|
+
return TermSerializer.serializeNamedNode(node, this.termSettingsFor(options), true);
|
|
48
42
|
}
|
|
49
43
|
/**
|
|
50
44
|
* Serializes a blank node.
|
|
51
45
|
*/
|
|
52
|
-
serializeBlankNode(node,
|
|
53
|
-
return
|
|
46
|
+
serializeBlankNode(node, options) {
|
|
47
|
+
return TermSerializer.serializeBlankNode(node, this.termSettingsFor(options));
|
|
54
48
|
}
|
|
55
49
|
/**
|
|
56
50
|
* Serializes a literal value.
|
|
57
51
|
*/
|
|
58
52
|
serializeLiteral(literal, options) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
if (this.supportsPrefixes) {
|
|
75
|
-
if (datatype === XSD.integer && isInteger(value)) {
|
|
76
|
-
return value;
|
|
77
|
-
}
|
|
78
|
-
if (datatype === XSD.decimal && isDecimal(value)) {
|
|
79
|
-
return value;
|
|
80
|
-
}
|
|
81
|
-
if (datatype === XSD.double && isDouble(value)) {
|
|
82
|
-
return value;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
// Check if we need long string quoting
|
|
86
|
-
const useLongString = this.supportsPrefixes && needsLongString(value);
|
|
87
|
-
const quote = useLongString ? '"""' : '"';
|
|
88
|
-
const escapedValue = escapeString(value, useLongString);
|
|
89
|
-
// xsd:string is the default, no need to serialize it
|
|
90
|
-
if (!datatype || datatype === XSD.string) {
|
|
91
|
-
return `${quote}${escapedValue}${quote}`;
|
|
53
|
+
return TermSerializer.serializeLiteral(literal, this.termSettingsFor(options));
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Gets the settings the terms are written with for a set of options. Some serializers merge
|
|
57
|
+
* the options anew for every quad, so a run is told apart by the options object the hooks
|
|
58
|
+
* are called with; resolving the settings again is cheap.
|
|
59
|
+
* @param options The merged options of the run.
|
|
60
|
+
* @returns The term settings.
|
|
61
|
+
*/
|
|
62
|
+
termSettingsFor(options) {
|
|
63
|
+
if (options !== this._termOptions || !this._termSettings) {
|
|
64
|
+
this._termSettings = TermSerializer.settingsOf({ supportsPrefixes: this.supportsPrefixes, supportsRdfTypeShorthand: this.supportsRdfTypeShorthand }, { prefixes: options.prefixes, useRdfTypeShorthand: options.useRdfTypeShorthand });
|
|
65
|
+
this._termOptions = options;
|
|
92
66
|
}
|
|
93
|
-
|
|
94
|
-
const datatypeStr = this.serializeNamedNode({
|
|
95
|
-
termType: 'NamedNode',
|
|
96
|
-
value: datatype,
|
|
97
|
-
equals: () => false
|
|
98
|
-
}, options);
|
|
99
|
-
return `${quote}${escapedValue}${quote}^^${datatypeStr}`;
|
|
67
|
+
return this._termSettings;
|
|
100
68
|
}
|
|
101
69
|
/**
|
|
102
70
|
* Serializes a SPARQL variable.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quad-serializer-base.js","sourceRoot":"","sources":["../src/quad-serializer-base.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"quad-serializer-base.js","sourceRoot":"","sources":["../src/quad-serializer-base.ts"],"names":[],"mappings":"AAKA,OAAO,EAAwB,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,cAAc,EAA0B,MAAM,mBAAmB,CAAC;AAE3E;;;GAGG;AACH,MAAM,OAAgB,kBAAkB;IAMpC;;OAEG;IACO,gBAAgB,GAAY,KAAK,CAAC;IAE5C;;OAEG;IACO,wBAAwB,GAAY,KAAK,CAAC;IAEpD;;OAEG;IACO,aAAa,GAAY,KAAK,CAAC;IAEzC;;;OAGG;IACK,aAAa,CAA0B;IAE/C;;OAEG;IACK,YAAY,CAAkC;IAYtD;;OAEG;IACH,MAAM,CAAC,KAAiC,EAAE,OAA8B;QACpE,OAAO;YACH,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC;SACzC,CAAC;IACN,CAAC;IAED;;OAEG;IACO,kBAAkB,CAAC,IAAe,EAAE,OAAuC;QACjF,OAAO,cAAc,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;IACxF,CAAC;IAED;;OAEG;IACO,kBAAkB,CAAC,IAAe,EAAE,OAAuC;QACjF,OAAO,cAAc,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IAClF,CAAC;IAED;;OAEG;IACO,gBAAgB,CAAC,OAAgB,EAAE,OAAuC;QAChF,OAAO,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IACnF,CAAC;IAED;;;;;;OAMG;IACO,eAAe,CAAC,OAAuC;QAC7D,IAAI,OAAO,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACvD,IAAI,CAAC,aAAa,GAAG,cAAc,CAAC,UAAU,CAC1C,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,wBAAwB,EAAE,IAAI,CAAC,wBAAwB,EAAE,EACpG,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,EAAE,CACnF,CAAC;YACF,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAChC,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED;;OAEG;IACO,iBAAiB,CAAC,QAAkB,EAAE,QAAwC;QACpF,OAAO,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACO,mBAAmB,CAAC,UAAsB,EAAE,OAAuC;QACzF,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACJ,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAChE,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACpE,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAE9D,OAAO,OAAO,OAAO,IAAI,SAAS,IAAI,MAAM,MAAM,CAAC;QACvD,CAAC;IACL,CAAC;IAED;;OAEG;IACO,aAAa,CAAC,IAAsB,EAAE,OAAuC;QACnF,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpB,KAAK,cAAc;gBACf,OAAO,EAAE,CAAC;YACd,KAAK,WAAW;gBACZ,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAiB,EAAE,OAAO,CAAC,CAAC;YAC/D,KAAK,WAAW;gBACZ,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAiB,EAAE,OAAO,CAAC,CAAC;YAC/D,KAAK,SAAS;gBACV,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAe,EAAE,OAAO,CAAC,CAAC;YAC3D,KAAK,UAAU;gBACX,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAgB,EAAE,OAAO,CAAC,CAAC;YAC7D,KAAK,YAAY;gBACb,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAkB,EAAE,OAAO,CAAC,CAAC;YACjE;gBACI,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAED;;OAEG;IACO,UAAU,CAAC,OAA8B;QAC/C,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAA8B;IACvD,OAAO;QACH,GAAG,eAAe;QAClB,GAAG,OAAO;QACV,QAAQ,EAAE;YACN,GAAG,eAAe,CAAC,QAAQ;YAC3B,GAAG,OAAO,EAAE,QAAQ;SACvB;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { RdfSyntax } from '@faubulous/mentor-rdf-parsers';
|
|
2
|
+
import { BlankNode, Literal, NamedNode, Term } from '@rdfjs/types';
|
|
3
|
+
/**
|
|
4
|
+
* What a syntax allows a term serializer to abbreviate.
|
|
5
|
+
*/
|
|
6
|
+
export interface TermSerializerCapabilities {
|
|
7
|
+
/**
|
|
8
|
+
* Whether IRIs may be written as prefixed names and numbers, booleans and multi-line
|
|
9
|
+
* strings in their bare or long forms.
|
|
10
|
+
*/
|
|
11
|
+
supportsPrefixes: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Whether `rdf:type` may be written as `a` in predicate position.
|
|
14
|
+
*/
|
|
15
|
+
supportsRdfTypeShorthand: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Options of a term serializer.
|
|
19
|
+
*/
|
|
20
|
+
export interface TermSerializerOptions {
|
|
21
|
+
/**
|
|
22
|
+
* Prefix mappings for compact IRI serialization, prefix name to namespace IRI.
|
|
23
|
+
*/
|
|
24
|
+
prefixes?: Record<string, string>;
|
|
25
|
+
/**
|
|
26
|
+
* Whether to write `rdf:type` as `a` in predicate position. Default: true.
|
|
27
|
+
*/
|
|
28
|
+
useRdfTypeShorthand?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* The labels to write for blank nodes, by identifier, such as the labels a document already
|
|
31
|
+
* uses. A blank node without one is written as `_:` with its normalized identifier.
|
|
32
|
+
*/
|
|
33
|
+
blankNodeLabels?: Record<string, string>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Everything the serialization of a term depends on: the capabilities of the syntax and the
|
|
37
|
+
* options of the run, resolved to plain values.
|
|
38
|
+
*/
|
|
39
|
+
export interface TermSerializerSettings {
|
|
40
|
+
/**
|
|
41
|
+
* Whether IRIs may be written as prefixed names and literals in their bare forms.
|
|
42
|
+
*/
|
|
43
|
+
supportsPrefixes: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Whether `rdf:type` may be written as `a` in predicate position.
|
|
46
|
+
*/
|
|
47
|
+
supportsRdfTypeShorthand: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Prefix name to namespace IRI.
|
|
50
|
+
*/
|
|
51
|
+
prefixes: Record<string, string>;
|
|
52
|
+
/**
|
|
53
|
+
* Whether to write `rdf:type` as `a` in predicate position.
|
|
54
|
+
*/
|
|
55
|
+
useRdfTypeShorthand: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* The labels to write for blank nodes, by identifier, if any.
|
|
58
|
+
*/
|
|
59
|
+
blankNodeLabels?: Record<string, string>;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Serializes single RDF terms the way a document of a syntax writes them: prefixed names where
|
|
63
|
+
* a prefix is declared, `a` for `rdf:type` in predicate position, bare numbers and booleans, and
|
|
64
|
+
* long strings for multi-line text where the syntax allows it. The quad serializers build on the
|
|
65
|
+
* static methods, which take the settings of a run; the instance methods serve code that writes
|
|
66
|
+
* terms into a document, such as an editor.
|
|
67
|
+
*/
|
|
68
|
+
export declare class TermSerializer {
|
|
69
|
+
private readonly _capabilities;
|
|
70
|
+
private _settings;
|
|
71
|
+
/**
|
|
72
|
+
* Create a term serializer.
|
|
73
|
+
* @param capabilities What the target syntax allows.
|
|
74
|
+
* @param options The serialization options.
|
|
75
|
+
*/
|
|
76
|
+
constructor(capabilities: TermSerializerCapabilities, options?: TermSerializerOptions);
|
|
77
|
+
/**
|
|
78
|
+
* Create a term serializer for a syntax.
|
|
79
|
+
* @param syntax The syntax the terms are written in.
|
|
80
|
+
* @param options The serialization options.
|
|
81
|
+
* @returns A term serializer with the capabilities of the syntax.
|
|
82
|
+
*/
|
|
83
|
+
static forSyntax(syntax: RdfSyntax, options?: TermSerializerOptions): TermSerializer;
|
|
84
|
+
/**
|
|
85
|
+
* Resolve capabilities and options to the settings of a run.
|
|
86
|
+
* @param capabilities What the target syntax allows.
|
|
87
|
+
* @param options The serialization options.
|
|
88
|
+
* @returns The settings.
|
|
89
|
+
*/
|
|
90
|
+
static settingsOf(capabilities: TermSerializerCapabilities, options?: TermSerializerOptions): TermSerializerSettings;
|
|
91
|
+
/**
|
|
92
|
+
* Serialize a named node as a prefixed name when a prefix matches, or as an IRI reference.
|
|
93
|
+
* @param node The named node.
|
|
94
|
+
* @param settings The settings of the run.
|
|
95
|
+
* @param allowTypeShorthand Whether `rdf:type` may be written as `a`, as in predicate position.
|
|
96
|
+
* @returns The serialized node.
|
|
97
|
+
*/
|
|
98
|
+
static serializeNamedNode(node: NamedNode, settings: TermSerializerSettings, allowTypeShorthand?: boolean): string;
|
|
99
|
+
/**
|
|
100
|
+
* Serialize a blank node with its configured label, or as `_:` with its normalized identifier.
|
|
101
|
+
* @param node The blank node.
|
|
102
|
+
* @param settings The settings of the run.
|
|
103
|
+
* @returns The serialized node.
|
|
104
|
+
*/
|
|
105
|
+
static serializeBlankNode(node: BlankNode, settings: TermSerializerSettings): string;
|
|
106
|
+
/**
|
|
107
|
+
* Serialize a literal: bare where the syntax allows it and the lexical form is valid for the
|
|
108
|
+
* datatype, quoted with its language tag or datatype otherwise.
|
|
109
|
+
* @param literal The literal.
|
|
110
|
+
* @param settings The settings of the run.
|
|
111
|
+
* @returns The serialized literal.
|
|
112
|
+
*/
|
|
113
|
+
static serializeLiteral(literal: Literal, settings: TermSerializerSettings): string;
|
|
114
|
+
/**
|
|
115
|
+
* Write a number or boolean without quotes when the lexical form is valid for the datatype.
|
|
116
|
+
* @param value The lexical value.
|
|
117
|
+
* @param datatype The datatype IRI, if any.
|
|
118
|
+
* @returns The bare form, or `undefined` if the literal has to be quoted.
|
|
119
|
+
*/
|
|
120
|
+
private static _serializeBareLiteral;
|
|
121
|
+
/**
|
|
122
|
+
* Change the options the terms are written with, keeping the capabilities of the syntax.
|
|
123
|
+
* @param options The serialization options.
|
|
124
|
+
* @returns This serializer.
|
|
125
|
+
*/
|
|
126
|
+
configure(options: TermSerializerOptions): this;
|
|
127
|
+
/**
|
|
128
|
+
* Whether the syntax allows prefixed names and bare literals.
|
|
129
|
+
*/
|
|
130
|
+
get abbreviates(): boolean;
|
|
131
|
+
/**
|
|
132
|
+
* Serialize a term in subject position.
|
|
133
|
+
* @param term The subject term.
|
|
134
|
+
* @returns The serialized term.
|
|
135
|
+
* @throws An error if the term cannot be a subject.
|
|
136
|
+
*/
|
|
137
|
+
serializeSubject(term: Term): string;
|
|
138
|
+
/**
|
|
139
|
+
* Serialize a term in predicate position, where `rdf:type` may be written as `a`.
|
|
140
|
+
* @param term The predicate term.
|
|
141
|
+
* @returns The serialized term.
|
|
142
|
+
*/
|
|
143
|
+
serializePredicate(term: NamedNode): string;
|
|
144
|
+
/**
|
|
145
|
+
* Serialize a term in object position.
|
|
146
|
+
* @param term The object term.
|
|
147
|
+
* @returns The serialized term.
|
|
148
|
+
* @throws An error if the term type cannot be written.
|
|
149
|
+
*/
|
|
150
|
+
serializeObject(term: Term): string;
|
|
151
|
+
/**
|
|
152
|
+
* Serialize a named node as a prefixed name when a prefix matches, or as an IRI reference.
|
|
153
|
+
* @param node The named node.
|
|
154
|
+
* @param allowTypeShorthand Whether `rdf:type` may be written as `a`, as in predicate position.
|
|
155
|
+
* @returns The serialized node.
|
|
156
|
+
*/
|
|
157
|
+
serializeNamedNode(node: NamedNode, allowTypeShorthand?: boolean): string;
|
|
158
|
+
/**
|
|
159
|
+
* Serialize a blank node with its configured label, or as `_:` with its normalized identifier.
|
|
160
|
+
* @param node The blank node.
|
|
161
|
+
* @returns The serialized node.
|
|
162
|
+
*/
|
|
163
|
+
serializeBlankNode(node: BlankNode): string;
|
|
164
|
+
/**
|
|
165
|
+
* Serialize a literal: bare where the syntax allows it and the lexical form is valid for the
|
|
166
|
+
* datatype, quoted with its language tag or datatype otherwise.
|
|
167
|
+
* @param literal The literal.
|
|
168
|
+
* @returns The serialized literal.
|
|
169
|
+
*/
|
|
170
|
+
serializeLiteral(literal: Literal): string;
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=term-serializer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"term-serializer.d.ts","sourceRoot":"","sources":["../src/term-serializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAOnE;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC;;;OAGG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,wBAAwB,EAAE,OAAO,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAElC;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACnC;;OAEG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAElC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;OAEG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAED;;;;;;GAMG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;IAE3D,OAAO,CAAC,SAAS,CAAyB;IAE1C;;;;OAIG;gBACS,YAAY,EAAE,0BAA0B,EAAE,OAAO,GAAE,qBAA0B;IAKzF;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,cAAc;IAMpF;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,0BAA0B,EAAE,OAAO,GAAE,qBAA0B,GAAG,sBAAsB;IAUxH;;;;;;OAMG;IACH,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,sBAAsB,EAAE,kBAAkB,GAAE,OAAe,GAAG,MAAM;IAgBzH;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,sBAAsB,GAAG,MAAM;IAIpF;;;;;;OAMG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,sBAAsB,GAAG,MAAM;IA4BnF;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAoBpC;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAM/C;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAQpC;;;;OAIG;IACH,kBAAkB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAI3C;;;;;OAKG;IACH,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAanC;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,kBAAkB,GAAE,OAAe,GAAG,MAAM;IAIhF;;;;OAIG;IACH,kBAAkB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAI3C;;;;;OAKG;IACH,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;CAG7C"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { RdfSyntax } from '@faubulous/mentor-rdf-parsers';
|
|
2
|
+
import { RDF, XSD } from './ontologies';
|
|
3
|
+
import { normalizeBlankNodeId } from './utilities/blank-nodes';
|
|
4
|
+
import { escapeIri, escapeLocalName, escapeString } from './utilities/escaping';
|
|
5
|
+
import { isDecimal, isDouble, isInteger, needsLongString } from './utilities/literals';
|
|
6
|
+
import { findPrefix } from './utilities/prefixes';
|
|
7
|
+
/**
|
|
8
|
+
* Serializes single RDF terms the way a document of a syntax writes them: prefixed names where
|
|
9
|
+
* a prefix is declared, `a` for `rdf:type` in predicate position, bare numbers and booleans, and
|
|
10
|
+
* long strings for multi-line text where the syntax allows it. The quad serializers build on the
|
|
11
|
+
* static methods, which take the settings of a run; the instance methods serve code that writes
|
|
12
|
+
* terms into a document, such as an editor.
|
|
13
|
+
*/
|
|
14
|
+
export class TermSerializer {
|
|
15
|
+
_capabilities;
|
|
16
|
+
_settings;
|
|
17
|
+
/**
|
|
18
|
+
* Create a term serializer.
|
|
19
|
+
* @param capabilities What the target syntax allows.
|
|
20
|
+
* @param options The serialization options.
|
|
21
|
+
*/
|
|
22
|
+
constructor(capabilities, options = {}) {
|
|
23
|
+
this._capabilities = capabilities;
|
|
24
|
+
this._settings = TermSerializer.settingsOf(capabilities, options);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Create a term serializer for a syntax.
|
|
28
|
+
* @param syntax The syntax the terms are written in.
|
|
29
|
+
* @param options The serialization options.
|
|
30
|
+
* @returns A term serializer with the capabilities of the syntax.
|
|
31
|
+
*/
|
|
32
|
+
static forSyntax(syntax, options) {
|
|
33
|
+
const abbreviates = syntax === RdfSyntax.Turtle || syntax === RdfSyntax.TriG || syntax === RdfSyntax.N3;
|
|
34
|
+
return new TermSerializer({ supportsPrefixes: abbreviates, supportsRdfTypeShorthand: abbreviates }, options);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Resolve capabilities and options to the settings of a run.
|
|
38
|
+
* @param capabilities What the target syntax allows.
|
|
39
|
+
* @param options The serialization options.
|
|
40
|
+
* @returns The settings.
|
|
41
|
+
*/
|
|
42
|
+
static settingsOf(capabilities, options = {}) {
|
|
43
|
+
return {
|
|
44
|
+
supportsPrefixes: capabilities.supportsPrefixes,
|
|
45
|
+
supportsRdfTypeShorthand: capabilities.supportsRdfTypeShorthand,
|
|
46
|
+
prefixes: options.prefixes ?? {},
|
|
47
|
+
useRdfTypeShorthand: options.useRdfTypeShorthand ?? true,
|
|
48
|
+
blankNodeLabels: options.blankNodeLabels
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Serialize a named node as a prefixed name when a prefix matches, or as an IRI reference.
|
|
53
|
+
* @param node The named node.
|
|
54
|
+
* @param settings The settings of the run.
|
|
55
|
+
* @param allowTypeShorthand Whether `rdf:type` may be written as `a`, as in predicate position.
|
|
56
|
+
* @returns The serialized node.
|
|
57
|
+
*/
|
|
58
|
+
static serializeNamedNode(node, settings, allowTypeShorthand = false) {
|
|
59
|
+
if (allowTypeShorthand && settings.supportsRdfTypeShorthand && settings.useRdfTypeShorthand && node.value === RDF.type) {
|
|
60
|
+
return 'a';
|
|
61
|
+
}
|
|
62
|
+
if (settings.supportsPrefixes) {
|
|
63
|
+
const match = findPrefix(node.value, settings.prefixes);
|
|
64
|
+
if (match) {
|
|
65
|
+
return `${match.prefix}:${escapeLocalName(match.localName)}`;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return `<${escapeIri(node.value)}>`;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Serialize a blank node with its configured label, or as `_:` with its normalized identifier.
|
|
72
|
+
* @param node The blank node.
|
|
73
|
+
* @param settings The settings of the run.
|
|
74
|
+
* @returns The serialized node.
|
|
75
|
+
*/
|
|
76
|
+
static serializeBlankNode(node, settings) {
|
|
77
|
+
return settings.blankNodeLabels?.[node.value] ?? `_:${normalizeBlankNodeId(node.value)}`;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Serialize a literal: bare where the syntax allows it and the lexical form is valid for the
|
|
81
|
+
* datatype, quoted with its language tag or datatype otherwise.
|
|
82
|
+
* @param literal The literal.
|
|
83
|
+
* @param settings The settings of the run.
|
|
84
|
+
* @returns The serialized literal.
|
|
85
|
+
*/
|
|
86
|
+
static serializeLiteral(literal, settings) {
|
|
87
|
+
const value = literal.value;
|
|
88
|
+
const datatype = literal.datatype?.value;
|
|
89
|
+
const language = literal.language;
|
|
90
|
+
if (language) {
|
|
91
|
+
return `"${escapeString(value)}"@${language}`;
|
|
92
|
+
}
|
|
93
|
+
if (settings.supportsPrefixes) {
|
|
94
|
+
const bare = TermSerializer._serializeBareLiteral(value, datatype);
|
|
95
|
+
if (bare !== undefined) {
|
|
96
|
+
return bare;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const useLongString = settings.supportsPrefixes && needsLongString(value);
|
|
100
|
+
const quote = useLongString ? '"""' : '"';
|
|
101
|
+
const quoted = `${quote}${escapeString(value, useLongString)}${quote}`;
|
|
102
|
+
if (!datatype || datatype === XSD.string) {
|
|
103
|
+
return quoted;
|
|
104
|
+
}
|
|
105
|
+
return `${quoted}^^${TermSerializer.serializeNamedNode(literal.datatype, settings)}`;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Write a number or boolean without quotes when the lexical form is valid for the datatype.
|
|
109
|
+
* @param value The lexical value.
|
|
110
|
+
* @param datatype The datatype IRI, if any.
|
|
111
|
+
* @returns The bare form, or `undefined` if the literal has to be quoted.
|
|
112
|
+
*/
|
|
113
|
+
static _serializeBareLiteral(value, datatype) {
|
|
114
|
+
if (datatype === XSD.boolean && (value === 'true' || value === 'false' || value === '1' || value === '0')) {
|
|
115
|
+
return value === 'true' || value === '1' ? 'true' : 'false';
|
|
116
|
+
}
|
|
117
|
+
if (datatype === XSD.integer && isInteger(value)) {
|
|
118
|
+
return value;
|
|
119
|
+
}
|
|
120
|
+
if (datatype === XSD.decimal && isDecimal(value)) {
|
|
121
|
+
return value;
|
|
122
|
+
}
|
|
123
|
+
if (datatype === XSD.double && isDouble(value)) {
|
|
124
|
+
return value;
|
|
125
|
+
}
|
|
126
|
+
return undefined;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Change the options the terms are written with, keeping the capabilities of the syntax.
|
|
130
|
+
* @param options The serialization options.
|
|
131
|
+
* @returns This serializer.
|
|
132
|
+
*/
|
|
133
|
+
configure(options) {
|
|
134
|
+
this._settings = TermSerializer.settingsOf(this._capabilities, options);
|
|
135
|
+
return this;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Whether the syntax allows prefixed names and bare literals.
|
|
139
|
+
*/
|
|
140
|
+
get abbreviates() {
|
|
141
|
+
return this._settings.supportsPrefixes;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Serialize a term in subject position.
|
|
145
|
+
* @param term The subject term.
|
|
146
|
+
* @returns The serialized term.
|
|
147
|
+
* @throws An error if the term cannot be a subject.
|
|
148
|
+
*/
|
|
149
|
+
serializeSubject(term) {
|
|
150
|
+
if (term.termType === 'Literal') {
|
|
151
|
+
throw new Error('A literal cannot be the subject of a statement.');
|
|
152
|
+
}
|
|
153
|
+
return this.serializeObject(term);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Serialize a term in predicate position, where `rdf:type` may be written as `a`.
|
|
157
|
+
* @param term The predicate term.
|
|
158
|
+
* @returns The serialized term.
|
|
159
|
+
*/
|
|
160
|
+
serializePredicate(term) {
|
|
161
|
+
return TermSerializer.serializeNamedNode(term, this._settings, true);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Serialize a term in object position.
|
|
165
|
+
* @param term The object term.
|
|
166
|
+
* @returns The serialized term.
|
|
167
|
+
* @throws An error if the term type cannot be written.
|
|
168
|
+
*/
|
|
169
|
+
serializeObject(term) {
|
|
170
|
+
switch (term.termType) {
|
|
171
|
+
case 'NamedNode':
|
|
172
|
+
return this.serializeNamedNode(term);
|
|
173
|
+
case 'BlankNode':
|
|
174
|
+
return this.serializeBlankNode(term);
|
|
175
|
+
case 'Literal':
|
|
176
|
+
return this.serializeLiteral(term);
|
|
177
|
+
default:
|
|
178
|
+
throw new Error(`A term of type ${term.termType} cannot be written as a single term.`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Serialize a named node as a prefixed name when a prefix matches, or as an IRI reference.
|
|
183
|
+
* @param node The named node.
|
|
184
|
+
* @param allowTypeShorthand Whether `rdf:type` may be written as `a`, as in predicate position.
|
|
185
|
+
* @returns The serialized node.
|
|
186
|
+
*/
|
|
187
|
+
serializeNamedNode(node, allowTypeShorthand = false) {
|
|
188
|
+
return TermSerializer.serializeNamedNode(node, this._settings, allowTypeShorthand);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Serialize a blank node with its configured label, or as `_:` with its normalized identifier.
|
|
192
|
+
* @param node The blank node.
|
|
193
|
+
* @returns The serialized node.
|
|
194
|
+
*/
|
|
195
|
+
serializeBlankNode(node) {
|
|
196
|
+
return TermSerializer.serializeBlankNode(node, this._settings);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Serialize a literal: bare where the syntax allows it and the lexical form is valid for the
|
|
200
|
+
* datatype, quoted with its language tag or datatype otherwise.
|
|
201
|
+
* @param literal The literal.
|
|
202
|
+
* @returns The serialized literal.
|
|
203
|
+
*/
|
|
204
|
+
serializeLiteral(literal) {
|
|
205
|
+
return TermSerializer.serializeLiteral(literal, this._settings);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=term-serializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"term-serializer.js","sourceRoot":"","sources":["../src/term-serializer.ts"],"names":[],"mappings":"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"}
|