@ifc-lite/semantic 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +22 -0
  3. package/dist/bsdd.d.ts +40 -0
  4. package/dist/bsdd.d.ts.map +1 -0
  5. package/dist/bsdd.js +53 -0
  6. package/dist/bsdd.js.map +1 -0
  7. package/dist/dictionary.d.ts +26 -0
  8. package/dist/dictionary.d.ts.map +1 -0
  9. package/dist/dictionary.js +36 -0
  10. package/dist/dictionary.js.map +1 -0
  11. package/dist/graph-import.d.ts +11 -0
  12. package/dist/graph-import.d.ts.map +1 -0
  13. package/dist/graph-import.js +79 -0
  14. package/dist/graph-import.js.map +1 -0
  15. package/dist/graph.d.ts +4 -0
  16. package/dist/graph.d.ts.map +1 -0
  17. package/dist/graph.js +29 -0
  18. package/dist/graph.js.map +1 -0
  19. package/dist/index.d.ts +15 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +13 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/profile-artifacts.d.ts +104 -0
  24. package/dist/profile-artifacts.d.ts.map +1 -0
  25. package/dist/profile-artifacts.js +123 -0
  26. package/dist/profile-artifacts.js.map +1 -0
  27. package/dist/profile-index.d.ts +15 -0
  28. package/dist/profile-index.d.ts.map +1 -0
  29. package/dist/profile-index.js +11 -0
  30. package/dist/profile-index.js.map +1 -0
  31. package/dist/profile-types.d.ts +21 -0
  32. package/dist/profile-types.d.ts.map +1 -0
  33. package/dist/profile-types.js +5 -0
  34. package/dist/profile-types.js.map +1 -0
  35. package/dist/profiles.d.ts +38 -0
  36. package/dist/profiles.d.ts.map +1 -0
  37. package/dist/profiles.js +174 -0
  38. package/dist/profiles.js.map +1 -0
  39. package/dist/projection.d.ts +8 -0
  40. package/dist/projection.d.ts.map +1 -0
  41. package/dist/projection.js +70 -0
  42. package/dist/projection.js.map +1 -0
  43. package/dist/provider.d.ts +35 -0
  44. package/dist/provider.d.ts.map +1 -0
  45. package/dist/provider.js +98 -0
  46. package/dist/provider.js.map +1 -0
  47. package/dist/query.d.ts +7 -0
  48. package/dist/query.d.ts.map +1 -0
  49. package/dist/query.js +57 -0
  50. package/dist/query.js.map +1 -0
  51. package/dist/resolver.d.ts +56 -0
  52. package/dist/resolver.d.ts.map +1 -0
  53. package/dist/resolver.js +89 -0
  54. package/dist/resolver.js.map +1 -0
  55. package/dist/results.d.ts +14 -0
  56. package/dist/results.d.ts.map +1 -0
  57. package/dist/results.js +73 -0
  58. package/dist/results.js.map +1 -0
  59. package/dist/server-listener.d.ts +5 -0
  60. package/dist/server-listener.d.ts.map +1 -0
  61. package/dist/server-listener.js +46 -0
  62. package/dist/server-listener.js.map +1 -0
  63. package/dist/server.d.ts +21 -0
  64. package/dist/server.d.ts.map +1 -0
  65. package/dist/server.js +141 -0
  66. package/dist/server.js.map +1 -0
  67. package/dist/shacl-parameters.d.ts +6 -0
  68. package/dist/shacl-parameters.d.ts.map +1 -0
  69. package/dist/shacl-parameters.js +65 -0
  70. package/dist/shacl-parameters.js.map +1 -0
  71. package/dist/shacl-targets.d.ts +12 -0
  72. package/dist/shacl-targets.d.ts.map +1 -0
  73. package/dist/shacl-targets.js +114 -0
  74. package/dist/shacl-targets.js.map +1 -0
  75. package/dist/types.d.ts +40 -0
  76. package/dist/types.d.ts.map +1 -0
  77. package/dist/types.js +19 -0
  78. package/dist/types.js.map +1 -0
  79. package/dist/validation-report.d.ts +35 -0
  80. package/dist/validation-report.d.ts.map +1 -0
  81. package/dist/validation-report.js +20 -0
  82. package/dist/validation-report.js.map +1 -0
  83. package/dist/validation.d.ts +26 -0
  84. package/dist/validation.d.ts.map +1 -0
  85. package/dist/validation.js +201 -0
  86. package/dist/validation.js.map +1 -0
  87. package/dist/workspace.d.ts +32 -0
  88. package/dist/workspace.d.ts.map +1 -0
  89. package/dist/workspace.js +140 -0
  90. package/dist/workspace.js.map +1 -0
  91. package/package.json +52 -0
