@lblod/ember-rdfa-editor 13.4.1 → 13.5.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.
- package/declarations/utils/_private/datastore/datastore.d.ts +8 -8
- package/declarations/utils/_private/datastore/n3-store-wrapper.d.ts +35 -0
- package/declarations/utils/_private/rdfa-parser/rdfa-parser.d.ts +2 -2
- package/dist/commands/_private/rdfa-commands/remove-backlink.js +1 -1
- package/dist/commands/_private/rdfa-commands/select-node-by-rdfa-id.js +1 -1
- package/dist/commands/_private/rdfa-commands/select-node-by-subject.js +1 -1
- package/dist/commands/_private/rdfa-commands/wrap-inline-resource.js +1 -1
- package/dist/commands/_private/rdfa-commands/wrap-literal.js +1 -1
- package/dist/commands/_private/rdfa-commands/wrap-resource.js +1 -1
- package/dist/commands/rdfa-commands/add-property.js +1 -1
- package/dist/commands/rdfa-commands/remove-property.js +1 -1
- package/dist/components/_private/common/configurable-rdfa-display.js +1 -1
- package/dist/components/_private/common/property-details.js +1 -1
- package/dist/components/_private/node-controls/wrapping-utils.js +1 -1
- package/dist/components/_private/rdfa-visualiser/rdfa-explorer.js +1 -1
- package/dist/components/_private/rdfa-visualiser/resource-info.js +1 -1
- package/dist/components/_private/rdfa-visualiser/visualiser-card.js +1 -1
- package/dist/components/plugins/list/ordered.js +1 -1
- package/dist/components/plugins/list/unordered.js +1 -1
- package/dist/components/toolbar/mark.js +1 -1
- package/dist/core/keymap.js +1 -1
- package/dist/core/rdfa-types.js +1 -1
- package/dist/core/say-controller.js +1 -1
- package/dist/core/say-data-factory/data-factory.js +2 -2
- package/dist/core/say-data-factory/data-factory.js.map +1 -1
- package/dist/core/schema/_private/migrations.js +1 -1
- package/dist/nodes/invisible-rdfa.js +1 -1
- package/dist/plugins/list/commands/lift-out-of-nested-lists.js +1 -1
- package/dist/plugins/rdfa-info/index.js +1 -1
- package/dist/plugins/rdfa-info/types.js +1 -1
- package/dist/plugins/remove-properties-of-deleted-nodes/index.js +1 -1
- package/dist/utils/_private/datastore/datastore.js +2 -2
- package/dist/utils/_private/datastore/datastore.js.map +1 -1
- package/dist/utils/_private/datastore/n3-store-wrapper.js +114 -0
- package/dist/utils/_private/datastore/n3-store-wrapper.js.map +1 -0
- package/dist/utils/_private/datastore/say-store.js.map +1 -1
- package/dist/utils/_private/rdfa-parser/rdfa-parser.js +4 -4
- package/dist/utils/_private/rdfa-parser/rdfa-parser.js.map +1 -1
- package/package.json +3 -5
- package/declarations/utils/_private/datastore/graphy-dataset.d.ts +0 -37
- package/dist/main-DFf-0En3.js +0 -32630
- package/dist/main-DFf-0En3.js.map +0 -1
- package/dist/utils/_private/datastore/graphy-dataset.js +0 -149
- package/dist/utils/_private/datastore/graphy-dataset.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datastore.js","sources":["../../../../src/utils/_private/datastore/datastore.ts"],"sourcesContent":["import type * as RDF from '@rdfjs/types';\nimport {\n type ModelQuad,\n quadHash,\n type QuadNodes,\n type RdfaParseConfig,\n RdfaParser,\n} from '#root/utils/_private/rdfa-parser/rdfa-parser.ts';\nimport {\n type ConciseTerm,\n conciseToRdfjs,\n type TermConverter,\n} from '#root/utils/_private/concise-term-string.ts';\nimport { defaultPrefixes } from '#root/config/rdfa.ts';\nimport { ResultSet } from '#root/utils/_private/datastore/result-set.ts';\nimport { TermMapping } from '#root/utils/_private/datastore/term-mapping.ts';\nimport {\n isPrimitive,\n type ObjectSpec,\n type PredicateSpec,\n type SubjectSpec,\n} from '#root/utils/_private/datastore/term-spec.ts';\nimport { GraphyDataset } from './graphy-dataset.ts';\nimport { unwrap } from '#root/utils/_private/option.ts';\nimport type { RdfaResourceNodeMap, RdfaContentNodeMap } from './node-map.ts';\nimport { rdfaContentNodeMap, rdfaResourceNodeMap } from './node-map.ts';\n\ninterface TermNodesResponse<N> {\n nodes: Set<N>;\n}\n\ninterface SubjectNodesResponse<N> extends TermNodesResponse<N> {\n subject: RDF.Quad_Subject;\n}\n\ninterface PredicateNodesResponse<N> extends TermNodesResponse<N> {\n predicate: RDF.Quad_Predicate;\n}\n\ninterface ObjectNodesResponse<N> extends TermNodesResponse<N> {\n object: RDF.Quad_Object;\n}\n\nexport type WhichTerm = 'subject' | 'predicate' | 'object';\n/**\n * High-level interface to query RDF-knowledge from the document.\n * Designed with the principles of a fluent interface in mind.\n *\n * There are two method types: transformers and consumers.\n * Transformers operate on the underlying knowledge (e.g. filtering triples)\n * and always return a datastore, allowing easy method chaining.\n *\n * Consumers are methods that return anything other than a datastore, typically\n * representing the transformed knowledge in some convenient format.\n */\nexport default interface Datastore<N> {\n get dataset(): GraphyDataset;\n\n get size(): number;\n\n /**\n * The function used to convert concise term syntax (see {@link ConciseTerm})\n * into RDFjs term objects\n */\n get termConverter(): TermConverter;\n\n /**\n * Transformer method.\n * Filters out any triples which do not match the given pattern.\n * Pattern matching behaves similar as in SPARQL (but don't stretch that metaphor too far).\n *\n * Passing in undefined for any of the arguments means any term will match it.\n *\n * This method accepts concise term syntax, as defined in {@link ConciseTerm}\n *\n * @param subject\n * @param predicate\n * @param object\n */\n match(\n subject?: SubjectSpec,\n predicate?: PredicateSpec,\n object?: ObjectSpec,\n ): this;\n\n /**\n * Transformer method.\n * Low-level escape hatch.\n * Pass in a callback which will receive the underlying RDFjs-compliant {@link RDF.Dataset}\n * and a termconverter function to convert concise term syntax (see {@link ConciseTerm})\n * into RDFjs Term objects.\n * @param action\n */\n transformDataset(\n action: (\n dataset: GraphyDataset,\n termconverter: TermConverter,\n ) => GraphyDataset,\n ): this;\n\n /** Transformer method.\n * Allows specifying of custom prefixes for use in the {@link match} method\n * and the termConverter in the {@link transformDataset} method,\n * or overwrite the ones that were scanned from the document.\n *\n * Reminder: only has an effect on the convenience \"concise term syntax\".\n * Has no effect on the actual rdfa parsing.\n */\n withExtraPrefixes(prefixes: Record<string, string>): this;\n\n /**\n * Consumer method.\n * Returns a {@link TermMapping} of the currently valid subjects and the nodes that define them.\n */\n asSubjectNodeMapping(): TermMapping<RDF.Quad_Subject, N>;\n\n /**\n * Consumer method.\n * Returns a {@link TermMapping} of the currently valid predicates and the nodes that define them.\n */\n asPredicateNodeMapping(): TermMapping<RDF.Quad_Predicate, N>;\n\n /**\n * Consumer method.\n * Returns a {@link TermMapping} of the currently valid objects and the nodes that define them.\n */\n asObjectNodeMapping(): TermMapping<RDF.Quad_Object, N>;\n\n /**\n * Consumer method.\n * Returns a {@link ResultSet} of all currently valid quads.\n */\n asQuadResultSet(): ResultSet<RDF.Quad>;\n\n /**\n * @deprecated\n * Consumer Method.\n * Returns a generator of mappings between subjects and their nodes.\n * No order is implied.\n */\n asSubjectNodes(): Generator<SubjectNodesResponse<N>>;\n\n /**\n * @deprecated\n * Consumer Method.\n * Returns a generator of mappings between predicates and their nodes.\n * No order is implied.\n */\n asPredicateNodes(): Generator<PredicateNodesResponse<N>>;\n\n /**\n * @deprecated\n * Consumer Method.\n * Returns a generator of mappings between objects and their nodes.\n * No order is implied.\n */\n asObjectNodes(): Generator<ObjectNodesResponse<N>>;\n\n getResourceNodeMap(): RdfaResourceNodeMap<N>;\n getContentNodeMap(): RdfaContentNodeMap<N>;\n\n /**\n * @deprecated\n * Consumer Method.\n * Returns a generator of current relevant quads\n */\n asQuads(): Generator<RDF.Quad>;\n\n nodesForQuad(quad: RDF.Quad): QuadNodes<N> | null;\n}\n\ninterface DatastoreConfig<N> {\n documentRoot: N;\n dataset: GraphyDataset;\n subjectToNodes: Map<string, N[]>;\n nodeToSubject: Map<N, ModelQuad<N>>;\n\n predicateToNodes: Map<string, N[]>;\n nodeToPredicates: Map<N, Set<ModelQuad<N>>>;\n\n objectToNodes: Map<string, N[]>;\n nodeToObjects: Map<N, Set<ModelQuad<N>>>;\n quadToNodes: Map<string, QuadNodes<N>>;\n prefixMapping: Map<string, string>;\n resourceNodeMapping: RdfaResourceNodeMap<N>;\n contentNodeMapping: RdfaContentNodeMap<N>;\n}\n\ninterface GenericDatastoreConfig<N> extends DatastoreConfig<N> {\n attributes: (node: N) => Record<string, string>;\n}\n\nexport class EditorStore<N> implements Datastore<N> {\n protected _documentRoot: N;\n protected _dataset: GraphyDataset;\n protected _subjectToNodes: Map<string, N[]>;\n protected _nodeToSubject: Map<N, ModelQuad<N>>;\n protected _prefixMapping: Map<string, string>;\n protected _nodeToPredicates: Map<N, Set<ModelQuad<N>>>;\n protected _predicateToNodes: Map<string, N[]>;\n protected _nodeToObjects: Map<N, Set<ModelQuad<N>>>;\n protected _objectToNodes: Map<string, N[]>;\n protected _quadToNodes: Map<string, QuadNodes<N>>;\n protected _attributes: (node: N) => Record<string, string>;\n protected _resourceNodeMapping: RdfaResourceNodeMap<N>;\n protected _contentNodeMapping: RdfaContentNodeMap<N>;\n\n constructor({\n documentRoot,\n dataset,\n nodeToSubject,\n subjectToNodes,\n prefixMapping,\n nodeToPredicates,\n predicateToNodes,\n nodeToObjects,\n objectToNodes,\n quadToNodes,\n attributes,\n resourceNodeMapping,\n contentNodeMapping,\n }: GenericDatastoreConfig<N>) {\n this._documentRoot = documentRoot;\n this._dataset = dataset;\n this._nodeToSubject = nodeToSubject;\n this._subjectToNodes = subjectToNodes;\n this._prefixMapping = prefixMapping;\n this._nodeToPredicates = nodeToPredicates;\n this._predicateToNodes = predicateToNodes;\n this._nodeToObjects = nodeToObjects;\n this._objectToNodes = objectToNodes;\n this._quadToNodes = quadToNodes;\n this._attributes = attributes;\n this._resourceNodeMapping = resourceNodeMapping;\n this._contentNodeMapping = contentNodeMapping;\n }\n\n static empty<N>(\n documentRoot: N,\n getParent: (node: N) => N | null,\n attributes: (node: N) => Record<string, string>,\n ): Datastore<N> {\n const subjectToNodes = new Map<string, N[]>();\n const nodeToSubject = new Map<N, ModelQuad<N>>();\n const prefixMapping = new Map<string, string>();\n const nodeToPredicates = new Map<N, Set<ModelQuad<N>>>();\n const predicateToNodes = new Map<string, N[]>();\n const nodeToObjects = new Map<N, Set<ModelQuad<N>>>();\n const objectToNodes = new Map<string, N[]>();\n const quadToNodes = new Map<string, QuadNodes<N>>();\n const resourceNodeMapping = rdfaResourceNodeMap<N>();\n const contentNodeMapping = rdfaContentNodeMap<N>();\n return new EditorStore({\n documentRoot,\n dataset: new GraphyDataset(),\n subjectToNodes,\n nodeToObjects,\n prefixMapping,\n nodeToPredicates,\n nodeToSubject,\n quadToNodes,\n objectToNodes,\n predicateToNodes,\n attributes,\n resourceNodeMapping,\n contentNodeMapping,\n });\n }\n\n static fromParse<N>(config: RdfaParseConfig<N>): Datastore<N> {\n const {\n dataset,\n subjectToNodesMapping,\n nodeToSubjectMapping,\n objectToNodesMapping,\n nodeToObjectsMapping,\n predicateToNodesMapping,\n nodeToPredicatesMapping,\n quadToNodesMapping,\n seenPrefixes,\n resourceNodeMapping,\n contentNodeMapping,\n } = RdfaParser.parse(config);\n const prefixMap = new Map<string, string>(Object.entries(defaultPrefixes));\n for (const [key, value] of seenPrefixes.entries()) {\n prefixMap.set(key, value);\n }\n\n return new EditorStore<N>({\n documentRoot: config.root,\n dataset,\n subjectToNodes: subjectToNodesMapping,\n nodeToSubject: nodeToSubjectMapping,\n prefixMapping: prefixMap,\n objectToNodes: objectToNodesMapping,\n nodeToObjects: nodeToObjectsMapping,\n predicateToNodes: predicateToNodesMapping,\n nodeToPredicates: nodeToPredicatesMapping,\n quadToNodes: quadToNodesMapping,\n attributes: config.attributes,\n resourceNodeMapping,\n contentNodeMapping,\n });\n }\n\n get dataset(): GraphyDataset {\n return this._dataset;\n }\n\n get size(): number {\n return this._dataset.size;\n }\n\n termConverter = (term: ConciseTerm) => conciseToRdfjs(term, this.getPrefix);\n\n nodesForQuad(quad: RDF.Quad): QuadNodes<N> | null {\n return this._quadToNodes.get(quadHash(quad)) ?? null;\n }\n\n match(\n subject?: SubjectSpec,\n predicate?: PredicateSpec,\n object?: ObjectSpec,\n ): this {\n const convertedSubject =\n typeof subject === 'string'\n ? conciseToRdfjs(subject, this.getPrefix)\n : subject;\n const convertedPredicate =\n typeof predicate === 'string'\n ? conciseToRdfjs(predicate, this.getPrefix)\n : predicate;\n const convertedObject = isPrimitive(object)\n ? conciseToRdfjs(object, this.getPrefix)\n : object;\n const newSet = this.dataset.match(\n convertedSubject,\n convertedPredicate,\n convertedObject,\n null,\n );\n return this.fromDataset(this._documentRoot, newSet);\n }\n\n withExtraPrefixes(prefixes: Record<string, string>): this {\n for (const [key, value] of Object.entries(prefixes)) {\n this._prefixMapping.set(key, value);\n }\n return this;\n }\n\n asSubjectNodeMapping(): TermMapping<RDF.Quad_Subject, N> {\n return new TermMapping<RDF.Quad_Subject, N>(\n this.subjectNodeGenerator(),\n this.getPrefix,\n );\n }\n\n private subjectNodeGenerator(): Map<RDF.Quad_Subject, N[]> {\n const seenSubjects = new Set<string>();\n const rslt = new Map<RDF.Quad_Subject, N[]>();\n for (const quad of this.dataset) {\n if (!seenSubjects.has(quad.subject.value)) {\n const nodes = this._subjectToNodes.get(quad.subject.value);\n if (nodes) {\n rslt.set(quad.subject, nodes);\n }\n seenSubjects.add(quad.subject.value);\n }\n }\n return rslt;\n }\n\n asPredicateNodeMapping(): TermMapping<RDF.Quad_Predicate, N> {\n return new TermMapping<RDF.Quad_Predicate, N>(\n this.predicateNodeGenerator(),\n this.getPrefix,\n );\n }\n\n private predicateNodeGenerator(): Map<RDF.Quad_Predicate, N[]> {\n const seenPredicates = new Map<string, RDF.Quad_Predicate>();\n const seenSubjects = new Set<string>();\n const rslt = new Map<RDF.Quad_Predicate, N[]>();\n\n // collect all unique predicates and subjects in the current dataset\n for (const quad of this.dataset) {\n seenSubjects.add(quad.subject.value);\n seenPredicates.set(quad.predicate.value, quad.predicate);\n }\n\n for (const pred of seenPredicates.keys()) {\n const allNodes = this._predicateToNodes.get(pred);\n\n if (allNodes) {\n const nodes = [];\n // we have to filter out nodes that belong to a subject which is not in the dataset\n for (const node of allNodes) {\n const quads = unwrap(this._nodeToPredicates.get(node));\n for (const quad of quads) {\n if (seenSubjects.has(quad.subject.value)) {\n nodes.push(node);\n }\n }\n }\n rslt.set(unwrap(seenPredicates.get(pred)), nodes);\n }\n }\n return rslt;\n }\n\n asObjectNodeMapping(): TermMapping<RDF.Quad_Object, N> {\n return new TermMapping<RDF.Quad_Object, N>(\n this.objectNodeGenerator(),\n this.getPrefix,\n );\n }\n\n private objectNodeGenerator(): Map<RDF.Quad_Object, N[]> {\n const seenSubjects = new Set<string>();\n const seenPredicates = new Set<string>();\n const seenObjects = new Set<RDF.Quad_Object>();\n\n const rslt = new Map<RDF.Quad_Object, N[]>();\n\n // collect all unique predicates and subjects in the current dataset\n for (const quad of this.dataset) {\n seenSubjects.add(quad.subject.value);\n seenPredicates.add(quad.predicate.value);\n seenObjects.add(quad.object);\n }\n for (const object of seenObjects) {\n const allNodes = this._objectToNodes.get(object.value);\n if (allNodes) {\n const nodes = [];\n\n for (const node of allNodes) {\n const quads = unwrap(this._nodeToObjects.get(node));\n for (const quad of quads) {\n if (\n seenSubjects.has(quad.subject.value) &&\n seenPredicates.has(quad.predicate.value)\n ) {\n nodes.push(node);\n }\n }\n }\n rslt.set(object, nodes);\n }\n }\n return rslt;\n }\n\n asQuadResultSet(): ResultSet<RDF.Quad> {\n return new ResultSet<RDF.Quad>(this.quadGenerator());\n }\n\n private *quadGenerator(): Generator<RDF.Quad> {\n for (const quad of this.dataset) {\n yield quad;\n }\n }\n\n *asSubjectNodes(): Generator<SubjectNodesResponse<N>> {\n const mapping = this.asSubjectNodeMapping();\n for (const entry of mapping) {\n yield { subject: entry.term, nodes: new Set(entry.nodes) };\n }\n }\n\n *asPredicateNodes(): Generator<PredicateNodesResponse<N>> {\n const mapping = this.asPredicateNodeMapping();\n for (const entry of mapping) {\n yield { predicate: entry.term, nodes: new Set(entry.nodes) };\n }\n }\n\n *asObjectNodes(): Generator<ObjectNodesResponse<N>> {\n const mapping = this.asObjectNodeMapping();\n for (const entry of mapping) {\n yield { object: entry.term, nodes: new Set(entry.nodes) };\n }\n }\n\n *asQuads(): Generator<RDF.Quad, void, undefined> {\n for (const quad of this.dataset) {\n yield quad;\n }\n }\n\n getResourceNodeMap(): RdfaResourceNodeMap<N> {\n return this._resourceNodeMapping;\n }\n\n getContentNodeMap(): RdfaContentNodeMap<N> {\n return this._contentNodeMapping;\n }\n\n transformDataset(\n action: (\n dataset: GraphyDataset,\n termconverter: TermConverter,\n ) => GraphyDataset,\n ): this {\n return this.fromDataset(\n this._documentRoot,\n action(this.dataset, this.termConverter),\n );\n }\n\n protected fromDataset(documentRoot: N, dataset: GraphyDataset): this {\n const Clazz = this.constructor as new (\n config: GenericDatastoreConfig<N>,\n ) => this;\n return new Clazz({\n documentRoot,\n dataset,\n nodeToSubject: this._nodeToSubject,\n subjectToNodes: this._subjectToNodes,\n predicateToNodes: this._predicateToNodes,\n nodeToPredicates: this._nodeToPredicates,\n nodeToObjects: this._nodeToObjects,\n objectToNodes: this._objectToNodes,\n prefixMapping: this._prefixMapping,\n quadToNodes: this._quadToNodes,\n attributes: this._attributes,\n resourceNodeMapping: this._resourceNodeMapping,\n contentNodeMapping: this._contentNodeMapping,\n });\n }\n\n private getPrefix = (prefix: string): string | null => {\n return this._prefixMapping.get(prefix) || null;\n };\n}\n"],"names":["EditorStore","_documentRoot","_dataset","_subjectToNodes","_nodeToSubject","_prefixMapping","_nodeToPredicates","_predicateToNodes","_nodeToObjects","_objectToNodes","_quadToNodes","_attributes","_resourceNodeMapping","_contentNodeMapping","constructor","documentRoot","dataset","nodeToSubject","subjectToNodes","prefixMapping","nodeToPredicates","predicateToNodes","nodeToObjects","objectToNodes","quadToNodes","attributes","resourceNodeMapping","contentNodeMapping","empty","getParent","Map","rdfaResourceNodeMap","rdfaContentNodeMap","GraphyDataset","fromParse","config","subjectToNodesMapping","nodeToSubjectMapping","objectToNodesMapping","nodeToObjectsMapping","predicateToNodesMapping","nodeToPredicatesMapping","quadToNodesMapping","seenPrefixes","RdfaParser","parse","prefixMap","Object","entries","defaultPrefixes","key","value","set","root","size","termConverter","term","conciseToRdfjs","getPrefix","nodesForQuad","quad","get","quadHash","match","subject","predicate","object","convertedSubject","convertedPredicate","convertedObject","isPrimitive","newSet","fromDataset","withExtraPrefixes","prefixes","asSubjectNodeMapping","TermMapping","subjectNodeGenerator","seenSubjects","Set","rslt","has","nodes","add","asPredicateNodeMapping","predicateNodeGenerator","seenPredicates","pred","keys","allNodes","node","quads","unwrap","push","asObjectNodeMapping","objectNodeGenerator","seenObjects","asQuadResultSet","ResultSet","quadGenerator","asSubjectNodes","mapping","entry","asPredicateNodes","asObjectNodes","asQuads","getResourceNodeMap","getContentNodeMap","transformDataset","action","Clazz","prefix"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"datastore.js","sources":["../../../../src/utils/_private/datastore/datastore.ts"],"sourcesContent":["import type * as RDF from '@rdfjs/types';\nimport {\n type ModelQuad,\n quadHash,\n type QuadNodes,\n type RdfaParseConfig,\n RdfaParser,\n} from '#root/utils/_private/rdfa-parser/rdfa-parser.ts';\nimport {\n type ConciseTerm,\n conciseToRdfjs,\n type TermConverter,\n} from '#root/utils/_private/concise-term-string.ts';\nimport { defaultPrefixes } from '#root/config/rdfa.ts';\nimport { ResultSet } from '#root/utils/_private/datastore/result-set.ts';\nimport { TermMapping } from '#root/utils/_private/datastore/term-mapping.ts';\nimport {\n isPrimitive,\n type ObjectSpec,\n type PredicateSpec,\n type SubjectSpec,\n} from '#root/utils/_private/datastore/term-spec.ts';\nimport { unwrap } from '#root/utils/_private/option.ts';\nimport type { RdfaResourceNodeMap, RdfaContentNodeMap } from './node-map.ts';\nimport { rdfaContentNodeMap, rdfaResourceNodeMap } from './node-map.ts';\nimport { N3StoreWrapper } from './n3-store-wrapper.ts';\n\ninterface TermNodesResponse<N> {\n nodes: Set<N>;\n}\n\ninterface SubjectNodesResponse<N> extends TermNodesResponse<N> {\n subject: RDF.Quad_Subject;\n}\n\ninterface PredicateNodesResponse<N> extends TermNodesResponse<N> {\n predicate: RDF.Quad_Predicate;\n}\n\ninterface ObjectNodesResponse<N> extends TermNodesResponse<N> {\n object: RDF.Quad_Object;\n}\n\nexport type WhichTerm = 'subject' | 'predicate' | 'object';\n/**\n * High-level interface to query RDF-knowledge from the document.\n * Designed with the principles of a fluent interface in mind.\n *\n * There are two method types: transformers and consumers.\n * Transformers operate on the underlying knowledge (e.g. filtering triples)\n * and always return a datastore, allowing easy method chaining.\n *\n * Consumers are methods that return anything other than a datastore, typically\n * representing the transformed knowledge in some convenient format.\n */\nexport default interface Datastore<N> {\n get dataset(): N3StoreWrapper;\n\n get size(): number;\n\n /**\n * The function used to convert concise term syntax (see {@link ConciseTerm})\n * into RDFjs term objects\n */\n get termConverter(): TermConverter;\n\n /**\n * Transformer method.\n * Filters out any triples which do not match the given pattern.\n * Pattern matching behaves similar as in SPARQL (but don't stretch that metaphor too far).\n *\n * Passing in undefined for any of the arguments means any term will match it.\n *\n * This method accepts concise term syntax, as defined in {@link ConciseTerm}\n *\n * @param subject\n * @param predicate\n * @param object\n */\n match(\n subject?: SubjectSpec,\n predicate?: PredicateSpec,\n object?: ObjectSpec,\n ): this;\n\n /**\n * Transformer method.\n * Low-level escape hatch.\n * Pass in a callback which will receive the underlying RDFjs-compliant {@link RDF.Dataset}\n * and a termconverter function to convert concise term syntax (see {@link ConciseTerm})\n * into RDFjs Term objects.\n * @param action\n */\n transformDataset(\n action: (\n dataset: N3StoreWrapper,\n termconverter: TermConverter,\n ) => N3StoreWrapper,\n ): this;\n\n /** Transformer method.\n * Allows specifying of custom prefixes for use in the {@link match} method\n * and the termConverter in the {@link transformDataset} method,\n * or overwrite the ones that were scanned from the document.\n *\n * Reminder: only has an effect on the convenience \"concise term syntax\".\n * Has no effect on the actual rdfa parsing.\n */\n withExtraPrefixes(prefixes: Record<string, string>): this;\n\n /**\n * Consumer method.\n * Returns a {@link TermMapping} of the currently valid subjects and the nodes that define them.\n */\n asSubjectNodeMapping(): TermMapping<RDF.Quad_Subject, N>;\n\n /**\n * Consumer method.\n * Returns a {@link TermMapping} of the currently valid predicates and the nodes that define them.\n */\n asPredicateNodeMapping(): TermMapping<RDF.Quad_Predicate, N>;\n\n /**\n * Consumer method.\n * Returns a {@link TermMapping} of the currently valid objects and the nodes that define them.\n */\n asObjectNodeMapping(): TermMapping<RDF.Quad_Object, N>;\n\n /**\n * Consumer method.\n * Returns a {@link ResultSet} of all currently valid quads.\n */\n asQuadResultSet(): ResultSet<RDF.Quad>;\n\n /**\n * @deprecated\n * Consumer Method.\n * Returns a generator of mappings between subjects and their nodes.\n * No order is implied.\n */\n asSubjectNodes(): Generator<SubjectNodesResponse<N>>;\n\n /**\n * @deprecated\n * Consumer Method.\n * Returns a generator of mappings between predicates and their nodes.\n * No order is implied.\n */\n asPredicateNodes(): Generator<PredicateNodesResponse<N>>;\n\n /**\n * @deprecated\n * Consumer Method.\n * Returns a generator of mappings between objects and their nodes.\n * No order is implied.\n */\n asObjectNodes(): Generator<ObjectNodesResponse<N>>;\n\n getResourceNodeMap(): RdfaResourceNodeMap<N>;\n getContentNodeMap(): RdfaContentNodeMap<N>;\n\n /**\n * @deprecated\n * Consumer Method.\n * Returns a generator of current relevant quads\n */\n asQuads(): Generator<RDF.Quad>;\n\n nodesForQuad(quad: RDF.Quad): QuadNodes<N> | null;\n}\n\ninterface DatastoreConfig<N> {\n documentRoot: N;\n dataset: N3StoreWrapper;\n subjectToNodes: Map<string, N[]>;\n nodeToSubject: Map<N, ModelQuad<N>>;\n\n predicateToNodes: Map<string, N[]>;\n nodeToPredicates: Map<N, Set<ModelQuad<N>>>;\n\n objectToNodes: Map<string, N[]>;\n nodeToObjects: Map<N, Set<ModelQuad<N>>>;\n quadToNodes: Map<string, QuadNodes<N>>;\n prefixMapping: Map<string, string>;\n resourceNodeMapping: RdfaResourceNodeMap<N>;\n contentNodeMapping: RdfaContentNodeMap<N>;\n}\n\ninterface GenericDatastoreConfig<N> extends DatastoreConfig<N> {\n attributes: (node: N) => Record<string, string>;\n}\n\nexport class EditorStore<N> implements Datastore<N> {\n protected _documentRoot: N;\n protected _dataset: N3StoreWrapper;\n protected _subjectToNodes: Map<string, N[]>;\n protected _nodeToSubject: Map<N, ModelQuad<N>>;\n protected _prefixMapping: Map<string, string>;\n protected _nodeToPredicates: Map<N, Set<ModelQuad<N>>>;\n protected _predicateToNodes: Map<string, N[]>;\n protected _nodeToObjects: Map<N, Set<ModelQuad<N>>>;\n protected _objectToNodes: Map<string, N[]>;\n protected _quadToNodes: Map<string, QuadNodes<N>>;\n protected _attributes: (node: N) => Record<string, string>;\n protected _resourceNodeMapping: RdfaResourceNodeMap<N>;\n protected _contentNodeMapping: RdfaContentNodeMap<N>;\n\n constructor({\n documentRoot,\n dataset,\n nodeToSubject,\n subjectToNodes,\n prefixMapping,\n nodeToPredicates,\n predicateToNodes,\n nodeToObjects,\n objectToNodes,\n quadToNodes,\n attributes,\n resourceNodeMapping,\n contentNodeMapping,\n }: GenericDatastoreConfig<N>) {\n this._documentRoot = documentRoot;\n this._dataset = dataset;\n this._nodeToSubject = nodeToSubject;\n this._subjectToNodes = subjectToNodes;\n this._prefixMapping = prefixMapping;\n this._nodeToPredicates = nodeToPredicates;\n this._predicateToNodes = predicateToNodes;\n this._nodeToObjects = nodeToObjects;\n this._objectToNodes = objectToNodes;\n this._quadToNodes = quadToNodes;\n this._attributes = attributes;\n this._resourceNodeMapping = resourceNodeMapping;\n this._contentNodeMapping = contentNodeMapping;\n }\n\n static empty<N>(\n documentRoot: N,\n getParent: (node: N) => N | null,\n attributes: (node: N) => Record<string, string>,\n ): Datastore<N> {\n const subjectToNodes = new Map<string, N[]>();\n const nodeToSubject = new Map<N, ModelQuad<N>>();\n const prefixMapping = new Map<string, string>();\n const nodeToPredicates = new Map<N, Set<ModelQuad<N>>>();\n const predicateToNodes = new Map<string, N[]>();\n const nodeToObjects = new Map<N, Set<ModelQuad<N>>>();\n const objectToNodes = new Map<string, N[]>();\n const quadToNodes = new Map<string, QuadNodes<N>>();\n const resourceNodeMapping = rdfaResourceNodeMap<N>();\n const contentNodeMapping = rdfaContentNodeMap<N>();\n return new EditorStore({\n documentRoot,\n dataset: new N3StoreWrapper(),\n subjectToNodes,\n nodeToObjects,\n prefixMapping,\n nodeToPredicates,\n nodeToSubject,\n quadToNodes,\n objectToNodes,\n predicateToNodes,\n attributes,\n resourceNodeMapping,\n contentNodeMapping,\n });\n }\n\n static fromParse<N>(config: RdfaParseConfig<N>): Datastore<N> {\n const {\n dataset,\n subjectToNodesMapping,\n nodeToSubjectMapping,\n objectToNodesMapping,\n nodeToObjectsMapping,\n predicateToNodesMapping,\n nodeToPredicatesMapping,\n quadToNodesMapping,\n seenPrefixes,\n resourceNodeMapping,\n contentNodeMapping,\n } = RdfaParser.parse(config);\n const prefixMap = new Map<string, string>(Object.entries(defaultPrefixes));\n for (const [key, value] of seenPrefixes.entries()) {\n prefixMap.set(key, value);\n }\n\n return new EditorStore<N>({\n documentRoot: config.root,\n dataset,\n subjectToNodes: subjectToNodesMapping,\n nodeToSubject: nodeToSubjectMapping,\n prefixMapping: prefixMap,\n objectToNodes: objectToNodesMapping,\n nodeToObjects: nodeToObjectsMapping,\n predicateToNodes: predicateToNodesMapping,\n nodeToPredicates: nodeToPredicatesMapping,\n quadToNodes: quadToNodesMapping,\n attributes: config.attributes,\n resourceNodeMapping,\n contentNodeMapping,\n });\n }\n\n get dataset(): N3StoreWrapper {\n return this._dataset;\n }\n\n get size(): number {\n return this._dataset.size;\n }\n\n termConverter = (term: ConciseTerm) => conciseToRdfjs(term, this.getPrefix);\n\n nodesForQuad(quad: RDF.Quad): QuadNodes<N> | null {\n return this._quadToNodes.get(quadHash(quad)) ?? null;\n }\n\n match(\n subject?: SubjectSpec,\n predicate?: PredicateSpec,\n object?: ObjectSpec,\n ): this {\n const convertedSubject =\n typeof subject === 'string'\n ? conciseToRdfjs(subject, this.getPrefix)\n : subject;\n const convertedPredicate =\n typeof predicate === 'string'\n ? conciseToRdfjs(predicate, this.getPrefix)\n : predicate;\n const convertedObject = isPrimitive(object)\n ? conciseToRdfjs(object, this.getPrefix)\n : object;\n const newSet = this.dataset.match(\n convertedSubject,\n convertedPredicate,\n convertedObject,\n null,\n );\n return this.fromDataset(this._documentRoot, newSet);\n }\n\n withExtraPrefixes(prefixes: Record<string, string>): this {\n for (const [key, value] of Object.entries(prefixes)) {\n this._prefixMapping.set(key, value);\n }\n return this;\n }\n\n asSubjectNodeMapping(): TermMapping<RDF.Quad_Subject, N> {\n return new TermMapping<RDF.Quad_Subject, N>(\n this.subjectNodeGenerator(),\n this.getPrefix,\n );\n }\n\n private subjectNodeGenerator(): Map<RDF.Quad_Subject, N[]> {\n const seenSubjects = new Set<string>();\n const rslt = new Map<RDF.Quad_Subject, N[]>();\n for (const quad of this.dataset) {\n if (!seenSubjects.has(quad.subject.value)) {\n const nodes = this._subjectToNodes.get(quad.subject.value);\n if (nodes) {\n rslt.set(quad.subject, nodes);\n }\n seenSubjects.add(quad.subject.value);\n }\n }\n return rslt;\n }\n\n asPredicateNodeMapping(): TermMapping<RDF.Quad_Predicate, N> {\n return new TermMapping<RDF.Quad_Predicate, N>(\n this.predicateNodeGenerator(),\n this.getPrefix,\n );\n }\n\n private predicateNodeGenerator(): Map<RDF.Quad_Predicate, N[]> {\n const seenPredicates = new Map<string, RDF.Quad_Predicate>();\n const seenSubjects = new Set<string>();\n const rslt = new Map<RDF.Quad_Predicate, N[]>();\n\n // collect all unique predicates and subjects in the current dataset\n for (const quad of this.dataset) {\n seenSubjects.add(quad.subject.value);\n seenPredicates.set(quad.predicate.value, quad.predicate);\n }\n\n for (const pred of seenPredicates.keys()) {\n const allNodes = this._predicateToNodes.get(pred);\n\n if (allNodes) {\n const nodes = [];\n // we have to filter out nodes that belong to a subject which is not in the dataset\n for (const node of allNodes) {\n const quads = unwrap(this._nodeToPredicates.get(node));\n for (const quad of quads) {\n if (seenSubjects.has(quad.subject.value)) {\n nodes.push(node);\n }\n }\n }\n rslt.set(unwrap(seenPredicates.get(pred)), nodes);\n }\n }\n return rslt;\n }\n\n asObjectNodeMapping(): TermMapping<RDF.Quad_Object, N> {\n return new TermMapping<RDF.Quad_Object, N>(\n this.objectNodeGenerator(),\n this.getPrefix,\n );\n }\n\n private objectNodeGenerator(): Map<RDF.Quad_Object, N[]> {\n const seenSubjects = new Set<string>();\n const seenPredicates = new Set<string>();\n const seenObjects = new Set<RDF.Quad_Object>();\n\n const rslt = new Map<RDF.Quad_Object, N[]>();\n\n // collect all unique predicates and subjects in the current dataset\n for (const quad of this.dataset) {\n seenSubjects.add(quad.subject.value);\n seenPredicates.add(quad.predicate.value);\n seenObjects.add(quad.object);\n }\n for (const object of seenObjects) {\n const allNodes = this._objectToNodes.get(object.value);\n if (allNodes) {\n const nodes = [];\n\n for (const node of allNodes) {\n const quads = unwrap(this._nodeToObjects.get(node));\n for (const quad of quads) {\n if (\n seenSubjects.has(quad.subject.value) &&\n seenPredicates.has(quad.predicate.value)\n ) {\n nodes.push(node);\n }\n }\n }\n rslt.set(object, nodes);\n }\n }\n return rslt;\n }\n\n asQuadResultSet(): ResultSet<RDF.Quad> {\n return new ResultSet<RDF.Quad>(this.quadGenerator());\n }\n\n private *quadGenerator(): Generator<RDF.Quad> {\n for (const quad of this.dataset) {\n yield quad;\n }\n }\n\n *asSubjectNodes(): Generator<SubjectNodesResponse<N>> {\n const mapping = this.asSubjectNodeMapping();\n for (const entry of mapping) {\n yield { subject: entry.term, nodes: new Set(entry.nodes) };\n }\n }\n\n *asPredicateNodes(): Generator<PredicateNodesResponse<N>> {\n const mapping = this.asPredicateNodeMapping();\n for (const entry of mapping) {\n yield { predicate: entry.term, nodes: new Set(entry.nodes) };\n }\n }\n\n *asObjectNodes(): Generator<ObjectNodesResponse<N>> {\n const mapping = this.asObjectNodeMapping();\n for (const entry of mapping) {\n yield { object: entry.term, nodes: new Set(entry.nodes) };\n }\n }\n\n *asQuads(): Generator<RDF.Quad, void, undefined> {\n for (const quad of this.dataset) {\n yield quad;\n }\n }\n\n getResourceNodeMap(): RdfaResourceNodeMap<N> {\n return this._resourceNodeMapping;\n }\n\n getContentNodeMap(): RdfaContentNodeMap<N> {\n return this._contentNodeMapping;\n }\n\n transformDataset(\n action: (\n dataset: N3StoreWrapper,\n termconverter: TermConverter,\n ) => N3StoreWrapper,\n ): this {\n return this.fromDataset(\n this._documentRoot,\n action(this.dataset, this.termConverter),\n );\n }\n\n protected fromDataset(documentRoot: N, dataset: N3StoreWrapper): this {\n const Clazz = this.constructor as new (\n config: GenericDatastoreConfig<N>,\n ) => this;\n return new Clazz({\n documentRoot,\n dataset,\n nodeToSubject: this._nodeToSubject,\n subjectToNodes: this._subjectToNodes,\n predicateToNodes: this._predicateToNodes,\n nodeToPredicates: this._nodeToPredicates,\n nodeToObjects: this._nodeToObjects,\n objectToNodes: this._objectToNodes,\n prefixMapping: this._prefixMapping,\n quadToNodes: this._quadToNodes,\n attributes: this._attributes,\n resourceNodeMapping: this._resourceNodeMapping,\n contentNodeMapping: this._contentNodeMapping,\n });\n }\n\n private getPrefix = (prefix: string): string | null => {\n return this._prefixMapping.get(prefix) || null;\n };\n}\n"],"names":["EditorStore","_documentRoot","_dataset","_subjectToNodes","_nodeToSubject","_prefixMapping","_nodeToPredicates","_predicateToNodes","_nodeToObjects","_objectToNodes","_quadToNodes","_attributes","_resourceNodeMapping","_contentNodeMapping","constructor","documentRoot","dataset","nodeToSubject","subjectToNodes","prefixMapping","nodeToPredicates","predicateToNodes","nodeToObjects","objectToNodes","quadToNodes","attributes","resourceNodeMapping","contentNodeMapping","empty","getParent","Map","rdfaResourceNodeMap","rdfaContentNodeMap","N3StoreWrapper","fromParse","config","subjectToNodesMapping","nodeToSubjectMapping","objectToNodesMapping","nodeToObjectsMapping","predicateToNodesMapping","nodeToPredicatesMapping","quadToNodesMapping","seenPrefixes","RdfaParser","parse","prefixMap","Object","entries","defaultPrefixes","key","value","set","root","size","termConverter","term","conciseToRdfjs","getPrefix","nodesForQuad","quad","get","quadHash","match","subject","predicate","object","convertedSubject","convertedPredicate","convertedObject","isPrimitive","newSet","fromDataset","withExtraPrefixes","prefixes","asSubjectNodeMapping","TermMapping","subjectNodeGenerator","seenSubjects","Set","rslt","has","nodes","add","asPredicateNodeMapping","predicateNodeGenerator","seenPredicates","pred","keys","allNodes","node","quads","unwrap","push","asObjectNodeMapping","objectNodeGenerator","seenObjects","asQuadResultSet","ResultSet","quadGenerator","asSubjectNodes","mapping","entry","asPredicateNodes","asObjectNodes","asQuads","getResourceNodeMap","getContentNodeMap","transformDataset","action","Clazz","prefix"],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import N3 from 'n3';
|
|
2
|
+
|
|
3
|
+
function isN3Store(thing) {
|
|
4
|
+
return thing instanceof N3.Store;
|
|
5
|
+
}
|
|
6
|
+
function isN3StoreWrapper(thing) {
|
|
7
|
+
return thing instanceof N3StoreWrapper;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Spec-compliant wrapper for n3
|
|
11
|
+
*/
|
|
12
|
+
class N3StoreWrapper {
|
|
13
|
+
_store;
|
|
14
|
+
constructor(quadsOrStore) {
|
|
15
|
+
if (isN3Store(quadsOrStore)) {
|
|
16
|
+
this._store = quadsOrStore;
|
|
17
|
+
} else if (isN3StoreWrapper(quadsOrStore)) {
|
|
18
|
+
this._store = quadsOrStore._store;
|
|
19
|
+
} else {
|
|
20
|
+
this._store = new N3.Store();
|
|
21
|
+
if (quadsOrStore) {
|
|
22
|
+
this._store.addAll(quadsOrStore);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
get size() {
|
|
27
|
+
return this._store.size;
|
|
28
|
+
}
|
|
29
|
+
add(quad) {
|
|
30
|
+
this._store.add(quad);
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
delete(quad) {
|
|
34
|
+
this._store.delete(quad);
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
has(quad) {
|
|
38
|
+
return this._store.has(quad);
|
|
39
|
+
}
|
|
40
|
+
match(subject, predicate, object, graph) {
|
|
41
|
+
return new N3StoreWrapper(
|
|
42
|
+
// @ts-expect-error the n3 types don't fully follow the RDFJs spec
|
|
43
|
+
this._store.match(subject, predicate, object, graph));
|
|
44
|
+
}
|
|
45
|
+
addAll(quads) {
|
|
46
|
+
this._store.addAll(quads);
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
contains(other) {
|
|
50
|
+
return this.intersection(other).size === other.size;
|
|
51
|
+
}
|
|
52
|
+
deleteMatches(subject, predicate, object, graph) {
|
|
53
|
+
// @ts-expect-error the n3 types don't fully follow the RDFJs spec
|
|
54
|
+
this._store.deleteMatches(subject, predicate, object, graph);
|
|
55
|
+
return this;
|
|
56
|
+
}
|
|
57
|
+
difference(other) {
|
|
58
|
+
return new N3StoreWrapper(this._store.difference(other));
|
|
59
|
+
}
|
|
60
|
+
equals(other) {
|
|
61
|
+
return this._store.equals(other);
|
|
62
|
+
}
|
|
63
|
+
every(iteratee) {
|
|
64
|
+
for (const quad of this) {
|
|
65
|
+
if (!iteratee(quad, this)) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
filter(iteratee) {
|
|
72
|
+
return new N3StoreWrapper(this._store.filter(quad => iteratee(quad, this)));
|
|
73
|
+
}
|
|
74
|
+
forEach(iteratee) {
|
|
75
|
+
this._store.forEach(quad => iteratee(quad, this));
|
|
76
|
+
}
|
|
77
|
+
async import(stream) {
|
|
78
|
+
await this._store.import(stream);
|
|
79
|
+
return this;
|
|
80
|
+
}
|
|
81
|
+
intersection(other) {
|
|
82
|
+
return new N3StoreWrapper(this._store.intersection(other));
|
|
83
|
+
}
|
|
84
|
+
map(iteratee) {
|
|
85
|
+
return new N3StoreWrapper(this._store.map(quad => iteratee(quad, this)));
|
|
86
|
+
}
|
|
87
|
+
reduce(iteratee, initialValue) {
|
|
88
|
+
return this._store.reduce((acc, quad) => iteratee(acc, quad, this), initialValue);
|
|
89
|
+
}
|
|
90
|
+
some(iteratee) {
|
|
91
|
+
return this._store.some(quad => iteratee(quad, this));
|
|
92
|
+
}
|
|
93
|
+
toArray() {
|
|
94
|
+
return this._store.toArray();
|
|
95
|
+
}
|
|
96
|
+
toCanonical() {
|
|
97
|
+
return this._store.toCanonical();
|
|
98
|
+
}
|
|
99
|
+
toStream() {
|
|
100
|
+
return this._store.toStream();
|
|
101
|
+
}
|
|
102
|
+
toString() {
|
|
103
|
+
return this._store.toString();
|
|
104
|
+
}
|
|
105
|
+
union(quads) {
|
|
106
|
+
return new N3StoreWrapper(this._store.union(quads));
|
|
107
|
+
}
|
|
108
|
+
[Symbol.iterator]() {
|
|
109
|
+
return this._store[Symbol.iterator]();
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export { N3StoreWrapper };
|
|
114
|
+
//# sourceMappingURL=n3-store-wrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"n3-store-wrapper.js","sources":["../../../../src/utils/_private/datastore/n3-store-wrapper.ts"],"sourcesContent":["import type * as RDF from '@rdfjs/types';\nimport N3 from 'n3';\n\nfunction isN3Store(thing: unknown): thing is N3.Store {\n return thing instanceof N3.Store;\n}\n\nfunction isN3StoreWrapper(thing: unknown): thing is N3StoreWrapper {\n return thing instanceof N3StoreWrapper;\n}\n\ntype QuadDataSet = RDF.Dataset<RDF.Quad, RDF.Quad>;\n\n/**\n * Spec-compliant wrapper for n3\n */\nexport class N3StoreWrapper implements QuadDataSet {\n private _store: N3.Store;\n\n constructor(\n quadsOrStore?: RDF.Dataset | RDF.Quad[] | N3.Store | N3StoreWrapper,\n ) {\n if (isN3Store(quadsOrStore)) {\n this._store = quadsOrStore;\n } else if (isN3StoreWrapper(quadsOrStore)) {\n this._store = quadsOrStore._store;\n } else {\n this._store = new N3.Store();\n if (quadsOrStore) {\n this._store.addAll(quadsOrStore);\n }\n }\n }\n\n get size(): number {\n return this._store.size;\n }\n\n add(quad: RDF.Quad): this {\n this._store.add(quad);\n return this;\n }\n\n delete(quad: RDF.Quad): this {\n this._store.delete(quad);\n return this;\n }\n\n has(quad: RDF.Quad): boolean {\n return this._store.has(quad);\n }\n\n match(\n subject?: RDF.Term | null,\n predicate?: RDF.Term | null,\n object?: RDF.Term | null,\n graph?: RDF.Term | null,\n ): N3StoreWrapper {\n return new N3StoreWrapper(\n // @ts-expect-error the n3 types don't fully follow the RDFJs spec\n this._store.match(subject, predicate, object, graph),\n );\n }\n\n addAll(quads: QuadDataSet | RDF.Quad[]): this {\n this._store.addAll(quads);\n return this;\n }\n\n contains(other: QuadDataSet): boolean {\n return this.intersection(other).size === other.size;\n }\n\n deleteMatches(\n subject?: RDF.Term | null,\n predicate?: RDF.Term | null,\n object?: RDF.Term | null,\n graph?: RDF.Term | null,\n ): this {\n // @ts-expect-error the n3 types don't fully follow the RDFJs spec\n this._store.deleteMatches(subject, predicate, object, graph);\n return this;\n }\n\n difference(other: QuadDataSet): N3StoreWrapper {\n return new N3StoreWrapper(this._store.difference(other));\n }\n\n equals(other: RDF.Dataset<RDF.Quad, RDF.Quad>): boolean {\n return this._store.equals(other);\n }\n\n every(iteratee: (quad: RDF.Quad, dataset: this) => boolean): boolean {\n for (const quad of this) {\n if (!iteratee(quad, this)) {\n return false;\n }\n }\n return true;\n }\n\n filter(iteratee: (quad: RDF.Quad, dataset: this) => boolean): N3StoreWrapper {\n return new N3StoreWrapper(\n this._store.filter((quad) => iteratee(quad, this)),\n );\n }\n\n forEach(iteratee: (quad: RDF.Quad, dataset: this) => void): void {\n this._store.forEach((quad) => iteratee(quad, this));\n }\n\n async import(stream: RDF.Stream<RDF.Quad>): Promise<this> {\n await this._store.import(stream);\n return this;\n }\n\n intersection(other: QuadDataSet): N3StoreWrapper {\n return new N3StoreWrapper(this._store.intersection(other));\n }\n\n map(iteratee: (quad: RDF.Quad, dataset: this) => RDF.Quad): N3StoreWrapper {\n return new N3StoreWrapper(this._store.map((quad) => iteratee(quad, this)));\n }\n\n reduce<A>(\n iteratee: (accumulator: A, quad: RDF.Quad, dataset: this) => A,\n initialValue?: A | undefined,\n ): A {\n return this._store.reduce<A>(\n (acc, quad) => iteratee(acc, quad, this),\n initialValue,\n );\n }\n\n some(iteratee: (quad: RDF.Quad, dataset: this) => boolean): boolean {\n return this._store.some((quad) => iteratee(quad, this));\n }\n\n toArray(): RDF.Quad[] {\n return this._store.toArray();\n }\n\n toCanonical(): string {\n return this._store.toCanonical();\n }\n\n toStream(): RDF.Stream<RDF.Quad> {\n return this._store.toStream();\n }\n\n toString(): string {\n return this._store.toString();\n }\n\n union(quads: RDF.Dataset<RDF.Quad, RDF.Quad>): N3StoreWrapper {\n return new N3StoreWrapper(this._store.union(quads));\n }\n\n [Symbol.iterator](): Iterator<RDF.Quad> {\n return this._store[Symbol.iterator]();\n }\n}\n"],"names":["isN3Store","thing","N3","Store","isN3StoreWrapper","N3StoreWrapper","_store","constructor","quadsOrStore","addAll","size","add","quad","delete","has","match","subject","predicate","object","graph","quads","contains","other","intersection","deleteMatches","difference","equals","every","iteratee","filter","forEach","import","stream","map","reduce","initialValue","acc","some","toArray","toCanonical","toStream","toString","union","Symbol","iterator"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"say-store.js","sources":["../../../../src/utils/_private/datastore/say-store.ts"],"sourcesContent":["import {\n quadHash,\n type RdfaParseConfig,\n RdfaParser,\n} from '#root/utils/_private/rdfa-parser/rdfa-parser.ts';\nimport { defaultPrefixes } from '#root/config/rdfa.ts';\nimport { EditorState } from 'prosemirror-state';\nimport {\n type default as Datastore,\n EditorStore,\n} from '#root/utils/_private/datastore/datastore.ts';\nimport type { DatastoreResolvedPNode } from '#root/plugins/datastore/datastore-node-types.ts';\nimport type {
|
|
1
|
+
{"version":3,"file":"say-store.js","sources":["../../../../src/utils/_private/datastore/say-store.ts"],"sourcesContent":["import {\n quadHash,\n type RdfaParseConfig,\n RdfaParser,\n} from '#root/utils/_private/rdfa-parser/rdfa-parser.ts';\nimport { defaultPrefixes } from '#root/config/rdfa.ts';\nimport { EditorState } from 'prosemirror-state';\nimport {\n type default as Datastore,\n EditorStore,\n} from '#root/utils/_private/datastore/datastore.ts';\nimport type { DatastoreResolvedPNode } from '#root/plugins/datastore/datastore-node-types.ts';\nimport type { N3StoreWrapper } from './n3-store-wrapper';\n\nexport interface SayDatastore extends Datastore<DatastoreResolvedPNode> {\n limitToRange(state: EditorState, start: number, end: number): SayStore;\n}\n\nexport type LimitToRangeStrategy = 'rangeIsInside' | 'rangeContains';\n\nexport class SayStore\n extends EditorStore<DatastoreResolvedPNode>\n implements SayDatastore\n{\n limitToRange(\n state: EditorState,\n start: number,\n end: number,\n strategy: LimitToRangeStrategy = 'rangeIsInside',\n ): SayStore {\n const comparisonFunction = (range: { from: number; to: number }) => {\n if (strategy === 'rangeIsInside') {\n return range.from <= start && range.to >= end;\n } else {\n return range.from >= start && range.to <= end;\n }\n };\n return this.transformDataset((dataset: N3StoreWrapper) => {\n return dataset.filter((quad) => {\n const quadNodes = this._quadToNodes.get(quadHash(quad));\n if (quadNodes) {\n const { subjectNodes, predicateNodes, objectNodes } = quadNodes;\n const hasSubjectNode = subjectNodes.some(comparisonFunction);\n const hasPredicateNode = predicateNodes.some(comparisonFunction);\n const hasObjectNode = objectNodes.some(comparisonFunction);\n return hasSubjectNode && hasPredicateNode && hasObjectNode;\n } else {\n return false;\n }\n });\n });\n }\n}\n\nexport function proseStoreFromParse(\n config: RdfaParseConfig<DatastoreResolvedPNode>,\n) {\n const {\n dataset,\n subjectToNodesMapping,\n nodeToSubjectMapping,\n objectToNodesMapping,\n nodeToObjectsMapping,\n predicateToNodesMapping,\n nodeToPredicatesMapping,\n quadToNodesMapping,\n seenPrefixes,\n resourceNodeMapping,\n contentNodeMapping,\n } = RdfaParser.parse(config);\n const prefixMap = new Map<string, string>(Object.entries(defaultPrefixes));\n for (const [key, value] of seenPrefixes.entries()) {\n prefixMap.set(key, value);\n }\n\n return new SayStore({\n documentRoot: config.root,\n dataset,\n subjectToNodes: subjectToNodesMapping,\n nodeToSubject: nodeToSubjectMapping,\n prefixMapping: prefixMap,\n objectToNodes: objectToNodesMapping,\n nodeToObjects: nodeToObjectsMapping,\n predicateToNodes: predicateToNodesMapping,\n nodeToPredicates: nodeToPredicatesMapping,\n quadToNodes: quadToNodesMapping,\n attributes: config.attributes,\n resourceNodeMapping,\n contentNodeMapping,\n });\n}\n"],"names":["SayStore","EditorStore","limitToRange","state","start","end","strategy","comparisonFunction","range","from","to","transformDataset","dataset","filter","quad","quadNodes","_quadToNodes","get","quadHash","subjectNodes","predicateNodes","objectNodes","hasSubjectNode","some","hasPredicateNode","hasObjectNode","proseStoreFromParse","config","subjectToNodesMapping","nodeToSubjectMapping","objectToNodesMapping","nodeToObjectsMapping","predicateToNodesMapping","nodeToPredicatesMapping","quadToNodesMapping","seenPrefixes","resourceNodeMapping","contentNodeMapping","RdfaParser","parse","prefixMap","Map","Object","entries","defaultPrefixes","key","value","set","documentRoot","root","subjectToNodes","nodeToSubject","prefixMapping","objectToNodes","nodeToObjects","predicateToNodes","nodeToPredicates","quadToNodes","attributes"],"mappings":";;;;;AAoBO,MAAMA,QAAQ,SACXC,WAAW,CAErB;EACEC,YAAYA,CACVC,KAAkB,EAClBC,KAAa,EACbC,GAAW,EACXC,QAA8B,GAAG,eAAe,EACtC;IACV,MAAMC,kBAAkB,GAAIC,KAAmC,IAAK;MAClE,IAAIF,QAAQ,KAAK,eAAe,EAAE;QAChC,OAAOE,KAAK,CAACC,IAAI,IAAIL,KAAK,IAAII,KAAK,CAACE,EAAE,IAAIL,GAAG;AAC/C,MAAA,CAAC,MAAM;QACL,OAAOG,KAAK,CAACC,IAAI,IAAIL,KAAK,IAAII,KAAK,CAACE,EAAE,IAAIL,GAAG;AAC/C,MAAA;IACF,CAAC;AACD,IAAA,OAAO,IAAI,CAACM,gBAAgB,CAAEC,OAAuB,IAAK;AACxD,MAAA,OAAOA,OAAO,CAACC,MAAM,CAAEC,IAAI,IAAK;AAC9B,QAAA,MAAMC,SAAS,GAAG,IAAI,CAACC,YAAY,CAACC,GAAG,CAACC,QAAQ,CAACJ,IAAI,CAAC,CAAC;AACvD,QAAA,IAAIC,SAAS,EAAE;UACb,MAAM;YAAEI,YAAY;YAAEC,cAAc;AAAEC,YAAAA;AAAY,WAAC,GAAGN,SAAS;AAC/D,UAAA,MAAMO,cAAc,GAAGH,YAAY,CAACI,IAAI,CAAChB,kBAAkB,CAAC;AAC5D,UAAA,MAAMiB,gBAAgB,GAAGJ,cAAc,CAACG,IAAI,CAAChB,kBAAkB,CAAC;AAChE,UAAA,MAAMkB,aAAa,GAAGJ,WAAW,CAACE,IAAI,CAAChB,kBAAkB,CAAC;AAC1D,UAAA,OAAOe,cAAc,IAAIE,gBAAgB,IAAIC,aAAa;AAC5D,QAAA,CAAC,MAAM;AACL,UAAA,OAAO,KAAK;AACd,QAAA;AACF,MAAA,CAAC,CAAC;AACJ,IAAA,CAAC,CAAC;AACJ,EAAA;AACF;AAEO,SAASC,mBAAmBA,CACjCC,MAA+C,EAC/C;EACA,MAAM;IACJf,OAAO;IACPgB,qBAAqB;IACrBC,oBAAoB;IACpBC,oBAAoB;IACpBC,oBAAoB;IACpBC,uBAAuB;IACvBC,uBAAuB;IACvBC,kBAAkB;IAClBC,YAAY;IACZC,mBAAmB;AACnBC,IAAAA;AACF,GAAC,GAAGC,UAAU,CAACC,KAAK,CAACZ,MAAM,CAAC;EAC5B,MAAMa,SAAS,GAAG,IAAIC,GAAG,CAAiBC,MAAM,CAACC,OAAO,CAACC,eAAe,CAAC,CAAC;AAC1E,EAAA,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAIX,YAAY,CAACQ,OAAO,EAAE,EAAE;AACjDH,IAAAA,SAAS,CAACO,GAAG,CAACF,GAAG,EAAEC,KAAK,CAAC;AAC3B,EAAA;EAEA,OAAO,IAAI9C,QAAQ,CAAC;IAClBgD,YAAY,EAAErB,MAAM,CAACsB,IAAI;IACzBrC,OAAO;AACPsC,IAAAA,cAAc,EAAEtB,qBAAqB;AACrCuB,IAAAA,aAAa,EAAEtB,oBAAoB;AACnCuB,IAAAA,aAAa,EAAEZ,SAAS;AACxBa,IAAAA,aAAa,EAAEvB,oBAAoB;AACnCwB,IAAAA,aAAa,EAAEvB,oBAAoB;AACnCwB,IAAAA,gBAAgB,EAAEvB,uBAAuB;AACzCwB,IAAAA,gBAAgB,EAAEvB,uBAAuB;AACzCwB,IAAAA,WAAW,EAAEvB,kBAAkB;IAC/BwB,UAAU,EAAE/B,MAAM,CAAC+B,UAAU;IAC7BtB,mBAAmB;AACnBC,IAAAA;AACF,GAAC,CAAC;AACJ;;;;"}
|
|
@@ -5,13 +5,13 @@ import { Util } from './util.js';
|
|
|
5
5
|
import { CustomError } from '../errors.js';
|
|
6
6
|
import { isElement, isTextNode } from '../dom-helpers.js';
|
|
7
7
|
import MapUtils from '../map-utils.js';
|
|
8
|
-
import { GraphyDataset } from '../datastore/graphy-dataset.js';
|
|
9
8
|
import { unwrap } from '../option.js';
|
|
10
9
|
import { rdfaResourceNodeMap, rdfaContentNodeMap } from '../datastore/node-map.js';
|
|
11
10
|
import { postProcessTagAsRdfaNode } from './post-process-as-rdfa-nodes.js';
|
|
12
11
|
import { sayDataFactory } from '../../../core/say-data-factory/data-factory.js';
|
|
13
12
|
import '../../../core/say-data-factory/default-graph.js';
|
|
14
13
|
import { LANG_STRING } from '../constants.js';
|
|
14
|
+
import { N3StoreWrapper } from '../datastore/n3-store-wrapper.js';
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Modified from https://github.com/rubensworks/rdfa-streaming-parser.js
|
|
@@ -55,7 +55,7 @@ class RdfaParser {
|
|
|
55
55
|
this.htmlParseListener = options.htmlParseListener;
|
|
56
56
|
this.rdfaPatterns = {};
|
|
57
57
|
this.pendingRdfaPatternCopies = {};
|
|
58
|
-
this.resultSet = new
|
|
58
|
+
this.resultSet = new N3StoreWrapper();
|
|
59
59
|
this.globallySeenPrefixes = new Map();
|
|
60
60
|
this.nodeToSubjectMapping = new Map();
|
|
61
61
|
this.subjectToNodesMapping = new Map();
|
|
@@ -117,7 +117,7 @@ class RdfaParser {
|
|
|
117
117
|
}
|
|
118
118
|
parser.onEnd();
|
|
119
119
|
return {
|
|
120
|
-
dataset: new
|
|
120
|
+
dataset: new N3StoreWrapper(parser.resultSet),
|
|
121
121
|
nodeToSubjectMapping: parser.nodeToSubjectMapping,
|
|
122
122
|
subjectToNodesMapping: parser.subjectToNodesMapping,
|
|
123
123
|
nodeToPredicatesMapping: parser.nodeToPredicatesMapping,
|
|
@@ -653,7 +653,7 @@ class RdfaParser {
|
|
|
653
653
|
subject: this.util.getResourceOrBaseIri(resource, activeTag),
|
|
654
654
|
contentPredicate: contentPredicate ? this.util.getResourceOrBaseIri(contentPredicate, activeTag) : undefined,
|
|
655
655
|
contentDatatype,
|
|
656
|
-
contentLanguage
|
|
656
|
+
contentLanguage
|
|
657
657
|
});
|
|
658
658
|
};
|
|
659
659
|
onText(data) {
|