diff --git a/next.config.ts b/next.config.ts index 73ad8fc61..3ffe1615a 100644 --- a/next.config.ts +++ b/next.config.ts @@ -22,6 +22,7 @@ const nextConfig: NextConfig = { '@mirrorbuddy/i18n', '@mirrorbuddy/utils', '@mirrorbuddy/tier', + '@mirrorbuddy/safety', ], // Enable standalone output for Docker deployment // Creates .next/standalone with minimal server.js for production diff --git a/package.json b/package.json index e829ffb87..35fb2e6a9 100644 --- a/package.json +++ b/package.json @@ -119,6 +119,7 @@ "@mirrorbuddy/greeting": "workspace:*", "@mirrorbuddy/i18n": "workspace:*", "@mirrorbuddy/logger": "workspace:*", + "@mirrorbuddy/safety": "workspace:*", "@mirrorbuddy/tier": "workspace:*", "@mirrorbuddy/types": "workspace:*", "@mirrorbuddy/utils": "workspace:*", diff --git a/packages/safety/package.json b/packages/safety/package.json new file mode 100644 index 000000000..9638842df --- /dev/null +++ b/packages/safety/package.json @@ -0,0 +1,34 @@ +{ + "name": "@mirrorbuddy/safety", + "version": "0.1.0", + "private": true, + "description": "Child-safety guardrails for MirrorBuddy (reversed-shim — canonical impl in src/lib/safety)", + "license": "Apache-2.0", + "main": "./src/index.ts", + "types": "./src/index.ts", + "exports": { + ".": { + "types": "./src/index.ts", + "default": "./src/index.ts" + }, + "./server": { + "types": "./src/server.ts", + "default": "./src/server.ts" + } + }, + "files": [ + "src" + ], + "scripts": { + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "@mirrorbuddy/db": "workspace:*", + "@mirrorbuddy/greeting": "workspace:*", + "@mirrorbuddy/logger": "workspace:*", + "@mirrorbuddy/types": "workspace:*" + }, + "devDependencies": { + "typescript": "^5" + } +} diff --git a/packages/safety/src/index.ts b/packages/safety/src/index.ts new file mode 100644 index 000000000..5f02fb7a5 --- /dev/null +++ b/packages/safety/src/index.ts @@ -0,0 +1,4 @@ +// @mirrorbuddy/safety — reversed-shim entry. +// Canonical implementation lives at src/lib/safety during W3 migration +// (see CONTRIBUTING-MONOREPO.md §Test-arch). +export * from '../../../src/lib/safety'; diff --git a/packages/safety/src/server.ts b/packages/safety/src/server.ts new file mode 100644 index 000000000..53ae2e09a --- /dev/null +++ b/packages/safety/src/server.ts @@ -0,0 +1,3 @@ +// @mirrorbuddy/safety/server — server-only reversed-shim entry. +// See ./index.ts for rationale. +export * from '../../../src/lib/safety/server'; diff --git a/packages/safety/tsconfig.json b/packages/safety/tsconfig.json new file mode 100644 index 000000000..90eac1000 --- /dev/null +++ b/packages/safety/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "noEmit": true, + "declaration": false, + "composite": false + }, + "include": ["src/**/*", "../../src/lib/safety/**/*"], + "exclude": ["dist", "node_modules"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b40306a28..faa77d072 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -44,6 +44,9 @@ importers: '@mirrorbuddy/logger': specifier: workspace:* version: link:packages/logger + '@mirrorbuddy/safety': + specifier: workspace:* + version: link:packages/safety '@mirrorbuddy/tier': specifier: workspace:* version: link:packages/tier @@ -445,6 +448,25 @@ importers: specifier: ^5 version: 5.9.3 + packages/safety: + dependencies: + '@mirrorbuddy/db': + specifier: workspace:* + version: link:../db + '@mirrorbuddy/greeting': + specifier: workspace:* + version: link:../greeting + '@mirrorbuddy/logger': + specifier: workspace:* + version: link:../logger + '@mirrorbuddy/types': + specifier: workspace:* + version: link:../types + devDependencies: + typescript: + specifier: ^5 + version: 5.9.3 + packages/tier: dependencies: '@mirrorbuddy/types':