@almadar/orb 5.2.0 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +57 -19
  2. package/bin/{almadar → orb} +30 -24
  3. package/package.json +9 -9
  4. package/scripts/postinstall.js +25 -15
  5. package/shells/almadar-shell/package.json +1 -1
  6. package/shells/almadar-shell/packages/client/package.json +4 -4
  7. package/shells/almadar-shell/packages/server/package.json +1 -1
  8. package/shells/almadar-shell/pnpm-lock.yaml +53 -40
  9. package/shells/almadar-shell-hono/LICENSE +72 -0
  10. package/shells/almadar-shell-hono/README.md +25 -0
  11. package/shells/almadar-shell-hono/locales/en.json +120 -0
  12. package/shells/almadar-shell-hono/package.json +31 -0
  13. package/shells/almadar-shell-hono/packages/client/eslint.config.cjs +23 -0
  14. package/shells/almadar-shell-hono/packages/client/index.html +13 -0
  15. package/shells/almadar-shell-hono/packages/client/package-lock.json +9750 -0
  16. package/shells/almadar-shell-hono/packages/client/package.json +61 -0
  17. package/shells/almadar-shell-hono/packages/client/postcss.config.js +6 -0
  18. package/shells/almadar-shell-hono/packages/client/src/App.tsx +84 -0
  19. package/shells/almadar-shell-hono/packages/client/src/config/firebase.ts +37 -0
  20. package/shells/almadar-shell-hono/packages/client/src/features/auth/AuthContext.tsx +139 -0
  21. package/shells/almadar-shell-hono/packages/client/src/features/auth/authService.ts +83 -0
  22. package/shells/almadar-shell-hono/packages/client/src/features/auth/components/Login.tsx +218 -0
  23. package/shells/almadar-shell-hono/packages/client/src/features/auth/components/ProtectedRoute.tsx +27 -0
  24. package/shells/almadar-shell-hono/packages/client/src/features/auth/components/UserProfile.tsx +68 -0
  25. package/shells/almadar-shell-hono/packages/client/src/features/auth/components/index.ts +3 -0
  26. package/shells/almadar-shell-hono/packages/client/src/features/auth/index.ts +13 -0
  27. package/shells/almadar-shell-hono/packages/client/src/features/auth/types.ts +24 -0
  28. package/shells/almadar-shell-hono/packages/client/src/index.css +35 -0
  29. package/shells/almadar-shell-hono/packages/client/src/main.tsx +8 -0
  30. package/shells/almadar-shell-hono/packages/client/src/navigation/index.ts +55 -0
  31. package/shells/almadar-shell-hono/packages/client/src/pages/index.ts +12 -0
  32. package/shells/almadar-shell-hono/packages/client/tailwind-preset.cjs +259 -0
  33. package/shells/almadar-shell-hono/packages/client/tailwind.config.js +21 -0
  34. package/shells/almadar-shell-hono/packages/client/tsconfig.json +33 -0
  35. package/shells/almadar-shell-hono/packages/client/vite.config.ts +50 -0
  36. package/shells/almadar-shell-hono/packages/server/eslint.config.cjs +19 -0
  37. package/shells/almadar-shell-hono/packages/server/package.json +37 -0
  38. package/shells/almadar-shell-hono/packages/server/src/app.ts +31 -0
  39. package/shells/almadar-shell-hono/packages/server/src/index.ts +31 -0
  40. package/shells/almadar-shell-hono/packages/server/src/routes.ts +12 -0
  41. package/shells/almadar-shell-hono/packages/server/src/serve.ts +45 -0
  42. package/shells/almadar-shell-hono/packages/server/tsconfig.json +23 -0
  43. package/shells/almadar-shell-hono/packages/shared/package.json +25 -0
  44. package/shells/almadar-shell-hono/packages/shared/src/index.ts +2 -0
  45. package/shells/almadar-shell-hono/packages/shared/tsconfig.json +17 -0
  46. package/shells/almadar-shell-hono/packages/shared/tsup.config.ts +10 -0
  47. package/shells/almadar-shell-hono/pnpm-lock.yaml +9423 -0
  48. package/shells/almadar-shell-hono/pnpm-workspace.yaml +2 -0
  49. package/shells/almadar-shell-hono/tsup.config.ts +13 -0
  50. package/shells/almadar-shell-hono/turbo.json +17 -0
  51. package/shells/almadar-shell-hono/vitest.config.ts +8 -0
  52. package/shells/orb-shell/README.md +1 -1
  53. package/shells/orb-shell/packages/client/package.json +1 -1
  54. package/shells/orb-shell/pnpm-lock.yaml +196 -10
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Hono Application Setup
3
+ */
4
+
5
+ import { Hono } from 'hono';
6
+ import { cors } from 'hono/cors';
7
+ import {
8
+ errorHandler,
9
+ notFoundHandler,
10
+ debugEventsRouter,
11
+ type AppEnv,
12
+ } from '@almadar/server-hono';
13
+ import { registerRoutes } from './routes.js';
14
+
15
+ export const app = new Hono<AppEnv>();
16
+
17
+ // Middleware
18
+ app.use('*', cors({ origin: (origin) => origin, credentials: true }));
19
+
20
+ // Health check
21
+ app.get('/health', (c) => c.json({ status: 'ok' }));
22
+
23
+ // Debug event bus endpoints (dev-only, no-op in production)
24
+ app.route('/api/debug', debugEventsRouter());
25
+
26
+ // Register generated routes
27
+ registerRoutes(app);
28
+
29
+ // Error handling
30
+ app.notFound(notFoundHandler);
31
+ app.onError(errorHandler);
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Server Entry Point
3
+ */
4
+
5
+ import { initializeFirebase, env, logger } from '@almadar/server-hono';
6
+
7
+ // Initialize Firebase before anything else uses it
8
+ initializeFirebase();
9
+
10
+ import { serve } from '@hono/node-server';
11
+ import { app } from './app.js';
12
+
13
+ const PORT = env.PORT || 3030;
14
+
15
+ async function start(): Promise<void> {
16
+ // Seed mock data when USE_MOCK_DATA is enabled
17
+ if (env.USE_MOCK_DATA) {
18
+ try {
19
+ const { initializeMockData } = await import(/* @vite-ignore */ './seedMockData.js' as string);
20
+ await initializeMockData();
21
+ } catch {
22
+ logger.warn('seedMockData.ts not found - skipping mock data seeding');
23
+ }
24
+ }
25
+
26
+ serve({ fetch: app.fetch, port: PORT }, () => {
27
+ logger.info(`Server running on port ${PORT}`);
28
+ });
29
+ }
30
+
31
+ start();
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Route Registration
3
+ *
4
+ * Compiler generates route registration code here.
5
+ */
6
+
7
+ import type { Hono } from 'hono';
8
+ import type { AppEnv } from '@almadar/server-hono';
9
+
10
+ export function registerRoutes(_app: Hono<AppEnv>): void {
11
+ // {{GENERATED_ROUTE_REGISTRATION}}
12
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Bun-native server entry point for `orb serve`
3
+ *
4
+ * Serves both the Hono API and the built client static files.
5
+ * No @hono/node-server needed: Bun serves Hono natively.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+
10
+ import { env, logger } from '@almadar/server-hono';
11
+ import { app } from './app.js';
12
+ import { serveStatic } from 'hono/bun';
13
+ import { join } from 'path';
14
+
15
+ const PORT = Number(env.PORT) || 3030;
16
+ const clientDist = join(import.meta.dir, '../../client/dist');
17
+
18
+ // Seed mock data
19
+ if (env.USE_MOCK_DATA || env.NODE_ENV !== 'production') {
20
+ try {
21
+ const { initializeMockData } = await import(/* @vite-ignore */ './seedMockData.js' as string);
22
+ await initializeMockData();
23
+ } catch {
24
+ logger.warn('seedMockData.ts not found - skipping mock data seeding');
25
+ }
26
+ }
27
+
28
+ // Serve built client static files
29
+ app.use('/*', serveStatic({ root: clientDist }));
30
+
31
+ // SPA fallback: serve index.html for client-side routes
32
+ app.get('*', async (c) => {
33
+ const file = Bun.file(join(clientDist, 'index.html'));
34
+ if (await file.exists()) {
35
+ return c.html(await file.text());
36
+ }
37
+ return c.json({ error: 'Client not built' }, 404);
38
+ });
39
+
40
+ logger.info(`Server running on http://localhost:${PORT}`);
41
+
42
+ export default {
43
+ fetch: app.fetch,
44
+ port: PORT,
45
+ };
@@ -0,0 +1,23 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "ESNext",
5
+ "moduleResolution": "bundler",
6
+ "outDir": "./dist",
7
+ "strict": true,
8
+ "strictNullChecks": false,
9
+ "esModuleInterop": true,
10
+ "skipLibCheck": true,
11
+ "forceConsistentCasingInFileNames": true,
12
+ "declaration": true,
13
+ "declarationMap": true,
14
+ "baseUrl": ".",
15
+ "paths": {
16
+ "@/*": ["./src/*"],
17
+ "@app/shared": ["../shared/src/index.ts"],
18
+ "@app/shared/*": ["../shared/src/*"]
19
+ }
20
+ },
21
+ "include": ["src"],
22
+ "exclude": ["node_modules", "dist", "src/**/__tests__/**", "src/**/*.test.ts", "src/**/*.spec.ts"]
23
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "@almadar/shell-hono-shared",
3
+ "version": "1.0.0",
4
+ "private": true,
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.js",
11
+ "types": "./dist/index.d.ts"
12
+ }
13
+ },
14
+ "scripts": {
15
+ "build": "tsup",
16
+ "dev": "tsup --watch"
17
+ },
18
+ "dependencies": {
19
+ "zod": "^3.22.0"
20
+ },
21
+ "devDependencies": {
22
+ "tsup": "^8.0.0",
23
+ "typescript": "^5.7.0"
24
+ }
25
+ }
@@ -0,0 +1,2 @@
1
+ // Placeholder — the compiler generates actual shared types here.
2
+ export {};
@@ -0,0 +1,17 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "ESNext",
5
+ "moduleResolution": "bundler",
6
+ "outDir": "./dist",
7
+ "rootDir": "./src",
8
+ "strict": true,
9
+ "esModuleInterop": true,
10
+ "skipLibCheck": true,
11
+ "declaration": true,
12
+ "declarationMap": true,
13
+ "isolatedModules": true
14
+ },
15
+ "include": ["src"],
16
+ "exclude": ["node_modules", "dist"]
17
+ }
@@ -0,0 +1,10 @@
1
+ import { defineConfig } from 'tsup';
2
+
3
+ export default defineConfig({
4
+ entry: ['src/index.ts'],
5
+ format: ['esm'],
6
+ dts: true,
7
+ clean: true,
8
+ sourcemap: true,
9
+ splitting: false,
10
+ });