eid-salami 1.0.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 (65) hide show
  1. package/DEPLOY.md +199 -0
  2. package/README.md +133 -0
  3. package/backend/.env.example +25 -0
  4. package/backend/.keystone_temp/admin/next.config.js +14 -0
  5. package/backend/.keystone_temp/admin/pages/_app.js +22 -0
  6. package/backend/.keystone_temp/admin/pages/index.js +1 -0
  7. package/backend/.keystone_temp/admin/pages/init.js +5 -0
  8. package/backend/.keystone_temp/admin/pages/no-access.js +3 -0
  9. package/backend/.keystone_temp/admin/pages/orders/[id].js +3 -0
  10. package/backend/.keystone_temp/admin/pages/orders/create.js +3 -0
  11. package/backend/.keystone_temp/admin/pages/orders/index.js +3 -0
  12. package/backend/.keystone_temp/admin/pages/salami-packages/[id].js +3 -0
  13. package/backend/.keystone_temp/admin/pages/salami-packages/create.js +3 -0
  14. package/backend/.keystone_temp/admin/pages/salami-packages/index.js +3 -0
  15. package/backend/.keystone_temp/admin/pages/signin.js +3 -0
  16. package/backend/.keystone_temp/admin/pages/users/[id].js +3 -0
  17. package/backend/.keystone_temp/admin/pages/users/create.js +3 -0
  18. package/backend/.keystone_temp/admin/pages/users/index.js +3 -0
  19. package/backend/.keystone_temp/admin/public/favicon.ico +0 -0
  20. package/backend/.keystone_temp/config.js +369 -0
  21. package/backend/.keystone_temp/config.js.map +7 -0
  22. package/backend/bkash/bkash.service.ts +184 -0
  23. package/backend/keystone/routes.ts +193 -0
  24. package/backend/keystone/schema.ts +143 -0
  25. package/backend/keystone.ts +54 -0
  26. package/backend/package.json +23 -0
  27. package/backend/schema.graphql +530 -0
  28. package/backend/schema.prisma +55 -0
  29. package/backend/seed.ts +53 -0
  30. package/backend/tsconfig.json +15 -0
  31. package/frontend/.env.example +6 -0
  32. package/frontend/index.html +16 -0
  33. package/frontend/package.json +24 -0
  34. package/frontend/src/App.js +11 -0
  35. package/frontend/src/App.tsx +22 -0
  36. package/frontend/src/api/client.js +11 -0
  37. package/frontend/src/api/client.ts +57 -0
  38. package/frontend/src/components/Footer.js +5 -0
  39. package/frontend/src/components/Footer.module.css +27 -0
  40. package/frontend/src/components/Footer.tsx +13 -0
  41. package/frontend/src/components/Navbar.js +6 -0
  42. package/frontend/src/components/Navbar.module.css +54 -0
  43. package/frontend/src/components/Navbar.tsx +16 -0
  44. package/frontend/src/components/PackageCard.js +5 -0
  45. package/frontend/src/components/PackageCard.module.css +64 -0
  46. package/frontend/src/components/PackageCard.tsx +24 -0
  47. package/frontend/src/main.js +7 -0
  48. package/frontend/src/main.tsx +13 -0
  49. package/frontend/src/pages/HomePage.js +31 -0
  50. package/frontend/src/pages/HomePage.module.css +416 -0
  51. package/frontend/src/pages/HomePage.tsx +146 -0
  52. package/frontend/src/pages/OrderPage.js +98 -0
  53. package/frontend/src/pages/OrderPage.module.css +624 -0
  54. package/frontend/src/pages/OrderPage.tsx +221 -0
  55. package/frontend/src/pages/PaymentCallbackPage.js +25 -0
  56. package/frontend/src/pages/PaymentCallbackPage.module.css +38 -0
  57. package/frontend/src/pages/PaymentCallbackPage.tsx +37 -0
  58. package/frontend/src/pages/PaymentResultPage.js +28 -0
  59. package/frontend/src/pages/PaymentResultPage.module.css +182 -0
  60. package/frontend/src/pages/PaymentResultPage.tsx +92 -0
  61. package/frontend/src/styles/global.css +66 -0
  62. package/frontend/src/vite-env.d.ts +5 -0
  63. package/frontend/tsconfig.json +15 -0
  64. package/frontend/vite.config.ts +15 -0
  65. package/package.json +14 -0
