alepha 0.11.7 → 0.11.10

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 (169) hide show
  1. package/README.md +55 -17
  2. package/dist/index.cjs +15805 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +1 -0
  5. package/dist/index.d.ts +2 -0
  6. package/dist/index.js +15804 -0
  7. package/dist/index.js.map +1 -0
  8. package/package.json +36 -372
  9. package/src/assets/biomeJson.ts +33 -0
  10. package/src/assets/tsconfigJson.ts +17 -0
  11. package/src/assets/viteConfigTs.ts +14 -0
  12. package/src/commands/BiomeCommands.ts +60 -0
  13. package/src/commands/CoreCommands.ts +266 -0
  14. package/src/commands/DrizzleCommands.ts +403 -0
  15. package/src/commands/VerifyCommands.ts +48 -0
  16. package/src/commands/ViteCommands.ts +152 -0
  17. package/src/index.ts +35 -0
  18. package/src/services/ProcessRunner.ts +89 -0
  19. package/src/version.ts +7 -0
  20. package/api/files.cjs +0 -8
  21. package/api/files.d.ts +0 -438
  22. package/api/files.js +0 -1
  23. package/api/jobs.cjs +0 -8
  24. package/api/jobs.d.ts +0 -327
  25. package/api/jobs.js +0 -1
  26. package/api/notifications.cjs +0 -8
  27. package/api/notifications.d.ts +0 -263
  28. package/api/notifications.js +0 -1
  29. package/api/users.cjs +0 -8
  30. package/api/users.d.ts +0 -923
  31. package/api/users.js +0 -1
  32. package/api/verifications.cjs +0 -8
  33. package/api/verifications.d.ts +0 -1
  34. package/api/verifications.js +0 -1
  35. package/batch.cjs +0 -8
  36. package/batch.d.ts +0 -154
  37. package/batch.js +0 -1
  38. package/bucket.cjs +0 -8
  39. package/bucket.d.ts +0 -520
  40. package/bucket.js +0 -1
  41. package/cache/redis.cjs +0 -8
  42. package/cache/redis.d.ts +0 -40
  43. package/cache/redis.js +0 -1
  44. package/cache.cjs +0 -8
  45. package/cache.d.ts +0 -288
  46. package/cache.js +0 -1
  47. package/command.cjs +0 -8
  48. package/command.d.ts +0 -269
  49. package/command.js +0 -1
  50. package/core.cjs +0 -8
  51. package/core.d.ts +0 -1904
  52. package/core.js +0 -1
  53. package/datetime.cjs +0 -8
  54. package/datetime.d.ts +0 -144
  55. package/datetime.js +0 -1
  56. package/devtools.cjs +0 -8
  57. package/devtools.d.ts +0 -252
  58. package/devtools.js +0 -1
  59. package/email.cjs +0 -8
  60. package/email.d.ts +0 -187
  61. package/email.js +0 -1
  62. package/fake.cjs +0 -8
  63. package/fake.d.ts +0 -73
  64. package/fake.js +0 -1
  65. package/file.cjs +0 -8
  66. package/file.d.ts +0 -528
  67. package/file.js +0 -1
  68. package/lock/redis.cjs +0 -8
  69. package/lock/redis.d.ts +0 -24
  70. package/lock/redis.js +0 -1
  71. package/lock.cjs +0 -8
  72. package/lock.d.ts +0 -552
  73. package/lock.js +0 -1
  74. package/logger.cjs +0 -8
  75. package/logger.d.ts +0 -287
  76. package/logger.js +0 -1
  77. package/postgres.cjs +0 -8
  78. package/postgres.d.ts +0 -2143
  79. package/postgres.js +0 -1
  80. package/queue/redis.cjs +0 -8
  81. package/queue/redis.d.ts +0 -29
  82. package/queue/redis.js +0 -1
  83. package/queue.cjs +0 -8
  84. package/queue.d.ts +0 -760
  85. package/queue.js +0 -1
  86. package/react/auth.cjs +0 -8
  87. package/react/auth.d.ts +0 -504
  88. package/react/auth.js +0 -1
  89. package/react/form.cjs +0 -8
  90. package/react/form.d.ts +0 -211
  91. package/react/form.js +0 -1
  92. package/react/head.cjs +0 -8
  93. package/react/head.d.ts +0 -120
  94. package/react/head.js +0 -1
  95. package/react/i18n.cjs +0 -8
  96. package/react/i18n.d.ts +0 -168
  97. package/react/i18n.js +0 -1
  98. package/react.cjs +0 -8
  99. package/react.d.ts +0 -1263
  100. package/react.js +0 -1
  101. package/redis.cjs +0 -8
  102. package/redis.d.ts +0 -82
  103. package/redis.js +0 -1
  104. package/retry.cjs +0 -8
  105. package/retry.d.ts +0 -162
  106. package/retry.js +0 -1
  107. package/router.cjs +0 -8
  108. package/router.d.ts +0 -45
  109. package/router.js +0 -1
  110. package/scheduler.cjs +0 -8
  111. package/scheduler.d.ts +0 -145
  112. package/scheduler.js +0 -1
  113. package/security.cjs +0 -8
  114. package/security.d.ts +0 -586
  115. package/security.js +0 -1
  116. package/server/cache.cjs +0 -8
  117. package/server/cache.d.ts +0 -163
  118. package/server/cache.js +0 -1
  119. package/server/compress.cjs +0 -8
  120. package/server/compress.d.ts +0 -38
  121. package/server/compress.js +0 -1
  122. package/server/cookies.cjs +0 -8
  123. package/server/cookies.d.ts +0 -144
  124. package/server/cookies.js +0 -1
  125. package/server/cors.cjs +0 -8
  126. package/server/cors.d.ts +0 -45
  127. package/server/cors.js +0 -1
  128. package/server/health.cjs +0 -8
  129. package/server/health.d.ts +0 -58
  130. package/server/health.js +0 -1
  131. package/server/helmet.cjs +0 -8
  132. package/server/helmet.d.ts +0 -98
  133. package/server/helmet.js +0 -1
  134. package/server/links.cjs +0 -8
  135. package/server/links.d.ts +0 -322
  136. package/server/links.js +0 -1
  137. package/server/metrics.cjs +0 -8
  138. package/server/metrics.d.ts +0 -35
  139. package/server/metrics.js +0 -1
  140. package/server/multipart.cjs +0 -8
  141. package/server/multipart.d.ts +0 -42
  142. package/server/multipart.js +0 -1
  143. package/server/proxy.cjs +0 -8
  144. package/server/proxy.d.ts +0 -234
  145. package/server/proxy.js +0 -1
  146. package/server/security.cjs +0 -8
  147. package/server/security.d.ts +0 -92
  148. package/server/security.js +0 -1
  149. package/server/static.cjs +0 -8
  150. package/server/static.d.ts +0 -119
  151. package/server/static.js +0 -1
  152. package/server/swagger.cjs +0 -8
  153. package/server/swagger.d.ts +0 -161
  154. package/server/swagger.js +0 -1
  155. package/server.cjs +0 -8
  156. package/server.d.ts +0 -849
  157. package/server.js +0 -1
  158. package/topic/redis.cjs +0 -8
  159. package/topic/redis.d.ts +0 -42
  160. package/topic/redis.js +0 -1
  161. package/topic.cjs +0 -8
  162. package/topic.d.ts +0 -819
  163. package/topic.js +0 -1
  164. package/ui.cjs +0 -8
  165. package/ui.d.ts +0 -813
  166. package/ui.js +0 -1
  167. package/vite.cjs +0 -8
  168. package/vite.d.ts +0 -186
  169. package/vite.js +0 -1
