@twin.org/data-json-ld 0.0.3-next.2 → 0.0.3-next.21
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/README.md +1 -1
- package/dist/es/dataTypes/jsonLdDataTypes.js +104 -131
- package/dist/es/dataTypes/jsonLdDataTypes.js.map +1 -1
- package/dist/es/helpers/jsonLdHelperTypes.js +2 -0
- package/dist/es/helpers/jsonLdHelperTypes.js.map +1 -0
- package/dist/es/index.js +1 -0
- package/dist/es/index.js.map +1 -1
- package/dist/es/models/jsonLdContexts.js +10 -2
- package/dist/es/models/jsonLdContexts.js.map +1 -1
- package/dist/es/schemas/JsonLdContainerType.json +17 -7
- package/dist/es/schemas/JsonLdContainerTypeArray.json +129 -142
- package/dist/es/schemas/JsonLdContextDefinition.json +76 -18
- package/dist/es/schemas/JsonLdContextDefinitionElement.json +1 -0
- package/dist/es/schemas/JsonLdContextDefinitionRoot.json +1 -0
- package/dist/es/schemas/JsonLdDocument.json +3 -3
- package/dist/es/schemas/JsonLdExpandedTermDefinition.json +101 -89
- package/dist/es/schemas/JsonLdGraphObject.json +2 -2
- package/dist/es/schemas/JsonLdIdMap.json +1 -0
- package/dist/es/schemas/JsonLdIncludedBlock.json +1 -0
- package/dist/es/schemas/JsonLdIndexMap.json +2 -1
- package/dist/es/schemas/JsonLdIndexMapItem.json +1 -0
- package/dist/es/schemas/JsonLdJsonArray.json +1 -0
- package/dist/es/schemas/JsonLdJsonObject.json +2 -8
- package/dist/es/schemas/JsonLdJsonPrimitive.json +14 -5
- package/dist/es/schemas/JsonLdJsonValue.json +1 -0
- package/dist/es/schemas/JsonLdLanguageMap.json +1 -0
- package/dist/es/schemas/JsonLdListObject.json +2 -2
- package/dist/es/schemas/JsonLdListOrSetItem.json +1 -0
- package/dist/es/schemas/JsonLdNodeObject.json +12 -72
- package/dist/es/schemas/JsonLdNodePrimitive.json +1 -0
- package/dist/es/schemas/JsonLdObject.json +3 -3
- package/dist/es/schemas/JsonLdSetObject.json +2 -2
- package/dist/es/schemas/JsonLdTypeMap.json +1 -0
- package/dist/es/schemas/JsonLdValueObject.json +99 -87
- package/dist/es/utils/jsonLdHelper.js +181 -15
- package/dist/es/utils/jsonLdHelper.js.map +1 -1
- package/dist/es/utils/jsonLdProcessor.js +125 -34
- package/dist/es/utils/jsonLdProcessor.js.map +1 -1
- package/dist/types/helpers/jsonLdHelperTypes.d.ts +127 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/models/jsonLdContexts.d.ts +10 -2
- package/dist/types/utils/jsonLdHelper.d.ts +63 -6
- package/dist/types/utils/jsonLdProcessor.d.ts +10 -7
- package/docs/changelog.md +349 -63
- package/docs/examples.md +214 -1
- package/docs/reference/classes/JsonLdDataTypes.md +1 -1
- package/docs/reference/classes/JsonLdHelper.md +249 -13
- package/docs/reference/classes/JsonLdProcessor.md +51 -58
- package/docs/reference/index.md +23 -0
- package/docs/reference/interfaces/IJsonLdContextDefinition.md +20 -20
- package/docs/reference/interfaces/IJsonLdGraphObject.md +7 -7
- package/docs/reference/interfaces/IJsonLdIdMap.md +1 -1
- package/docs/reference/interfaces/IJsonLdIndexMap.md +1 -1
- package/docs/reference/interfaces/IJsonLdJsonObject.md +1 -1
- package/docs/reference/interfaces/IJsonLdLanguageMap.md +1 -1
- package/docs/reference/interfaces/IJsonLdListObject.md +3 -3
- package/docs/reference/interfaces/IJsonLdNodeObject.md +17 -17
- package/docs/reference/interfaces/IJsonLdObject.md +16 -16
- package/docs/reference/interfaces/IJsonLdSetObject.md +3 -3
- package/docs/reference/interfaces/IJsonLdTypeMap.md +1 -1
- package/docs/reference/type-aliases/IJsonLdExpandedTermDefinition.md +7 -7
- package/docs/reference/type-aliases/IJsonLdValueObject.md +2 -2
- package/docs/reference/type-aliases/JsonLdAliasKey.md +15 -0
- package/docs/reference/type-aliases/JsonLdExistingProperty.md +19 -0
- package/docs/reference/type-aliases/JsonLdExistingPropertyEither.md +24 -0
- package/docs/reference/type-aliases/JsonLdKeys.md +11 -0
- package/docs/reference/type-aliases/JsonLdObjectWithAliases.md +16 -0
- package/docs/reference/type-aliases/JsonLdObjectWithAtId.md +21 -0
- package/docs/reference/type-aliases/JsonLdObjectWithAtType.md +21 -0
- package/docs/reference/type-aliases/JsonLdObjectWithContext.md +21 -0
- package/docs/reference/type-aliases/JsonLdObjectWithId.md +21 -0
- package/docs/reference/type-aliases/JsonLdObjectWithNoAtId.md +11 -0
- package/docs/reference/type-aliases/JsonLdObjectWithNoAtType.md +11 -0
- package/docs/reference/type-aliases/JsonLdObjectWithNoContext.md +12 -0
- package/docs/reference/type-aliases/JsonLdObjectWithNoId.md +11 -0
- package/docs/reference/type-aliases/JsonLdObjectWithNoType.md +11 -0
- package/docs/reference/type-aliases/JsonLdObjectWithOptionalAtId.md +21 -0
- package/docs/reference/type-aliases/JsonLdObjectWithOptionalAtType.md +21 -0
- package/docs/reference/type-aliases/JsonLdObjectWithOptionalContext.md +22 -0
- package/docs/reference/type-aliases/JsonLdObjectWithOptionalId.md +21 -0
- package/docs/reference/type-aliases/JsonLdObjectWithOptionalType.md +21 -0
- package/docs/reference/type-aliases/JsonLdObjectWithType.md +21 -0
- package/docs/reference/type-aliases/JsonLdOptionalKeys.md +11 -0
- package/docs/reference/type-aliases/JsonLdRequiredKeys.md +11 -0
- package/docs/reference/type-aliases/JsonLdWithAliases.md +17 -0
- package/docs/reference/variables/JsonLdContexts.md +15 -3
- package/docs/reference/variables/JsonLdTypes.md +26 -26
- package/package.json +6 -6
package/docs/examples.md
CHANGED
|
@@ -1 +1,214 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Data Json Ld Examples
|
|
2
|
+
|
|
3
|
+
These examples walk through context management, document processing, validation, and property access patterns for JSON-LD documents.
|
|
4
|
+
|
|
5
|
+
## JsonLdProcessor
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
import { JsonLdProcessor } from '@twin.org/data-json-ld';
|
|
9
|
+
|
|
10
|
+
JsonLdProcessor.setCacheLimit(900000);
|
|
11
|
+
console.log('Cache limit:', JsonLdProcessor.getCacheLimit());
|
|
12
|
+
|
|
13
|
+
JsonLdProcessor.setRedirects([
|
|
14
|
+
{
|
|
15
|
+
from: /^https:\/\/raw\.githubusercontent\.com\//,
|
|
16
|
+
to: 'https://cdn.example.org/github-content'
|
|
17
|
+
}
|
|
18
|
+
]);
|
|
19
|
+
|
|
20
|
+
JsonLdProcessor.addRedirect(/^https:\/\/schema\.org\//, 'https://schema.org/');
|
|
21
|
+
console.log('Has redirects:', JsonLdProcessor.getRedirects().length > 0);
|
|
22
|
+
|
|
23
|
+
const loader = JsonLdProcessor.getDocumentLoader();
|
|
24
|
+
console.log('Loader type:', typeof loader);
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
import { JsonLdProcessor, type IJsonLdNodeObject } from '@twin.org/data-json-ld';
|
|
29
|
+
|
|
30
|
+
const compactedDoc = {
|
|
31
|
+
'@context': {
|
|
32
|
+
ex: 'https://example.org/vocab/',
|
|
33
|
+
name: 'ex:name'
|
|
34
|
+
},
|
|
35
|
+
'@id': 'urn:example:person:1',
|
|
36
|
+
name: 'Ada'
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
const expanded = await JsonLdProcessor.expand(compactedDoc);
|
|
40
|
+
const compactedAgain = await JsonLdProcessor.compact(expanded[0], compactedDoc['@context']);
|
|
41
|
+
|
|
42
|
+
console.log('Compacted id:', compactedAgain['@id']);
|
|
43
|
+
|
|
44
|
+
const canonical = await JsonLdProcessor.canonize(expanded[0] as IJsonLdNodeObject);
|
|
45
|
+
console.log('Canonical includes id:', canonical.includes('urn:example:person:1'));
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
import { JsonLdProcessor, type IJsonLdNodeObject } from '@twin.org/data-json-ld';
|
|
50
|
+
|
|
51
|
+
const contextA = 'https://example.org/context/base';
|
|
52
|
+
const contextB = {
|
|
53
|
+
ex: 'https://example.org/vocab/',
|
|
54
|
+
name: 'ex:name'
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const combined = JsonLdProcessor.combineContexts(contextA, contextB);
|
|
58
|
+
|
|
59
|
+
const documentWithNestedContexts: IJsonLdNodeObject = {
|
|
60
|
+
'@context': contextA,
|
|
61
|
+
'@graph': [
|
|
62
|
+
{
|
|
63
|
+
'@context': contextB,
|
|
64
|
+
'@id': 'urn:example:item:1',
|
|
65
|
+
'@type': 'ex:Person',
|
|
66
|
+
'ex:name': 'Ada'
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
const gathered = JsonLdProcessor.gatherContexts(documentWithNestedContexts);
|
|
72
|
+
const filtered = JsonLdProcessor.removeContexts(gathered, [contextB]);
|
|
73
|
+
|
|
74
|
+
console.log('Combined is array:', Array.isArray(combined));
|
|
75
|
+
console.log('Filtered context equals contextA:', filtered === contextA);
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
```typescript
|
|
79
|
+
import { JsonLdProcessor } from '@twin.org/data-json-ld';
|
|
80
|
+
|
|
81
|
+
await JsonLdProcessor.documentCacheAdd('https://example.org/context', {
|
|
82
|
+
'@context': {
|
|
83
|
+
ex: 'https://example.org/vocab/'
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
await JsonLdProcessor.documentCacheRemove('https://example.org/context');
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Remote `@context` URLs: redirects and HTTP `Link` discovery
|
|
91
|
+
|
|
92
|
+
When a remote `@context` URL is a string, the default document loader resolves it in this order:
|
|
93
|
+
|
|
94
|
+
1. **Registered redirects** — `setRedirects` / `addRedirect` run first. If a pattern matches, the request uses the replacement URL only (no `HEAD` or discovery against the original namespace URL).
|
|
95
|
+
2. **GET with `Accept: application/ld+json`**. If the response is an **HTTP error** (for example **404**), the load fails and discovery does not run. If the response is **OK** but the body is **not valid JSON** (for example HTML), retry **GET** with **`Accept: application/json`**.
|
|
96
|
+
3. **HTTP `Link` discovery** — only if **both** `GET`s in step 2 failed with a **JSON decode** error: `HEAD` on the current URL (or `GET` if the server returns **405** / **501** for `HEAD`), then inspect `Link` for `rel="alternate"` and `type="application/ld+json"`, resolve the target URL, and **fetch that context document once** (at most **one** discovery hop per load chain).
|
|
97
|
+
|
|
98
|
+
Use **manual redirects** for stable overrides, offline tests, or hosts that do not expose a suitable `Link` header. Rely on **discovery** when the namespace URL serves HTML but advertises a JSON-LD context via `Link`.
|
|
99
|
+
|
|
100
|
+
```typescript
|
|
101
|
+
import { JsonLdProcessor } from '@twin.org/data-json-ld';
|
|
102
|
+
|
|
103
|
+
// Optional: force a namespace URL to a known context document (runs before discovery).
|
|
104
|
+
JsonLdProcessor.addRedirect(
|
|
105
|
+
/^https:\/\/example\.org\/vocab\/?$/,
|
|
106
|
+
'https://example.org/context/doc.jsonld'
|
|
107
|
+
);
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Standards packages and `registerRedirects()`
|
|
111
|
+
|
|
112
|
+
Vocabulary packages (for example `@twin.org/standards-schema-org`) often expose `SchemaOrgDataTypes.registerRedirects()`, which forwards to `JsonLdProcessor.addRedirect` for a known namespace URL. That call is **optional** in many deployments: the default loader can reach the same JSON-LD context via **HTTP `Link` discovery** when the namespace URL returns HTML and advertises `rel="alternate"` with `type="application/ld+json"`. Prefer **explicit redirects** when you want predictable URLs without an extra `HEAD`/`GET` for discovery, **fully offline** or hermetic tests, or when the host does not send a usable `Link` header.
|
|
113
|
+
|
|
114
|
+
## JsonLdHelper
|
|
115
|
+
|
|
116
|
+
```typescript
|
|
117
|
+
import { type IValidationFailure } from '@twin.org/core';
|
|
118
|
+
import { ValidationMode } from '@twin.org/data-core';
|
|
119
|
+
import { JsonLdHelper, type IJsonLdNodeObject } from '@twin.org/data-json-ld';
|
|
120
|
+
|
|
121
|
+
const compactedDocument = {
|
|
122
|
+
'@context': {
|
|
123
|
+
ex: 'https://example.org/vocab/',
|
|
124
|
+
id: '@id',
|
|
125
|
+
type: '@type',
|
|
126
|
+
name: 'ex:name'
|
|
127
|
+
},
|
|
128
|
+
id: 'urn:example:person:1',
|
|
129
|
+
type: 'ex:Person',
|
|
130
|
+
name: 'Ada'
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
const failures: IValidationFailure[] = [];
|
|
134
|
+
await JsonLdHelper.validate(compactedDocument, failures, {
|
|
135
|
+
validationMode: ValidationMode.Either,
|
|
136
|
+
failOnMissingType: false
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
const expanded = await JsonLdHelper.expand(compactedDocument);
|
|
140
|
+
const hasPersonType = await JsonLdHelper.isType(expanded, ['https://example.org/vocab/Person']);
|
|
141
|
+
const types = await JsonLdHelper.getType(expanded);
|
|
142
|
+
const id = await JsonLdHelper.getId(expanded);
|
|
143
|
+
|
|
144
|
+
console.log('Failure count:', failures.length);
|
|
145
|
+
console.log('Has person type:', hasPersonType);
|
|
146
|
+
console.log('Type list includes person:', types.includes('https://example.org/vocab/Person'));
|
|
147
|
+
console.log('Document id:', id);
|
|
148
|
+
|
|
149
|
+
const nodeObject = JsonLdHelper.toNodeObject(compactedDocument);
|
|
150
|
+
const structuredObject = JsonLdHelper.toStructuredObject<{ name: string }>(
|
|
151
|
+
nodeObject as IJsonLdNodeObject
|
|
152
|
+
);
|
|
153
|
+
|
|
154
|
+
console.log('Structured name:', structuredObject.name);
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
```typescript
|
|
158
|
+
import { JsonLdHelper } from '@twin.org/data-json-ld';
|
|
159
|
+
|
|
160
|
+
const expandedDocument = [
|
|
161
|
+
{
|
|
162
|
+
'@id': 'urn:example:article:1',
|
|
163
|
+
'https://schema.org/name': [
|
|
164
|
+
{ '@value': 'Hello', '@language': 'en' },
|
|
165
|
+
{ '@value': 'Hallo', '@language': 'de' }
|
|
166
|
+
],
|
|
167
|
+
'https://schema.org/wordCount': [{ '@value': 240 }]
|
|
168
|
+
}
|
|
169
|
+
];
|
|
170
|
+
|
|
171
|
+
const title = await JsonLdHelper.getPropertyValue(
|
|
172
|
+
expandedDocument,
|
|
173
|
+
'https://schema.org/name',
|
|
174
|
+
'en'
|
|
175
|
+
);
|
|
176
|
+
const [nameValues, wordCountValues] = await JsonLdHelper.getPropertyValues(expandedDocument, [
|
|
177
|
+
'https://schema.org/name',
|
|
178
|
+
'https://schema.org/wordCount'
|
|
179
|
+
]);
|
|
180
|
+
|
|
181
|
+
console.log('English title:', title?.[0]);
|
|
182
|
+
console.log('Name value count:', nameValues?.length);
|
|
183
|
+
console.log('Word count value:', wordCountValues?.[0]);
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
```typescript
|
|
187
|
+
import { JsonLdHelper } from '@twin.org/data-json-ld';
|
|
188
|
+
|
|
189
|
+
const node = {
|
|
190
|
+
'@id': 'urn:example:item:1',
|
|
191
|
+
name: 'Ada',
|
|
192
|
+
role: 'Engineer'
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
const prefixed = JsonLdHelper.prefixProperties(node, 'ex', ['name', 'role']);
|
|
196
|
+
const stripped = JsonLdHelper.stripPrefixProperties(prefixed, 'ex');
|
|
197
|
+
|
|
198
|
+
console.log('Prefixed name:', prefixed['ex:name']);
|
|
199
|
+
console.log('Stripped name:', stripped.name);
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
## JsonLdDataTypes
|
|
203
|
+
|
|
204
|
+
```typescript
|
|
205
|
+
import { DataTypeHelper } from '@twin.org/data-core';
|
|
206
|
+
import { JsonLdContexts, JsonLdDataTypes, JsonLdTypes } from '@twin.org/data-json-ld';
|
|
207
|
+
|
|
208
|
+
JsonLdDataTypes.registerTypes();
|
|
209
|
+
|
|
210
|
+
const schema = await DataTypeHelper.getSchemaForType(
|
|
211
|
+
`${JsonLdContexts.Namespace}${JsonLdTypes.Document}`
|
|
212
|
+
);
|
|
213
|
+
console.log('Registered schema type:', schema?.type);
|
|
214
|
+
```
|
|
@@ -14,7 +14,7 @@ Class to help with JSON LD.
|
|
|
14
14
|
|
|
15
15
|
## Methods
|
|
16
16
|
|
|
17
|
-
### validate()
|
|
17
|
+
### validate() {#validate}
|
|
18
18
|
|
|
19
19
|
> `static` **validate**\<`T`\>(`document`, `validationFailures`, `options?`): `Promise`\<`boolean`\>
|
|
20
20
|
|
|
@@ -64,11 +64,67 @@ True if the document was valid.
|
|
|
64
64
|
|
|
65
65
|
***
|
|
66
66
|
|
|
67
|
-
###
|
|
67
|
+
### toNodeObject() {#tonodeobject}
|
|
68
68
|
|
|
69
|
-
> `static` **
|
|
69
|
+
> `static` **toNodeObject**\<`T`\>(`object`): `T` & [`IJsonLdNodeObject`](../interfaces/IJsonLdNodeObject.md)
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
Convert an object to a JSON-LD node object.
|
|
72
|
+
|
|
73
|
+
#### Type Parameters
|
|
74
|
+
|
|
75
|
+
##### T
|
|
76
|
+
|
|
77
|
+
`T` = `unknown`
|
|
78
|
+
|
|
79
|
+
#### Parameters
|
|
80
|
+
|
|
81
|
+
##### object
|
|
82
|
+
|
|
83
|
+
`T`
|
|
84
|
+
|
|
85
|
+
The object to convert.
|
|
86
|
+
|
|
87
|
+
#### Returns
|
|
88
|
+
|
|
89
|
+
`T` & [`IJsonLdNodeObject`](../interfaces/IJsonLdNodeObject.md)
|
|
90
|
+
|
|
91
|
+
The JSON-LD node object.
|
|
92
|
+
|
|
93
|
+
***
|
|
94
|
+
|
|
95
|
+
### toStructuredObject() {#tostructuredobject}
|
|
96
|
+
|
|
97
|
+
> `static` **toStructuredObject**\<`T`\>(`nodeObject`): `T`
|
|
98
|
+
|
|
99
|
+
Convert the JSON-LD node object to a structured object.
|
|
100
|
+
|
|
101
|
+
#### Type Parameters
|
|
102
|
+
|
|
103
|
+
##### T
|
|
104
|
+
|
|
105
|
+
`T` = `unknown`
|
|
106
|
+
|
|
107
|
+
#### Parameters
|
|
108
|
+
|
|
109
|
+
##### nodeObject
|
|
110
|
+
|
|
111
|
+
[`IJsonLdNodeObject`](../interfaces/IJsonLdNodeObject.md)
|
|
112
|
+
|
|
113
|
+
The JSON-LD node object to convert.
|
|
114
|
+
|
|
115
|
+
#### Returns
|
|
116
|
+
|
|
117
|
+
`T`
|
|
118
|
+
|
|
119
|
+
The structured object.
|
|
120
|
+
|
|
121
|
+
***
|
|
122
|
+
|
|
123
|
+
### expand() {#expand}
|
|
124
|
+
|
|
125
|
+
> `static` **expand**(`document`): `Promise`\<[`IJsonLdNodeObject`](../interfaces/IJsonLdNodeObject.md)[]\>
|
|
126
|
+
|
|
127
|
+
Expand the JSON-LD document.
|
|
72
128
|
|
|
73
129
|
#### Parameters
|
|
74
130
|
|
|
@@ -76,7 +132,29 @@ Expand the JSON-LD document and check if it is of a specific type.
|
|
|
76
132
|
|
|
77
133
|
[`IJsonLdDocument`](../type-aliases/IJsonLdDocument.md)
|
|
78
134
|
|
|
79
|
-
The JSON-LD document to
|
|
135
|
+
The JSON-LD document to expand.
|
|
136
|
+
|
|
137
|
+
#### Returns
|
|
138
|
+
|
|
139
|
+
`Promise`\<[`IJsonLdNodeObject`](../interfaces/IJsonLdNodeObject.md)[]\>
|
|
140
|
+
|
|
141
|
+
The expanded JSON-LD document.
|
|
142
|
+
|
|
143
|
+
***
|
|
144
|
+
|
|
145
|
+
### isType() {#istype}
|
|
146
|
+
|
|
147
|
+
> `static` **isType**(`documentOrExpanded`, `type`): `Promise`\<`boolean`\>
|
|
148
|
+
|
|
149
|
+
Expand the JSON-LD document and check if it is of a specific type.
|
|
150
|
+
|
|
151
|
+
#### Parameters
|
|
152
|
+
|
|
153
|
+
##### documentOrExpanded
|
|
154
|
+
|
|
155
|
+
[`IJsonLdDocument`](../type-aliases/IJsonLdDocument.md)
|
|
156
|
+
|
|
157
|
+
The JSON-LD document to check or already expanded document.
|
|
80
158
|
|
|
81
159
|
##### type
|
|
82
160
|
|
|
@@ -92,19 +170,19 @@ True if the document is of the specified type.
|
|
|
92
170
|
|
|
93
171
|
***
|
|
94
172
|
|
|
95
|
-
### getType()
|
|
173
|
+
### getType() {#gettype}
|
|
96
174
|
|
|
97
|
-
> `static` **getType**(`
|
|
175
|
+
> `static` **getType**(`documentOrExpanded`): `Promise`\<`string`[]\>
|
|
98
176
|
|
|
99
177
|
Get the types from the document.
|
|
100
178
|
|
|
101
179
|
#### Parameters
|
|
102
180
|
|
|
103
|
-
#####
|
|
181
|
+
##### documentOrExpanded
|
|
104
182
|
|
|
105
183
|
[`IJsonLdDocument`](../type-aliases/IJsonLdDocument.md)
|
|
106
184
|
|
|
107
|
-
The JSON-LD document to check.
|
|
185
|
+
The JSON-LD document to check or already expanded document.
|
|
108
186
|
|
|
109
187
|
#### Returns
|
|
110
188
|
|
|
@@ -114,22 +192,180 @@ The type(s) extracted from the document.
|
|
|
114
192
|
|
|
115
193
|
***
|
|
116
194
|
|
|
117
|
-
### getId()
|
|
195
|
+
### getId() {#getid}
|
|
118
196
|
|
|
119
|
-
> `static` **getId**(`
|
|
197
|
+
> `static` **getId**(`documentOrExpanded`, `additionalIdProperties?`): `Promise`\<`string` \| `undefined`\>
|
|
120
198
|
|
|
121
199
|
Get the id from the document.
|
|
122
200
|
|
|
123
201
|
#### Parameters
|
|
124
202
|
|
|
125
|
-
#####
|
|
203
|
+
##### documentOrExpanded
|
|
126
204
|
|
|
127
205
|
[`IJsonLdDocument`](../type-aliases/IJsonLdDocument.md)
|
|
128
206
|
|
|
129
|
-
The JSON-LD document to get the id from.
|
|
207
|
+
The JSON-LD document to get the id from or already expanded document.
|
|
208
|
+
|
|
209
|
+
##### additionalIdProperties?
|
|
210
|
+
|
|
211
|
+
`string`[]
|
|
212
|
+
|
|
213
|
+
Optional additional properties to check for the id, in addition to "@id" and "id".
|
|
130
214
|
|
|
131
215
|
#### Returns
|
|
132
216
|
|
|
133
217
|
`Promise`\<`string` \| `undefined`\>
|
|
134
218
|
|
|
135
219
|
The id extracted from the document.
|
|
220
|
+
|
|
221
|
+
***
|
|
222
|
+
|
|
223
|
+
### getPropertyValue() {#getpropertyvalue}
|
|
224
|
+
|
|
225
|
+
> `static` **getPropertyValue**(`documentOrExpanded`, `propertyFullName`, `language?`): `Promise`\<[`IJsonLdNodePrimitive`](../type-aliases/IJsonLdNodePrimitive.md)[] \| `undefined`\>
|
|
226
|
+
|
|
227
|
+
Get property values by a single full expanded property name.
|
|
228
|
+
|
|
229
|
+
#### Parameters
|
|
230
|
+
|
|
231
|
+
##### documentOrExpanded
|
|
232
|
+
|
|
233
|
+
[`IJsonLdDocument`](../type-aliases/IJsonLdDocument.md)
|
|
234
|
+
|
|
235
|
+
The JSON-LD document to get the property from or already expanded document.
|
|
236
|
+
|
|
237
|
+
##### propertyFullName
|
|
238
|
+
|
|
239
|
+
`string`
|
|
240
|
+
|
|
241
|
+
The full expanded property name.
|
|
242
|
+
|
|
243
|
+
##### language?
|
|
244
|
+
|
|
245
|
+
`string`
|
|
246
|
+
|
|
247
|
+
Optional filter values by their language property.
|
|
248
|
+
|
|
249
|
+
#### Returns
|
|
250
|
+
|
|
251
|
+
`Promise`\<[`IJsonLdNodePrimitive`](../type-aliases/IJsonLdNodePrimitive.md)[] \| `undefined`\>
|
|
252
|
+
|
|
253
|
+
Matching property values for the input property.
|
|
254
|
+
|
|
255
|
+
***
|
|
256
|
+
|
|
257
|
+
### getPropertyValues() {#getpropertyvalues}
|
|
258
|
+
|
|
259
|
+
> `static` **getPropertyValues**(`documentOrExpanded`, `propertyFullNames`, `language?`): `Promise`\<([`IJsonLdNodePrimitive`](../type-aliases/IJsonLdNodePrimitive.md)[] \| `undefined`)[]\>
|
|
260
|
+
|
|
261
|
+
Get property values by their full expanded property names.
|
|
262
|
+
|
|
263
|
+
#### Parameters
|
|
264
|
+
|
|
265
|
+
##### documentOrExpanded
|
|
266
|
+
|
|
267
|
+
[`IJsonLdDocument`](../type-aliases/IJsonLdDocument.md)
|
|
268
|
+
|
|
269
|
+
The JSON-LD document to get the property from or already expanded document.
|
|
270
|
+
|
|
271
|
+
##### propertyFullNames
|
|
272
|
+
|
|
273
|
+
`string`[]
|
|
274
|
+
|
|
275
|
+
The full expanded property names.
|
|
276
|
+
|
|
277
|
+
##### language?
|
|
278
|
+
|
|
279
|
+
`string`
|
|
280
|
+
|
|
281
|
+
Optional filter values by their language property.
|
|
282
|
+
|
|
283
|
+
#### Returns
|
|
284
|
+
|
|
285
|
+
`Promise`\<([`IJsonLdNodePrimitive`](../type-aliases/IJsonLdNodePrimitive.md)[] \| `undefined`)[]\>
|
|
286
|
+
|
|
287
|
+
Matching property values for each input property, in the same index order.
|
|
288
|
+
|
|
289
|
+
***
|
|
290
|
+
|
|
291
|
+
### prefixProperties() {#prefixproperties}
|
|
292
|
+
|
|
293
|
+
> `static` **prefixProperties**\<`T`\>(`nodeObject`, `prefix`, `properties?`): [`IJsonLdNodeObject`](../interfaces/IJsonLdNodeObject.md)
|
|
294
|
+
|
|
295
|
+
Prefix all properties in the document with the provided prefix, except for JSON-LD properties.
|
|
296
|
+
This is useful for ensuring that all properties are fully qualified with a namespace.
|
|
297
|
+
For example, if the prefix is "ex" and the document has a property "name", it will be transformed to "ex:name".
|
|
298
|
+
|
|
299
|
+
#### Type Parameters
|
|
300
|
+
|
|
301
|
+
##### T
|
|
302
|
+
|
|
303
|
+
`T` *extends* [`IJsonLdNodeObject`](../interfaces/IJsonLdNodeObject.md)
|
|
304
|
+
|
|
305
|
+
#### Parameters
|
|
306
|
+
|
|
307
|
+
##### nodeObject
|
|
308
|
+
|
|
309
|
+
`T`
|
|
310
|
+
|
|
311
|
+
The JSON-LD node object to prefix properties on.
|
|
312
|
+
|
|
313
|
+
##### prefix
|
|
314
|
+
|
|
315
|
+
`string`
|
|
316
|
+
|
|
317
|
+
The prefix to add to the properties.
|
|
318
|
+
|
|
319
|
+
##### properties?
|
|
320
|
+
|
|
321
|
+
`string`[]
|
|
322
|
+
|
|
323
|
+
Optional list of properties to prefix. If not provided, all properties except for JSON-LD properties.
|
|
324
|
+
|
|
325
|
+
#### Returns
|
|
326
|
+
|
|
327
|
+
[`IJsonLdNodeObject`](../interfaces/IJsonLdNodeObject.md)
|
|
328
|
+
|
|
329
|
+
A new JSON-LD node object with the properties prefixed.
|
|
330
|
+
|
|
331
|
+
***
|
|
332
|
+
|
|
333
|
+
### stripPrefixProperties() {#stripprefixproperties}
|
|
334
|
+
|
|
335
|
+
> `static` **stripPrefixProperties**\<`T`\>(`nodeObject`, `prefix`, `properties?`): [`IJsonLdNodeObject`](../interfaces/IJsonLdNodeObject.md)
|
|
336
|
+
|
|
337
|
+
Strip a prefix from properties in the document, except for JSON-LD properties.
|
|
338
|
+
This is useful for converting fully qualified namespaced properties back to local names.
|
|
339
|
+
For example, if the prefix is "ex" and the document has a property "ex:name", it will be transformed to "name".
|
|
340
|
+
|
|
341
|
+
#### Type Parameters
|
|
342
|
+
|
|
343
|
+
##### T
|
|
344
|
+
|
|
345
|
+
`T` *extends* [`IJsonLdNodeObject`](../interfaces/IJsonLdNodeObject.md)
|
|
346
|
+
|
|
347
|
+
#### Parameters
|
|
348
|
+
|
|
349
|
+
##### nodeObject
|
|
350
|
+
|
|
351
|
+
`T`
|
|
352
|
+
|
|
353
|
+
The JSON-LD node object to strip prefixed properties from.
|
|
354
|
+
|
|
355
|
+
##### prefix
|
|
356
|
+
|
|
357
|
+
`string`
|
|
358
|
+
|
|
359
|
+
The prefix to remove from the properties.
|
|
360
|
+
|
|
361
|
+
##### properties?
|
|
362
|
+
|
|
363
|
+
`string`[]
|
|
364
|
+
|
|
365
|
+
Optional list of unprefixed properties to strip. If not provided, all matching prefixed properties.
|
|
366
|
+
|
|
367
|
+
#### Returns
|
|
368
|
+
|
|
369
|
+
[`IJsonLdNodeObject`](../interfaces/IJsonLdNodeObject.md)
|
|
370
|
+
|
|
371
|
+
A new JSON-LD node object with the prefix stripped from matching properties.
|