package/DEPLOY.md ADDED
@@ -0,0 +1,199 @@
1
+ # 🚀 cPanel Deployment Guide
2
+
3
+ ## Overview
4
+
5
+ | Part | Where | How |
6
+ |---|---|---|
7
+ | **Backend** (KeystoneJS API) | cPanel Node.js App | Runs as a Node.js application |
8
+ | **Frontend** (React) | cPanel public_html | Static files uploaded via File Manager |
9
+ | **Database** | PostgreSQL | cPanel PostgreSQL OR Neon.tech (free) |
10
+
11
+ ---
12
+
13
+ ## Step 1 — Set up PostgreSQL database
14
+
15
+ ### Option A: cPanel has PostgreSQL
16
+ 1. Go to cPanel → **PostgreSQL Databases**
17
+ 2. Create a new database e.g. `myuser_eidsalami`
18
+ 3. Create a database user with a strong password
19
+ 4. Add the user to the database with **All Privileges**
20
+ 5. Your connection URL will be:
21
+ ```
22
+ postgresql://myuser_dbuser:PASSWORD@localhost:5432/myuser_eidsalami
23
+ ```
24
+
25
+ ### Option B: cPanel only has MySQL → use Neon.tech (free)
26
+ 1. Go to [neon.tech](https://neon.tech) and sign up free
27
+ 2. Create a new project called `eid-salami`
28
+ 3. Copy the connection string — it looks like:
29
+ ```
30
+ postgresql://user:pass@ep-xxx.us-east-1.aws.neon.tech/neondb?sslmode=require
31
+ ```
32
+
33
+ ---
34
+
35
+ ## Step 2 — Upload & configure the backend
36
+
37
+ ### 2a. Upload files
38
+ 1. In cPanel → **File Manager**, go to your home directory (not public_html)
39
+ 2. Create a folder called `eid-salami-backend`
40
+ 3. Upload everything from the `backend/` folder into it
41
+ 4. Also upload `package.json` from the root (the workspace one is not needed — just the backend one)
42
+
43
+ Your server structure should look like:
44
+ ```
45
+ /home/yourusername/
46
+ eid-salami-backend/
47
+ keystone.ts
48
+ keystone/
49
+ bkash/
50
+ package.json
51
+ tsconfig.json
52
+ .env ← you'll create this next
53
+ ```
54
+
55
+ ### 2b. Create .env file
56
+ In File Manager, create a new file called `.env` inside `eid-salami-backend/`:
57
+
58
+ ```env
59
+ DATABASE_URL=postgresql://YOUR_USER:YOUR_PASSWORD@localhost:5432/YOUR_DB
60
+ SESSION_SECRET=paste_any_long_random_string_here_minimum_32_characters
61
+ BKASH_PERSONAL_NUMBER=01XXXXXXXXX
62
+ FRONTEND_URL=https://yourdomain.com
63
+ PORT=3000
64
+ NODE_ENV=production
65
+ ```
66
+
67
+ > ⚠️ Replace all values with your real ones. Never share this file.
68
+
69
+ ---
70
+
71
+ ## Step 3 — Set up Node.js app in cPanel
72
+
73
+ 1. Go to cPanel → **Setup Node.js App**
74
+ 2. Click **Create Application**
75
+ 3. Fill in:
76
+ - **Node.js version:** 18
77
+ - **Application mode:** Production
78
+ - **Application root:** `eid-salami-backend`
79
+ - **Application URL:** `api.yourdomain.com` (or `yourdomain.com/api`)
80
+ - **Application startup file:** `node_modules/.bin/keystone`
81
+ 4. Click **Create**
82
+
83
+ ### 2. Install dependencies via cPanel terminal
84
+ In cPanel → **Terminal** (or SSH):
85
+
86
+ ```bash
87
+ cd ~/eid-salami-backend
88
+ npm install
89
+ ```
90
+
91
+ ### 3. Build KeystoneJS
92
+ ```bash
93
+ npm run build
94
+ ```
95
+
96
+ ### 4. Run database migrations
97
+ ```bash
98
+ npx keystone prisma migrate deploy
99
+ ```
100
+
101
+ ### 5. Start the app
102
+ Go back to **Setup Node.js App** → click **Run JS Script** or just **Restart**.
103
+
104
+ ### 6. Create your admin account
105
+ Visit `https://api.yourdomain.com/keystonejs` — it will ask you to create the first admin user.
106
+
107
+ ### 7. Seed packages
108
+ In terminal:
109
+ ```bash
110
+ cd ~/eid-salami-backend
111
+ node -e "
112
+ const fetch = (...args) => import('node-fetch').then(({default: f}) => f(...args));
113
+ // Run seed
114
+ "
115
+ ```
116
+ Or just create packages manually from the admin panel.
117
+
118
+ ---
119
+
120
+ ## Step 4 — Build & upload the frontend
121
+
122
+ ### On your LOCAL computer:
123
+
124
+ 1. Create `frontend/.env` file:
125
+ ```env
126
+ VITE_API_URL=https://api.yourdomain.com
127
+ ```
128
+
129
+ 2. Build the frontend:
130
+ ```bash
131
+ cd frontend
132
+ npm install
133
+ npm run build
134
+ ```
135
+
136
+ 3. This creates a `frontend/dist/` folder.
137
+
138
+ ### Upload to cPanel:
139
+ 1. Go to cPanel → **File Manager** → `public_html`
140
+ 2. Upload all files from `frontend/dist/` directly into `public_html`
141
+ 3. Make sure `index.html` is in the root of `public_html`
142
+
143
+ ---
144
+
145
+ ## Step 5 — Fix React Router (important!)
146
+
147
+ React Router needs all URLs to serve `index.html`. Create a `.htaccess` file in `public_html`:
148
+
149
+ ```apache
150
+ Options -MultiViews
151
+ RewriteEngine On
152
+ RewriteCond %{REQUEST_FILENAME} !-f
153
+ RewriteCond %{REQUEST_FILENAME} !-d
154
+ RewriteRule ^ index.html [QSA,L]
155
+ ```
156
+
157
+ ---
158
+
159
+ ## Step 6 — Test everything
160
+
161
+ 1. Visit `https://yourdomain.com` — you should see the homepage
162
+ 2. Try placing a test order end-to-end
163
+ 3. Check `https://api.yourdomain.com/keystonejs` — admin panel should work
164
+ 4. Verify orders appear in admin panel after submission
165
+
166
+ ---
167
+
168
+ ## 🔁 How to update the site later
169
+
170
+ **Backend changes:**
171
+ ```bash
172
+ # In cPanel Terminal
173
+ cd ~/eid-salami-backend
174
+ # Upload new files, then:
175
+ npm install
176
+ npm run build
177
+ # Restart app in Setup Node.js App
178
+ ```
179
+
180
+ **Frontend changes:**
181
+ ```bash
182
+ # On your local computer
183
+ cd frontend
184
+ npm run build
185
+ # Upload dist/ contents to public_html again
186
+ ```
187
+
188
+ ---
189
+
190
+ ## 🛑 Common problems
191
+
192
+ | Problem | Fix |
193
+ |---|---|
194
+ | `Cannot find module` | Run `npm install` again in terminal |
195
+ | Database connection error | Double-check DATABASE_URL in .env |
196
+ | Admin panel shows blank | Check FRONTEND_URL in .env matches your domain exactly |
197
+ | Frontend shows old version | Clear browser cache (Ctrl+Shift+R) |
198
+ | 404 on page refresh | Make sure .htaccess file is in public_html |
199
+ | Port already in use | Change PORT in .env, update in cPanel Node.js App settings |
package/README.md ADDED
@@ -0,0 +1,133 @@
1
+ # 🌙 ঈদ সালামি — Eid Salami Platform
2
+
3
+ Send Eid Salami to loved ones via **bKash Personal** — no merchant account needed.
4
+
5
+ ---
6
+
7
+ ## 🏗️ Architecture
8
+
9
+ ```
10
+ eid-salami/
11
+ ├── backend/ # KeystoneJS + Node.js + TypeScript
12
+ │ ├── keystone.ts # App config (MongoDB, sessions, CORS)
13
+ │ ├── keystone/
14
+ │ │ ├── schema.ts # Models: User, SalamiPackage, Order
15
+ │ │ └── routes.ts # REST: create order, submit TrxID, get order/packages
16
+ │ └── seed.ts # Seed default packages
17
+
18
+ └── frontend/ # Vite + React + TypeScript
19
+ └── src/
20
+ ├── api/client.ts # Axios client
21
+ ├── pages/
22
+ │ ├── HomePage.tsx # Landing page
23
+ │ └── OrderPage.tsx # 4-step order form
24
+ └── components/
25
+ ├── Navbar / Footer / PackageCard
26
+ ```
27
+
28
+ ---
29
+
30
+ ## 💳 Payment Flow (bKash Personal)
31
+
32
+ ```
33
+ 1. User picks package + fills details
34
+
35
+ 2. POST /api/orders/create
36
+ → Order saved (status: pending)
37
+ → Returns your bKash number + amount
38
+
39
+ 3. User sends money via bKash app to YOUR number
40
+ then pastes TrxID into the form
41
+
42
+ 4. POST /api/orders/submit-trxid
43
+ → Order updated (status: pending_verification)
44
+
45
+ 5. YOU open KeystoneJS admin panel
46
+ → Check your bKash inbox for the TrxID
47
+ → Set paymentStatus = "completed"
48
+ → Set deliveryStatus = "sent"
49
+ ```
50
+
51
+ ---
52
+
53
+ ## 🚀 Quick Start
54
+
55
+ ### 1. Install
56
+
57
+ ```bash
58
+ npm install # from root (installs both workspaces)
59
+ ```
60
+
61
+ ### 2. Configure backend
62
+
63
+ ```bash
64
+ cd backend
65
+ cp .env.example .env
66
+ ```
67
+
68
+ Edit `.env`:
69
+
70
+ ```env
71
+ MONGODB_URI=mongodb://localhost:27017/eid-salami
72
+ SESSION_SECRET=any_random_32_char_string_here
73
+ BKASH_PERSONAL_NUMBER=01XXXXXXXXX # ← YOUR bKash number
74
+ FRONTEND_URL=http://localhost:5173
75
+ ```
76
+
77
+ ### 3. Run
78
+
79
+ ```bash
80
+ # Terminal 1
81
+ cd backend && npx keystone dev
82
+
83
+ # Terminal 2
84
+ cd frontend && npm run dev
85
+ ```
86
+
87
+ - **Frontend:** http://localhost:5173
88
+ - **Admin Panel:** http://localhost:3000/keystonejs
89
+
90
+ ### 4. First run setup
91
+
92
+ On first launch, Keystone will ask you to create an admin user. After that:
93
+
94
+ ```bash
95
+ cd backend && npx ts-node seed.ts
96
+ ```
97
+
98
+ This creates 5 default packages: ৳100, ৳250, ৳500, ৳1000, ৳2000.
99
+
100
+ ---
101
+
102
+ ## 🛡️ Admin Panel Workflow
103
+
104
+ Every time a user submits a TrxID:
105
+
106
+ 1. Go to http://localhost:3000/keystonejs/orders
107
+ 2. Orders with **"Pending Verification"** status need your attention
108
+ 3. Open your bKash app and verify the TrxID matches the amount
109
+ 4. If correct: set `paymentStatus = Completed`, `deliveryStatus = Sent`
110
+ 5. If fake: set `paymentStatus = Failed`, add a note in `adminNote`
111
+
112
+ ---
113
+
114
+ ## 🔒 TrxID Duplicate Protection
115
+
116
+ The backend prevents the same TrxID from being used on multiple orders — if a user tries to reuse a TrxID, they get an error message.
117
+
118
+ ---
119
+
120
+ ## 📦 Tech Stack
121
+
122
+ | | |
123
+ |---|---|
124
+ | Backend | KeystoneJS 6 (headless CMS + GraphQL + custom REST) |
125
+ | Database | MongoDB |
126
+ | Payment | bKash Personal (manual TrxID verification) |
127
+ | Runtime | Node.js + TypeScript |
128
+ | Frontend | React 18 + Vite + TypeScript + CSS Modules |
129
+
130
+ ---
131
+
132
+ ঈদ মোবারক! 🌙
133
+ # eid-salami
@@ -0,0 +1,25 @@
1
+ # ─── Database ──────────────────────────────────────────────────────────────────
2
+ # Option A — cPanel PostgreSQL:
3
+ # DATABASE_URL=postgresql://DB_USER:DB_PASSWORD@localhost:5432/DB_NAME
4
+ #
5
+ # Option B — Neon.tech free PostgreSQL (if cPanel has no PostgreSQL):
6
+ # DATABASE_URL=postgresql://user:password@ep-xxx.us-east-1.aws.neon.tech/neondb?sslmode=require
7
+
8
+ DATABASE_URL=postgresql://neondb_owner:npg_7kTr9jUMhveZ@ep-lingering-paper-a1b0e5g5-pooler.ap-southeast-1.aws.neon.tech/neondb?sslmode=require&channel_binding=require
9
+
10
+ # ─── Session ───────────────────────────────────────────────────────────────────
11
+ # Any random string, 32+ characters
12
+ SESSION_SECRET=asdfa4s5dfasa4df54sa4adf35s1df34sdf35s4fasdfasdfasdfasdfa
13
+
14
+ # ─── bKash Personal ────────────────────────────────────────────────────────────
15
+ # Your personal bKash number — users will send money to this number
16
+ BKASH_PERSONAL_NUMBER=01956721941
17
+
18
+ # ─── App ───────────────────────────────────────────────────────────────────────
19
+ # Your actual domain where the frontend is hosted
20
+ FRONTEND_URL=https://devsadik.me
21
+
22
+ # Port — cPanel Node.js will set this automatically, leave as 3000 for local dev
23
+ PORT=3000
24
+
25
+ NODE_ENV=production
@@ -0,0 +1,14 @@
1
+ const nextConfig = {
2
+ typescript: {
3
+ ignoreBuildErrors: true,
4
+ },
5
+ eslint: {
6
+ ignoreDuringBuilds: true,
7
+ },
8
+ // We use transpilePackages for the custom admin-ui pages in the ./admin folder
9
+ // as they import ts files into nextjs
10
+ transpilePackages: ['../../admin'],
11
+
12
+ }
13
+
14
+ module.exports = nextConfig
@@ -0,0 +1,22 @@
1
+ import { getApp } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/App';
2
+
3
+ import * as view0 from "@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/id-field-view";
4
+ import * as view1 from "@keystone-6/core/fields/types/text/views";
5
+ import * as view2 from "@keystone-6/core/fields/types/password/views";
6
+ import * as view3 from "@keystone-6/core/fields/types/checkbox/views";
7
+ import * as view4 from "@keystone-6/core/fields/types/timestamp/views";
8
+ import * as view5 from "@keystone-6/fields-document/views";
9
+ import * as view6 from "@keystone-6/core/fields/types/float/views";
10
+ import * as view7 from "@keystone-6/core/fields/types/integer/views";
11
+ import * as view8 from "@keystone-6/core/fields/types/relationship/views";
12
+ import * as view9 from "@keystone-6/core/fields/types/select/views";
13
+
14
+ var adminConfig = {};
15
+
16
+ export default getApp({
17
+ lazyMetadataQuery: {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"keystone","loc":{"start":22,"end":30}},"arguments":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"adminMeta","loc":{"start":39,"end":48}},"arguments":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"lists","loc":{"start":59,"end":64}},"arguments":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"key","loc":{"start":77,"end":80}},"arguments":[],"directives":[],"loc":{"start":77,"end":80}},{"kind":"Field","name":{"kind":"Name","value":"isHidden","loc":{"start":91,"end":99}},"arguments":[],"directives":[],"loc":{"start":91,"end":99}},{"kind":"Field","name":{"kind":"Name","value":"fields","loc":{"start":110,"end":116}},"arguments":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"path","loc":{"start":131,"end":135}},"arguments":[],"directives":[],"loc":{"start":131,"end":135}},{"kind":"Field","name":{"kind":"Name","value":"createView","loc":{"start":148,"end":158}},"arguments":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"fieldMode","loc":{"start":175,"end":184}},"arguments":[],"directives":[],"loc":{"start":175,"end":184}}],"loc":{"start":159,"end":198}},"loc":{"start":148,"end":198}}],"loc":{"start":117,"end":210}},"loc":{"start":110,"end":210}}],"loc":{"start":65,"end":220}},"loc":{"start":59,"end":220}}],"loc":{"start":49,"end":228}},"loc":{"start":39,"end":228}}],"loc":{"start":31,"end":234}},"loc":{"start":22,"end":234}},{"kind":"Field","name":{"kind":"Name","value":"authenticatedItem"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"InlineFragment","typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}}]}}]}}]},
18
+ fieldViews: [view0,view1,view2,view3,view4,view5,view6,view7,view8,view9],
19
+ adminMetaHash: "1pg71jx",
20
+ adminConfig: adminConfig,
21
+ apiPath: "/api/graphql",
22
+ });
@@ -0,0 +1 @@
1
+ export { HomePage as default } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/HomePage';
@@ -0,0 +1,5 @@
1
+ import { getInitPage } from '@keystone-6/auth/pages/InitPage';
2
+
3
+ const fieldPaths = ["name","email","password"];
4
+
5
+ export default getInitPage({"listKey":"User","fieldPaths":["name","email","password"],"enableWelcome":true});
@@ -0,0 +1,3 @@
1
+ import { getNoAccessPage } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/NoAccessPage';
2
+
3
+ export default getNoAccessPage({"sessionsEnabled":true})
@@ -0,0 +1,3 @@
1
+ import { getItemPage } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/ItemPage';
2
+
3
+ export default getItemPage({"listKey":"Order"})
@@ -0,0 +1,3 @@
1
+ import { getCreateItemPage } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/CreateItemPage';
2
+
3
+ export default getCreateItemPage({"listKey":"Order"})
@@ -0,0 +1,3 @@
1
+ import { getListPage } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/ListPage';
2
+
3
+ export default getListPage({"listKey":"Order"});
@@ -0,0 +1,3 @@
1
+ import { getItemPage } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/ItemPage';
2
+
3
+ export default getItemPage({"listKey":"SalamiPackage"})
@@ -0,0 +1,3 @@
1
+ import { getCreateItemPage } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/CreateItemPage';
2
+
3
+ export default getCreateItemPage({"listKey":"SalamiPackage"})
@@ -0,0 +1,3 @@
1
+ import { getListPage } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/ListPage';
2
+
3
+ export default getListPage({"listKey":"SalamiPackage"});
@@ -0,0 +1,3 @@
1
+ import { getSigninPage } from '@keystone-6/auth/pages/SigninPage'
2
+
3
+ export default getSigninPage({"identityField":"email","secretField":"password","mutationName":"authenticateUserWithPassword","successTypename":"UserAuthenticationWithPasswordSuccess","failureTypename":"UserAuthenticationWithPasswordFailure"});
@@ -0,0 +1,3 @@
1
+ import { getItemPage } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/ItemPage';
2
+
3
+ export default getItemPage({"listKey":"User"})
@@ -0,0 +1,3 @@
1
+ import { getCreateItemPage } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/CreateItemPage';
2
+
3
+ export default getCreateItemPage({"listKey":"User"})
@@ -0,0 +1,3 @@
1
+ import { getListPage } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/ListPage';
2
+
3
+ export default getListPage({"listKey":"User"});