@@ -0,0 +1,79 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ import jsonld from 'jsonld';
5
+ import { Parser, Writer } from 'n3';
6
+ import { LIMITS, isObject } from './types.js';
7
+ /** Reject remote and scoped remote contexts before conversion; imports never run code or fetch URLs. */
8
+ function assertInlineContexts(value) {
9
+ const pending = [value];
10
+ let visits = 0;
11
+ while (pending.length) {
12
+ if (++visits > 100000)
13
+ throw new Error('JSON-LD exceeds the 100,000 node work limit');
14
+ const node = pending.pop();
15
+ if (Array.isArray(node)) {
16
+ for (const value of node)
17
+ pending.push(value);
18
+ continue;
19
+ }
20
+ if (!isObject(node))
21
+ continue;
22
+ if ('@context' in node) {
23
+ const contexts = Array.isArray(node['@context']) ? node['@context'] : [node['@context']];
24
+ if (contexts.some(context => context !== null && !isObject(context)))
25
+ throw new Error('Only inline JSON-LD contexts are supported; remote contexts are disabled');
26
+ }
27
+ if ('@import' in node)
28
+ throw new Error('JSON-LD context imports are disabled');
29
+ for (const value of Object.values(node))
30
+ pending.push(value);
31
+ }
32
+ }
33
+ export async function parseGraph(input, options) {
34
+ const maxBytes = options.maxBytes ?? LIMITS.bytes;
35
+ const maxQuads = options.maxQuads ?? LIMITS.quads;
36
+ if (!Number.isInteger(maxBytes) || maxBytes < 1 || maxBytes > LIMITS.bytes || !Number.isInteger(maxQuads) || maxQuads < 1 || maxQuads > LIMITS.quads)
37
+ throw new Error('Invalid graph import limits');
38
+ const serialized = typeof input === 'string' ? input : JSON.stringify(input);
39
+ if (typeof serialized !== 'string' || new TextEncoder().encode(serialized).byteLength > maxBytes)
40
+ throw new Error('Graph exceeds the byte limit');
41
+ let rdf;
42
+ if (options.format === 'application/ld+json') {
43
+ let document = input;
44
+ if (typeof input === 'string') {
45
+ try {
46
+ document = JSON.parse(input);
47
+ }
48
+ catch {
49
+ throw new Error('Invalid JSON-LD JSON syntax; provide a valid JSON object or array');
50
+ }
51
+ }
52
+ if (!isObject(document) && !Array.isArray(document))
53
+ throw new Error('Expected a JSON-LD document');
54
+ assertInlineContexts(document);
55
+ const converted = await jsonld.toRDF(document, { format: 'application/n-quads',
56
+ documentLoader: async () => { throw new Error('Remote JSON-LD documents and contexts are disabled'); } });
57
+ if (typeof converted !== 'string')
58
+ throw new Error('Expected N-Quads from JSON-LD conversion');
59
+ rdf = converted;
60
+ }
61
+ else {
62
+ if (typeof input !== 'string')
63
+ throw new Error('Turtle and N-Quads input must be text');
64
+ rdf = input;
65
+ }
66
+ if (new TextEncoder().encode(rdf).byteLength > maxBytes)
67
+ throw new Error('Converted graph exceeds the byte limit');
68
+ const quads = new Parser({ format: options.format === 'text/turtle' ? 'text/turtle' : 'N-Quads' }).parse(rdf);
69
+ if (quads.length > maxQuads)
70
+ throw new Error('Graph exceeds the quad limit');
71
+ // N-Quads retains graph names, blank nodes, repeated predicates and literal metadata.
72
+ const writer = new Writer({ format: 'N-Quads' });
73
+ writer.addQuads(quads);
74
+ const graph = await new Promise((resolve, reject) => writer.end((error, value) => error ? reject(error) : resolve(value)));
75
+ if (new TextEncoder().encode(graph).byteLength > maxBytes)
76
+ throw new Error('Serialized graph exceeds the byte limit');
77
+ return { graph, format: 'application/n-quads', quadCount: quads.length };
78
+ }
79
+ //# sourceMappingURL=graph-import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-import.js","sourceRoot":"","sources":["../src/graph-import.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type SemanticRecord } from './types.js';
2
+ /** Keep original dataset text for named graph identity; records are an explicit subject projection. */
3
+ export declare function recordsFromGraph(graph: string, format?: 'text/turtle' | 'application/n-quads'): SemanticRecord[];
4
+ //# sourceMappingURL=graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"AAKA,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAE1E,uGAAuG;AACvG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,aAAa,GAAG,qBAAqC,GAAG,cAAc,EAAE,CAc/H"}
package/dist/graph.js ADDED
@@ -0,0 +1,29 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ import { Parser } from 'n3';
5
+ import { LIMITS } from './types.js';
6
+ import { createRecordAccumulator } from './results.js';
7
+ /** Keep original dataset text for named graph identity; records are an explicit subject projection. */
8
+ export function recordsFromGraph(graph, format = 'text/turtle') {
9
+ if (new TextEncoder().encode(graph).length > LIMITS.bytes)
10
+ throw new Error('RDF graph exceeds byte limit');
11
+ const quads = new Parser({ format }).parse(graph);
12
+ if (quads.length > LIMITS.quads)
13
+ throw new Error('RDF graph exceeds quad limit');
14
+ const term = (value) => {
15
+ if (value.termType === 'NamedNode')
16
+ return { type: 'uri', value: value.value };
17
+ if (value.termType === 'BlankNode')
18
+ return { type: 'bnode', value: value.value };
19
+ if (value.termType === 'Literal')
20
+ return { type: 'literal', value: value.value,
21
+ ...(value.language ? { 'xml:lang': value.language } : { datatype: value.datatype.value }) };
22
+ throw new Error('RDF-star quoted triples are outside the supported RDF 1.1 term model');
23
+ };
24
+ const accumulator = createRecordAccumulator();
25
+ for (const quad of quads)
26
+ accumulator.append(term(quad.subject), term(quad.predicate), term(quad.object));
27
+ return accumulator.records();
28
+ }
29
+ //# sourceMappingURL=graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAwC,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,uGAAuG;AACvG,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,SAAgD,aAAa;IAC3G,IAAI,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC3G,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACjF,MAAM,IAAI,GAAG,CAAC,KAAuC,EAAc,EAAE;QACnE,IAAI,KAAK,CAAC,QAAQ,KAAK,WAAW;YAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/E,IAAI,KAAK,CAAC,QAAQ,KAAK,WAAW;YAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QACjF,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;YAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK;gBAC5E,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;QAC9F,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,uBAAuB,EAAE,CAAC;IAC9C,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1G,OAAO,WAAW,CAAC,OAAO,EAAE,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,15 @@
1
+ export { GUID_PATTERN, LIMITS, assertIri } from './types.js';
2
+ export type { RdfBinding, SparqlResults, SemanticRecord, SemanticDataset } from './types.js';
3
+ export { parseResults, recordsFromResults } from './results.js';
4
+ export { assertReadOnlyQuery, relatedResourceQuery, relatedIdentityQuery } from './query.js';
5
+ export { createSemanticProvider, request } from './provider.js';
6
+ export type { SemanticProvider, ProviderReadOptions, ProviderResult } from './provider.js';
7
+ export { ResolverRegistry, IFC_GLOBAL_ID_STRATEGY, resolveResource, createResourceLinkStrategy, createProfileMappingStrategy } from './resolver.js';
8
+ export type { EntityAddress, LiveEntity, Resolution, IdentityRecord, ResolverContext, IdentityStrategy, ResourceIdentityLink } from './resolver.js';
9
+ export { exportWorkspace, importWorkspace, sanitizeSource } from './workspace.js';
10
+ export type { SemanticWorkspace, WorkspaceQuery, RevisionLink, ImportedWorkspace } from './workspace.js';
11
+ export * from './profile-index.js';
12
+ export { resourcesFromResults, DEFAULT_MAPPING } from './projection.js';
13
+ export type { BindingMapping } from './projection.js';
14
+ export { recordsFromGraph } from './graph.js';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC7D,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAChE,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,eAAe,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AACpJ,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACpJ,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAClF,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACzG,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,13 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ export { GUID_PATTERN, LIMITS, assertIri } from './types.js';
5
+ export { parseResults, recordsFromResults } from './results.js';
6
+ export { assertReadOnlyQuery, relatedResourceQuery, relatedIdentityQuery } from './query.js';
7
+ export { createSemanticProvider, request } from './provider.js';
8
+ export { ResolverRegistry, IFC_GLOBAL_ID_STRATEGY, resolveResource, createResourceLinkStrategy, createProfileMappingStrategy } from './resolver.js';
9
+ export { exportWorkspace, importWorkspace, sanitizeSource } from './workspace.js';
10
+ export * from './profile-index.js';
11
+ export { resourcesFromResults, DEFAULT_MAPPING } from './projection.js';
12
+ export { recordsFromGraph } from './graph.js';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,eAAe,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAEpJ,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAElF,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,104 @@
1
+ import type { ContextDefinition } from 'jsonld';
2
+ import { type ProfileDefinition } from './profiles.js';
3
+ export declare function resourceSchema(type: string, profile?: ProfileDefinition, structural?: boolean): {
4
+ type: string;
5
+ additionalProperties: boolean;
6
+ required: string[];
7
+ properties: {
8
+ id: {
9
+ type: string;
10
+ format: string;
11
+ };
12
+ type: {
13
+ const: string;
14
+ };
15
+ };
16
+ };
17
+ export declare function exchangeSchema(profile?: ProfileDefinition, structural?: boolean): {
18
+ $schema: string;
19
+ $id: string;
20
+ type: string;
21
+ additionalProperties: boolean;
22
+ required: string[];
23
+ properties: {
24
+ profile: {
25
+ const: string;
26
+ };
27
+ source: {
28
+ type: string;
29
+ format: string;
30
+ };
31
+ completeness: {
32
+ enum: string[];
33
+ };
34
+ resources: {
35
+ type: string;
36
+ maxItems: number;
37
+ items: {
38
+ oneOf: {
39
+ type: string;
40
+ additionalProperties: boolean;
41
+ required: string[];
42
+ properties: {
43
+ id: {
44
+ type: string;
45
+ format: string;
46
+ };
47
+ type: {
48
+ const: string;
49
+ };
50
+ };
51
+ }[];
52
+ };
53
+ };
54
+ };
55
+ };
56
+ export declare function profileContext(profile?: ProfileDefinition): ContextDefinition;
57
+ export declare function shapesTurtle(profile?: ProfileDefinition): Promise<string>;
58
+ export declare function vocabularyTurtle(profile?: ProfileDefinition): Promise<string>;
59
+ export declare function generateArtifacts(profile?: ProfileDefinition): Promise<{
60
+ schema: {
61
+ $schema: string;
62
+ $id: string;
63
+ type: string;
64
+ additionalProperties: boolean;
65
+ required: string[];
66
+ properties: {
67
+ profile: {
68
+ const: string;
69
+ };
70
+ source: {
71
+ type: string;
72
+ format: string;
73
+ };
74
+ completeness: {
75
+ enum: string[];
76
+ };
77
+ resources: {
78
+ type: string;
79
+ maxItems: number;
80
+ items: {
81
+ oneOf: {
82
+ type: string;
83
+ additionalProperties: boolean;
84
+ required: string[];
85
+ properties: {
86
+ id: {
87
+ type: string;
88
+ format: string;
89
+ };
90
+ type: {
91
+ const: string;
92
+ };
93
+ };
94
+ }[];
95
+ };
96
+ };
97
+ };
98
+ };
99
+ context: ContextDefinition;
100
+ shapes: string;
101
+ vocabulary: string;
102
+ dictionary: import("./dictionary.js").SemanticDictionary;
103
+ }>;
104
+ //# sourceMappingURL=profile-artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-artifacts.d.ts","sourceRoot":"","sources":["../src/profile-artifacts.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAkC,KAAK,iBAAiB,EAAqB,MAAM,eAAe,CAAC;AAyB1G,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,oBAAkB,EAAE,UAAU,UAAQ;;;;;;;;;;;;;EAazF;AACD,wBAAgB,cAAc,CAAC,OAAO,oBAAkB,EAAE,UAAU,UAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK3E;AACD,wBAAgB,cAAc,CAAC,OAAO,oBAAkB,GAAG,iBAAiB,CAO3E;AAED,wBAAsB,YAAY,CAAC,OAAO,oBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA8B7E;AACD,wBAAsB,gBAAgB,CAAC,OAAO,oBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAajF;AACD,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,iBAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGnF"}
@@ -0,0 +1,123 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ import { DataFactory, Writer } from 'n3';
5
+ import { assertProfile, DEFAULT_PROFILE } from './profiles.js';
6
+ import { profileToDictionary } from './dictionary.js';
7
+ import { LIMITS } from './types.js';
8
+ const { namedNode: n, literal: l, blankNode: b } = DataFactory;
9
+ const RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';
10
+ const SH = 'http://www.w3.org/ns/shacl#';
11
+ const XSD = 'http://www.w3.org/2001/XMLSchema#';
12
+ const RDFS = 'http://www.w3.org/2000/01/rdf-schema#';
13
+ const datatype = (field) => field.kind === 'language' ? RDF + 'langString' : XSD + (field.kind === 'number' ? 'double' : field.kind === 'integer' ? 'integer' : field.kind === 'boolean' ? 'boolean' : 'string');
14
+ // JSON-LD 1.1 serializes double values in canonical scientific notation. sh:in
15
+ // uses RDF term equality, so enums must use the identical lexical representation.
16
+ const rdfValue = (field, value) => field.kind === 'iri' ? n(String(value))
17
+ : l(field.kind === 'number' && typeof value === 'number' ? value.toExponential(15).replace(/(\d)0*e\+?/, '$1E') : String(value), n(datatype(field)));
18
+ const valueBounds = (field) => ({
19
+ minimum: field.minimum ?? (field.kind === 'integer' ? Number.MIN_SAFE_INTEGER : undefined),
20
+ maximum: field.maximum ?? (field.kind === 'integer' ? Number.MAX_SAFE_INTEGER : undefined),
21
+ });
22
+ function scalarSchema(field) {
23
+ const bounds = valueBounds(field);
24
+ return field.kind === 'language' ? { type: 'object', minProperties: 1, additionalProperties: false,
25
+ patternProperties: { '^[A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})*$': { type: 'string', maxLength: LIMITS.literalCharacters } } }
26
+ : { type: field.kind === 'iri' ? 'string' : field.kind, ...(['iri', 'string'].includes(field.kind) ? { maxLength: LIMITS.literalCharacters } : {}), ...(field.kind === 'iri' ? { format: 'uri' } : {}),
27
+ ...(field.enum ? { enum: field.enum } : {}), ...(field.pattern ? { pattern: field.pattern } : {}),
28
+ ...(bounds.minimum !== undefined ? { minimum: bounds.minimum } : {}), ...(bounds.maximum !== undefined ? { maximum: bounds.maximum } : {}) };
29
+ }
30
+ export function resourceSchema(type, profile = DEFAULT_PROFILE, structural = false) {
31
+ assertProfile(profile);
32
+ const definition = profile.types[type];
33
+ if (!Object.hasOwn(profile.types, type))
34
+ throw new Error(`Unknown resource type: ${type}`);
35
+ return { type: 'object', additionalProperties: false, required: [...new Set(['id', 'type', 'label',
36
+ ...(!structural ? Object.entries(definition.fields).filter(([, count]) => (count.minCount ?? 0) > 0).map(([key]) => key) : [])])],
37
+ properties: { id: { type: 'string', format: 'uri' }, type: { const: type },
38
+ ...Object.fromEntries(Object.entries(definition.fields).map(([key, count]) => {
39
+ const original = profile.fields[key];
40
+ const scalar = scalarSchema(structural ? { iri: original.iri, kind: original.kind } : original);
41
+ return [key, (count.maxCount ?? 1) > 1 ? { type: 'array', uniqueItems: true, items: scalar, maxItems: count.maxCount,
42
+ ...(!structural ? { minItems: count.minCount ?? 0 } : {}) } : scalar];
43
+ })) } };
44
+ }
45
+ export function exchangeSchema(profile = DEFAULT_PROFILE, structural = false) {
46
+ assertProfile(profile);
47
+ return { $schema: 'http://json-schema.org/draft-07/schema#', $id: profile.id, type: 'object', additionalProperties: false, required: ['profile', 'source', 'completeness', 'resources'],
48
+ properties: { profile: { const: profile.id }, source: { type: 'string', format: 'uri' }, completeness: { enum: ['complete', 'partial'] },
49
+ resources: { type: 'array', maxItems: 5000, items: { oneOf: Object.keys(profile.types).map(type => resourceSchema(type, profile, structural)) } } } };
50
+ }
51
+ export function profileContext(profile = DEFAULT_PROFILE) {
52
+ assertProfile(profile);
53
+ return { id: '@id', type: '@type', ...Object.fromEntries(Object.entries(profile.types).map(([key, value]) => [key, value.iri])),
54
+ ...Object.fromEntries(Object.entries(profile.fields).map(([key, field]) => [key,
55
+ field.kind === 'iri' ? { '@id': field.iri, '@type': '@id' }
56
+ : field.kind === 'language' ? { '@id': field.iri, '@container': '@language' }
57
+ : field.kind === 'string' ? field.iri : { '@id': field.iri, '@type': datatype(field) }])) };
58
+ }
59
+ const finish = (writer) => new Promise((resolve, reject) => writer.end((error, value) => error ? reject(error) : resolve(value)));
60
+ export async function shapesTurtle(profile = DEFAULT_PROFILE) {
61
+ assertProfile(profile);
62
+ const writer = new Writer({ prefixes: { sh: SH, rdf: RDF, xsd: XSD } });
63
+ const add = (subject, predicate, object) => writer.addQuad(subject, n(predicate), object);
64
+ const list = (values) => {
65
+ const cells = values.map(() => b());
66
+ cells.forEach((cell, i) => { add(cell, RDF + 'first', values[i]); add(cell, RDF + 'rest', cells[i + 1] ?? n(RDF + 'nil')); });
67
+ return cells[0] ?? n(RDF + 'nil');
68
+ };
69
+ for (const [key, definition] of Object.entries(profile.types)) {
70
+ const shape = n(profile.vocabulary + key + 'Shape');
71
+ add(shape, RDF + 'type', n(SH + 'NodeShape'));
72
+ add(shape, SH + 'targetClass', n(definition.iri));
73
+ add(shape, SH + 'closed', l('true', n(XSD + 'boolean')));
74
+ add(shape, SH + 'ignoredProperties', list([n(RDF + 'type')]));
75
+ for (const [name, count] of Object.entries(definition.fields)) {
76
+ const field = profile.fields[name];
77
+ const property = b();
78
+ const bounds = valueBounds(field);
79
+ add(shape, SH + 'property', property);
80
+ add(property, SH + 'path', n(field.iri));
81
+ add(property, SH + 'minCount', l(count.minCount ?? 0));
82
+ if (field.kind !== 'language')
83
+ add(property, SH + 'maxCount', l(count.maxCount ?? 1));
84
+ else
85
+ add(property, SH + 'uniqueLang', l('true', n(XSD + 'boolean')));
86
+ add(property, field.kind === 'iri' ? SH + 'nodeKind' : SH + 'datatype', n(field.kind === 'iri' ? SH + 'IRI' : datatype(field)));
87
+ if (['string', 'iri', 'language'].includes(field.kind))
88
+ add(property, SH + 'maxLength', l(LIMITS.literalCharacters));
89
+ if (field.targetType)
90
+ add(property, SH + 'class', n(profile.types[field.targetType].iri));
91
+ if (field.pattern)
92
+ add(property, SH + 'pattern', l(field.pattern));
93
+ if (bounds.minimum !== undefined)
94
+ add(property, SH + 'minInclusive', l(String(bounds.minimum), n(datatype(field))));
95
+ if (bounds.maximum !== undefined)
96
+ add(property, SH + 'maxInclusive', l(String(bounds.maximum), n(datatype(field))));
97
+ if (field.enum)
98
+ add(property, SH + 'in', list(field.enum.map(value => rdfValue(field, value))));
99
+ }
100
+ }
101
+ return finish(writer);
102
+ }
103
+ export async function vocabularyTurtle(profile = DEFAULT_PROFILE) {
104
+ assertProfile(profile);
105
+ const writer = new Writer({ prefixes: { rdf: RDF, rdfs: RDFS, xsd: XSD } });
106
+ for (const [name, type] of Object.entries(profile.types)) {
107
+ writer.addQuad(n(type.iri), n(RDF + 'type'), n(RDFS + 'Class'));
108
+ for (const [language, label] of Object.entries(type.labels ?? { en: name }))
109
+ writer.addQuad(n(type.iri), n(RDFS + 'label'), l(label, language));
110
+ }
111
+ for (const [name, field] of Object.entries(profile.fields)) {
112
+ writer.addQuad(n(field.iri), n(RDF + 'type'), n(RDF + 'Property'));
113
+ for (const [language, label] of Object.entries(field.labels ?? { en: name }))
114
+ writer.addQuad(n(field.iri), n(RDFS + 'label'), l(label, language));
115
+ writer.addQuad(n(field.iri), n(RDFS + 'range'), n(field.kind === 'iri' ? RDFS + 'Resource' : datatype(field)));
116
+ }
117
+ return finish(writer);
118
+ }
119
+ export async function generateArtifacts(profile = DEFAULT_PROFILE) {
120
+ const [shapes, vocabulary] = await Promise.all([shapesTurtle(profile), vocabularyTurtle(profile)]);
121
+ return { schema: exchangeSchema(profile), context: profileContext(profile), shapes, vocabulary, dictionary: profileToDictionary(profile) };
122
+ }
123
+ //# sourceMappingURL=profile-artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-artifacts.js","sourceRoot":"","sources":["../src/profile-artifacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export { DEFAULT_PROFILE, PROFILE_ID, VOCAB, RESOURCE_TYPES, GUID_PATTERN, assertProfile } from './profiles.js';
2
+ export type { ProfileDefinition, ProfileField, ProfileType } from './profiles.js';
3
+ export type { SemanticResource, SemanticDocument, ValidationFinding } from './profile-types.js';
4
+ export { exchangeSchema, profileContext, shapesTurtle, vocabularyTurtle, generateArtifacts } from './profile-artifacts.js';
5
+ export { parseProfileDocument, parseDocument, parseImport, validateJson, validateLinks, asJsonLd, toRdf, validateGraph } from './validation.js';
6
+ export type { GraphValidationOptions } from './validation.js';
7
+ export { createValidationReport } from './validation-report.js';
8
+ export type { ValidationReport } from './validation-report.js';
9
+ export { parseGraph } from './graph-import.js';
10
+ export type { GraphImportOptions } from './graph-import.js';
11
+ export { profileToDictionary, dictionaryToProfile } from './dictionary.js';
12
+ export type { SemanticDictionary, DictionaryImport } from './dictionary.js';
13
+ export { profileFromBsdd } from './bsdd.js';
14
+ export type { BsddProvider, BsddClass } from './bsdd.js';
15
+ //# sourceMappingURL=profile-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-index.d.ts","sourceRoot":"","sources":["../src/profile-index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAChH,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAClF,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3H,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChJ,YAAY,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,11 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ export { DEFAULT_PROFILE, PROFILE_ID, VOCAB, RESOURCE_TYPES, GUID_PATTERN, assertProfile } from './profiles.js';
5
+ export { exchangeSchema, profileContext, shapesTurtle, vocabularyTurtle, generateArtifacts } from './profile-artifacts.js';
6
+ export { parseProfileDocument, parseDocument, parseImport, validateJson, validateLinks, asJsonLd, toRdf, validateGraph } from './validation.js';
7
+ export { createValidationReport } from './validation-report.js';
8
+ export { parseGraph } from './graph-import.js';
9
+ export { profileToDictionary, dictionaryToProfile } from './dictionary.js';
10
+ export { profileFromBsdd } from './bsdd.js';
11
+ //# sourceMappingURL=profile-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-index.js","sourceRoot":"","sources":["../src/profile-index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGhH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3H,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhJ,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3E,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,21 @@
1
+ export type { ProfileDefinition, ProfileField, ProfileType } from './profiles.js';
2
+ export interface SemanticResource {
3
+ id: string;
4
+ type: string;
5
+ label: string;
6
+ [key: string]: unknown;
7
+ }
8
+ export interface SemanticDocument {
9
+ profile: string;
10
+ source: string;
11
+ completeness: 'complete' | 'partial';
12
+ resources: SemanticResource[];
13
+ }
14
+ export interface ValidationFinding {
15
+ engine: 'JSON Schema' | 'SHACL' | 'links';
16
+ resourceId: string;
17
+ path: string;
18
+ message: string;
19
+ severity?: 'Violation' | 'Warning' | 'Info';
20
+ }
21
+ //# sourceMappingURL=profile-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-types.d.ts","sourceRoot":"","sources":["../src/profile-types.ts"],"names":[],"mappings":"AAIA,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAClF,MAAM,WAAW,gBAAgB;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE;AACrG,MAAM,WAAW,gBAAgB;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,UAAU,GAAG,SAAS,CAAC;IAAC,SAAS,EAAE,gBAAgB,EAAE,CAAA;CAAE;AAC1I,MAAM,WAAW,iBAAiB;IAAG,MAAM,EAAE,aAAa,GAAG,OAAO,GAAG,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,CAAA;CAAE"}
@@ -0,0 +1,5 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ export {};
5
+ //# sourceMappingURL=profile-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-types.js","sourceRoot":"","sources":["../src/profile-types.ts"],"names":[],"mappings":"AAAA;;+DAE+D"}
@@ -0,0 +1,38 @@
1
+ export { GUID_PATTERN } from './types.js';
2
+ export interface ProfileField {
3
+ iri: string;
4
+ kind: 'string' | 'number' | 'integer' | 'boolean' | 'iri' | 'language';
5
+ labels?: Record<string, string>;
6
+ enum?: (string | number | boolean)[];
7
+ pattern?: string;
8
+ minimum?: number;
9
+ maximum?: number;
10
+ unit?: string;
11
+ targetType?: string;
12
+ external?: boolean;
13
+ }
14
+ export interface ProfileType {
15
+ iri: string;
16
+ labels?: Record<string, string>;
17
+ fields: Record<string, {
18
+ minCount?: number;
19
+ maxCount?: number;
20
+ }>;
21
+ }
22
+ export interface ProfileDefinition {
23
+ id: string;
24
+ version: string;
25
+ vocabulary: string;
26
+ fields: Record<string, ProfileField>;
27
+ types: Record<string, ProfileType>;
28
+ }
29
+ export declare const PROFILE_ID = "https://example.org/ifc-lite/semantic-pilot/v1";
30
+ export declare const VOCAB = "https://example.org/ifc-lite/semantic-pilot#";
31
+ export declare const RESOURCE_TYPES: readonly ["Building", "Logbook", "Installation", "Product", "Passport", "Inspection"];
32
+ export declare const DEFAULT_PROFILE: ProfileDefinition;
33
+ export declare function isUri(value: string): boolean;
34
+ /** Shared bounded pattern policy for both profile-generated and imported shapes. */
35
+ export declare function assertBoundedPattern(pattern: string, location: string): void;
36
+ /** Validate profiles before compiling schemas or executing graph validation. */
37
+ export declare function assertProfile(value: unknown): asserts value is ProfileDefinition;
38
+ //# sourceMappingURL=profiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../src/profiles.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,GAAG,UAAU,CAAC;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AACD,MAAM,WAAW,WAAW;IAAG,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE;AAC/I,MAAM,WAAW,iBAAiB;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;CAAE;AAChK,eAAO,MAAM,UAAU,mDAAmD,CAAC;AAC3E,eAAO,MAAM,KAAK,iDAAiD,CAAC;AACpE,eAAO,MAAM,cAAc,uFAAwF,CAAC;AAKpH,eAAO,MAAM,eAAe,EAAE,iBAkB7B,CAAC;AACF,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE5C;AACD,oFAAoF;AACpF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CA8B5E;AACD,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,iBAAiB,CA4DhF"}