core

@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/core

Quick 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 URL

Discover 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