@bejibun/core 0.1.39 → 0.1.41

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 (60) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/bases/BaseController.d.ts +1 -2
  3. package/bases/BaseModel.js +3 -3
  4. package/builders/RouterBuilder.d.ts +4 -0
  5. package/builders/RouterBuilder.js +30 -7
  6. package/commands/Kernel.d.ts +1 -0
  7. package/commands/Kernel.js +28 -13
  8. package/commands/{DbSeedCommand.d.ts → db/DbSeedCommand.d.ts} +2 -2
  9. package/commands/{DbSeedCommand.js → db/DbSeedCommand.js} +2 -2
  10. package/commands/maintenance/MaintenanceDownCommand.d.ts +27 -0
  11. package/commands/maintenance/MaintenanceDownCommand.js +40 -0
  12. package/commands/{MigrateFreshCommand.d.ts → migrate/MigrateFreshCommand.d.ts} +2 -2
  13. package/commands/{MigrateFreshCommand.js → migrate/MigrateFreshCommand.js} +5 -4
  14. package/commands/{MigrateLatestCommand.d.ts → migrate/MigrateLatestCommand.d.ts} +2 -2
  15. package/commands/{MigrateLatestCommand.js → migrate/MigrateLatestCommand.js} +2 -2
  16. package/commands/{MigrateRollbackCommand.d.ts → migrate/MigrateRollbackCommand.d.ts} +2 -2
  17. package/commands/{MigrateRollbackCommand.js → migrate/MigrateRollbackCommand.js} +5 -4
  18. package/commands/{MigrateStatusCommand.d.ts → migrate/MigrateStatusCommand.d.ts} +2 -2
  19. package/commands/{MigrateStatusCommand.js → migrate/MigrateStatusCommand.js} +5 -4
  20. package/config/database.js +2 -2
  21. package/exceptions/ModelNotFoundException.js +2 -0
  22. package/exceptions/RouterInvalidException.js +2 -0
  23. package/exceptions/ValidatorException.js +2 -0
  24. package/facades/Router.d.ts +1 -0
  25. package/facades/Router.js +5 -14
  26. package/package.json +6 -5
  27. package/types/router.d.ts +1 -1
  28. package/bun.lock +0 -266
  29. package/src/ace.ts +0 -22
  30. package/src/bases/BaseController.ts +0 -139
  31. package/src/bases/BaseModel.ts +0 -108
  32. package/src/bases/BaseValidator.ts +0 -8
  33. package/src/bases/index.ts +0 -3
  34. package/src/bootstrap.ts +0 -5
  35. package/src/builders/ResponseBuilder.ts +0 -54
  36. package/src/builders/RouterBuilder.ts +0 -173
  37. package/src/commands/DbSeedCommand.ts +0 -57
  38. package/src/commands/Kernel.ts +0 -49
  39. package/src/commands/MigrateFreshCommand.ts +0 -76
  40. package/src/commands/MigrateLatestCommand.ts +0 -56
  41. package/src/commands/MigrateRollbackCommand.ts +0 -72
  42. package/src/commands/MigrateStatusCommand.ts +0 -64
  43. package/src/config/database.ts +0 -41
  44. package/src/exceptions/ModelNotFoundException.ts +0 -15
  45. package/src/exceptions/RouterInvalidException.ts +0 -15
  46. package/src/exceptions/ValidatorException.ts +0 -15
  47. package/src/exceptions/index.ts +0 -3
  48. package/src/facades/Response.ts +0 -15
  49. package/src/facades/Router.ts +0 -89
  50. package/src/facades/SoftDeletes.ts +0 -66
  51. package/src/facades/index.ts +0 -3
  52. package/src/index.ts +0 -5
  53. package/src/types/index.d.ts +0 -4
  54. package/src/types/middleware.d.ts +0 -7
  55. package/src/types/router.d.ts +0 -5
  56. package/src/types/validator.d.ts +0 -3
  57. package/src/types/vine.d.ts +0 -13
  58. package/src/utils/vine.ts +0 -2
  59. package/src/utils/vines/exists.ts +0 -41
  60. package/src/utils/vines/unique.ts +0 -41
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bejibun/core",
3
- "version": "0.1.39",
3
+ "version": "0.1.41",
4
4
  "author": "Havea Crenata <havea.crenata@gmail.com>",
