create-nexwire 4.2.3 → 4.2.5

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 (87) hide show
  1. package/express/.vscode/extensions.json +6 -0
  2. package/express/.vscode/settings.json +37 -26
  3. package/express/biome.json +99 -66
  4. package/express/package.json +54 -27
  5. package/express/src/database/migrations/sqlite/0000_init.sql +47 -60
  6. package/express/src/database/migrations/sqlite/meta/0000_snapshot.json +1 -89
  7. package/express/src/database/migrations/sqlite/meta/_journal.json +1 -1
  8. package/express/src/database/schema.ts +0 -1
  9. package/express/src/framework/facade.ts +12 -1
  10. package/express/src/framework/maker-cli/db/core.mjs +291 -288
  11. package/express/src/framework/maker-cli/module/core.mjs +125 -87
  12. package/express/src/framework/maker-cli/module/index.mjs +3 -3
  13. package/express/src/framework/maker-cli/stubs/notification/controller.ts.stub +61 -62
  14. package/express/src/framework/maker-cli/stubs/notification/job.ts.stub +11 -13
  15. package/express/src/framework/maker-cli/stubs/notification/model.ts.stub +29 -0
  16. package/express/src/framework/maker-cli/stubs/notification/provider.ts.stub +174 -0
  17. package/express/src/framework/maker-cli/stubs/notification/route.api.ts.stub +11 -10
  18. package/express/src/framework/maker-cli/stubs/notification/route.plain.ts.stub +1 -1
  19. package/express/src/framework/maker-cli/stubs/notification/schema.plain.ts.stub +25 -25
  20. package/express/src/framework/maker-cli/stubs/notification/schema.ts.stub +25 -25
  21. package/express/src/framework/notification/index.ts +49 -87
  22. package/express/src/framework/providers/adapter.ts +24 -10
  23. package/express/src/framework/providers/contracts.ts +80 -10
  24. package/express/src/framework/providers/registry.ts +27 -1
  25. package/express/src/resources/src/components/Checkbox.vue +32 -29
  26. package/express/src/resources/src/components/Input.vue +243 -223
  27. package/express/src/resources/src/components/InputGroup.vue +147 -145
  28. package/express/src/resources/src/components/InputPasswordToggle.vue +229 -213
  29. package/express/src/resources/src/components/Modal.vue +71 -55
  30. package/express/src/resources/src/components/Refresh.vue +19 -0
  31. package/express/src/resources/src/helpers/assets.ts +51 -0
  32. package/express/src/resources/src/main.ts +4 -2
  33. package/express/src/resources/src/pages/auth/forgetPassword.vue +1 -1
  34. package/express/src/resources/src/pages/auth/login.vue +1 -1
  35. package/express/src/resources/src/pages/auth/register.vue +1 -1
  36. package/express/src/resources/src/pages/auth/resetPassword.vue +1 -1
  37. package/express/src/resources/src/pages/auth/verifyEmail.vue +1 -1
  38. package/express/src/resources/src/pages/dashboard/index.vue +66 -66
  39. package/express/src/resources/src/plugins/gum.ts +1 -1
  40. package/express/src/resources/src/stores/auth.ts +184 -164
  41. package/express/src/resources/vite.config.ts +9 -2
  42. package/express/src/storage/database/nexwire.sqlite +0 -0
  43. package/hono/.vscode/extensions.json +6 -0
  44. package/hono/.vscode/settings.json +37 -26
  45. package/hono/biome.json +25 -2
  46. package/hono/package.json +50 -23
  47. package/hono/src/database/migrations/sqlite/0000_init.sql +47 -60
  48. package/hono/src/database/migrations/sqlite/meta/0000_snapshot.json +1 -89
  49. package/hono/src/database/migrations/sqlite/meta/_journal.json +1 -1
  50. package/hono/src/database/schema.ts +0 -1
  51. package/hono/src/framework/facade.ts +12 -1
  52. package/hono/src/framework/maker-cli/db/core.mjs +291 -288
  53. package/hono/src/framework/maker-cli/module/core.mjs +93 -52
  54. package/hono/src/framework/maker-cli/module/index.mjs +3 -3
  55. package/hono/src/framework/maker-cli/stubs/notification/controller.ts.stub +63 -58
  56. package/hono/src/framework/maker-cli/stubs/notification/job.ts.stub +10 -12
  57. package/hono/src/framework/maker-cli/stubs/notification/model.ts.stub +29 -0
  58. package/hono/src/framework/maker-cli/stubs/notification/provider.ts.stub +174 -0
  59. package/hono/src/framework/maker-cli/stubs/notification/route.api.ts.stub +11 -10
  60. package/hono/src/framework/maker-cli/stubs/notification/route.plain.ts.stub +1 -1
  61. package/hono/src/framework/maker-cli/stubs/notification/schema.plain.ts.stub +25 -25
  62. package/hono/src/framework/maker-cli/stubs/notification/schema.ts.stub +25 -25
  63. package/hono/src/framework/notification/index.ts +49 -87
  64. package/hono/src/framework/providers/adapter.ts +24 -10
  65. package/hono/src/framework/providers/contracts.ts +80 -10
  66. package/hono/src/framework/providers/registry.ts +27 -1
  67. package/hono/src/resources/src/components/Checkbox.vue +32 -29
  68. package/hono/src/resources/src/components/Input.vue +243 -234
  69. package/hono/src/resources/src/components/InputGroup.vue +147 -149
  70. package/hono/src/resources/src/components/InputPasswordToggle.vue +229 -222
  71. package/hono/src/resources/src/components/Modal.vue +71 -55
  72. package/hono/src/resources/src/components/Refresh.vue +19 -0
  73. package/hono/src/resources/src/helpers/assets.ts +51 -0
  74. package/hono/src/resources/src/main.ts +4 -2
  75. package/hono/src/resources/src/pages/auth/forgetPassword.vue +1 -1
  76. package/hono/src/resources/src/pages/auth/login.vue +1 -1
  77. package/hono/src/resources/src/pages/auth/register.vue +1 -1
  78. package/hono/src/resources/src/pages/auth/resetPassword.vue +1 -1
  79. package/hono/src/resources/src/pages/auth/verifyEmail.vue +1 -1
  80. package/hono/src/resources/src/pages/dashboard/index.vue +66 -66
  81. package/hono/src/resources/src/plugins/gum.ts +1 -1
  82. package/hono/src/resources/src/stores/auth.ts +184 -164
  83. package/hono/src/resources/vite.config.ts +9 -2
  84. package/hono/src/storage/database/nexwire.sqlite +0 -0
  85. package/package.json +10 -10
  86. package/express/src/modules/auth/database/models/notification.ts +0 -24
  87. package/hono/src/modules/auth/database/models/notification.ts +0 -24
