@hodela/site 0.0.0-stage → 0.2.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 (50) hide show
  1. package/README.md +6 -2
  2. package/dist/access.d.ts +28 -0
  3. package/dist/access.js +236 -0
  4. package/dist/admin-token.d.ts +6 -0
  5. package/dist/admin-token.js +34 -0
  6. package/dist/admin.functions.d.ts +18 -0
  7. package/dist/admin.functions.js +17 -0
  8. package/dist/analytics.d.ts +9 -0
  9. package/dist/analytics.js +50 -0
  10. package/dist/customer-auth.d.ts +8 -0
  11. package/dist/customer-auth.js +58 -0
  12. package/dist/error-page.d.ts +1 -0
  13. package/dist/error-page.js +30 -0
  14. package/dist/mailer.d.ts +32 -0
  15. package/dist/mailer.js +82 -0
  16. package/dist/react/admin-gate.d.ts +25 -0
  17. package/dist/react/admin-gate.js +62 -0
  18. package/dist/react/error-reporting.d.ts +21 -0
  19. package/dist/react/error-reporting.js +43 -0
  20. package/dist/react/index.d.ts +2 -0
  21. package/dist/react/index.js +2 -0
  22. package/dist/seo.d.ts +60 -0
  23. package/dist/seo.js +99 -0
  24. package/dist/server/admin.d.ts +10 -0
  25. package/dist/server/admin.js +61 -0
  26. package/dist/server/customer-auth.d.ts +11 -0
  27. package/dist/server/customer-auth.js +45 -0
  28. package/dist/server/db.d.ts +20 -0
  29. package/dist/server/db.js +133 -0
  30. package/dist/server/entry.d.ts +4 -0
  31. package/dist/server/entry.js +97 -0
  32. package/dist/server/env.d.ts +7 -0
  33. package/dist/server/env.js +14 -0
  34. package/dist/server/error-capture.d.ts +2 -0
  35. package/dist/server/error-capture.js +72 -0
  36. package/dist/server/files.d.ts +17 -0
  37. package/dist/server/files.js +21 -0
  38. package/dist/server/mailer.d.ts +10 -0
  39. package/dist/server/mailer.js +16 -0
  40. package/dist/server/session-cookie.d.ts +2 -0
  41. package/dist/server/session-cookie.js +7 -0
  42. package/dist/session-cookie.d.ts +15 -0
  43. package/dist/session-cookie.js +18 -0
  44. package/dist/sql-split.d.ts +24 -0
  45. package/dist/sql-split.js +182 -0
  46. package/dist/start.d.ts +2 -0
  47. package/dist/start.js +27 -0
  48. package/dist/testing/cloudflare-workers.d.ts +1 -0
  49. package/dist/testing/cloudflare-workers.js +3 -0
  50. package/package.json +130 -4
