CI / verify (pull_request) Successful in 1m10s
CI / infrastructure-smoke (pull_request) Successful in 34s
CI / package-release (pull_request) Successful in 50s
CI / migration-smoke (pull_request) Successful in 2m26s
CI / image-build (pull_request) Successful in 1m12s
CI / deploy-smoke (same-origin) (pull_request) Successful in 42s
CI / package-publication (pull_request) Successful in 54s
CI / deploy-smoke (split) (pull_request) Successful in 3m17s
Stage 1 PR 6 (ADR 0062). /account shows who is signed in; /account/appearance chooses System, Light, or Dark and reduced motion (System, Reduce, Allow). - Core: ekklesia_core_user_preference, one typed, CHECK-constrained, nullable column per preference (null = never chosen), migration 0008_user_preferences (additive), @ekklesia/core/account store, and the authenticated-baseline permission core.account.self.manage. - API: GET /api/v1/account (name, email, preferences) and partial PATCH /api/v1/account/preferences, self-only by construction: no user id is accepted anywhere; trusted Origin and body limit on the mutation. - Shell: the account control shows name, email, and initials (never the unvetted image URL) and offers Account, Appearance, Sign out; native radio groups apply a choice at once through the ADR 0060 controller and save it; the server's answer wins and a failed save reverts. - First paint: a classic, same-origin, render-blocking appearance.js in <head> applies a two-word localStorage cache before paint (no inline script, CSP unchanged). The account replaces the cache on every load, sign-out clears it, and other tabs follow via the storage event. - Deploy smoke: real-Chromium checks for light/dark, OS emulation, overrides, reload persistence, pre-paint, Shadow DOM modules, reduced motion, the display staying light, and phone width; the browser container gets a 512 MiB /dev/shm so a long session no longer fails requests with ERR_INSUFFICIENT_RESOURCES. Co-Authored-By: Claude Opus 5.5 <[email protected]>
97 lines
2.6 KiB
JSON
97 lines
2.6 KiB
JSON
{
|
|
"name": "@ekklesia/core",
|
|
"version": "0.2.5",
|
|
"license": "AGPL-3.0-or-later",
|
|
"private": true,
|
|
"type": "module",
|
|
"files": [
|
|
"dist"
|
|
],
|
|
"exports": {
|
|
".": {
|
|
"types": "./dist/index.d.ts",
|
|
"import": "./dist/index.js"
|
|
},
|
|
"./account": {
|
|
"types": "./dist/account/index.d.ts",
|
|
"import": "./dist/account/index.js"
|
|
},
|
|
"./modules": {
|
|
"types": "./dist/modules/index.d.ts",
|
|
"import": "./dist/modules/index.js"
|
|
},
|
|
"./storage": {
|
|
"types": "./dist/storage/index.d.ts",
|
|
"import": "./dist/storage/index.js"
|
|
},
|
|
"./dashboard": {
|
|
"types": "./dist/dashboard/index.d.ts",
|
|
"import": "./dist/dashboard/index.js"
|
|
},
|
|
"./migrations": {
|
|
"types": "./dist/migrations/index.d.ts",
|
|
"import": "./dist/migrations/index.js"
|
|
},
|
|
"./diagnostics": {
|
|
"types": "./dist/diagnostics/index.d.ts",
|
|
"import": "./dist/diagnostics/index.js"
|
|
},
|
|
"./identity": {
|
|
"types": "./dist/identity/index.d.ts",
|
|
"import": "./dist/identity/index.js"
|
|
},
|
|
"./authorization": {
|
|
"types": "./dist/authorization/index.d.ts",
|
|
"import": "./dist/authorization/index.js"
|
|
},
|
|
"./database": {
|
|
"types": "./dist/database/index.d.ts",
|
|
"import": "./dist/database/index.js"
|
|
},
|
|
"./devices": {
|
|
"types": "./dist/devices/index.d.ts",
|
|
"import": "./dist/devices/index.js"
|
|
},
|
|
"./mail": {
|
|
"types": "./dist/mail/index.d.ts",
|
|
"import": "./dist/mail/index.js"
|
|
},
|
|
"./host": {
|
|
"types": "./dist/host/index.d.ts",
|
|
"import": "./dist/host/index.js"
|
|
}
|
|
},
|
|
"scripts": {
|
|
"build": "tsc --project tsconfig.build.json",
|
|
"identity:migration:generate": "drizzle-kit generate --config=drizzle.config.ts",
|
|
"identity:schema:generate": "auth generate --config=identity-schema-generator.config.ts --output=.identity-schema-reference.ts -y",
|
|
"lint": "biome lint .",
|
|
"test": "vitest run",
|
|
"typecheck": "tsc --noEmit --project tsconfig.json"
|
|
},
|
|
"dependencies": {
|
|
"@aws-sdk/client-s3": "3.1116.0",
|
|
"@aws-sdk/s3-request-presigner": "3.1116.0",
|
|
"@ekklesia/contracts": "workspace:*",
|
|
"better-auth": "1.6.23",
|
|
"drizzle-orm": "0.45.2",
|
|
"nodemailer": "9.0.5",
|
|
"pg": "8.22.0"
|
|
},
|
|
"devDependencies": {
|
|
"@biomejs/biome": "2.5.3",
|
|
"@types/node": "24.13.3",
|
|
"@types/nodemailer": "8.0.1",
|
|
"@types/pg": "8.20.0",
|
|
"@types/smtp-server": "3.5.13",
|
|
"auth": "1.6.23",
|
|
"drizzle-kit": "0.31.10",
|
|
"smtp-server": "3.19.3",
|
|
"typescript": "7.0.2",
|
|
"vitest": "4.1.10"
|
|
},
|
|
"ekklesia": {
|
|
"layer": "core"
|
|
}
|
|
}
|