@almadar/shell 2.16.1 → 2.16.3
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.
- package/.env.example +17 -0
- package/.gitignore +31 -0
- package/locales/en.json +120 -0
- package/package.json +8 -2
- package/packages/client/dist/assets/index-B-wG_C4q.js +4157 -0
- package/packages/client/dist/assets/index-B-wG_C4q.js.map +1 -0
- package/packages/client/dist/assets/index-Ce2d2Q6W.js +7842 -0
- package/packages/client/dist/assets/index-Ce2d2Q6W.js.map +1 -0
- package/packages/client/dist/assets/index-DlMuyBNE.css +1 -0
- package/packages/client/dist/assets/index-x4KY6jHP.js +2 -0
- package/packages/client/dist/assets/index-x4KY6jHP.js.map +1 -0
- package/packages/client/dist/assets/leaflet-Dgihpmma.css +1 -0
- package/packages/client/dist/assets/leaflet-src-C9rI6ulw.js +5 -0
- package/packages/client/dist/assets/leaflet-src-C9rI6ulw.js.map +1 -0
- package/packages/client/dist/index.html +14 -0
- package/packages/client/eslint.config.cjs +56 -0
- package/packages/client/index.html +13 -0
- package/packages/client/node_modules/.bin/autoprefixer +21 -0
- package/packages/client/node_modules/.bin/eslint +21 -0
- package/packages/client/node_modules/.bin/tailwind +21 -0
- package/packages/client/node_modules/.bin/tailwindcss +21 -0
- package/packages/client/node_modules/.bin/tsc +21 -0
- package/packages/client/node_modules/.bin/tsserver +21 -0
- package/packages/client/node_modules/.bin/vite +21 -0
- package/packages/client/node_modules/.bin/vitest +21 -0
- package/packages/client/package.json +63 -0
- package/packages/client/postcss.config.js +6 -0
- package/packages/client/src/App.tsx +81 -0
- package/packages/client/src/config/firebase.ts +37 -0
- package/packages/client/src/features/auth/AuthContext.tsx +139 -0
- package/packages/client/src/features/auth/authService.ts +83 -0
- package/packages/client/src/features/auth/components/Login.tsx +218 -0
- package/packages/client/src/features/auth/components/ProtectedRoute.tsx +27 -0
- package/packages/client/src/features/auth/components/UserProfile.tsx +68 -0
- package/packages/client/src/features/auth/components/index.ts +3 -0
- package/packages/client/src/features/auth/index.ts +13 -0
- package/packages/client/src/features/auth/types.ts +24 -0
- package/packages/client/src/generated/index.ts +13 -0
- package/packages/client/src/index.css +19 -0
- package/packages/client/src/main.tsx +8 -0
- package/packages/client/src/navigation/index.ts +55 -0
- package/packages/client/src/pages/index.ts +12 -0
- package/packages/client/tailwind-preset.cjs +259 -0
- package/packages/client/tailwind.config.js +31 -0
- package/packages/client/tsconfig.json +33 -0
- package/packages/client/vite.config.ts +50 -0
- package/packages/server/dist/index.js +54 -0
- package/packages/server/eslint.config.cjs +23 -0
- package/packages/server/node_modules/.bin/esbuild +21 -0
- package/packages/server/node_modules/.bin/eslint +21 -0
- package/packages/server/node_modules/.bin/tsc +21 -0
- package/packages/server/node_modules/.bin/tsserver +21 -0
- package/packages/server/node_modules/.bin/tsx +21 -0
- package/packages/server/node_modules/.bin/vitest +21 -0
- package/packages/server/package.json +42 -0
- package/packages/server/pnpm-lock.yaml +4723 -0
- package/packages/server/src/app.ts +41 -0
- package/packages/server/src/index.ts +30 -0
- package/packages/server/src/routes.ts +11 -0
- package/packages/server/src/types/express.d.ts +17 -0
- package/packages/server/tsconfig.json +23 -0
- package/packages/shared/package.json +11 -0
- package/packages/shared/pnpm-lock.yaml +22 -0
- package/packages/shared/src/index.ts +2 -0
- package/pnpm-lock.yaml +8937 -0
- package/pnpm-workspace.yaml +2 -0
- package/turbo.json +17 -0
package/.env.example
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Server
|
|
2
|
+
PORT=3030
|
|
3
|
+
NODE_ENV=production
|
|
4
|
+
# Comma-separated allowlist of browser origins permitted to call the API.
|
|
5
|
+
CORS_ORIGIN=http://localhost:5173,http://localhost:5174
|
|
6
|
+
# LOCAL DEV ONLY — set to true to skip Firebase auth when no Bearer token is sent.
|
|
7
|
+
# Leave unset/false in any deployed environment (fail closed).
|
|
8
|
+
# ALLOW_DEV_AUTH_BYPASS=true
|
|
9
|
+
|
|
10
|
+
# Firebase (required for auth — use emulator for local dev)
|
|
11
|
+
FIRESTORE_EMULATOR_HOST=localhost:8080
|
|
12
|
+
# FIREBASE_PROJECT_ID=
|
|
13
|
+
# FIREBASE_CLIENT_EMAIL=
|
|
14
|
+
# FIREBASE_PRIVATE_KEY=
|
|
15
|
+
|
|
16
|
+
# Client (set in packages/client/.env)
|
|
17
|
+
# VITE_API_URL=http://localhost:3030
|
package/.gitignore
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Turbo
|
|
2
|
+
.turbo/
|
|
3
|
+
|
|
4
|
+
# Node
|
|
5
|
+
node_modules/
|
|
6
|
+
*.log
|
|
7
|
+
|
|
8
|
+
# Build output
|
|
9
|
+
dist/
|
|
10
|
+
|
|
11
|
+
# Environment
|
|
12
|
+
.env
|
|
13
|
+
.env.local
|
|
14
|
+
.env.*.local
|
|
15
|
+
|
|
16
|
+
# Editor
|
|
17
|
+
.vscode/
|
|
18
|
+
.idea/
|
|
19
|
+
*.swp
|
|
20
|
+
*.swo
|
|
21
|
+
|
|
22
|
+
# OS
|
|
23
|
+
.DS_Store
|
|
24
|
+
Thumbs.db
|
|
25
|
+
|
|
26
|
+
# Test coverage
|
|
27
|
+
coverage/
|
|
28
|
+
.nyc_output/
|
|
29
|
+
|
|
30
|
+
# Lock files (regenerated on install)
|
|
31
|
+
package-lock.json
|
package/locales/en.json
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$meta": { "locale": "en", "direction": "ltr" },
|
|
3
|
+
|
|
4
|
+
"common.save": "Save",
|
|
5
|
+
"common.cancel": "Cancel",
|
|
6
|
+
"common.delete": "Delete",
|
|
7
|
+
"common.close": "Close",
|
|
8
|
+
"common.confirm": "Are you sure?",
|
|
9
|
+
"common.create": "Create",
|
|
10
|
+
"common.edit": "Edit",
|
|
11
|
+
"common.view": "View",
|
|
12
|
+
"common.add": "Add",
|
|
13
|
+
"common.remove": "Remove",
|
|
14
|
+
"common.search": "Search...",
|
|
15
|
+
"common.filter": "Filter",
|
|
16
|
+
"common.actions": "Actions",
|
|
17
|
+
"common.yes": "Yes",
|
|
18
|
+
"common.no": "No",
|
|
19
|
+
"common.ok": "OK",
|
|
20
|
+
"common.done": "Done",
|
|
21
|
+
"common.apply": "Apply",
|
|
22
|
+
"common.reset": "Reset",
|
|
23
|
+
"common.refresh": "Refresh",
|
|
24
|
+
"common.export": "Export",
|
|
25
|
+
"common.import": "Import",
|
|
26
|
+
"common.copy": "Copy",
|
|
27
|
+
"common.settings": "Settings",
|
|
28
|
+
|
|
29
|
+
"nav.previous": "Previous",
|
|
30
|
+
"nav.next": "Next",
|
|
31
|
+
"nav.back": "Back",
|
|
32
|
+
"nav.home": "Home",
|
|
33
|
+
|
|
34
|
+
"form.submit": "Submit",
|
|
35
|
+
"form.saving": "Saving...",
|
|
36
|
+
"form.required": "This field is required",
|
|
37
|
+
"form.invalidEmail": "Enter a valid email address",
|
|
38
|
+
"form.selectPlaceholder": "Select {{label}}...",
|
|
39
|
+
"form.searchPlaceholder": "Search {{entity}}...",
|
|
40
|
+
|
|
41
|
+
"table.empty.title": "No items found",
|
|
42
|
+
"table.empty.description": "No items to display.",
|
|
43
|
+
"table.search.placeholder": "Search...",
|
|
44
|
+
"table.pagination.showing": "Showing {{start}} to {{end}} of {{total}} results",
|
|
45
|
+
"table.pagination.page": "Page {{page}} of {{totalPages}}",
|
|
46
|
+
"table.bulk.selected": "{{count}} selected",
|
|
47
|
+
"table.loading": "Loading...",
|
|
48
|
+
|
|
49
|
+
"status.loading": "Loading...",
|
|
50
|
+
"status.scheduled": "Scheduled",
|
|
51
|
+
"status.inProgress": "In Progress",
|
|
52
|
+
"status.completed": "Completed",
|
|
53
|
+
"status.cancelled": "Cancelled",
|
|
54
|
+
"status.pending": "Pending",
|
|
55
|
+
"status.active": "Active",
|
|
56
|
+
"status.inactive": "Inactive",
|
|
57
|
+
"status.draft": "Draft",
|
|
58
|
+
"status.archived": "Archived",
|
|
59
|
+
|
|
60
|
+
"error.generic": "Something went wrong",
|
|
61
|
+
"error.retry": "Try again",
|
|
62
|
+
"error.notFound": "Not found",
|
|
63
|
+
"error.loadFailed": "Failed to load: {{message}}",
|
|
64
|
+
"error.configMissing": "Configuration not found for: {{id}}",
|
|
65
|
+
|
|
66
|
+
"common.loading": "Loading...",
|
|
67
|
+
"common.showMore": "Show More",
|
|
68
|
+
"common.showLess": "Show Less",
|
|
69
|
+
"common.noResults": "No results found",
|
|
70
|
+
"common.saveChanges": "Save Changes",
|
|
71
|
+
"common.retry": "Retry",
|
|
72
|
+
"common.open": "Open",
|
|
73
|
+
"common.back": "Back",
|
|
74
|
+
|
|
75
|
+
"empty.noItems": "No items",
|
|
76
|
+
"empty.noData": "No data available",
|
|
77
|
+
"empty.noItemsYet": "No items yet",
|
|
78
|
+
"empty.noItemsAdded": "No items added yet",
|
|
79
|
+
"empty.noOptionsFound": "No options found",
|
|
80
|
+
|
|
81
|
+
"list.addItemPlaceholder": "Add new item...",
|
|
82
|
+
|
|
83
|
+
"error.occurred": "An error occurred",
|
|
84
|
+
"error.failedToLoad": "Failed to load data",
|
|
85
|
+
|
|
86
|
+
"wizard.back": "Back",
|
|
87
|
+
"wizard.next": "Next",
|
|
88
|
+
"wizard.complete": "Complete",
|
|
89
|
+
"wizard.stepOf": "Step {{current}} of {{total}}",
|
|
90
|
+
|
|
91
|
+
"pagination.previous": "Previous",
|
|
92
|
+
"pagination.next": "Next",
|
|
93
|
+
"pagination.total": "Total:",
|
|
94
|
+
"pagination.show": "Show:",
|
|
95
|
+
"pagination.goTo": "Go to:",
|
|
96
|
+
"pagination.go": "Go",
|
|
97
|
+
|
|
98
|
+
"auth.signIn": "Sign in",
|
|
99
|
+
"auth.signOut": "Sign out",
|
|
100
|
+
|
|
101
|
+
"dialog.confirm": "Confirm",
|
|
102
|
+
"dialog.cancel": "Cancel",
|
|
103
|
+
"dialog.loading": "Loading...",
|
|
104
|
+
"dialog.delete.title": "Delete {{item}}?",
|
|
105
|
+
"dialog.delete.message": "This action cannot be undone.",
|
|
106
|
+
|
|
107
|
+
"trait.availableActions": "Available Actions",
|
|
108
|
+
"trait.transitions": "Transitions",
|
|
109
|
+
"trait.availableNow": "Available now",
|
|
110
|
+
|
|
111
|
+
"book.startReading": "Start Reading",
|
|
112
|
+
"book.tableOfContents": "Table of Contents",
|
|
113
|
+
"book.partNumber": "Part {{number}}",
|
|
114
|
+
"book.print": "Print",
|
|
115
|
+
"book.previousPage": "Previous page",
|
|
116
|
+
"book.nextPage": "Next page",
|
|
117
|
+
|
|
118
|
+
"quiz.showAnswer": "Show answer",
|
|
119
|
+
"quiz.hideAnswer": "Hide answer"
|
|
120
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@almadar/shell",
|
|
3
|
-
"version": "2.16.
|
|
3
|
+
"version": "2.16.3",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Minimal full-stack shell template for Almadar applications",
|
|
6
6
|
"devDependencies": {
|
|
@@ -8,7 +8,13 @@
|
|
|
8
8
|
"turbo": "^2.8.17"
|
|
9
9
|
},
|
|
10
10
|
"files": [
|
|
11
|
-
"
|
|
11
|
+
"packages",
|
|
12
|
+
"locales",
|
|
13
|
+
"pnpm-workspace.yaml",
|
|
14
|
+
"turbo.json",
|
|
15
|
+
"pnpm-lock.yaml",
|
|
16
|
+
".env.example",
|
|
17
|
+
".gitignore"
|
|
12
18
|
],
|
|
13
19
|
"repository": {
|
|
14
20
|
"type": "git",
|