@lumina-study/user-settings
v1.0.0
Published
JSON schema and TypeScript types for Lumina Study user settings configuration
Maintainers
Readme
@lumina-study/user-settings
JSON schema and TypeScript types for Lumina Study user settings configuration.
Installation
pnpm add @lumina-study/user-settings
# or
npm install @lumina-study/user-settingsUsage
Using the JSON Schema
const schema = require('@lumina-study/user-settings');
// Use for validation with libraries like ajv
const Ajv = require('ajv');
const ajv = new Ajv();
const validate = ajv.compile(schema);
const userSettings = {
language: 'en',
degreeId: 'degree-123'
};
const valid = validate(userSettings);
if (!valid) {
console.error(validate.errors);
}Using TypeScript Types
import type { UserSettings } from '@lumina-study/user-settings';
const settings: UserSettings = {
language: 'en',
degreeId: 'degree-123'
};Schema
The user settings schema includes the following properties:
language (required): User interface language
- Type:
string - Allowed values:
"he","en" - Default:
"en"
- Type:
degreeId (optional): User's degree identifier
- Type:
string | null - Default:
null
- Type:
Development
Building
pnpm install
pnpm run buildThis will generate TypeScript types from the JSON schema.
Publishing
This package uses release-it for automated releases.
Automatic Release (on push to main)
Every push to the main branch automatically triggers a patch release (e.g., 0.1.0 → 0.1.1).
The workflow will:
- Run tests
- Build the package
- Bump the patch version
- Update CHANGELOG.md
- Create a git commit and tag
- Create a GitHub release
- Publish to npm
Note: Release commits from github-actions[bot] are automatically skipped to prevent infinite loops.
Manual Release (for minor/major versions)
To create a minor or major release:
- Go to the Actions tab
- Select the "Release" workflow
- Click "Run workflow"
- Choose the version increment:
- patch (0.1.0 → 0.1.1) - Bug fixes
- minor (0.1.0 → 0.2.0) - New features
- major (0.1.0 → 1.0.0) - Breaking changes
- Click "Run workflow"
Local Release (requires maintainer access)
# Dry run to see what would happen
pnpm run release:dry
# Create a specific release
pnpm run release patch # 0.1.0 -> 0.1.1
pnpm run release minor # 0.1.0 -> 0.2.0
pnpm run release major # 0.1.0 -> 1.0.0License
MIT
