rdfjs-wrapper 0.1.3 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +4 -5
  3. package/dist/algorithm/getter.d.ts +3 -0
  4. package/dist/algorithm/getter.js +49 -0
  5. package/dist/algorithm/getter.js.map +1 -0
  6. package/dist/algorithm/set_literal.d.ts +2 -0
  7. package/dist/algorithm/set_literal.js +12 -0
  8. package/dist/algorithm/set_literal.js.map +1 -0
  9. package/dist/algorithm/set_node.d.ts +4 -0
  10. package/dist/algorithm/set_node.js +12 -0
  11. package/dist/algorithm/set_node.js.map +1 -0
  12. package/dist/algorithm/wrap.d.ts +3 -0
  13. package/dist/algorithm/wrap.js +31 -0
  14. package/dist/algorithm/wrap.js.map +1 -0
  15. package/dist/class/literal_wrapper.d.ts +7 -0
  16. package/dist/class/literal_wrapper.js +15 -0
  17. package/dist/class/literal_wrapper.js.map +1 -0
  18. package/dist/class/node_wrapper.d.ts +6 -0
  19. package/dist/class/node_wrapper.js +12 -0
  20. package/dist/class/node_wrapper.js.map +1 -0
  21. package/dist/class/property_wrapper.d.ts +22 -0
  22. package/dist/class/property_wrapper.js +82 -0
  23. package/dist/class/property_wrapper.js.map +1 -0
  24. package/dist/class/wrapper.d.ts +7 -0
  25. package/dist/class/wrapper.js +12 -0
  26. package/dist/class/wrapper.js.map +1 -0
  27. package/dist/class/{WrappingSet.d.ts → wrapping_set.d.ts} +7 -9
  28. package/dist/class/{WrappingSet.js → wrapping_set.js} +14 -14
  29. package/dist/class/wrapping_set.js.map +1 -0
  30. package/dist/constant/term_type.d.ts +1 -0
  31. package/dist/constant/term_type.js +12 -0
  32. package/dist/constant/term_type.js.map +1 -0
  33. package/dist/error/cardinality_error.d.ts +3 -0
  34. package/dist/error/cardinality_error.js +10 -0
  35. package/dist/error/cardinality_error.js.map +1 -0
  36. package/dist/error/missing_value_error.d.ts +3 -0
  37. package/dist/error/missing_value_error.js +10 -0
  38. package/dist/error/missing_value_error.js.map +1 -0
  39. package/dist/error/term_type_error.d.ts +3 -0
  40. package/dist/error/term_type_error.js +10 -0
  41. package/dist/error/term_type_error.js.map +1 -0
  42. package/dist/error/wrapper_type_error.d.ts +3 -0
  43. package/dist/error/wrapper_type_error.js +10 -0
  44. package/dist/error/wrapper_type_error.js.map +1 -0
  45. package/dist/factory/string_factory.d.ts +2 -0
  46. package/dist/factory/{stringFactory.js → string_factory.js} +4 -3
  47. package/dist/factory/string_factory.js.map +1 -0
  48. package/dist/mod.d.ts +11 -0
  49. package/dist/mod.js +39 -0
  50. package/dist/mod.js.map +1 -0
  51. package/dist/tsconfig.tsbuildinfo +1 -1
  52. package/dist/type/i_literal_wrapper_constructor.d.ts +4 -0
  53. package/dist/type/i_literal_wrapper_constructor.js +3 -0
  54. package/dist/type/i_literal_wrapper_constructor.js.map +1 -0
  55. package/dist/type/i_node_wrapper_constructor.d.ts +4 -0
  56. package/dist/type/i_node_wrapper_constructor.js +3 -0
  57. package/dist/type/i_node_wrapper_constructor.js.map +1 -0
  58. package/dist/type/i_term_type.d.ts +2 -0
  59. package/dist/type/i_term_type.js +3 -0
  60. package/dist/type/i_term_type.js.map +1 -0
  61. package/dist/type/i_wrapper_constructor.d.ts +3 -0
  62. package/dist/type/i_wrapper_constructor.js +3 -0
  63. package/dist/type/i_wrapper_constructor.js.map +1 -0
  64. package/dist/types.d.ts +4 -0
  65. package/dist/types.js +3 -0
  66. package/dist/types.js.map +1 -0
  67. package/package.json +38 -30
  68. package/dist/class/Wrapper.d.ts +0 -15
  69. package/dist/class/Wrapper.js +0 -56
  70. package/dist/class/Wrapper.js.map +0 -1
  71. package/dist/class/WrappingSet.js.map +0 -1
  72. package/dist/class/index.d.ts +0 -2
  73. package/dist/class/index.js +0 -15
  74. package/dist/class/index.js.map +0 -1
  75. package/dist/factory/index.d.ts +0 -1
  76. package/dist/factory/index.js +0 -14
  77. package/dist/factory/index.js.map +0 -1
  78. package/dist/factory/stringFactory.d.ts +0 -2
  79. package/dist/factory/stringFactory.js.map +0 -1
  80. package/dist/index.d.ts +0 -2
  81. package/dist/index.js +0 -15
  82. package/dist/index.js.map +0 -1
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2021 Matthieu Bosquet & Samu Lang
3
+ Copyright (c) 2022 Matthieu Bosquet & Samu Lang
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -1,13 +1,12 @@
1
1
  # RDF/JS Wrapper
2
2
 