@@ -0,0 +1,2 @@
1
+ /** `src/start.ts` của website: `export const startInstance = createHodelaStart();` */
2
+ export declare const createHodelaStart: () => import("@tanstack/react-start").StartInstance<[], import("@tanstack/router-core").SSROption, readonly [import("@tanstack/react-start").RequestMiddlewareAfterServer<{}, undefined, undefined>, import("@tanstack/react-start").RequestMiddlewareAfterServer<{}, undefined, undefined>], []>;
package/dist/start.js ADDED
@@ -0,0 +1,27 @@
1
+ import { createStart, createCsrfMiddleware, createMiddleware, } from "@tanstack/react-start";
2
+ import { renderErrorPage } from "./error-page.js";
3
+ const errorMiddleware = createMiddleware().server(async ({ next }) => {
4
+ try {
5
+ return await next();
6
+ }
7
+ catch (error) {
8
+ if (error != null && typeof error === "object" && "statusCode" in error) {
9
+ throw error;
10
+ }
11
+ console.error(error);
12
+ return new Response(renderErrorPage(), {
13
+ status: 500,
14
+ headers: { "content-type": "text/html; charset=utf-8" },
15
+ });
16
+ }
17
+ });
18
+ // Start installs this automatically when src/start.ts is absent; defining the
19
+ // file opts out, so re-add it explicitly to keep server functions protected
20
+ // from cross-site requests.
21
+ const csrfMiddleware = createCsrfMiddleware({
22
+ filter: (ctx) => ctx.handlerType === "serverFn",
23
+ });
24
+ /** `src/start.ts` của website: `export const startInstance = createHodelaStart();` */
25
+ export const createHodelaStart = () => createStart(() => ({
26
+ requestMiddleware: [errorMiddleware, csrfMiddleware],
27
+ }));
@@ -0,0 +1 @@
1
+ export declare const env: Record<string, unknown>;
@@ -0,0 +1,3 @@
1
+ // Bản thay `cloudflare:workers` cho test (vitest chạy trên Node nên không có module ảo này).
2
+ // vitest.config.ts của website: `resolve.alias["cloudflare:workers"]` trỏ vào file này và `test.server.deps.inline: [/@hodela\/site/]`.
3
+ export const env = {};
package/package.json CHANGED
@@ -1,6 +1,132 @@
1
1
  {
2
2
  "name": "@hodela/site",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.2.0",
4
+ "type": "module",
5
+ "files": [
6
+ "dist",
7
+ "README.md"
8
+ ],
9
+ "exports": {
10
+ "./access": {
11
+ "types": "./dist/access.d.ts",
12
+ "import": "./dist/access.js"
13
+ },
14
+ "./analytics": {
15
+ "types": "./dist/analytics.d.ts",
16
+ "import": "./dist/analytics.js"
17
+ },
18
+ "./sql-split": {
19
+ "types": "./dist/sql-split.d.ts",
20
+ "import": "./dist/sql-split.js"
21
+ },
22
+ "./admin-token": {
23
+ "types": "./dist/admin-token.d.ts",
24
+ "import": "./dist/admin-token.js"
25
+ },
26
+ "./session-cookie": {
27
+ "types": "./dist/session-cookie.d.ts",
28
+ "import": "./dist/session-cookie.js"
29
+ },
30
+ "./customer-auth": {
31
+ "types": "./dist/customer-auth.d.ts",
32
+ "import": "./dist/customer-auth.js"
33
+ },
34
+ "./mailer": {
35
+ "types": "./dist/mailer.d.ts",
36
+ "import": "./dist/mailer.js"
37
+ },
38
+ "./seo": {
39
+ "types": "./dist/seo.d.ts",
40
+ "import": "./dist/seo.js"
41
+ },
42
+ "./admin-functions": {
43
+ "types": "./dist/admin.functions.d.ts",
44
+ "import": "./dist/admin.functions.js"
45
+ },
46
+ "./start": {
47
+ "types": "./dist/start.d.ts",
48
+ "import": "./dist/start.js"
49
+ },
50
+ "./react": {
51
+ "types": "./dist/react/index.d.ts",
52
+ "import": "./dist/react/index.js"
53
+ },
54
+ "./server/env": {
55
+ "types": "./dist/server/env.d.ts",
56
+ "import": "./dist/server/env.js"
57
+ },
58
+ "./server/session-cookie": {
59
+ "types": "./dist/server/session-cookie.d.ts",
60
+ "import": "./dist/server/session-cookie.js"
61
+ },
62
+ "./server/admin": {
63
+ "types": "./dist/server/admin.d.ts",
64
+ "import": "./dist/server/admin.js"
65
+ },
66
+ "./server/customer-auth": {
67
+ "types": "./dist/server/customer-auth.d.ts",
68
+ "import": "./dist/server/customer-auth.js"
69
+ },
70
+ "./server/mailer": {
71
+ "types": "./dist/server/mailer.d.ts",
72
+ "import": "./dist/server/mailer.js"
73
+ },
74
+ "./server/files": {
75
+ "types": "./dist/server/files.d.ts",
76
+ "import": "./dist/server/files.js"
77
+ },
78
+ "./server/db": {
79
+ "types": "./dist/server/db.d.ts",
80
+ "import": "./dist/server/db.js"
81
+ },
82
+ "./server/entry": {
83
+ "types": "./dist/server/entry.d.ts",
84
+ "import": "./dist/server/entry.js"
85
+ },
86
+ "./testing/cloudflare-workers": {
87
+ "types": "./dist/testing/cloudflare-workers.d.ts",
88
+ "import": "./dist/testing/cloudflare-workers.js"
89
+ }
90
+ },
91
+ "scripts": {
92
+ "build": "tsc -p tsconfig.json",
93
+ "typecheck": "tsc -p tsconfig.json --noEmit",
94
+ "test": "vitest run"
95
+ },
96
+ "peerDependencies": {
97
+ "@tanstack/react-router": ">=1.100.0",
98
+ "@tanstack/react-start": ">=1.100.0",
99
+ "drizzle-orm": ">=0.39.0",
100
+ "react": ">=19.0.0",
101
+ "zod": ">=3.25.0"
102
+ },
103
+ "devDependencies": {
104
+ "@libsql/client": "^0.18.0",
105
+ "@tanstack/react-router": "1.170.46",
106
+ "@tanstack/react-start": "1.169.4",
107
+ "@types/node": "^22.16.5",
108
+ "@types/react": "^19.2.0",
109
+ "drizzle-orm": "^0.39.1",
110
+ "mysql2": "^3.24.6",
111
+ "postgres": "^4.0.0",
112
+ "react": "^19.2.0",
113
+ "typescript": "^5.8.3",
114
+ "vite": "^8.3.5",
115
+ "vitest": "^2.1.8",
116
+ "zod": "^3.25.76"
117
+ },
118
+ "description": "Mã chạy chung của website Hodela (truy cập, analytics, phiên quản trị, tài khoản khách, email, SEO, tách SQL). Starter dùng gói này thay vì chép mã vào từng website.",
119
+ "license": "MIT",
120
+ "publishConfig": {
121
+ "access": "public"
122
+ },
123
+ "dependencies": {
124
+ "@hodela/email-js": "0.1.1",
125
+ "@hodela/file-js": "0.1.0"
126
+ },
127
+ "peerDependenciesMeta": {
128
+ "drizzle-orm": {
129
+ "optional": true
130
+ }
131
+ }
132
+ }