@skalfa/skalfa-api-core 1.0.3 → 1.0.8

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 (284) hide show
  1. package/CONTRIBUTING.md +45 -0
  2. package/LICENSE +21 -0
  3. package/README.md +60 -0
  4. package/dist/auth/auth.d.ts +18 -15
  5. package/dist/auth/auth.js +20 -203
  6. package/dist/auth/auth.js.map +1 -1
  7. package/dist/auth/create-access-token.d.ts +4 -0
  8. package/dist/auth/create-access-token.js +26 -0
  9. package/dist/auth/create-access-token.js.map +1 -0
  10. package/dist/auth/create-user-mail-token.d.ts +4 -0
  11. package/dist/auth/create-user-mail-token.js +19 -0
  12. package/dist/auth/create-user-mail-token.js.map +1 -0
  13. package/dist/auth/helpers/generate-agent-id.d.ts +1 -0
  14. package/dist/auth/helpers/generate-agent-id.js +7 -0
  15. package/dist/auth/helpers/generate-agent-id.js.map +1 -0
  16. package/dist/auth/helpers/get-request-ip.d.ts +1 -0
  17. package/dist/auth/helpers/get-request-ip.js +4 -0
  18. package/dist/auth/helpers/get-request-ip.js.map +1 -0
  19. package/dist/auth/helpers/get-user-permissions.d.ts +1 -0
  20. package/dist/auth/helpers/get-user-permissions.js +9 -0
  21. package/dist/auth/helpers/get-user-permissions.js.map +1 -0
  22. package/dist/auth/helpers/index.d.ts +3 -0
  23. package/dist/auth/helpers/index.js +4 -0
  24. package/dist/auth/helpers/index.js.map +1 -0
  25. package/dist/auth/list-user-sessions.d.ts +1 -0
  26. package/dist/auth/list-user-sessions.js +10 -0
  27. package/dist/auth/list-user-sessions.js.map +1 -0
  28. package/dist/auth/revalidate-user-permissions-by-role.d.ts +1 -0
  29. package/dist/auth/revalidate-user-permissions-by-role.js +12 -0
  30. package/dist/auth/revalidate-user-permissions-by-role.js.map +1 -0
  31. package/dist/auth/revalidate-user-permissions.d.ts +1 -0
  32. package/dist/auth/revalidate-user-permissions.js +21 -0
  33. package/dist/auth/revalidate-user-permissions.js.map +1 -0
  34. package/dist/auth/revoke-access-token.d.ts +1 -0
  35. package/dist/auth/revoke-access-token.js +5 -0
  36. package/dist/auth/revoke-access-token.js.map +1 -0
  37. package/dist/auth/verify-access-token.d.ts +1 -0
  38. package/dist/auth/verify-access-token.js +47 -0
  39. package/dist/auth/verify-access-token.js.map +1 -0
  40. package/dist/auth/verify-user-mail-token.d.ts +1 -0
  41. package/dist/auth/verify-user-mail-token.js +21 -0
  42. package/dist/auth/verify-user-mail-token.js.map +1 -0
  43. package/dist/commands/cli.js +18 -27
  44. package/dist/commands/cli.js.map +1 -1
  45. package/dist/commands/make/basic-controller.js +1 -1
  46. package/dist/commands/make/basic-controller.js.map +1 -1
  47. package/dist/commands/make/basic-migration.d.ts +1 -1
  48. package/dist/commands/make/basic-migration.js +2 -2
  49. package/dist/commands/make/basic-migration.js.map +1 -1
  50. package/dist/commands/make/basic-model.js +1 -1
  51. package/dist/commands/make/basic-model.js.map +1 -1
  52. package/dist/commands/make/basic-seeder.js +1 -1
  53. package/dist/commands/make/basic-seeder.js.map +1 -1
  54. package/dist/commands/make/blueprint.js +1 -1
  55. package/dist/commands/make/blueprint.js.map +1 -1
  56. package/dist/commands/make/da-migration.js +3 -3
  57. package/dist/commands/make/da-migration.js.map +1 -1
  58. package/dist/commands/make/mail.js +2 -2
  59. package/dist/commands/make/mail.js.map +1 -1
  60. package/dist/commands/make/notification.js +1 -1
  61. package/dist/commands/make/notification.js.map +1 -1
  62. package/dist/commands/make/queue.js +1 -1
  63. package/dist/commands/make/queue.js.map +1 -1
  64. package/dist/commands/make/resource.d.ts +2 -0
  65. package/dist/commands/make/resource.js +19 -0
  66. package/dist/commands/make/resource.js.map +1 -0
  67. package/dist/commands/make/skalfa-controller.d.ts +3 -0
  68. package/dist/commands/make/{light-controller.js → skalfa-controller.js} +9 -9
  69. package/dist/commands/make/skalfa-controller.js.map +1 -0
  70. package/dist/commands/make/skalfa-model.d.ts +3 -0
  71. package/dist/commands/make/{light-model.js → skalfa-model.js} +11 -11
  72. package/dist/commands/make/skalfa-model.js.map +1 -0
  73. package/dist/commands/runner/barrels.js.map +1 -1
  74. package/dist/commands/runner/blueprint/controller-generation.js +2 -2
  75. package/dist/commands/runner/blueprint/controller-generation.js.map +1 -1
  76. package/dist/commands/runner/blueprint/documentation-generation.js.map +1 -1
  77. package/dist/commands/runner/blueprint/migration-generation.js +3 -3
  78. package/dist/commands/runner/blueprint/migration-generation.js.map +1 -1
  79. package/dist/commands/runner/blueprint/model-generation.js +2 -2
  80. package/dist/commands/runner/blueprint/model-generation.js.map +1 -1
  81. package/dist/commands/runner/blueprint/runner.js +7 -8
  82. package/dist/commands/runner/blueprint/runner.js.map +1 -1
  83. package/dist/commands/runner/blueprint/seeder-generation.js +3 -3
  84. package/dist/commands/runner/blueprint/seeder-generation.js.map +1 -1
  85. package/dist/commands/runner/da-migration.js +1 -2
  86. package/dist/commands/runner/da-migration.js.map +1 -1
  87. package/dist/commands/runner/generate-docs.d.ts +2 -0
  88. package/dist/commands/runner/generate-docs.js +400 -0
  89. package/dist/commands/runner/generate-docs.js.map +1 -0
  90. package/dist/commands/runner/migration.js +1 -1
  91. package/dist/commands/runner/migration.js.map +1 -1
  92. package/dist/commands/runner/seeder.js +1 -1
  93. package/dist/commands/runner/seeder.js.map +1 -1
  94. package/dist/commands/stubs/index.d.ts +4 -4
  95. package/dist/commands/stubs/index.js +4 -4
  96. package/dist/commands/stubs/index.js.map +1 -1
  97. package/dist/context/context.js +6 -0
  98. package/dist/context/context.js.map +1 -1
  99. package/dist/controller/controller.d.ts +17 -30
  100. package/dist/controller/controller.js +39 -121
  101. package/dist/controller/controller.js.map +1 -1
  102. package/dist/controller/response.d.ts +6 -0
  103. package/dist/controller/response.js +63 -0
  104. package/dist/controller/response.js.map +1 -0
  105. package/dist/controller/storage.d.ts +9 -0
  106. package/dist/controller/storage.js +56 -0
  107. package/dist/controller/storage.js.map +1 -0
  108. package/dist/conversion/conversion.d.ts +3 -0
  109. package/dist/conversion/conversion.js +28 -4
  110. package/dist/conversion/conversion.js.map +1 -1
  111. package/dist/conversion/date.d.ts +1 -0
  112. package/dist/conversion/date.js +77 -0
  113. package/dist/conversion/date.js.map +1 -0
  114. package/dist/index.d.ts +2 -0
  115. package/dist/index.js +2 -0
  116. package/dist/index.js.map +1 -1
  117. package/dist/logger/logger.js +33 -0
  118. package/dist/logger/logger.js.map +1 -1
  119. package/dist/mail/mail.js +6 -6
  120. package/dist/mail/mail.js.map +1 -1
  121. package/dist/middleware/access-log.d.ts +31 -0
  122. package/dist/middleware/access-log.js +13 -0
  123. package/dist/middleware/access-log.js.map +1 -0
  124. package/dist/middleware/auth.d.ts +37 -0
  125. package/dist/middleware/auth.js +16 -0
  126. package/dist/middleware/auth.js.map +1 -0
  127. package/dist/middleware/body-parse.d.ts +35 -0
  128. package/dist/middleware/body-parse.js +87 -0
  129. package/dist/middleware/body-parse.js.map +1 -0
  130. package/dist/middleware/context.d.ts +29 -0
  131. package/dist/middleware/context.js +8 -0
  132. package/dist/middleware/context.js.map +1 -0
  133. package/dist/middleware/cors.d.ts +31 -0
  134. package/dist/middleware/cors.js +27 -0
  135. package/dist/middleware/cors.js.map +1 -0
  136. package/dist/middleware/error-handler.d.ts +33 -0
  137. package/dist/middleware/error-handler.js +17 -0
  138. package/dist/middleware/error-handler.js.map +1 -0
  139. package/dist/middleware/middleware.d.ts +31 -10
  140. package/dist/middleware/middleware.js +41 -209
  141. package/dist/middleware/middleware.js.map +1 -1
  142. package/dist/middleware/private.d.ts +29 -0
  143. package/dist/middleware/private.js +8 -0
  144. package/dist/middleware/private.js.map +1 -0
  145. package/dist/middleware/rate-limiter.d.ts +32 -0
  146. package/dist/middleware/rate-limiter.js +30 -0
  147. package/dist/middleware/rate-limiter.js.map +1 -0
  148. package/dist/notification/index.d.ts +1 -0
  149. package/dist/notification/index.js +2 -0
  150. package/dist/notification/index.js.map +1 -0
  151. package/dist/notification/notification.d.ts +16 -0
  152. package/dist/notification/notification.js +64 -0
  153. package/dist/notification/notification.js.map +1 -0
  154. package/dist/permission/permission.js +9 -0
  155. package/dist/permission/permission.js.map +1 -1
  156. package/dist/registry/registry.d.ts +0 -6
  157. package/dist/registry/registry.js +6 -6
  158. package/dist/registry/registry.js.map +1 -1
  159. package/dist/storage/storage.d.ts +3 -3
  160. package/dist/storage/storage.js.map +1 -1
  161. package/dist/validation/validation.js +43 -51
  162. package/dist/validation/validation.js.map +1 -1
  163. package/package.json +4 -4
  164. package/src/auth/auth.ts +21 -252
  165. package/src/auth/create-access-token.ts +29 -0
  166. package/src/auth/create-user-mail-token.ts +24 -0
  167. package/src/auth/helpers/generate-agent-id.ts +8 -0
  168. package/src/auth/helpers/get-request-ip.ts +3 -0
  169. package/src/auth/helpers/get-user-permissions.ts +15 -0
  170. package/src/auth/helpers/index.ts +3 -0
  171. package/src/auth/list-user-sessions.ts +11 -0
  172. package/src/auth/revalidate-user-permissions-by-role.ts +13 -0
  173. package/src/auth/revalidate-user-permissions.ts +26 -0
  174. package/src/auth/revoke-access-token.ts +5 -0
  175. package/src/auth/verify-access-token.ts +56 -0
  176. package/src/auth/verify-user-mail-token.ts +24 -0
  177. package/src/commands/cli.ts +19 -29
  178. package/src/commands/make/basic-controller.ts +4 -2
  179. package/src/commands/make/basic-migration.ts +5 -3
  180. package/src/commands/make/basic-model.ts +3 -1
  181. package/src/commands/make/basic-seeder.ts +3 -1
  182. package/src/commands/make/blueprint.ts +3 -1
  183. package/src/commands/make/da-migration.ts +6 -5
  184. package/src/commands/make/mail.ts +4 -2
  185. package/src/commands/make/notification.ts +3 -1
  186. package/src/commands/make/queue.ts +3 -1
  187. package/src/commands/make/resource.ts +21 -0
  188. package/src/commands/make/{light-controller.ts → skalfa-controller.ts} +10 -8
  189. package/src/commands/make/{light-model.ts → skalfa-model.ts} +12 -10
  190. package/src/commands/runner/barrels.ts +4 -0
  191. package/src/commands/runner/blueprint/controller-generation.ts +4 -2
  192. package/src/commands/runner/blueprint/documentation-generation.ts +2 -0
  193. package/src/commands/runner/blueprint/migration-generation.ts +5 -3
  194. package/src/commands/runner/blueprint/model-generation.ts +4 -2
  195. package/src/commands/runner/blueprint/runner.ts +15 -8
  196. package/src/commands/runner/blueprint/seeder-generation.ts +5 -3
  197. package/src/commands/runner/da-migration.ts +3 -2
  198. package/src/commands/runner/generate-docs.ts +495 -0
  199. package/src/commands/runner/migration.ts +1 -1
  200. package/src/commands/runner/seeder.ts +1 -1
  201. package/src/commands/stubs/index.ts +4 -4
  202. package/src/context/context.ts +23 -17
  203. package/src/controller/controller.ts +124 -239
  204. package/src/controller/response.ts +78 -0
  205. package/src/controller/storage.ts +78 -0
  206. package/src/conversion/conversion.ts +90 -64
  207. package/src/conversion/date.ts +74 -0
  208. package/src/index.ts +2 -0
  209. package/src/logger/logger.ts +217 -176
  210. package/src/mail/mail.ts +85 -85
  211. package/src/middleware/access-log.ts +15 -0
  212. package/src/middleware/auth.ts +19 -0
  213. package/src/middleware/body-parse.ts +83 -0
  214. package/src/middleware/context.ts +11 -0
  215. package/src/middleware/cors.ts +31 -0
  216. package/src/middleware/error-handler.ts +20 -0
  217. package/src/middleware/middleware.ts +91 -288
  218. package/src/middleware/private.ts +8 -0
  219. package/src/middleware/rate-limiter.ts +41 -0
  220. package/src/notification/index.ts +1 -0
  221. package/src/notification/notification.ts +86 -0
  222. package/src/permission/permission.ts +140 -136
  223. package/src/registry/registry.ts +17 -15
  224. package/src/route/route.ts +11 -11
  225. package/src/storage/storage.ts +104 -106
  226. package/src/validation/validation.ts +322 -346
  227. package/dist/auth.util.d.ts +0 -19
  228. package/dist/auth.util.js +0 -183
  229. package/dist/auth.util.js.map +0 -1
  230. package/dist/commands/make/light-controller.d.ts +0 -3
  231. package/dist/commands/make/light-controller.js.map +0 -1
  232. package/dist/commands/make/light-model.d.ts +0 -3
  233. package/dist/commands/make/light-model.js.map +0 -1
  234. package/dist/context.util.d.ts +0 -7
  235. package/dist/context.util.js +0 -11
  236. package/dist/context.util.js.map +0 -1
  237. package/dist/controller.util.d.ts +0 -118
  238. package/dist/controller.util.js +0 -144
  239. package/dist/controller.util.js.map +0 -1
  240. package/dist/conversion.util.d.ts +0 -8
  241. package/dist/conversion.util.js +0 -52
  242. package/dist/conversion.util.js.map +0 -1
  243. package/dist/db/db.d.ts +0 -84
  244. package/dist/db/db.js +0 -177
  245. package/dist/db/db.js.map +0 -1
  246. package/dist/db/index.d.ts +0 -1
  247. package/dist/db/index.js +0 -2
  248. package/dist/db/index.js.map +0 -1
  249. package/dist/db.util.d.ts +0 -84
  250. package/dist/db.util.js +0 -177
  251. package/dist/db.util.js.map +0 -1
  252. package/dist/logger.util.d.ts +0 -30
  253. package/dist/logger.util.js +0 -126
  254. package/dist/logger.util.js.map +0 -1
  255. package/dist/mail.util.d.ts +0 -21
  256. package/dist/mail.util.js +0 -53
  257. package/dist/mail.util.js.map +0 -1
  258. package/dist/middleware.util.d.ts +0 -263
  259. package/dist/middleware.util.js +0 -233
  260. package/dist/middleware.util.js.map +0 -1
  261. package/dist/model/index.d.ts +0 -3
  262. package/dist/model/index.js +0 -4
  263. package/dist/model/index.js.map +0 -1
  264. package/dist/model/model.d.ts +0 -204
  265. package/dist/model/model.js +0 -1495
  266. package/dist/model/model.js.map +0 -1
  267. package/dist/model.util.d.ts +0 -204
  268. package/dist/model.util.js +0 -1495
  269. package/dist/model.util.js.map +0 -1
  270. package/dist/permission.util.d.ts +0 -38
  271. package/dist/permission.util.js +0 -91
  272. package/dist/permission.util.js.map +0 -1
  273. package/dist/registry.util.d.ts +0 -28
  274. package/dist/registry.util.js +0 -19
  275. package/dist/registry.util.js.map +0 -1
  276. package/dist/route.util.d.ts +0 -1
  277. package/dist/route.util.js +0 -12
  278. package/dist/route.util.js.map +0 -1
  279. package/dist/storage.util.d.ts +0 -56
  280. package/dist/storage.util.js +0 -82
  281. package/dist/storage.util.js.map +0 -1
  282. package/dist/validation.util.d.ts +0 -7
  283. package/dist/validation.util.js +0 -237
  284. package/dist/validation.util.js.map +0 -1