3
- [![build](https://github.com/matthieubosquet/rdfjs-wrapper/workflows/build/badge.svg?branch=main)](https://github.com/matthieubosquet/rdfjs-wrapper/actions?query=workflow%3A"build")
3
+ [![Test Workflow](https://github.com/matthieubosquet/rdfjs-wrapper/workflows/Unit%20Tests/badge.svg?branch=main)](https://github.com/matthieubosquet/rdfjs-wrapper/actions/workflows/test-unit.yml?query=workflow%3AUnit%20Tests+branch%3Amain)
4
4
  [![npm](https://img.shields.io/npm/v/rdfjs-wrapper)](https://www.npmjs.com/package/rdfjs-wrapper)
5
5
 
6
6
  RDF/JS compliant graph wrapping library.
7
7
 
8
-
9
8
  ## See also
10
9
 
11
- * [RDF/JS Types](https://github.com/rdfjs/types)
12
- * [RDF/JS Data model specification](http://rdf.js.org/data-model-spec/)
13
- * [RDF/JS Stream interfaces](http://rdf.js.org/stream-spec/)
10
+ - [RDF/JS Types](https://github.com/rdfjs/types)
11
+ - [RDF/JS Data model specification](http://rdf.js.org/data-model-spec/)
12
+ - [RDF/JS Stream interfaces](http://rdf.js.org/stream-spec/)
@@ -0,0 +1,3 @@
1
+ import type { BlankNode, DataFactory, DatasetCore, NamedNode, Quad_Predicate } from "@rdfjs/types";
2
+ import type { ILiteralWrapperConstructor, INodeWrapperConstructor } from "../types";
3
+ export declare function getter<T>(term: BlankNode | NamedNode, dataset: DatasetCore, factory: DataFactory, property: Quad_Predicate, wrapper: INodeWrapperConstructor<T> | ILiteralWrapperConstructor<T>): T;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getter = void 0;
4
+ const node_wrapper_1 = require("../class/node_wrapper");
5
+ const wrapper_1 = require("../class/wrapper");
6
+ const cardinality_error_1 = require("../error/cardinality_error");
7
+ const missing_value_error_1 = require("../error/missing_value_error");
8
+ const term_type_error_1 = require("../error/term_type_error");
9
+ const wrapper_type_error_1 = require("../error/wrapper_type_error");
10
+ function isINodeWrapperConstructor(x) {
11
+ if (!(x.prototype instanceof node_wrapper_1.NodeWrapper)) {
12
+ throw new Error("Wrong constructor tyep");
13
+ }
14
+ }
15
+ function isILiteralWrapperConstructor(x) {
16
+ if (!(x.name === "LiteralWrapper")) {
17
+ throw new Error("Wrong constructor tyep");
18
+ }
19
+ }
20
+ function getter(term, dataset, factory, property, wrapper) {
21
+ const triples = dataset.match(term, property);
22
+ const iter = triples[Symbol.iterator]();
23
+ const triple = iter.next();
24
+ if (triple.done) {
25
+ throw new missing_value_error_1.MissingValueError(term.value, property.value);
26
+ }
27
+ if (!iter.next().done) {
28
+ throw new cardinality_error_1.CardinalityError(term.value, property.value, ">1", "1");
29
+ }
30
+ const { object } = triple.value;
31
+ if (object.termType !== "BlankNode" &&
32
+ object.termType !== "NamedNode" &&
33
+ object.termType !== "Literal") {
34
+ throw new term_type_error_1.TermTypeError(object.termType, "BlankNode, NamedNode or Literal");
35
+ }
36
+ if (!(wrapper.prototype instanceof wrapper_1.Wrapper)) {
37
+ throw new wrapper_type_error_1.WrapperTypeError(wrapper.toString());
38
+ }
39
+ if (object.termType === "BlankNode" || object.termType === "NamedNode") {
40
+ isINodeWrapperConstructor(wrapper);
41
+ // eslint-disable-next-line new-cap
42
+ return new wrapper(object, dataset, factory);
43
+ }
44
+ isILiteralWrapperConstructor(wrapper);
45
+ // eslint-disable-next-line new-cap
46
+ return new wrapper(object, dataset, factory);
47
+ }
48
+ exports.getter = getter;
49
+ //# sourceMappingURL=getter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getter.js","sourceRoot":"","sources":["../../src/algorithm/getter.ts"],"names":[],"mappings":";;;AAOA,wDAAoD;AACpD,8CAA2C;AAC3C,kEAA8D;AAC9D,sEAAiE;AACjE,8DAAyD;AACzD,oEAA+D;AAM/D,SAAS,yBAAyB,CAAI,CAErC;IACC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,YAAY,0BAAW,CAAC,EAAE;QACzC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;KAC3C;AACH,CAAC;AAED,SAAS,4BAA4B,CAAI,CAGxC;IACC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;KAC3C;AACH,CAAC;AAED,SAAgB,MAAM,CACpB,IAA2B,EAC3B,OAAoB,EACpB,OAAoB,EACpB,QAAwB,EACxB,OAAmE;IAEnE,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAE3B,IAAI,MAAM,CAAC,IAAI,EAAE;QACf,MAAM,IAAI,uCAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;KACzD;IAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE;QACrB,MAAM,IAAI,oCAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;KACnE;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IAEhC,IACE,MAAM,CAAC,QAAQ,KAAK,WAAW;QAC/B,MAAM,CAAC,QAAQ,KAAK,WAAW;QAC/B,MAAM,CAAC,QAAQ,KAAK,SAAS,EAC7B;QACA,MAAM,IAAI,+BAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,iCAAiC,CAAC,CAAC;KAC7E;IAED,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,YAAY,iBAAO,CAAC,EAAE;QAC3C,MAAM,IAAI,qCAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;KAChD;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,KAAK,WAAW,EAAE;QACtE,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACnC,mCAAmC;QACnC,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;KAC9C;IAED,4BAA4B,CAAC,OAAO,CAAC,CAAC;IACtC,mCAAmC;IACnC,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AA1CD,wBA0CC","sourcesContent":["import type {\n BlankNode,\n DataFactory,\n DatasetCore,\n NamedNode,\n Quad_Predicate,\n} from \"@rdfjs/types\";\nimport { NodeWrapper } from \"../class/node_wrapper\";\nimport { Wrapper } from \"../class/wrapper\";\nimport { CardinalityError } from \"../error/cardinality_error\";\nimport { MissingValueError } from \"../error/missing_value_error\";\nimport { TermTypeError } from \"../error/term_type_error\";\nimport { WrapperTypeError } from \"../error/wrapper_type_error\";\nimport type {\n ILiteralWrapperConstructor,\n INodeWrapperConstructor,\n} from \"../types\";\n\nfunction isINodeWrapperConstructor<T>(x: {\n prototype: unknown;\n}): asserts x is INodeWrapperConstructor<T> {\n if (!(x.prototype instanceof NodeWrapper)) {\n throw new Error(\"Wrong constructor tyep\");\n }\n}\n\nfunction isILiteralWrapperConstructor<T>(x: {\n name: string;\n prototype: unknown;\n}): asserts x is ILiteralWrapperConstructor<T> {\n if (!(x.name === \"LiteralWrapper\")) {\n throw new Error(\"Wrong constructor tyep\");\n }\n}\n\nexport function getter<T>(\n term: BlankNode | NamedNode,\n dataset: DatasetCore,\n factory: DataFactory,\n property: Quad_Predicate,\n wrapper: INodeWrapperConstructor<T> | ILiteralWrapperConstructor<T>\n): T {\n const triples = dataset.match(term, property);\n const iter = triples[Symbol.iterator]();\n const triple = iter.next();\n\n if (triple.done) {\n throw new MissingValueError(term.value, property.value);\n }\n\n if (!iter.next().done) {\n throw new CardinalityError(term.value, property.value, \">1\", \"1\");\n }\n\n const { object } = triple.value;\n\n if (\n object.termType !== \"BlankNode\" &&\n object.termType !== \"NamedNode\" &&\n object.termType !== \"Literal\"\n ) {\n throw new TermTypeError(object.termType, \"BlankNode, NamedNode or Literal\");\n }\n\n if (!(wrapper.prototype instanceof Wrapper)) {\n throw new WrapperTypeError(wrapper.toString());\n }\n\n if (object.termType === \"BlankNode\" || object.termType === \"NamedNode\") {\n isINodeWrapperConstructor(wrapper);\n // eslint-disable-next-line new-cap\n return new wrapper(object, dataset, factory);\n }\n\n isILiteralWrapperConstructor(wrapper);\n // eslint-disable-next-line new-cap\n return new wrapper(object, dataset, factory);\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import type { BlankNode, DataFactory, DatasetCore, NamedNode, Quad_Predicate } from "@rdfjs/types";
2
+ export declare function setLiteral(subject: BlankNode | NamedNode, dataset: DatasetCore, factory: DataFactory, property: Quad_Predicate, value: string): void;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setLiteral = void 0;
4
+ function setLiteral(subject, dataset, factory, property, value) {
5
+ // THIS IS FOR SINGLE PROPERTY
6
+ for (const q of dataset.match(subject, property)) {
7
+ dataset.delete(q);
8
+ }
9
+ dataset.add(factory.quad(subject, property, factory.literal(value)));
10
+ }
11
+ exports.setLiteral = setLiteral;
12
+ //# sourceMappingURL=set_literal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set_literal.js","sourceRoot":"","sources":["../../src/algorithm/set_literal.ts"],"names":[],"mappings":";;;AAQA,SAAgB,UAAU,CACxB,OAA8B,EAC9B,OAAoB,EACpB,OAAoB,EACpB,QAAwB,EACxB,KAAa;IAEb,8BAA8B;IAC9B,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;QAChD,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAbD,gCAaC","sourcesContent":["import type {\n BlankNode,\n DataFactory,\n DatasetCore,\n NamedNode,\n Quad_Predicate,\n} from \"@rdfjs/types\";\n\nexport function setLiteral(\n subject: BlankNode | NamedNode,\n dataset: DatasetCore,\n factory: DataFactory,\n property: Quad_Predicate,\n value: string\n): void {\n // THIS IS FOR SINGLE PROPERTY\n for (const q of dataset.match(subject, property)) {\n dataset.delete(q);\n }\n\n dataset.add(factory.quad(subject, property, factory.literal(value)));\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import type { BlankNode, DataFactory, DatasetCore, Literal, NamedNode, Quad_Predicate } from "@rdfjs/types";
2
+ export declare function setNode(subject: BlankNode | NamedNode, dataset: DatasetCore, factory: DataFactory, property: Quad_Predicate, value: {
3
+ term: BlankNode | NamedNode | Literal;
4
+ }): void;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setNode = void 0;
4
+ function setNode(subject, dataset, factory, property, value) {
5
+ // THIS IS FOR SINGLE NODE
6
+ for (const q of dataset.match(subject, property)) {
7
+ dataset.delete(q);
8
+ }
9
+ dataset.add(factory.quad(subject, property, value.term));
10
+ }
11
+ exports.setNode = setNode;
12
+ //# sourceMappingURL=set_node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set_node.js","sourceRoot":"","sources":["../../src/algorithm/set_node.ts"],"names":[],"mappings":";;;AASA,SAAgB,OAAO,CACrB,OAA8B,EAC9B,OAAoB,EACpB,OAAoB,EACpB,QAAwB,EACxB,KAAgD;IAEhD,0BAA0B;IAC1B,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;QAChD,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3D,CAAC;AAbD,0BAaC","sourcesContent":["import type {\n BlankNode,\n DataFactory,\n DatasetCore,\n Literal,\n NamedNode,\n Quad_Predicate,\n} from \"@rdfjs/types\";\n\nexport function setNode(\n subject: BlankNode | NamedNode,\n dataset: DatasetCore,\n factory: DataFactory,\n property: Quad_Predicate,\n value: { term: BlankNode | NamedNode | Literal }\n): void {\n // THIS IS FOR SINGLE NODE\n for (const q of dataset.match(subject, property)) {\n dataset.delete(q);\n }\n\n dataset.add(factory.quad(subject, property, value.term));\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import type { BlankNode, DataFactory, DatasetCore, Literal, NamedNode } from "@rdfjs/types";
2
+ import type { ILiteralWrapperConstructor, INodeWrapperConstructor } from "../types";
3
+ export declare function wrap<T>(term: BlankNode | NamedNode | Literal, dataset: DatasetCore, factory: DataFactory, wrapper: INodeWrapperConstructor<T> | ILiteralWrapperConstructor<T>): T;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.wrap = void 0;
4
+ const node_wrapper_1 = require("../class/node_wrapper");
5
+ const wrapper_1 = require("../class/wrapper");
6
+ const wrapper_type_error_1 = require("../error/wrapper_type_error");
7
+ function isINodeWrapperConstructor(x) {
8
+ if (!(x.prototype instanceof node_wrapper_1.NodeWrapper)) {
9
+ throw new Error("Wrong constructor tyep");
10
+ }
11
+ }
12
+ function isILiteralWrapperConstructor(x) {
13
+ if (!(x.name === "LiteralWrapper")) {
14
+ throw new Error("Wrong constructor tyep");
15
+ }
16
+ }
17
+ function wrap(term, dataset, factory, wrapper) {
18
+ if (!(wrapper.prototype instanceof wrapper_1.Wrapper)) {
19
+ throw new wrapper_type_error_1.WrapperTypeError(wrapper.toString());
20
+ }
21
+ if (term.termType === "BlankNode" || term.termType === "NamedNode") {
22
+ isINodeWrapperConstructor(wrapper);
23
+ // eslint-disable-next-line new-cap
24
+ return new wrapper(term, dataset, factory);
25
+ }
26
+ isILiteralWrapperConstructor(wrapper);
27
+ // eslint-disable-next-line new-cap
28
+ return new wrapper(term, dataset, factory);
29
+ }
30
+ exports.wrap = wrap;
31
+ //# sourceMappingURL=wrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrap.js","sourceRoot":"","sources":["../../src/algorithm/wrap.ts"],"names":[],"mappings":";;;AAOA,wDAAoD;AACpD,8CAA2C;AAC3C,oEAA+D;AAM/D,SAAS,yBAAyB,CAAI,CAErC;IACC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,YAAY,0BAAW,CAAC,EAAE;QACzC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;KAC3C;AACH,CAAC;AAED,SAAS,4BAA4B,CAAI,CAGxC;IACC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;KAC3C;AACH,CAAC;AAED,SAAgB,IAAI,CAClB,IAAqC,EACrC,OAAoB,EACpB,OAAoB,EACpB,OAAmE;IAEnE,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,YAAY,iBAAO,CAAC,EAAE;QAC3C,MAAM,IAAI,qCAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;KAChD;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE;QAClE,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACnC,mCAAmC;QACnC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;KAC5C;IAED,4BAA4B,CAAC,OAAO,CAAC,CAAC;IACtC,mCAAmC;IACnC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC;AAnBD,oBAmBC","sourcesContent":["import type {\n BlankNode,\n DataFactory,\n DatasetCore,\n Literal,\n NamedNode,\n} from \"@rdfjs/types\";\nimport { NodeWrapper } from \"../class/node_wrapper\";\nimport { Wrapper } from \"../class/wrapper\";\nimport { WrapperTypeError } from \"../error/wrapper_type_error\";\nimport type {\n ILiteralWrapperConstructor,\n INodeWrapperConstructor,\n} from \"../types\";\n\nfunction isINodeWrapperConstructor<T>(x: {\n prototype: unknown;\n}): asserts x is INodeWrapperConstructor<T> {\n if (!(x.prototype instanceof NodeWrapper)) {\n throw new Error(\"Wrong constructor tyep\");\n }\n}\n\nfunction isILiteralWrapperConstructor<T>(x: {\n name: string;\n prototype: unknown;\n}): asserts x is ILiteralWrapperConstructor<T> {\n if (!(x.name === \"LiteralWrapper\")) {\n throw new Error(\"Wrong constructor tyep\");\n }\n}\n\nexport function wrap<T>(\n term: BlankNode | NamedNode | Literal,\n dataset: DatasetCore,\n factory: DataFactory,\n wrapper: INodeWrapperConstructor<T> | ILiteralWrapperConstructor<T>\n): T {\n if (!(wrapper.prototype instanceof Wrapper)) {\n throw new WrapperTypeError(wrapper.toString());\n }\n\n if (term.termType === \"BlankNode\" || term.termType === \"NamedNode\") {\n isINodeWrapperConstructor(wrapper);\n // eslint-disable-next-line new-cap\n return new wrapper(term, dataset, factory);\n }\n\n isILiteralWrapperConstructor(wrapper);\n // eslint-disable-next-line new-cap\n return new wrapper(term, dataset, factory);\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import type { DataFactory, DatasetCore, Literal } from "@rdfjs/types";
2
+ import { Wrapper } from "./wrapper";
3
+ export declare class LiteralWrapper extends Wrapper {
4
+ term: Literal;
5
+ constructor(term: Literal, dataset: DatasetCore, factory: DataFactory);
6
+ get string(): string;
7
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LiteralWrapper = void 0;
4
+ const wrapper_1 = require("./wrapper");
5
+ class LiteralWrapper extends wrapper_1.Wrapper {
6
+ constructor(term, dataset, factory) {
7
+ super(term, dataset, factory);
8
+ this.term = term;
9
+ }
10
+ get string() {
11
+ return this.term.value;
12
+ }
13
+ }
14
+ exports.LiteralWrapper = LiteralWrapper;
15
+ //# sourceMappingURL=literal_wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"literal_wrapper.js","sourceRoot":"","sources":["../../src/class/literal_wrapper.ts"],"names":[],"mappings":";;;AACA,uCAAoC;AAEpC,MAAa,cAAe,SAAQ,iBAAO;IAGzC,YACE,IAAa,EACb,OAAoB,EACpB,OAAoB;QAEpB,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACzB,CAAC;CACF;AAfD,wCAeC","sourcesContent":["import type { DataFactory, DatasetCore, Literal } from \"@rdfjs/types\";\nimport { Wrapper } from \"./wrapper\";\n\nexport class LiteralWrapper extends Wrapper {\n public term: Literal;\n\n public constructor(\n term: Literal,\n dataset: DatasetCore,\n factory: DataFactory\n ) {\n super(term, dataset, factory);\n this.term = term;\n }\n\n get string(): string {\n return this.term.value;\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import type { BlankNode, DataFactory, DatasetCore, NamedNode } from "@rdfjs/types";
2
+ import { Wrapper } from "./wrapper";
3
+ export declare abstract class NodeWrapper extends Wrapper {
4
+ term: BlankNode | NamedNode;
5
+ constructor(term: BlankNode | NamedNode, dataset: DatasetCore, factory: DataFactory);
6
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NodeWrapper = void 0;
4
+ const wrapper_1 = require("./wrapper");
5
+ class NodeWrapper extends wrapper_1.Wrapper {
6
+ constructor(term, dataset, factory) {
7
+ super(term, dataset, factory);
8
+ this.term = term;
9
+ }
10
+ }
11
+ exports.NodeWrapper = NodeWrapper;
12
+ //# sourceMappingURL=node_wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node_wrapper.js","sourceRoot":"","sources":["../../src/class/node_wrapper.ts"],"names":[],"mappings":";;;AAMA,uCAAoC;AAEpC,MAAsB,WAAY,SAAQ,iBAAO;IAG/C,YACE,IAA2B,EAC3B,OAAoB,EACpB,OAAoB;QAEpB,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAXD,kCAWC","sourcesContent":["import type {\n BlankNode,\n DataFactory,\n DatasetCore,\n NamedNode,\n} from \"@rdfjs/types\";\nimport { Wrapper } from \"./wrapper\";\n\nexport abstract class NodeWrapper extends Wrapper {\n public term: BlankNode | NamedNode;\n\n public constructor(\n term: BlankNode | NamedNode,\n dataset: DatasetCore,\n factory: DataFactory\n ) {\n super(term, dataset, factory);\n this.term = term;\n }\n}\n"]}
@@ -0,0 +1,22 @@
1
+ import type { DataFactory, DatasetCore, BlankNode, NamedNode } from "@rdfjs/types";
2
+ import type { ILiteralWrapperConstructor } from "../type/i_literal_wrapper_constructor";
3
+ import type { INodeWrapperConstructor } from "../type/i_node_wrapper_constructor";
4
+ import { NodeWrapper } from "./node_wrapper";
5
+ import type { Wrapper } from "./wrapper";
6
+ export declare class PropertyWrapper<T extends Wrapper> extends NodeWrapper implements Set<T> {
7
+ private property;
8
+ private wrapper;
9
+ constructor(term: BlankNode | NamedNode, dataset: DatasetCore, factory: DataFactory, property: NamedNode, wrapper: INodeWrapperConstructor<T> | ILiteralWrapperConstructor<T>);
10
+ add(value: T | string | number): this;
11
+ clear(): void;
12
+ delete(value: T): boolean;
13
+ forEach(callbackfn: (item: T, index: T, set: Set<T>) => void, thisArg?: unknown): void;
14
+ has(value: T | string | number): boolean;
15
+ get size(): number;
16
+ [Symbol.iterator](): IterableIterator<T>;
17
+ entries(): IterableIterator<[T, T]>;
18
+ keys(): IterableIterator<T>;
19
+ values(): IterableIterator<T>;
20
+ get [Symbol.toStringTag](): string;
21
+ private convert;
22
+ }
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PropertyWrapper = void 0;
4
+ const wrap_1 = require("../algorithm/wrap");
5
+ const term_type_error_1 = require("../error/term_type_error");
6
+ const node_wrapper_1 = require("./node_wrapper");
7
+ class PropertyWrapper extends node_wrapper_1.NodeWrapper {
8
+ constructor(term, dataset, factory, property,
9
+ // eslint-disable-next-line no-shadow
10
+ wrapper) {
11
+ super(term, dataset, factory);
12
+ this.property = property;
13
+ this.wrapper = wrapper;
14
+ }
15
+ add(value) {
16
+ const q = this.factory.quad(this.term, this.property, this.convert(value));
17
+ this.dataset.add(q);
18
+ return this;
19
+ }
20
+ clear() {
21
+ for (const q of this.dataset.match(this.term, this.property)) {
22
+ this.dataset.delete(q);
23
+ }
24
+ }
25
+ delete(value) {
26
+ if (!this.has(value)) {
27
+ return false;
28
+ }
29
+ for (const q of this.dataset.match(this.term, this.property, this.convert(value))) {
30
+ this.dataset.delete(q);
31
+ }
32
+ return true;
33
+ }
34
+ forEach(callbackfn, thisArg) {
35
+ for (const item of this) {
36
+ callbackfn.call(thisArg, item, item, this);
37
+ }
38
+ }
39
+ has(value) {
40
+ return this.dataset.has(this.factory.quad(this.term, this.property, this.convert(value)));
41
+ }
42
+ get size() {
43
+ return Array.from(this).length;
44
+ }
45
+ [Symbol.iterator]() {
46
+ return this.values();
47
+ }
48
+ *entries() {
49
+ for (const t of this) {
50
+ yield [t, t];
51
+ }
52
+ }
53
+ keys() {
54
+ return this.values();
55
+ }
56
+ *values() {
57
+ for (const q of this.dataset.match(this.term, this.property)) {
58
+ if (q.object.termType !== "BlankNode" &&
59
+ q.object.termType !== "NamedNode" &&
60
+ q.object.termType !== "Literal") {
61
+ throw new term_type_error_1.TermTypeError(q.object.termType, "BlankNode, NamedNode or Literal");
62
+ }
63
+ // eslint-disable-next-line new-cap
64
+ yield (0, wrap_1.wrap)(q.object, this.dataset, this.factory, this.wrapper);
65
+ }
66
+ }
67
+ get [Symbol.toStringTag]() {
68
+ return `collection wrapper for subject ${this.term.value} predicate ${this.property.value}`;
69
+ }
70
+ convert(value) {
71
+ switch (typeof value) {
72
+ case "string":
73
+ return this.factory.literal(value);
74
+ case "number":
75
+ return this.factory.literal(value.toString(), this.factory.namedNode("xsd:int"));
76
+ default:
77
+ return value.term;
78
+ }
79
+ }
80
+ }
81
+ exports.PropertyWrapper = PropertyWrapper;
82
+ //# sourceMappingURL=property_wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"property_wrapper.js","sourceRoot":"","sources":["../../src/class/property_wrapper.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n DataFactory,\n DatasetCore,\n Quad_Object,\n BlankNode,\n NamedNode,\n} from \"@rdfjs/types\";\nimport { wrap } from \"../algorithm/wrap\";\nimport { TermTypeError } from \"../error/term_type_error\";\nimport type { ILiteralWrapperConstructor } from \"../type/i_literal_wrapper_constructor\";\nimport type { INodeWrapperConstructor } from \"../type/i_node_wrapper_constructor\";\nimport { NodeWrapper } from \"./node_wrapper\";\nimport type { Wrapper } from \"./wrapper\";\n\nexport class PropertyWrapper<T extends Wrapper>\n extends NodeWrapper\n implements Set<T>\n{\n private property: NamedNode;\n\n private wrapper: INodeWrapperConstructor<T> | ILiteralWrapperConstructor<T>;\n\n constructor(\n term: BlankNode | NamedNode,\n dataset: DatasetCore,\n factory: DataFactory,\n property: NamedNode,\n // eslint-disable-next-line no-shadow\n wrapper: INodeWrapperConstructor<T> | ILiteralWrapperConstructor<T>\n ) {\n super(term, dataset, factory);\n this.property = property;\n this.wrapper = wrapper;\n }\n\n public add(value: T | string | number): this {\n const q = this.factory.quad(this.term, this.property, this.convert(value));\n this.dataset.add(q);\n return this;\n }\n\n public clear(): void {\n for (const q of this.dataset.match(this.term, this.property)) {\n this.dataset.delete(q);\n }\n }\n\n public delete(value: T): boolean {\n if (!this.has(value)) {\n return false;\n }\n\n for (const q of this.dataset.match(\n this.term,\n this.property,\n this.convert(value)\n )) {\n this.dataset.delete(q);\n }\n return true;\n }\n\n public forEach(\n callbackfn: (item: T, index: T, set: Set<T>) => void,\n thisArg?: unknown\n ): void {\n for (const item of this) {\n callbackfn.call(thisArg, item, item, this);\n }\n }\n\n public has(value: T | string | number): boolean {\n return this.dataset.has(\n this.factory.quad(this.term, this.property, this.convert(value))\n );\n }\n\n public get size(): number {\n return Array.from(this).length;\n }\n\n public [Symbol.iterator](): IterableIterator<T> {\n return this.values();\n }\n\n public *entries(): IterableIterator<[T, T]> {\n for (const t of this) {\n yield [t, t];\n }\n }\n\n public keys(): IterableIterator<T> {\n return this.values();\n }\n\n public *values(): IterableIterator<T> {\n for (const q of this.dataset.match(this.term, this.property)) {\n if (\n q.object.termType !== \"BlankNode\" &&\n q.object.termType !== \"NamedNode\" &&\n q.object.termType !== \"Literal\"\n ) {\n throw new TermTypeError(\n q.object.termType,\n \"BlankNode, NamedNode or Literal\"\n );\n }\n // eslint-disable-next-line new-cap\n yield wrap(q.object, this.dataset, this.factory, this.wrapper);\n }\n }\n\n public get [Symbol.toStringTag](): string {\n return `collection wrapper for subject ${this.term.value} predicate ${this.property.value}`;\n }\n\n private convert(value: T | string | number): Quad_Object {\n switch (typeof value) {\n case \"string\":\n return this.factory.literal(value);\n\n case \"number\":\n return this.factory.literal(\n value.toString(),\n this.factory.namedNode(\"xsd:int\")\n );\n\n default:\n return value.term;\n }\n }\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import type { BlankNode, DataFactory, DatasetCore, Literal, NamedNode } from "@rdfjs/types";
2
+ export declare abstract class Wrapper {
3
+ term: BlankNode | NamedNode | Literal;
4
+ protected dataset: DatasetCore;
5
+ protected factory: DataFactory;
6
+ constructor(term: BlankNode | NamedNode | Literal, dataset: DatasetCore, factory: DataFactory);
7
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Wrapper = void 0;
4
+ class Wrapper {
5
+ constructor(term, dataset, factory) {
6
+ this.term = term;
7
+ this.dataset = dataset;
8
+ this.factory = factory;
9
+ }
10
+ }
11
+ exports.Wrapper = Wrapper;
12
+ //# sourceMappingURL=wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../src/class/wrapper.ts"],"names":[],"mappings":";;;AAQA,MAAsB,OAAO;IAO3B,YACE,IAAqC,EACrC,OAAoB,EACpB,OAAoB;QAEpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAhBD,0BAgBC","sourcesContent":["import type {\n BlankNode,\n DataFactory,\n DatasetCore,\n Literal,\n NamedNode,\n} from \"@rdfjs/types\";\n\nexport abstract class Wrapper {\n public term: BlankNode | NamedNode | Literal;\n\n protected dataset: DatasetCore;\n\n protected factory: DataFactory;\n\n public constructor(\n term: BlankNode | NamedNode | Literal,\n dataset: DatasetCore,\n factory: DataFactory\n ) {\n this.term = term;\n this.dataset = dataset;\n this.factory = factory;\n }\n}\n"]}
@@ -1,17 +1,15 @@
1
- import type { DataFactory, Quad_Subject, Quad_Predicate, DatasetCore, Term } from "@rdfjs/types";
1
+ import type { DataFactory, Quad_Predicate, DatasetCore, Term, Quad_Object, BlankNode, NamedNode } from "@rdfjs/types";
2
+ import { NodeWrapper } from "./node_wrapper";
2
3
  export declare class WrappingSet<T extends {
3
- term: Quad_Subject;
4
- } | string | number> implements Set<T> {
5
- private subject;
6
- private predicate;
7
- private dataset;
8
- private factory;
4
+ term: Quad_Object;
5
+ } | string | number> extends NodeWrapper implements Set<T> {
6
+ private property;
9
7
  private valueFactory;
10
- constructor(subject: Quad_Subject, predicate: Quad_Predicate, dataset: DatasetCore, factory: DataFactory, valueFactory: (term: Term, dataset: DatasetCore) => T);
8
+ constructor(term: BlankNode | NamedNode, dataset: DatasetCore, factory: DataFactory, property: Quad_Predicate, valueFactory: (term: Term, dataset?: DatasetCore) => T);
11
9
  add(value: T): this;
12
10
  clear(): void;
13
11
  delete(value: T): boolean;
14
- forEach(callbackfn: (item: T, index: T, set: Set<T>) => void, thisArg?: any): void;
12
+ forEach(callbackfn: (item: T, index: T, set: Set<T>) => void, thisArg?: unknown): void;
15
13
  has(value: T): boolean;
16
14
  get size(): number;
17
15
  [Symbol.iterator](): IterableIterator<T>;
@@ -1,21 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WrappingSet = void 0;
4
- class WrappingSet {
5
- constructor(subject, predicate, dataset, factory, valueFactory) {
6
- this.subject = subject;
7
- this.predicate = predicate;
8
- this.dataset = dataset;
9
- this.factory = factory;
4
+ const node_wrapper_1 = require("./node_wrapper");
5
+ class WrappingSet extends node_wrapper_1.NodeWrapper {
6
+ constructor(term, dataset, factory, property,
7
+ // eslint-disable-next-line no-shadow
8
+ valueFactory) {
9
+ super(term, dataset, factory);
10
+ this.property = property;
10
11
  this.valueFactory = valueFactory;
11
12
  }
12
13
  add(value) {
13
- const q = this.factory.quad(this.subject, this.predicate, this.convert(value));
14
+ const q = this.factory.quad(this.term, this.property, this.convert(value));
14
15
  this.dataset.add(q);
15
16
  return this;
16
17
  }
17
18
  clear() {
18
- for (const q of this.dataset.match(this.subject, this.predicate)) {
19
+ for (const q of this.dataset.match(this.term, this.property)) {
19
20
  this.dataset.delete(q);
20
21
  }
21
22
  }
@@ -23,7 +24,7 @@ class WrappingSet {
23
24
  if (!this.has(value)) {
24
25
  return false;
25
26
  }
26
- for (const q of this.dataset.match(this.subject, this.predicate, this.convert(value))) {
27
+ for (const q of this.dataset.match(this.term, this.property, this.convert(value))) {
27
28
  this.dataset.delete(q);
28
29
  }
29
30
  return true;
@@ -34,12 +35,11 @@ class WrappingSet {
34
35
  }
35
36
  }
36
37
  has(value) {
37
- return this.dataset.has(this.factory.quad(this.subject, this.predicate, this.convert(value)));
38
+ return this.dataset.has(this.factory.quad(this.term, this.property, this.convert(value)));
38
39
  }
39
40
  get size() {
40
41
  return Array.from(this).length;
41
42
  }
42
- ;
43
43
  [Symbol.iterator]() {
44
44
  return this.values();
45
45
  }
@@ -52,12 +52,12 @@ class WrappingSet {
52
52
  return this.values();
53
53
  }
54
54
  *values() {
55
- for (const q of this.dataset.match(this.subject, this.predicate)) {
55
+ for (const q of this.dataset.match(this.term, this.property)) {
56
56
  yield this.valueFactory(q.object, this.dataset);
57
57
  }
58
58
  }
59
59
  get [Symbol.toStringTag]() {
60
- return `collection wrapper for subject ${this.subject} predicate ${this.predicate}`;
60
+ return `collection wrapper for subject ${this.term.value} predicate ${this.property.value}`;
61
61
  }
62
62
  convert(value) {
63
63
  switch (typeof value) {
@@ -71,4 +71,4 @@ class WrappingSet {
71
71
  }
72
72
  }
73
73
  exports.WrappingSet = WrappingSet;
74
- //# sourceMappingURL=WrappingSet.js.map
74
+ //# sourceMappingURL=wrapping_set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapping_set.js","sourceRoot":"","sources":["../../src/class/wrapping_set.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n DataFactory,\n Quad_Subject,\n Quad_Predicate,\n DatasetCore,\n Term,\n Quad_Object,\n BlankNode,\n NamedNode,\n} from \"@rdfjs/types\";\nimport { NodeWrapper } from \"./node_wrapper\";\n\nexport class WrappingSet<T extends { term: Quad_Object } | string | number>\n extends NodeWrapper\n implements Set<T>\n{\n private property: Quad_Predicate;\n\n private valueFactory: (term: Term, dataset?: DatasetCore) => T;\n\n constructor(\n term: BlankNode | NamedNode,\n dataset: DatasetCore,\n factory: DataFactory,\n property: Quad_Predicate,\n // eslint-disable-next-line no-shadow\n valueFactory: (term: Term, dataset?: DatasetCore) => T\n ) {\n super(term, dataset, factory);\n this.property = property;\n this.valueFactory = valueFactory;\n }\n\n public add(value: T): this {\n const q = this.factory.quad(this.term, this.property, this.convert(value));\n this.dataset.add(q);\n return this;\n }\n\n public clear(): void {\n for (const q of this.dataset.match(this.term, this.property)) {\n this.dataset.delete(q);\n }\n }\n\n public delete(value: T): boolean {\n if (!this.has(value)) {\n return false;\n }\n\n for (const q of this.dataset.match(\n this.term,\n this.property,\n this.convert(value)\n )) {\n this.dataset.delete(q);\n }\n return true;\n }\n\n public forEach(\n callbackfn: (item: T, index: T, set: Set<T>) => void,\n thisArg?: unknown\n ): void {\n for (const item of this) {\n callbackfn.call(thisArg, item, item, this);\n }\n }\n\n public has(value: T): boolean {\n return this.dataset.has(\n this.factory.quad(this.term, this.property, this.convert(value))\n );\n }\n\n public get size(): number {\n return Array.from(this).length;\n }\n\n public [Symbol.iterator](): IterableIterator<T> {\n return this.values();\n }\n\n public *entries(): IterableIterator<[T, T]> {\n for (const t of this) {\n yield [t, t];\n }\n }\n\n public keys(): IterableIterator<T> {\n return this.values();\n }\n\n public *values(): IterableIterator<T> {\n for (const q of this.dataset.match(this.term, this.property)) {\n yield this.valueFactory(q.object, this.dataset);\n }\n }\n\n public get [Symbol.toStringTag](): string {\n return `collection wrapper for subject ${this.term.value} predicate ${this.property.value}`;\n }\n\n private convert(value: T): Quad_Object {\n switch (typeof value) {\n case \"string\":\n return this.factory.literal(value);\n\n case \"number\":\n return this.factory.literal(\n value.toString(),\n this.factory.namedNode(\"xsd:int\")\n );\n\n default:\n return (value as { term: Quad_Subject }).term;\n }\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ export declare const TERM_TYPE: Set<string>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TERM_TYPE = void 0;
4
+ exports.TERM_TYPE = new Set([
5
+ "NamedNode",
6
+ "BlankNode",
7
+ "Literal",
8
+ "Variable",
9
+ "DefaultGraph",
10
+ "BaseQuad",
11
+ ]);
12
+ //# sourceMappingURL=term_type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"term_type.js","sourceRoot":"","sources":["../../src/constant/term_type.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,IAAI,GAAG,CAAC;IAC/B,WAAW;IACX,WAAW;IACX,SAAS;IACT,UAAU;IACV,cAAc;IACd,UAAU;CACX,CAAC,CAAC","sourcesContent":["export const TERM_TYPE = new Set([\n \"NamedNode\",\n \"BlankNode\",\n \"Literal\",\n \"Variable\",\n \"DefaultGraph\",\n \"BaseQuad\",\n]);\n"]}
@@ -0,0 +1,3 @@
1
+ export declare class CardinalityError extends Error {
2
+ constructor(subject: string, property: string, actual: string, expected: string);
3
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CardinalityError = void 0;
4
+ class CardinalityError extends Error {
5
+ constructor(subject, property, actual, expected) {
6
+ super(`Wrong cardinality for subject ${subject}, property ${property}.\nActual: ${actual}\nExpected: ${expected}`);
7
+ }
8
+ }
9
+ exports.CardinalityError = CardinalityError;
10
+ //# sourceMappingURL=cardinality_error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cardinality_error.js","sourceRoot":"","sources":["../../src/error/cardinality_error.ts"],"names":[],"mappings":";;;AAAA,MAAa,gBAAiB,SAAQ,KAAK;IACzC,YACE,OAAe,EACf,QAAgB,EAChB,MAAc,EACd,QAAgB;QAEhB,KAAK,CACH,iCAAiC,OAAO,cAAc,QAAQ,cAAc,MAAM,eAAe,QAAQ,EAAE,CAC5G,CAAC;IACJ,CAAC;CACF;AAXD,4CAWC","sourcesContent":["export class CardinalityError extends Error {\n constructor(\n subject: string,\n property: string,\n actual: string,\n expected: string\n ) {\n super(\n `Wrong cardinality for subject ${subject}, property ${property}.\\nActual: ${actual}\\nExpected: ${expected}`\n );\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export declare class MissingValueError extends Error {
2
+ constructor(subject: string, property: string);
3
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MissingValueError = void 0;
4
+ class MissingValueError extends Error {
5
+ constructor(subject, property) {
6
+ super(`The subject ${subject} has no value for property ${property}.`);
7
+ }
8
+ }
9
+ exports.MissingValueError = MissingValueError;
10
+ //# sourceMappingURL=missing_value_error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"missing_value_error.js","sourceRoot":"","sources":["../../src/error/missing_value_error.ts"],"names":[],"mappings":";;;AAAA,MAAa,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAe,EAAE,QAAgB;QAC3C,KAAK,CAAC,eAAe,OAAO,8BAA8B,QAAQ,GAAG,CAAC,CAAC;IACzE,CAAC;CACF;AAJD,8CAIC","sourcesContent":["export class MissingValueError extends Error {\n constructor(subject: string, property: string) {\n super(`The subject ${subject} has no value for property ${property}.`);\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export declare class TermTypeError extends Error {
2
+ constructor(actual: string, expected: string);
3
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TermTypeError = void 0;
4
+ class TermTypeError extends Error {
5
+ constructor(actual, expected) {
6
+ super(`The term is not of the expected type.\nActual: ${actual}\nExpected: ${expected}`);
7
+ }
8
+ }
9
+ exports.TermTypeError = TermTypeError;
10
+ //# sourceMappingURL=term_type_error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"term_type_error.js","sourceRoot":"","sources":["../../src/error/term_type_error.ts"],"names":[],"mappings":";;;AAAA,MAAa,aAAc,SAAQ,KAAK;IACtC,YAAY,MAAc,EAAE,QAAgB;QAC1C,KAAK,CACH,kDAAkD,MAAM,eAAe,QAAQ,EAAE,CAClF,CAAC;IACJ,CAAC;CACF;AAND,sCAMC","sourcesContent":["export class TermTypeError extends Error {\n constructor(actual: string, expected: string) {\n super(\n `The term is not of the expected type.\\nActual: ${actual}\\nExpected: ${expected}`\n );\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export declare class WrapperTypeError extends Error {
2
+ constructor(actual: string);
3
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WrapperTypeError = void 0;
4
+ class WrapperTypeError extends Error {
5
+ constructor(actual) {
6
+ super(`Wrapper should extend Wrapper.\nActual: ${actual}`);
7
+ }
8
+ }
9
+ exports.WrapperTypeError = WrapperTypeError;
10
+ //# sourceMappingURL=wrapper_type_error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapper_type_error.js","sourceRoot":"","sources":["../../src/error/wrapper_type_error.ts"],"names":[],"mappings":";;;AAAA,MAAa,gBAAiB,SAAQ,KAAK;IACzC,YAAY,MAAc;QACxB,KAAK,CAAC,2CAA2C,MAAM,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF;AAJD,4CAIC","sourcesContent":["export class WrapperTypeError extends Error {\n constructor(actual: string) {\n super(`Wrapper should extend Wrapper.\\nActual: ${actual}`);\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import type { Term } from "@rdfjs/types";
2
+ export declare function stringFactory(term: Term): string;