package/README.md CHANGED
@@ -10,6 +10,7 @@
10
10
  Alepha
11
11
  </h1>
12
12
  <p style="max-width: 512px">
13
+ Easy mode for building TypeScript applications.
13
14
  </p>
14
15
  <a href="https://www.npmjs.com/package/alepha"><img src="https://img.shields.io/npm/v/alepha.svg" alt="npm"/></a>
15
16
  <a href="https://www.npmjs.com/package/alepha"><img src="https://img.shields.io/npm/l/alepha.svg" alt="npm"/></a>
@@ -18,20 +19,18 @@ Alepha
18
19
  <a href="https://github.com/feunard/alepha"><img src="https://img.shields.io/github/stars/feunard/alepha.svg?style=social" alt="GitHub stars"/></a>
19
20
  </div>
20
21
 
21
- A convention-driven TypeScript framework for building type-safe full-stack applications.
22
-
23
- ## Quick Start
24
22
 
25
23
  ```bash
26
- npm install alepha
27
- npm install -D @alepha/cli
24
+ npm i -g alepha
28
25
  ```
29
26
 
30
27
  ## What is this?
31
28
 
32
- Alepha is an opinionated framework that handles everything from database to frontend.
29
+ Build API endpoints (Docker or Serverless), React applications (SSR, CSR or SSG), CLI tools, and more!
30
+
31
+ Extremely modular (60+ packages) and relies only on very few runtime dependencies.
33
32
 
