From 85a01e85abb91d0a4213d8b00eecb9e4f8c476eb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Apr 2026 00:19:03 +0000 Subject: [PATCH 1/2] Bump @rdfjs/wrapper from 0.32.0 to 0.33.0 Bumps [@rdfjs/wrapper](https://github.com/rdfjs/wrapper) from 0.32.0 to 0.33.0. - [Release notes](https://github.com/rdfjs/wrapper/releases) - [Commits](https://github.com/rdfjs/wrapper/compare/v0.32.0...v.0.33.0) --- updated-dependencies: - dependency-name: "@rdfjs/wrapper" dependency-version: 0.33.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 259e8e4..8d68a42 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ ], "license": "MIT", "dependencies": { - "@rdfjs/wrapper": "^0.32.0" + "@rdfjs/wrapper": "^0.33.0" }, "devDependencies": { "@rdfjs/types": "^2", From 37de9bd074aea249c4a6f507508a4f081178d244 Mon Sep 17 00:00:00 2001 From: Samu Lang Date: Fri, 10 Apr 2026 09:54:14 +0100 Subject: [PATCH 2/2] Adjust to breaking API changes --- src/acp/AccessControl.ts | 4 ++-- src/acp/AccessControlResource.ts | 8 ++++---- src/acp/Matcher.ts | 4 ++-- src/acp/Policy.ts | 6 +++--- src/acp/Typed.ts | 4 ++-- src/solid/Container.ts | 4 ++-- src/solid/Email.ts | 22 ++++++++++++++++------ src/solid/Resource.ts | 14 +++++++------- src/solid/Telephone.ts | 20 +++++++++++++++----- src/webid/Agent.ts | 30 +++++++++++++++--------------- 10 files changed, 68 insertions(+), 48 deletions(-) diff --git a/src/acp/AccessControl.ts b/src/acp/AccessControl.ts index 64181b2..2e34975 100644 --- a/src/acp/AccessControl.ts +++ b/src/acp/AccessControl.ts @@ -1,10 +1,10 @@ -import { TermAs, TermFrom } from "@rdfjs/wrapper" +import { SetFrom, 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, TermAs.instance(Policy), TermFrom.instance) + return SetFrom.subjectPredicate(this, ACP.apply, TermAs.instance(Policy), TermFrom.instance) } } diff --git a/src/acp/AccessControlResource.ts b/src/acp/AccessControlResource.ts index 24a9339..bef6c92 100644 --- a/src/acp/AccessControlResource.ts +++ b/src/acp/AccessControlResource.ts @@ -1,18 +1,18 @@ -import { NamedNodeAs, NamedNodeFrom, TermAs, TermFrom } from "@rdfjs/wrapper" +import { NamedNodeAs, NamedNodeFrom, OptionalAs, OptionalFrom, SetFrom, 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, TermAs.instance(AccessControl), TermFrom.instance) + return SetFrom.subjectPredicate(this, ACP.accessControl, TermAs.instance(AccessControl), TermFrom.instance) } get resource(): string | undefined { - return this.singularNullable(ACP.resource, NamedNodeAs.string) + return OptionalFrom.subjectPredicate(this, ACP.resource, NamedNodeAs.string) } set resource(v: string) { - this.overwriteNullable(ACP.resource, v, NamedNodeFrom.string) + OptionalAs.object(this, ACP.resource, v, NamedNodeFrom.string) } } diff --git a/src/acp/Matcher.ts b/src/acp/Matcher.ts index ab2e3a0..9058f4c 100644 --- a/src/acp/Matcher.ts +++ b/src/acp/Matcher.ts @@ -1,9 +1,9 @@ -import { NamedNodeAs, NamedNodeFrom } from "@rdfjs/wrapper" +import { NamedNodeAs, NamedNodeFrom, SetFrom } 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, NamedNodeAs.string, NamedNodeFrom.string) + return SetFrom.subjectPredicate(this, ACP.agent, NamedNodeAs.string, NamedNodeFrom.string) } } diff --git a/src/acp/Policy.ts b/src/acp/Policy.ts index 56411d1..8479618 100644 --- a/src/acp/Policy.ts +++ b/src/acp/Policy.ts @@ -1,14 +1,14 @@ -import { NamedNodeAs, NamedNodeFrom, TermAs, TermFrom } from "@rdfjs/wrapper" +import { NamedNodeAs, NamedNodeFrom, SetFrom, 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, NamedNodeAs.string, NamedNodeFrom.string) + return SetFrom.subjectPredicate(this, ACP.allow, NamedNodeAs.string, NamedNodeFrom.string) } get anyOf(): Set { - return this.objects(ACP.anyOf, TermAs.instance(Matcher), TermFrom.instance) + return SetFrom.subjectPredicate(this, ACP.anyOf, TermAs.instance(Matcher), TermFrom.instance) } } diff --git a/src/acp/Typed.ts b/src/acp/Typed.ts index 7bd7628..3efd7a1 100644 --- a/src/acp/Typed.ts +++ b/src/acp/Typed.ts @@ -1,8 +1,8 @@ -import { TermWrapper, NamedNodeAs, NamedNodeFrom } from "@rdfjs/wrapper" +import { NamedNodeAs, NamedNodeFrom, SetFrom, TermWrapper } from "@rdfjs/wrapper" import { RDF } from "../vocabulary/mod.js" export class Typed extends TermWrapper { get type(): Set { - return this.objects(RDF.type, NamedNodeAs.string, NamedNodeFrom.string) + return SetFrom.subjectPredicate(this, RDF.type, NamedNodeAs.string, NamedNodeFrom.string) } } diff --git a/src/solid/Container.ts b/src/solid/Container.ts index d959808..6b65651 100644 --- a/src/solid/Container.ts +++ b/src/solid/Container.ts @@ -1,9 +1,9 @@ -import { TermAs, TermFrom } from "@rdfjs/wrapper" +import { SetFrom, 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, TermAs.instance(Resource), TermFrom.instance) + return SetFrom.subjectPredicate(this, LDP.contains, TermAs.instance(Resource), TermFrom.instance) } } diff --git a/src/solid/Email.ts b/src/solid/Email.ts index 4cee5c0..16018df 100644 --- a/src/solid/Email.ts +++ b/src/solid/Email.ts @@ -1,20 +1,30 @@ -import { TermWrapper, LiteralAs, LiteralFrom, NamedNodeAs, NamedNodeFrom } from '@rdfjs/wrapper'; -import { VCARD, RDF } from '../vocabulary/mod.js'; +import { + LiteralAs, + LiteralFrom, + NamedNodeAs, + NamedNodeFrom, + OptionalAs, + OptionalFrom, + RequiredAs, + RequiredFrom, + TermWrapper +} from '@rdfjs/wrapper'; +import { RDF, VCARD } from '../vocabulary/mod.js'; export class Email extends TermWrapper { get emailAddress(): string { - return this.singular(VCARD.value, LiteralAs.string); + return RequiredFrom.subjectPredicate(this, VCARD.value, LiteralAs.string); } set emailAddress(value: string) { - this.overwrite(VCARD.value, value, LiteralFrom.string); + RequiredAs.object(this, VCARD.value, value, LiteralFrom.string); } get emailType(): string | undefined { - return this.singularNullable(RDF.type, NamedNodeAs.string); + return OptionalFrom.subjectPredicate(this, RDF.type, NamedNodeAs.string); } set emailType(value: string | undefined) { - this.overwriteNullable(RDF.type, value, NamedNodeFrom.string); + OptionalAs.object(this, RDF.type, value, NamedNodeFrom.string); } } diff --git a/src/solid/Resource.ts b/src/solid/Resource.ts index 0dabc7f..43e87dc 100644 --- a/src/solid/Resource.ts +++ b/src/solid/Resource.ts @@ -1,4 +1,4 @@ -import { TermWrapper, LiteralAs, NamedNodeAs, NamedNodeFrom } from "@rdfjs/wrapper" +import { LiteralAs, NamedNodeAs, NamedNodeFrom, OptionalFrom, SetFrom, TermWrapper } from "@rdfjs/wrapper" import { DC, POSIX, RDF, RDFS } from "../vocabulary/mod.js" // TODO: review implementation of this @@ -20,11 +20,11 @@ export class Resource extends TermWrapper { } get title(): string | undefined { - return this.singularNullable(DC.title, LiteralAs.string) + return OptionalFrom.subjectPredicate(this, DC.title, LiteralAs.string) } get label(): string | undefined { - return this.singularNullable(RDFS.label, LiteralAs.string) + return OptionalFrom.subjectPredicate(this, 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, LiteralAs.date) + return OptionalFrom.subjectPredicate(this, DC.modified, LiteralAs.date) } get mtime(): Date | undefined { - return this.singularNullable(POSIX.mtime, LiteralAs.date) + return OptionalFrom.subjectPredicate(this, 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, LiteralAs.number) + return OptionalFrom.subjectPredicate(this, POSIX.size, LiteralAs.number) } get type(): Set { - return this.objects(RDF.type, NamedNodeAs.string, NamedNodeFrom.string) + return SetFrom.subjectPredicate(this, RDF.type, NamedNodeAs.string, NamedNodeFrom.string) } get mimeType(): string | undefined { diff --git a/src/solid/Telephone.ts b/src/solid/Telephone.ts index eda883e..572f259 100644 --- a/src/solid/Telephone.ts +++ b/src/solid/Telephone.ts @@ -1,20 +1,30 @@ -import { TermWrapper, LiteralAs, LiteralFrom, NamedNodeAs, NamedNodeFrom } from '@rdfjs/wrapper'; +import { + LiteralAs, + LiteralFrom, + NamedNodeAs, + NamedNodeFrom, + OptionalAs, + OptionalFrom, + RequiredAs, + RequiredFrom, + TermWrapper +} from '@rdfjs/wrapper'; import { VCARD } from '../vocabulary/mod.js'; export class Telephone extends TermWrapper { get phoneNumber(): string { - return this.singular(VCARD.hasValue, LiteralAs.string); + return RequiredFrom.subjectPredicate(this, VCARD.hasValue, LiteralAs.string); } set phoneNumber(value: string) { - this.overwrite(VCARD.hasValue, value, LiteralFrom.string); + RequiredAs.object(this, VCARD.hasValue, value, LiteralFrom.string); } get phoneType(): string | undefined { - return this.singularNullable(VCARD.telephoneType, NamedNodeAs.string); + return OptionalFrom.subjectPredicate(this, VCARD.telephoneType, NamedNodeAs.string); } set phoneType(value: string | undefined) { - this.overwriteNullable(VCARD.telephoneType, value, NamedNodeFrom.string); + OptionalAs.object(this, VCARD.telephoneType, value, NamedNodeFrom.string); } } diff --git a/src/webid/Agent.ts b/src/webid/Agent.ts index 69df9ab..82267f3 100644 --- a/src/webid/Agent.ts +++ b/src/webid/Agent.ts @@ -1,25 +1,25 @@ -import { TermWrapper, LiteralAs, NamedNodeAs, NamedNodeFrom, TermAs } from "@rdfjs/wrapper" +import { LiteralAs, NamedNodeAs, NamedNodeFrom, OptionalFrom, SetFrom, TermAs, TermWrapper } 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, LiteralAs.string) + return OptionalFrom.subjectPredicate(this, VCARD.fn, LiteralAs.string) } get vcardHasUrl(): string | undefined { - return this.singularNullable(VCARD.hasUrl, NamedNodeAs.string) + return OptionalFrom.subjectPredicate(this, VCARD.hasUrl, NamedNodeAs.string) } get organization(): string | null { - return this.singularNullable(VCARD.organizationName, NamedNodeAs.string) ?? null + return OptionalFrom.subjectPredicate(this, VCARD.organizationName, NamedNodeAs.string) ?? null } get role(): string | null { - return this.singularNullable(VCARD.role, NamedNodeAs.string) ?? null + return OptionalFrom.subjectPredicate(this, VCARD.role, NamedNodeAs.string) ?? null } get title(): string | null { - return this.singularNullable(VCARD.title, LiteralAs.string) ?? null + return OptionalFrom.subjectPredicate(this, VCARD.title, LiteralAs.string) ?? null } get phone(): string | null { @@ -27,11 +27,11 @@ export class Agent extends TermWrapper { } get hasTelephone(): HasValue | undefined { - return this.singularNullable(VCARD.hasTelephone, TermAs.instance(HasValue)) + return OptionalFrom.subjectPredicate(this, VCARD.hasTelephone, TermAs.instance(HasValue)) } get foafName(): string | undefined { - return this.singularNullable(FOAF.name, LiteralAs.string) + return OptionalFrom.subjectPredicate(this, FOAF.name, LiteralAs.string) } get name(): string | null { @@ -44,7 +44,7 @@ export class Agent extends TermWrapper { } get foafHomepage(): string | undefined { - return this.singularNullable(FOAF.homepage, LiteralAs.string) + return OptionalFrom.subjectPredicate(this, 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, LiteralAs.string) ?? null + return OptionalFrom.subjectPredicate(this, VCARD.hasPhoto, LiteralAs.string) ?? null } get pimStorage(): Set { - return this.objects(PIM.storage, NamedNodeAs.string, NamedNodeFrom.string) + return SetFrom.subjectPredicate(this, PIM.storage, NamedNodeAs.string, NamedNodeFrom.string) } get solidStorage(): Set { - return this.objects(SOLID.storage, NamedNodeAs.string, NamedNodeFrom.string) + return SetFrom.subjectPredicate(this, SOLID.storage, NamedNodeAs.string, NamedNodeFrom.string) } get email(): string | null { @@ -68,11 +68,11 @@ export class Agent extends TermWrapper { } get hasEmail(): HasValue | undefined { - return this.singularNullable(VCARD.hasEmail, TermAs.instance(HasValue)) + return OptionalFrom.subjectPredicate(this, VCARD.hasEmail, TermAs.instance(HasValue)) } get knows(): Set { - return this.objects(FOAF.knows, NamedNodeAs.string, NamedNodeFrom.string) + return SetFrom.subjectPredicate(this, FOAF.knows, NamedNodeAs.string, NamedNodeFrom.string) } } @@ -82,6 +82,6 @@ class HasValue extends TermWrapper { } get hasValue(): string | undefined { - return this.singularNullable(VCARD.hasValue, NamedNodeAs.string) + return OptionalFrom.subjectPredicate(this, VCARD.hasValue, NamedNodeAs.string) } }