@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":"rdfa-parser.js","sources":["../../../../src/utils/_private/rdfa-parser/rdfa-parser.ts"],"sourcesContent":["/**\n * Modified from https://github.com/rubensworks/rdfa-streaming-parser.js\n *\n * Copyright © 2019 Ruben Taelman\n */\nimport type * as RDF from '@rdfjs/types';\nimport type { IActiveTag } from './active-tag.ts';\nimport type { IHtmlParseListener } from './html-parse-listener.ts';\nimport INITIAL_CONTEXT_XHTML from './initial-context-xhtml.ts';\nimport INITIAL_CONTEXT from './initial-context.ts';\nimport type { IRdfaPattern } from './rdfa-pattern.ts';\nimport {\n type IRdfaFeatures,\n RDFA_FEATURES,\n type RdfaProfile,\n} from './rdfa-profile.ts';\nimport { Util } from './util.ts';\nimport { CustomError } from '#root/utils/_private/errors.ts';\nimport { isElement, isTextNode } from '#root/utils/_private/dom-helpers.ts';\nimport MapUtils from '#root/utils/_private/map-utils.ts';\nimport { GraphyDataset } from '#root/utils/_private/datastore/graphy-dataset.ts';\nimport { unwrap } from '#root/utils/_private/option.ts';\nimport type {\n RdfaResourceNodeMap,\n RdfaContentNodeMap,\n} from '../datastore/node-map.ts';\nimport {\n rdfaContentNodeMap,\n rdfaResourceNodeMap,\n} from '../datastore/node-map.ts';\nimport { postProcessTagAsRdfaNode } from './post-process-as-rdfa-nodes.ts';\nimport { sayDataFactory } from '#root/core/say-data-factory/index.ts';\nimport { LANG_STRING } from '../constants.ts';\n\nexport type ModelTerm<N> =\n | ModelQuadObject<N>\n | ModelQuadPredicate<N>\n | ModelQuadSubject<N>;\nexport type ModelQuadSubject<N> = ModelNamedNode<N> | ModelBlankNode<N>;\nexport type ModelQuadPredicate<N> = ModelNamedNode<N>;\nexport type ModelQuadObject<N> =\n | ModelNamedNode<N>\n | ModelBlankNode<N>\n | ModelLiteral<N>;\n\nexport interface ModelNamedNode<\n N,\n I extends string = string,\n> extends RDF.NamedNode<I> {\n node?: N;\n}\n\nexport interface ModelBlankNode<N> extends RDF.BlankNode {\n node?: N;\n}\n\nexport interface ModelLiteral<N> extends RDF.Literal {\n node?: N;\n}\n\nexport interface ModelQuad<N> extends RDF.Quad {\n subject: ModelQuadSubject<N>;\n predicate: ModelQuadPredicate<N>;\n object: ModelQuadObject<N>;\n}\n\nexport interface RdfaParseConfig<N> {\n root: N;\n\n parseRoot?: boolean;\n\n textContent(this: void, node: N): string;\n\n isText(this: void, node: N): boolean;\n\n children(this: void, node: N): Iterable<N>;\n\n tag(this: void, node: N): string;\n\n attributes(this: void, node: N): Record<string, string>;\n\n baseIRI: string;\n pathFromDomRoot?: Node[];\n}\n\nexport interface QuadNodes<N> {\n subjectNodes: N[];\n predicateNodes: N[];\n objectNodes: N[];\n}\n\nexport interface SubAndPred {\n subject: RDF.Quad_Subject;\n predicate: RDF.Quad_Predicate;\n languageOrDatatype?: RDF.NamedNode;\n}\n\nexport interface RdfaParseResponse<N> {\n dataset: GraphyDataset;\n\n subjectToNodesMapping: Map<string, N[]>;\n nodeToSubjectMapping: Map<N, ModelQuad<N>>;\n\n nodeToObjectsMapping: Map<N, Set<ModelQuad<N>>>;\n objectToNodesMapping: Map<string, N[]>;\n\n nodeToPredicatesMapping: Map<N, Set<ModelQuad<N>>>;\n predicateToNodesMapping: Map<string, N[]>;\n\n quadToNodesMapping: Map<string, QuadNodes<N>>;\n seenPrefixes: Map<string, string>;\n\n resourceNodeMapping: RdfaResourceNodeMap<N>;\n contentNodeMapping: RdfaContentNodeMap<N>;\n}\n\nexport class RdfaParser<N> {\n private readonly options: IRdfaParserOptions<N>;\n private util: Util<N>;\n private readonly defaultGraph: RDF.Quad_Graph;\n private readonly features: IRdfaFeatures;\n private readonly htmlParseListener?: IHtmlParseListener;\n private readonly rdfaPatterns: Record<string, IRdfaPattern<N>>;\n private readonly pendingRdfaPatternCopies: Record<string, IActiveTag<N>[]>;\n private resultSet: RDF.Dataset;\n\n private readonly activeTagStack: IActiveTag<N>[] = [];\n private nodeToSubjectMapping: Map<N, ModelQuad<N>>;\n private subjectToNodesMapping: Map<string, N[]>;\n\n private nodeToObjectsMapping: Map<N, Set<ModelQuad<N>>>;\n private objectToNodesMapping: Map<string, N[]>;\n\n // nodes can define multiple predicates\n private nodeToPredicatesMapping: Map<N, Set<ModelQuad<N>>>;\n private predicateToNodesMapping: Map<string, N[]>;\n\n private quadToNodesMapping: Map<string, QuadNodes<N>>;\n\n private rootModelNode: N;\n private seenSubjectNodes: Map<RDF.Term, N>;\n private seenPredicateNodes: Map<RDF.Term, N>;\n private seenObjectNodes: Map<RDF.Term, N>;\n private globallySeenPrefixes: Map<string, string>;\n private resourceNodeMapping: RdfaResourceNodeMap<N>;\n private contentNodeMapping: RdfaContentNodeMap<N>;\n\n constructor(options: IRdfaParserOptions<N>) {\n this.options = options;\n\n this.rootModelNode = options.rootModelNode;\n this.util = new Util<N>(this.rootModelNode, undefined, options.baseIRI);\n this.defaultGraph =\n options.defaultGraph || this.util.dataFactory.defaultGraph();\n const profile = options.contentType\n ? Util.contentTypeToProfile(options.contentType)\n : options.profile || '';\n this.features = options.features || RDFA_FEATURES[profile];\n this.htmlParseListener = options.htmlParseListener;\n this.rdfaPatterns = {};\n this.pendingRdfaPatternCopies = {};\n this.resultSet = new GraphyDataset();\n this.globallySeenPrefixes = new Map<string, string>();\n\n this.nodeToSubjectMapping = new Map();\n this.subjectToNodesMapping = new Map<string, N[]>();\n\n this.predicateToNodesMapping = new Map<string, N[]>();\n this.nodeToPredicatesMapping = new Map();\n\n this.nodeToObjectsMapping = new Map();\n this.objectToNodesMapping = new Map<string, N[]>();\n this.seenSubjectNodes = new Map<RDF.Term, N>();\n this.seenPredicateNodes = new Map<RDF.Term, N>();\n this.seenObjectNodes = new Map<RDF.Term, N>();\n\n this.quadToNodesMapping = new Map<string, QuadNodes<N>>();\n this.resourceNodeMapping = rdfaResourceNodeMap<N>();\n this.contentNodeMapping = rdfaContentNodeMap<N>();\n\n this.activeTagStack.push({\n incompleteTriples: [],\n inlist: false,\n language: options.language,\n listMapping: {},\n listMappingLocal: {},\n name: '',\n attributes: {},\n prefixesAll: {\n ...INITIAL_CONTEXT['@context'],\n ...(this.features.xhtmlInitialContext\n ? INITIAL_CONTEXT_XHTML['@context']\n : {}),\n },\n prefixesCustom: {},\n skipElement: false,\n vocab: options.vocab,\n node: this.rootModelNode,\n });\n }\n\n static parse<N>(config: RdfaParseConfig<N>): RdfaParseResponse<N> {\n const { pathFromDomRoot = [], root, baseIRI, parseRoot = true } = config;\n const parser = new RdfaParser<N>({ rootModelNode: root, baseIRI });\n for (const domNode of pathFromDomRoot) {\n if (isElement(domNode)) {\n const attributeObj: Record<string, string> = {};\n for (const attr of domNode.attributes) {\n attributeObj[attr.name] = attr.value;\n }\n parser.onTagOpen(domNode.tagName, attributeObj, root);\n } else if (isTextNode(domNode)) {\n parser.onText(domNode.textContent || '');\n }\n }\n if (parseRoot) {\n this.parseRec(root, parser, config);\n }\n for (const _ of pathFromDomRoot) {\n parser.onTagClose();\n }\n parser.onEnd();\n return {\n dataset: new GraphyDataset(parser.resultSet),\n nodeToSubjectMapping: parser.nodeToSubjectMapping,\n subjectToNodesMapping: parser.subjectToNodesMapping,\n nodeToPredicatesMapping: parser.nodeToPredicatesMapping,\n predicateToNodesMapping: parser.predicateToNodesMapping,\n nodeToObjectsMapping: parser.nodeToObjectsMapping,\n objectToNodesMapping: parser.objectToNodesMapping,\n quadToNodesMapping: parser.quadToNodesMapping,\n seenPrefixes: parser.globallySeenPrefixes,\n resourceNodeMapping: parser.resourceNodeMapping,\n contentNodeMapping: parser.contentNodeMapping,\n };\n }\n\n static parseRec<N>(\n node: N,\n parser: RdfaParser<N>,\n config: RdfaParseConfig<N>,\n ) {\n const { isText, textContent, tag, attributes, children } = config;\n if (isText(node)) {\n parser.onText(textContent(node));\n return;\n }\n parser.onTagOpen(tag(node), attributes(node), node);\n for (const child of children(node)) {\n this.parseRec<N>(child, parser, config);\n }\n parser.onTagClose();\n }\n\n protected onTagOpen(\n name: string,\n attributes: Record<string, string>,\n node?: N,\n ) {\n // Determine the parent tag (ignore skipped tags)\n let parentTagI: number = this.activeTagStack.length - 1;\n while (parentTagI > 0 && this.activeTagStack[parentTagI].skipElement) {\n parentTagI--;\n }\n let parentTag: IActiveTag<N> = this.activeTagStack[parentTagI];\n // If we skipped a tag, make sure we DO use the lang, prefixes and vocab of the skipped tag\n if (parentTagI !== this.activeTagStack.length - 1) {\n parentTag = {\n ...parentTag,\n language: this.activeTagStack[this.activeTagStack.length - 1].language,\n prefixesAll:\n this.activeTagStack[this.activeTagStack.length - 1].prefixesAll,\n prefixesCustom:\n this.activeTagStack[this.activeTagStack.length - 1].prefixesCustom,\n vocab: this.activeTagStack[this.activeTagStack.length - 1].vocab,\n };\n }\n\n // Create a new active tag and inherit language scope and baseIRI from parent\n const activeTag: IActiveTag<N> = {\n collectChildTags: parentTag.collectChildTags,\n incompleteTriples: [],\n inlist: !!attributes['inlist'],\n listMapping: {},\n listMappingLocal: parentTag.listMapping,\n localBaseIRI: parentTag.localBaseIRI,\n name,\n attributes,\n prefixesAll: {},\n prefixesCustom: {},\n skipElement: false,\n node,\n };\n this.activeTagStack.push(activeTag);\n\n // Save the tag contents if needed\n if (activeTag.collectChildTags) {\n // Add explicitly defined xmlns, xmlns:* and prefixes to attributes, as required by the spec (Step 11, note)\n // Sort prefixes alphabetically for deterministic namespace declaration order\n for (const prefix of Object.keys(parentTag.prefixesCustom).sort()) {\n const suffix = parentTag.prefixesCustom[prefix];\n const attributeKey = prefix === '' ? 'xmlns' : 'xmlns:' + prefix;\n if (!(attributeKey in attributes)) {\n attributes[attributeKey] = suffix;\n }\n }\n\n const attributesSerialized = Object.keys(attributes)\n .map((key) => `${key}=\"${attributes[key]}\"`)\n .join(' ');\n activeTag.text = [\n `<${name}${attributesSerialized ? ' ' + attributesSerialized : ''}>`,\n ];\n if (this.features.skipHandlingXmlLiteralChildren) {\n return;\n }\n }\n\n let allowTermsInRelPredicates = true;\n let allowTermsInRevPredicates = true;\n if (this.features.onlyAllowUriRelRevIfProperty) {\n // Ignore illegal rel/rev values when property is present\n if (attributes['property'] && attributes['rel']) {\n allowTermsInRelPredicates = false;\n if (attributes['rel'].indexOf(':') < 0) {\n delete attributes['rel'];\n }\n }\n if (attributes['property'] && attributes['rev']) {\n allowTermsInRevPredicates = false;\n if (attributes['rev'].indexOf(':') < 0) {\n delete attributes['revany'];\n }\n }\n }\n\n if (this.features.copyRdfaPatterns) {\n // Save the tag if needed\n if (parentTag.collectedPatternTag) {\n const patternTag: IRdfaPattern<N> = {\n attributes,\n children: [],\n name,\n referenced: false,\n rootPattern: false,\n text: [],\n };\n parentTag.collectedPatternTag.children.push(patternTag);\n activeTag.collectedPatternTag = patternTag;\n return;\n }\n\n // Store tags with type rdfa:Pattern as patterns\n if (attributes['typeof'] === 'rdfa:Pattern') {\n activeTag.collectedPatternTag = {\n attributes,\n children: [],\n name,\n parentTag,\n referenced: false,\n rootPattern: true,\n text: [],\n };\n return;\n }\n\n // Instantiate patterns on rdfa:copy\n if (attributes['property'] === 'rdfa:copy') {\n const copyTargetPatternId: string =\n attributes['resource'] || attributes['href'] || attributes['src'];\n if (this.rdfaPatterns[copyTargetPatternId]) {\n this.emitPatternCopy(\n parentTag,\n this.rdfaPatterns[copyTargetPatternId],\n copyTargetPatternId,\n activeTag.node,\n );\n } else {\n if (!this.pendingRdfaPatternCopies[copyTargetPatternId]) {\n this.pendingRdfaPatternCopies[copyTargetPatternId] = [];\n }\n this.pendingRdfaPatternCopies[copyTargetPatternId].push(parentTag);\n }\n return;\n }\n }\n\n // <base> tags override the baseIRI of the whole document\n if (this.features.baseTag && name === 'base' && attributes['href']) {\n this.util.baseIRI = this.util.getBaseIRI(attributes['href'], node);\n }\n // xml:base attributes override the baseIRI of the current tag and children\n if (this.features.xmlBase && attributes['xml:base']) {\n activeTag.localBaseIRI = this.util.getBaseIRI(\n attributes['xml:base'],\n node,\n );\n }\n\n // <time> tags set an initial datatype\n if (this.features.timeTag && name === 'time' && !attributes['datatype']) {\n activeTag.interpretObjectAsTime = true;\n }\n\n // Processing based on https://www.w3.org/TR/rdfa-core/#s_rdfaindetail\n // 1: initialize values\n let newSubject: ModelNamedNode<N> | ModelBlankNode<N> | boolean | null =\n null;\n let currentObjectResource:\n | ModelNamedNode<N>\n | ModelBlankNode<N>\n | boolean\n | null = null;\n let typedResource: ModelNamedNode<N> | ModelBlankNode<N> | boolean | null =\n null;\n\n // 2: handle vocab attribute to set active vocabulary\n // Vocab sets the active vocabulary\n if (attributes['vocab']) {\n if (attributes['vocab']) {\n activeTag.vocab = attributes['vocab'];\n this.emitTriple(\n this.util.getBaseIriTerm(activeTag),\n this.util.dataFactory.namedNode(Util.RDFA + 'usesVocabulary', node),\n this.util.dataFactory.namedNode(activeTag.vocab, node),\n );\n } else {\n // If vocab is set to '', then we fallback to the root vocab as defined via the parser constructor\n activeTag.vocab = this.activeTagStack[0].vocab;\n }\n } else {\n activeTag.vocab = parentTag.vocab;\n }\n\n // 3: handle prefixes\n activeTag.prefixesCustom = Util.parsePrefixes(\n attributes,\n parentTag.prefixesCustom,\n this.features.xmlnsPrefixMappings,\n this.globallySeenPrefixes,\n );\n activeTag.prefixesAll =\n Object.keys(activeTag.prefixesCustom).length > 0\n ? { ...parentTag.prefixesAll, ...activeTag.prefixesCustom }\n : parentTag.prefixesAll;\n\n // Handle role attribute\n if (this.features.roleAttribute && attributes['role']) {\n const roleSubject = attributes['id']\n ? this.util.createIri(\n '#' + attributes['id'],\n activeTag,\n false,\n false,\n false,\n )\n : this.util.createBlankNode(node);\n // Temporarily override vocab\n const vocabOld = activeTag.vocab;\n activeTag.vocab = 'http://www.w3.org/1999/xhtml/vocab#';\n for (const role of this.util.createVocabIris(\n attributes['role'],\n activeTag,\n true,\n false,\n )) {\n this.emitTriple(\n roleSubject,\n this.util.dataFactory.namedNode(\n 'http://www.w3.org/1999/xhtml/vocab#role',\n node,\n ),\n role,\n );\n }\n activeTag.vocab = vocabOld;\n }\n\n // 4: handle language\n // Save language attribute value in active tag\n if (\n attributes['xml:lang'] ||\n (this.features.langAttribute && attributes['lang'])\n ) {\n activeTag.language = attributes['xml:lang'] || attributes['lang'];\n } else {\n activeTag.language = parentTag.language;\n }\n\n const isRootTag: boolean = this.activeTagStack.length === 2;\n if (!attributes['rel'] && !attributes['rev']) {\n // 5: Determine the new subject when rel and rev are not present\n if (\n attributes['property'] &&\n !attributes['content'] &&\n !attributes['datatype']\n ) {\n // 5.1: property is present, but not content and datatype\n // Determine new subject\n if (attributes['about']) {\n newSubject = this.util.createIri(\n attributes['about'],\n activeTag,\n false,\n true,\n true,\n );\n activeTag.explicitNewSubject = !!newSubject;\n } else if (isRootTag) {\n newSubject = true;\n } else if (parentTag.object) {\n newSubject = parentTag.object;\n }\n\n // Determine type\n if (attributes['typeof']) {\n if (attributes['about']) {\n typedResource = this.util.createIri(\n attributes['about'],\n activeTag,\n false,\n true,\n true,\n );\n }\n if (!typedResource && isRootTag) {\n typedResource = true;\n }\n if (!typedResource && attributes['resource']) {\n typedResource = this.util.createIri(\n attributes['resource'],\n activeTag,\n false,\n true,\n true,\n );\n }\n if (!typedResource && (attributes['href'] || attributes['src'])) {\n typedResource = this.util.createIri(\n attributes['href'] || attributes['src'],\n activeTag,\n false,\n false,\n true,\n );\n }\n if (!typedResource && this.isInheritSubjectInHeadBody(name)) {\n typedResource = newSubject;\n }\n if (!typedResource) {\n typedResource = this.util.createBlankNode(node);\n }\n\n currentObjectResource = typedResource;\n }\n } else {\n // 5.2\n if (attributes['about'] || attributes['resource']) {\n newSubject = this.util.createIri(\n attributes['about'] || attributes['resource'],\n activeTag,\n false,\n true,\n true,\n );\n activeTag.explicitNewSubject = !!newSubject;\n }\n if (!newSubject && (attributes['href'] || attributes['src'])) {\n newSubject = this.util.createIri(\n attributes['href'] || attributes['src'],\n activeTag,\n false,\n false,\n true,\n );\n activeTag.explicitNewSubject = !!newSubject;\n }\n if (!newSubject) {\n if (isRootTag) {\n newSubject = true;\n } else if (this.isInheritSubjectInHeadBody(name)) {\n newSubject = parentTag.object || null;\n } else if (attributes['typeof']) {\n newSubject = this.util.createBlankNode(node);\n activeTag.explicitNewSubject = true;\n } else if (parentTag.object) {\n newSubject = parentTag.object;\n if (!attributes['property']) {\n activeTag.skipElement = true;\n }\n }\n }\n\n // Determine type\n if (attributes['typeof']) {\n typedResource = newSubject;\n }\n }\n } else {\n // either rel or rev is present\n // 6: Determine the new subject when rel or rev are present\n\n // Define new subject\n if (attributes['about']) {\n newSubject = this.util.createIri(\n attributes['about'],\n activeTag,\n false,\n true,\n true,\n );\n activeTag.explicitNewSubject = !!newSubject;\n if (attributes['typeof']) {\n typedResource = newSubject;\n }\n } else if (isRootTag) {\n newSubject = true;\n } else if (parentTag.object) {\n newSubject = parentTag.object;\n }\n\n // Define object\n if (attributes['resource']) {\n currentObjectResource = this.util.createIri(\n attributes['resource'],\n activeTag,\n false,\n true,\n true,\n );\n }\n if (!currentObjectResource) {\n if (attributes['href'] || attributes['src']) {\n currentObjectResource = this.util.createIri(\n attributes['href'] || attributes['src'],\n activeTag,\n false,\n false,\n true,\n );\n } else if (\n attributes['typeof'] &&\n !attributes['about'] &&\n !this.isInheritSubjectInHeadBody(name)\n ) {\n currentObjectResource = this.util.createBlankNode(node);\n }\n }\n\n // Set typed resource\n if (attributes['typeof'] && !attributes['about']) {\n if (this.isInheritSubjectInHeadBody(name)) {\n typedResource = newSubject;\n } else {\n typedResource = currentObjectResource;\n }\n }\n }\n\n // 7: If a typed resource was defined, emit it as a triple\n if (typedResource) {\n for (const type of this.util.createVocabIris(\n attributes['typeof'],\n activeTag,\n true,\n true,\n )) {\n this.emitTriple(\n this.util.getResourceOrBaseIri(typedResource, activeTag),\n this.util.dataFactory.namedNode(Util.RDF + 'type', node),\n type,\n );\n }\n }\n\n // 8: Reset list mapping if we have a new subject\n if (newSubject) {\n activeTag.listMapping = {};\n }\n\n // 9: If an object was defined, emit triples for it\n if (currentObjectResource) {\n if (!newSubject) {\n throw new NullOrUndefinedError();\n }\n // Handle list mapping\n if (attributes['rel'] && attributes['inlist']) {\n for (const predicate of this.util.createVocabIris(\n attributes['rel'],\n activeTag,\n allowTermsInRelPredicates,\n false,\n )) {\n this.addListMapping(\n activeTag,\n newSubject,\n predicate,\n currentObjectResource,\n );\n }\n }\n\n // Determine predicates using rel or rev (unless rel and inlist are present)\n if (!(attributes['rel'] && attributes['inlist'])) {\n if (attributes['rel']) {\n for (const predicate of this.util.createVocabIris(\n attributes['rel'],\n activeTag,\n allowTermsInRelPredicates,\n false,\n )) {\n this.emitTriple(\n this.util.getResourceOrBaseIri(newSubject, activeTag),\n predicate,\n this.util.getResourceOrBaseIri(currentObjectResource, activeTag),\n );\n }\n }\n if (attributes['rev']) {\n for (const predicate of this.util.createVocabIris(\n attributes['rev'],\n activeTag,\n allowTermsInRevPredicates,\n false,\n )) {\n this.emitTriple(\n this.util.getResourceOrBaseIri(currentObjectResource, activeTag),\n predicate,\n this.util.getResourceOrBaseIri(newSubject, activeTag),\n );\n }\n }\n }\n }\n\n // 10: Store incomplete triples if we don't have an object, but we do have predicates\n if (!currentObjectResource) {\n if (attributes['rel']) {\n if (attributes['inlist']) {\n for (const predicate of this.util.createVocabIris(\n attributes['rel'],\n activeTag,\n allowTermsInRelPredicates,\n false,\n )) {\n if (!newSubject) {\n throw new NullOrUndefinedError();\n }\n this.addListMapping(activeTag, newSubject, predicate, null);\n activeTag.incompleteTriples.push({\n predicate,\n reverse: false,\n list: true,\n });\n }\n } else {\n for (const predicate of this.util.createVocabIris(\n attributes['rel'],\n activeTag,\n allowTermsInRelPredicates,\n false,\n )) {\n activeTag.incompleteTriples.push({ predicate, reverse: false });\n }\n }\n }\n if (attributes['rev']) {\n for (const predicate of this.util.createVocabIris(\n attributes['rev'],\n activeTag,\n allowTermsInRevPredicates,\n false,\n )) {\n activeTag.incompleteTriples.push({ predicate, reverse: true });\n }\n }\n\n // Set a blank node object, so the children can make use of this when completing the triples\n if (activeTag.incompleteTriples.length > 0) {\n currentObjectResource = this.util.createBlankNode(node);\n }\n }\n\n // 11: Determine current property value\n if (attributes['property']) {\n // Create predicates\n activeTag.predicates = this.util.createVocabIris(\n attributes['property'],\n activeTag,\n true,\n false,\n );\n\n // Save datatype attribute value in active tag\n let localObjectResource: RDF.Term | boolean | null = null;\n\n if (attributes['datatype']) {\n activeTag.datatype = this.util.createIri(\n attributes['datatype'],\n activeTag,\n true,\n true,\n false,\n );\n if (\n activeTag.datatype &&\n (activeTag.datatype.value === Util.RDF + 'XMLLiteral' ||\n (this.features.htmlDatatype &&\n activeTag.datatype.value === Util.RDF + 'HTML'))\n ) {\n activeTag.collectChildTags = true;\n }\n } else {\n // Try to determine resource\n if (\n !attributes['rev'] &&\n !attributes['rel'] &&\n !attributes['content']\n ) {\n if (attributes['resource']) {\n localObjectResource = this.util.createIri(\n attributes['resource'],\n activeTag,\n false,\n true,\n true,\n );\n }\n if (!localObjectResource && attributes['href']) {\n localObjectResource = this.util.createIri(\n attributes['href'],\n activeTag,\n false,\n false,\n true,\n );\n }\n if (!localObjectResource && attributes['src']) {\n localObjectResource = this.util.createIri(\n attributes['src'],\n activeTag,\n false,\n false,\n true,\n );\n }\n }\n if (attributes['typeof'] && !attributes['about']) {\n localObjectResource = typedResource;\n }\n }\n if (!newSubject) {\n throw new NullOrUndefinedError();\n }\n\n if (attributes['content']) {\n if (!newSubject) {\n throw new NullOrUndefinedError();\n }\n // Emit triples based on content attribute has preference over text content\n const object = this.util.createLiteral(\n attributes['content'],\n activeTag,\n );\n if (attributes['inlist']) {\n for (const predicate of activeTag.predicates) {\n this.addListMapping(activeTag, newSubject, predicate, object);\n }\n } else {\n const subject = this.util.getResourceOrBaseIri(newSubject, activeTag);\n for (const predicate of activeTag.predicates) {\n this.emitTriple(subject, predicate, object);\n }\n }\n\n // Unset predicate to avoid text contents to produce new triples\n activeTag.predicates = null;\n } else if (this.features.datetimeAttribute && attributes['datetime']) {\n activeTag.interpretObjectAsTime = true;\n // Datetime attribute on time tag has preference over text content\n const object = this.util.createLiteral(\n attributes['datetime'],\n activeTag,\n );\n if (attributes['inlist']) {\n for (const predicate of activeTag.predicates) {\n this.addListMapping(activeTag, newSubject, predicate, object);\n }\n } else {\n const subject = this.util.getResourceOrBaseIri(newSubject, activeTag);\n for (const predicate of activeTag.predicates) {\n this.emitTriple(subject, predicate, object);\n }\n }\n\n // Unset predicate to avoid text contents to produce new triples\n activeTag.predicates = null;\n } else if (localObjectResource) {\n // Emit triples for all resource objects\n const object = this.util.getResourceOrBaseIri(\n localObjectResource,\n activeTag,\n );\n if (attributes['inlist']) {\n for (const predicate of activeTag.predicates) {\n this.addListMapping(activeTag, newSubject, predicate, object);\n }\n } else {\n const subject = this.util.getResourceOrBaseIri(newSubject, activeTag);\n for (const predicate of activeTag.predicates) {\n this.emitTriple(subject, predicate, object);\n }\n }\n\n // Unset predicate to avoid text contents to produce new triples\n activeTag.predicates = null;\n }\n }\n\n // 12: Complete incomplete triples\n let incompleteTriplesCompleted = false;\n if (\n !activeTag.skipElement &&\n newSubject &&\n parentTag.incompleteTriples.length > 0\n ) {\n incompleteTriplesCompleted = true;\n if (!parentTag.subject) {\n throw new NullOrUndefinedError();\n }\n const subject = this.util.getResourceOrBaseIri(\n parentTag.subject,\n activeTag,\n );\n const object = this.util.getResourceOrBaseIri(newSubject, activeTag);\n for (const incompleteTriple of parentTag.incompleteTriples) {\n if (!incompleteTriple.reverse) {\n if (incompleteTriple.list) {\n // Find the active tag that defined the list by going up the stack\n let firstInListTag = null;\n for (let i = this.activeTagStack.length - 1; i >= 0; i--) {\n if (this.activeTagStack[i].inlist) {\n firstInListTag = this.activeTagStack[i];\n break;\n }\n }\n // firstInListTag is guaranteed to be non-null\n // <Arne Bertrand>: but lets check it anyway\n if (!firstInListTag) {\n throw new NullOrUndefinedError();\n }\n this.addListMapping(\n firstInListTag,\n newSubject,\n incompleteTriple.predicate,\n object,\n );\n } else {\n this.emitTriple(subject, incompleteTriple.predicate, object);\n }\n } else {\n this.emitTriple(object, incompleteTriple.predicate, subject);\n }\n }\n }\n if (!incompleteTriplesCompleted && parentTag.incompleteTriples.length > 0) {\n activeTag.incompleteTriples = activeTag.incompleteTriples.concat(\n parentTag.incompleteTriples,\n );\n }\n\n // 13: Save evaluation context into active tag\n activeTag.subject = newSubject || parentTag.subject;\n activeTag.object = currentObjectResource || newSubject;\n activeTag.typedResource = typedResource;\n }\n\n markAsLiteralNode = (\n node: N,\n activeTag: IActiveTag<N>,\n attributes: Record<string, string>,\n predicateAttribute = 'property',\n ) => {\n const object = this.util.createLiteral(activeTag.content ?? '', activeTag);\n this.contentNodeMapping.set(node, {\n subject: sayDataFactory.resourceNode(\n this.util.getResourceOrBaseIri(unwrap(activeTag.subject), activeTag)\n .value,\n ),\n\n predicate: this.util.createIri(\n attributes[predicateAttribute],\n activeTag,\n true,\n true,\n false,\n ),\n object,\n });\n };\n\n markAsResourceNode = (\n node: N,\n resource: boolean | ModelBlankNode<N> | ModelNamedNode<N>,\n activeTag: IActiveTag<N>,\n contentPredicate?: ModelNamedNode<N>,\n contentDatatype?: ModelNamedNode<N>,\n contentLanguage?: string,\n ) => {\n if (\n contentDatatype &&\n !contentDatatype.equals(sayDataFactory.namedNode(LANG_STRING))\n ) {\n contentLanguage = undefined;\n }\n this.resourceNodeMapping.set(node, {\n subject: this.util.getResourceOrBaseIri(resource, activeTag),\n contentPredicate: contentPredicate\n ? this.util.getResourceOrBaseIri(contentPredicate, activeTag)\n : undefined,\n contentDatatype,\n contentLanguage: contentLanguage?.toLowerCase(),\n });\n };\n\n public onText(data: string) {\n const activeTag: IActiveTag<N> =\n this.activeTagStack[this.activeTagStack.length - 1];\n\n // Collect text in pattern tag if needed\n if (this.features.copyRdfaPatterns && activeTag.collectedPatternTag) {\n activeTag.collectedPatternTag.text.push(data);\n return;\n }\n\n // Save the text inside the active tag\n if (!activeTag.text) {\n activeTag.text = [];\n }\n activeTag.text.push(data);\n }\n\n public onTagClose() {\n // Get the active tag\n const activeTag: IActiveTag<N> =\n this.activeTagStack[this.activeTagStack.length - 1];\n const parentTag: IActiveTag<N> =\n this.activeTagStack[this.activeTagStack.length - 2];\n\n let textSegments: string[] = activeTag.text || [];\n if (activeTag.collectChildTags && parentTag.collectChildTags) {\n // If we are inside an XMLLiteral child that also has RDFa content, ignore the tag name that was collected.\n textSegments = textSegments.slice(1);\n }\n activeTag.content =\n activeTag.attributes['content'] ?? textSegments.join('');\n\n if (\n !(\n activeTag.collectChildTags &&\n parentTag.collectChildTags &&\n this.features.skipHandlingXmlLiteralChildren\n )\n ) {\n // If we detect a finalized rdfa:Pattern tag, store it\n if (\n this.features.copyRdfaPatterns &&\n activeTag.collectedPatternTag &&\n activeTag.collectedPatternTag.rootPattern\n ) {\n const patternId = activeTag.collectedPatternTag.attributes['resource'];\n\n // Remove resource and typeof attributes to avoid it being seen as a new pattern\n delete activeTag.collectedPatternTag.attributes['resource'];\n delete activeTag.collectedPatternTag.attributes['typeof'];\n\n // Store the pattern\n this.rdfaPatterns[patternId] = activeTag.collectedPatternTag;\n\n // Apply all pending copies for this pattern\n if (this.pendingRdfaPatternCopies[patternId]) {\n for (const tag of this.pendingRdfaPatternCopies[patternId]) {\n this.emitPatternCopy(\n tag,\n activeTag.collectedPatternTag,\n patternId,\n activeTag.node,\n );\n }\n delete this.pendingRdfaPatternCopies[patternId];\n }\n\n // Remove the active tag from the stack\n this.activeTagStack.pop();\n\n return;\n }\n\n // Emit all triples that were determined in the active tag\n if (activeTag.predicates) {\n if (!activeTag.subject) {\n throw new NullOrUndefinedError();\n }\n const subject = this.util.getResourceOrBaseIri(\n activeTag.subject,\n activeTag,\n );\n let textSegments: string[] = activeTag.text || [];\n if (activeTag.collectChildTags && parentTag.collectChildTags) {\n // If we are inside an XMLLiteral child that also has RDFa content, ignore the tag name that was collected.\n textSegments = textSegments.slice(1);\n }\n const object = this.util.createLiteral(\n textSegments.join(''),\n activeTag,\n );\n if (activeTag.inlist) {\n for (const predicate of activeTag.predicates) {\n this.addListMapping(activeTag, subject, predicate, object);\n }\n } else {\n for (const predicate of activeTag.predicates) {\n this.emitTriple(subject, predicate, object);\n }\n }\n\n // Reset text, unless the parent is also collecting text\n if (!parentTag.predicates) {\n activeTag.text = null;\n }\n }\n\n // 14: Handle local list mapping\n if (activeTag.object && Object.keys(activeTag.listMapping).length > 0) {\n const subject = this.util.getResourceOrBaseIri(\n activeTag.object,\n activeTag,\n );\n for (const predicateValue in activeTag.listMapping) {\n const predicate = this.util.dataFactory.namedNode(\n predicateValue,\n activeTag.node,\n );\n const values = activeTag.listMapping[predicateValue];\n\n if (values.length > 0) {\n // Non-empty list, emit linked list of rdf:first and rdf:rest chains\n const bnodes = values.map((value) =>\n this.util.createBlankNode(\n typeof value === 'boolean' ? undefined : value.node,\n ),\n );\n for (let i = 0; i < values.length; i++) {\n const object = this.util.getResourceOrBaseIri(\n values[i],\n activeTag,\n );\n this.emitTriple(\n bnodes[i],\n this.util.dataFactory.namedNode(\n Util.RDF + 'first',\n activeTag.node,\n ),\n object,\n );\n this.emitTriple(\n bnodes[i],\n this.util.dataFactory.namedNode(\n Util.RDF + 'rest',\n activeTag.node,\n ),\n i < values.length - 1\n ? bnodes[i + 1]\n : this.util.dataFactory.namedNode(Util.RDF + 'nil'),\n );\n }\n\n // Emit triple for the first linked list chain\n this.emitTriple(subject, predicate, bnodes[0]);\n } else {\n // Empty list, just emit rdf:nil\n this.emitTriple(\n subject,\n predicate,\n this.util.dataFactory.namedNode(Util.RDF + 'nil'),\n );\n }\n }\n }\n }\n\n // Remove the active tag from the stack\n this.activeTagStack.pop();\n\n // Save the tag contents if needed\n if (activeTag.collectChildTags && activeTag.text) {\n activeTag.text.push(`</${activeTag.name}>`);\n }\n\n // If we still have text contents, try to append it to the parent tag\n if (activeTag.text && parentTag) {\n if (!parentTag.text) {\n parentTag.text = activeTag.text;\n } else {\n parentTag.text = parentTag.text.concat(activeTag.text);\n }\n }\n const isRootTag: boolean = this.activeTagStack.length === 1;\n const isExternalTriple = Boolean(\n parentTag?.attributes['data-external-triple-container'],\n );\n postProcessTagAsRdfaNode({\n activeTag,\n attributes: activeTag.attributes,\n isRootTag,\n isExternalTriple,\n typedResource: activeTag.typedResource ?? null,\n markAsLiteralNode: this.markAsLiteralNode,\n markAsResourceNode: this.markAsResourceNode,\n });\n }\n\n public onEnd() {\n if (this.features.copyRdfaPatterns) {\n this.features.copyRdfaPatterns = false;\n\n // Emit all unreferenced patterns\n for (const patternId in this.rdfaPatterns) {\n const pattern = this.rdfaPatterns[patternId];\n if (!pattern.referenced) {\n pattern.attributes['typeof'] = 'rdfa:Pattern';\n pattern.attributes['resource'] = patternId;\n if (!pattern.parentTag) {\n throw new NullOrUndefinedError();\n }\n this.emitPatternCopy(pattern.parentTag, pattern, patternId);\n pattern.referenced = false;\n delete pattern.attributes['typeof'];\n delete pattern.attributes['resource'];\n }\n }\n\n // Emit all unreferenced copy links\n for (const patternId in this.pendingRdfaPatternCopies) {\n for (const parentTag of this.pendingRdfaPatternCopies[patternId]) {\n this.activeTagStack.push(parentTag);\n this.onTagOpen('link', { property: 'rdfa:copy', href: patternId });\n this.onTagClose();\n this.activeTagStack.pop();\n }\n }\n\n this.features.copyRdfaPatterns = true;\n }\n }\n\n /**\n * If the new subject can be inherited from the parent object\n * if the resource defines no new subject.\n * @param {string} name The current tag name.\n * @returns {boolean} If the subject can be inherited.\n */\n protected isInheritSubjectInHeadBody(name: string) {\n return (\n this.features.inheritSubjectInHeadBody &&\n (name === 'head' || name === 'body')\n );\n }\n\n /**\n * Add a list mapping for the given predicate and object in the active tag.\n */\n protected addListMapping(\n activeTag: IActiveTag<N>,\n subject: ModelQuadSubject<N> | boolean,\n predicate: ModelQuadPredicate<N>,\n currentObjectResource: ModelQuadObject<N> | boolean | null,\n ) {\n if (activeTag.explicitNewSubject) {\n const bNode = this.util.createBlankNode(activeTag.node);\n this.emitTriple(\n this.util.getResourceOrBaseIri(subject, activeTag),\n predicate,\n bNode,\n );\n if (!currentObjectResource) {\n throw new NullOrUndefinedError();\n }\n this.emitTriple(\n bNode,\n this.util.dataFactory.namedNode(Util.RDF + 'first', activeTag.node),\n this.util.getResourceOrBaseIri(currentObjectResource, activeTag),\n );\n this.emitTriple(\n bNode,\n this.util.dataFactory.namedNode(Util.RDF + 'rest', activeTag.node),\n this.util.dataFactory.namedNode(Util.RDF + 'nil'),\n );\n } else {\n let predicateList = activeTag.listMappingLocal[predicate.value];\n if (!predicateList) {\n activeTag.listMappingLocal[predicate.value] = predicateList = [];\n }\n if (currentObjectResource) {\n predicateList.push(currentObjectResource);\n }\n }\n }\n\n /**\n * Emit the given triple to the stream.\n */\n protected emitTriple(\n subject: ModelQuadSubject<N>,\n predicate: ModelQuadPredicate<N>,\n object: ModelQuadObject<N>,\n ) {\n // Validate IRIs\n if (\n (subject.termType === 'NamedNode' && subject.value.indexOf(':') < 0) ||\n (predicate.termType === 'NamedNode' &&\n predicate.value.indexOf(':') < 0) ||\n (object.termType === 'NamedNode' && object.value.indexOf(':') < 0)\n ) {\n return;\n }\n const quad = this.util.dataFactory.quad(\n subject,\n predicate,\n object,\n this.defaultGraph,\n );\n if (subject.node && !this.seenSubjectNodes.has(subject)) {\n this.seenSubjectNodes.set(subject, subject.node);\n this.nodeToSubjectMapping.set(subject.node, quad);\n MapUtils.setOrPush(\n this.subjectToNodesMapping,\n subject.value,\n subject.node,\n );\n }\n if (predicate.node && !this.seenPredicateNodes.has(predicate)) {\n this.seenPredicateNodes.set(predicate, predicate.node);\n MapUtils.setOrAdd(this.nodeToPredicatesMapping, predicate.node, quad);\n MapUtils.setOrPush(\n this.predicateToNodesMapping,\n predicate.value,\n predicate.node,\n );\n }\n if (object.node && !this.seenObjectNodes.has(object)) {\n this.seenObjectNodes.set(object, object.node);\n MapUtils.setOrAdd(this.nodeToObjectsMapping, object.node, quad);\n MapUtils.setOrPush(this.objectToNodesMapping, object.value, object.node);\n }\n this.quadToNodesMapping.set(quadHash(quad), {\n subjectNodes: this.subjectToNodesMapping.get(subject.value) ?? [],\n predicateNodes: this.predicateToNodesMapping.get(predicate.value) ?? [],\n objectNodes: this.objectToNodesMapping.get(object.value) ?? [],\n });\n\n this.resultSet.add(quad);\n }\n\n /**\n * Emit an instantiation of the given pattern with the given parent tag.\n * @param {IActiveTag} parentTag The parent tag to instantiate in.\n * @param {IRdfaPattern} pattern The pattern to instantiate.\n * @param {string} rootPatternId The pattern id.\n * @param node the extra metadata that will be stored along with the triple\n */\n protected emitPatternCopy(\n parentTag: IActiveTag<N>,\n pattern: IRdfaPattern<N>,\n rootPatternId: string,\n node?: N,\n ) {\n this.activeTagStack.push(parentTag);\n pattern.referenced = true;\n\n // Ensure that blank nodes within patterns are instantiated only once.\n // All next pattern copies will reuse the instantiated blank nodes from the first pattern.\n if (!pattern.constructedBlankNodes) {\n pattern.constructedBlankNodes = [];\n this.util.blankNodeFactory = () => {\n const bNode = this.util.dataFactory.blankNode(undefined, node);\n unwrap(pattern.constructedBlankNodes).push(bNode);\n return bNode;\n };\n } else {\n let blankNodeIndex = 0;\n this.util.blankNodeFactory = () => {\n const bNode = unwrap(pattern.constructedBlankNodes)[blankNodeIndex];\n blankNodeIndex++;\n return bNode;\n };\n }\n\n // Apply everything within the pattern\n this.emitPatternCopyAbsolute(pattern, true, rootPatternId);\n\n this.util.blankNodeFactory = null;\n this.activeTagStack.pop();\n }\n\n /**\n * Emit an instantiation of the given pattern with the given parent tag.\n *\n * This should probably not be called directly,\n * call {@link emitPatternCopy} instead.\n *\n * @param {IRdfaPattern} pattern The pattern to instantiate.\n * @param {boolean} root If this is the root call for the given pattern.\n * @param {string} rootPatternId The pattern id.\n * @param node the extra metadata that will be stored along with the triple\n */\n protected emitPatternCopyAbsolute(\n pattern: IRdfaPattern<N>,\n root: boolean,\n rootPatternId: string,\n ) {\n // Stop on detection of cyclic patterns\n if (\n !root &&\n pattern.attributes['property'] === 'rdfa:copy' &&\n pattern.attributes['href'] === rootPatternId\n ) {\n return;\n }\n\n this.onTagOpen(pattern.name, pattern.attributes);\n for (const text of pattern.text) {\n this.onText(text);\n }\n for (const child of pattern.children) {\n this.emitPatternCopyAbsolute(child, false, rootPatternId);\n }\n this.onTagClose();\n }\n}\n\nexport interface IRdfaParserOptions<N> {\n /**\n * A custom RDFJS DataFactory to construct terms and triples.\n */\n dataFactory?: RDF.DataFactory;\n /**\n * An initial default base IRI.\n */\n baseIRI: string;\n /**\n * A default language for string literals.\n */\n language?: string;\n /**\n * The initial vocabulary.\n */\n vocab?: string;\n /**\n * The default graph for constructing quads.\n */\n defaultGraph?: RDF.Quad_Graph;\n /**\n * A hash of features that should be enabled.\n * Defaults to the features defined by the profile.\n */\n features?: IRdfaFeatures;\n /**\n * The RDFa profile to use.\n * Defaults to a profile with all possible features enabled.\n */\n profile?: RdfaProfile;\n /**\n * The content type of the document that should be parsed.\n * This can be used as an alternative to the 'profile' option.\n */\n contentType?: string;\n /**\n * An optional listener for the internal HTML parse events.\n */\n htmlParseListener?: IHtmlParseListener;\n\n rootModelNode: N;\n}\n\n/**\n * Thrown when a variable is null or undefined unexpectedly.\n * Should ideally never be used, but useful for repairing\n * broken typings of third party code.\n */\nexport class NullOrUndefinedError extends CustomError {\n constructor() {\n super('Unexpected null/undefined value for variable');\n }\n}\n\nexport function quadHash(quad: RDF.Quad): string {\n return `${quad.subject.termType}${quad.subject.value}${quad.predicate.termType}${quad.predicate.value}${quad.object.termType}${quad.object.value}${quad.graph.termType}${quad.graph.value}`;\n}\n"],"names":["RdfaParser","options","util","defaultGraph","features","htmlParseListener","rdfaPatterns","pendingRdfaPatternCopies","resultSet","activeTagStack","nodeToSubjectMapping","subjectToNodesMapping","nodeToObjectsMapping","objectToNodesMapping","nodeToPredicatesMapping","predicateToNodesMapping","quadToNodesMapping","rootModelNode","seenSubjectNodes","seenPredicateNodes","seenObjectNodes","globallySeenPrefixes","resourceNodeMapping","contentNodeMapping","constructor","Util","undefined","baseIRI","dataFactory","profile","contentType","contentTypeToProfile","RDFA_FEATURES","GraphyDataset","Map","rdfaResourceNodeMap","rdfaContentNodeMap","push","incompleteTriples","inlist","language","listMapping","listMappingLocal","name","attributes","prefixesAll","INITIAL_CONTEXT","xhtmlInitialContext","INITIAL_CONTEXT_XHTML","prefixesCustom","skipElement","vocab","node","parse","config","pathFromDomRoot","root","parseRoot","parser","domNode","isElement","attributeObj","attr","value","onTagOpen","tagName","isTextNode","onText","textContent","parseRec","_","onTagClose","onEnd","dataset","seenPrefixes","isText","tag","children","child","parentTagI","length","parentTag","activeTag","collectChildTags","localBaseIRI","prefix","Object","keys","sort","suffix","attributeKey","attributesSerialized","map","key","join","text","skipHandlingXmlLiteralChildren","allowTermsInRelPredicates","allowTermsInRevPredicates","onlyAllowUriRelRevIfProperty","indexOf","copyRdfaPatterns","collectedPatternTag","patternTag","referenced","rootPattern","copyTargetPatternId","emitPatternCopy","baseTag","getBaseIRI","xmlBase","timeTag","interpretObjectAsTime","newSubject","currentObjectResource","typedResource","emitTriple","getBaseIriTerm","namedNode","RDFA","parsePrefixes","xmlnsPrefixMappings","roleAttribute","roleSubject","createIri","createBlankNode","vocabOld","role","createVocabIris","langAttribute","isRootTag","explicitNewSubject","object","isInheritSubjectInHeadBody","type","getResourceOrBaseIri","RDF","NullOrUndefinedError","predicate","addListMapping","reverse","list","predicates","localObjectResource","datatype","htmlDatatype","createLiteral","subject","datetimeAttribute","incompleteTriplesCompleted","incompleteTriple","firstInListTag","i","concat","markAsLiteralNode","predicateAttribute","content","set","sayDataFactory","resourceNode","unwrap","markAsResourceNode","resource","contentPredicate","contentDatatype","contentLanguage","equals","LANG_STRING","toLowerCase","data","textSegments","slice","patternId","pop","predicateValue","values","bnodes","isExternalTriple","Boolean","postProcessTagAsRdfaNode","pattern","property","href","inheritSubjectInHeadBody","bNode","predicateList","termType","quad","has","MapUtils","setOrPush","setOrAdd","quadHash","subjectNodes","get","predicateNodes","objectNodes","add","rootPatternId","constructedBlankNodes","blankNodeFactory","blankNode","blankNodeIndex","emitPatternCopyAbsolute","CustomError","graph"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rdfa-parser.js","sources":["../../../../src/utils/_private/rdfa-parser/rdfa-parser.ts"],"sourcesContent":["/**\n * Modified from https://github.com/rubensworks/rdfa-streaming-parser.js\n *\n * Copyright © 2019 Ruben Taelman\n */\nimport type * as RDF from '@rdfjs/types';\nimport type { IActiveTag } from './active-tag.ts';\nimport type { IHtmlParseListener } from './html-parse-listener.ts';\nimport INITIAL_CONTEXT_XHTML from './initial-context-xhtml.ts';\nimport INITIAL_CONTEXT from './initial-context.ts';\nimport type { IRdfaPattern } from './rdfa-pattern.ts';\nimport {\n type IRdfaFeatures,\n RDFA_FEATURES,\n type RdfaProfile,\n} from './rdfa-profile.ts';\nimport { Util } from './util.ts';\nimport { CustomError } from '#root/utils/_private/errors.ts';\nimport { isElement, isTextNode } from '#root/utils/_private/dom-helpers.ts';\nimport MapUtils from '#root/utils/_private/map-utils.ts';\nimport { unwrap } from '#root/utils/_private/option.ts';\nimport type {\n RdfaResourceNodeMap,\n RdfaContentNodeMap,\n} from '../datastore/node-map.ts';\nimport {\n rdfaContentNodeMap,\n rdfaResourceNodeMap,\n} from '../datastore/node-map.ts';\nimport { postProcessTagAsRdfaNode } from './post-process-as-rdfa-nodes.ts';\nimport { sayDataFactory } from '#root/core/say-data-factory/index.ts';\nimport { LANG_STRING } from '../constants.ts';\nimport { N3StoreWrapper } from '../datastore/n3-store-wrapper.ts';\n\nexport type ModelTerm<N> =\n | ModelQuadObject<N>\n | ModelQuadPredicate<N>\n | ModelQuadSubject<N>;\nexport type ModelQuadSubject<N> = ModelNamedNode<N> | ModelBlankNode<N>;\nexport type ModelQuadPredicate<N> = ModelNamedNode<N>;\nexport type ModelQuadObject<N> =\n | ModelNamedNode<N>\n | ModelBlankNode<N>\n | ModelLiteral<N>;\n\nexport interface ModelNamedNode<\n N,\n I extends string = string,\n> extends RDF.NamedNode<I> {\n node?: N;\n}\n\nexport interface ModelBlankNode<N> extends RDF.BlankNode {\n node?: N;\n}\n\nexport interface ModelLiteral<N> extends RDF.Literal {\n node?: N;\n}\n\nexport interface ModelQuad<N> extends RDF.Quad {\n subject: ModelQuadSubject<N>;\n predicate: ModelQuadPredicate<N>;\n object: ModelQuadObject<N>;\n}\n\nexport interface RdfaParseConfig<N> {\n root: N;\n\n parseRoot?: boolean;\n\n textContent(this: void, node: N): string;\n\n isText(this: void, node: N): boolean;\n\n children(this: void, node: N): Iterable<N>;\n\n tag(this: void, node: N): string;\n\n attributes(this: void, node: N): Record<string, string>;\n\n baseIRI: string;\n pathFromDomRoot?: Node[];\n}\n\nexport interface QuadNodes<N> {\n subjectNodes: N[];\n predicateNodes: N[];\n objectNodes: N[];\n}\n\nexport interface SubAndPred {\n subject: RDF.Quad_Subject;\n predicate: RDF.Quad_Predicate;\n languageOrDatatype?: RDF.NamedNode;\n}\n\nexport interface RdfaParseResponse<N> {\n dataset: N3StoreWrapper;\n\n subjectToNodesMapping: Map<string, N[]>;\n nodeToSubjectMapping: Map<N, ModelQuad<N>>;\n\n nodeToObjectsMapping: Map<N, Set<ModelQuad<N>>>;\n objectToNodesMapping: Map<string, N[]>;\n\n nodeToPredicatesMapping: Map<N, Set<ModelQuad<N>>>;\n predicateToNodesMapping: Map<string, N[]>;\n\n quadToNodesMapping: Map<string, QuadNodes<N>>;\n seenPrefixes: Map<string, string>;\n\n resourceNodeMapping: RdfaResourceNodeMap<N>;\n contentNodeMapping: RdfaContentNodeMap<N>;\n}\n\nexport class RdfaParser<N> {\n private readonly options: IRdfaParserOptions<N>;\n private util: Util<N>;\n private readonly defaultGraph: RDF.Quad_Graph;\n private readonly features: IRdfaFeatures;\n private readonly htmlParseListener?: IHtmlParseListener;\n private readonly rdfaPatterns: Record<string, IRdfaPattern<N>>;\n private readonly pendingRdfaPatternCopies: Record<string, IActiveTag<N>[]>;\n private resultSet: RDF.Dataset;\n\n private readonly activeTagStack: IActiveTag<N>[] = [];\n private nodeToSubjectMapping: Map<N, ModelQuad<N>>;\n private subjectToNodesMapping: Map<string, N[]>;\n\n private nodeToObjectsMapping: Map<N, Set<ModelQuad<N>>>;\n private objectToNodesMapping: Map<string, N[]>;\n\n // nodes can define multiple predicates\n private nodeToPredicatesMapping: Map<N, Set<ModelQuad<N>>>;\n private predicateToNodesMapping: Map<string, N[]>;\n\n private quadToNodesMapping: Map<string, QuadNodes<N>>;\n\n private rootModelNode: N;\n private seenSubjectNodes: Map<RDF.Term, N>;\n private seenPredicateNodes: Map<RDF.Term, N>;\n private seenObjectNodes: Map<RDF.Term, N>;\n private globallySeenPrefixes: Map<string, string>;\n private resourceNodeMapping: RdfaResourceNodeMap<N>;\n private contentNodeMapping: RdfaContentNodeMap<N>;\n\n constructor(options: IRdfaParserOptions<N>) {\n this.options = options;\n\n this.rootModelNode = options.rootModelNode;\n this.util = new Util<N>(this.rootModelNode, undefined, options.baseIRI);\n this.defaultGraph =\n options.defaultGraph || this.util.dataFactory.defaultGraph();\n const profile = options.contentType\n ? Util.contentTypeToProfile(options.contentType)\n : options.profile || '';\n this.features = options.features || RDFA_FEATURES[profile];\n this.htmlParseListener = options.htmlParseListener;\n this.rdfaPatterns = {};\n this.pendingRdfaPatternCopies = {};\n this.resultSet = new N3StoreWrapper();\n this.globallySeenPrefixes = new Map<string, string>();\n\n this.nodeToSubjectMapping = new Map();\n this.subjectToNodesMapping = new Map<string, N[]>();\n\n this.predicateToNodesMapping = new Map<string, N[]>();\n this.nodeToPredicatesMapping = new Map();\n\n this.nodeToObjectsMapping = new Map();\n this.objectToNodesMapping = new Map<string, N[]>();\n this.seenSubjectNodes = new Map<RDF.Term, N>();\n this.seenPredicateNodes = new Map<RDF.Term, N>();\n this.seenObjectNodes = new Map<RDF.Term, N>();\n\n this.quadToNodesMapping = new Map<string, QuadNodes<N>>();\n this.resourceNodeMapping = rdfaResourceNodeMap<N>();\n this.contentNodeMapping = rdfaContentNodeMap<N>();\n\n this.activeTagStack.push({\n incompleteTriples: [],\n inlist: false,\n language: options.language,\n listMapping: {},\n listMappingLocal: {},\n name: '',\n attributes: {},\n prefixesAll: {\n ...INITIAL_CONTEXT['@context'],\n ...(this.features.xhtmlInitialContext\n ? INITIAL_CONTEXT_XHTML['@context']\n : {}),\n },\n prefixesCustom: {},\n skipElement: false,\n vocab: options.vocab,\n node: this.rootModelNode,\n });\n }\n\n static parse<N>(config: RdfaParseConfig<N>): RdfaParseResponse<N> {\n const { pathFromDomRoot = [], root, baseIRI, parseRoot = true } = config;\n const parser = new RdfaParser<N>({ rootModelNode: root, baseIRI });\n for (const domNode of pathFromDomRoot) {\n if (isElement(domNode)) {\n const attributeObj: Record<string, string> = {};\n for (const attr of domNode.attributes) {\n attributeObj[attr.name] = attr.value;\n }\n parser.onTagOpen(domNode.tagName, attributeObj, root);\n } else if (isTextNode(domNode)) {\n parser.onText(domNode.textContent || '');\n }\n }\n if (parseRoot) {\n this.parseRec(root, parser, config);\n }\n for (const _ of pathFromDomRoot) {\n parser.onTagClose();\n }\n parser.onEnd();\n return {\n dataset: new N3StoreWrapper(parser.resultSet),\n nodeToSubjectMapping: parser.nodeToSubjectMapping,\n subjectToNodesMapping: parser.subjectToNodesMapping,\n nodeToPredicatesMapping: parser.nodeToPredicatesMapping,\n predicateToNodesMapping: parser.predicateToNodesMapping,\n nodeToObjectsMapping: parser.nodeToObjectsMapping,\n objectToNodesMapping: parser.objectToNodesMapping,\n quadToNodesMapping: parser.quadToNodesMapping,\n seenPrefixes: parser.globallySeenPrefixes,\n resourceNodeMapping: parser.resourceNodeMapping,\n contentNodeMapping: parser.contentNodeMapping,\n };\n }\n\n static parseRec<N>(\n node: N,\n parser: RdfaParser<N>,\n config: RdfaParseConfig<N>,\n ) {\n const { isText, textContent, tag, attributes, children } = config;\n if (isText(node)) {\n parser.onText(textContent(node));\n return;\n }\n parser.onTagOpen(tag(node), attributes(node), node);\n for (const child of children(node)) {\n this.parseRec<N>(child, parser, config);\n }\n parser.onTagClose();\n }\n\n protected onTagOpen(\n name: string,\n attributes: Record<string, string>,\n node?: N,\n ) {\n // Determine the parent tag (ignore skipped tags)\n let parentTagI: number = this.activeTagStack.length - 1;\n while (parentTagI > 0 && this.activeTagStack[parentTagI].skipElement) {\n parentTagI--;\n }\n let parentTag: IActiveTag<N> = this.activeTagStack[parentTagI];\n // If we skipped a tag, make sure we DO use the lang, prefixes and vocab of the skipped tag\n if (parentTagI !== this.activeTagStack.length - 1) {\n parentTag = {\n ...parentTag,\n language: this.activeTagStack[this.activeTagStack.length - 1].language,\n prefixesAll:\n this.activeTagStack[this.activeTagStack.length - 1].prefixesAll,\n prefixesCustom:\n this.activeTagStack[this.activeTagStack.length - 1].prefixesCustom,\n vocab: this.activeTagStack[this.activeTagStack.length - 1].vocab,\n };\n }\n\n // Create a new active tag and inherit language scope and baseIRI from parent\n const activeTag: IActiveTag<N> = {\n collectChildTags: parentTag.collectChildTags,\n incompleteTriples: [],\n inlist: !!attributes['inlist'],\n listMapping: {},\n listMappingLocal: parentTag.listMapping,\n localBaseIRI: parentTag.localBaseIRI,\n name,\n attributes,\n prefixesAll: {},\n prefixesCustom: {},\n skipElement: false,\n node,\n };\n this.activeTagStack.push(activeTag);\n\n // Save the tag contents if needed\n if (activeTag.collectChildTags) {\n // Add explicitly defined xmlns, xmlns:* and prefixes to attributes, as required by the spec (Step 11, note)\n // Sort prefixes alphabetically for deterministic namespace declaration order\n for (const prefix of Object.keys(parentTag.prefixesCustom).sort()) {\n const suffix = parentTag.prefixesCustom[prefix];\n const attributeKey = prefix === '' ? 'xmlns' : 'xmlns:' + prefix;\n if (!(attributeKey in attributes)) {\n attributes[attributeKey] = suffix;\n }\n }\n\n const attributesSerialized = Object.keys(attributes)\n .map((key) => `${key}=\"${attributes[key]}\"`)\n .join(' ');\n activeTag.text = [\n `<${name}${attributesSerialized ? ' ' + attributesSerialized : ''}>`,\n ];\n if (this.features.skipHandlingXmlLiteralChildren) {\n return;\n }\n }\n\n let allowTermsInRelPredicates = true;\n let allowTermsInRevPredicates = true;\n if (this.features.onlyAllowUriRelRevIfProperty) {\n // Ignore illegal rel/rev values when property is present\n if (attributes['property'] && attributes['rel']) {\n allowTermsInRelPredicates = false;\n if (attributes['rel'].indexOf(':') < 0) {\n delete attributes['rel'];\n }\n }\n if (attributes['property'] && attributes['rev']) {\n allowTermsInRevPredicates = false;\n if (attributes['rev'].indexOf(':') < 0) {\n delete attributes['revany'];\n }\n }\n }\n\n if (this.features.copyRdfaPatterns) {\n // Save the tag if needed\n if (parentTag.collectedPatternTag) {\n const patternTag: IRdfaPattern<N> = {\n attributes,\n children: [],\n name,\n referenced: false,\n rootPattern: false,\n text: [],\n };\n parentTag.collectedPatternTag.children.push(patternTag);\n activeTag.collectedPatternTag = patternTag;\n return;\n }\n\n // Store tags with type rdfa:Pattern as patterns\n if (attributes['typeof'] === 'rdfa:Pattern') {\n activeTag.collectedPatternTag = {\n attributes,\n children: [],\n name,\n parentTag,\n referenced: false,\n rootPattern: true,\n text: [],\n };\n return;\n }\n\n // Instantiate patterns on rdfa:copy\n if (attributes['property'] === 'rdfa:copy') {\n const copyTargetPatternId: string =\n attributes['resource'] || attributes['href'] || attributes['src'];\n if (this.rdfaPatterns[copyTargetPatternId]) {\n this.emitPatternCopy(\n parentTag,\n this.rdfaPatterns[copyTargetPatternId],\n copyTargetPatternId,\n activeTag.node,\n );\n } else {\n if (!this.pendingRdfaPatternCopies[copyTargetPatternId]) {\n this.pendingRdfaPatternCopies[copyTargetPatternId] = [];\n }\n this.pendingRdfaPatternCopies[copyTargetPatternId].push(parentTag);\n }\n return;\n }\n }\n\n // <base> tags override the baseIRI of the whole document\n if (this.features.baseTag && name === 'base' && attributes['href']) {\n this.util.baseIRI = this.util.getBaseIRI(attributes['href'], node);\n }\n // xml:base attributes override the baseIRI of the current tag and children\n if (this.features.xmlBase && attributes['xml:base']) {\n activeTag.localBaseIRI = this.util.getBaseIRI(\n attributes['xml:base'],\n node,\n );\n }\n\n // <time> tags set an initial datatype\n if (this.features.timeTag && name === 'time' && !attributes['datatype']) {\n activeTag.interpretObjectAsTime = true;\n }\n\n // Processing based on https://www.w3.org/TR/rdfa-core/#s_rdfaindetail\n // 1: initialize values\n let newSubject: ModelNamedNode<N> | ModelBlankNode<N> | boolean | null =\n null;\n let currentObjectResource:\n | ModelNamedNode<N>\n | ModelBlankNode<N>\n | boolean\n | null = null;\n let typedResource: ModelNamedNode<N> | ModelBlankNode<N> | boolean | null =\n null;\n\n // 2: handle vocab attribute to set active vocabulary\n // Vocab sets the active vocabulary\n if (attributes['vocab']) {\n if (attributes['vocab']) {\n activeTag.vocab = attributes['vocab'];\n this.emitTriple(\n this.util.getBaseIriTerm(activeTag),\n this.util.dataFactory.namedNode(Util.RDFA + 'usesVocabulary', node),\n this.util.dataFactory.namedNode(activeTag.vocab, node),\n );\n } else {\n // If vocab is set to '', then we fallback to the root vocab as defined via the parser constructor\n activeTag.vocab = this.activeTagStack[0].vocab;\n }\n } else {\n activeTag.vocab = parentTag.vocab;\n }\n\n // 3: handle prefixes\n activeTag.prefixesCustom = Util.parsePrefixes(\n attributes,\n parentTag.prefixesCustom,\n this.features.xmlnsPrefixMappings,\n this.globallySeenPrefixes,\n );\n activeTag.prefixesAll =\n Object.keys(activeTag.prefixesCustom).length > 0\n ? { ...parentTag.prefixesAll, ...activeTag.prefixesCustom }\n : parentTag.prefixesAll;\n\n // Handle role attribute\n if (this.features.roleAttribute && attributes['role']) {\n const roleSubject = attributes['id']\n ? this.util.createIri(\n '#' + attributes['id'],\n activeTag,\n false,\n false,\n false,\n )\n : this.util.createBlankNode(node);\n // Temporarily override vocab\n const vocabOld = activeTag.vocab;\n activeTag.vocab = 'http://www.w3.org/1999/xhtml/vocab#';\n for (const role of this.util.createVocabIris(\n attributes['role'],\n activeTag,\n true,\n false,\n )) {\n this.emitTriple(\n roleSubject,\n this.util.dataFactory.namedNode(\n 'http://www.w3.org/1999/xhtml/vocab#role',\n node,\n ),\n role,\n );\n }\n activeTag.vocab = vocabOld;\n }\n\n // 4: handle language\n // Save language attribute value in active tag\n if (\n attributes['xml:lang'] ||\n (this.features.langAttribute && attributes['lang'])\n ) {\n activeTag.language = attributes['xml:lang'] || attributes['lang'];\n } else {\n activeTag.language = parentTag.language;\n }\n\n const isRootTag: boolean = this.activeTagStack.length === 2;\n if (!attributes['rel'] && !attributes['rev']) {\n // 5: Determine the new subject when rel and rev are not present\n if (\n attributes['property'] &&\n !attributes['content'] &&\n !attributes['datatype']\n ) {\n // 5.1: property is present, but not content and datatype\n // Determine new subject\n if (attributes['about']) {\n newSubject = this.util.createIri(\n attributes['about'],\n activeTag,\n false,\n true,\n true,\n );\n activeTag.explicitNewSubject = !!newSubject;\n } else if (isRootTag) {\n newSubject = true;\n } else if (parentTag.object) {\n newSubject = parentTag.object;\n }\n\n // Determine type\n if (attributes['typeof']) {\n if (attributes['about']) {\n typedResource = this.util.createIri(\n attributes['about'],\n activeTag,\n false,\n true,\n true,\n );\n }\n if (!typedResource && isRootTag) {\n typedResource = true;\n }\n if (!typedResource && attributes['resource']) {\n typedResource = this.util.createIri(\n attributes['resource'],\n activeTag,\n false,\n true,\n true,\n );\n }\n if (!typedResource && (attributes['href'] || attributes['src'])) {\n typedResource = this.util.createIri(\n attributes['href'] || attributes['src'],\n activeTag,\n false,\n false,\n true,\n );\n }\n if (!typedResource && this.isInheritSubjectInHeadBody(name)) {\n typedResource = newSubject;\n }\n if (!typedResource) {\n typedResource = this.util.createBlankNode(node);\n }\n\n currentObjectResource = typedResource;\n }\n } else {\n // 5.2\n if (attributes['about'] || attributes['resource']) {\n newSubject = this.util.createIri(\n attributes['about'] || attributes['resource'],\n activeTag,\n false,\n true,\n true,\n );\n activeTag.explicitNewSubject = !!newSubject;\n }\n if (!newSubject && (attributes['href'] || attributes['src'])) {\n newSubject = this.util.createIri(\n attributes['href'] || attributes['src'],\n activeTag,\n false,\n false,\n true,\n );\n activeTag.explicitNewSubject = !!newSubject;\n }\n if (!newSubject) {\n if (isRootTag) {\n newSubject = true;\n } else if (this.isInheritSubjectInHeadBody(name)) {\n newSubject = parentTag.object || null;\n } else if (attributes['typeof']) {\n newSubject = this.util.createBlankNode(node);\n activeTag.explicitNewSubject = true;\n } else if (parentTag.object) {\n newSubject = parentTag.object;\n if (!attributes['property']) {\n activeTag.skipElement = true;\n }\n }\n }\n\n // Determine type\n if (attributes['typeof']) {\n typedResource = newSubject;\n }\n }\n } else {\n // either rel or rev is present\n // 6: Determine the new subject when rel or rev are present\n\n // Define new subject\n if (attributes['about']) {\n newSubject = this.util.createIri(\n attributes['about'],\n activeTag,\n false,\n true,\n true,\n );\n activeTag.explicitNewSubject = !!newSubject;\n if (attributes['typeof']) {\n typedResource = newSubject;\n }\n } else if (isRootTag) {\n newSubject = true;\n } else if (parentTag.object) {\n newSubject = parentTag.object;\n }\n\n // Define object\n if (attributes['resource']) {\n currentObjectResource = this.util.createIri(\n attributes['resource'],\n activeTag,\n false,\n true,\n true,\n );\n }\n if (!currentObjectResource) {\n if (attributes['href'] || attributes['src']) {\n currentObjectResource = this.util.createIri(\n attributes['href'] || attributes['src'],\n activeTag,\n false,\n false,\n true,\n );\n } else if (\n attributes['typeof'] &&\n !attributes['about'] &&\n !this.isInheritSubjectInHeadBody(name)\n ) {\n currentObjectResource = this.util.createBlankNode(node);\n }\n }\n\n // Set typed resource\n if (attributes['typeof'] && !attributes['about']) {\n if (this.isInheritSubjectInHeadBody(name)) {\n typedResource = newSubject;\n } else {\n typedResource = currentObjectResource;\n }\n }\n }\n\n // 7: If a typed resource was defined, emit it as a triple\n if (typedResource) {\n for (const type of this.util.createVocabIris(\n attributes['typeof'],\n activeTag,\n true,\n true,\n )) {\n this.emitTriple(\n this.util.getResourceOrBaseIri(typedResource, activeTag),\n this.util.dataFactory.namedNode(Util.RDF + 'type', node),\n type,\n );\n }\n }\n\n // 8: Reset list mapping if we have a new subject\n if (newSubject) {\n activeTag.listMapping = {};\n }\n\n // 9: If an object was defined, emit triples for it\n if (currentObjectResource) {\n if (!newSubject) {\n throw new NullOrUndefinedError();\n }\n // Handle list mapping\n if (attributes['rel'] && attributes['inlist']) {\n for (const predicate of this.util.createVocabIris(\n attributes['rel'],\n activeTag,\n allowTermsInRelPredicates,\n false,\n )) {\n this.addListMapping(\n activeTag,\n newSubject,\n predicate,\n currentObjectResource,\n );\n }\n }\n\n // Determine predicates using rel or rev (unless rel and inlist are present)\n if (!(attributes['rel'] && attributes['inlist'])) {\n if (attributes['rel']) {\n for (const predicate of this.util.createVocabIris(\n attributes['rel'],\n activeTag,\n allowTermsInRelPredicates,\n false,\n )) {\n this.emitTriple(\n this.util.getResourceOrBaseIri(newSubject, activeTag),\n predicate,\n this.util.getResourceOrBaseIri(currentObjectResource, activeTag),\n );\n }\n }\n if (attributes['rev']) {\n for (const predicate of this.util.createVocabIris(\n attributes['rev'],\n activeTag,\n allowTermsInRevPredicates,\n false,\n )) {\n this.emitTriple(\n this.util.getResourceOrBaseIri(currentObjectResource, activeTag),\n predicate,\n this.util.getResourceOrBaseIri(newSubject, activeTag),\n );\n }\n }\n }\n }\n\n // 10: Store incomplete triples if we don't have an object, but we do have predicates\n if (!currentObjectResource) {\n if (attributes['rel']) {\n if (attributes['inlist']) {\n for (const predicate of this.util.createVocabIris(\n attributes['rel'],\n activeTag,\n allowTermsInRelPredicates,\n false,\n )) {\n if (!newSubject) {\n throw new NullOrUndefinedError();\n }\n this.addListMapping(activeTag, newSubject, predicate, null);\n activeTag.incompleteTriples.push({\n predicate,\n reverse: false,\n list: true,\n });\n }\n } else {\n for (const predicate of this.util.createVocabIris(\n attributes['rel'],\n activeTag,\n allowTermsInRelPredicates,\n false,\n )) {\n activeTag.incompleteTriples.push({ predicate, reverse: false });\n }\n }\n }\n if (attributes['rev']) {\n for (const predicate of this.util.createVocabIris(\n attributes['rev'],\n activeTag,\n allowTermsInRevPredicates,\n false,\n )) {\n activeTag.incompleteTriples.push({ predicate, reverse: true });\n }\n }\n\n // Set a blank node object, so the children can make use of this when completing the triples\n if (activeTag.incompleteTriples.length > 0) {\n currentObjectResource = this.util.createBlankNode(node);\n }\n }\n\n // 11: Determine current property value\n if (attributes['property']) {\n // Create predicates\n activeTag.predicates = this.util.createVocabIris(\n attributes['property'],\n activeTag,\n true,\n false,\n );\n\n // Save datatype attribute value in active tag\n let localObjectResource: RDF.Term | boolean | null = null;\n\n if (attributes['datatype']) {\n activeTag.datatype = this.util.createIri(\n attributes['datatype'],\n activeTag,\n true,\n true,\n false,\n );\n if (\n activeTag.datatype &&\n (activeTag.datatype.value === Util.RDF + 'XMLLiteral' ||\n (this.features.htmlDatatype &&\n activeTag.datatype.value === Util.RDF + 'HTML'))\n ) {\n activeTag.collectChildTags = true;\n }\n } else {\n // Try to determine resource\n if (\n !attributes['rev'] &&\n !attributes['rel'] &&\n !attributes['content']\n ) {\n if (attributes['resource']) {\n localObjectResource = this.util.createIri(\n attributes['resource'],\n activeTag,\n false,\n true,\n true,\n );\n }\n if (!localObjectResource && attributes['href']) {\n localObjectResource = this.util.createIri(\n attributes['href'],\n activeTag,\n false,\n false,\n true,\n );\n }\n if (!localObjectResource && attributes['src']) {\n localObjectResource = this.util.createIri(\n attributes['src'],\n activeTag,\n false,\n false,\n true,\n );\n }\n }\n if (attributes['typeof'] && !attributes['about']) {\n localObjectResource = typedResource;\n }\n }\n if (!newSubject) {\n throw new NullOrUndefinedError();\n }\n\n if (attributes['content']) {\n if (!newSubject) {\n throw new NullOrUndefinedError();\n }\n // Emit triples based on content attribute has preference over text content\n const object = this.util.createLiteral(\n attributes['content'],\n activeTag,\n );\n if (attributes['inlist']) {\n for (const predicate of activeTag.predicates) {\n this.addListMapping(activeTag, newSubject, predicate, object);\n }\n } else {\n const subject = this.util.getResourceOrBaseIri(newSubject, activeTag);\n for (const predicate of activeTag.predicates) {\n this.emitTriple(subject, predicate, object);\n }\n }\n\n // Unset predicate to avoid text contents to produce new triples\n activeTag.predicates = null;\n } else if (this.features.datetimeAttribute && attributes['datetime']) {\n activeTag.interpretObjectAsTime = true;\n // Datetime attribute on time tag has preference over text content\n const object = this.util.createLiteral(\n attributes['datetime'],\n activeTag,\n );\n if (attributes['inlist']) {\n for (const predicate of activeTag.predicates) {\n this.addListMapping(activeTag, newSubject, predicate, object);\n }\n } else {\n const subject = this.util.getResourceOrBaseIri(newSubject, activeTag);\n for (const predicate of activeTag.predicates) {\n this.emitTriple(subject, predicate, object);\n }\n }\n\n // Unset predicate to avoid text contents to produce new triples\n activeTag.predicates = null;\n } else if (localObjectResource) {\n // Emit triples for all resource objects\n const object = this.util.getResourceOrBaseIri(\n localObjectResource,\n activeTag,\n );\n if (attributes['inlist']) {\n for (const predicate of activeTag.predicates) {\n this.addListMapping(activeTag, newSubject, predicate, object);\n }\n } else {\n const subject = this.util.getResourceOrBaseIri(newSubject, activeTag);\n for (const predicate of activeTag.predicates) {\n this.emitTriple(subject, predicate, object);\n }\n }\n\n // Unset predicate to avoid text contents to produce new triples\n activeTag.predicates = null;\n }\n }\n\n // 12: Complete incomplete triples\n let incompleteTriplesCompleted = false;\n if (\n !activeTag.skipElement &&\n newSubject &&\n parentTag.incompleteTriples.length > 0\n ) {\n incompleteTriplesCompleted = true;\n if (!parentTag.subject) {\n throw new NullOrUndefinedError();\n }\n const subject = this.util.getResourceOrBaseIri(\n parentTag.subject,\n activeTag,\n );\n const object = this.util.getResourceOrBaseIri(newSubject, activeTag);\n for (const incompleteTriple of parentTag.incompleteTriples) {\n if (!incompleteTriple.reverse) {\n if (incompleteTriple.list) {\n // Find the active tag that defined the list by going up the stack\n let firstInListTag = null;\n for (let i = this.activeTagStack.length - 1; i >= 0; i--) {\n if (this.activeTagStack[i].inlist) {\n firstInListTag = this.activeTagStack[i];\n break;\n }\n }\n // firstInListTag is guaranteed to be non-null\n // <Arne Bertrand>: but lets check it anyway\n if (!firstInListTag) {\n throw new NullOrUndefinedError();\n }\n this.addListMapping(\n firstInListTag,\n newSubject,\n incompleteTriple.predicate,\n object,\n );\n } else {\n this.emitTriple(subject, incompleteTriple.predicate, object);\n }\n } else {\n this.emitTriple(object, incompleteTriple.predicate, subject);\n }\n }\n }\n if (!incompleteTriplesCompleted && parentTag.incompleteTriples.length > 0) {\n activeTag.incompleteTriples = activeTag.incompleteTriples.concat(\n parentTag.incompleteTriples,\n );\n }\n\n // 13: Save evaluation context into active tag\n activeTag.subject = newSubject || parentTag.subject;\n activeTag.object = currentObjectResource || newSubject;\n activeTag.typedResource = typedResource;\n }\n\n markAsLiteralNode = (\n node: N,\n activeTag: IActiveTag<N>,\n attributes: Record<string, string>,\n predicateAttribute = 'property',\n ) => {\n const object = this.util.createLiteral(activeTag.content ?? '', activeTag);\n this.contentNodeMapping.set(node, {\n subject: sayDataFactory.resourceNode(\n this.util.getResourceOrBaseIri(unwrap(activeTag.subject), activeTag)\n .value,\n ),\n\n predicate: this.util.createIri(\n attributes[predicateAttribute],\n activeTag,\n true,\n true,\n false,\n ),\n object,\n });\n };\n\n markAsResourceNode = (\n node: N,\n resource: boolean | ModelBlankNode<N> | ModelNamedNode<N>,\n activeTag: IActiveTag<N>,\n contentPredicate?: ModelNamedNode<N>,\n contentDatatype?: ModelNamedNode<N>,\n contentLanguage?: string,\n ) => {\n if (\n contentDatatype &&\n !contentDatatype.equals(sayDataFactory.namedNode(LANG_STRING))\n ) {\n contentLanguage = undefined;\n }\n this.resourceNodeMapping.set(node, {\n subject: this.util.getResourceOrBaseIri(resource, activeTag),\n contentPredicate: contentPredicate\n ? this.util.getResourceOrBaseIri(contentPredicate, activeTag)\n : undefined,\n contentDatatype,\n contentLanguage,\n });\n };\n\n public onText(data: string) {\n const activeTag: IActiveTag<N> =\n this.activeTagStack[this.activeTagStack.length - 1];\n\n // Collect text in pattern tag if needed\n if (this.features.copyRdfaPatterns && activeTag.collectedPatternTag) {\n activeTag.collectedPatternTag.text.push(data);\n return;\n }\n\n // Save the text inside the active tag\n if (!activeTag.text) {\n activeTag.text = [];\n }\n activeTag.text.push(data);\n }\n\n public onTagClose() {\n // Get the active tag\n const activeTag: IActiveTag<N> =\n this.activeTagStack[this.activeTagStack.length - 1];\n const parentTag: IActiveTag<N> =\n this.activeTagStack[this.activeTagStack.length - 2];\n\n let textSegments: string[] = activeTag.text || [];\n if (activeTag.collectChildTags && parentTag.collectChildTags) {\n // If we are inside an XMLLiteral child that also has RDFa content, ignore the tag name that was collected.\n textSegments = textSegments.slice(1);\n }\n activeTag.content =\n activeTag.attributes['content'] ?? textSegments.join('');\n\n if (\n !(\n activeTag.collectChildTags &&\n parentTag.collectChildTags &&\n this.features.skipHandlingXmlLiteralChildren\n )\n ) {\n // If we detect a finalized rdfa:Pattern tag, store it\n if (\n this.features.copyRdfaPatterns &&\n activeTag.collectedPatternTag &&\n activeTag.collectedPatternTag.rootPattern\n ) {\n const patternId = activeTag.collectedPatternTag.attributes['resource'];\n\n // Remove resource and typeof attributes to avoid it being seen as a new pattern\n delete activeTag.collectedPatternTag.attributes['resource'];\n delete activeTag.collectedPatternTag.attributes['typeof'];\n\n // Store the pattern\n this.rdfaPatterns[patternId] = activeTag.collectedPatternTag;\n\n // Apply all pending copies for this pattern\n if (this.pendingRdfaPatternCopies[patternId]) {\n for (const tag of this.pendingRdfaPatternCopies[patternId]) {\n this.emitPatternCopy(\n tag,\n activeTag.collectedPatternTag,\n patternId,\n activeTag.node,\n );\n }\n delete this.pendingRdfaPatternCopies[patternId];\n }\n\n // Remove the active tag from the stack\n this.activeTagStack.pop();\n\n return;\n }\n\n // Emit all triples that were determined in the active tag\n if (activeTag.predicates) {\n if (!activeTag.subject) {\n throw new NullOrUndefinedError();\n }\n const subject = this.util.getResourceOrBaseIri(\n activeTag.subject,\n activeTag,\n );\n let textSegments: string[] = activeTag.text || [];\n if (activeTag.collectChildTags && parentTag.collectChildTags) {\n // If we are inside an XMLLiteral child that also has RDFa content, ignore the tag name that was collected.\n textSegments = textSegments.slice(1);\n }\n const object = this.util.createLiteral(\n textSegments.join(''),\n activeTag,\n );\n if (activeTag.inlist) {\n for (const predicate of activeTag.predicates) {\n this.addListMapping(activeTag, subject, predicate, object);\n }\n } else {\n for (const predicate of activeTag.predicates) {\n this.emitTriple(subject, predicate, object);\n }\n }\n\n // Reset text, unless the parent is also collecting text\n if (!parentTag.predicates) {\n activeTag.text = null;\n }\n }\n\n // 14: Handle local list mapping\n if (activeTag.object && Object.keys(activeTag.listMapping).length > 0) {\n const subject = this.util.getResourceOrBaseIri(\n activeTag.object,\n activeTag,\n );\n for (const predicateValue in activeTag.listMapping) {\n const predicate = this.util.dataFactory.namedNode(\n predicateValue,\n activeTag.node,\n );\n const values = activeTag.listMapping[predicateValue];\n\n if (values.length > 0) {\n // Non-empty list, emit linked list of rdf:first and rdf:rest chains\n const bnodes = values.map((value) =>\n this.util.createBlankNode(\n typeof value === 'boolean' ? undefined : value.node,\n ),\n );\n for (let i = 0; i < values.length; i++) {\n const object = this.util.getResourceOrBaseIri(\n values[i],\n activeTag,\n );\n this.emitTriple(\n bnodes[i],\n this.util.dataFactory.namedNode(\n Util.RDF + 'first',\n activeTag.node,\n ),\n object,\n );\n this.emitTriple(\n bnodes[i],\n this.util.dataFactory.namedNode(\n Util.RDF + 'rest',\n activeTag.node,\n ),\n i < values.length - 1\n ? bnodes[i + 1]\n : this.util.dataFactory.namedNode(Util.RDF + 'nil'),\n );\n }\n\n // Emit triple for the first linked list chain\n this.emitTriple(subject, predicate, bnodes[0]);\n } else {\n // Empty list, just emit rdf:nil\n this.emitTriple(\n subject,\n predicate,\n this.util.dataFactory.namedNode(Util.RDF + 'nil'),\n );\n }\n }\n }\n }\n\n // Remove the active tag from the stack\n this.activeTagStack.pop();\n\n // Save the tag contents if needed\n if (activeTag.collectChildTags && activeTag.text) {\n activeTag.text.push(`</${activeTag.name}>`);\n }\n\n // If we still have text contents, try to append it to the parent tag\n if (activeTag.text && parentTag) {\n if (!parentTag.text) {\n parentTag.text = activeTag.text;\n } else {\n parentTag.text = parentTag.text.concat(activeTag.text);\n }\n }\n const isRootTag: boolean = this.activeTagStack.length === 1;\n const isExternalTriple = Boolean(\n parentTag?.attributes['data-external-triple-container'],\n );\n postProcessTagAsRdfaNode({\n activeTag,\n attributes: activeTag.attributes,\n isRootTag,\n isExternalTriple,\n typedResource: activeTag.typedResource ?? null,\n markAsLiteralNode: this.markAsLiteralNode,\n markAsResourceNode: this.markAsResourceNode,\n });\n }\n\n public onEnd() {\n if (this.features.copyRdfaPatterns) {\n this.features.copyRdfaPatterns = false;\n\n // Emit all unreferenced patterns\n for (const patternId in this.rdfaPatterns) {\n const pattern = this.rdfaPatterns[patternId];\n if (!pattern.referenced) {\n pattern.attributes['typeof'] = 'rdfa:Pattern';\n pattern.attributes['resource'] = patternId;\n if (!pattern.parentTag) {\n throw new NullOrUndefinedError();\n }\n this.emitPatternCopy(pattern.parentTag, pattern, patternId);\n pattern.referenced = false;\n delete pattern.attributes['typeof'];\n delete pattern.attributes['resource'];\n }\n }\n\n // Emit all unreferenced copy links\n for (const patternId in this.pendingRdfaPatternCopies) {\n for (const parentTag of this.pendingRdfaPatternCopies[patternId]) {\n this.activeTagStack.push(parentTag);\n this.onTagOpen('link', { property: 'rdfa:copy', href: patternId });\n this.onTagClose();\n this.activeTagStack.pop();\n }\n }\n\n this.features.copyRdfaPatterns = true;\n }\n }\n\n /**\n * If the new subject can be inherited from the parent object\n * if the resource defines no new subject.\n * @param {string} name The current tag name.\n * @returns {boolean} If the subject can be inherited.\n */\n protected isInheritSubjectInHeadBody(name: string) {\n return (\n this.features.inheritSubjectInHeadBody &&\n (name === 'head' || name === 'body')\n );\n }\n\n /**\n * Add a list mapping for the given predicate and object in the active tag.\n */\n protected addListMapping(\n activeTag: IActiveTag<N>,\n subject: ModelQuadSubject<N> | boolean,\n predicate: ModelQuadPredicate<N>,\n currentObjectResource: ModelQuadObject<N> | boolean | null,\n ) {\n if (activeTag.explicitNewSubject) {\n const bNode = this.util.createBlankNode(activeTag.node);\n this.emitTriple(\n this.util.getResourceOrBaseIri(subject, activeTag),\n predicate,\n bNode,\n );\n if (!currentObjectResource) {\n throw new NullOrUndefinedError();\n }\n this.emitTriple(\n bNode,\n this.util.dataFactory.namedNode(Util.RDF + 'first', activeTag.node),\n this.util.getResourceOrBaseIri(currentObjectResource, activeTag),\n );\n this.emitTriple(\n bNode,\n this.util.dataFactory.namedNode(Util.RDF + 'rest', activeTag.node),\n this.util.dataFactory.namedNode(Util.RDF + 'nil'),\n );\n } else {\n let predicateList = activeTag.listMappingLocal[predicate.value];\n if (!predicateList) {\n activeTag.listMappingLocal[predicate.value] = predicateList = [];\n }\n if (currentObjectResource) {\n predicateList.push(currentObjectResource);\n }\n }\n }\n\n /**\n * Emit the given triple to the stream.\n */\n protected emitTriple(\n subject: ModelQuadSubject<N>,\n predicate: ModelQuadPredicate<N>,\n object: ModelQuadObject<N>,\n ) {\n // Validate IRIs\n if (\n (subject.termType === 'NamedNode' && subject.value.indexOf(':') < 0) ||\n (predicate.termType === 'NamedNode' &&\n predicate.value.indexOf(':') < 0) ||\n (object.termType === 'NamedNode' && object.value.indexOf(':') < 0)\n ) {\n return;\n }\n const quad = this.util.dataFactory.quad(\n subject,\n predicate,\n object,\n this.defaultGraph,\n );\n if (subject.node && !this.seenSubjectNodes.has(subject)) {\n this.seenSubjectNodes.set(subject, subject.node);\n this.nodeToSubjectMapping.set(subject.node, quad);\n MapUtils.setOrPush(\n this.subjectToNodesMapping,\n subject.value,\n subject.node,\n );\n }\n if (predicate.node && !this.seenPredicateNodes.has(predicate)) {\n this.seenPredicateNodes.set(predicate, predicate.node);\n MapUtils.setOrAdd(this.nodeToPredicatesMapping, predicate.node, quad);\n MapUtils.setOrPush(\n this.predicateToNodesMapping,\n predicate.value,\n predicate.node,\n );\n }\n if (object.node && !this.seenObjectNodes.has(object)) {\n this.seenObjectNodes.set(object, object.node);\n MapUtils.setOrAdd(this.nodeToObjectsMapping, object.node, quad);\n MapUtils.setOrPush(this.objectToNodesMapping, object.value, object.node);\n }\n this.quadToNodesMapping.set(quadHash(quad), {\n subjectNodes: this.subjectToNodesMapping.get(subject.value) ?? [],\n predicateNodes: this.predicateToNodesMapping.get(predicate.value) ?? [],\n objectNodes: this.objectToNodesMapping.get(object.value) ?? [],\n });\n\n this.resultSet.add(quad);\n }\n\n /**\n * Emit an instantiation of the given pattern with the given parent tag.\n * @param {IActiveTag} parentTag The parent tag to instantiate in.\n * @param {IRdfaPattern} pattern The pattern to instantiate.\n * @param {string} rootPatternId The pattern id.\n * @param node the extra metadata that will be stored along with the triple\n */\n protected emitPatternCopy(\n parentTag: IActiveTag<N>,\n pattern: IRdfaPattern<N>,\n rootPatternId: string,\n node?: N,\n ) {\n this.activeTagStack.push(parentTag);\n pattern.referenced = true;\n\n // Ensure that blank nodes within patterns are instantiated only once.\n // All next pattern copies will reuse the instantiated blank nodes from the first pattern.\n if (!pattern.constructedBlankNodes) {\n pattern.constructedBlankNodes = [];\n this.util.blankNodeFactory = () => {\n const bNode = this.util.dataFactory.blankNode(undefined, node);\n unwrap(pattern.constructedBlankNodes).push(bNode);\n return bNode;\n };\n } else {\n let blankNodeIndex = 0;\n this.util.blankNodeFactory = () => {\n const bNode = unwrap(pattern.constructedBlankNodes)[blankNodeIndex];\n blankNodeIndex++;\n return bNode;\n };\n }\n\n // Apply everything within the pattern\n this.emitPatternCopyAbsolute(pattern, true, rootPatternId);\n\n this.util.blankNodeFactory = null;\n this.activeTagStack.pop();\n }\n\n /**\n * Emit an instantiation of the given pattern with the given parent tag.\n *\n * This should probably not be called directly,\n * call {@link emitPatternCopy} instead.\n *\n * @param {IRdfaPattern} pattern The pattern to instantiate.\n * @param {boolean} root If this is the root call for the given pattern.\n * @param {string} rootPatternId The pattern id.\n * @param node the extra metadata that will be stored along with the triple\n */\n protected emitPatternCopyAbsolute(\n pattern: IRdfaPattern<N>,\n root: boolean,\n rootPatternId: string,\n ) {\n // Stop on detection of cyclic patterns\n if (\n !root &&\n pattern.attributes['property'] === 'rdfa:copy' &&\n pattern.attributes['href'] === rootPatternId\n ) {\n return;\n }\n\n this.onTagOpen(pattern.name, pattern.attributes);\n for (const text of pattern.text) {\n this.onText(text);\n }\n for (const child of pattern.children) {\n this.emitPatternCopyAbsolute(child, false, rootPatternId);\n }\n this.onTagClose();\n }\n}\n\nexport interface IRdfaParserOptions<N> {\n /**\n * A custom RDFJS DataFactory to construct terms and triples.\n */\n dataFactory?: RDF.DataFactory;\n /**\n * An initial default base IRI.\n */\n baseIRI: string;\n /**\n * A default language for string literals.\n */\n language?: string;\n /**\n * The initial vocabulary.\n */\n vocab?: string;\n /**\n * The default graph for constructing quads.\n */\n defaultGraph?: RDF.Quad_Graph;\n /**\n * A hash of features that should be enabled.\n * Defaults to the features defined by the profile.\n */\n features?: IRdfaFeatures;\n /**\n * The RDFa profile to use.\n * Defaults to a profile with all possible features enabled.\n */\n profile?: RdfaProfile;\n /**\n * The content type of the document that should be parsed.\n * This can be used as an alternative to the 'profile' option.\n */\n contentType?: string;\n /**\n * An optional listener for the internal HTML parse events.\n */\n htmlParseListener?: IHtmlParseListener;\n\n rootModelNode: N;\n}\n\n/**\n * Thrown when a variable is null or undefined unexpectedly.\n * Should ideally never be used, but useful for repairing\n * broken typings of third party code.\n */\nexport class NullOrUndefinedError extends CustomError {\n constructor() {\n super('Unexpected null/undefined value for variable');\n }\n}\n\nexport function quadHash(quad: RDF.Quad): string {\n return `${quad.subject.termType}${quad.subject.value}${quad.predicate.termType}${quad.predicate.value}${quad.object.termType}${quad.object.value}${quad.graph.termType}${quad.graph.value}`;\n}\n"],"names":["RdfaParser","options","util","defaultGraph","features","htmlParseListener","rdfaPatterns","pendingRdfaPatternCopies","resultSet","activeTagStack","nodeToSubjectMapping","subjectToNodesMapping","nodeToObjectsMapping","objectToNodesMapping","nodeToPredicatesMapping","predicateToNodesMapping","quadToNodesMapping","rootModelNode","seenSubjectNodes","seenPredicateNodes","seenObjectNodes","globallySeenPrefixes","resourceNodeMapping","contentNodeMapping","constructor","Util","undefined","baseIRI","dataFactory","profile","contentType","contentTypeToProfile","RDFA_FEATURES","N3StoreWrapper","Map","rdfaResourceNodeMap","rdfaContentNodeMap","push","incompleteTriples","inlist","language","listMapping","listMappingLocal","name","attributes","prefixesAll","INITIAL_CONTEXT","xhtmlInitialContext","INITIAL_CONTEXT_XHTML","prefixesCustom","skipElement","vocab","node","parse","config","pathFromDomRoot","root","parseRoot","parser","domNode","isElement","attributeObj","attr","value","onTagOpen","tagName","isTextNode","onText","textContent","parseRec","_","onTagClose","onEnd","dataset","seenPrefixes","isText","tag","children","child","parentTagI","length","parentTag","activeTag","collectChildTags","localBaseIRI","prefix","Object","keys","sort","suffix","attributeKey","attributesSerialized","map","key","join","text","skipHandlingXmlLiteralChildren","allowTermsInRelPredicates","allowTermsInRevPredicates","onlyAllowUriRelRevIfProperty","indexOf","copyRdfaPatterns","collectedPatternTag","patternTag","referenced","rootPattern","copyTargetPatternId","emitPatternCopy","baseTag","getBaseIRI","xmlBase","timeTag","interpretObjectAsTime","newSubject","currentObjectResource","typedResource","emitTriple","getBaseIriTerm","namedNode","RDFA","parsePrefixes","xmlnsPrefixMappings","roleAttribute","roleSubject","createIri","createBlankNode","vocabOld","role","createVocabIris","langAttribute","isRootTag","explicitNewSubject","object","isInheritSubjectInHeadBody","type","getResourceOrBaseIri","RDF","NullOrUndefinedError","predicate","addListMapping","reverse","list","predicates","localObjectResource","datatype","htmlDatatype","createLiteral","subject","datetimeAttribute","incompleteTriplesCompleted","incompleteTriple","firstInListTag","i","concat","markAsLiteralNode","predicateAttribute","content","set","sayDataFactory","resourceNode","unwrap","markAsResourceNode","resource","contentPredicate","contentDatatype","contentLanguage","equals","LANG_STRING","data","textSegments","slice","patternId","pop","predicateValue","values","bnodes","isExternalTriple","Boolean","postProcessTagAsRdfaNode","pattern","property","href","inheritSubjectInHeadBody","bNode","predicateList","termType","quad","has","MapUtils","setOrPush","setOrAdd","quadHash","subjectNodes","get","predicateNodes","objectNodes","add","rootPatternId","constructedBlankNodes","blankNodeFactory","blankNode","blankNodeIndex","emitPatternCopyAbsolute","CustomError","graph"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lblod/ember-rdfa-editor",
|
|
3
|
-
"version": "13.
|
|
3
|
+
"version": "13.5.0",
|
|
4
4
|
"description": "Ember addon wrapping an RDFa editor with a public API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ember-addon"
|
|
@@ -216,7 +216,6 @@
|
|
|
216
216
|
"@embroider/macros": "^1.19.6",
|
|
217
217
|
"@floating-ui/dom": "^1.7.4",
|
|
218
218
|
"@glint/tsserver-plugin": "2.1.0",
|
|
219
|
-
"@graphy/memory.dataset.fast": "4.3.3",
|
|
220
219
|
"@lblod/marawa": "0.8.0-beta.6",
|
|
221
220
|
"@rdfjs/types": "^1.1.2",
|
|
222
221
|
"@say-editor/prosemirror-invisibles": "^0.1.1",
|
|
@@ -224,7 +223,6 @@
|
|
|
224
223
|
"@types/react": "19.1.13",
|
|
225
224
|
"codemirror": "^6.0.2",
|
|
226
225
|
"common-tags": "^1.8.2",
|
|
227
|
-
"crypto-browserify": "^3.12.1",
|
|
228
226
|
"debug": "^4.4.3",
|
|
229
227
|
"decorator-transforms": "^2.3.1",
|
|
230
228
|
"dompurify": "3.2.4",
|
|
@@ -243,7 +241,7 @@
|
|
|
243
241
|
"linkifyjs": "^4.3.2",
|
|
244
242
|
"mdn-polyfills": "^5.20.0",
|
|
245
243
|
"mongoose": "^8.21.0",
|
|
246
|
-
"
|
|
244
|
+
"n3": "^2.0.3",
|
|
247
245
|
"prosemirror-commands": "^1.7.1",
|
|
248
246
|
"prosemirror-dropcursor": "^1.8.2",
|
|
249
247
|
"prosemirror-inputrules": "^1.5.1",
|
|
@@ -257,7 +255,6 @@
|
|
|
257
255
|
"rdf-data-factory": "^1.1.3",
|
|
258
256
|
"reactiveweb": "^1.9.1",
|
|
259
257
|
"relative-to-absolute-iri": "^1.0.7",
|
|
260
|
-
"stream-browserify": "^3.0.0",
|
|
261
258
|
"tracked-toolbox": "^2.2.0",
|
|
262
259
|
"typedoc": "^0.28.17",
|
|
263
260
|
"uuid": "^9.0.1",
|
|
@@ -284,6 +281,7 @@
|
|
|
284
281
|
"@tsconfig/ember": "^3.0.12",
|
|
285
282
|
"@types/debug": "^4.1.12",
|
|
286
283
|
"@types/js-beautify": "^1.14.3",
|
|
284
|
+
"@types/n3": "^1.26.1",
|
|
287
285
|
"@types/uuid": "^9.0.8",
|
|
288
286
|
"@types/validator": "^13.15.10",
|
|
289
287
|
"autoprefixer": "^10.4.23",
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import type * as RDF from '@rdfjs/types';
|
|
2
|
-
import type { FastDataset } from '@graphy/memory.dataset.fast';
|
|
3
|
-
type QuadDataSet = RDF.Dataset<RDF.Quad, RDF.Quad>;
|
|
4
|
-
/**
|
|
5
|
-
* Spec-compliant wrapper for graphy
|
|
6
|
-
*/
|
|
7
|
-
export declare class GraphyDataset implements QuadDataSet {
|
|
8
|
-
private _fastDataset;
|
|
9
|
-
constructor(quads?: RDF.Dataset | RDF.Quad[] | FastDataset | GraphyDataset);
|
|
10
|
-
get size(): number;
|
|
11
|
-
get fastDataset(): FastDataset;
|
|
12
|
-
add(quad: RDF.Quad): this;
|
|
13
|
-
delete(quad: RDF.Quad): this;
|
|
14
|
-
has(quad: RDF.Quad): boolean;
|
|
15
|
-
match(subject?: RDF.Term | null, predicate?: RDF.Term | null, object?: RDF.Term | null, graph?: RDF.Quad_Graph | null): GraphyDataset;
|
|
16
|
-
addAll(quads: QuadDataSet | RDF.Quad[]): this;
|
|
17
|
-
contains(other: QuadDataSet): boolean;
|
|
18
|
-
deleteMatches(subject?: RDF.Quad_Subject, predicate?: RDF.Quad_Predicate, object?: RDF.Quad_Object, graph?: RDF.Quad_Graph): this;
|
|
19
|
-
difference(other: QuadDataSet): GraphyDataset;
|
|
20
|
-
minus(other: QuadDataSet): GraphyDataset;
|
|
21
|
-
equals(other: RDF.Dataset<RDF.Quad, RDF.Quad>): boolean;
|
|
22
|
-
every(iteratee: (quad: RDF.Quad, dataset: this) => boolean): boolean;
|
|
23
|
-
filter(iteratee: (quad: RDF.Quad, dataset: this) => boolean): GraphyDataset;
|
|
24
|
-
forEach(iteratee: (quad: RDF.Quad, dataset: this) => void): void;
|
|
25
|
-
import(_stream: RDF.Stream<RDF.Quad>): Promise<this>;
|
|
26
|
-
intersection(other: QuadDataSet): GraphyDataset;
|
|
27
|
-
map(iteratee: (quad: RDF.Quad, dataset: RDF.Dataset<RDF.Quad, RDF.Quad>) => RDF.Quad): GraphyDataset;
|
|
28
|
-
reduce<A>(iteratee: (accumulator: A, quad: RDF.Quad, dataset: this) => A, initialValue?: A | RDF.Quad | null): A;
|
|
29
|
-
some(iteratee: (quad: RDF.Quad, dataset: this) => boolean): boolean;
|
|
30
|
-
toArray(): RDF.Quad[];
|
|
31
|
-
toCanonical(): string;
|
|
32
|
-
toStream(): RDF.Stream<RDF.Quad>;
|
|
33
|
-
toString(): string;
|
|
34
|
-
union(quads: RDF.Dataset<RDF.Quad, RDF.Quad>): GraphyDataset;
|
|
35
|
-
[Symbol.iterator](): Iterator<RDF.Quad>;
|
|
36
|
-
}
|
|
37
|
-
export {};
|