34
- It uses a descriptor-based architecture (`$action`, `$page`, `$repository`, etc.) and enforces type safety across the entire stack.
33
+ All-in-one tool that takes care of configuration, development, build, deployment, testing, etc. Convention over configuration.
35
34
 
36
35
  For more information, please visit the [documentation](https://feunard.github.io/alepha/).
37
36
 
@@ -41,19 +40,32 @@ For more information, please visit the [documentation](https://feunard.github.io
41
40
 
42
41
  Write API endpoints with automatic OpenAPI documentation.
43
42
 
43
+ ```bash
44
+ # Initialize a new Alepha project in the current folder
45
+ npx alepha init --api
46
+ ```
47
+
48
+ Create a file `src/main.ts`:
49
+
44
50
  ```ts
45
- // hello.ts
46
- import { run, t, Alepha } from "alepha";
47
- import { $action } from "alepha/server";
48
- import { $swagger } from "alepha/server/swagger";
51
+ import { run, t, Alepha } from "@alepha/core";
52
+ import { $action } from "@alepha/server";
53
+ import { $swagger } from "@alepha/server-swagger";
49
54
 
50
55
  class Api {
56
+
57
+ // Functions starting with $ are "descriptors".
58
+ // Like React hooks, they must be called inside Alepha context.
51
59
  docs = $swagger();
52
60
 
53
61
  sayHello = $action({
54
62
  path: "/hello/:name",
63
+ // Every feature inside Alepha is strongly typed with runtime validation.
64
+ // Schema is based on TypeBox library.
55
65
  schema: {
56
66
  params: t.object({
67
+ // Alepha provides many built-in types.
68
+ // For example `t.text()` = `t.string()` + specific maxLength, auto-trim, etc.
57
69
  name: t.text()
58
70
  }),
59
71
  response: t.object({
@@ -66,25 +78,47 @@ class Api {
66
78
  });
67
79
  }
68
80
 
81
+ // Create Alepha instance
69
82
  const alepha = Alepha.create();
70
83
 
84
+ // Register API
71
85
  alepha.with(Api);
72
86
 
87
+ // Run Application
73
88
  run(alepha);
74
89
  ```
75
90
 
91
+ Run the development server:
92
+
76
93
  ```bash
77
- npx alepha dev hello.ts
94
+ npx alepha dev
78
95
  ```
79
96
 
97
+ Then, open your browser at `http://localhost:3000/docs/` and enjoy your automatically generated documentation.
98
+
99
+ Once you are done, build the application for production:
100
+
101
+ ```bash
102
+ npx alepha build
103
+ ```
104
+
105
+ Application will be built in the `dist/` folder, ready to be deployed on any platform (Docker, Serverless, etc.).
106
+ Bonus, no need to "npm install" on the server, Alepha bundles everything together.
107
+
80
108
  ### React Application
81
109
 
82
- Build full-stack React applications, with server-side rendering (SSR) and client-side rendering (CSR).
110
+ Build full-stack React applications, with server-side rendering.
111
+
112
+ ```bash
113
+ npx alepha init --react
114
+ ```
115
+
116
+ Create a file `src/main.tsx`:
83
117
 
84
118
  ```tsx
85
- // app.tsx
86
- import { run, t } from "alepha";
87
- import { $page } from "alepha/react";
119
+ // src/main.tsx
120
+ import { run, t } from "@alepha/core";
121
+ import { $page } from "@alepha/react";
88
122
  import { useState } from "react";
89
123
 
90
124
  const Hello = (props: { count: number }) => {
@@ -122,11 +156,15 @@ Create an `index.html` file:
122
156
  <title>App</title>
123
157
  </head>
124
158
  <body>
125
- <script type="module" src="app.tsx"></script>
159
+ <script type="module" src="src/main.tsx"></script>
126
160
  </body>
127
161
  </html>
128
162
  ```
129
163
 
164
+ Run the development server:
165
+
130
166
  ```bash
131
167
  npx alepha dev
132
168
  ```
169
+
170
+ Open your browser at `http://localhost:3000/` and see your React application in action.