From 1c6a9e0eb5f652c29458a7b26a3dd9c46bdc01fe Mon Sep 17 00:00:00 2001 From: Josh Field <10372036+HexaField@users.noreply.github.com> Date: Thu, 18 Jun 2026 18:34:59 +1000 Subject: [PATCH] refactor: replace resolveLanguage with resolveLiteral for typed RDF literals Companion to coasys/ad4m#842. The @coasys/ad4m SDK now uses `resolveLiteral: boolean` instead of `resolveLanguage: string`: - `resolveLiteral: false` for file-storage expressions (Community image/thumbnail, Post image) - Removed `resolveLanguage: 'literal'` where literal is now the default (TaskModel, docs) - Updated dynamic SHACL shape builder in NewClass to use new property name - Cleaned up unused FILE_STORAGE_LANGUAGE imports Co-Authored-By: Claude Opus 4.6 --- docs/src/create-flux-plugin/basics/subjects.md | 3 --- packages/api/src/community/index.ts | 7 +++---- packages/api/src/post/index.ts | 5 ++--- views/kanban-view/src/components/Board/TaskModel.ts | 1 - views/table-view/src/components/NewClass/NewClass.tsx | 2 +- 5 files changed, 6 insertions(+), 12 deletions(-) diff --git a/docs/src/create-flux-plugin/basics/subjects.md b/docs/src/create-flux-plugin/basics/subjects.md index ec28724eb..be91d42ca 100644 --- a/docs/src/create-flux-plugin/basics/subjects.md +++ b/docs/src/create-flux-plugin/basics/subjects.md @@ -48,21 +48,18 @@ export default class Todo { @Property({ through: 'rdf://title', writable: true, - resolveLanguage: 'literal', }) title: string; @Property({ through: 'rdf://description', writable: true, - resolveLanguage: 'literal', }) desc: string; @Property({ through: 'rdf://status', writable: true, - resolveLanguage: 'literal', }) done: boolean; } diff --git a/packages/api/src/community/index.ts b/packages/api/src/community/index.ts index 3e66c0505..789c1e800 100644 --- a/packages/api/src/community/index.ts +++ b/packages/api/src/community/index.ts @@ -1,9 +1,8 @@ import { Ad4mModel, HasMany, Flag, Model, Property, fileToDataUri } from '@coasys/ad4m'; -import { community, languages } from '@coasys/flux-constants'; +import { community } from '@coasys/flux-constants'; import { EntryType } from '@coasys/flux-types'; import Channel from '../channel'; -const { FILE_STORAGE_LANGUAGE } = languages; const { DESCRIPTION, IMAGE, NAME, THUMBNAIL, ENTRY_TYPE, CHANNEL } = community; interface FileData { @@ -25,14 +24,14 @@ export class Community extends Ad4mModel { @Property({ through: IMAGE, - resolveLanguage: FILE_STORAGE_LANGUAGE, + resolveLiteral: false, transform: fileToDataUri, }) image: string | FileData; @Property({ through: THUMBNAIL, - resolveLanguage: FILE_STORAGE_LANGUAGE, + resolveLiteral: false, transform: fileToDataUri, }) thumbnail: string | FileData; diff --git a/packages/api/src/post/index.ts b/packages/api/src/post/index.ts index 3bfef1d7e..f561a2b0a 100644 --- a/packages/api/src/post/index.ts +++ b/packages/api/src/post/index.ts @@ -1,11 +1,10 @@ import { Ad4mModel, HasMany, Flag, Model, Property, fileToDataUri } from '@coasys/ad4m'; -import { community, languages } from '@coasys/flux-constants'; +import { community } from '@coasys/flux-constants'; import { EntryType } from '@coasys/flux-types'; import Message from '../message'; const { BODY, IMAGE, TITLE, URL, ENTRY_TYPE } = community; -const { FILE_STORAGE_LANGUAGE } = languages; @Model({ name: 'Post' }) export class Post extends Ad4mModel { @@ -20,7 +19,7 @@ export class Post extends Ad4mModel { @Property({ through: IMAGE, - resolveLanguage: FILE_STORAGE_LANGUAGE, + resolveLiteral: false, transform: fileToDataUri, }) image: string; diff --git a/views/kanban-view/src/components/Board/TaskModel.ts b/views/kanban-view/src/components/Board/TaskModel.ts index e9c29e780..22aa6611d 100644 --- a/views/kanban-view/src/components/Board/TaskModel.ts +++ b/views/kanban-view/src/components/Board/TaskModel.ts @@ -4,7 +4,6 @@ import { Ad4mModel, Model, Property, HasMany } from '@coasys/ad4m'; export class Task extends Ad4mModel { @Property({ through: 'rdf://name', - resolveLanguage: 'literal', required: true, writable: true, initial: 'New task', diff --git a/views/table-view/src/components/NewClass/NewClass.tsx b/views/table-view/src/components/NewClass/NewClass.tsx index 0a7f22727..598175a18 100644 --- a/views/table-view/src/components/NewClass/NewClass.tsx +++ b/views/table-view/src/components/NewClass/NewClass.tsx @@ -248,7 +248,7 @@ async function buildSHACLShape( }; if (language) { - propShape.resolveLanguage = language; + propShape.resolveLiteral = false; } if (options.length > 0) {