@_linked/core 2.12.0 → 2.13.0-next.20260706164859

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 (246) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/lib/esm/queries/IRPipeline.d.ts +7 -1
  3. package/lib/esm/queries/IRPipeline.js +20 -6
  4. package/lib/esm/queries/IRPipeline.js.map +1 -1
  5. package/lib/esm/queries/queryDispatch.js +12 -2
  6. package/lib/esm/queries/queryDispatch.js.map +1 -1
  7. package/package.json +10 -13
  8. package/lib/cjs/collections/CoreSet.d.ts +0 -47
  9. package/lib/cjs/collections/CoreSet.js +0 -136
  10. package/lib/cjs/collections/CoreSet.js.map +0 -1
  11. package/lib/cjs/collections/ShapeSet.d.ts +0 -6
  12. package/lib/cjs/collections/ShapeSet.js +0 -20
  13. package/lib/cjs/collections/ShapeSet.js.map +0 -1
  14. package/lib/cjs/expressions/Expr.d.ts +0 -29
  15. package/lib/cjs/expressions/Expr.js +0 -80
  16. package/lib/cjs/expressions/Expr.js.map +0 -1
  17. package/lib/cjs/expressions/ExpressionMethods.d.ts +0 -85
  18. package/lib/cjs/expressions/ExpressionMethods.js +0 -3
  19. package/lib/cjs/expressions/ExpressionMethods.js.map +0 -1
  20. package/lib/cjs/expressions/ExpressionNode.d.ts +0 -144
  21. package/lib/cjs/expressions/ExpressionNode.js +0 -432
  22. package/lib/cjs/expressions/ExpressionNode.js.map +0 -1
  23. package/lib/cjs/index.d.ts +0 -29
  24. package/lib/cjs/index.js +0 -65
  25. package/lib/cjs/index.js.map +0 -1
  26. package/lib/cjs/interfaces/ICoreIterable.d.ts +0 -14
  27. package/lib/cjs/interfaces/ICoreIterable.js +0 -3
  28. package/lib/cjs/interfaces/ICoreIterable.js.map +0 -1
  29. package/lib/cjs/interfaces/IDataset.d.ts +0 -26
  30. package/lib/cjs/interfaces/IDataset.js +0 -3
  31. package/lib/cjs/interfaces/IDataset.js.map +0 -1
  32. package/lib/cjs/interfaces/IFileStore.d.ts +0 -16
  33. package/lib/cjs/interfaces/IFileStore.js +0 -3
  34. package/lib/cjs/interfaces/IFileStore.js.map +0 -1
  35. package/lib/cjs/ontologies/linked-core.d.ts +0 -15
  36. package/lib/cjs/ontologies/linked-core.js +0 -38
  37. package/lib/cjs/ontologies/linked-core.js.map +0 -1
  38. package/lib/cjs/ontologies/npm.d.ts +0 -6
  39. package/lib/cjs/ontologies/npm.js +0 -15
  40. package/lib/cjs/ontologies/npm.js.map +0 -1
  41. package/lib/cjs/ontologies/owl.d.ts +0 -14
  42. package/lib/cjs/ontologies/owl.js +0 -21
  43. package/lib/cjs/ontologies/owl.js.map +0 -1
  44. package/lib/cjs/ontologies/rdf.d.ts +0 -13
  45. package/lib/cjs/ontologies/rdf.js +0 -27
  46. package/lib/cjs/ontologies/rdf.js.map +0 -1
  47. package/lib/cjs/ontologies/rdfs.d.ts +0 -16
  48. package/lib/cjs/ontologies/rdfs.js +0 -33
  49. package/lib/cjs/ontologies/rdfs.js.map +0 -1
  50. package/lib/cjs/ontologies/shacl.d.ts +0 -103
  51. package/lib/cjs/ontologies/shacl.js +0 -152
  52. package/lib/cjs/ontologies/shacl.js.map +0 -1
  53. package/lib/cjs/ontologies/xsd.d.ts +0 -19
  54. package/lib/cjs/ontologies/xsd.js +0 -41
  55. package/lib/cjs/ontologies/xsd.js.map +0 -1
  56. package/lib/cjs/package.d.ts +0 -4
  57. package/lib/cjs/package.js +0 -6
  58. package/lib/cjs/package.js.map +0 -1
  59. package/lib/cjs/package.json +0 -9
  60. package/lib/cjs/paths/PropertyPathExpr.d.ts +0 -38
  61. package/lib/cjs/paths/PropertyPathExpr.js +0 -221
  62. package/lib/cjs/paths/PropertyPathExpr.js.map +0 -1
  63. package/lib/cjs/paths/normalizePropertyPath.d.ts +0 -23
  64. package/lib/cjs/paths/normalizePropertyPath.js +0 -75
  65. package/lib/cjs/paths/normalizePropertyPath.js.map +0 -1
  66. package/lib/cjs/paths/pathExprToSparql.d.ts +0 -14
  67. package/lib/cjs/paths/pathExprToSparql.js +0 -136
  68. package/lib/cjs/paths/pathExprToSparql.js.map +0 -1
  69. package/lib/cjs/queries/ContextRef.d.ts +0 -32
  70. package/lib/cjs/queries/ContextRef.js +0 -69
  71. package/lib/cjs/queries/ContextRef.js.map +0 -1
  72. package/lib/cjs/queries/CreateBuilder.d.ts +0 -59
  73. package/lib/cjs/queries/CreateBuilder.js +0 -138
  74. package/lib/cjs/queries/CreateBuilder.js.map +0 -1
  75. package/lib/cjs/queries/CreateQuery.d.ts +0 -20
  76. package/lib/cjs/queries/CreateQuery.js +0 -3
  77. package/lib/cjs/queries/CreateQuery.js.map +0 -1
  78. package/lib/cjs/queries/DeleteBuilder.d.ts +0 -56
  79. package/lib/cjs/queries/DeleteBuilder.js +0 -172
  80. package/lib/cjs/queries/DeleteBuilder.js.map +0 -1
  81. package/lib/cjs/queries/DeleteQuery.d.ts +0 -37
  82. package/lib/cjs/queries/DeleteQuery.js +0 -3
  83. package/lib/cjs/queries/DeleteQuery.js.map +0 -1
  84. package/lib/cjs/queries/DslJsonExpression.d.ts +0 -68
  85. package/lib/cjs/queries/DslJsonExpression.js +0 -427
  86. package/lib/cjs/queries/DslJsonExpression.js.map +0 -1
  87. package/lib/cjs/queries/FieldSet.d.ts +0 -310
  88. package/lib/cjs/queries/FieldSet.js +0 -802
  89. package/lib/cjs/queries/FieldSet.js.map +0 -1
  90. package/lib/cjs/queries/IRAliasScope.d.ts +0 -20
  91. package/lib/cjs/queries/IRAliasScope.js +0 -52
  92. package/lib/cjs/queries/IRAliasScope.js.map +0 -1
  93. package/lib/cjs/queries/IRCanonicalize.d.ts +0 -19
  94. package/lib/cjs/queries/IRCanonicalize.js +0 -19
  95. package/lib/cjs/queries/IRCanonicalize.js.map +0 -1
  96. package/lib/cjs/queries/IRDesugar.d.ts +0 -123
  97. package/lib/cjs/queries/IRDesugar.js +0 -261
  98. package/lib/cjs/queries/IRDesugar.js.map +0 -1
  99. package/lib/cjs/queries/IRLower.d.ts +0 -25
  100. package/lib/cjs/queries/IRLower.js +0 -398
  101. package/lib/cjs/queries/IRLower.js.map +0 -1
  102. package/lib/cjs/queries/IRMutation.d.ts +0 -53
  103. package/lib/cjs/queries/IRMutation.js +0 -130
  104. package/lib/cjs/queries/IRMutation.js.map +0 -1
  105. package/lib/cjs/queries/IRPipeline.d.ts +0 -8
  106. package/lib/cjs/queries/IRPipeline.js +0 -25
  107. package/lib/cjs/queries/IRPipeline.js.map +0 -1
  108. package/lib/cjs/queries/IRProjection.d.ts +0 -39
  109. package/lib/cjs/queries/IRProjection.js +0 -105
  110. package/lib/cjs/queries/IRProjection.js.map +0 -1
  111. package/lib/cjs/queries/IntermediateRepresentation.d.ts +0 -282
  112. package/lib/cjs/queries/IntermediateRepresentation.js +0 -3
  113. package/lib/cjs/queries/IntermediateRepresentation.js.map +0 -1
  114. package/lib/cjs/queries/MutationQuery.d.ts +0 -50
  115. package/lib/cjs/queries/MutationQuery.js +0 -334
  116. package/lib/cjs/queries/MutationQuery.js.map +0 -1
  117. package/lib/cjs/queries/MutationSerialization.d.ts +0 -102
  118. package/lib/cjs/queries/MutationSerialization.js +0 -207
  119. package/lib/cjs/queries/MutationSerialization.js.map +0 -1
  120. package/lib/cjs/queries/MutationThenable.d.ts +0 -18
  121. package/lib/cjs/queries/MutationThenable.js +0 -32
  122. package/lib/cjs/queries/MutationThenable.js.map +0 -1
  123. package/lib/cjs/queries/PropertyPath.d.ts +0 -38
  124. package/lib/cjs/queries/PropertyPath.js +0 -82
  125. package/lib/cjs/queries/PropertyPath.js.map +0 -1
  126. package/lib/cjs/queries/ProxiedPathBuilder.d.ts +0 -14
  127. package/lib/cjs/queries/ProxiedPathBuilder.js +0 -29
  128. package/lib/cjs/queries/ProxiedPathBuilder.js.map +0 -1
  129. package/lib/cjs/queries/QueryBuilder.d.ts +0 -193
  130. package/lib/cjs/queries/QueryBuilder.js +0 -519
  131. package/lib/cjs/queries/QueryBuilder.js.map +0 -1
  132. package/lib/cjs/queries/QueryBuilderSerialization.d.ts +0 -31
  133. package/lib/cjs/queries/QueryBuilderSerialization.js +0 -68
  134. package/lib/cjs/queries/QueryBuilderSerialization.js.map +0 -1
  135. package/lib/cjs/queries/QueryContext.d.ts +0 -50
  136. package/lib/cjs/queries/QueryContext.js +0 -147
  137. package/lib/cjs/queries/QueryContext.js.map +0 -1
  138. package/lib/cjs/queries/QueryFactory.d.ts +0 -80
  139. package/lib/cjs/queries/QueryFactory.js +0 -21
  140. package/lib/cjs/queries/QueryFactory.js.map +0 -1
  141. package/lib/cjs/queries/SelectQuery.d.ts +0 -302
  142. package/lib/cjs/queries/SelectQuery.js +0 -761
  143. package/lib/cjs/queries/SelectQuery.js.map +0 -1
  144. package/lib/cjs/queries/UpdateBuilder.d.ts +0 -69
  145. package/lib/cjs/queries/UpdateBuilder.js +0 -199
  146. package/lib/cjs/queries/UpdateBuilder.js.map +0 -1
  147. package/lib/cjs/queries/UpdateQuery.d.ts +0 -18
  148. package/lib/cjs/queries/UpdateQuery.js +0 -3
  149. package/lib/cjs/queries/UpdateQuery.js.map +0 -1
  150. package/lib/cjs/queries/fromJSON.d.ts +0 -16
  151. package/lib/cjs/queries/fromJSON.js +0 -41
  152. package/lib/cjs/queries/fromJSON.js.map +0 -1
  153. package/lib/cjs/queries/lower.d.ts +0 -28
  154. package/lib/cjs/queries/lower.js +0 -114
  155. package/lib/cjs/queries/lower.js.map +0 -1
  156. package/lib/cjs/queries/lowerMutationJSON.d.ts +0 -25
  157. package/lib/cjs/queries/lowerMutationJSON.js +0 -173
  158. package/lib/cjs/queries/lowerMutationJSON.js.map +0 -1
  159. package/lib/cjs/queries/mutationLowerSpec.d.ts +0 -32
  160. package/lib/cjs/queries/mutationLowerSpec.js +0 -8
  161. package/lib/cjs/queries/mutationLowerSpec.js.map +0 -1
  162. package/lib/cjs/queries/queryDispatch.d.ts +0 -33
  163. package/lib/cjs/queries/queryDispatch.js +0 -33
  164. package/lib/cjs/queries/queryDispatch.js.map +0 -1
  165. package/lib/cjs/queries/resolveShape.d.ts +0 -10
  166. package/lib/cjs/queries/resolveShape.js +0 -23
  167. package/lib/cjs/queries/resolveShape.js.map +0 -1
  168. package/lib/cjs/queries/wireVersion.d.ts +0 -7
  169. package/lib/cjs/queries/wireVersion.js +0 -25
  170. package/lib/cjs/queries/wireVersion.js.map +0 -1
  171. package/lib/cjs/shapes/List.d.ts +0 -35
  172. package/lib/cjs/shapes/List.js +0 -72
  173. package/lib/cjs/shapes/List.js.map +0 -1
  174. package/lib/cjs/shapes/PathNode.d.ts +0 -20
  175. package/lib/cjs/shapes/PathNode.js +0 -68
  176. package/lib/cjs/shapes/PathNode.js.map +0 -1
  177. package/lib/cjs/shapes/SHACL.d.ts +0 -300
  178. package/lib/cjs/shapes/SHACL.js +0 -612
  179. package/lib/cjs/shapes/SHACL.js.map +0 -1
  180. package/lib/cjs/shapes/Shape.d.ts +0 -74
  181. package/lib/cjs/shapes/Shape.js +0 -124
  182. package/lib/cjs/shapes/Shape.js.map +0 -1
  183. package/lib/cjs/shapes/serializePathToNodeData.d.ts +0 -24
  184. package/lib/cjs/shapes/serializePathToNodeData.js +0 -67
  185. package/lib/cjs/shapes/serializePathToNodeData.js.map +0 -1
  186. package/lib/cjs/shapes/syncShapes.d.ts +0 -38
  187. package/lib/cjs/shapes/syncShapes.js +0 -214
  188. package/lib/cjs/shapes/syncShapes.js.map +0 -1
  189. package/lib/cjs/sparql/SparqlAlgebra.d.ts +0 -190
  190. package/lib/cjs/sparql/SparqlAlgebra.js +0 -4
  191. package/lib/cjs/sparql/SparqlAlgebra.js.map +0 -1
  192. package/lib/cjs/sparql/SparqlDataset.d.ts +0 -60
  193. package/lib/cjs/sparql/SparqlDataset.js +0 -117
  194. package/lib/cjs/sparql/SparqlDataset.js.map +0 -1
  195. package/lib/cjs/sparql/algebraToString.d.ts +0 -13
  196. package/lib/cjs/sparql/algebraToString.js +0 -385
  197. package/lib/cjs/sparql/algebraToString.js.map +0 -1
  198. package/lib/cjs/sparql/index.d.ts +0 -9
  199. package/lib/cjs/sparql/index.js +0 -41
  200. package/lib/cjs/sparql/index.js.map +0 -1
  201. package/lib/cjs/sparql/irToAlgebra.d.ts +0 -79
  202. package/lib/cjs/sparql/irToAlgebra.js +0 -2042
  203. package/lib/cjs/sparql/irToAlgebra.js.map +0 -1
  204. package/lib/cjs/sparql/resultMapping.d.ts +0 -36
  205. package/lib/cjs/sparql/resultMapping.js +0 -563
  206. package/lib/cjs/sparql/resultMapping.js.map +0 -1
  207. package/lib/cjs/sparql/sparqlUtils.d.ts +0 -53
  208. package/lib/cjs/sparql/sparqlUtils.js +0 -154
  209. package/lib/cjs/sparql/sparqlUtils.js.map +0 -1
  210. package/lib/cjs/utils/LinkedErrorLogging.d.ts +0 -13
  211. package/lib/cjs/utils/LinkedErrorLogging.js +0 -22
  212. package/lib/cjs/utils/LinkedErrorLogging.js.map +0 -1
  213. package/lib/cjs/utils/LinkedFileStorage.d.ts +0 -23
  214. package/lib/cjs/utils/LinkedFileStorage.js +0 -62
  215. package/lib/cjs/utils/LinkedFileStorage.js.map +0 -1
  216. package/lib/cjs/utils/LinkedStorage.d.ts +0 -40
  217. package/lib/cjs/utils/LinkedStorage.js +0 -148
  218. package/lib/cjs/utils/LinkedStorage.js.map +0 -1
  219. package/lib/cjs/utils/NameSpace.d.ts +0 -2
  220. package/lib/cjs/utils/NameSpace.js +0 -8
  221. package/lib/cjs/utils/NameSpace.js.map +0 -1
  222. package/lib/cjs/utils/NodeReference.d.ts +0 -30
  223. package/lib/cjs/utils/NodeReference.js +0 -54
  224. package/lib/cjs/utils/NodeReference.js.map +0 -1
  225. package/lib/cjs/utils/Package.d.ts +0 -153
  226. package/lib/cjs/utils/Package.js +0 -419
  227. package/lib/cjs/utils/Package.js.map +0 -1
  228. package/lib/cjs/utils/Prefix.d.ts +0 -22
  229. package/lib/cjs/utils/Prefix.js +0 -104
  230. package/lib/cjs/utils/Prefix.js.map +0 -1
  231. package/lib/cjs/utils/ShapeClass.d.ts +0 -30
  232. package/lib/cjs/utils/ShapeClass.js +0 -180
  233. package/lib/cjs/utils/ShapeClass.js.map +0 -1
  234. package/lib/cjs/utils/URI.d.ts +0 -18
  235. package/lib/cjs/utils/URI.js +0 -42
  236. package/lib/cjs/utils/URI.js.map +0 -1
  237. package/lib/cjs/utils/cached.d.ts +0 -14
  238. package/lib/cjs/utils/cached.js +0 -71
  239. package/lib/cjs/utils/cached.js.map +0 -1
  240. package/lib/cjs/utils/loadStores.d.ts +0 -34
  241. package/lib/cjs/utils/loadStores.js +0 -105
  242. package/lib/cjs/utils/loadStores.js.map +0 -1
  243. package/lib/cjs/utils/parseDatasetsConfig.d.ts +0 -49
  244. package/lib/cjs/utils/parseDatasetsConfig.js +0 -110
  245. package/lib/cjs/utils/parseDatasetsConfig.js.map +0 -1
  246. package/lib/esm/package.json +0 -9
