Pure helpers for Solid pods — WebID profile, preferences, type indexes, and WAC ACL templates. Plus discovery functions and pure-function mutators for type index registrations.
No I/O. Every function takes plain JSON-LD (or config) and returns JSON-LD. Callers do the HTTP fetch/PUT or filesystem read/write.
Used by:
npm install @solid-helper/core
import { generateProfile } from '@solid-helper/core/profile';
const profile = generateProfile({
webId: 'https://example.com/alice/profile/card.jsonld#me',
name: 'Alice',
podUri: 'https://example.com/alice/',
issuer: 'https://example.com/'
});
// → JSON-LD with foaf:Person, isPrimaryTopicOf, publicTypeIndex, ...
import { generateTypeIndex } from '@solid-helper/core/type-index';
const publicTI = generateTypeIndex(
'https://example.com/alice/settings/publicTypeIndex.jsonld',
{ listed: true } // solid:ListedDocument
);
const privateTI = generateTypeIndex(
'https://example.com/alice/settings/privateTypeIndex.jsonld',
{ listed: false } // solid:UnlistedDocument
);
import { addRegistration } from '@solid-helper/core/type-index';
const { typeIndex: updated, id } = addRegistration(existingTi, {
forClass: 'http://www.w3.org/2005/01/wf/flow#Tracker',
instance: 'https://example.com/alice/public/tracker/work-data.jsonld#this'
});
// PUT `updated` back to the type index URL
import { findPublicTypeIndex, findStorage } from '@solid-helper/core/discover';
const ti = findPublicTypeIndex(profileJsonLd, webIdUrl);
const pod = findStorage(profileJsonLd, webIdUrl);
Handles three shapes commonly seen in the wild: compact (publicTypeIndex), prefixed (solid:publicTypeIndex), expanded IRI keys, and documents with @graph.
import {
generateOwnerAcl,
generatePrivateAcl,
generateInboxAcl,
generatePublicFolderAcl
} from '@solid-helper/core/acl';
| Import | Contents |
|---|---|
@solid-helper/core |
Everything |
@solid-helper/core/profile |
generateProfile, generatePreferences |
@solid-helper/core/type-index |
generateTypeIndex, parseRegistrations, findRegistrationsForClass, addRegistration, removeRegistration |
@solid-helper/core/acl |
generateOwnerAcl, generatePrivateAcl, generateInboxAcl, generatePublicFolderAcl |
@solid-helper/core/discover |
findPublicTypeIndex, findPrivateTypeIndex, findStorage, findInbox, findPreferencesFile, findOidcIssuer |
AGPL-3.0-or-later © Melvin Carvalho