apeframework 0.0.0-dev.1

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 (254) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +55 -0
  3. package/api/api.d.ts +7 -0
  4. package/api/api.js +2 -0
  5. package/api/api.ts +8 -0
  6. package/api/auth.d.ts +9 -0
  7. package/api/auth.js +11 -0
  8. package/api/auth.ts +9 -0
  9. package/api/config.d.ts +13 -0
  10. package/api/config.js +59 -0
  11. package/api/config.ts +69 -0
  12. package/api/endpoint.d.ts +20 -0
  13. package/api/endpoint.js +5 -0
  14. package/api/endpoint.ts +23 -0
  15. package/api/handler.d.ts +8 -0
  16. package/api/handler.js +13 -0
  17. package/api/handler.ts +23 -0
  18. package/api/index.d.ts +7 -0
  19. package/api/index.js +187 -0
  20. package/api/index.ts +97 -0
  21. package/api/route.d.ts +6 -0
  22. package/api/route.js +2 -0
  23. package/api/route.ts +4 -0
  24. package/api/router.d.ts +4 -0
  25. package/api/router.js +111 -0
  26. package/api/router.ts +36 -0
  27. package/api/schema.d.ts +29 -0
  28. package/api/schema.js +69 -0
  29. package/api/schema.ts +98 -0
  30. package/app/app.d.ts +6 -0
  31. package/app/app.js +2 -0
  32. package/app/app.ts +7 -0
  33. package/app/boot.d.ts +4 -0
  34. package/app/boot.js +2 -0
  35. package/app/boot.ts +5 -0
  36. package/app/bundle.d.ts +14 -0
  37. package/app/bundle.js +2 -0
  38. package/app/bundle.ts +15 -0
  39. package/app/config.d.ts +4 -0
  40. package/app/config.js +9 -0
  41. package/app/config.ts +9 -0
  42. package/app/index.d.ts +9 -0
  43. package/app/index.js +103 -0
  44. package/app/index.ts +32 -0
  45. package/bin/ape-cli-ts.js +4 -0
  46. package/bin/ape-cli.js +2 -0
  47. package/cli/command.d.ts +4 -0
  48. package/cli/command.js +2 -0
  49. package/cli/command.ts +7 -0
  50. package/cli/index.d.ts +2 -0
  51. package/cli/index.js +103 -0
  52. package/cli/index.ts +41 -0
  53. package/cli/internal/api.d.ts +3 -0
  54. package/cli/internal/api.js +110 -0
  55. package/cli/internal/api.ts +38 -0
  56. package/cli/internal/index.d.ts +2 -0
  57. package/cli/internal/index.js +13 -0
  58. package/cli/internal/index.ts +9 -0
  59. package/cli/internal/migration.d.ts +3 -0
  60. package/cli/internal/migration.js +214 -0
  61. package/cli/internal/migration.ts +110 -0
  62. package/cli/internal/queue.d.ts +3 -0
  63. package/cli/internal/queue.js +147 -0
  64. package/cli/internal/queue.ts +60 -0
  65. package/cli/utils.d.ts +18 -0
  66. package/cli/utils.js +52 -0
  67. package/cli/utils.ts +48 -0
  68. package/config/config.d.ts +5 -0
  69. package/config/config.js +2 -0
  70. package/config/config.ts +6 -0
  71. package/config/configuration.d.ts +63 -0
  72. package/config/configuration.js +2 -0
  73. package/config/configuration.ts +72 -0
  74. package/config/default.d.ts +33 -0
  75. package/config/default.js +34 -0
  76. package/config/default.ts +40 -0
  77. package/config/env.d.ts +66 -0
  78. package/config/env.js +72 -0
  79. package/config/env.ts +79 -0
  80. package/config/index.d.ts +8 -0
  81. package/config/index.js +91 -0
  82. package/config/index.ts +101 -0
  83. package/config/loadFile.d.ts +2 -0
  84. package/config/loadFile.js +13 -0
  85. package/config/loadFile.ts +9 -0
  86. package/config/node.d.ts +5 -0
  87. package/config/node.js +11 -0
  88. package/config/node.ts +7 -0
  89. package/config/store.d.ts +6 -0
  90. package/config/store.js +20 -0
  91. package/config/store.ts +15 -0
  92. package/db/config/index.d.ts +10 -0
  93. package/db/config/index.js +43 -0
  94. package/db/config/index.ts +35 -0
  95. package/db/config/memory.d.ts +3 -0
  96. package/db/config/memory.js +15 -0
  97. package/db/config/memory.ts +13 -0
  98. package/db/config/mysql.d.ts +3 -0
  99. package/db/config/mysql.js +56 -0
  100. package/db/config/mysql.ts +58 -0
  101. package/db/config/postgres.d.ts +3 -0
  102. package/db/config/postgres.js +59 -0
  103. package/db/config/postgres.ts +61 -0
  104. package/db/config/sqlite.d.ts +3 -0
  105. package/db/config/sqlite.js +21 -0
  106. package/db/config/sqlite.ts +20 -0
  107. package/db/database.d.ts +3 -0
  108. package/db/database.js +3 -0
  109. package/db/database.ts +5 -0
  110. package/db/index.d.ts +10 -0
  111. package/db/index.js +32 -0
  112. package/db/index.ts +26 -0
  113. package/db/postProcess.d.ts +3 -0
  114. package/db/postProcess.js +25 -0
  115. package/db/postProcess.ts +27 -0
  116. package/db/schema/builder/_.d.ts +30 -0
  117. package/db/schema/builder/_.js +87 -0
  118. package/db/schema/builder/_.ts +101 -0
  119. package/db/schema/builder/columnBuilder.d.ts +7 -0
  120. package/db/schema/builder/columnBuilder.js +14 -0
  121. package/db/schema/builder/columnBuilder.ts +15 -0
  122. package/db/schema/builder/dataType.d.ts +28 -0
  123. package/db/schema/builder/dataType.js +170 -0
  124. package/db/schema/builder/dataType.ts +184 -0
  125. package/db/schema/builder/index.d.ts +15 -0
  126. package/db/schema/builder/index.js +42 -0
  127. package/db/schema/builder/index.ts +50 -0
  128. package/db/schema/builder/tableBuilder.d.ts +45 -0
  129. package/db/schema/builder/tableBuilder.js +307 -0
  130. package/db/schema/builder/tableBuilder.ts +409 -0
  131. package/db/schema/config.d.ts +4 -0
  132. package/db/schema/config.js +5 -0
  133. package/db/schema/config.ts +3 -0
  134. package/db/schema/index.d.ts +7 -0
  135. package/db/schema/index.js +252 -0
  136. package/db/schema/index.ts +88 -0
  137. package/db/schema/migration.d.ts +6 -0
  138. package/db/schema/migration.js +2 -0
  139. package/db/schema/migration.ts +7 -0
  140. package/db/schema/migrationList.d.ts +5 -0
  141. package/db/schema/migrationList.js +2 -0
  142. package/db/schema/migrationList.ts +5 -0
  143. package/db/schema/migrationSource.d.ts +10 -0
  144. package/db/schema/migrationSource.js +60 -0
  145. package/db/schema/migrationSource.ts +24 -0
  146. package/db/schema/schema.d.ts +6 -0
  147. package/db/schema/schema.js +2 -0
  148. package/db/schema/schema.ts +7 -0
  149. package/db/utils/index.d.ts +7 -0
  150. package/db/utils/index.js +10 -0
  151. package/db/utils/index.ts +8 -0
  152. package/db/utils/insertGetKey.d.ts +8 -0
  153. package/db/utils/insertGetKey.js +109 -0
  154. package/db/utils/insertGetKey.ts +80 -0
  155. package/i18n/config.d.ts +4 -0
  156. package/i18n/config.js +9 -0
  157. package/i18n/config.ts +9 -0
  158. package/i18n/i18n.d.ts +5 -0
  159. package/i18n/i18n.js +2 -0
  160. package/i18n/i18n.ts +6 -0
  161. package/i18n/index.d.ts +8 -0
  162. package/i18n/index.js +155 -0
  163. package/i18n/index.ts +42 -0
  164. package/i18n/internationalization.d.ts +3 -0
  165. package/i18n/internationalization.js +2 -0
  166. package/i18n/internationalization.ts +5 -0
  167. package/i18n/translation.d.ts +4 -0
  168. package/i18n/translation.js +2 -0
  169. package/i18n/translation.ts +4 -0
  170. package/jwt/config.d.ts +5 -0
  171. package/jwt/config.js +12 -0
  172. package/jwt/config.ts +11 -0
  173. package/jwt/index.d.ts +8 -0
  174. package/jwt/index.js +90 -0
  175. package/jwt/index.ts +60 -0
  176. package/jwt/jwt.d.ts +6 -0
  177. package/jwt/jwt.js +2 -0
  178. package/jwt/jwt.ts +19 -0
  179. package/jwt/user.d.ts +4 -0
  180. package/jwt/user.js +2 -0
  181. package/jwt/user.ts +4 -0
  182. package/log/config.d.ts +23 -0
  183. package/log/config.js +47 -0
  184. package/log/config.ts +43 -0
  185. package/log/index.d.ts +4 -0
  186. package/log/index.js +9 -0
  187. package/log/index.ts +9 -0
  188. package/log/logger.d.ts +3 -0
  189. package/log/logger.js +2 -0
  190. package/log/logger.ts +5 -0
  191. package/mail/config.d.ts +4 -0
  192. package/mail/config.js +5 -0
  193. package/mail/config.ts +3 -0
  194. package/mail/email.d.ts +20 -0
  195. package/mail/email.js +2 -0
  196. package/mail/email.ts +21 -0
  197. package/mail/index.d.ts +2 -0
  198. package/mail/index.js +4 -0
  199. package/mail/index.ts +3 -0
  200. package/mail/mail.d.ts +12 -0
  201. package/mail/mail.js +2 -0
  202. package/mail/mail.ts +13 -0
  203. package/mail/module/bypass/index.d.ts +6 -0
  204. package/mail/module/bypass/index.js +74 -0
  205. package/mail/module/bypass/index.ts +9 -0
  206. package/mail/module/config.d.ts +11 -0
  207. package/mail/module/config.js +24 -0
  208. package/mail/module/config.ts +25 -0
  209. package/mail/module/index.d.ts +8 -0
  210. package/mail/module/index.js +107 -0
  211. package/mail/module/index.ts +61 -0
  212. package/mail/module/smtp/config.d.ts +6 -0
  213. package/mail/module/smtp/config.js +25 -0
  214. package/mail/module/smtp/config.ts +25 -0
  215. package/mail/module/smtp/index.d.ts +9 -0
  216. package/mail/module/smtp/index.js +104 -0
  217. package/mail/module/smtp/index.ts +36 -0
  218. package/mq/index.d.ts +3 -0
  219. package/mq/index.js +27 -0
  220. package/mq/index.ts +4 -0
  221. package/mq/module/bypass/index.d.ts +13 -0
  222. package/mq/module/bypass/index.js +86 -0
  223. package/mq/module/bypass/index.ts +20 -0
  224. package/mq/module/config.d.ts +6 -0
  225. package/mq/module/config.js +15 -0
  226. package/mq/module/config.ts +14 -0
  227. package/mq/module/index.d.ts +9 -0
  228. package/mq/module/index.js +93 -0
  229. package/mq/module/index.ts +24 -0
  230. package/mq/module/redis/config.d.ts +27 -0
  231. package/mq/module/redis/config.js +37 -0
  232. package/mq/module/redis/config.ts +34 -0
  233. package/mq/module/redis/index.d.ts +15 -0
  234. package/mq/module/redis/index.js +132 -0
  235. package/mq/module/redis/index.ts +60 -0
  236. package/mq/mq.d.ts +15 -0
  237. package/mq/mq.js +2 -0
  238. package/mq/mq.ts +18 -0
  239. package/mq/queue.d.ts +9 -0
  240. package/mq/queue.js +2 -0
  241. package/mq/queue.ts +11 -0
  242. package/package.json +53 -0
  243. package/pwd/config.d.ts +4 -0
  244. package/pwd/config.js +9 -0
  245. package/pwd/config.ts +9 -0
  246. package/pwd/index.d.ts +6 -0
  247. package/pwd/index.js +21 -0
  248. package/pwd/index.ts +20 -0
  249. package/pwd/pwd.d.ts +4 -0
  250. package/pwd/pwd.js +2 -0
  251. package/pwd/pwd.ts +4 -0
  252. package/utils/index.d.ts +25 -0
  253. package/utils/index.js +72 -0
  254. package/utils/index.ts +56 -0