@@ -1,154 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assertSafeIri = assertSafeIri;
4
- exports.sanitizeVarName = sanitizeVarName;
5
- exports.assertSafeCallName = assertSafeCallName;
6
- exports.formatUri = formatUri;
7
- exports.escapeSparqlString = escapeSparqlString;
8
- exports.formatLiteral = formatLiteral;
9
- exports.collectPrefixes = collectPrefixes;
10
- exports.generateEntityUri = generateEntityUri;
11
- const Prefix_js_1 = require("../utils/Prefix.js");
12
- const ulid_1 = require("ulid");
13
- // Characters that must never appear inside a SPARQL IRIREF (`<...>`) per the
14
- // SPARQL 1.1 grammar: angle brackets, quote, braces, pipe, caret, backtick,
15
- // backslash, and all control chars + space (U+0000–U+0020). Any of these would
16
- // let a crafted `id`/IRI break out of the `<...>` and inject raw SPARQL.
17
- const FORBIDDEN_IRI_CHARS = /[\x00-\x20<>"{}|^`\\]/;
18
- /**
19
- * Assert that a string is safe to emit as a SPARQL IRI. Throws on any character
20
- * that could terminate the IRIREF and inject query text. Applied to the raw IRI
21
- * before prefixing so the prefixed branch can't be used to smuggle a breakout.
22
- */
23
- function assertSafeIri(uri) {
24
- if (typeof uri !== 'string' || FORBIDDEN_IRI_CHARS.test(uri)) {
25
- throw new Error(`Invalid IRI for SPARQL output: ${JSON.stringify(uri)}. IRIs must not contain angle brackets, quotes, braces, whitespace, or control characters.`);
26
- }
27
- }
28
- // SPARQL 1.1 built-in functions + aggregate names (§17.4, §18.5). Names are
29
- // case-insensitive in SPARQL; we compare upper-cased. Function/aggregate names
30
- // are emitted verbatim into query text, so a name from untrusted `fromJSON`
31
- // input (an S-expr head that isn't a known combinator becomes a "function
32
- // name") could otherwise inject raw SPARQL — this allowlist is the guard.
33
- const SPARQL_CALL_NAMES = new Set([
34
- // string
35
- 'STR', 'STRLEN', 'SUBSTR', 'UCASE', 'LCASE', 'STRSTARTS', 'STRENDS',
36
- 'CONTAINS', 'STRBEFORE', 'STRAFTER', 'ENCODE_FOR_URI', 'CONCAT', 'LANGMATCHES',
37
- 'REGEX', 'REPLACE',
38
- // term / type
39
- 'LANG', 'DATATYPE', 'BOUND', 'IRI', 'URI', 'BNODE', 'STRDT', 'STRLANG',
40
- 'UUID', 'STRUUID', 'SAMETERM', 'ISIRI', 'ISURI', 'ISBLANK', 'ISLITERAL',
41
- 'ISNUMERIC',
42
- // numeric
43
- 'ABS', 'CEIL', 'FLOOR', 'ROUND', 'RAND',
44
- // date/time
45
- 'YEAR', 'MONTH', 'DAY', 'HOURS', 'MINUTES', 'SECONDS', 'TIMEZONE', 'TZ', 'NOW',
46
- // hash
47
- 'MD5', 'SHA1', 'SHA256', 'SHA384', 'SHA512',
48
- // control / conditional
49
- 'IF', 'COALESCE',
50
- // aggregates
51
- 'COUNT', 'SUM', 'MIN', 'MAX', 'AVG', 'SAMPLE', 'GROUP_CONCAT',
52
- ]);
53
- /**
54
- * Sanitize a string for use as a SPARQL variable name (`?name`). Replaces any
55
- * character outside `[A-Za-z0-9_]` with `_`, so an alias/projection name derived
56
- * from untrusted input cannot break out of the `?...` variable position. Valid
57
- * names (already `[A-Za-z0-9_]`) are returned unchanged.
58
- */
59
- function sanitizeVarName(name) {
60
- return String(name).replace(/[^A-Za-z0-9_]/g, '_');
61
- }
62
- /**
63
- * Assert that a function or aggregate name is a known SPARQL 1.1 builtin before
64
- * it is emitted verbatim into query text. Throws on anything else (e.g. an
65
- * attacker-supplied S-expr head), which is the SPARQL-injection guard for the
66
- * `function_expr` / `aggregate_expr` serialization paths.
67
- */
68
- function assertSafeCallName(name) {
69
- if (typeof name !== 'string' || !SPARQL_CALL_NAMES.has(name.toUpperCase())) {
70
- throw new Error(`Unsupported SPARQL function/aggregate: ${JSON.stringify(name)}. Only SPARQL 1.1 built-in functions are allowed.`);
71
- }
72
- }
73
- /**
74
- * Format a URI for SPARQL output.
75
- * Returns prefixed form (e.g. `rdf:type`) if a prefix is registered and the
76
- * suffix doesn't contain `/`. Otherwise returns `<full-uri>`.
77
- * Throws if the IRI contains characters that could break out of the IRIREF.
78
- */
79
- function formatUri(uri) {
80
- assertSafeIri(uri);
81
- const prefixed = Prefix_js_1.Prefix.toPrefixed(uri);
82
- if (prefixed)
83
- return prefixed;
84
- return `<${uri}>`;
85
- }
86
- /**
87
- * Escapes special characters in a string for use inside SPARQL double-quoted literals.
88
- * Per SPARQL 1.1 §19.7 (Escape sequences in strings).
89
- */
90
- function escapeSparqlString(value) {
91
- return value
92
- .replace(/\\/g, '\\\\')
93
- .replace(/"/g, '\\"')
94
- .replace(/\n/g, '\\n')
95
- .replace(/\r/g, '\\r')
96
- .replace(/\t/g, '\\t');
97
- }
98
- /**
99
- * Format a literal value for SPARQL output.
100
- * Returns a quoted string with optional `^^<datatype>` suffix.
101
- * Special characters in the value are escaped per SPARQL spec.
102
- */
103
- function formatLiteral(value, datatype) {
104
- let lexical;
105
- if (value instanceof Date) {
106
- lexical = value.toISOString();
107
- }
108
- else {
109
- lexical = String(value);
110
- }
111
- const escaped = escapeSparqlString(lexical);
112
- if (datatype) {
113
- return `"${escaped}"^^${formatUri(datatype)}`;
114
- }
115
- return `"${escaped}"`;
116
- }
117
- /**
118
- * Collect the minimal set of prefix→URI mappings needed for a set of URIs.
119
- * Only includes prefixes that are actually used (i.e. `Prefix.toPrefixed`
120
- * returns a value for at least one URI in the list).
121
- */
122
- function collectPrefixes(usedUris) {
123
- const result = {};
124
- for (const uri of usedUris) {
125
- const match = Prefix_js_1.Prefix.findMatch(uri);
126
- if (match.length > 0) {
127
- const [ontologyUri, prefix, postFix] = match;
128
- // Only include if the postfix is actually prefixable (no `/`)
129
- if (!postFix.includes('/')) {
130
- result[prefix] = ontologyUri;
131
- }
132
- }
133
- }
134
- return result;
135
- }
136
- /**
137
- * Generate a new entity URI for a create mutation.
138
- * Format: `{dataRoot}/{lowercaseShapeLabel}_{ulid}`
139
- */
140
- function generateEntityUri(shape, options) {
141
- const dataRoot = (options === null || options === void 0 ? void 0 : options.dataRoot) || process.env.DATA_ROOT || 'http://example.org/data';
142
- // Extract the shape label from the full URI (last segment after # or /)
143
- let label;
144
- const hashIdx = shape.lastIndexOf('#');
145
- if (hashIdx >= 0) {
146
- label = shape.substring(hashIdx + 1);
147
- }
148
- else {
149
- const slashIdx = shape.lastIndexOf('/');
150
- label = slashIdx >= 0 ? shape.substring(slashIdx + 1) : shape;
151
- }
152
- return `${dataRoot}/${label.toLowerCase()}_${(0, ulid_1.ulid)()}`;
153
- }
154
- //# sourceMappingURL=sparqlUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sparqlUtils.js","sourceRoot":"","sources":["../../../src/sparql/sparqlUtils.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- export interface IErrorLogger {
2
- log?(error: any): Promise<void>;
3
- }
4
- /**
5
- * Utility class to log errors.
6
- * Install any error client package like lincd-sentry in your app to log errors.
7
- */
8
- export declare class LinkedErrorLogging {
9
- private static logger;
10
- static setDefaultLogger(logger: IErrorLogger): void;
11
- static hasDefaultLogger(): boolean;
12
- static log(error: Error): Promise<void>;
13
- }
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LinkedErrorLogging = void 0;
4
- /**
5
- * Utility class to log errors.
6
- * Install any error client package like lincd-sentry in your app to log errors.
7
- */
8
- class LinkedErrorLogging {
9
- static setDefaultLogger(logger) {
10
- this.logger = logger;
11
- }
12
- static hasDefaultLogger() {
13
- return this.logger && true;
14
- }
15
- static log(error) {
16
- if (this.logger) {
17
- return this.logger.log(error);
18
- }
19
- }
20
- }
21
- exports.LinkedErrorLogging = LinkedErrorLogging;
22
- //# sourceMappingURL=LinkedErrorLogging.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LinkedErrorLogging.js","sourceRoot":"","sources":["../../../src/utils/LinkedErrorLogging.ts"],"names":[],"mappings":";;;AAIA;;;GAGG;AACH,MAAa,kBAAkB;IAG7B,MAAM,CAAC,gBAAgB,CAAC,MAAoB;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,gBAAgB;QACrB,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,KAAY;QACrB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;CACF;AAhBD,gDAgBC"}
@@ -1,23 +0,0 @@
1
- import type { IFileStore } from '../interfaces/IFileStore.js';
2
- import type { Readable } from 'stream';
3
- export declare abstract class LinkedFileStorage {
4
- private static defaultDataset;
5
- private static url;
6
- static get accessURL(): string;
7
- static setDefaultAccessURL(accessURL: string): string;
8
- static getDefaultDataset(): IFileStore;
9
- static setDefaultDataset(dataset: IFileStore): void;
10
- static deleteFile(filePath: string): Promise<void>;
11
- static fileExists(filePath: string): Promise<boolean>;
12
- static getFile(filePath: string): Promise<Buffer>;
13
- static listFiles(prefix?: string): Promise<string[]>;
14
- static saveFile(filePath: string, fileContent: string | Uint8Array | Buffer | Readable, mimeType?: string, preventDuplicates?: boolean): Promise<string>;
15
- }
16
- /**
17
- * Get the full path of an asset based on the way LinkedFileStorage is configured
18
- * Returns accessURL + directory (/public by default) + path
19
- * @param path asset path
20
- * @param directory asset directory (optional, default is /public)
21
- * @returns asset url. e.g. https://cdn.example.com/public/image.png
22
- */
23
- export declare function asset(path: string, directory?: string): string;
@@ -1,62 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LinkedFileStorage = void 0;
4
- exports.asset = asset;
5
- class LinkedFileStorage {
6
- static get accessURL() {
7
- // check if default store is not set, return default accessURL
8
- if (!this.defaultDataset) {
9
- return this.url;
10
- }
11
- return this.defaultDataset.accessURL;
12
- }
13
- static setDefaultAccessURL(accessURL) {
14
- return (this.url = accessURL);
15
- }
16
- static getDefaultDataset() {
17
- return this.defaultDataset;
18
- }
19
- static setDefaultDataset(dataset) {
20
- this.defaultDataset = dataset;
21
- if (this.defaultDataset.init) {
22
- this.defaultDataset.init();
23
- }
24
- }
25
- static deleteFile(filePath) {
26
- return this.defaultDataset.deleteFile(filePath);
27
- }
28
- static fileExists(filePath) {
29
- return this.defaultDataset.fileExists(filePath);
30
- }
31
- static getFile(filePath) {
32
- return this.defaultDataset.getFile(filePath);
33
- }
34
- static listFiles(prefix) {
35
- return this.defaultDataset.listFiles(prefix);
36
- }
37
- static saveFile(filePath, fileContent, mimeType, preventDuplicates = false) {
38
- return this.defaultDataset.saveFile(filePath, fileContent, mimeType, preventDuplicates);
39
- }
40
- }
41
- exports.LinkedFileStorage = LinkedFileStorage;
42
- /**
43
- * Get the full path of an asset based on the way LinkedFileStorage is configured
44
- * Returns accessURL + directory (/public by default) + path
45
- * @param path asset path
46
- * @param directory asset directory (optional, default is /public)
47
- * @returns asset url. e.g. https://cdn.example.com/public/image.png
48
- */
49
- function asset(path, directory = '/public') {
50
- // Some callers pass a raw app-relative path like `/images/foo.webp`, while
51
- // others may already have a fully qualified asset URL from an earlier
52
- // `asset(...)` call or backend response normalization. Keep this helper
53
- // idempotent so shared card/image components can safely call `asset(...)`
54
- // without duplicating the access URL prefix.
55
- if (/^(?:[a-z]+:)?\/\//i.test(path) || path.startsWith('data:') || path.startsWith('blob:')) {
56
- return path;
57
- }
58
- const accessURL = LinkedFileStorage.accessURL;
59
- const assetUrl = accessURL + directory + path;
60
- return assetUrl;
61
- }
62
- //# sourceMappingURL=LinkedFileStorage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LinkedFileStorage.js","sourceRoot":"","sources":["../../../src/utils/LinkedFileStorage.ts"],"names":[],"mappings":";;;AAsEA,sBAaC;AAhFD,MAAsB,iBAAiB;IAIrC,MAAM,KAAK,SAAS;QAClB,8DAA8D;QAC9D,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,GAAG,CAAC;QAClB,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,SAAiB;QAC1C,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,iBAAiB;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,OAAmB;QAC1C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAE9B,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,QAAgB;QAChC,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,QAAgB;QAChC,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,MAAe;QAC9B,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,QAAQ,CACb,QAAgB,EAChB,WAAoD,EACpD,QAAiB,EACjB,oBAA6B,KAAK;QAElC,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CACjC,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,iBAAiB,CAClB,CAAC;IACJ,CAAC;CACF;AA1DD,8CA0DC;AAED;;;;;;GAMG;AACH,SAAgB,KAAK,CAAC,IAAY,EAAE,YAAoB,SAAS;IAC/D,2EAA2E;IAC3E,sEAAsE;IACtE,wEAAwE;IACxE,0EAA0E;IAC1E,6CAA6C;IAC7C,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5F,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC;IAC9C,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC;IAC9C,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,40 +0,0 @@
1
- import { CoreSet } from '../collections/CoreSet.js';
2
- import type { IDataset } from '../interfaces/IDataset.js';
3
- import type { SelectQuery } from '../queries/SelectQuery.js';
4
- import type { CreateQuery } from '../queries/CreateQuery.js';
5
- import type { UpdateQuery } from '../queries/UpdateQuery.js';
6
- import type { DeleteQuery, DeleteResponse } from '../queries/DeleteQuery.js';
7
- /**
8
- * Primary routing layer (arch-04 §The IDataset abstraction).
9
- *
10
- * Resolves an incoming Linked Query to the IDataset that should handle it,
11
- * based on the query's target shape. Composite IDatasets (gateways, routers,
12
- * forwarders, resolvers) plug in here just like storage IDatasets do.
13
- *
14
- * The "Dataset" naming aligns with the IDataset contract. Earlier "Store"
15
- * names were renamed in phase-1 — see docs/plans/002-phase-1-create-user-project-flow.md.
16
- */
17
- export declare abstract class LinkedStorage {
18
- private static defaultDataset?;
19
- private static shapeToDataset;
20
- /** plan-011 — how many physical copies of this module have evaluated. */
21
- static getLoadedInstanceCount(): number;
22
- static isInitialised(): boolean;
23
- /** The catch-all IDataset for shapes with no explicit mapping. */
24
- static getDefaultDataset(): IDataset;
25
- /** Set the default IDataset (catch-all for shapes with no explicit mapping). */
26
- static setDefaultDataset(dataset: IDataset): void;
27
- /** Pin one or more shape classes to a specific IDataset implementer. */
28
- static setDatasetForShapes(dataset: IDataset, ...shapeClasses: Function[]): void;
29
- /** Every IDataset known to the primary router (default + all pinned). */
30
- static getDatasets(): CoreSet<IDataset>;
31
- /** Read-only view of the shape→IDataset map. */
32
- static getShapeToDatasetMap(): Map<Function, IDataset>;
33
- /** Resolve the IDataset for a given shape class. Walks the prototype chain. */
34
- static getDatasetForShapeClass(shapeClass?: Function | null): IDataset | undefined;
35
- private static resolveDatasetForQueryShape;
36
- static selectQuery<ResultType>(query: SelectQuery): Promise<ResultType>;
37
- static updateQuery<ResponseType>(query: UpdateQuery): Promise<ResponseType>;
38
- static createQuery<ResponseType>(query: CreateQuery): Promise<ResponseType>;
39
- static deleteQuery(query: DeleteQuery): Promise<DeleteResponse>;
40
- }
@@ -1,148 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.LinkedStorage = void 0;
5
- const CoreSet_js_1 = require("../collections/CoreSet.js");
6
- const queryDispatch_js_1 = require("../queries/queryDispatch.js");
7
- const ShapeClass_js_1 = require("./ShapeClass.js");
8
- // plan-011 — count physical evaluations of THIS module on the one shared
9
- // global object. With the single-loader fix there should be exactly one copy;
10
- // the single-instance guard in backend.ts reports this count if storage config
11
- // ever lands on a different copy. Deliberately avoids Date/Math.random
12
- // (unavailable / non-deterministic per repo constraints).
13
- const linkedStorageGlobal = typeof globalThis !== 'undefined' ? globalThis : {};
14
- linkedStorageGlobal.__linkedStorageInstanceCount =
15
- ((_a = linkedStorageGlobal.__linkedStorageInstanceCount) !== null && _a !== void 0 ? _a : 0) + 1;
16
- /**
17
- * Primary routing layer (arch-04 §The IDataset abstraction).
18
- *
19
- * Resolves an incoming Linked Query to the IDataset that should handle it,
20
- * based on the query's target shape. Composite IDatasets (gateways, routers,
21
- * forwarders, resolvers) plug in here just like storage IDatasets do.
22
- *
23
- * The "Dataset" naming aligns with the IDataset contract. Earlier "Store"
24
- * names were renamed in phase-1 — see docs/plans/002-phase-1-create-user-project-flow.md.
25
- */
26
- class LinkedStorage {
27
- /** plan-011 — how many physical copies of this module have evaluated. */
28
- static getLoadedInstanceCount() {
29
- var _a;
30
- return (_a = linkedStorageGlobal.__linkedStorageInstanceCount) !== null && _a !== void 0 ? _a : 0;
31
- }
32
- static isInitialised() {
33
- return !!this.defaultDataset;
34
- }
35
- /** The catch-all IDataset for shapes with no explicit mapping. */
36
- static getDefaultDataset() {
37
- return this.defaultDataset;
38
- }
39
- /** Set the default IDataset (catch-all for shapes with no explicit mapping). */
40
- static setDefaultDataset(dataset) {
41
- var _a;
42
- this.defaultDataset = dataset;
43
- if ((_a = this.defaultDataset) === null || _a === void 0 ? void 0 : _a.init) {
44
- this.defaultDataset.init();
45
- }
46
- (0, queryDispatch_js_1.setQueryDispatch)({
47
- selectQuery: (q) => this.selectQuery(q),
48
- createQuery: (q) => this.createQuery(q),
49
- updateQuery: (q) => this.updateQuery(q),
50
- deleteQuery: (q) => this.deleteQuery(q),
51
- });
52
- }
53
- /** Pin one or more shape classes to a specific IDataset implementer. */
54
- static setDatasetForShapes(dataset, ...shapeClasses) {
55
- shapeClasses.forEach((shapeClass) => {
56
- this.shapeToDataset.set(shapeClass, dataset);
57
- });
58
- }
59
- /** Every IDataset known to the primary router (default + all pinned). */
60
- static getDatasets() {
61
- const datasets = new CoreSet_js_1.CoreSet();
62
- if (this.defaultDataset) {
63
- datasets.add(this.defaultDataset);
64
- }
65
- this.shapeToDataset.forEach((dataset) => datasets.add(dataset));
66
- return datasets;
67
- }
68
- /** Read-only view of the shape→IDataset map. */
69
- static getShapeToDatasetMap() {
70
- return this.shapeToDataset;
71
- }
72
- /** Resolve the IDataset for a given shape class. Walks the prototype chain. */
73
- static getDatasetForShapeClass(shapeClass) {
74
- let current = shapeClass !== null && shapeClass !== void 0 ? shapeClass : null;
75
- while (typeof current === 'function') {
76
- const dataset = this.shapeToDataset.get(current);
77
- if (dataset) {
78
- return dataset;
79
- }
80
- const parent = Object.getPrototypeOf(current);
81
- if (parent === Function.prototype || parent === null)
82
- break;
83
- current = parent;
84
- }
85
- return this.defaultDataset;
86
- }
87
- static resolveDatasetForQueryShape(shape) {
88
- if (!shape) {
89
- return this.defaultDataset;
90
- }
91
- if (typeof shape === 'function') {
92
- return this.getDatasetForShapeClass(shape);
93
- }
94
- if (typeof shape === 'string') {
95
- const shapeClass = (0, ShapeClass_js_1.getShapeClass)(shape);
96
- return this.getDatasetForShapeClass(shapeClass);
97
- }
98
- // NodeShape (the closed query's `shape` accessor) — resolve via its IRI.
99
- if (typeof shape === 'object' && 'id' in shape) {
100
- const shapeClass = (0, ShapeClass_js_1.getShapeClass)(shape.id);
101
- return this.getDatasetForShapeClass(shapeClass);
102
- }
103
- return this.defaultDataset;
104
- }
105
- static selectQuery(query) {
106
- if (!(query === null || query === void 0 ? void 0 : query.shape)) {
107
- return Promise.reject(new Error('Invalid select query passed to LinkedStorage.selectQuery(): missing shape.'));
108
- }
109
- const dataset = this.resolveDatasetForQueryShape(query.shape);
110
- if (!(dataset === null || dataset === void 0 ? void 0 : dataset.selectQuery)) {
111
- return Promise.reject(new Error('No query dataset configured. Call LinkedStorage.setDefaultDataset().'));
112
- }
113
- return dataset.selectQuery(query);
114
- }
115
- static updateQuery(query) {
116
- if (!(query === null || query === void 0 ? void 0 : query.shape)) {
117
- return Promise.reject(new Error('Invalid update query passed to LinkedStorage.updateQuery(): missing shape.'));
118
- }
119
- const dataset = this.resolveDatasetForQueryShape(query.shape);
120
- if (!(dataset === null || dataset === void 0 ? void 0 : dataset.updateQuery)) {
121
- return Promise.reject(new Error('No update handler configured on the query dataset.'));
122
- }
123
- return dataset.updateQuery(query);
124
- }
125
- static createQuery(query) {
126
- if (!(query === null || query === void 0 ? void 0 : query.shape)) {
127
- return Promise.reject(new Error('Invalid create query passed to LinkedStorage.createQuery(): missing shape.'));
128
- }
129
- const dataset = this.resolveDatasetForQueryShape(query.shape);
130
- if (!(dataset === null || dataset === void 0 ? void 0 : dataset.createQuery)) {
131
- return Promise.reject(new Error('No create handler configured on the query dataset.'));
132
- }
133
- return dataset.createQuery(query);
134
- }
135
- static deleteQuery(query) {
136
- if (!(query === null || query === void 0 ? void 0 : query.shape)) {
137
- return Promise.reject(new Error('Invalid delete query passed to LinkedStorage.deleteQuery(): missing shape.'));
138
- }
139
- const dataset = this.resolveDatasetForQueryShape(query.shape);
140
- if (!(dataset === null || dataset === void 0 ? void 0 : dataset.deleteQuery)) {
141
- return Promise.reject(new Error('No delete handler configured on the query dataset.'));
142
- }
143
- return dataset.deleteQuery(query);
144
- }
145
- }
146
- exports.LinkedStorage = LinkedStorage;
147
- LinkedStorage.shapeToDataset = new Map();
148
- //# sourceMappingURL=LinkedStorage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LinkedStorage.js","sourceRoot":"","sources":["../../../src/utils/LinkedStorage.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import type { NodeReferenceValue } from './NodeReference.js';
2
- export declare const createNameSpace: (nameSpace: string) => (term: string) => NodeReferenceValue;
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createNameSpace = void 0;
4
- const createNameSpace = (nameSpace) => {
5
- return (term) => ({ id: nameSpace + term });
6
- };
7
- exports.createNameSpace = createNameSpace;
8
- //# sourceMappingURL=NameSpace.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NameSpace.js","sourceRoot":"","sources":["../../../src/utils/NameSpace.ts"],"names":[],"mappings":";;;AAEO,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAE,EAAE;IACnD,OAAO,CAAC,IAAY,EAAsB,EAAE,CAAC,CAAC,EAAC,EAAE,EAAE,SAAS,GAAG,IAAI,EAAC,CAAC,CAAC;AACxE,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B"}
@@ -1,30 +0,0 @@
1
- export type NodeReferenceValue = {
2
- id: string;
3
- };
4
- export type NodeReferenceInput = NodeReferenceValue | string;
5
- /**
6
- * Resolve a string that looks like a prefixed name (e.g. 'foaf:knows') to its full IRI.
7
- * - Strings containing '://' are full IRIs — returned as-is.
8
- * - Strings without ':' are plain IDs — returned as-is.
9
- * - Strings matching 'prefix:local' are resolved via Prefix.toFullIfPossible()
10
- * (returns original string if prefix is not registered).
11
- *
12
- * @example
13
- * resolvePrefixedUri('foaf:Person') // 'http://xmlns.com/foaf/0.1/Person'
14
- * resolvePrefixedUri('http://example.org/x') // 'http://example.org/x' (unchanged)
15
- * resolvePrefixedUri('my-id') // 'my-id' (unchanged, no colon)
16
- */
17
- export declare function resolvePrefixedUri(str: string): string;
18
- /**
19
- * Resolve a URI string strictly: must be either a full IRI (contains '://')
20
- * or a registered prefixed name ('foaf:Person'). Throws if the prefix is unknown.
21
- *
22
- * Use this at API boundaries where strings are always URIs (never plain IDs).
23
- */
24
- export declare function resolveUriOrThrow(str: string): string;
25
- /**
26
- * Convert a NodeReferenceInput to a NodeReferenceValue.
27
- * Simple wrap — no prefix resolution. Use resolvePrefixedUri() for that.
28
- */
29
- export declare function toNodeReference(value: NodeReferenceInput): NodeReferenceValue;
30
- export declare function isNodeReferenceValue(value: unknown): value is NodeReferenceValue;
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolvePrefixedUri = resolvePrefixedUri;
4
- exports.resolveUriOrThrow = resolveUriOrThrow;
5
- exports.toNodeReference = toNodeReference;
6
- exports.isNodeReferenceValue = isNodeReferenceValue;
7
- const Prefix_js_1 = require("./Prefix.js");
8
- /**
9
- * Resolve a string that looks like a prefixed name (e.g. 'foaf:knows') to its full IRI.
10
- * - Strings containing '://' are full IRIs — returned as-is.
11
- * - Strings without ':' are plain IDs — returned as-is.
12
- * - Strings matching 'prefix:local' are resolved via Prefix.toFullIfPossible()
13
- * (returns original string if prefix is not registered).
14
- *
15
- * @example
16
- * resolvePrefixedUri('foaf:Person') // 'http://xmlns.com/foaf/0.1/Person'
17
- * resolvePrefixedUri('http://example.org/x') // 'http://example.org/x' (unchanged)
18
- * resolvePrefixedUri('my-id') // 'my-id' (unchanged, no colon)
19
- */
20
- function resolvePrefixedUri(str) {
21
- if (str.includes('://'))
22
- return str;
23
- if (!str.includes(':'))
24
- return str;
25
- return Prefix_js_1.Prefix.toFullIfPossible(str);
26
- }
27
- /**
28
- * Resolve a URI string strictly: must be either a full IRI (contains '://')
29
- * or a registered prefixed name ('foaf:Person'). Throws if the prefix is unknown.
30
- *
31
- * Use this at API boundaries where strings are always URIs (never plain IDs).
32
- */
33
- function resolveUriOrThrow(str) {
34
- if (str.includes('://'))
35
- return str;
36
- return Prefix_js_1.Prefix.toFull(str);
37
- }
38
- /**
39
- * Convert a NodeReferenceInput to a NodeReferenceValue.
40
- * Simple wrap — no prefix resolution. Use resolvePrefixedUri() for that.
41
- */
42
- function toNodeReference(value) {
43
- if (typeof value === 'string') {
44
- return { id: value };
45
- }
46
- return { id: value.id };
47
- }
48
- function isNodeReferenceValue(value) {
49
- return (typeof value === 'object' &&
50
- value !== null &&
51
- 'id' in value &&
52
- typeof value.id === 'string');
53
- }
54
- //# sourceMappingURL=NodeReference.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NodeReference.js","sourceRoot":"","sources":["../../../src/utils/NodeReference.ts"],"names":[],"mappings":";;AAkBA,gDAIC;AAQD,8CAGC;AAMD,0CAKC;AAED,oDAOC;AArDD,2CAAmC;AAMnC;;;;;;;;;;;GAWG;AACH,SAAgB,kBAAkB,CAAC,GAAW;IAC5C,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IACpC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACnC,OAAO,kBAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,GAAW;IAC3C,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IACpC,OAAO,kBAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,KAAyB;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAC,EAAE,EAAE,KAAK,EAAC,CAAC;IACrB,CAAC;IACD,OAAO,EAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAC,CAAC;AACxB,CAAC;AAED,SAAgB,oBAAoB,CAAC,KAAc;IACjD,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,IAAI,IAAI,KAAK;QACb,OAAQ,KAA4B,CAAC,EAAE,KAAK,QAAQ,CACrD,CAAC;AACJ,CAAC"}