@@ -0,0 +1,6 @@
1
+ {
2
+ "recommendations": [
3
+ "biomejs.biome",
4
+ "editorconfig.editorconfig"
5
+ ]
6
+ }
@@ -1,26 +1,37 @@
1
- {
2
- "editor.defaultFormatter": "biomejs.biome",
3
- "[typescript]": {
4
- "editor.defaultFormatter": "biomejs.biome"
5
- },
6
- "[typescriptreact]": {
7
- "editor.defaultFormatter": "biomejs.biome"
8
- },
9
- "[javascript]": {
10
- "editor.defaultFormatter": "biomejs.biome"
11
- },
12
- "[javascriptreact]": {
13
- "editor.defaultFormatter": "biomejs.biome"
14
- },
15
- "[json]": {
16
- "editor.defaultFormatter": "biomejs.biome"
17
- },
18
- "[jsonc]": {
19
- "editor.defaultFormatter": "biomejs.biome"
20
- },
21
- "editor.codeActionsOnSave": {
22
- "source.organizeImports.biome": "explicit",
23
- "source.fixAll.biome": "explicit"
24
- },
25
- "files.eol": "\n"
26
- }
1
+ {
2
+ "editor.defaultFormatter": "biomejs.biome",
3
+ "[typescript]": {
4
+ "editor.defaultFormatter": "biomejs.biome"
5
+ },
6
+ "[typescriptreact]": {
7
+ "editor.defaultFormatter": "biomejs.biome"
8
+ },
9
+ "[javascript]": {
10
+ "editor.defaultFormatter": "biomejs.biome"
11
+ },
12
+ "[javascriptreact]": {
13
+ "editor.defaultFormatter": "biomejs.biome"
14
+ },
15
+ "[json]": {
16
+ "editor.defaultFormatter": "biomejs.biome"
17
+ },
18
+ "[jsonc]": {
19
+ "editor.defaultFormatter": "biomejs.biome"
20
+ },
21
+ "[vue]": {
22
+ "editor.defaultFormatter": "biomejs.biome"
23
+ },
24
+ "[css]": {
25
+ "editor.defaultFormatter": "biomejs.biome"
26
+ },
27
+ "[scss]": {
28
+ "editor.defaultFormatter": "biomejs.biome"
29
+ },
30
+ "editor.codeActionsOnSave": {
31
+ "source.organizeImports.biome": "explicit",
32
+ "source.fixAll.biome": "explicit"
33
+ },
34
+ "files.eol": "\n",
35
+ "files.trimTrailingWhitespace": true,
36
+ "files.insertFinalNewline": true
37
+ }
@@ -1,66 +1,99 @@
1
- {
2
- "$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
3
- "vcs": {
4
- "enabled": true,
5
- "clientKind": "git",
6
- "useIgnoreFile": true
7
- },
8
- "formatter": {
9
- "indentStyle": "space",
10
- "indentWidth": 2,
11
- "lineWidth": 140,
12
- "bracketSameLine": true
13
- },
14
- "linter": {
15
- "rules": {
16
- "preset": "recommended",
17
- "correctness": {
18
- "noUnusedVariables": "off",
19
- "useVueValidTemplateRoot": "off",
20
- "noUnusedImports": "off"
21
- },
22
- "complexity": {
23
- "noUselessEscapeInRegex": "off"
24
- },
25
- "style": {
26
- "noNonNullAssertion": "off",
27
- "useVueMultiWordComponentNames": "off",
28
- "useImportType": "off"
29
- },
30
- "suspicious": {
31
- "noEmptyBlockStatements": "off",
32
- "noExplicitAny": "off",
33
- "noRedeclare": "off",
34
- "noAssignInExpressions": "off",
35
- "useIterableCallbackReturn": "off"
36
- }
37
- }
38
- },
39
- "javascript": {
40
- "formatter": {
41
- "quoteStyle": "double",
42
- "semicolons": "always",
43
- "trailingCommas": "none"
44
- }
45
- },
46
- "overrides": [
47
- {
48
- "includes": ["**/*.{js,mjs,cjs,ts,tsx,vue}"],
49
- "javascript": {
50
- "globals": ["exports", "location"]
51
- }
52
- }
53
- ],
54
- "assist": {
55
- "actions": {
56
- "source": {
57
- "organizeImports": {
58
- "level": "on",
59
- "options": {
60
- "groups": [":NODE:", ":PACKAGE:", ":ALIAS:", ":PATH:"]
61
- }
62
- }
63
- }
64
- }
65
- }
66
- }
1
+ {
2
+ "$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
3
+ "vcs": {
4
+ "enabled": true,
5
+ "clientKind": "git",
6
+ "useIgnoreFile": true
7
+ },
8
+ "html": {
9
+ "experimentalFullSupportEnabled": true,
10
+ "formatter": {
11
+ "enabled": true
12
+ }
13
+ },
14
+ "formatter": {
15
+ "indentStyle": "space",
16
+ "indentWidth": 2,
17
+ "lineWidth": 140,
18
+ "bracketSameLine": false
19
+ },
20
+ "files": {
21
+ "includes": [
22
+ "**",
23
+ "!**/node_modules"
24
+ ]
25
+ },
26
+ "linter": {
27
+ "rules": {
28
+ "preset": "recommended",
29
+ "a11y": {
30
+ "noLabelWithoutControl": "off",
31
+ "useButtonType": "off",
32
+ "useSemanticElements": "off",
33
+ "noStaticElementInteractions": "off",
34
+ "useKeyWithClickEvents": "off",
35
+ "useValidAnchor": "off",
36
+ "useAnchorContent": "off",
37
+ "noDistractingElements": "off"
38
+ },
39
+ "correctness": {
40
+ "noUnusedVariables": "off",
41
+ "useVueValidTemplateRoot": "off",
42
+ "noUnusedImports": "off"
43
+ },
44
+ "complexity": {
45
+ "noUselessEscapeInRegex": "off",
46
+ "noImportantStyles": "off"
47
+ },
48
+ "style": {
49
+ "noNonNullAssertion": "off",
50
+ "useVueMultiWordComponentNames": "off",
51
+ "useImportType": "off"
52
+ },
53
+ "suspicious": {
54
+ "noEmptyBlockStatements": "off",
55
+ "noExplicitAny": "off",
56
+ "noRedeclare": "off",
57
+ "noAssignInExpressions": "off",
58
+ "useIterableCallbackReturn": "off"
59
+ }
60
+ }
61
+ },
62
+ "javascript": {
63
+ "formatter": {
64
+ "quoteStyle": "double",
65
+ "semicolons": "always",
66
+ "trailingCommas": "none"
67
+ }
68
+ },
69
+ "overrides": [
70
+ {
71
+ "includes": [
72
+ "**/*.{js,mjs,cjs,ts,tsx,vue}"
73
+ ],
74
+ "javascript": {
75
+ "globals": [
76
+ "exports",
77
+ "location"
78
+ ]
79
+ }
80
+ }
81
+ ],
82
+ "assist": {
83
+ "actions": {
84
+ "source": {
85
+ "organizeImports": {
86
+ "level": "on",
87
+ "options": {
88
+ "groups": [
89
+ ":NODE:",
90
+ ":PACKAGE:",
91
+ ":ALIAS:",
92
+ ":PATH:"
93
+ ]
94
+ }
95
+ }
96
+ }
97
+ }
98
+ }
99
+ }
@@ -1,16 +1,17 @@
1
1
  {
2
2
  "name": "nexwire-express",
3
- "private": true,
4
- "type": "module",
5
3
  "version": "1.0.0",
4
+ "private": true,
6
5
  "bin": {
7
6
  "maker": "./src/framework/maker-cli/index.mjs"
8
7
  },
8
+ "type": "module",
9
9
  "scripts": {
10
10
  "build": "npm run build:all",
11
11
  "build:all": "npm run build:backend && npm run build:ui",
12
12
  "build:backend": "tsc -p tsconfig.json && tsc-alias -p tsconfig.json",
13
- "build:ui": "node src/framework/maker-cli/runtime/build-ui.mjs",
13
+ "build:ui": "npm run typecheck:ui && node src/framework/maker-cli/runtime/build-ui.mjs",
14
+ "typecheck:ui": "vue-tsc --noEmit -p src/resources/tsconfig.json",
14
15
  "dev": "node src/framework/maker-cli/index.mjs dev",
15
16
  "backend": "node src/framework/maker-cli/index.mjs serve --src",
16
17
  "ui": "node src/framework/maker-cli/index.mjs ui:dev",
@@ -28,20 +29,20 @@
28
29
  "test:coverage": "vitest run --coverage"
29
30
  },
30
31
  "dependencies": {
31
- "@asteasolutions/zod-to-openapi": "^8.1.0",
32
+ "@asteasolutions/zod-to-openapi": "^8.5.0",
32
33
  "@aws-sdk/client-s3": "^3.1111.0",
33
34
  "@aws-sdk/s3-request-presigner": "^3.1111.0",
34
- "@bull-board/api": "^9.10.1",
35
- "@bull-board/express": "^9.10.1",
35
+ "@bull-board/api": "^9.10.5",
36
+ "@bull-board/express": "^9.10.5",
36
37
  "@libsql/client": "^0.17.4",
37
38
  "@scalar/express-api-reference": "^0.10.19",
38
39
  "@socket.io/admin-ui": "^0.5.1",
39
40
  "@socket.io/redis-adapter": "^8.3.0",
40
41
  "@types/multer": "^2.2.0",
41
- "@vitejs/plugin-vue": "^6.0.8",
42
+ "@unhead/vue": "^3.4.3",
43
+ "@vitejs/plugin-vue": "^6.0.10",
42
44
  "@vuepic/vue-datepicker": "^14.0.0",
43
45
  "@vueuse/core": "^14.4.0",
44
- "@vueuse/head": "^2.0.0",
45
46
  "axios": "^1.19.0",
46
47
  "bcryptjs": "^3.0.3",
47
48
  "bootstrap": "^5.3.8",
@@ -49,38 +50,38 @@
49
50
  "bullmq": "^5.81.3",
50
51
  "bullmq-durable": "^0.2.0",
51
52
  "chalk": "^5.6.2",
52
- "commander": "^14.0.3",
53
+ "commander": "^15.0.0",
53
54
  "cookie-parser": "^1.4.7",
54
55
  "cors": "^2.8.5",
55
56
  "croner": "^10.0.1",
56
57
  "dotenv": "^17.4.2",
57
58
  "dotenv-expand": "^13.0.0",
58
- "drizzle-orm": "^0.45.2",
59
- "express": "^5.2.1",
60
- "express-rate-limit": "^8.7.0",
59
+ "drizzle-orm": "^0.45.4",
60
+ "express": "^5.3.0",
61
+ "express-rate-limit": "^8.7.1",
61
62
  "glob": "^13.0.6",
62
63
  "http-errors": "^2.0.1",
63
64
  "ioredis": "^5.11.1",
64
65
  "jsonwebtoken": "^9.0.2",
65
66
  "lodash-es": "^4.18.1",
66
67
  "luxon": "^3.7.2",
67
- "maildev": "^2.2.1",
68
+ "maildev": "^3.0.0",
68
69
  "morgan": "^1.10.0",
69
- "multer": "^2.4.0",
70
+ "multer": "^2.5.0",
70
71
  "mysql2": "^3.23.3",
71
- "nodemailer": "^9.0.5",
72
+ "nodemailer": "^10.2.1",
72
73
  "pinia": "^3.0.4",
73
74
  "pino": "^10.3.1",
74
75
  "postgres": "^3.4.9",
75
76
  "redis-commander": "^0.9.0",
76
77
  "sass": "^1.100.0",
77
- "socket.io": "^4.8.3",
78
- "socket.io-client": "^4.8.3",
79
- "vite": "^8.2.1",
78
+ "socket.io": "^4.8.4",
79
+ "socket.io-client": "^4.8.4",
80
+ "vite": "^8.3.5",
80
81
  "vue": "^3.5.41",
81
82
  "vue-router": "^5.2.0",
82
83
  "vue-select": "^4.0.0-beta.6",
83
- "zod": "^4.4.3"
84
+ "zod": "^4.6.7"
84
85
  },
85
86
  "devDependencies": {
86
87
  "@biomejs/biome": "^2.5.7",
@@ -91,18 +92,44 @@
91
92
  "@types/jsonwebtoken": "^9.0.7",
92
93
  "@types/lodash-es": "^4.17.12",
93
94
  "@types/morgan": "^1.9.9",
94
- "@types/node": "^25.9.5",
95
- "@vitest/coverage-v8": "^4.1.10",
96
- "drizzle-kit": "^0.31.10",
97
- "tsc-alias": "^1.9.2",
98
- "tsx": "^4.23.12",
95
+ "@types/node": "^25.9.9",
96
+ "@vitest/coverage-v8": "^5.0.5",
97
+ "drizzle-kit": "^0.31.11",
98
+ "tsc-alias": "^1.9.9",
99
+ "tsx": "^4.23.15",
99
100
  "typescript": "^6.0.3",
100
- "vitest": "^4.1.10"
101
+ "vitest": "^5.0.5",
102
+ "vue-tsc": "^3.3.13"
103
+ },
104
+ "overrides": {
105
+ "@esbuild-kit/core-utils": {
106
+ "esbuild": "^0.25.12"
107
+ },
108
+ "@maildev/mcp": {
109
+ "zod": "^4.6.7"
110
+ },
111
+ "@maildev/smtp": {
112
+ "jsdom": "^27.4.0",
113
+ "nodemailer": "^10.2.1"
114
+ },
115
+ "redis-commander": {
116
+ "express": "^4.22.3",
117
+ "body-parser": "^1.20.9",
118
+ "bcrypt": "npm:bcryptjs@^3.0.3",
119
+ "bcryptjs": "^3.0.3"
120
+ }
101
121
  },
102
122
  "engines": {
103
- "node": ">=22",
104
123
  "bun": ">=1.3",
124
+ "node": ">=22.12.0",
105
125
  "pnpm": ">=11",
106
126
  "yarn": ">=4"
127
+ },
128
+ "allowScripts": {
129
+ "@parcel/watcher": true,
130
+ "esbuild": true,
131
+ "msgpackr-extract": true,
132
+ "redis-commander": true,
133
+ "vue-demi": true
107
134
  }
108
- }
135
+ }
@@ -1,61 +1,48 @@
1
- CREATE TABLE `notifications` (
2
- `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
3
- `user_id` integer NOT NULL,
4
- `type` text NOT NULL,
5
- `title` text NOT NULL,
6
- `body` text,
7
- `data` text,
8
- `link` text,
9
- `read_at` integer,
10
- `created_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL,
11
- FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE cascade ON DELETE cascade
12
- );
13
- --> statement-breakpoint
14
- CREATE TABLE `roles` (
15
- `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
16
- `name` text NOT NULL,
17
- `created_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL,
18
- `updated_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL
19
- );
20
- --> statement-breakpoint
21
- CREATE UNIQUE INDEX `roles_name_unique` ON `roles` (`name`);--> statement-breakpoint
22
- CREATE TABLE `email_verification_tokens` (
23
- `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
24
- `email` text NOT NULL,
25
- `token` text NOT NULL,
26
- `expires_at` integer NOT NULL,
27
- `created_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL
28
- );
29
- --> statement-breakpoint
30
- CREATE TABLE `password_reset_tokens` (
31
- `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
32
- `email` text NOT NULL,
33
- `token` text NOT NULL,
34
- `expires_at` integer NOT NULL,
35
- `created_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL
36
- );
37
- --> statement-breakpoint
38
- CREATE TABLE `refresh_tokens` (
39
- `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
40
- `user_id` integer,
41
- `jti` text NOT NULL,
42
- `revoked` integer DEFAULT false,
43
- `expires_at` integer NOT NULL,
44
- `created_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL,
45
- FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE cascade ON DELETE set null
46
- );
47
- --> statement-breakpoint
48
- CREATE UNIQUE INDEX `refresh_tokens_jti_unique` ON `refresh_tokens` (`jti`);--> statement-breakpoint
49
- CREATE TABLE `users` (
50
- `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
51
- `name` text NOT NULL,
52
- `email` text NOT NULL,
53
- `password` text NOT NULL,
54
- `role_id` integer,
55
- `email_verified_at` integer,
56
- `created_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL,
57
- `updated_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL,
58
- FOREIGN KEY (`role_id`) REFERENCES `roles`(`id`) ON UPDATE cascade ON DELETE set null
59
- );
60
- --> statement-breakpoint
1
+ CREATE TABLE `roles` (
2
+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
3
+ `name` text NOT NULL,
4
+ `created_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL,
5
+ `updated_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL
6
+ );
7
+ --> statement-breakpoint
8
+ CREATE UNIQUE INDEX `roles_name_unique` ON `roles` (`name`);--> statement-breakpoint
9
+ CREATE TABLE `email_verification_tokens` (
10
+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
11
+ `email` text NOT NULL,
12
+ `token` text NOT NULL,
13
+ `expires_at` integer NOT NULL,
14
+ `created_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL
15
+ );
16
+ --> statement-breakpoint
17
+ CREATE TABLE `password_reset_tokens` (
18
+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
19
+ `email` text NOT NULL,
20
+ `token` text NOT NULL,
21
+ `expires_at` integer NOT NULL,
22
+ `created_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL
23
+ );
24
+ --> statement-breakpoint
25
+ CREATE TABLE `refresh_tokens` (
26
+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
27
+ `user_id` integer,
28
+ `jti` text NOT NULL,
29
+ `revoked` integer DEFAULT false,
30
+ `expires_at` integer NOT NULL,
31
+ `created_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL,
32
+ FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE cascade ON DELETE set null
33
+ );
34
+ --> statement-breakpoint
35
+ CREATE UNIQUE INDEX `refresh_tokens_jti_unique` ON `refresh_tokens` (`jti`);--> statement-breakpoint
36
+ CREATE TABLE `users` (
37
+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
38
+ `name` text NOT NULL,
39
+ `email` text NOT NULL,
40
+ `password` text NOT NULL,
41
+ `role_id` integer,
42
+ `email_verified_at` integer,
43
+ `created_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL,
44
+ `updated_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL,
45
+ FOREIGN KEY (`role_id`) REFERENCES `roles`(`id`) ON UPDATE cascade ON DELETE set null
46
+ );
47
+ --> statement-breakpoint
61
48
  CREATE UNIQUE INDEX `users_email_unique` ON `users` (`email`);
@@ -1,97 +1,9 @@
1
1
  {
2
2
  "version": "6",
3
3
  "dialect": "sqlite",
4
- "id": "ed7fbc13-6058-4837-b108-3af5a3093ff3",
4
+ "id": "f0fe475e-8a3e-4c5c-9b5e-9ec41ddfde71",
5
5
  "prevId": "00000000-0000-0000-0000-000000000000",
6
6
  "tables": {
7
- "notifications": {
8
- "name": "notifications",
9
- "columns": {
10
- "id": {
11
- "name": "id",
12
- "type": "integer",
13
- "primaryKey": true,
14
- "notNull": true,
15
- "autoincrement": true
16
- },
17
- "user_id": {
18
- "name": "user_id",
19
- "type": "integer",
20
- "primaryKey": false,
21
- "notNull": true,
22
- "autoincrement": false
23
- },
24
- "type": {
25
- "name": "type",
26
- "type": "text",
27
- "primaryKey": false,
28
- "notNull": true,
29
- "autoincrement": false
30
- },
31
- "title": {
32
- "name": "title",
33
- "type": "text",
34
- "primaryKey": false,
35
- "notNull": true,
36
- "autoincrement": false
37
- },
38
- "body": {
39
- "name": "body",
40
- "type": "text",
41
- "primaryKey": false,
42
- "notNull": false,
43
- "autoincrement": false
44
- },
45
- "data": {
46
- "name": "data",
47
- "type": "text",
48
- "primaryKey": false,
49
- "notNull": false,
50
- "autoincrement": false
51
- },
52
- "link": {
53
- "name": "link",
54
- "type": "text",
55
- "primaryKey": false,
56
- "notNull": false,
57
- "autoincrement": false
58
- },
59
- "read_at": {
60
- "name": "read_at",
61
- "type": "integer",
62
- "primaryKey": false,
63
- "notNull": false,
64
- "autoincrement": false
65
- },
66
- "created_at": {
67
- "name": "created_at",
68
- "type": "integer",
69
- "primaryKey": false,
70
- "notNull": true,
71
- "autoincrement": false,
72
- "default": "(cast((julianday('now') - 2440587.5)*86400000 as integer))"
73
- }
74
- },
75
- "indexes": {},
76
- "foreignKeys": {
77
- "notifications_user_id_users_id_fk": {
78
- "name": "notifications_user_id_users_id_fk",
79
- "tableFrom": "notifications",
80
- "tableTo": "users",
81
- "columnsFrom": [
82
- "user_id"
83
- ],
84
- "columnsTo": [
85
- "id"
86
- ],
87
- "onDelete": "cascade",
88
- "onUpdate": "cascade"
89
- }
90
- },
91
- "compositePrimaryKeys": {},
92
- "uniqueConstraints": {},
93
- "checkConstraints": {}
94
- },
95
7
  "roles": {
96
8
  "name": "roles",
97
9
  "columns": {
@@ -5,7 +5,7 @@
5
5
  {
6
6
  "idx": 0,
7
7
  "version": "6",
8
- "when": 1792609443345,
8
+ "when": 1792936160057,
9
9
  "tag": "0000_init",
10
10
  "breakpoints": true
11
11
  }
@@ -1,3 +1,2 @@
1
- export * from "../modules/auth/database/models/notification.js";
2
1
  export * from "../modules/auth/database/models/role.js";
3
2
  export * from "../modules/auth/database/models/user.js";
@@ -15,18 +15,29 @@ export type {
15
15
  AuthProviderRefreshToken,
16
16
  AuthProviderUser,
17
17
  AuthUserContact,
18
- AuthUserContext
18
+ AuthUserContext,
19
+ NotifiableTarget,
20
+ NotificationCreateInput,
21
+ NotificationListOptions,
22
+ NotificationPage,
23
+ NotificationProvider,
24
+ NotificationRecord
19
25
  } from "@/framework/providers/contracts.js";
26
+ export { resolveAuthProvider, resolveNotificationProvider } from "@/framework/providers/adapter.js";
20
27
  export { loadProviders } from "@/framework/providers/loader.js";
21
28
  export {
22
29
  clearAuthProvider,
30
+ clearNotificationProvider,
23
31
  clearProvider,
24
32
  getAuthProvider,
33
+ getNotificationProvider,
25
34
  getProvider,
26
35
  hasAuthProvider,
36
+ hasNotificationProvider,
27
37
  hasProvider,
28
38
  listProviders,
29
39
  registerAuthProvider,
40
+ registerNotificationProvider,
30
41
  registerProvider
31
42
  } from "@/framework/providers/registry.js";
32
43
  export { queue, queueJob, shouldQueue } from "@/framework/queue/queue.js";