@solid-helper/core
v0.0.2
Published
Pure helpers for Solid pods — profile, type index, ACL templates and mutators
Downloads
34
Maintainers
Readme
@solid-helper/core
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:
Install
npm install @solid-helper/coreQuick examples
Generate a WebID profile
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, ...Generate a type index
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
);Add a registration (pure)
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 URLDiscover predicates on a WebID profile
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.
WAC ACLs
import {
generateOwnerAcl,
generatePrivateAcl,
generateInboxAcl,
generatePublicFolderAcl
} from '@solid-helper/core/acl';Entry points
| 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 |
License
AGPL-3.0-or-later © Melvin Carvalho