@@ -0,0 +1,400 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import { Command } from "commander";
4
+ // Helper to recursively find files with specific extensions
5
+ function getFiles(dir, extList) {
6
+ let results = [];
7
+ if (!fs.existsSync(dir))
8
+ return results;
9
+ const list = fs.readdirSync(dir);
10
+ for (const file of list) {
11
+ const filePath = path.join(dir, file);
12
+ const stat = fs.statSync(filePath);
13
+ if (stat.isDirectory()) {
14
+ if (file !== "node_modules" && file !== ".next" && file !== ".git") {
15
+ results = results.concat(getFiles(filePath, extList));
16
+ }
17
+ }
18
+ else {
19
+ if (extList.includes(path.extname(file))) {
20
+ results.push(filePath);
21
+ }
22
+ }
23
+ }
24
+ return results;
25
+ }
26
+ // Simple parser for object literal string (e.g. c.validation block)
27
+ function parseObjectLiteral(str) {
28
+ const result = {};
29
+ // Strip single-line and multi-line comments
30
+ const cleanStr = str
31
+ .replace(/\/\*[\s\S]*?\*\//g, "")
32
+ .replace(/\/\/.*$/gm, "");
33
+ // Regex to match key: value
34
+ const regex = /(?:(\w+)|["']([^"']+)["'])\s*:\s*([^,}\n]+)/g;
35
+ let match;
36
+ while ((match = regex.exec(cleanStr)) !== null) {
37
+ const key = match[1] || match[2];
38
+ const val = match[3].trim().replace(/['"\[\]]/g, "").replace(/\s+/g, " ");
39
+ result[key] = val;
40
+ }
41
+ return result;
42
+ }
43
+ export const generateDocsCommand = new Command("generate:docs")
44
+ .description("Generate API Markdown documentation from routes, controllers, and models")
45
+ .option("-p, --path <path>", "Filter by specific route path (e.g. --path=/users)")
46
+ .action(async (options) => {
47
+ const projectRoot = process.cwd();
48
+ const filterPath = options.path;
49
+ console.log(`🔍 Scanning project in: ${projectRoot}`);
50
+ if (filterPath) {
51
+ console.log(`Filter path: ${filterPath}`);
52
+ }
53
+ // 1. Parse Models
54
+ const modelFiles = getFiles(path.join(projectRoot, "app", "models"), [".ts"]);
55
+ const models = {};
56
+ for (const file of modelFiles) {
57
+ const content = fs.readFileSync(file, "utf8");
58
+ // Find class User extends Model
59
+ const classMatch = /class\s+(\w+)\s+extends\s+Model/g.exec(content);
60
+ if (!classMatch)
61
+ continue;
62
+ const modelName = classMatch[1];
63
+ const fields = [];
64
+ const relations = [];
65
+ // Parse fields: @Field(["fillable", "selectable", "searchable"]) name!: string
66
+ const fieldRegex = /@Field\(\s*\[([\s\S]*?)\]\s*\)\s*(\w+)\s*!?:?\s*(\w+)/g;
67
+ let fieldMatch;
68
+ while ((fieldMatch = fieldRegex.exec(content)) !== null) {
69
+ const decorators = fieldMatch[1]
70
+ .split(",")
71
+ .map((d) => d.trim().replace(/['"]/g, ""))
72
+ .filter(Boolean);
73
+ fields.push({
74
+ name: fieldMatch[2],
75
+ type: fieldMatch[3],
76
+ decorators,
77
+ });
78
+ }
79
+ // Parse relations: @HasMany(() => Role, "user_id") roles!: Role[]
80
+ const relationRegex = /@(HasMany|HasOne|BelongsTo)\(\s*\(\s*\)\s*=>\s*(\w+)[^]*?\)\s*(\w+)/g;
81
+ let relationMatch;
82
+ while ((relationMatch = relationRegex.exec(content)) !== null) {
83
+ relations.push({
84
+ type: relationMatch[1],
85
+ targetModel: relationMatch[2],
86
+ name: relationMatch[3],
87
+ });
88
+ }
89
+ models[modelName] = {
90
+ name: modelName,
91
+ fields,
92
+ relations,
93
+ };
94
+ }
95
+ // 2. Parse Controllers
96
+ const controllerFiles = getFiles(path.join(projectRoot, "app", "controllers"), [".ts"]);
97
+ const controllers = {};
98
+ for (const file of controllerFiles) {
99
+ const content = fs.readFileSync(file, "utf8");
100
+ const classMatch = /class\s+(\w+)/g.exec(content);
101
+ if (!classMatch)
102
+ continue;
103
+ const controllerName = classMatch[1];
104
+ const methods = {};
105
+ // Simple method splitter by looking for static async or static methods
106
+ const methodRegex = /static\s+(?:async\s+)?(\w+)\s*\(\s*c\s*:\s*(\w+|any)\s*\)\s*\{([\s\S]*?)(?=\s+static|\s+\/\/|\s*\}\s*$)/g;
107
+ let methodMatch;
108
+ while ((methodMatch = methodRegex.exec(content)) !== null) {
109
+ const methodName = methodMatch[1];
110
+ const body = methodMatch[3];
111
+ const isMagicResolve = body.includes(".resolve(c)");
112
+ const isMagicPump = body.includes(".pump(");
113
+ // Parse c.validation<ModelName>({ ... })
114
+ let validationModel;
115
+ let validationRules = {};
116
+ const valRegex = /c\.validation(?:<(\w+)>)?\(\s*(\{[\s\S]*?\})\s*\)/g;
117
+ const valMatch = valRegex.exec(body);
118
+ if (valMatch) {
119
+ validationModel = valMatch[1];
120
+ validationRules = parseObjectLiteral(valMatch[2]);
121
+ }
122
+ // Parse custom query parameters: c.getQuery.field, c.query.field, or destructuring
123
+ const customQueryParams = [];
124
+ const queryFieldRegex = /\bc\.(?:getQuery|query)\.(\w+)\b/g;
125
+ let qfMatch;
126
+ while ((qfMatch = queryFieldRegex.exec(body)) !== null) {
127
+ customQueryParams.push(qfMatch[1]);
128
+ }
129
+ // Destructuring: const { a, b } = c.getQuery
130
+ const queryDestructRegex = /const\s*\{\s*([\w\s,]+)\s*\}\s*=\s*c\.(?:getQuery|query)/g;
131
+ let qdMatch;
132
+ while ((qdMatch = queryDestructRegex.exec(body)) !== null) {
133
+ qdMatch[1].split(",").forEach((p) => {
134
+ const trimmed = p.trim();
135
+ if (trimmed)
136
+ customQueryParams.push(trimmed);
137
+ });
138
+ }
139
+ // Parse custom payload fields: c.payload.field, c.body.field, or destructuring
140
+ const customPayloadFields = [];
141
+ const payloadFieldRegex = /\bc\.(?:payload|body)\.(\w+)\b/g;
142
+ let pfMatch;
143
+ while ((pfMatch = payloadFieldRegex.exec(body)) !== null) {
144
+ customPayloadFields.push(pfMatch[1]);
145
+ }
146
+ const payloadDestructRegex = /const\s*\{\s*([\w\s,]+)\s*\}\s*=\s*c\.(?:payload|body)/g;
147
+ let pdMatch;
148
+ while ((pdMatch = payloadDestructRegex.exec(body)) !== null) {
149
+ pdMatch[1].split(",").forEach((p) => {
150
+ const trimmed = p.trim();
151
+ if (trimmed)
152
+ customPayloadFields.push(trimmed);
153
+ });
154
+ }
155
+ methods[methodName] = {
156
+ methodName,
157
+ isMagicResolve,
158
+ isMagicPump,
159
+ validationModel,
160
+ validationRules,
161
+ customQueryParams: Array.from(new Set(customQueryParams)),
162
+ customPayloadFields: Array.from(new Set(customPayloadFields)),
163
+ };
164
+ }
165
+ controllers[controllerName] = {
166
+ name: controllerName,
167
+ methods,
168
+ };
169
+ }
170
+ // 3. Parse Routes
171
+ const routeFiles = getFiles(path.join(projectRoot, "app", "routes"), [".ts"]);
172
+ const routesList = [];
173
+ for (const file of routeFiles) {
174
+ const content = fs.readFileSync(file, "utf8");
175
+ const filename = path.basename(file);
176
+ // We want to find Elysia route registrations and api() helper registrations
177
+ // Group: app.group('/api', (route) => { ... })
178
+ // Let's capture the group path
179
+ const groupRegex = /\.group\(\s*['"]([^'"]+)['"]/g;
180
+ let groupPrefix = "";
181
+ const groupMatch = groupRegex.exec(content);
182
+ if (groupMatch) {
183
+ groupPrefix = groupMatch[1]; // e.g. "/api"
184
+ }
185
+ // 1. Standard routes: route.get('/path', Controller.method)
186
+ const routeRegex = /route\.(\w+)\(\s*['"]([^'"]+)['"]\s*,\s*(\w+)\.(\w+)\)/g;
187
+ let rMatch;
188
+ while ((rMatch = routeRegex.exec(content)) !== null) {
189
+ routesList.push({
190
+ method: rMatch[1].toUpperCase(),
191
+ path: `${groupPrefix}${rMatch[2]}`.replace(/\/+/g, "/"),
192
+ controllerName: rMatch[3],
193
+ methodName: rMatch[4],
194
+ routesFile: filename,
195
+ });
196
+ }
197
+ // 2. Resource routes: api(route, "/users", UserController)
198
+ const resourceRegex = /api\(\s*\w+\s*,\s*['"]([^'"]+)['"]\s*,\s*(\w+)\)/g;
199
+ let resMatch;
200
+ while ((resMatch = resourceRegex.exec(content)) !== null) {
201
+ const basePath = `${groupPrefix}${resMatch[1]}`.replace(/\/+/g, "/");
202
+ const controllerName = resMatch[2];
203
+ // Standard RESTful mappings for api()
204
+ const resourceMethods = [
205
+ { method: "GET", path: basePath, methodName: "index" },
206
+ { method: "POST", path: basePath, methodName: "store" },
207
+ { method: "PUT", path: `${basePath}/:id`.replace(/\/+/g, "/"), methodName: "update" },
208
+ { method: "DELETE", path: `${basePath}/:id`.replace(/\/+/g, "/"), methodName: "destroy" },
209
+ ];
210
+ for (const rm of resourceMethods) {
211
+ routesList.push({
212
+ method: rm.method,
213
+ path: rm.path,
214
+ controllerName,
215
+ methodName: rm.methodName,
216
+ routesFile: filename,
217
+ });
218
+ }
219
+ }
220
+ }
221
+ // 4. Generate Markdown Documentation
222
+ let generatedCount = 0;
223
+ const docsDir = path.join(projectRoot, "docs");
224
+ if (!fs.existsSync(docsDir)) {
225
+ fs.mkdirSync(docsDir, { recursive: true });
226
+ }
227
+ for (const route of routesList) {
228
+ const fullPath = route.path;
229
+ // Filter by path if requested
230
+ if (filterPath && !fullPath.startsWith(filterPath)) {
231
+ continue;
232
+ }
233
+ const controller = controllers[route.controllerName];
234
+ if (!controller)
235
+ continue;
236
+ const methodInfo = controller.methods[route.methodName];
237
+ if (!methodInfo)
238
+ continue;
239
+ // Find associated model
240
+ // First check if validation specified a model, otherwise guess from controller name or model usages
241
+ let modelName = methodInfo.validationModel;
242
+ if (!modelName) {
243
+ // Guess from controller name (e.g., UserController -> User)
244
+ const guessed = route.controllerName.replace("Controller", "");
245
+ if (models[guessed]) {
246
+ modelName = guessed;
247
+ }
248
+ }
249
+ const model = modelName ? models[modelName] : undefined;
250
+ // Determine output directory based on routes file and path
251
+ // If routesFile is not "base.routes.ts", prefix folder with routesFile prefix (e.g. admin.routes.ts -> admin)
252
+ let modulePrefix = "";
253
+ if (route.routesFile !== "base.routes.ts") {
254
+ modulePrefix = route.routesFile.replace(".routes.ts", "");
255
+ }
256
+ // First path segment after the group/api prefix
257
+ const cleanPath = fullPath.replace(/^\/(api|v1)\//, "").replace(/^\//, "");
258
+ const firstSegment = cleanPath.split("/")[0] || "general";
259
+ const targetFolder = modulePrefix
260
+ ? path.join(docsDir, modulePrefix, firstSegment)
261
+ : path.join(docsDir, firstSegment);
262
+ if (!fs.existsSync(targetFolder)) {
263
+ fs.mkdirSync(targetFolder, { recursive: true });
264
+ }
265
+ // File Naming: [METHOD]_[SAFE_PATH].md
266
+ // Replace :param with [param], and other unsafe chars with _
267
+ const safePathName = fullPath
268
+ .replace(/:(\w+)/g, "[$1]") // replace :id with [id]
269
+ .replace(/^\//, "")
270
+ .replace(/\/+/g, "_"); // replace slashes with underscore
271
+ const fileName = `${route.method}_${safePathName}.md`;
272
+ const filePath = path.join(targetFolder, fileName);
273
+ // Start building Markdown content
274
+ let md = `# ${route.method} ${fullPath}\n\n`;
275
+ md += `* **Controller**: \`${route.controllerName}.${route.methodName}\`\n`;
276
+ if (model) {
277
+ md += `* **Model**: \`${model.name}\`\n`;
278
+ }
279
+ md += `* **Features**: ${[
280
+ methodInfo.isMagicResolve ? "**[Magic Resolve]**" : "",
281
+ methodInfo.isMagicPump ? "**[Magic Pump]**" : "",
282
+ ]
283
+ .filter(Boolean)
284
+ .join(", ") || "None"}\n\n`;
285
+ // 1. Headers Table (Only if GET and supports option mode, or custom headers)
286
+ if (route.method === "GET" && methodInfo.isMagicResolve) {
287
+ md += `## Request Headers (Optional)\n\n`;
288
+ md += `| Key | Example Value |\n`;
289
+ md += `| :--- | :--- |\n`;
290
+ md += `| \`x-option\` | \`"true"\` |\n\n`;
291
+ }
292
+ // 2. Query Parameters Table
293
+ const queryParams = [];
294
+ if (route.method === "GET" && methodInfo.isMagicResolve) {
295
+ queryParams.push({ key: "isOption", example: "true", desc: "Alternative to activate **Dropdown/Option Mode**." }, { key: "option[]", example: '["id", "name"]', desc: "Customizes the columns mapped to `value` and `label` in Option Mode." }, { key: "page", example: "1", desc: "The page number for pagination." }, { key: "paginate", example: "15", desc: "Number of records per page." }, { key: "search", example: '"john"', desc: "Performs a global search across `searchable` fields in the model." }, { key: "filter[column]", example: '"active"', desc: "Filters records by a specific column value." });
296
+ // Add expandable relations
297
+ if (model && model.relations.length > 0) {
298
+ const relationNames = model.relations.map((r) => `\`"${r.name}"\``).join(", ");
299
+ queryParams.push({
300
+ key: "expand",
301
+ example: `"${model.relations[0].name}"`,
302
+ desc: `Eager-loads related models. Available relations: ${relationNames}. Can also be passed as \`expand[]\`.`,
303
+ });
304
+ }
305
+ queryParams.push({ key: "sort", example: '"-created_at"', desc: "Sorts by a column. Prefix with `-` for descending order." });
306
+ }
307
+ // Add custom query parameters found in controller
308
+ for (const customQ of methodInfo.customQueryParams) {
309
+ // Skip if already in standard params
310
+ if (["page", "paginate", "search", "filter", "expand", "sort", "isOption", "option"].includes(customQ))
311
+ continue;
312
+ queryParams.push({
313
+ key: customQ,
314
+ example: `"value"`,
315
+ desc: "Custom query parameter extracted from controller logic.",
316
+ });
317
+ }
318
+ if (queryParams.length > 0) {
319
+ md += `## Query Parameters\n\n`;
320
+ md += `| Key | Example Value |\n`;
321
+ md += `| :--- | :--- |\n`;
322
+ for (const q of queryParams) {
323
+ md += `| \`${q.key}\` | \`${q.example}\` |\n`;
324
+ }
325
+ md += `\n`;
326
+ }
327
+ // 3. Payload Table (For POST/PUT/PATCH)
328
+ if (["POST", "PUT", "PATCH"].includes(route.method)) {
329
+ md += `## Payload (JSON Body)\n\n`;
330
+ md += `| Key | Example Value | Required | Validation |\n`;
331
+ md += `| :--- | :--- | :--- | :--- |\n`;
332
+ const payloadFieldsSet = new Set();
333
+ // First add fields from validation rules
334
+ for (const [field, rule] of Object.entries(methodInfo.validationRules)) {
335
+ payloadFieldsSet.add(field);
336
+ const isRequired = rule.includes("required") ? "Yes" : "No";
337
+ md += `| \`${field}\` | \`""\` | ${isRequired} | \`${rule}\` |\n`;
338
+ }
339
+ // Add other fillable fields from Model if not already in validation
340
+ if (model) {
341
+ for (const f of model.fields) {
342
+ if (f.decorators.includes("fillable") && !payloadFieldsSet.has(f.name)) {
343
+ payloadFieldsSet.add(f.name);
344
+ md += `| \`${f.name}\` | \`""\` | No | \`None\` |\n`;
345
+ }
346
+ }
347
+ // Add pumpable relations
348
+ if (methodInfo.isMagicPump) {
349
+ for (const r of model.relations) {
350
+ if (!payloadFieldsSet.has(r.name)) {
351
+ payloadFieldsSet.add(r.name);
352
+ const isArray = r.type === "HasMany" ? "[]" : "";
353
+ md += `| \`${r.name}\` | \`${r.type === "HasMany" ? "[]" : "{}"}\` | No | \`Relation (${r.type})\` |\n`;
354
+ }
355
+ }
356
+ }
357
+ }
358
+ // Add custom payload fields found in controller
359
+ for (const customP of methodInfo.customPayloadFields) {
360
+ if (!payloadFieldsSet.has(customP)) {
361
+ payloadFieldsSet.add(customP);
362
+ md += `| \`${customP}\` | \`""\` | No | \`Custom\` |\n`;
363
+ }
364
+ }
365
+ md += `\n`;
366
+ }
367
+ // 4. Response Table
368
+ md += `## Response\n\n`;
369
+ md += `| Key | Example Result |\n`;
370
+ md += `| :--- | :--- |\n`;
371
+ if (route.method === "GET" && methodInfo.isMagicResolve) {
372
+ md += `| \`data\` | \`[]\` |\n`;
373
+ md += `| \`total\` | \`0\` |\n`;
374
+ }
375
+ else if (model) {
376
+ // Show selectable fields of the model
377
+ for (const f of model.fields) {
378
+ if (f.decorators.includes("selectable")) {
379
+ let exampleVal = `""`;
380
+ if (f.type === "number")
381
+ exampleVal = `0`;
382
+ else if (f.type === "boolean")
383
+ exampleVal = `true`;
384
+ else if (f.type === "Date")
385
+ exampleVal = `"${new Date().toISOString()}"`;
386
+ md += `| \`${f.name}\` | \`${exampleVal}\` |\n`;
387
+ }
388
+ }
389
+ }
390
+ else {
391
+ md += `| \`success\` | \`true\` |\n`;
392
+ }
393
+ md += `\n`;
394
+ fs.writeFileSync(filePath, md, "utf8");
395
+ console.log(`Generated: docs/${path.relative(docsDir, filePath)}`);
396
+ generatedCount++;
397
+ }
398
+ console.log(`🎉 API Documentation generated successfully! Total files: ${generatedCount}`);
399
+ });
400
+ //# sourceMappingURL=generate-docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-docs.js","sourceRoot":"","sources":["../../../src/commands/runner/generate-docs.ts"],"names":[],"mappings":"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"}
@@ -78,7 +78,7 @@ async function runMigrationFile() {
78
78
  const migrated = migrations.map((row) => row.name);
79
79
  const migrationsDir = fs.existsSync(path.resolve("./database/migrations"))
80
80
  ? path.resolve("./database/migrations")
81
- : path.resolve("./src/database/migrations");
81
+ : path.resolve("./database/migrations");
82
82
  if (!fs.existsSync(migrationsDir)) {
83
83
  logger.info("No migrations directory found.");
84
84
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"migration.js","sourceRoot":"","sources":["../../../src/commands/runner/migration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migration.js","sourceRoot":"","sources":["../../../src/commands/runner/migration.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ export const seederCommand = new Command("seeder")
20
20
  export const runSeeder = async () => {
21
21
  const seedersDir = fs.existsSync(path.join(process.cwd(), "database", "seeders"))
22
22
  ? path.join(process.cwd(), "database", "seeders")
23
- : path.join(process.cwd(), "src", "database", "seeders");
23
+ : path.join(process.cwd(), "database", "seeders");
24
24
  if (!fs.existsSync(seedersDir)) {
25
25
  logger.info("No seeders directory found.");
26
26
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"seeder.js","sourceRoot":"","sources":["../../../src/commands/runner/seeder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,yCAAyC;AACzC,qBAAqB;AACrB,yCAAyC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,SAAS,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;IAClC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAC/E,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC;QACjD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAC3D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAExE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QAErD,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,MAAM,MAAM,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;AAC1C,CAAC,CAAC"}
1
+ {"version":3,"file":"seeder.js","sourceRoot":"","sources":["../../../src/commands/runner/seeder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,yCAAyC;AACzC,qBAAqB;AACrB,yCAAyC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,SAAS,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;IAClC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAC/E,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC;QACjD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAExE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QAErD,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,MAAM,MAAM,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;AAC1C,CAAC,CAAC"}
@@ -4,10 +4,10 @@ export declare const basicModelStub = "import { Model } from '@utils'\n\nexport
4
4
  export declare const basicSeederStub = "import { {{ model }} } from \"@models\";\n\nexport default async function {{ name }}() {\n // =========================>\n // ## Seed the application's database\n // =========================>\n \n await {{ model }}.query().insert([]);\n}\n";
5
5
  export declare const blueprintStub = "[\n {\n \"model\" : \"\",\n \"schema\" : {},\n \"relations\": {},\n \"controllers\": {},\n \"migrations\" : true,\n \"seeders\" : [],\n \"documentation\": true\n }\n]";
6
6
  export declare const daMigrationStub = "import { DAMigration } from \"@utils\"\n\nexport default class {{ className }} extends DAMigration {\n async up() { \n await this.createTable(\"{{ tableName }}\",(table) => {\n table.uuid()\n }, {\n engine: \"MergeTree\",\n })\n }\n}\n";
7
- export declare const lightControllerStub = "{{ marker }}\nimport type { ControllerContext } from \"elysia\"\nimport { permission } from '@utils'\nimport { {{ model }} } from '@models'\n\n\n\n// ========================================>\n// ## Permission of the resource.\n// ========================================>\nconst p = permission.register({\n \"{{ permission_code }}\": {\n name: \"{{ permission_name }}\",\n accesses: {\n \"00\": \"Melihat\",\n \"01\": \"Membuat\",\n \"02\": \"Mengubah\",\n \"03\": \"Menghapus\",\n }\n }\n})\n\n\n\nexport class {{ name }} {\n // ========================================>\n // ## Display a listing of the resource.\n // ========================================>\n static async index(c: ControllerContext) {\n p.have(\"{{ permission_code }}.00\").guard(c)\n\n const { data, total } = await {{ model }}.query().resolve(c)\n \n c.responseData(data, total)\n }\n\n\n // =============================================>\n // ## Store a newly created resource.\n // =============================================>\n static async store(c: ControllerContext) {\n p.have(\"{{ permission_code }}.01\").guard(c)\n\n c.validation<{{ model }}>({{{ validations }}})\n\n let record = {}\n\n try {\n record = await (new {{ model }}).pump(c.payload) \n } catch (err) {\n c.responseError(err as Error, \"Create {{ model }}\")\n }\n\n c.responseSaved(record)\n }\n\n\n // ============================================>\n // ## Update the specified resource.\n // ============================================>\n static async update(c: ControllerContext) {\n p.have(\"{{ permission_code }}.02\").guard(c)\n\n const record = await {{ model }}.query().findOrNotFound(c.params.id)\n\n c.validation<{{ model }}>({{{ validations }}})\n\n try {\n await record.pump(c.payload)\n } catch (err) {\n c.responseError(err as Error, \"Update {{ model }}\")\n }\n \n c.responseSaved(record)\n }\n\n\n // ===============================================>\n // ## Remove the specified resource.\n // ===============================================>\n static async destroy(c: ControllerContext) {\n p.have(\"{{ permission_code }}.03\").guard(c)\n\n const record = await {{ model }}.query().findOrNotFound(c.params.id)\n \n try {\n await record.delete()\n } catch (err) {\n c.responseError(err as Error, \"Delete {{ model }}\")\n }\n\n c.responseSuccess(record)\n }\n}\n";
8
- export declare const lightMigrationStub = "{{ marker }}\nimport type { Knex } from \"knex\"\n\nexport async function up(knex: Knex): Promise<void> {\n await knex.schema.createTable(\"{{ tableName }}\", (table) => {\n table.bigIncrements('id').primary()\n{{ schemas }}\n table.timestamps(true, true)\n table.softDelete()\n })\n\n{{ pivot }}\n}";
9
- export declare const lightModelStub = "{{ marker }}\nimport { Model, SoftDelete{{ import_utils }} } from '@utils'\n{{ import }}\n\nexport class {{ name }} extends Model {\n // =====================>\n // ## Field\n // =====================>\n{{ fields }}\n\n @SoftDelete()\n deleted_at!: Date\n\n\n // =========================>\n // ## Relations\n // =========================>\n{{ relations }}\n\n\n // =====================>\n // ## Attribute\n // =====================>\n{{ attributes }}\n\n\n // =====================>\n // ## Hook\n // =====================>\n\n}\n";
10
- export declare const lightSeederStub = "{{ marker }}\nimport { {{ model }} } from \"@models\";\n\nexport default async function {{ name }}Seeder() {\n // =========================>\n // ## Seed the application's database\n // =========================>\n \n await (new {{ model }}).pump([\n {{ seeders }}\n ]);\n}\n";
7
+ export declare const skalfaControllerStub = "{{ marker }}\nimport type { ControllerContext } from \"elysia\"\nimport { permission } from '@utils'\nimport { {{ model }} } from '@models'\n\n\n\n// ========================================>\n// ## Permission of the resource.\n// ========================================>\nconst p = permission.register({\n \"{{ permission_code }}\": {\n name: \"{{ permission_name }}\",\n accesses: {\n \"00\": \"Melihat\",\n \"01\": \"Membuat\",\n \"02\": \"Mengubah\",\n \"03\": \"Menghapus\",\n }\n }\n})\n\n\n\nexport class {{ name }} {\n // ========================================>\n // ## Display a listing of the resource.\n // ========================================>\n static async index(c: ControllerContext) {\n p.have(\"{{ permission_code }}.00\").guard(c)\n\n const { data, total } = await {{ model }}.query().resolve(c)\n \n c.responseData(data, total)\n }\n\n\n // =============================================>\n // ## Store a newly created resource.\n // =============================================>\n static async store(c: ControllerContext) {\n p.have(\"{{ permission_code }}.01\").guard(c)\n\n c.validation<{{ model }}>({{{ validations }}})\n\n let record = {}\n\n try {\n record = await (new {{ model }}).pump(c.payload) \n } catch (err) {\n c.responseError(err as Error, \"Create {{ model }}\")\n }\n\n c.responseSaved(record)\n }\n\n\n // ============================================>\n // ## Update the specified resource.\n // ============================================>\n static async update(c: ControllerContext) {\n p.have(\"{{ permission_code }}.02\").guard(c)\n\n const record = await {{ model }}.query().findOrNotFound(c.params.id)\n\n c.validation<{{ model }}>({{{ validations }}})\n\n try {\n await record.pump(c.payload)\n } catch (err) {\n c.responseError(err as Error, \"Update {{ model }}\")\n }\n \n c.responseSaved(record)\n }\n\n\n // ===============================================>\n // ## Remove the specified resource.\n // ===============================================>\n static async destroy(c: ControllerContext) {\n p.have(\"{{ permission_code }}.03\").guard(c)\n\n const record = await {{ model }}.query().findOrNotFound(c.params.id)\n \n try {\n await record.delete()\n } catch (err) {\n c.responseError(err as Error, \"Delete {{ model }}\")\n }\n\n c.responseSuccess(record)\n }\n}\n";
8
+ export declare const skalfaMigrationStub = "{{ marker }}\nimport type { Knex } from \"knex\"\n\nexport async function up(knex: Knex): Promise<void> {\n await knex.schema.createTable(\"{{ tableName }}\", (table) => {\n table.bigIncrements('id').primary()\n{{ schemas }}\n table.timestamps(true, true)\n table.softDelete()\n })\n\n{{ pivot }}\n}";
9
+ export declare const skalfaModelStub = "{{ marker }}\nimport { Model, SoftDelete{{ import_utils }} } from '@utils'\n{{ import }}\n\nexport class {{ name }} extends Model {\n // =====================>\n // ## Field\n // =====================>\n{{ fields }}\n\n @SoftDelete()\n deleted_at!: Date\n\n\n // =========================>\n // ## Relations\n // =========================>\n{{ relations }}\n\n\n // =====================>\n // ## Attribute\n // =====================>\n{{ attributes }}\n\n\n // =====================>\n // ## Hook\n // =====================>\n\n}\n";
10
+ export declare const skalfaSeederStub = "{{ marker }}\nimport { {{ model }} } from \"@models\";\n\nexport default async function {{ name }}Seeder() {\n // =========================>\n // ## Seed the application's database\n // =========================>\n \n await (new {{ model }}).pump([\n {{ seeders }}\n ]);\n}\n";
11
11
  export declare const mailStub = "import { renderMailTemplate, sendMail } from \"@utils\"\n\nexport async function {{ name }}Mail(to: string) {\n const content = renderMailTemplate(\"{{ name }}\", {\n title: \"{{ title }}\",\n })\n\n const send = await sendMail({\n subject: \"{{ title }}\",\n to: to,\n content: content\n })\n \n return send;\n}\n";
12
12
  export declare const notificationStub = "import { queue } from \"@utils\";\n\nexport async function {{ name }}Notification(payload: Record<string,any>) {\n await queue.add('notification', { payload })\n}\n";
13
13
  export declare const queueStub = "import { queue } from '@utils'\n\nexport const {{ name }}QueueWorker = () => {\n queue.worker(\"{{ worker_name }}\", async (payload) => {\n \n })\n}\n";
@@ -80,7 +80,7 @@ export default class {{ className }} extends DAMigration {
80
80
  }
81
81
  }
82
82
  `;
83
- export const lightControllerStub = `{{ marker }}
83
+ export const skalfaControllerStub = `{{ marker }}
84
84
  import type { ControllerContext } from "elysia"
85
85
  import { permission } from '@utils'
86
86
  import { {{ model }} } from '@models'
@@ -175,7 +175,7 @@ export class {{ name }} {
175
175
  }
176
176
  }
177
177
  `;
178
- export const lightMigrationStub = `{{ marker }}
178
+ export const skalfaMigrationStub = `{{ marker }}
179
179
  import type { Knex } from "knex"
180
180
 
181
181
  export async function up(knex: Knex): Promise<void> {
@@ -188,7 +188,7 @@ export async function up(knex: Knex): Promise<void> {
188
188
 
189
189
  {{ pivot }}
190
190
  }`;
191
- export const lightModelStub = `{{ marker }}
191
+ export const skalfaModelStub = `{{ marker }}
192
192
  import { Model, SoftDelete{{ import_utils }} } from '@utils'
193
193
  {{ import }}
194
194
 
@@ -220,7 +220,7 @@ export class {{ name }} extends Model {
220
220
 
221
221
  }
222
222
  `;
223
- export const lightSeederStub = `{{ marker }}
223
+ export const skalfaSeederStub = `{{ marker }}
224
224
  import { {{ model }} } from "@models";
225
225
 
226
226
  export default async function {{ name }}Seeder() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/stubs/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCjC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;EAShC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;EAI5B,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;CAS9B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;EAU3B,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;CAW9B,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8FlC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;EAYhC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B7B,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;CAY9B,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;CAevB,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;CAK/B,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;CAOxB,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;CAUxB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/stubs/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCjC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;EAShC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;EAI5B,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;CAS9B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;EAU3B,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;CAW9B,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8FnC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;EAYjC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B9B,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;CAY/B,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;CAevB,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;CAK/B,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;CAOxB,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;CAUxB,CAAC"}
@@ -1,9 +1,15 @@
1
1
  import { AsyncLocalStorage } from 'node:async_hooks';
2
2
  const storage = new AsyncLocalStorage();
3
3
  export const context = {
4
+ // =====================================>
5
+ // ## Context: run a function within context
6
+ // =====================================>
4
7
  run(ctx, fn) {
5
8
  return storage.run(ctx, fn);
6
9
  },
10
+ // =====================================>
11
+ // ## Context: retrieve context property value
12
+ // =====================================>
7
13
  get(key) {
8
14
  return storage.getStore()?.[key];
9
15
  },
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAMpD,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAc,CAAA;AAEnD,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,GAAG,CAAI,GAAe,EAAE,EAAW;QACjC,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAC7B,CAAC;IAED,GAAG,CAA6B,GAAM;QACpC,OAAO,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;IAClC,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAMpD,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAc,CAAA;AAEnD,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,yCAAyC;IACzC,4CAA4C;IAC5C,yCAAyC;IACzC,GAAG,CAAI,GAAe,EAAE,EAAW;QACjC,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAC7B,CAAC;IAED,yCAAyC;IACzC,8CAA8C;IAC9C,yCAAyC;IACzC,GAAG,CAA6B,GAAM;QACpC,OAAO,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;IAClC,CAAC;CACF,CAAA"}