package/config/env.js ADDED
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var dotenv_1 = __importDefault(require("dotenv"));
7
+ dotenv_1.default.config();
8
+ exports.default = {
9
+ nodeEnv: process.env.NODE_ENV,
10
+ nodePath: process.env.NODE_PATH,
11
+ appBoot: process.env.APE_APP_BOOT,
12
+ logLevel: process.env.APE_LOG_LEVEL,
13
+ logDestination: process.env.APE_LOG_DESTINATION,
14
+ logPretty: process.env.APE_LOG_PRETTY,
15
+ logFile: process.env.APE_LOG_FILE,
16
+ apiName: process.env.APE_API_NAME,
17
+ apiVersion: process.env.APE_API_VERSION,
18
+ apiHost: process.env.APE_API_HOST,
19
+ apiPort: process.env.APE_API_PORT,
20
+ apiRandomPort: process.env.APE_API_RANDOM_PORT,
21
+ apiConnectionTimeout: process.env.APE_API_CONNECTION_TIMEOUT,
22
+ apiRequestTimeout: process.env.APE_API_REQUEST_TIMEOUT,
23
+ apiKeepAliveTimeout: process.env.APE_API_KEEP_ALIVE_TIMEOUT,
24
+ apiBodyLimit: process.env.APE_API_BODY_LIMIT,
25
+ apiResponseValidation: process.env.APE_API_RESPONSE_VALIDATION,
26
+ jwtIssuer: process.env.APE_JWT_ISSUER,
27
+ jwtSecret: process.env.APE_JWT_SECRET,
28
+ pwdHashCost: process.env.APE_PWD_HASH_COST,
29
+ i18nFallbackLanguage: process.env.APE_I18N_FALLBACK_LANGUAGE,
30
+ dbModule: process.env.APE_DB_MODULE,
31
+ dbMysqlHost: process.env.APE_DB_MYSQL_HOST,
32
+ dbMysqlPort: process.env.APE_DB_MYSQL_PORT,
33
+ dbMysqlUser: process.env.APE_DB_MYSQL_USER,
34
+ dbMysqlPassword: process.env.APE_DB_MYSQL_PASSWORD,
35
+ dbMysqlDatabase: process.env.APE_DB_MYSQL_DATABASE,
36
+ dbMysqlSsl: process.env.APE_DB_MYSQL_SSL,
37
+ dbMysqlSslCa: process.env.APE_DB_MYSQL_SSL_CA,
38
+ dbMysqlSslCert: process.env.APE_DB_MYSQL_SSL_CERT,
39
+ dbMysqlSslKey: process.env.APE_DB_MYSQL_SSL_KEY,
40
+ dbMysqlSslVerify: process.env.APE_DB_MYSQL_SSL_VERIFY,
41
+ dbMysqlPoolMax: process.env.APE_DB_MYSQL_POOL_MAX,
42
+ dbPostgresHost: process.env.APE_DB_POSTGRES_HOST,
43
+ dbPostgresPort: process.env.APE_DB_POSTGRES_PORT,
44
+ dbPostgresUser: process.env.APE_DB_POSTGRES_USER,
45
+ dbPostgresPassword: process.env.APE_DB_POSTGRES_PASSWORD,
46
+ dbPostgresDatabase: process.env.APE_DB_POSTGRES_DATABASE,
47
+ dbPostgresSsl: process.env.APE_DB_POSTGRES_SSL,
48
+ dbPostgresSslCa: process.env.APE_DB_POSTGRES_SSL_CA,
49
+ dbPostgresSslCert: process.env.APE_DB_POSTGRES_SSL_CERT,
50
+ dbPostgresSslKey: process.env.APE_DB_POSTGRES_SSL_KEY,
51
+ dbPostgresSslVerify: process.env.APE_DB_POSTGRES_SSL_VERIFY,
52
+ dbPostgresPoolMax: process.env.APE_DB_POSTGRES_POOL_MAX,
53
+ dbSqliteFile: process.env.APE_DB_SQLITE_FILE,
54
+ cacheModule: process.env.APE_CACHE_MODULE,
55
+ cacheRedisHost: process.env.APE_CACHE_REDIS_HOST,
56
+ cacheRedisPort: process.env.APE_CACHE_REDIS_PORT,
57
+ cacheRedisUser: process.env.APE_CACHE_REDIS_USER,
58
+ cacheRedisPassword: process.env.APE_CACHE_REDIS_PASSWORD,
59
+ cacheRedisPrefix: process.env.APE_CACHE_REDIS_PREFIX,
60
+ mqModule: process.env.APE_MQ_MODULE,
61
+ mqRedisHost: process.env.APE_MQ_REDIS_HOST,
62
+ mqRedisPort: process.env.APE_MQ_REDIS_PORT,
63
+ mqRedisUser: process.env.APE_MQ_REDIS_USER,
64
+ mqRedisPassword: process.env.APE_MQ_REDIS_PASSWORD,
65
+ mqRedisPrefix: process.env.APE_MQ_REDIS_PREFIX,
66
+ mailModule: process.env.APE_MAIL_MODULE,
67
+ mailSmtpHost: process.env.APE_MAIL_SMTP_HOST,
68
+ mailSmtpPort: process.env.APE_MAIL_SMTP_PORT,
69
+ mailSmtpUser: process.env.APE_MAIL_SMTP_USER,
70
+ mailSmtpPassword: process.env.APE_MAIL_SMTP_PASSWORD,
71
+ mailSmtpEmail: process.env.APE_MAIL_SMTP_EMAIL,
72
+ };
package/config/env.ts ADDED
@@ -0,0 +1,79 @@
1
+ import dotenv from 'dotenv'
2
+
3
+ dotenv.config()
4
+
5
+ export default {
6
+ nodeEnv: process.env.NODE_ENV,
7
+ nodePath: process.env.NODE_PATH,
8
+
9
+ appBoot: process.env.APE_APP_BOOT,
10
+
11
+ logLevel: process.env.APE_LOG_LEVEL,
12
+ logDestination: process.env.APE_LOG_DESTINATION,
13
+ logPretty: process.env.APE_LOG_PRETTY,
14
+ logFile: process.env.APE_LOG_FILE,
15
+
16
+ apiName: process.env.APE_API_NAME,
17
+ apiVersion: process.env.APE_API_VERSION,
18
+ apiHost: process.env.APE_API_HOST,
19
+ apiPort: process.env.APE_API_PORT,
20
+ apiRandomPort: process.env.APE_API_RANDOM_PORT,
21
+ apiConnectionTimeout: process.env.APE_API_CONNECTION_TIMEOUT,
22
+ apiRequestTimeout: process.env.APE_API_REQUEST_TIMEOUT,
23
+ apiKeepAliveTimeout: process.env.APE_API_KEEP_ALIVE_TIMEOUT,
24
+ apiBodyLimit: process.env.APE_API_BODY_LIMIT,
25
+ apiResponseValidation: process.env.APE_API_RESPONSE_VALIDATION,
26
+
27
+ jwtIssuer: process.env.APE_JWT_ISSUER,
28
+ jwtSecret: process.env.APE_JWT_SECRET,
29
+
30
+ pwdHashCost: process.env.APE_PWD_HASH_COST,
31
+
32
+ i18nFallbackLanguage: process.env.APE_I18N_FALLBACK_LANGUAGE,
33
+
34
+ dbModule: process.env.APE_DB_MODULE,
35
+ dbMysqlHost: process.env.APE_DB_MYSQL_HOST,
36
+ dbMysqlPort: process.env.APE_DB_MYSQL_PORT,
37
+ dbMysqlUser: process.env.APE_DB_MYSQL_USER,
38
+ dbMysqlPassword: process.env.APE_DB_MYSQL_PASSWORD,
39
+ dbMysqlDatabase: process.env.APE_DB_MYSQL_DATABASE,
40
+ dbMysqlSsl: process.env.APE_DB_MYSQL_SSL,
41
+ dbMysqlSslCa: process.env.APE_DB_MYSQL_SSL_CA,
42
+ dbMysqlSslCert: process.env.APE_DB_MYSQL_SSL_CERT,
43
+ dbMysqlSslKey: process.env.APE_DB_MYSQL_SSL_KEY,
44
+ dbMysqlSslVerify: process.env.APE_DB_MYSQL_SSL_VERIFY,
45
+ dbMysqlPoolMax: process.env.APE_DB_MYSQL_POOL_MAX,
46
+ dbPostgresHost: process.env.APE_DB_POSTGRES_HOST,
47
+ dbPostgresPort: process.env.APE_DB_POSTGRES_PORT,
48
+ dbPostgresUser: process.env.APE_DB_POSTGRES_USER,
49
+ dbPostgresPassword: process.env.APE_DB_POSTGRES_PASSWORD,
50
+ dbPostgresDatabase: process.env.APE_DB_POSTGRES_DATABASE,
51
+ dbPostgresSsl: process.env.APE_DB_POSTGRES_SSL,
52
+ dbPostgresSslCa: process.env.APE_DB_POSTGRES_SSL_CA,
53
+ dbPostgresSslCert: process.env.APE_DB_POSTGRES_SSL_CERT,
54
+ dbPostgresSslKey: process.env.APE_DB_POSTGRES_SSL_KEY,
55
+ dbPostgresSslVerify: process.env.APE_DB_POSTGRES_SSL_VERIFY,
56
+ dbPostgresPoolMax: process.env.APE_DB_POSTGRES_POOL_MAX,
57
+ dbSqliteFile: process.env.APE_DB_SQLITE_FILE,
58
+
59
+ cacheModule: process.env.APE_CACHE_MODULE,
60
+ cacheRedisHost: process.env.APE_CACHE_REDIS_HOST,
61
+ cacheRedisPort: process.env.APE_CACHE_REDIS_PORT,
62
+ cacheRedisUser: process.env.APE_CACHE_REDIS_USER,
63
+ cacheRedisPassword: process.env.APE_CACHE_REDIS_PASSWORD,
64
+ cacheRedisPrefix: process.env.APE_CACHE_REDIS_PREFIX,
65
+
66
+ mqModule: process.env.APE_MQ_MODULE,
67
+ mqRedisHost: process.env.APE_MQ_REDIS_HOST,
68
+ mqRedisPort: process.env.APE_MQ_REDIS_PORT,
69
+ mqRedisUser: process.env.APE_MQ_REDIS_USER,
70
+ mqRedisPassword: process.env.APE_MQ_REDIS_PASSWORD,
71
+ mqRedisPrefix: process.env.APE_MQ_REDIS_PREFIX,
72
+
73
+ mailModule: process.env.APE_MAIL_MODULE,
74
+ mailSmtpHost: process.env.APE_MAIL_SMTP_HOST,
75
+ mailSmtpPort: process.env.APE_MAIL_SMTP_PORT,
76
+ mailSmtpUser: process.env.APE_MAIL_SMTP_USER,
77
+ mailSmtpPassword: process.env.APE_MAIL_SMTP_PASSWORD,
78
+ mailSmtpEmail: process.env.APE_MAIL_SMTP_EMAIL,
79
+ }
@@ -0,0 +1,8 @@
1
+ import { Store } from './store';
2
+ import type { Config } from './config';
3
+ import type { Configuration } from './configuration';
4
+ export { Config, Configuration, Store };
5
+ export declare const initConfig: (override?: any, file?: string) => Configuration;
6
+ export declare const getConfig: () => Configuration;
7
+ declare const config: Config;
8
+ export default config;
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getConfig = exports.initConfig = exports.Store = void 0;
7
+ var utils_1 = require("../utils");
8
+ var store_1 = require("./store");
9
+ Object.defineProperty(exports, "Store", { enumerable: true, get: function () { return store_1.Store; } });
10
+ var default_1 = __importDefault(require("./default"));
11
+ var env_1 = __importDefault(require("./env"));
12
+ var loadFile_1 = __importDefault(require("./loadFile"));
13
+ var configuration;
14
+ var initConfig = function (override, file) {
15
+ if (override === void 0) { override = {}; }
16
+ if (file === void 0) { file = 'ape.config.json'; }
17
+ var json = (0, loadFile_1.default)(file);
18
+ var store = new store_1.Store(override, json, env_1.default, default_1.default);
19
+ configuration = {
20
+ appBoot: (0, utils_1.parseString)(store.get('appBoot')),
21
+ logLevel: (0, utils_1.parseString)(store.get('logLevel')),
22
+ logDestination: (0, utils_1.parseString)(store.get('logDestination')),
23
+ logPretty: (0, utils_1.parseBoolean)(store.get('logPretty')),
24
+ logFile: (0, utils_1.parseString)(store.get('logFile')),
25
+ apiName: (0, utils_1.parseString)(store.get('apiName')),
26
+ apiVersion: (0, utils_1.parseString)(store.get('apiVersion')),
27
+ apiHost: (0, utils_1.parseString)(store.get('apiHost')),
28
+ apiPort: (0, utils_1.parseNumber)(store.get('apiPort')),
29
+ apiRandomPort: (0, utils_1.parseBoolean)(store.get('apiRandomPort')),
30
+ apiConnectionTimeout: (0, utils_1.parseMilliseconds)(store.get('apiConnectionTimeout')),
31
+ apiRequestTimeout: (0, utils_1.parseMilliseconds)(store.get('apiRequestTimeout')),
32
+ apiKeepAliveTimeout: (0, utils_1.parseMilliseconds)(store.get('apiKeepAliveTimeout')),
33
+ apiBodyLimit: (0, utils_1.parseBytes)(store.get('apiBodyLimit')),
34
+ apiResponseValidation: (0, utils_1.parseBoolean)(store.get('apiResponseValidation')),
35
+ jwtIssuer: (0, utils_1.parseString)(store.get('jwtIssuer')),
36
+ jwtSecret: (0, utils_1.parseString)(store.get('jwtSecret')),
37
+ pwdHashCost: (0, utils_1.parseNumber)(store.get('pwdHashCost')),
38
+ i18nFallbackLanguage: (0, utils_1.parseString)(store.get('i18nFallbackLanguage')),
39
+ dbModule: (0, utils_1.parseString)(store.get('dbModule')),
40
+ dbMysqlHost: (0, utils_1.parseString)(store.get('dbMysqlHost')),
41
+ dbMysqlPort: (0, utils_1.parseNumber)(store.get('dbMysqlPort')),
42
+ dbMysqlUser: (0, utils_1.parseString)(store.get('dbMysqlUser')),
43
+ dbMysqlPassword: (0, utils_1.parseString)(store.get('dbMysqlPassword')),
44
+ dbMysqlDatabase: (0, utils_1.parseString)(store.get('dbMysqlDatabase')),
45
+ dbMysqlSsl: (0, utils_1.parseBoolean)(store.get('dbMysqlSsl')),
46
+ dbMysqlSslCa: (0, utils_1.parseString)(store.get('dbMysqlSslCa')),
47
+ dbMysqlSslCert: (0, utils_1.parseString)(store.get('dbMysqlSslCert')),
48
+ dbMysqlSslKey: (0, utils_1.parseString)(store.get('dbMysqlSslKey')),
49
+ dbMysqlSslVerify: (0, utils_1.parseBoolean)(store.get('dbMysqlSslVerify')),
50
+ dbMysqlPoolMax: (0, utils_1.parseNumber)(store.get('dbMysqlPoolMax')),
51
+ dbPostgresHost: (0, utils_1.parseString)(store.get('dbPostgresHost')),
52
+ dbPostgresPort: (0, utils_1.parseNumber)(store.get('dbPostgresPort')),
53
+ dbPostgresUser: (0, utils_1.parseString)(store.get('dbPostgresUser')),
54
+ dbPostgresPassword: (0, utils_1.parseString)(store.get('dbPostgresPassword')),
55
+ dbPostgresDatabase: (0, utils_1.parseString)(store.get('dbPostgresDatabase')),
56
+ dbPostgresSsl: (0, utils_1.parseBoolean)(store.get('dbPostgresSsl')),
57
+ dbPostgresSslCa: (0, utils_1.parseString)(store.get('dbPostgresSslCa')),
58
+ dbPostgresSslCert: (0, utils_1.parseString)(store.get('dbPostgresSslCert')),
59
+ dbPostgresSslKey: (0, utils_1.parseString)(store.get('dbPostgresSslKey')),
60
+ dbPostgresSslVerify: (0, utils_1.parseBoolean)(store.get('dbPostgresSslVerify')),
61
+ dbPostgresPoolMax: (0, utils_1.parseNumber)(store.get('dbPostgresPoolMax')),
62
+ dbSqliteFile: (0, utils_1.parseString)(store.get('dbSqliteFile')),
63
+ cacheModule: (0, utils_1.parseString)(store.get('cacheModule')),
64
+ cacheRedisHost: (0, utils_1.parseString)(store.get('cacheRedisHost')),
65
+ cacheRedisPort: (0, utils_1.parseNumber)(store.get('cacheRedisPort')),
66
+ cacheRedisUser: (0, utils_1.parseString)(store.get('cacheRedisUser')),
67
+ cacheRedisPassword: (0, utils_1.parseString)(store.get('cacheRedisPassword')),
68
+ cacheRedisPrefix: (0, utils_1.parseString)(store.get('cacheRedisPrefix')),
69
+ mqModule: (0, utils_1.parseString)(store.get('mqModule')),
70
+ mqRedisHost: (0, utils_1.parseString)(store.get('mqRedisHost')),
71
+ mqRedisPort: (0, utils_1.parseNumber)(store.get('mqRedisPort')),
72
+ mqRedisUser: (0, utils_1.parseString)(store.get('mqRedisUser')),
73
+ mqRedisPassword: (0, utils_1.parseString)(store.get('mqRedisPassword')),
74
+ mqRedisPrefix: (0, utils_1.parseString)(store.get('mqRedisPrefix')),
75
+ mailModule: (0, utils_1.parseString)(store.get('mailModule')),
76
+ mailSmtpHost: (0, utils_1.parseString)(store.get('mailSmtpHost')),
77
+ mailSmtpPort: (0, utils_1.parseNumber)(store.get('mailSmtpPort')),
78
+ mailSmtpUser: (0, utils_1.parseString)(store.get('mailSmtpUser')),
79
+ mailSmtpPassword: (0, utils_1.parseString)(store.get('mailSmtpPassword')),
80
+ mailSmtpEmail: (0, utils_1.parseString)(store.get('mailSmtpEmail')),
81
+ };
82
+ return configuration;
83
+ };
84
+ exports.initConfig = initConfig;
85
+ var getConfig = function () { return configuration !== null && configuration !== void 0 ? configuration : (0, exports.initConfig)(); };
86
+ exports.getConfig = getConfig;
87
+ var config = {
88
+ getConfig: exports.getConfig,
89
+ initConfig: exports.initConfig,
90
+ };
91
+ exports.default = config;
@@ -0,0 +1,101 @@
1
+ import { parseBoolean, parseBytes, parseMilliseconds, parseNumber, parseString } from '../utils'
2
+ import { Store } from './store'
3
+ import defaults from './default'
4
+ import env from './env'
5
+ import loadFile from './loadFile'
6
+ import type { Config } from './config'
7
+ import type { Configuration } from './configuration'
8
+
9
+ export { Config, Configuration, Store }
10
+
11
+ let configuration: Configuration | undefined
12
+
13
+ export const initConfig = (override: any = {}, file = 'ape.config.json') => {
14
+ const json = loadFile(file)
15
+
16
+ const store = new Store(override, json, env, defaults)
17
+
18
+ configuration = {
19
+ appBoot: parseString(store.get('appBoot')),
20
+
21
+ logLevel: parseString(store.get('logLevel')),
22
+ logDestination: parseString(store.get('logDestination')),
23
+ logPretty: parseBoolean(store.get('logPretty')),
24
+ logFile: parseString(store.get('logFile')),
25
+
26
+ apiName: parseString(store.get('apiName')),
27
+ apiVersion: parseString(store.get('apiVersion')),
28
+ apiHost: parseString(store.get('apiHost')),
29
+ apiPort: parseNumber(store.get('apiPort')),
30
+ apiRandomPort: parseBoolean(store.get('apiRandomPort')),
31
+ apiConnectionTimeout: parseMilliseconds(store.get('apiConnectionTimeout')),
32
+ apiRequestTimeout: parseMilliseconds(store.get('apiRequestTimeout')),
33
+ apiKeepAliveTimeout: parseMilliseconds(store.get('apiKeepAliveTimeout')),
34
+ apiBodyLimit: parseBytes(store.get('apiBodyLimit')),
35
+ apiResponseValidation: parseBoolean(store.get('apiResponseValidation')),
36
+
37
+ jwtIssuer: parseString(store.get('jwtIssuer')),
38
+ jwtSecret: parseString(store.get('jwtSecret')),
39
+
40
+ pwdHashCost: parseNumber(store.get('pwdHashCost')),
41
+
42
+ i18nFallbackLanguage: parseString(store.get('i18nFallbackLanguage')),
43
+
44
+ dbModule: parseString(store.get('dbModule')),
45
+ dbMysqlHost: parseString(store.get('dbMysqlHost')),
46
+ dbMysqlPort: parseNumber(store.get('dbMysqlPort')),
47
+ dbMysqlUser: parseString(store.get('dbMysqlUser')),
48
+ dbMysqlPassword: parseString(store.get('dbMysqlPassword')),
49
+ dbMysqlDatabase: parseString(store.get('dbMysqlDatabase')),
50
+ dbMysqlSsl: parseBoolean(store.get('dbMysqlSsl')),
51
+ dbMysqlSslCa: parseString(store.get('dbMysqlSslCa')),
52
+ dbMysqlSslCert: parseString(store.get('dbMysqlSslCert')),
53
+ dbMysqlSslKey: parseString(store.get('dbMysqlSslKey')),
54
+ dbMysqlSslVerify: parseBoolean(store.get('dbMysqlSslVerify')),
55
+ dbMysqlPoolMax: parseNumber(store.get('dbMysqlPoolMax')),
56
+ dbPostgresHost: parseString(store.get('dbPostgresHost')),
57
+ dbPostgresPort: parseNumber(store.get('dbPostgresPort')),
58
+ dbPostgresUser: parseString(store.get('dbPostgresUser')),
59
+ dbPostgresPassword: parseString(store.get('dbPostgresPassword')),
60
+ dbPostgresDatabase: parseString(store.get('dbPostgresDatabase')),
61
+ dbPostgresSsl: parseBoolean(store.get('dbPostgresSsl')),
62
+ dbPostgresSslCa: parseString(store.get('dbPostgresSslCa')),
63
+ dbPostgresSslCert: parseString(store.get('dbPostgresSslCert')),
64
+ dbPostgresSslKey: parseString(store.get('dbPostgresSslKey')),
65
+ dbPostgresSslVerify: parseBoolean(store.get('dbPostgresSslVerify')),
66
+ dbPostgresPoolMax: parseNumber(store.get('dbPostgresPoolMax')),
67
+ dbSqliteFile: parseString(store.get('dbSqliteFile')),
68
+
69
+ cacheModule: parseString(store.get('cacheModule')),
70
+ cacheRedisHost: parseString(store.get('cacheRedisHost')),
71
+ cacheRedisPort: parseNumber(store.get('cacheRedisPort')),
72
+ cacheRedisUser: parseString(store.get('cacheRedisUser')),
73
+ cacheRedisPassword: parseString(store.get('cacheRedisPassword')),
74
+ cacheRedisPrefix: parseString(store.get('cacheRedisPrefix')),
75
+
76
+ mqModule: parseString(store.get('mqModule')),
77
+ mqRedisHost: parseString(store.get('mqRedisHost')),
78
+ mqRedisPort: parseNumber(store.get('mqRedisPort')),
79
+ mqRedisUser: parseString(store.get('mqRedisUser')),
80
+ mqRedisPassword: parseString(store.get('mqRedisPassword')),
81
+ mqRedisPrefix: parseString(store.get('mqRedisPrefix')),
82
+
83
+ mailModule: parseString(store.get('mailModule')),
84
+ mailSmtpHost: parseString(store.get('mailSmtpHost')),
85
+ mailSmtpPort: parseNumber(store.get('mailSmtpPort')),
86
+ mailSmtpUser: parseString(store.get('mailSmtpUser')),
87
+ mailSmtpPassword: parseString(store.get('mailSmtpPassword')),
88
+ mailSmtpEmail: parseString(store.get('mailSmtpEmail')),
89
+ }
90
+
91
+ return configuration
92
+ }
93
+
94
+ export const getConfig = () => configuration ?? initConfig()
95
+
96
+ const config: Config = {
97
+ getConfig,
98
+ initConfig,
99
+ }
100
+
101
+ export default config
@@ -0,0 +1,2 @@
1
+ declare const loadFile: (path: string) => any;
2
+ export default loadFile;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var fs_extra_1 = __importDefault(require("fs-extra"));
7
+ var loadFile = function (path) {
8
+ var json = {};
9
+ if (fs_extra_1.default.existsSync(path))
10
+ json = fs_extra_1.default.readJsonSync(path);
11
+ return json;
12
+ };
13
+ exports.default = loadFile;
@@ -0,0 +1,9 @@
1
+ import fs from 'fs-extra'
2
+
3
+ const loadFile = (path: string) => {
4
+ let json: any = {}
5
+ if (fs.existsSync(path)) json = fs.readJsonSync(path)
6
+ return json
7
+ }
8
+
9
+ export default loadFile
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ env: string;
3
+ path: string;
4
+ };
5
+ export default _default;
package/config/node.js ADDED
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var utils_1 = require("../utils");
7
+ var env_1 = __importDefault(require("./env"));
8
+ exports.default = {
9
+ env: (0, utils_1.parseString)(env_1.default.nodeEnv),
10
+ path: (0, utils_1.parseString)(env_1.default.nodePath),
11
+ };
package/config/node.ts ADDED
@@ -0,0 +1,7 @@
1
+ import { parseString } from '../utils'
2
+ import env from './env'
3
+
4
+ export default {
5
+ env: parseString(env.nodeEnv),
6
+ path: parseString(env.nodePath),
7
+ }
@@ -0,0 +1,6 @@
1
+ export declare class Store {
2
+ configurations: any[];
3
+ constructor(...configurations: any[]);
4
+ get(property: string): any;
5
+ }
6
+ export default Store;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Store = void 0;
4
+ var Store = /** @class */ (function () {
5
+ function Store() {
6
+ var configurations = [];
7
+ for (var _i = 0; _i < arguments.length; _i++) {
8
+ configurations[_i] = arguments[_i];
9
+ }
10
+ this.configurations = configurations;
11
+ }
12
+ Store.prototype.get = function (property) {
13
+ return this.configurations
14
+ .map(function (config) { return config[property]; })
15
+ .find(function (value) { return value !== undefined; });
16
+ };
17
+ return Store;
18
+ }());
19
+ exports.Store = Store;
20
+ exports.default = Store;
@@ -0,0 +1,15 @@
1
+ export class Store {
2
+ configurations: any[]
3
+
4
+ constructor(...configurations: any[]) {
5
+ this.configurations = configurations
6
+ }
7
+
8
+ get(property: string) {
9
+ return this.configurations
10
+ .map((config) => config[property])
11
+ .find((value) => value !== undefined)
12
+ }
13
+ }
14
+
15
+ export default Store
@@ -0,0 +1,10 @@
1
+ import type { Database } from '../database';
2
+ export declare enum Module {
3
+ memory = "memory",
4
+ mysql = "mysql",
5
+ postgres = "postgres",
6
+ sqlite = "sqlite"
7
+ }
8
+ export declare const module: Module;
9
+ declare const dbConfig: Database.Config;
10
+ export default dbConfig;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.module = exports.Module = void 0;
18
+ var config_1 = require("../../config");
19
+ var memory_1 = __importDefault(require("./memory"));
20
+ var mysql_1 = __importDefault(require("./mysql"));
21
+ var postgres_1 = __importDefault(require("./postgres"));
22
+ var sqlite_1 = __importDefault(require("./sqlite"));
23
+ var config = (0, config_1.getConfig)();
24
+ var Module;
25
+ (function (Module) {
26
+ Module["memory"] = "memory";
27
+ Module["mysql"] = "mysql";
28
+ Module["postgres"] = "postgres";
29
+ Module["sqlite"] = "sqlite";
30
+ })(Module || (exports.Module = Module = {}));
31
+ var dbModule = Object.values(Module)
32
+ .find(function (module) { return module === config.dbModule; });
33
+ if (!dbModule)
34
+ throw new Error("db: invalid module \"".concat(config.dbModule, "\""));
35
+ exports.module = dbModule;
36
+ var dbConfigHandler = {
37
+ memory: memory_1.default,
38
+ mysql: mysql_1.default,
39
+ postgres: postgres_1.default,
40
+ sqlite: sqlite_1.default,
41
+ };
42
+ var dbConfig = __assign(__assign({}, dbConfigHandler[exports.module]()), { useNullAsDefault: true });
43
+ exports.default = dbConfig;
@@ -0,0 +1,35 @@
1
+ import { getConfig } from '../../config'
2
+ import memoryConfig from './memory'
3
+ import mysqlConfig from './mysql'
4
+ import postgresConfig from './postgres'
5
+ import sqliteConfig from './sqlite'
6
+ import type { Database } from '../database'
7
+
8
+ const config = getConfig()
9
+
10
+ export enum Module {
11
+ memory = 'memory',
12
+ mysql = 'mysql',
13
+ postgres = 'postgres',
14
+ sqlite = 'sqlite',
15
+ }
16
+
17
+ const dbModule = Object.values(Module)
18
+ .find((module: string) => module === config.dbModule)
19
+ if (!dbModule) throw new Error(`db: invalid module "${config.dbModule}"`)
20
+
21
+ export const module = dbModule
22
+
23
+ const dbConfigHandler: { [module in Module]: () => Database.Config } = {
24
+ memory: memoryConfig,
25
+ mysql: mysqlConfig,
26
+ postgres: postgresConfig,
27
+ sqlite: sqliteConfig,
28
+ }
29
+
30
+ const dbConfig: Database.Config = {
31
+ ...dbConfigHandler[module](),
32
+ useNullAsDefault: true,
33
+ }
34
+
35
+ export default dbConfig
@@ -0,0 +1,3 @@
1
+ import type { Database } from '../database';
2
+ declare const dbConfig: () => Database.Config;
3
+ export default dbConfig;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var postProcess_1 = __importDefault(require("../postProcess"));
7
+ var dbConfig = function () { return ({
8
+ client: 'sqlite3',
9
+ connection: {
10
+ filename: ':memory:',
11
+ },
12
+ pool: { min: 0, max: 1 },
13
+ postProcessResponse: postProcess_1.default,
14
+ }); };
15
+ exports.default = dbConfig;
@@ -0,0 +1,13 @@
1
+ import postProcessResponse from '../postProcess'
2
+ import type { Database } from '../database'
3
+
4
+ const dbConfig: () => Database.Config = () => ({
5
+ client: 'sqlite3',
6
+ connection: {
7
+ filename: ':memory:',
8
+ },
9
+ pool: { min: 0, max: 1 },
10
+ postProcessResponse,
11
+ })
12
+
13
+ export default dbConfig
@@ -0,0 +1,3 @@
1
+ import type { Database } from '../database';
2
+ declare const dbConfig: () => Database.Config;
3
+ export default dbConfig;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ var fs_extra_1 = __importDefault(require("fs-extra"));
18
+ var config_1 = require("../../config");
19
+ var dbConfig = function () {
20
+ var config = (0, config_1.getConfig)();
21
+ if (!config.dbMysqlHost)
22
+ throw new Error('db: mysql host not provided');
23
+ if (!config.dbMysqlPort)
24
+ throw new Error('db: mysql port not provided');
25
+ if (!config.dbMysqlDatabase)
26
+ throw new Error('db: mysql database not provided');
27
+ var typeCastValue;
28
+ var typeCast = function (field, next) {
29
+ switch (field.type) {
30
+ case 'BIT':
31
+ typeCastValue = field.buffer();
32
+ return typeCastValue === null ? null : !!typeCastValue[0];
33
+ case 'NEWDECIMAL':
34
+ typeCastValue = field.string();
35
+ return typeCastValue === null ? null : parseFloat(typeCastValue);
36
+ default:
37
+ return next();
38
+ }
39
+ };
40
+ return {
41
+ client: 'mysql2',
42
+ connection: __assign(__assign(__assign(__assign(__assign({ host: config.dbMysqlHost, port: config.dbMysqlPort }, config.dbMysqlUser ? { user: config.dbMysqlUser } : {}), config.dbMysqlPassword ? { password: config.dbMysqlPassword } : {}), { database: config.dbMysqlDatabase }), config.dbMysqlSsl
43
+ ? {
44
+ ssl: __assign(__assign(__assign(__assign({}, config.dbMysqlSslCa
45
+ ? { ca: fs_extra_1.default.readFileSync(config.dbMysqlSslCa).toString() }
46
+ : {}), config.dbMysqlSslCert
47
+ ? { cert: fs_extra_1.default.readFileSync(config.dbMysqlSslCert).toString() }
48
+ : {}), config.dbMysqlSslKey
49
+ ? { key: fs_extra_1.default.readFileSync(config.dbMysqlSslKey).toString() }
50
+ : {}), { rejectUnauthorized: config.dbMysqlSslVerify }),
51
+ }
52
+ : {}), { dateStrings: true, typeCast: typeCast }),
53
+ pool: { min: 0, max: config.dbMysqlPoolMax },
54
+ };
55
+ };
56
+ exports.default = dbConfig;