5
5
  "repository": {
6
6
  "type": "git",
@@ -9,9 +9,10 @@
9
9
  "main": "index.js",
10
10
  "module": "index.js",
11
11
  "dependencies": {
12
- "@bejibun/cors": "^0.1.1",
13
- "@bejibun/logger": "^0.1.14",
14
- "@bejibun/utils": "^0.1.1",
12
+ "@bejibun/app": "^0.1.12",
13
+ "@bejibun/cors": "^0.1.11",
14
+ "@bejibun/logger": "^0.1.18",
15
+ "@bejibun/utils": "^0.1.14",
15
16
  "@vinejs/vine": "^3.0.1",
16
17
  "commander": "^14.0.1",
17
18
  "knex": "^3.1.0",
@@ -44,7 +45,7 @@
44
45
  "rsync": "rsync -a dist/ ./",
45
46
  "clean": "rm -rf dist",
46
47
  "build": "bunx tsc -p tsconfig.json && bun run copy && bun run alias && bun run rsync && bun run clean",
47
- "deploy": "bun run build && npm publish --access public"
48
+ "deploy": "bun run build && bun publish --access public"
48
49
  },
49
50
  "type": "module",
50
51
  "types": "index.d.ts"
package/types/router.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import {BunRequest} from "bun";
1
+ import type {BunRequest} from "bun";
2
2
 
3
3
  export type HandlerType = (request: BunRequest) => Promise<Response>;
4
4
  export type RouterGroup = Record<string, Record<string, HandlerType>>;
package/bun.lock DELETED
@@ -1,266 +0,0 @@
1
- {
2
- "lockfileVersion": 1,
3
- "workspaces": {
4
- "": {
5
- "name": "@bejibun/core",
6
- "dependencies": {
7
- "@bejibun/cors": "^0.1.0",
8
- "@bejibun/logger": "^0.1.13",
9
- "@bejibun/utils": "^0.1.1",
10
- "@vinejs/vine": "^3.0.1",
11
- "commander": "^14.0.1",
12
- "knex": "^3.1.0",
13
- "luxon": "^3.7.2",
14
- "objection": "^3.1.5",
15
- "ora": "^9.0.0",
16
- "pg": "^8.16.3",
17
- },
18
- "devDependencies": {
19
- "@types/bun": "latest",
20
- "@types/luxon": "^3.7.1",
21
- "tsc-alias": "^1.8.16",
22
- },
23
- },
24
- },
25
- "packages": {
26
- "@bejibun/cors": ["@bejibun/cors@0.1.1", "", { "dependencies": { "@bejibun/utils": "^0.1.0" } }, "sha512-9riA6+yZbCyS1KSB+DnUqF7EevecqbwwMWlJsq29Cqq15fX7YJJr6T/GIt6t905dlAQkbMOloPUp1mpKCKBhFg=="],
27
-
28
- "@bejibun/logger": ["@bejibun/logger@0.1.14", "", { "dependencies": { "@bejibun/utils": "^0.1.0", "chalk": "^5.6.2", "luxon": "^3.7.2" } }, "sha512-Y0rwHMUaJpKE2G3ZRsXKlpwKPQAVlqut44laFJfltTUS7vMZbnKMuWYdfaCp3rX6DCUNxeaChX+8Jte3tYJ50g=="],
29
-
30
- "@bejibun/utils": ["@bejibun/utils@0.1.1", "", {}, "sha512-8TofYYN+EhPQgNOkyovMaAamRqbK/PisrAxjspXFlqVLj8bnmdOsZjosTpNXesLGIftn4rKkaFsfaafD//31Hg=="],
31
-
32
- "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="],
33
-
34
- "@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="],
35
-
36
- "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="],
37
-
38
- "@poppinss/macroable": ["@poppinss/macroable@1.1.0", "", {}, "sha512-y/YKzZDuG8XrpXpM7Z1RdQpiIc0MAKyva24Ux1PB4aI7RiSI/79K8JVDcdyubriTm7vJ1LhFs8CrZpmPnx/8Pw=="],
39
-
40
- "@types/bun": ["@types/bun@1.3.0", "", { "dependencies": { "bun-types": "1.3.0" } }, "sha512-+lAGCYjXjip2qY375xX/scJeVRmZ5cY0wyHYyCYxNcdEXrQ4AOe3gACgd4iQ8ksOslJtW4VNxBJ8llUwc3a6AA=="],
41
-
42
- "@types/luxon": ["@types/luxon@3.7.1", "", {}, "sha512-H3iskjFIAn5SlJU7OuxUmTEpebK6TKB8rxZShDslBMZJ5u9S//KM1sbdAisiSrqwLQncVjnpi2OK2J51h+4lsg=="],
43
-
44
- "@types/node": ["@types/node@24.7.2", "", { "dependencies": { "undici-types": "~7.14.0" } }, "sha512-/NbVmcGTP+lj5oa4yiYxxeBjRivKQ5Ns1eSZeB99ExsEQ6rX5XYU1Zy/gGxY/ilqtD4Etx9mKyrPxZRetiahhA=="],
45
-
46
- "@types/react": ["@types/react@19.2.2", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA=="],
47
-
48
- "@types/validator": ["@types/validator@13.15.3", "", {}, "sha512-7bcUmDyS6PN3EuD9SlGGOxM77F8WLVsrwkxyWxKnxzmXoequ6c7741QBrANq6htVRGOITJ7z72mTP6Z4XyuG+Q=="],
49
-
50
- "@vinejs/compiler": ["@vinejs/compiler@3.0.0", "", {}, "sha512-v9Lsv59nR56+bmy2p0+czjZxsLHwaibJ+SV5iK9JJfehlJMa501jUJQqqz4X/OqKXrxtE3uTQmSqjUqzF3B2mw=="],
51
-
52
- "@vinejs/vine": ["@vinejs/vine@3.0.1", "", { "dependencies": { "@poppinss/macroable": "^1.0.4", "@types/validator": "^13.12.2", "@vinejs/compiler": "^3.0.0", "camelcase": "^8.0.0", "dayjs": "^1.11.13", "dlv": "^1.1.3", "normalize-url": "^8.0.1", "validator": "^13.12.0" } }, "sha512-ZtvYkYpZOYdvbws3uaOAvTFuvFXoQGAtmzeiXu+XSMGxi5GVsODpoI9Xu9TplEMuD/5fmAtBbKb9cQHkWkLXDQ=="],
53
-
54
- "ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="],
55
-
56
- "ajv-formats": ["ajv-formats@2.1.1", "", { "dependencies": { "ajv": "^8.0.0" } }, "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA=="],
57
-
58
- "ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="],
59
-
60
- "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="],
61
-
62
- "array-union": ["array-union@2.1.0", "", {}, "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="],
63
-
64
- "binary-extensions": ["binary-extensions@2.3.0", "", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="],
65
-
66
- "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="],
67
-
68
- "bun-types": ["bun-types@1.3.0", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-u8X0thhx+yJ0KmkxuEo9HAtdfgCBaM/aI9K90VQcQioAmkVp3SG3FkwWGibUFz3WdXAdcsqOcbU40lK7tbHdkQ=="],
69
-
70
- "camelcase": ["camelcase@8.0.0", "", {}, "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA=="],
71
-
72
- "chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="],
73
-
74
- "chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="],
75
-
76
- "cli-cursor": ["cli-cursor@5.0.0", "", { "dependencies": { "restore-cursor": "^5.0.0" } }, "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw=="],
77
-
78
- "cli-spinners": ["cli-spinners@3.3.0", "", {}, "sha512-/+40ljC3ONVnYIttjMWrlL51nItDAbBrq2upN8BPyvGU/2n5Oxw3tbNwORCaNuNqLJnxGqOfjUuhsv7l5Q4IsQ=="],
79
-
80
- "colorette": ["colorette@2.0.19", "", {}, "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ=="],
81
-
82
- "commander": ["commander@14.0.1", "", {}, "sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A=="],
83
-
84
- "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="],
85
-
86
- "dayjs": ["dayjs@1.11.18", "", {}, "sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA=="],
87
-
88
- "db-errors": ["db-errors@0.2.3", "", {}, "sha512-OOgqgDuCavHXjYSJoV2yGhv6SeG8nk42aoCSoyXLZUH7VwFG27rxbavU1z+VrZbZjphw5UkDQwUlD21MwZpUng=="],
89
-
90
- "debug": ["debug@4.3.4", "", { "dependencies": { "ms": "2.1.2" } }, "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="],
91
-
92
- "dir-glob": ["dir-glob@3.0.1", "", { "dependencies": { "path-type": "^4.0.0" } }, "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="],
93
-
94
- "dlv": ["dlv@1.1.3", "", {}, "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="],
95
-
96
- "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="],
97
-
98
- "esm": ["esm@3.2.25", "", {}, "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA=="],
99
-
100
- "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="],
101
-
102
- "fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="],
103
-
104
- "fast-uri": ["fast-uri@3.1.0", "", {}, "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA=="],
105
-
106
- "fastq": ["fastq@1.19.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ=="],
107
-
108
- "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="],
109
-
110
- "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
111
-
112
- "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="],
113
-
114
- "get-east-asian-width": ["get-east-asian-width@1.4.0", "", {}, "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q=="],
115
-
116
- "get-package-type": ["get-package-type@0.1.0", "", {}, "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q=="],
117
-
118
- "get-tsconfig": ["get-tsconfig@4.12.0", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-LScr2aNr2FbjAjZh2C6X6BxRx1/x+aTDExct/xyq2XKbYOiG5c0aK7pMsSuyc0brz3ibr/lbQiHD9jzt4lccJw=="],
119
-
120
- "getopts": ["getopts@2.3.0", "", {}, "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA=="],
121
-
122
- "glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
123
-
124
- "globby": ["globby@11.1.0", "", { "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.2.9", "ignore": "^5.2.0", "merge2": "^1.4.1", "slash": "^3.0.0" } }, "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g=="],
125
-
126
- "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="],
127
-
128
- "ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="],
129
-
130
- "interpret": ["interpret@2.2.0", "", {}, "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw=="],
131
-
132
- "is-binary-path": ["is-binary-path@2.1.0", "", { "dependencies": { "binary-extensions": "^2.0.0" } }, "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="],
133
-
134
- "is-core-module": ["is-core-module@2.16.1", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w=="],
135
-
136
- "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="],
137
-
138
- "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="],
139
-
140
- "is-interactive": ["is-interactive@2.0.0", "", {}, "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ=="],
141
-
142
- "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="],
143
-
144
- "is-unicode-supported": ["is-unicode-supported@2.1.0", "", {}, "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ=="],
145
-
146
- "json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="],
147
-
148
- "knex": ["knex@3.1.0", "", { "dependencies": { "colorette": "2.0.19", "commander": "^10.0.0", "debug": "4.3.4", "escalade": "^3.1.1", "esm": "^3.2.25", "get-package-type": "^0.1.0", "getopts": "2.3.0", "interpret": "^2.2.0", "lodash": "^4.17.21", "pg-connection-string": "2.6.2", "rechoir": "^0.8.0", "resolve-from": "^5.0.0", "tarn": "^3.0.2", "tildify": "2.0.0" }, "bin": { "knex": "bin/cli.js" } }, "sha512-GLoII6hR0c4ti243gMs5/1Rb3B+AjwMOfjYm97pu0FOQa7JH56hgBxYf5WK2525ceSbBY1cjeZ9yk99GPMB6Kw=="],
149
-
150
- "lodash": ["lodash@4.17.21", "", {}, "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="],
151
-
152
- "log-symbols": ["log-symbols@7.0.1", "", { "dependencies": { "is-unicode-supported": "^2.0.0", "yoctocolors": "^2.1.1" } }, "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg=="],
153
-
154
- "luxon": ["luxon@3.7.2", "", {}, "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew=="],
155
-
156
- "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="],
157
-
158
- "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="],
159
-
160
- "mimic-function": ["mimic-function@5.0.1", "", {}, "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA=="],
161
-
162
- "ms": ["ms@2.1.2", "", {}, "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="],
163
-
164
- "mylas": ["mylas@2.1.13", "", {}, "sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg=="],
165
-
166
- "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="],
167
-
168
- "normalize-url": ["normalize-url@8.1.0", "", {}, "sha512-X06Mfd/5aKsRHc0O0J5CUedwnPmnDtLF2+nq+KN9KSDlJHkPuh0JUviWjEWMe0SW/9TDdSLVPuk7L5gGTIA1/w=="],
169
-
170
- "objection": ["objection@3.1.5", "", { "dependencies": { "ajv": "^8.17.1", "ajv-formats": "^2.1.1", "db-errors": "^0.2.3" }, "peerDependencies": { "knex": ">=1.0.1" } }, "sha512-Hx/ipAwXSuRBbOMWFKtRsAN0yITafqXtWB4OT4Z9wED7ty1h7bOnBdhLtcNus23GwLJqcMsRWdodL2p5GwlnfQ=="],
171
-
172
- "onetime": ["onetime@7.0.0", "", { "dependencies": { "mimic-function": "^5.0.0" } }, "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ=="],
173
-
174
- "ora": ["ora@9.0.0", "", { "dependencies": { "chalk": "^5.6.2", "cli-cursor": "^5.0.0", "cli-spinners": "^3.2.0", "is-interactive": "^2.0.0", "is-unicode-supported": "^2.1.0", "log-symbols": "^7.0.1", "stdin-discarder": "^0.2.2", "string-width": "^8.1.0", "strip-ansi": "^7.1.2" } }, "sha512-m0pg2zscbYgWbqRR6ABga5c3sZdEon7bSgjnlXC64kxtxLOyjRcbbUkLj7HFyy/FTD+P2xdBWu8snGhYI0jc4A=="],
175
-
176
- "path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="],
177
-
178
- "path-type": ["path-type@4.0.0", "", {}, "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="],
179
-
180
- "pg": ["pg@8.16.3", "", { "dependencies": { "pg-connection-string": "^2.9.1", "pg-pool": "^3.10.1", "pg-protocol": "^1.10.3", "pg-types": "2.2.0", "pgpass": "1.0.5" }, "optionalDependencies": { "pg-cloudflare": "^1.2.7" }, "peerDependencies": { "pg-native": ">=3.0.1" }, "optionalPeers": ["pg-native"] }, "sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw=="],
181
-
182
- "pg-cloudflare": ["pg-cloudflare@1.2.7", "", {}, "sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg=="],
183
-
184
- "pg-connection-string": ["pg-connection-string@2.6.2", "", {}, "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA=="],
185
-
186
- "pg-int8": ["pg-int8@1.0.1", "", {}, "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="],
187
-
188
- "pg-pool": ["pg-pool@3.10.1", "", { "peerDependencies": { "pg": ">=8.0" } }, "sha512-Tu8jMlcX+9d8+QVzKIvM/uJtp07PKr82IUOYEphaWcoBhIYkoHpLXN3qO59nAI11ripznDsEzEv8nUxBVWajGg=="],
189
-
190
- "pg-protocol": ["pg-protocol@1.10.3", "", {}, "sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ=="],
191
-
192
- "pg-types": ["pg-types@2.2.0", "", { "dependencies": { "pg-int8": "1.0.1", "postgres-array": "~2.0.0", "postgres-bytea": "~1.0.0", "postgres-date": "~1.0.4", "postgres-interval": "^1.1.0" } }, "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA=="],
193
-
194
- "pgpass": ["pgpass@1.0.5", "", { "dependencies": { "split2": "^4.1.0" } }, "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug=="],
195
-
196
- "picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
197
-
198
- "plimit-lit": ["plimit-lit@1.6.1", "", { "dependencies": { "queue-lit": "^1.5.1" } }, "sha512-B7+VDyb8Tl6oMJT9oSO2CW8XC/T4UcJGrwOVoNGwOQsQYhlpfajmrMj5xeejqaASq3V/EqThyOeATEOMuSEXiA=="],
199
-
200
- "postgres-array": ["postgres-array@2.0.0", "", {}, "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="],
201
-
202
- "postgres-bytea": ["postgres-bytea@1.0.0", "", {}, "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w=="],
203
-
204
- "postgres-date": ["postgres-date@1.0.7", "", {}, "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q=="],
205
-
206
- "postgres-interval": ["postgres-interval@1.2.0", "", { "dependencies": { "xtend": "^4.0.0" } }, "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ=="],
207
-
208
- "queue-lit": ["queue-lit@1.5.2", "", {}, "sha512-tLc36IOPeMAubu8BkW8YDBV+WyIgKlYU7zUNs0J5Vk9skSZ4JfGlPOqplP0aHdfv7HL0B2Pg6nwiq60Qc6M2Hw=="],
209
-
210
- "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="],
211
-
212
- "readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="],
213
-
214
- "rechoir": ["rechoir@0.8.0", "", { "dependencies": { "resolve": "^1.20.0" } }, "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ=="],
215
-
216
- "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="],
217
-
218
- "resolve": ["resolve@1.22.10", "", { "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w=="],
219
-
220
- "resolve-from": ["resolve-from@5.0.0", "", {}, "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="],
221
-
222
- "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="],
223
-
224
- "restore-cursor": ["restore-cursor@5.1.0", "", { "dependencies": { "onetime": "^7.0.0", "signal-exit": "^4.1.0" } }, "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA=="],
225
-
226
- "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="],
227
-
228
- "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="],
229
-
230
- "signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="],
231
-
232
- "slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="],
233
-
234
- "split2": ["split2@4.2.0", "", {}, "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg=="],
235
-
236
- "stdin-discarder": ["stdin-discarder@0.2.2", "", {}, "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ=="],
237
-
238
- "string-width": ["string-width@8.1.0", "", { "dependencies": { "get-east-asian-width": "^1.3.0", "strip-ansi": "^7.1.0" } }, "sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg=="],
239
-
240
- "strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="],
241
-
242
- "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="],
243
-
244
- "tarn": ["tarn@3.0.2", "", {}, "sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ=="],
245
-
246
- "tildify": ["tildify@2.0.0", "", {}, "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw=="],
247
-
248
- "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="],
249
-
250
- "tsc-alias": ["tsc-alias@1.8.16", "", { "dependencies": { "chokidar": "^3.5.3", "commander": "^9.0.0", "get-tsconfig": "^4.10.0", "globby": "^11.0.4", "mylas": "^2.1.9", "normalize-path": "^3.0.0", "plimit-lit": "^1.2.6" }, "bin": { "tsc-alias": "dist/bin/index.js" } }, "sha512-QjCyu55NFyRSBAl6+MTFwplpFcnm2Pq01rR/uxfqJoLMm6X3O14KEGtaSDZpJYaE1bJBGDjD0eSuiIWPe2T58g=="],
251
-
252
- "undici-types": ["undici-types@7.14.0", "", {}, "sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA=="],
253
-
254
- "validator": ["validator@13.15.15", "", {}, "sha512-BgWVbCI72aIQy937xbawcs+hrVaN/CZ2UwutgaJ36hGqRrLNM+f5LUT/YPRbo8IV/ASeFzXszezV+y2+rq3l8A=="],
255
-
256
- "xtend": ["xtend@4.0.2", "", {}, "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="],
257
-
258
- "yoctocolors": ["yoctocolors@2.1.2", "", {}, "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug=="],
259
-
260
- "knex/commander": ["commander@10.0.1", "", {}, "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug=="],
261
-
262
- "pg/pg-connection-string": ["pg-connection-string@2.9.1", "", {}, "sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w=="],
263
-
264
- "tsc-alias/commander": ["commander@9.5.0", "", {}, "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ=="],
265
- }
266
- }
package/src/ace.ts DELETED
@@ -1,22 +0,0 @@
1
- import Str from "@bejibun/utils/facades/Str";
2
- import {program} from "commander";
3
- import os from "os";
4
- import Kernel from "@/commands/Kernel";
5
- import {version} from "package.json";
6
-
7
- const commandExec = "ace";
8
-
9
- program
10
- .name(commandExec)
11
- .version(version, "-v, --version", "Show the current version")
12
- .description(`${Str.toPascalCase(commandExec)} for your commander${os.EOL}Author: Havea Crenata <havea.crenata@gmail.com>`)
13
- .addHelpText("after", [
14
- `${os.EOL}Examples:`,
15
- `$ bun ${commandExec} --help`,
16
- `$ bun ${commandExec} --version`,
17
- `$ bun ${commandExec} migrate:latest`
18
- ].join(`${os.EOL} `));
19
-
20
- Kernel.registerCommands(program);
21
-
22
- program.parse();
@@ -1,139 +0,0 @@
1
- import {defineValue, isEmpty, isNotEmpty} from "@bejibun/utils";
2
- import {errors, VineValidator} from "@vinejs/vine";
3
- import {BunRequest} from "bun";
4
- import {DateTime} from "luxon";
5
- import ValidatorException from "@/exceptions/ValidatorException";
6
- import Response from "@/facades/Response";
7
-
8
- export default class BaseController {
9
- public async parse(request: BunRequest): Promise<Record<string, any>> {
10
- const contentType = defineValue(request.headers.get("content-type"), "");
11
- const formData = new FormData();
12
-
13
- try {
14
- if (contentType.includes("application/json")) return await request.json();
15
-
16
- for (const [key, value] of Object.entries(request.params)) {
17
- formData.append(key, value as string);
18
- }
19
-
20
- const url = new URL(request.url);
21
- for (const [key, value] of url.searchParams) {
22
- formData.append(key, value);
23
- }
24
-
25
- if (
26
- contentType.includes("multipart/form-data") ||
27
- contentType.includes("application/x-www-form-urlencoded")
28
- ) {
29
- const body = await request.formData();
30
-
31
- for (const [key, value] of body) {
32
- formData.append(key, value);
33
- }
34
- }
35
-
36
- const text = await request.text();
37
- if (isNotEmpty(text)) formData.append("text", text);
38
- } catch {
39
- // do nothing
40
- }
41
-
42
- return this.parseForm(formData);
43
- }
44
-
45
- public get response(): typeof Response {
46
- return Response;
47
- }
48
-
49
- public async validate(validator: VineValidator<any, Record<string, any> | undefined>, body: Record<string, any>): Promise<any> {
50
- try {
51
- return await validator.validate(body);
52
- } catch (error: typeof errors.E_VALIDATION_ERROR | any) {
53
- throw new ValidatorException(error.messages[0].message);
54
- }
55
- }
56
-
57
- private serialize(data: any): any {
58
- if (Array.isArray(data)) return data.map((value: any) => this.serialize(value));
59
-
60
- if (data === null || data === undefined) return null;
61
-
62
- if (data instanceof DateTime) return data.isValid ? data.toISO() : null;
63
-
64
- if (data instanceof Date) return Number.isNaN(data.getTime()) ? null : data.toISOString();
65
-
66
- if (typeof data === "object" && !(data instanceof File)) {
67
- if (Object.keys(data).length === 0) return null;
68
-
69
- const nested: Record<string, any> = {};
70
- Object.keys(data).forEach((key: string) => {
71
- nested[key] = this.serialize(data[key]);
72
- });
73
-
74
- return nested;
75
- }
76
-
77
- if (typeof data === "string") {
78
- const trimmed: string = data.trim();
79
-
80
- if (trimmed === "") return null;
81
- if (trimmed === "true") return true;
82
- if (trimmed === "false") return false;
83
-
84
- const numeric = Number(trimmed);
85
- if (!Number.isNaN(numeric) && trimmed === numeric.toString()) return numeric;
86
-
87
- return trimmed;
88
- }
89
-
90
- return data;
91
- }
92
-
93
- private parseForm(formData: FormData): Record<string, any> {
94
- const result: Record<string, any> = {};
95
-
96
- for (const [key, value] of formData.entries()) {
97
- const keys = key.replace(/]/g, "").split("[");
98
-
99
- let current: any = result;
100
-
101
- for (let i = 0; i < keys.length; i++) {
102
- const part = keys[i];
103
- const nextPart = keys[i + 1];
104
-
105
- if (i === keys.length - 1) {
106
- let convertedValue: any;
107
-
108
- if (value as unknown instanceof File) {
109
- convertedValue = value;
110
- } else if (value.trim() === "") {
111
- convertedValue = null;
112
- } else if (Number.isNaN(value)) {
113
- convertedValue = Number(value);
114
- } else if (value === "true" || value === "false") {
115
- convertedValue = value === "true";
116
- } else {
117
- try {
118
- convertedValue = JSON.parse(value);
119
- } catch {
120
- convertedValue = value;
121
- }
122
- }
123
-
124
- if (current[part] === undefined) current[part] = convertedValue;
125
- else if (Array.isArray(current[part])) current[part].push(convertedValue);
126
- else current[part] = [current[part], convertedValue];
127
- } else {
128
- const isArrayIndex = /^\d+$/.test(nextPart);
129
-
130
- if (isEmpty(current[part])) current[part] = isArrayIndex ? [] : {};
131
-
132
- current = current[part];
133
- }
134
- }
135
- }
136
-
137
- return result;
138
- }
139
- }
@@ -1,108 +0,0 @@
1
- import type {Knex} from "knex";
2
- import {defineValue, isEmpty} from "@bejibun/utils";
3
- import Str from "@bejibun/utils/facades/Str";
4
- import {DateTime} from "luxon";
5
- import {
6
- Constructor,
7
- Model,
8
- ModelOptions,
9
- PartialModelObject,
10
- QueryBuilder,
11
- QueryBuilderType,
12
- QueryContext,
13
- TransactionOrKnex
14
- } from "objection";
15
- import {relative, sep} from "path";
16
- import {fileURLToPath} from "url";
17
- import ModelNotFoundException from "@/exceptions/ModelNotFoundException";
18
- import SoftDeletes from "@/facades/SoftDeletes";
19
-
20
- export interface BaseColumns {
21
- id: bigint | number;
22
- created_at: DateTime | string;
23
- updated_at: DateTime | string;
24
- deleted_at: DateTime | string | null;
25
- }
26
-
27
- class BunQueryBuilder<M extends Model, R = M[]> extends SoftDeletes<M, R> {
28
- // @ts-ignore
29
- async update(payload: PartialModelObject<M>): Promise<QueryBuilder<M, R>> {
30
- const cloneQuery: QueryBuilder<M, R> = (this as any).clone();
31
-
32
- const beforeRows: any = await cloneQuery;
33
-
34
- if (isEmpty(beforeRows)) return defineValue(beforeRows);
35
-
36
- await super.update(payload);
37
-
38
- return cloneQuery;
39
- }
40
- }
41
-
42
- // @ts-ignore
43
- export default class BaseModel extends Model implements BaseColumns {
44
- public static tableName: string;
45
- public static idColumn: string;
46
- public static deletedColumn: string = "deleted_at";
47
-
48
- public static QueryBuilder = BunQueryBuilder;
49
-
50
- declare id: number | bigint;
51
- declare created_at: DateTime | string;
52
- declare updated_at: DateTime | string;
53
- declare deleted_at: DateTime | string | null;
54
-
55
- public static get namespace(): string {
56
- const filePath = fileURLToPath(import.meta.url);
57
- const appRoot = process.cwd();
58
- const rel = relative(appRoot, filePath);
59
- const withoutExt = rel.replace(/\.[tj]s$/, "");
60
- const namespaces = withoutExt.split(sep);
61
- namespaces.pop();
62
- namespaces.push(this.name);
63
-
64
- return namespaces.map(part => Str.toPascalCase(part)).join("/");
65
- }
66
-
67
- $beforeInsert(queryContext: QueryContext): void {
68
- const now = DateTime.now();
69
- this.created_at = now;
70
- this.updated_at = now;
71
- }
72
-
73
- $beforeUpdate(opt: ModelOptions, queryContext: QueryContext): void {
74
- this.updated_at = DateTime.now();
75
- }
76
-
77
- public static query<T extends Model>(this: Constructor<T>, trxOrKnex?: TransactionOrKnex): QueryBuilderType<T> {
78
- return super.query(trxOrKnex);
79
- };
80
-
81
- public static withTrashed<T extends Model>(this: T): QueryBuilderType<T> {
82
- return (this as any).query().withTrashed();
83
- }
84
-
85
- public static onlyTrashed<T extends Model>(this: T): QueryBuilderType<T> {
86
- return (this as any).query().onlyTrashed();
87
- }
88
-
89
- public static all<T extends Model>(this: T): QueryBuilderType<T> {
90
- return (this as any).query().select();
91
- }
92
-
93
- public static create<T extends Model>(this: T, payload: Record<string, any>): QueryBuilderType<T> {
94
- return (this as any).query().insert(payload);
95
- }
96
-
97
- public static find<T extends Model>(this: T, id: bigint | number | string): QueryBuilderType<T> {
98
- return (this as any).query().findById(id);
99
- }
100
-
101
- public static async findOrFail<T extends Model>(this: T, id: bigint | number | string): Promise<T> {
102
- const result = await (this as any).find(id);
103
-
104
- if (isEmpty(result)) throw new ModelNotFoundException(`[ModelNotFoundException]: No query results for model [${(this as any).namespace}] [${id}].`);
105
-
106
- return result;
107
- }
108
- }
@@ -1,8 +0,0 @@
1
- import vine from "@vinejs/vine";
2
- import "@/utils/vine";
3
-
4
- export default class BaseValidator {
5
- public static get validator(): typeof vine {
6
- return vine;
7
- }
8
- }
@@ -1,3 +0,0 @@
1
- export * from "@/bases/BaseController";
2
- export * from "@/bases/BaseModel";
3
- export * from "@/bases/BaseValidator";
package/src/bootstrap.ts DELETED
@@ -1,5 +0,0 @@
1
- import {Model} from "objection";
2
- import BaseModel from "@/bases/BaseModel";
3
- import {initDatabase} from "@/config/database";
4
-
5
- (BaseModel as any as typeof Model).knex(initDatabase());