@faubulous/mentor-rdf-serializers 1.2.1 → 1.3.1
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/base-serializer.d.ts +3 -4
- package/dist/base-serializer.d.ts.map +1 -1
- package/dist/base-serializer.js +10 -12
- package/dist/base-serializer.js.map +1 -1
- package/dist/base-token-formatter.d.ts +199 -122
- package/dist/base-token-formatter.d.ts.map +1 -1
- package/dist/base-token-formatter.js +150 -341
- package/dist/base-token-formatter.js.map +1 -1
- package/dist/formatters/index.d.ts +7 -0
- package/dist/formatters/index.d.ts.map +1 -0
- package/dist/formatters/index.js +7 -0
- package/dist/formatters/index.js.map +1 -0
- package/dist/formatters/n3-formatter.d.ts +111 -0
- package/dist/formatters/n3-formatter.d.ts.map +1 -0
- package/dist/formatters/n3-formatter.js +456 -0
- package/dist/formatters/n3-formatter.js.map +1 -0
- package/dist/formatters/nquads-formatter.d.ts +47 -0
- package/dist/formatters/nquads-formatter.d.ts.map +1 -0
- package/dist/formatters/nquads-formatter.js +114 -0
- package/dist/formatters/nquads-formatter.js.map +1 -0
- package/dist/formatters/ntriples-formatter.d.ts +47 -0
- package/dist/formatters/ntriples-formatter.d.ts.map +1 -0
- package/dist/formatters/ntriples-formatter.js +115 -0
- package/dist/formatters/ntriples-formatter.js.map +1 -0
- package/dist/formatters/sparql-formatter.d.ts +105 -0
- package/dist/formatters/sparql-formatter.d.ts.map +1 -0
- package/dist/formatters/sparql-formatter.interface.d.ts +16 -0
- package/dist/formatters/sparql-formatter.interface.d.ts.map +1 -0
- package/dist/formatters/sparql-formatter.interface.js +2 -0
- package/dist/formatters/sparql-formatter.interface.js.map +1 -0
- package/dist/formatters/sparql-formatter.js +769 -0
- package/dist/formatters/sparql-formatter.js.map +1 -0
- package/dist/formatters/trig-formatter.d.ts +105 -0
- package/dist/formatters/trig-formatter.d.ts.map +1 -0
- package/dist/formatters/trig-formatter.js +434 -0
- package/dist/formatters/trig-formatter.js.map +1 -0
- package/dist/formatters/turtle-formatter.d.ts +73 -0
- package/dist/formatters/turtle-formatter.d.ts.map +1 -0
- package/dist/formatters/turtle-formatter.js +403 -0
- package/dist/formatters/turtle-formatter.js.map +1 -0
- package/dist/index.d.ts +15 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -18
- package/dist/index.js.map +1 -1
- package/dist/jsonld/jsonld-serializer.d.ts +99 -0
- package/dist/jsonld/jsonld-serializer.d.ts.map +1 -0
- package/dist/jsonld/jsonld-serializer.js +280 -0
- package/dist/jsonld/jsonld-serializer.js.map +1 -0
- package/dist/jsonld/serializer.d.ts.map +1 -1
- package/dist/jsonld/serializer.js +2 -4
- package/dist/jsonld/serializer.js.map +1 -1
- package/dist/languages/jsonld/jsonld-serializer.d.ts +111 -0
- package/dist/languages/jsonld/jsonld-serializer.d.ts.map +1 -0
- package/dist/languages/jsonld/jsonld-serializer.js +273 -0
- package/dist/languages/jsonld/jsonld-serializer.js.map +1 -0
- package/dist/languages/n3/n3-formatter.d.ts +111 -0
- package/dist/languages/n3/n3-formatter.d.ts.map +1 -0
- package/dist/languages/n3/n3-formatter.js +456 -0
- package/dist/languages/n3/n3-formatter.js.map +1 -0
- package/dist/languages/n3/n3-serializer.d.ts +82 -0
- package/dist/languages/n3/n3-serializer.d.ts.map +1 -0
- package/dist/languages/n3/n3-serializer.js +126 -0
- package/dist/languages/n3/n3-serializer.js.map +1 -0
- package/dist/languages/nquads/nquads-formatter.d.ts +47 -0
- package/dist/languages/nquads/nquads-formatter.d.ts.map +1 -0
- package/dist/languages/nquads/nquads-formatter.js +114 -0
- package/dist/languages/nquads/nquads-formatter.js.map +1 -0
- package/dist/languages/nquads/nquads-serializer.d.ts +41 -0
- package/dist/languages/nquads/nquads-serializer.d.ts.map +1 -0
- package/dist/languages/nquads/nquads-serializer.js +67 -0
- package/dist/languages/nquads/nquads-serializer.js.map +1 -0
- package/dist/languages/ntriples/ntriples-formatter.d.ts +47 -0
- package/dist/languages/ntriples/ntriples-formatter.d.ts.map +1 -0
- package/dist/languages/ntriples/ntriples-formatter.js +115 -0
- package/dist/languages/ntriples/ntriples-formatter.js.map +1 -0
- package/dist/languages/ntriples/ntriples-serializer.d.ts +41 -0
- package/dist/languages/ntriples/ntriples-serializer.d.ts.map +1 -0
- package/dist/languages/ntriples/ntriples-serializer.js +76 -0
- package/dist/languages/ntriples/ntriples-serializer.js.map +1 -0
- package/dist/languages/sparql/sparql-formatter.d.ts +105 -0
- package/dist/languages/sparql/sparql-formatter.d.ts.map +1 -0
- package/dist/languages/sparql/sparql-formatter.interface.d.ts +16 -0
- package/dist/languages/sparql/sparql-formatter.interface.d.ts.map +1 -0
- package/dist/languages/sparql/sparql-formatter.interface.js +2 -0
- package/dist/languages/sparql/sparql-formatter.interface.js.map +1 -0
- package/dist/languages/sparql/sparql-formatter.js +769 -0
- package/dist/languages/sparql/sparql-formatter.js.map +1 -0
- package/dist/languages/trig/trig-formatter.d.ts +105 -0
- package/dist/languages/trig/trig-formatter.d.ts.map +1 -0
- package/dist/languages/trig/trig-formatter.js +434 -0
- package/dist/languages/trig/trig-formatter.js.map +1 -0
- package/dist/languages/trig/trig-serializer.d.ts +42 -0
- package/dist/languages/trig/trig-serializer.d.ts.map +1 -0
- package/dist/languages/trig/trig-serializer.js +174 -0
- package/dist/languages/trig/trig-serializer.js.map +1 -0
- package/dist/languages/turtle/turtle-formatter.d.ts +73 -0
- package/dist/languages/turtle/turtle-formatter.d.ts.map +1 -0
- package/dist/languages/turtle/turtle-formatter.js +403 -0
- package/dist/languages/turtle/turtle-formatter.js.map +1 -0
- package/dist/languages/turtle/turtle-serializer.d.ts +90 -0
- package/dist/languages/turtle/turtle-serializer.d.ts.map +1 -0
- package/dist/languages/turtle/turtle-serializer.js +347 -0
- package/dist/languages/turtle/turtle-serializer.js.map +1 -0
- package/dist/n3/n3-formatter.d.ts +109 -0
- package/dist/n3/n3-formatter.d.ts.map +1 -0
- package/dist/n3/n3-formatter.js +460 -0
- package/dist/n3/n3-formatter.js.map +1 -0
- package/dist/n3/n3-serializer.d.ts +79 -0
- package/dist/n3/n3-serializer.d.ts.map +1 -0
- package/dist/n3/n3-serializer.js +126 -0
- package/dist/n3/n3-serializer.js.map +1 -0
- package/dist/n3/serializer.d.ts +20 -44
- package/dist/n3/serializer.d.ts.map +1 -1
- package/dist/n3/serializer.js +51 -59
- package/dist/n3/serializer.js.map +1 -1
- package/dist/nquads/nquads-formatter.d.ts +44 -0
- package/dist/nquads/nquads-formatter.d.ts.map +1 -0
- package/dist/nquads/nquads-formatter.js +116 -0
- package/dist/nquads/nquads-formatter.js.map +1 -0
- package/dist/nquads/nquads-serializer.d.ts +38 -0
- package/dist/nquads/nquads-serializer.d.ts.map +1 -0
- package/dist/nquads/nquads-serializer.js +67 -0
- package/dist/nquads/nquads-serializer.js.map +1 -0
- package/dist/nquads/serializer.d.ts.map +1 -1
- package/dist/nquads/serializer.js +1 -4
- package/dist/nquads/serializer.js.map +1 -1
- package/dist/ntriples/ntriples-formatter.d.ts +44 -0
- package/dist/ntriples/ntriples-formatter.d.ts.map +1 -0
- package/dist/ntriples/ntriples-formatter.js +116 -0
- package/dist/ntriples/ntriples-formatter.js.map +1 -0
- package/dist/ntriples/ntriples-serializer.d.ts +38 -0
- package/dist/ntriples/ntriples-serializer.d.ts.map +1 -0
- package/dist/ntriples/ntriples-serializer.js +76 -0
- package/dist/ntriples/ntriples-serializer.js.map +1 -0
- package/dist/ntriples/serializer.d.ts.map +1 -1
- package/dist/ntriples/serializer.js +1 -4
- package/dist/ntriples/serializer.js.map +1 -1
- package/dist/ontologies/index.d.ts +3 -0
- package/dist/ontologies/index.d.ts.map +1 -0
- package/dist/ontologies/index.js +3 -0
- package/dist/ontologies/index.js.map +1 -0
- package/dist/ontologies/rdf.d.ts +49 -0
- package/dist/ontologies/rdf.d.ts.map +1 -0
- package/dist/ontologies/rdf.js +49 -0
- package/dist/ontologies/rdf.js.map +1 -0
- package/dist/ontologies/xsd.d.ts +52 -0
- package/dist/ontologies/xsd.d.ts.map +1 -0
- package/dist/ontologies/xsd.js +52 -0
- package/dist/ontologies/xsd.js.map +1 -0
- package/dist/quad-serializer-base.d.ts +73 -0
- package/dist/quad-serializer-base.d.ts.map +1 -0
- package/dist/quad-serializer-base.js +161 -0
- package/dist/quad-serializer-base.js.map +1 -0
- package/dist/quad-serializer.interface.d.ts +27 -0
- package/dist/quad-serializer.interface.d.ts.map +1 -0
- package/dist/quad-serializer.interface.js +2 -0
- package/dist/quad-serializer.interface.js.map +1 -0
- package/dist/quad-sorter.d.ts +11 -0
- package/dist/quad-sorter.d.ts.map +1 -0
- package/dist/quad-sorter.js +25 -0
- package/dist/quad-sorter.js.map +1 -0
- package/dist/quad-sorting-strategy.d.ts +22 -0
- package/dist/quad-sorting-strategy.d.ts.map +1 -0
- package/dist/quad-sorting-strategy.js +2 -0
- package/dist/quad-sorting-strategy.js.map +1 -0
- package/dist/serialization-result.d.ts +19 -0
- package/dist/serialization-result.d.ts.map +1 -0
- package/dist/serialization-result.js +2 -0
- package/dist/serialization-result.js.map +1 -0
- package/dist/serializer-base.d.ts +73 -0
- package/dist/serializer-base.d.ts.map +1 -0
- package/dist/serializer-base.js +161 -0
- package/dist/serializer-base.js.map +1 -0
- package/dist/serializer-options.d.ts +123 -0
- package/dist/serializer-options.d.ts.map +1 -0
- package/dist/serializer-options.js +24 -0
- package/dist/serializer-options.js.map +1 -0
- package/dist/serializer.interface.d.ts +27 -0
- package/dist/serializer.interface.d.ts.map +1 -0
- package/dist/serializer.interface.js +2 -0
- package/dist/serializer.interface.js.map +1 -0
- package/dist/serializers/index.d.ts +7 -0
- package/dist/serializers/index.d.ts.map +1 -0
- package/dist/serializers/index.js +7 -0
- package/dist/serializers/index.js.map +1 -0
- package/dist/serializers/jsonld-serializer.d.ts +111 -0
- package/dist/serializers/jsonld-serializer.d.ts.map +1 -0
- package/dist/serializers/jsonld-serializer.js +275 -0
- package/dist/serializers/jsonld-serializer.js.map +1 -0
- package/dist/serializers/n3-serializer.d.ts +82 -0
- package/dist/serializers/n3-serializer.d.ts.map +1 -0
- package/dist/serializers/n3-serializer.js +126 -0
- package/dist/serializers/n3-serializer.js.map +1 -0
- package/dist/serializers/nquads-serializer.d.ts +41 -0
- package/dist/serializers/nquads-serializer.d.ts.map +1 -0
- package/dist/serializers/nquads-serializer.js +67 -0
- package/dist/serializers/nquads-serializer.js.map +1 -0
- package/dist/serializers/ntriples-serializer.d.ts +41 -0
- package/dist/serializers/ntriples-serializer.d.ts.map +1 -0
- package/dist/serializers/ntriples-serializer.js +76 -0
- package/dist/serializers/ntriples-serializer.js.map +1 -0
- package/dist/serializers/trig-serializer.d.ts +42 -0
- package/dist/serializers/trig-serializer.d.ts.map +1 -0
- package/dist/serializers/trig-serializer.js +174 -0
- package/dist/serializers/trig-serializer.js.map +1 -0
- package/dist/serializers/turtle-serializer.d.ts +90 -0
- package/dist/serializers/turtle-serializer.d.ts.map +1 -0
- package/dist/serializers/turtle-serializer.js +347 -0
- package/dist/serializers/turtle-serializer.js.map +1 -0
- package/dist/sorting/alphabetical-sorting-strategy.d.ts +11 -0
- package/dist/sorting/alphabetical-sorting-strategy.d.ts.map +1 -0
- package/dist/sorting/alphabetical-sorting-strategy.js +19 -0
- package/dist/sorting/alphabetical-sorting-strategy.js.map +1 -0
- package/dist/sorting/by-type-sorting-strategy.d.ts +25 -0
- package/dist/sorting/by-type-sorting-strategy.d.ts.map +1 -0
- package/dist/sorting/by-type-sorting-strategy.js +52 -0
- package/dist/sorting/by-type-sorting-strategy.js.map +1 -0
- package/dist/sorting/index.d.ts +4 -4
- package/dist/sorting/index.d.ts.map +1 -1
- package/dist/sorting/index.js +4 -4
- package/dist/sorting/index.js.map +1 -1
- package/dist/sorting/priority-sorting-strategy.d.ts +32 -0
- package/dist/sorting/priority-sorting-strategy.d.ts.map +1 -0
- package/dist/sorting/priority-sorting-strategy.js +64 -0
- package/dist/sorting/priority-sorting-strategy.js.map +1 -0
- package/dist/sorting/quad-sorter.d.ts +10 -0
- package/dist/sorting/quad-sorter.d.ts.map +1 -0
- package/dist/sorting/quad-sorter.js +25 -0
- package/dist/sorting/quad-sorter.js.map +1 -0
- package/dist/sorting/semantic-sorting-strategy.d.ts +20 -0
- package/dist/sorting/semantic-sorting-strategy.d.ts.map +1 -0
- package/dist/sorting/semantic-sorting-strategy.js +87 -0
- package/dist/sorting/semantic-sorting-strategy.js.map +1 -0
- package/dist/sorting/type-sorting-strategy.d.ts +25 -0
- package/dist/sorting/type-sorting-strategy.d.ts.map +1 -0
- package/dist/sorting/type-sorting-strategy.js +51 -0
- package/dist/sorting/type-sorting-strategy.js.map +1 -0
- package/dist/sorting-strategies.d.ts +46 -0
- package/dist/sorting-strategies.d.ts.map +1 -0
- package/dist/sorting-strategies.js +260 -0
- package/dist/sorting-strategies.js.map +1 -0
- package/dist/sorting-strategy.d.ts +17 -0
- package/dist/sorting-strategy.d.ts.map +1 -0
- package/dist/sorting-strategy.js +2 -0
- package/dist/sorting-strategy.js.map +1 -0
- package/dist/source-map-entry.d.ts +26 -0
- package/dist/source-map-entry.d.ts.map +1 -0
- package/dist/source-map-entry.js +2 -0
- package/dist/source-map-entry.js.map +1 -0
- package/dist/sparql/sparql-formatter.d.ts +103 -0
- package/dist/sparql/sparql-formatter.d.ts.map +1 -0
- package/dist/sparql/sparql-formatter.js +769 -0
- package/dist/sparql/sparql-formatter.js.map +1 -0
- package/dist/statement-serializer-options.d.ts +39 -0
- package/dist/statement-serializer-options.d.ts.map +1 -0
- package/dist/statement-serializer-options.js +2 -0
- package/dist/statement-serializer-options.js.map +1 -0
- package/dist/statement-serializer.d.ts +19 -107
- package/dist/statement-serializer.d.ts.map +1 -1
- package/dist/statement-serializer.js +79 -149
- package/dist/statement-serializer.js.map +1 -1
- package/dist/token-formatter-base.d.ts +302 -0
- package/dist/token-formatter-base.d.ts.map +1 -0
- package/dist/token-formatter-base.js +330 -0
- package/dist/token-formatter-base.js.map +1 -0
- package/dist/token-formatter.interface.d.ts +21 -0
- package/dist/token-formatter.interface.d.ts.map +1 -0
- package/dist/token-formatter.interface.js +2 -0
- package/dist/token-formatter.interface.js.map +1 -0
- package/dist/token-serializer.d.ts +20 -42
- package/dist/token-serializer.d.ts.map +1 -1
- package/dist/token-serializer.interface.d.ts +15 -0
- package/dist/token-serializer.interface.d.ts.map +1 -0
- package/dist/token-serializer.interface.js +2 -0
- package/dist/token-serializer.interface.js.map +1 -0
- package/dist/token-serializer.js +23 -179
- package/dist/token-serializer.js.map +1 -1
- package/dist/trig/serializer.d.ts.map +1 -1
- package/dist/trig/serializer.js +19 -19
- package/dist/trig/serializer.js.map +1 -1
- package/dist/trig/trig-formatter.d.ts +103 -0
- package/dist/trig/trig-formatter.d.ts.map +1 -0
- package/dist/trig/trig-formatter.js +435 -0
- package/dist/trig/trig-formatter.js.map +1 -0
- package/dist/trig/trig-serializer.d.ts +39 -0
- package/dist/trig/trig-serializer.d.ts.map +1 -0
- package/dist/trig/trig-serializer.js +174 -0
- package/dist/trig/trig-serializer.js.map +1 -0
- package/dist/turtle/serializer.d.ts.map +1 -1
- package/dist/turtle/serializer.js +20 -20
- package/dist/turtle/serializer.js.map +1 -1
- package/dist/turtle/turtle-formatter.d.ts +72 -0
- package/dist/turtle/turtle-formatter.d.ts.map +1 -0
- package/dist/turtle/turtle-formatter.js +404 -0
- package/dist/turtle/turtle-formatter.js.map +1 -0
- package/dist/turtle/turtle-serializer.d.ts +87 -0
- package/dist/turtle/turtle-serializer.d.ts.map +1 -0
- package/dist/turtle/turtle-serializer.js +347 -0
- package/dist/turtle/turtle-serializer.js.map +1 -0
- package/dist/types.d.ts +20 -260
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -13
- package/dist/types.js.map +1 -1
- package/dist/utilities/blank-nodes.d.ts +9 -0
- package/dist/utilities/blank-nodes.d.ts.map +1 -0
- package/dist/utilities/blank-nodes.js +18 -0
- package/dist/utilities/blank-nodes.js.map +1 -0
- package/dist/utilities/escaping.d.ts +26 -0
- package/dist/utilities/escaping.d.ts.map +1 -0
- package/dist/utilities/escaping.js +183 -0
- package/dist/utilities/escaping.js.map +1 -0
- package/dist/utilities/index.d.ts +9 -0
- package/dist/utilities/index.d.ts.map +1 -0
- package/dist/utilities/index.js +9 -0
- package/dist/utilities/index.js.map +1 -0
- package/dist/utilities/literals.d.ts +17 -0
- package/dist/utilities/literals.d.ts.map +1 -0
- package/dist/utilities/literals.js +28 -0
- package/dist/utilities/literals.js.map +1 -0
- package/dist/utilities/prefixes.d.ts +11 -0
- package/dist/utilities/prefixes.d.ts.map +1 -0
- package/dist/utilities/prefixes.js +20 -0
- package/dist/utilities/prefixes.js.map +1 -0
- package/dist/utilities/quads.d.ts +23 -0
- package/dist/utilities/quads.d.ts.map +1 -0
- package/dist/utilities/quads.js +63 -0
- package/dist/utilities/quads.js.map +1 -0
- package/dist/utilities/source-map-entry.d.ts +26 -0
- package/dist/utilities/source-map-entry.d.ts.map +1 -0
- package/dist/utilities/source-map-entry.js +2 -0
- package/dist/utilities/source-map-entry.js.map +1 -0
- package/dist/utilities/terms.d.ts +31 -0
- package/dist/utilities/terms.d.ts.map +1 -0
- package/dist/utilities/terms.js +86 -0
- package/dist/utilities/terms.js.map +1 -0
- package/dist/utilities/types.d.ts +139 -0
- package/dist/utilities/types.d.ts.map +1 -0
- package/dist/utilities/types.js +2 -0
- package/dist/utilities/types.js.map +1 -0
- package/dist/utilities/utils.d.ts +110 -0
- package/dist/utilities/utils.d.ts.map +1 -0
- package/dist/utilities/utils.js +374 -0
- package/dist/utilities/utils.js.map +1 -0
- package/dist/utils.d.ts +0 -39
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +27 -64
- package/dist/utils.js.map +1 -1
- package/package.json +8 -3
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { BlankNode, Literal, NamedNode, Quad, Term, Variable } from '@rdfjs/types';
|
|
2
2
|
import type { ISerializer, Rdf12Quad, Rdf12Term, RdfSyntax, SerializationResult, SerializerOptions, TripleTerm } from './types.js';
|
|
3
3
|
/**
|
|
4
|
-
* Abstract base class for RDF serializers.
|
|
5
|
-
*
|
|
4
|
+
* Abstract base class for RDF serializers. Provides common functionality
|
|
5
|
+
* for serializing terms and literals.
|
|
6
6
|
*/
|
|
7
7
|
export declare abstract class BaseSerializer implements ISerializer {
|
|
8
8
|
abstract readonly syntax: RdfSyntax;
|
|
@@ -43,12 +43,11 @@ export declare abstract class BaseSerializer implements ISerializer {
|
|
|
43
43
|
*/
|
|
44
44
|
protected serializeLiteral(literal: Literal, options: Required<SerializerOptions>): string;
|
|
45
45
|
/**
|
|
46
|
-
* Serializes a variable
|
|
46
|
+
* Serializes a SPARQL variable.
|
|
47
47
|
*/
|
|
48
48
|
protected serializeVariable(variable: Variable, _options: Required<SerializerOptions>): string;
|
|
49
49
|
/**
|
|
50
50
|
* Serializes an RDF 1.2 Triple Term.
|
|
51
|
-
* Syntax: <<( subject predicate object )>>
|
|
52
51
|
*/
|
|
53
52
|
protected serializeTripleTerm(tripleTerm: TripleTerm, options: Required<SerializerOptions>): string;
|
|
54
53
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-serializer.d.ts","sourceRoot":"","sources":["../src/base-serializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"base-serializer.d.ts","sourceRoot":"","sources":["../src/base-serializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,SAAS,EACT,OAAO,EACP,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,QAAQ,EACX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACR,WAAW,EACX,SAAS,EACT,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACb,MAAM,YAAY,CAAC;AAmBpB;;;GAGG;AACH,8BAAsB,cAAe,YAAW,WAAW;IACvD,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;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM;IAEnF;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM;IAE1F;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,mBAAmB;IAM3F;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,MAAM;IAmB3F;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,MAAM;IAI5F;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,MAAM;IAuD1F;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,MAAM;IAI9F;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,MAAM;IAYnG;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,MAAM;IAmB7F;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;CAGjF"}
|
package/dist/base-serializer.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { escapeIri, escapeLocalName, escapeString, findPrefix, isDecimal, isDouble, isInteger, mergeOptions, needsLongString, RDF_TYPE, XSD_BOOLEAN, XSD_DECIMAL, XSD_DOUBLE, XSD_INTEGER, XSD_STRING } from './utils.js';
|
|
2
2
|
/**
|
|
3
|
-
* Abstract base class for RDF serializers.
|
|
4
|
-
*
|
|
3
|
+
* Abstract base class for RDF serializers. Provides common functionality
|
|
4
|
+
* for serializing terms and literals.
|
|
5
5
|
*/
|
|
6
6
|
export class BaseSerializer {
|
|
7
7
|
/**
|
|
@@ -32,7 +32,6 @@ export class BaseSerializer {
|
|
|
32
32
|
if (this.supportsRdfTypeShorthand && options.useRdfTypeShorthand && node.value === RDF_TYPE) {
|
|
33
33
|
return 'a';
|
|
34
34
|
}
|
|
35
|
-
// Try to use a prefix
|
|
36
35
|
if (this.supportsPrefixes && Object.keys(options.prefixes).length > 0) {
|
|
37
36
|
const prefixMatch = findPrefix(node.value, options.prefixes);
|
|
38
37
|
if (prefixMatch) {
|
|
@@ -40,7 +39,6 @@ export class BaseSerializer {
|
|
|
40
39
|
return `${prefixMatch.prefix}:${escapedLocalName}`;
|
|
41
40
|
}
|
|
42
41
|
}
|
|
43
|
-
// Fall back to full IRI
|
|
44
42
|
return `<${escapeIri(node.value)}>`;
|
|
45
43
|
}
|
|
46
44
|
/**
|
|
@@ -56,12 +54,10 @@ export class BaseSerializer {
|
|
|
56
54
|
const value = literal.value;
|
|
57
55
|
const datatype = literal.datatype?.value;
|
|
58
56
|
const language = literal.language;
|
|
59
|
-
// Handle language-tagged literals
|
|
60
57
|
if (language) {
|
|
61
58
|
const escapedValue = escapeString(value);
|
|
62
59
|
return `"${escapedValue}"@${language}`;
|
|
63
60
|
}
|
|
64
|
-
// Handle boolean shortcuts (for Turtle-family formats)
|
|
65
61
|
if (this.supportsPrefixes && datatype === XSD_BOOLEAN) {
|
|
66
62
|
if (value === 'true' || value === '1') {
|
|
67
63
|
return 'true';
|
|
@@ -70,7 +66,6 @@ export class BaseSerializer {
|
|
|
70
66
|
return 'false';
|
|
71
67
|
}
|
|
72
68
|
}
|
|
73
|
-
// Handle numeric shortcuts (for Turtle-family formats)
|
|
74
69
|
if (this.supportsPrefixes) {
|
|
75
70
|
if (datatype === XSD_INTEGER && isInteger(value)) {
|
|
76
71
|
return value;
|
|
@@ -91,18 +86,21 @@ export class BaseSerializer {
|
|
|
91
86
|
return `${quote}${escapedValue}${quote}`;
|
|
92
87
|
}
|
|
93
88
|
// Serialize with datatype
|
|
94
|
-
const datatypeStr = this.serializeNamedNode({
|
|
89
|
+
const datatypeStr = this.serializeNamedNode({
|
|
90
|
+
termType: 'NamedNode',
|
|
91
|
+
value: datatype,
|
|
92
|
+
equals: () => false
|
|
93
|
+
}, options);
|
|
95
94
|
return `${quote}${escapedValue}${quote}^^${datatypeStr}`;
|
|
96
95
|
}
|
|
97
96
|
/**
|
|
98
|
-
* Serializes a variable
|
|
97
|
+
* Serializes a SPARQL variable.
|
|
99
98
|
*/
|
|
100
99
|
serializeVariable(variable, _options) {
|
|
101
100
|
return `?${variable.value}`;
|
|
102
101
|
}
|
|
103
102
|
/**
|
|
104
103
|
* Serializes an RDF 1.2 Triple Term.
|
|
105
|
-
* Syntax: <<( subject predicate object )>>
|
|
106
104
|
*/
|
|
107
105
|
serializeTripleTerm(tripleTerm, options) {
|
|
108
106
|
if (!this.supportsRdf12) {
|
|
@@ -118,6 +116,8 @@ export class BaseSerializer {
|
|
|
118
116
|
*/
|
|
119
117
|
serializeTerm(term, options) {
|
|
120
118
|
switch (term.termType) {
|
|
119
|
+
case 'DefaultGraph':
|
|
120
|
+
return '';
|
|
121
121
|
case 'NamedNode':
|
|
122
122
|
return this.serializeNamedNode(term, options);
|
|
123
123
|
case 'BlankNode':
|
|
@@ -126,8 +126,6 @@ export class BaseSerializer {
|
|
|
126
126
|
return this.serializeLiteral(term, options);
|
|
127
127
|
case 'Variable':
|
|
128
128
|
return this.serializeVariable(term, options);
|
|
129
|
-
case 'DefaultGraph':
|
|
130
|
-
return '';
|
|
131
129
|
case 'TripleTerm':
|
|
132
130
|
return this.serializeTripleTerm(term, options);
|
|
133
131
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-serializer.js","sourceRoot":"","sources":["../src/base-serializer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base-serializer.js","sourceRoot":"","sources":["../src/base-serializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +1,55 @@
|
|
|
1
1
|
import type { IToken } from 'chevrotain';
|
|
2
2
|
import type { SerializerOptions } from './types.js';
|
|
3
3
|
/**
|
|
4
|
-
* Metadata attached to each token during the analysis pass.
|
|
5
|
-
*
|
|
4
|
+
* Metadata attached to each token during the analysis pass. This captures
|
|
5
|
+
* source-layout information for the emit pass.
|
|
6
6
|
*/
|
|
7
7
|
export interface TokenAnnotation {
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* Source had a newline between this token and the previous non-WS token.
|
|
10
|
+
* */
|
|
9
11
|
sourceNewlineBefore: boolean;
|
|
10
|
-
/**
|
|
12
|
+
/**
|
|
13
|
+
* Source had a blank line (2+ newlines) between this token and the previous non-WS token.
|
|
14
|
+
*/
|
|
11
15
|
sourceBlankLineBefore: boolean;
|
|
12
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* Number of source newlines between this token and the previous non-WS token.
|
|
18
|
+
*/
|
|
13
19
|
sourceLineGap: number;
|
|
14
20
|
}
|
|
15
21
|
/**
|
|
16
22
|
* A token together with its analysis annotation.
|
|
17
23
|
*/
|
|
18
24
|
export interface AnnotatedToken {
|
|
25
|
+
/**
|
|
26
|
+
* The original token from the lexer.
|
|
27
|
+
*/
|
|
19
28
|
token: IToken;
|
|
29
|
+
/**
|
|
30
|
+
* The annotation describing source-layout between this token and the previous non-WS token.
|
|
31
|
+
*/
|
|
20
32
|
annotation: TokenAnnotation;
|
|
21
33
|
}
|
|
22
34
|
/**
|
|
23
35
|
* Scope entry representing a nesting level.
|
|
24
36
|
*/
|
|
25
37
|
export interface Scope {
|
|
26
|
-
/**
|
|
38
|
+
/**
|
|
39
|
+
* Type of the scope delimiter.
|
|
40
|
+
*/
|
|
27
41
|
type: 'curly' | 'bracket' | 'paren';
|
|
28
|
-
/**
|
|
42
|
+
/**
|
|
43
|
+
* Whether the block is formatted inline (no line breaks).
|
|
44
|
+
*/
|
|
29
45
|
isInline: boolean;
|
|
30
|
-
/**
|
|
46
|
+
/**
|
|
47
|
+
* Whether the block spans multiple source lines.
|
|
48
|
+
*/
|
|
31
49
|
isMultiLine: boolean;
|
|
32
|
-
/**
|
|
50
|
+
/**
|
|
51
|
+
* The indent level when this scope was entered.
|
|
52
|
+
*/
|
|
33
53
|
indentLevel: number;
|
|
34
54
|
}
|
|
35
55
|
/**
|
|
@@ -37,188 +57,245 @@ export interface Scope {
|
|
|
37
57
|
* Subclasses extend this to add format-specific state.
|
|
38
58
|
*/
|
|
39
59
|
export interface BaseFormatterContext {
|
|
40
|
-
/**
|
|
60
|
+
/**
|
|
61
|
+
* Accumulated output parts.
|
|
62
|
+
*/
|
|
41
63
|
parts: string[];
|
|
42
|
-
/**
|
|
64
|
+
/**
|
|
65
|
+
* Current indent nesting level.
|
|
66
|
+
*/
|
|
43
67
|
indentLevel: number;
|
|
44
|
-
/**
|
|
68
|
+
/**
|
|
69
|
+
* Current line length (for wrapping).
|
|
70
|
+
*/
|
|
45
71
|
currentLineLength: number;
|
|
46
|
-
/**
|
|
72
|
+
/**
|
|
73
|
+
* The scope stack.
|
|
74
|
+
*/
|
|
47
75
|
scopeStack: Scope[];
|
|
48
|
-
/**
|
|
76
|
+
/**
|
|
77
|
+
* A newline should be emitted before the next token.
|
|
78
|
+
*/
|
|
49
79
|
needsNewline: boolean;
|
|
50
|
-
/**
|
|
80
|
+
/**
|
|
81
|
+
* A blank line should be emitted before the next token.
|
|
82
|
+
*/
|
|
51
83
|
needsBlankLine: boolean;
|
|
52
|
-
/**
|
|
84
|
+
/**
|
|
85
|
+
* A space should be emitted before the next token.
|
|
86
|
+
*/
|
|
53
87
|
needsSpace: boolean;
|
|
54
|
-
/**
|
|
88
|
+
/**
|
|
89
|
+
* Whether the pending newline originated from source positions.
|
|
90
|
+
*/
|
|
55
91
|
sourceNewline: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* The last token that was processed (including whitespace and comments).
|
|
94
|
+
*/
|
|
56
95
|
lastToken: IToken | null;
|
|
96
|
+
/**
|
|
97
|
+
* The last non-whitespace token that was processed (excluding WS but including comments).
|
|
98
|
+
*/
|
|
57
99
|
lastNonWsToken: IToken | null;
|
|
100
|
+
/**
|
|
101
|
+
* Indicates whether the last emitted part ended with a newline (for spacing decisions).
|
|
102
|
+
*/
|
|
58
103
|
lastWasNewline: boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Indicates whether the last emitted part was a comment (for spacing decisions).
|
|
106
|
+
*/
|
|
59
107
|
lastWasComment: boolean;
|
|
60
|
-
/**
|
|
108
|
+
/**
|
|
109
|
+
* Whether we are inside a prefix/base declaration.
|
|
110
|
+
*/
|
|
61
111
|
inPrefix: boolean;
|
|
62
|
-
/**
|
|
112
|
+
/**
|
|
113
|
+
* Triple position counter (0=subject, 1=predicate, 2=object).
|
|
114
|
+
*/
|
|
63
115
|
triplePosition: number;
|
|
64
|
-
/**
|
|
116
|
+
/**
|
|
117
|
+
* Last-seen subject image (for blank line insertion).
|
|
118
|
+
*/
|
|
65
119
|
lastSubject: string | null;
|
|
66
|
-
/**
|
|
120
|
+
/**
|
|
121
|
+
* Whether the current statement should be rendered on a single line.
|
|
122
|
+
*/
|
|
67
123
|
inlineStatement: boolean;
|
|
68
124
|
}
|
|
69
125
|
/**
|
|
70
126
|
* Options common to all token-based formatters.
|
|
71
127
|
*/
|
|
72
128
|
export interface BaseFormatterOptions extends SerializerOptions {
|
|
73
|
-
/**
|
|
129
|
+
/**
|
|
130
|
+
* Add a space before punctuation (. and ;). Default: false.
|
|
131
|
+
*/
|
|
74
132
|
spaceBeforePunctuation?: boolean;
|
|
75
133
|
}
|
|
76
|
-
/**
|
|
77
|
-
* Annotates a token array with source-layout metadata.
|
|
78
|
-
*
|
|
79
|
-
* This is the "analysis pass" that records where the source had newlines
|
|
80
|
-
* and blank lines. The emit pass can then decide whether to honour them.
|
|
81
|
-
*
|
|
82
|
-
* @param tokens The main token stream (no WS / comment groups).
|
|
83
|
-
* @param comments Comment tokens extracted from lexer groups.
|
|
84
|
-
* @returns An array of annotated tokens (comments merged in order) with
|
|
85
|
-
* annotations describing source-layout between adjacent tokens.
|
|
86
|
-
*/
|
|
87
|
-
export declare function annotateTokens(tokens: IToken[], comments?: IToken[]): AnnotatedToken[];
|
|
88
134
|
/**
|
|
89
135
|
* Abstract base class for all token-based RDF/SPARQL formatters.
|
|
90
|
-
*
|
|
91
|
-
* Provides:
|
|
92
|
-
* - Two-pass architecture: annotateTokens (analysis) + emit (subclass).
|
|
93
|
-
* - A unified scope stack for { }, [ ], ( ).
|
|
94
|
-
* - Output building helpers (addPart, getIndent, line length tracking).
|
|
95
|
-
* - Shared handlers for brackets, punctuation, comments, spacing.
|
|
96
|
-
* - Source newline / blank line preservation helpers.
|
|
97
|
-
*
|
|
98
|
-
* Subclasses override hooks (e.g. handleOpenBrace, handleMajorClause) to add
|
|
99
|
-
* syntax-specific behaviour.
|
|
100
136
|
*/
|
|
101
137
|
export declare abstract class BaseTokenFormatter<TContext extends BaseFormatterContext = BaseFormatterContext, TOptions extends BaseFormatterOptions = BaseFormatterOptions> {
|
|
102
|
-
/**
|
|
138
|
+
/**
|
|
139
|
+
* Merge user options with defaults. Must be implemented by subclasses.
|
|
140
|
+
* @param options User-provided options (may be partial).
|
|
141
|
+
*/
|
|
103
142
|
protected abstract getOptions(options?: TOptions): Required<TOptions>;
|
|
104
|
-
/**
|
|
105
|
-
|
|
143
|
+
/**
|
|
144
|
+
* Create the initial context. Subclasses extend the base context.
|
|
145
|
+
* @param options The merged options.
|
|
146
|
+
*/
|
|
147
|
+
protected abstract createContext(options: Required<TOptions>): TContext;
|
|
106
148
|
/**
|
|
107
149
|
* Format a token's image (e.g. keyword casing).
|
|
108
|
-
*
|
|
150
|
+
* @param token The token to format.
|
|
151
|
+
* @param options The merged options.
|
|
152
|
+
* @return The formatted token string to emit. (Default: token.image)
|
|
153
|
+
*/
|
|
154
|
+
protected formatTokenValue(token: IToken, _options: Required<TOptions>): string;
|
|
155
|
+
/**
|
|
156
|
+
* Indicates whether a token is a keyword (for spacing decisions).
|
|
157
|
+
* @param token The token to check.
|
|
158
|
+
* @returns `true` if the token is a keyword, `false` otherwise. (Default: false)
|
|
109
159
|
*/
|
|
110
|
-
protected formatTokenValue(token: IToken, _opts: Required<TOptions>): string;
|
|
111
160
|
protected isKeyword(token: IToken): boolean;
|
|
161
|
+
/**
|
|
162
|
+
* Indicates whether a token is a keyword that should be lowercased (for spacing decisions).
|
|
163
|
+
* @param token The token to check.
|
|
164
|
+
* @returns `true` if the token is a lowercase-only keyword, `false` otherwise. (Default: false)
|
|
165
|
+
*/
|
|
112
166
|
protected isLowercaseOnly(token: IToken): boolean;
|
|
167
|
+
/**
|
|
168
|
+
* Indicates whether a token is a term (IRI, literal, variable) for spacing decisions.
|
|
169
|
+
* @param token The token to check.
|
|
170
|
+
* @returns `true` if the token is a term, `false` otherwise. (Default: false)
|
|
171
|
+
*/
|
|
113
172
|
protected isTermToken(token: IToken): boolean;
|
|
173
|
+
/**
|
|
174
|
+
* Indicates whether a token is a function keyword (for spacing decisions).
|
|
175
|
+
* @param token The token to check.
|
|
176
|
+
* @returns `true` if the token is a function keyword, `false` otherwise. (Default: false)
|
|
177
|
+
*/
|
|
114
178
|
protected isFunctionKeyword(token: IToken): boolean;
|
|
179
|
+
/**
|
|
180
|
+
* Indicates whether a token is a major clause keyword (e.g. SELECT, WHERE) for spacing decisions.
|
|
181
|
+
* @param token The token to check.
|
|
182
|
+
* @returns `true` if the token is a major clause keyword, `false` otherwise. (Default: false)
|
|
183
|
+
*/
|
|
115
184
|
protected isMajorClauseKeyword(token: IToken): boolean;
|
|
185
|
+
/**
|
|
186
|
+
* Indicates whether a token is a newline keyword (for spacing decisions).
|
|
187
|
+
* @param token The token to check.
|
|
188
|
+
* @returns `true` if the token is a newline keyword, `false` otherwise. (Default: false)
|
|
189
|
+
*/
|
|
116
190
|
protected isNewlineKeyword(token: IToken): boolean;
|
|
117
|
-
protected isOpeningBracket(token: IToken): boolean;
|
|
118
|
-
protected isClosingBracket(token: IToken): boolean;
|
|
119
|
-
/** Push a new scope. */
|
|
120
|
-
protected pushScope(ctx: TContext, type: Scope['type'], isInline: boolean, isMultiLine: boolean): void;
|
|
121
|
-
/** Pop the current scope. Returns it, or undefined if the stack is empty. */
|
|
122
|
-
protected popScope(ctx: TContext): Scope | undefined;
|
|
123
|
-
/** The current innermost scope, or undefined. */
|
|
124
|
-
protected currentScope(ctx: TContext): Scope | undefined;
|
|
125
|
-
/** Whether we are inside a bracket scope (blank-node property list). */
|
|
126
|
-
protected inBracketScope(ctx: TContext): boolean;
|
|
127
|
-
/** Append text to the output and track line length. */
|
|
128
|
-
protected addPart(ctx: TContext, text: string, lineEnd: string, forceNewline?: boolean): void;
|
|
129
|
-
/** Get indentation string for a level. */
|
|
130
|
-
protected getIndent(level: number, indent: string): string;
|
|
131
|
-
/** Check if a wrap is needed. */
|
|
132
|
-
protected shouldWrap(ctx: TContext, nextLength: number, maxLineWidth: number): boolean;
|
|
133
191
|
/**
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
* It sets `needsNewline`, `needsBlankLine`, and `sourceNewline` based on
|
|
138
|
-
* what the source had, but only if the formatter hasn't already decided
|
|
139
|
-
* on something stronger.
|
|
192
|
+
* Indicates whether a token is an opening bracket (for scope management).
|
|
193
|
+
* @param token The token to check.
|
|
194
|
+
* @returns `true` if the token is an opening bracket, `false` otherwise. (Default: false)
|
|
140
195
|
*/
|
|
141
|
-
protected
|
|
196
|
+
protected isOpeningBracket(token: IToken): boolean;
|
|
142
197
|
/**
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
* @returns The approximate inline character-length of the statement,
|
|
148
|
-
* or `-1` if the source contained newlines within the statement
|
|
149
|
-
* (meaning the author intended multi-line layout).
|
|
150
|
-
*
|
|
151
|
-
* Nested brackets `[]` and parentheses `()` are traversed but their
|
|
152
|
-
* tokens are counted towards the total length. Comments force multi-line.
|
|
198
|
+
* Indicates whether a token is a closing bracket (for scope management).
|
|
199
|
+
* @param token The token to check.
|
|
200
|
+
* @returns `true` if the token is a closing bracket, `false` otherwise. (Default: false)
|
|
153
201
|
*/
|
|
154
|
-
protected
|
|
202
|
+
protected isClosingBracket(token: IToken): boolean;
|
|
155
203
|
/**
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
* @param ctx The formatting context.
|
|
162
|
-
* @param tokens The full token stream.
|
|
163
|
-
* @param startIndex Index of the subject token.
|
|
164
|
-
* @param indent The indent string for one level.
|
|
165
|
-
* @param maxLineWidth The configured maximum line width (0 = no limit).
|
|
204
|
+
* Push a new scope.
|
|
205
|
+
* @param context The formatting context.
|
|
206
|
+
* @param type The type of the scope.
|
|
207
|
+
* @param isInline Whether the scope is inline.
|
|
208
|
+
* @param isMultiLine Whether the scope is multiline.
|
|
166
209
|
*/
|
|
167
|
-
protected
|
|
210
|
+
protected pushScope(context: TContext, type: Scope['type'], isInline: boolean, isMultiLine: boolean): void;
|
|
168
211
|
/**
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
212
|
+
* Pop the current scope. Returns it, or undefined if the stack is empty.
|
|
213
|
+
* @param context The formatting context.
|
|
214
|
+
* @returns The popped scope, or `undefined` if the stack is empty.
|
|
172
215
|
*/
|
|
173
|
-
protected
|
|
216
|
+
protected popScope(context: TContext): Scope | undefined;
|
|
174
217
|
/**
|
|
175
|
-
*
|
|
176
|
-
*
|
|
177
|
-
*
|
|
218
|
+
* The current innermost scope, or `undefined`.
|
|
219
|
+
* @param context The formatting context.
|
|
220
|
+
* @returns The current innermost scope, or `undefined` if the stack is empty.
|
|
178
221
|
*/
|
|
179
|
-
protected
|
|
222
|
+
protected currentScope(context: TContext): Scope | undefined;
|
|
180
223
|
/**
|
|
181
|
-
*
|
|
182
|
-
*
|
|
183
|
-
*
|
|
184
|
-
* Outside: adds one extra indent for predicate continuations.
|
|
224
|
+
* Indicates if we are inside a bracket scope (blank-node property list).
|
|
225
|
+
* @param context The formatting context.
|
|
226
|
+
* @returns `true` if inside a bracket scope, `false` otherwise.
|
|
185
227
|
*/
|
|
186
|
-
protected
|
|
228
|
+
protected inBracketScope(context: TContext): boolean;
|
|
187
229
|
/**
|
|
188
|
-
*
|
|
230
|
+
* Append text to the output and track line length.
|
|
231
|
+
* @param context The formatting context.
|
|
232
|
+
* @param text The text to append.
|
|
233
|
+
* @param lineEnd The line ending string.
|
|
234
|
+
* @param forceNewline Whether to force a newline.
|
|
189
235
|
*/
|
|
190
|
-
protected
|
|
236
|
+
protected addPart(context: TContext, text: string, lineEnd: string, forceNewline?: boolean): void;
|
|
191
237
|
/**
|
|
192
|
-
*
|
|
238
|
+
* Get indentation string for a level.
|
|
239
|
+
* @param level The indentation level.
|
|
240
|
+
* @param indent The string to use for a single indentation level.
|
|
241
|
+
* @returns The indentation string for the given level.
|
|
193
242
|
*/
|
|
194
|
-
protected
|
|
243
|
+
protected getIndent(level: number, indent: string): string;
|
|
195
244
|
/**
|
|
196
|
-
*
|
|
245
|
+
* Indicates if a wrap is needed.
|
|
246
|
+
* @param context The formatting context.
|
|
247
|
+
* @param nextLength The length of the next token or text segment.
|
|
248
|
+
* @param maxLineWidth The maximum allowed line width.
|
|
249
|
+
* @returns `true` if a wrap is needed, `false` otherwise.
|
|
197
250
|
*/
|
|
198
|
-
protected
|
|
251
|
+
protected shouldWrap(context: TContext, nextLength: number, maxLineWidth: number): boolean;
|
|
199
252
|
/**
|
|
200
|
-
*
|
|
253
|
+
* Scans forward from `startIndex` to the statement-terminating period
|
|
254
|
+
* (at nesting depth 0) and determines whether the source had the
|
|
255
|
+
* entire statement on a single line.
|
|
256
|
+
*
|
|
257
|
+
* Nested brackets `[]` and parentheses `()` are traversed but their
|
|
258
|
+
* tokens are counted towards the total length. Comments force multi-line.
|
|
201
259
|
*
|
|
202
|
-
*
|
|
203
|
-
*
|
|
260
|
+
* @returns The approximate inline character-length of the statement,
|
|
261
|
+
* or `-1` if the source contained newlines within the statement (meaning
|
|
262
|
+
* the author intended multi-line layout).
|
|
204
263
|
*/
|
|
205
|
-
protected
|
|
264
|
+
protected calculateStatementLength(tokens: IToken[], startIndex: number): number;
|
|
206
265
|
/**
|
|
207
|
-
*
|
|
266
|
+
* Evaluates whether the current statement (starting at `startIndex`)
|
|
267
|
+
* should be rendered inline, and sets `ctx.inlineStatement` accordingly.
|
|
268
|
+
*
|
|
269
|
+
* Call this when a subject is detected (triplePosition === 0).
|
|
270
|
+
*
|
|
271
|
+
* @param context The formatting context.
|
|
272
|
+
* @param tokens The full token stream.
|
|
273
|
+
* @param startIndex Index of the subject token.
|
|
274
|
+
* @param indent The indent string for one level.
|
|
275
|
+
* @param maxLineWidth The configured maximum line width (0 = no limit).
|
|
208
276
|
*/
|
|
209
|
-
protected
|
|
277
|
+
protected detectInlineStatement(context: TContext, tokens: IToken[], startIndex: number, indent: string, maxLineWidth: number): void;
|
|
210
278
|
/**
|
|
211
279
|
* Checks if a parenthesis block (starting at `(` at index) contains
|
|
212
280
|
* source newlines between the open and close parens.
|
|
281
|
+
*
|
|
282
|
+
* @param tokens The full token stream.
|
|
283
|
+
* @param openIndex The index of the opening parenthesis token.
|
|
284
|
+
* @returns `true` if the parenthesis block contains source newlines, `false` otherwise.
|
|
213
285
|
*/
|
|
214
286
|
protected isParenBlockMultiLine(tokens: IToken[], openIndex: number): boolean;
|
|
215
287
|
/**
|
|
216
|
-
* Returns a base context with all shared fields initialised.
|
|
217
|
-
*
|
|
288
|
+
* Returns a base context with all shared fields initialised. Subclasses call
|
|
289
|
+
* this and spread into their own context literal.
|
|
290
|
+
*
|
|
291
|
+
* @returns A base context with all shared fields initialised.
|
|
218
292
|
*/
|
|
219
293
|
protected createBaseContext(): Omit<BaseFormatterContext, never>;
|
|
220
294
|
/**
|
|
221
|
-
*
|
|
295
|
+
* Merges user options with defaults. Subclasses can override this to add their own options.
|
|
296
|
+
*
|
|
297
|
+
* @param options User-provided options (may be partial).
|
|
298
|
+
* @returns The merged options with defaults applied.
|
|
222
299
|
*/
|
|
223
300
|
protected mergeBaseOptions(options?: SerializerOptions): Required<SerializerOptions>;
|
|
224
301
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-token-formatter.d.ts","sourceRoot":"","sources":["../src/base-token-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAa,MAAM,YAAY,CAAC;AAGpD,OAAO,KAAK,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"base-token-formatter.d.ts","sourceRoot":"","sources":["../src/base-token-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAa,MAAM,YAAY,CAAC;AAGpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGpD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC5B;;SAEK;IACL,mBAAmB,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,qBAAqB,EAAE,OAAO,CAAC;IAE/B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,UAAU,EAAE,eAAe,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IAClB;;OAEG;IACH,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IAEpC;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACjC;;OAEG;IACH,KAAK,EAAE,MAAM,EAAE,CAAC;IAEhB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,UAAU,EAAE,KAAK,EAAE,CAAC;IAEpB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,cAAc,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB;;OAEG;IACH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B;;OAEG;IACH,cAAc,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,cAAc,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC3D;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED;;GAEG;AACH,8BAAsB,kBAAkB,CACpC,QAAQ,SAAS,oBAAoB,GAAG,oBAAoB,EAC5D,QAAQ,SAAS,oBAAoB,GAAG,oBAAoB;IAE5D;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IAErE;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ;IAEvE;;;;;OAKG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM;IAI/E;;;;OAIG;IACH,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI3C;;;;OAIG;IACH,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIjD;;;;OAIG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI7C;;;;OAIG;IACH,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAInD;;;;OAIG;IACH,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAItD;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIlD;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAQlD;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAQlD;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,GAAG,IAAI;IAW1G;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,KAAK,GAAG,SAAS;IAUxD;;;;OAIG;IACH,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,GAAG,KAAK,GAAG,SAAS;IAI5D;;;;OAIG;IACH,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO;IAIpD;;;;;;OAMG;IACH,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,UAAQ,GAAG,IAAI;IAW/F;;;;;OAKG;IACH,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAI1D;;;;;;OAMG;IACH,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO;IAI1F;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAqEhF;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAoBpI;;;;;;;OAOG;IACH,SAAS,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IA4B7E;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,IAAI,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC;IAqBhE;;;;;OAKG;IACH,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;CAGvF"}
|