diff --git a/package.json b/package.json index d24e608..ee158e5 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ ], "license": "MIT", "dependencies": { - "rdfjs-wrapper": "^0.15.0" + "@rdfjs/wrapper": "^0.32.0" }, "devDependencies": { "@rdfjs/types": "^2", diff --git a/src/acp/AccessControl.ts b/src/acp/AccessControl.ts index ca9c868..64181b2 100644 --- a/src/acp/AccessControl.ts +++ b/src/acp/AccessControl.ts @@ -1,10 +1,10 @@ -import { TermWrapper } from "rdfjs-wrapper" +import { TermAs, TermFrom } from "@rdfjs/wrapper" import { Policy } from "./Policy.js" import { ACP } from "../vocabulary/mod.js" import { Typed } from "./Typed.js"; export class AccessControl extends Typed { get apply(): Set { - return this.objects(ACP.apply, TermWrapper.as(Policy), TermWrapper.as(Policy)) + return this.objects(ACP.apply, TermAs.instance(Policy), TermFrom.instance) } } diff --git a/src/acp/AccessControlResource.ts b/src/acp/AccessControlResource.ts index 0b461e8..24a9339 100644 --- a/src/acp/AccessControlResource.ts +++ b/src/acp/AccessControlResource.ts @@ -1,18 +1,18 @@ -import { ValueMappings, TermMappings, TermWrapper } from "rdfjs-wrapper" +import { NamedNodeAs, NamedNodeFrom, TermAs, TermFrom } from "@rdfjs/wrapper" import { AccessControl } from "./AccessControl.js" import { ACP } from "../vocabulary/mod.js" import { Typed } from "./Typed.js"; export class AccessControlResource extends Typed { get accessControl(): Set { - return this.objects(ACP.accessControl, TermWrapper.as(AccessControl), TermWrapper.as(AccessControl)) + return this.objects(ACP.accessControl, TermAs.instance(AccessControl), TermFrom.instance) } get resource(): string | undefined { - return this.singularNullable(ACP.resource, ValueMappings.iriToString) + return this.singularNullable(ACP.resource, NamedNodeAs.string) } set resource(v: string) { - this.overwriteNullable(ACP.resource, v, TermMappings.stringToIri) + this.overwriteNullable(ACP.resource, v, NamedNodeFrom.string) } } diff --git a/src/acp/AcrDataset.ts b/src/acp/AcrDataset.ts index 06cce51..a1aac5e 100644 --- a/src/acp/AcrDataset.ts +++ b/src/acp/AcrDataset.ts @@ -1,4 +1,4 @@ -import { DatasetWrapper } from "rdfjs-wrapper" +import { DatasetWrapper } from "@rdfjs/wrapper" import { AccessControlResource } from "./AccessControlResource.js"; import { ACP } from "../vocabulary/mod.js"; diff --git a/src/acp/Matcher.ts b/src/acp/Matcher.ts index b7b3fc7..ab2e3a0 100644 --- a/src/acp/Matcher.ts +++ b/src/acp/Matcher.ts @@ -1,9 +1,9 @@ -import { TermMappings, ValueMappings } from "rdfjs-wrapper" +import { NamedNodeAs, NamedNodeFrom } from "@rdfjs/wrapper" import { ACP } from "../vocabulary/mod.js" import { Typed } from "./Typed.js"; export class Matcher extends Typed { get agent(): Set { - return this.objects(ACP.agent, ValueMappings.iriToString, TermMappings.stringToIri) + return this.objects(ACP.agent, NamedNodeAs.string, NamedNodeFrom.string) } } diff --git a/src/acp/Policy.ts b/src/acp/Policy.ts index e212b23..56411d1 100644 --- a/src/acp/Policy.ts +++ b/src/acp/Policy.ts @@ -1,14 +1,14 @@ -import { TermMappings, ValueMappings, TermWrapper } from "rdfjs-wrapper" +import { NamedNodeAs, NamedNodeFrom, TermAs, TermFrom } from "@rdfjs/wrapper" import { Matcher } from "./Matcher.js" import { ACP } from "../vocabulary/mod.js" import { Typed } from "./Typed.js"; export class Policy extends Typed { get allow(): Set { - return this.objects(ACP.allow, ValueMappings.iriToString, TermMappings.stringToIri) + return this.objects(ACP.allow, NamedNodeAs.string, NamedNodeFrom.string) } get anyOf(): Set { - return this.objects(ACP.anyOf, TermWrapper.as(Matcher), TermWrapper.as(Matcher)) + return this.objects(ACP.anyOf, TermAs.instance(Matcher), TermFrom.instance) } } diff --git a/src/acp/Typed.ts b/src/acp/Typed.ts index 8794bc0..7bd7628 100644 --- a/src/acp/Typed.ts +++ b/src/acp/Typed.ts @@ -1,8 +1,8 @@ -import { TermMappings, ValueMappings, TermWrapper } from "rdfjs-wrapper" +import { TermWrapper, NamedNodeAs, NamedNodeFrom } from "@rdfjs/wrapper" import { RDF } from "../vocabulary/mod.js" export class Typed extends TermWrapper { get type(): Set { - return this.objects(RDF.type, ValueMappings.iriToString, TermMappings.stringToIri) + return this.objects(RDF.type, NamedNodeAs.string, NamedNodeFrom.string) } } diff --git a/src/solid/Container.ts b/src/solid/Container.ts index fd6b0a2..d959808 100644 --- a/src/solid/Container.ts +++ b/src/solid/Container.ts @@ -1,9 +1,9 @@ -import { TermWrapper } from "rdfjs-wrapper" +import { TermAs, TermFrom } from "@rdfjs/wrapper" import { Resource } from "./Resource.js" import { LDP } from "../vocabulary/mod.js" export class Container extends Resource { public get contains(): Set { - return this.objects(LDP.contains, TermWrapper.as(Resource), TermWrapper.as(Resource)) + return this.objects(LDP.contains, TermAs.instance(Resource), TermFrom.instance) } } diff --git a/src/solid/ContainerDataset.ts b/src/solid/ContainerDataset.ts index 4af9358..a505155 100644 --- a/src/solid/ContainerDataset.ts +++ b/src/solid/ContainerDataset.ts @@ -1,4 +1,4 @@ -import { DatasetWrapper } from "rdfjs-wrapper" +import { DatasetWrapper } from "@rdfjs/wrapper" import { Container } from "./Container.js" import { LDP } from "../vocabulary/mod.js" diff --git a/src/solid/Email.ts b/src/solid/Email.ts index 505e4e0..4cee5c0 100644 --- a/src/solid/Email.ts +++ b/src/solid/Email.ts @@ -1,20 +1,20 @@ -import { TermWrapper, ValueMappings, TermMappings } from 'rdfjs-wrapper'; +import { TermWrapper, LiteralAs, LiteralFrom, NamedNodeAs, NamedNodeFrom } from '@rdfjs/wrapper'; import { VCARD, RDF } from '../vocabulary/mod.js'; export class Email extends TermWrapper { get emailAddress(): string { - return this.singular(VCARD.value, ValueMappings.literalToString); + return this.singular(VCARD.value, LiteralAs.string); } set emailAddress(value: string) { - this.overwrite(VCARD.value, value, TermMappings.stringToLiteral); + this.overwrite(VCARD.value, value, LiteralFrom.string); } get emailType(): string | undefined { - return this.singularNullable(RDF.type, ValueMappings.iriToString); + return this.singularNullable(RDF.type, NamedNodeAs.string); } set emailType(value: string | undefined) { - this.overwriteNullable(RDF.type, value, TermMappings.stringToIri); + this.overwriteNullable(RDF.type, value, NamedNodeFrom.string); } } diff --git a/src/solid/EmailDataset.ts b/src/solid/EmailDataset.ts index a45557a..7902e53 100644 --- a/src/solid/EmailDataset.ts +++ b/src/solid/EmailDataset.ts @@ -1,4 +1,4 @@ -import { DatasetWrapper } from 'rdfjs-wrapper'; +import { DatasetWrapper } from '@rdfjs/wrapper'; import { VCARD } from '../vocabulary/mod.js'; import { Email } from './Email.js'; diff --git a/src/solid/Resource.ts b/src/solid/Resource.ts index 1e62442..0dabc7f 100644 --- a/src/solid/Resource.ts +++ b/src/solid/Resource.ts @@ -1,4 +1,4 @@ -import { TermMappings, ValueMappings, TermWrapper } from "rdfjs-wrapper" +import { TermWrapper, LiteralAs, NamedNodeAs, NamedNodeFrom } from "@rdfjs/wrapper" import { DC, POSIX, RDF, RDFS } from "../vocabulary/mod.js" // TODO: review implementation of this @@ -8,7 +8,7 @@ export class Resource extends TermWrapper { #ianaMediaTypePattern = /^http:\/\/www\.w3\.org\/ns\/iana\/media-types\/(.+)#Resource$/; get id(): string { - return this.term.value + return this.value } get isContainer(): boolean { @@ -20,11 +20,11 @@ export class Resource extends TermWrapper { } get title(): string | undefined { - return this.singularNullable(DC.title, ValueMappings.literalToString) + return this.singularNullable(DC.title, LiteralAs.string) } get label(): string | undefined { - return this.singularNullable(RDFS.label, ValueMappings.literalToString) + return this.singularNullable(RDFS.label, LiteralAs.string) } get name(): string { @@ -32,11 +32,11 @@ export class Resource extends TermWrapper { } get modified(): Date | undefined { - return this.singularNullable(DC.modified, ValueMappings.literalToDate) + return this.singularNullable(DC.modified, LiteralAs.date) } get mtime(): Date | undefined { - return this.singularNullable(POSIX.mtime, ValueMappings.literalToDate) + return this.singularNullable(POSIX.mtime, LiteralAs.date) } get lastModified(): Date | undefined { @@ -44,11 +44,11 @@ export class Resource extends TermWrapper { } get size(): number | undefined { - return this.singularNullable(POSIX.size, ValueMappings.literalToNumber) + return this.singularNullable(POSIX.size, LiteralAs.number) } get type(): Set { - return this.objects(RDF.type, ValueMappings.iriToString, TermMappings.stringToIri) + return this.objects(RDF.type, NamedNodeAs.string, NamedNodeFrom.string) } get mimeType(): string | undefined { diff --git a/src/solid/Telephone.ts b/src/solid/Telephone.ts index ea52d3a..eda883e 100644 --- a/src/solid/Telephone.ts +++ b/src/solid/Telephone.ts @@ -1,20 +1,20 @@ -import { TermWrapper, ValueMappings, TermMappings } from 'rdfjs-wrapper'; +import { TermWrapper, LiteralAs, LiteralFrom, NamedNodeAs, NamedNodeFrom } from '@rdfjs/wrapper'; import { VCARD } from '../vocabulary/mod.js'; export class Telephone extends TermWrapper { get phoneNumber(): string { - return this.singular(VCARD.hasValue, ValueMappings.literalToString); + return this.singular(VCARD.hasValue, LiteralAs.string); } set phoneNumber(value: string) { - this.overwrite(VCARD.hasValue, value, TermMappings.stringToLiteral); + this.overwrite(VCARD.hasValue, value, LiteralFrom.string); } get phoneType(): string | undefined { - return this.singularNullable(VCARD.telephoneType, ValueMappings.iriToString); + return this.singularNullable(VCARD.telephoneType, NamedNodeAs.string); } set phoneType(value: string | undefined) { - this.overwriteNullable(VCARD.telephoneType, value, TermMappings.stringToIri); + this.overwriteNullable(VCARD.telephoneType, value, NamedNodeFrom.string); } } diff --git a/src/solid/TelephoneDataset.ts b/src/solid/TelephoneDataset.ts index b3f052c..ffebdb4 100644 --- a/src/solid/TelephoneDataset.ts +++ b/src/solid/TelephoneDataset.ts @@ -1,4 +1,4 @@ -import { DatasetWrapper } from 'rdfjs-wrapper'; +import { DatasetWrapper } from '@rdfjs/wrapper'; import { VCARD } from '../vocabulary/vcard.js'; import { Telephone } from './Telephone.js'; diff --git a/src/webid/Agent.ts b/src/webid/Agent.ts index d0d6d82..69df9ab 100644 --- a/src/webid/Agent.ts +++ b/src/webid/Agent.ts @@ -1,25 +1,25 @@ -import { TermMappings, ValueMappings, TermWrapper } from "rdfjs-wrapper" +import { TermWrapper, LiteralAs, NamedNodeAs, NamedNodeFrom, TermAs } from "@rdfjs/wrapper" import { FOAF, PIM, SOLID, VCARD } from "../vocabulary/mod.js" export class Agent extends TermWrapper { get vcardFn(): string | undefined { - return this.singularNullable(VCARD.fn, ValueMappings.literalToString) + return this.singularNullable(VCARD.fn, LiteralAs.string) } get vcardHasUrl(): string | undefined { - return this.singularNullable(VCARD.hasUrl, ValueMappings.iriToString) + return this.singularNullable(VCARD.hasUrl, NamedNodeAs.string) } get organization(): string | null { - return this.singularNullable(VCARD.organizationName, ValueMappings.iriToString) ?? null + return this.singularNullable(VCARD.organizationName, NamedNodeAs.string) ?? null } get role(): string | null { - return this.singularNullable(VCARD.role, ValueMappings.iriToString) ?? null + return this.singularNullable(VCARD.role, NamedNodeAs.string) ?? null } get title(): string | null { - return this.singularNullable(VCARD.title, ValueMappings.literalToString) ?? null + return this.singularNullable(VCARD.title, LiteralAs.string) ?? null } get phone(): string | null { @@ -27,15 +27,15 @@ export class Agent extends TermWrapper { } get hasTelephone(): HasValue | undefined { - return this.singularNullable(VCARD.hasTelephone, TermWrapper.as(HasValue)) + return this.singularNullable(VCARD.hasTelephone, TermAs.instance(HasValue)) } get foafName(): string | undefined { - return this.singularNullable(FOAF.name, ValueMappings.literalToString) + return this.singularNullable(FOAF.name, LiteralAs.string) } get name(): string | null { - return this.vcardFn ?? this.foafName ?? this.term.value.split("/").pop()?.split("#")[0] ?? null + return this.vcardFn ?? this.foafName ?? this.value.split("/").pop()?.split("#")[0] ?? null } get storageUrls(): Set { @@ -44,7 +44,7 @@ export class Agent extends TermWrapper { } get foafHomepage(): string | undefined { - return this.singularNullable(FOAF.homepage, ValueMappings.literalToString) + return this.singularNullable(FOAF.homepage, LiteralAs.string) } get website(): string | null { @@ -52,15 +52,15 @@ export class Agent extends TermWrapper { } get photoUrl(): string | null { - return this.singularNullable(VCARD.hasPhoto, ValueMappings.literalToString) ?? null + return this.singularNullable(VCARD.hasPhoto, LiteralAs.string) ?? null } get pimStorage(): Set { - return this.objects(PIM.storage, ValueMappings.iriToString, TermMappings.stringToIri) + return this.objects(PIM.storage, NamedNodeAs.string, NamedNodeFrom.string) } get solidStorage(): Set { - return this.objects(SOLID.storage, ValueMappings.iriToString, TermMappings.stringToIri) + return this.objects(SOLID.storage, NamedNodeAs.string, NamedNodeFrom.string) } get email(): string | null { @@ -68,20 +68,20 @@ export class Agent extends TermWrapper { } get hasEmail(): HasValue | undefined { - return this.singularNullable(VCARD.hasEmail, TermWrapper.as(HasValue)) + return this.singularNullable(VCARD.hasEmail, TermAs.instance(HasValue)) } get knows(): Set { - return this.objects(FOAF.knows, ValueMappings.iriToString, TermMappings.stringToIri) + return this.objects(FOAF.knows, NamedNodeAs.string, NamedNodeFrom.string) } } class HasValue extends TermWrapper { - get value(): string { - return this.hasValue ?? this.term.value + override get value(): string { + return this.hasValue ?? super.value } get hasValue(): string | undefined { - return this.singularNullable(VCARD.hasValue, ValueMappings.iriToString) + return this.singularNullable(VCARD.hasValue, NamedNodeAs.string) } } diff --git a/src/webid/WebIdDataset.ts b/src/webid/WebIdDataset.ts index 8c5ac58..39d01ea 100644 --- a/src/webid/WebIdDataset.ts +++ b/src/webid/WebIdDataset.ts @@ -1,4 +1,4 @@ -import { DatasetWrapper } from "rdfjs-wrapper" +import { DatasetWrapper } from "@rdfjs/wrapper" import { Agent } from "../webid/Agent.js" import { SOLID } from "../vocabulary/mod.js" diff --git a/test/unit/example.test.ts b/test/unit/example.test.ts index 4a8be6e..e15ace8 100644 --- a/test/unit/example.test.ts +++ b/test/unit/example.test.ts @@ -24,7 +24,7 @@ describe("Example suite", async () => { store.addQuads(new Parser().parse(rdf)); const webid = new WebIdDataset(store, DataFactory) - assert.equal("https://id.inrupt.com/matthieuodi", webid.mainSubject?.term.value) + assert.equal("https://id.inrupt.com/matthieuodi", webid.mainSubject?.value) assert.equal("Matthieu Odi", webid.mainSubject?.name) }) })