@ambiten/core 1.0.0

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 (304) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +247 -0
  3. package/bin/bootstrap.js +26 -0
  4. package/dist/ambiten-cache/ambitenCache.d.ts +64 -0
  5. package/dist/ambiten-cache/ambitenCache.d.ts.map +1 -0
  6. package/dist/ambiten-cache/ambitenCache.js +127 -0
  7. package/dist/ambiten-cache/index.d.ts +2 -0
  8. package/dist/ambiten-cache/index.d.ts.map +1 -0
  9. package/dist/ambiten-cache/index.js +4 -0
  10. package/dist/browser.d.ts +32 -0
  11. package/dist/browser.d.ts.map +1 -0
  12. package/dist/browser.js +37 -0
  13. package/dist/cli/ambiten-core-cli.d.ts +4 -0
  14. package/dist/cli/ambiten-core-cli.d.ts.map +1 -0
  15. package/dist/cli/ambiten-core-cli.js +41 -0
  16. package/dist/cli/buildInteractiveConfig.d.ts +4 -0
  17. package/dist/cli/buildInteractiveConfig.d.ts.map +1 -0
  18. package/dist/cli/buildInteractiveConfig.js +198 -0
  19. package/dist/cli/index.d.ts +5 -0
  20. package/dist/cli/index.d.ts.map +1 -0
  21. package/dist/cli/index.js +7 -0
  22. package/dist/cli/prompt.d.ts +10 -0
  23. package/dist/cli/prompt.d.ts.map +1 -0
  24. package/dist/cli/prompt.js +48 -0
  25. package/dist/cli/types.d.ts +11 -0
  26. package/dist/cli/types.d.ts.map +1 -0
  27. package/dist/cli/types.js +2 -0
  28. package/dist/config/ambiten.config.schema.json +278 -0
  29. package/dist/config/index.d.ts +2 -0
  30. package/dist/config/index.d.ts.map +1 -0
  31. package/dist/config/index.js +4 -0
  32. package/dist/config/loadAmbitenConfig.d.ts +3 -0
  33. package/dist/config/loadAmbitenConfig.d.ts.map +1 -0
  34. package/dist/config/loadAmbitenConfig.js +131 -0
  35. package/dist/context/ambitenContext.d.ts +35 -0
  36. package/dist/context/ambitenContext.d.ts.map +1 -0
  37. package/dist/context/ambitenContext.js +147 -0
  38. package/dist/context/helpers/runManualTransaction.d.ts +3 -0
  39. package/dist/context/helpers/runManualTransaction.d.ts.map +1 -0
  40. package/dist/context/helpers/runManualTransaction.js +22 -0
  41. package/dist/context/helpers/transactionSession.d.ts +9 -0
  42. package/dist/context/helpers/transactionSession.d.ts.map +1 -0
  43. package/dist/context/helpers/transactionSession.js +8 -0
  44. package/dist/context/index.d.ts +4 -0
  45. package/dist/context/index.d.ts.map +1 -0
  46. package/dist/context/index.js +6 -0
  47. package/dist/debug/debugLog.d.ts +2 -0
  48. package/dist/debug/debugLog.d.ts.map +1 -0
  49. package/dist/debug/debugLog.js +23 -0
  50. package/dist/debug/index.d.ts +2 -0
  51. package/dist/debug/index.d.ts.map +1 -0
  52. package/dist/debug/index.js +4 -0
  53. package/dist/gc/ambitenGC.d.ts +49 -0
  54. package/dist/gc/ambitenGC.d.ts.map +1 -0
  55. package/dist/gc/ambitenGC.js +138 -0
  56. package/dist/gc/gcCron.browser.d.ts +2 -0
  57. package/dist/gc/gcCron.browser.d.ts.map +1 -0
  58. package/dist/gc/gcCron.browser.js +9 -0
  59. package/dist/gc/gcCron.node.d.ts +19 -0
  60. package/dist/gc/gcCron.node.d.ts.map +1 -0
  61. package/dist/gc/gcCron.node.js +47 -0
  62. package/dist/gc/gcManager.d.ts +37 -0
  63. package/dist/gc/gcManager.d.ts.map +1 -0
  64. package/dist/gc/gcManager.js +62 -0
  65. package/dist/gc/index.d.ts +5 -0
  66. package/dist/gc/index.d.ts.map +1 -0
  67. package/dist/gc/index.js +7 -0
  68. package/dist/graphql/ambitenGraphQL.d.ts +24 -0
  69. package/dist/graphql/ambitenGraphQL.d.ts.map +1 -0
  70. package/dist/graphql/ambitenGraphQL.js +215 -0
  71. package/dist/graphql/index.d.ts +2 -0
  72. package/dist/graphql/index.d.ts.map +1 -0
  73. package/dist/graphql/index.js +4 -0
  74. package/dist/index-browser.js +25 -0
  75. package/dist/index-browser.js.map +1 -0
  76. package/dist/index-cli.js +26 -0
  77. package/dist/index-cli.js.map +1 -0
  78. package/dist/index.d.ts +30 -0
  79. package/dist/index.d.ts.map +1 -0
  80. package/dist/index.js +25 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/init-cli/generate.project.d.ts +9 -0
  83. package/dist/init-cli/generate.project.d.ts.map +1 -0
  84. package/dist/init-cli/generate.project.js +38 -0
  85. package/dist/instrumentation/index.d.ts +3 -0
  86. package/dist/instrumentation/index.d.ts.map +1 -0
  87. package/dist/instrumentation/index.js +5 -0
  88. package/dist/instrumentation/measureQuery.browser.d.ts +3 -0
  89. package/dist/instrumentation/measureQuery.browser.d.ts.map +1 -0
  90. package/dist/instrumentation/measureQuery.browser.js +6 -0
  91. package/dist/instrumentation/measureQueryWithErrors.d.ts +11 -0
  92. package/dist/instrumentation/measureQueryWithErrors.d.ts.map +1 -0
  93. package/dist/instrumentation/measureQueryWithErrors.js +90 -0
  94. package/dist/lib-core/ambitenClient.d.ts +115 -0
  95. package/dist/lib-core/ambitenClient.d.ts.map +1 -0
  96. package/dist/lib-core/ambitenClient.js +537 -0
  97. package/dist/lib-core/ambitenModelFactory.d.ts +979 -0
  98. package/dist/lib-core/ambitenModelFactory.d.ts.map +1 -0
  99. package/dist/lib-core/ambitenModelFactory.js +3984 -0
  100. package/dist/lib-core/ambitenSchema.d.ts +126 -0
  101. package/dist/lib-core/ambitenSchema.d.ts.map +1 -0
  102. package/dist/lib-core/ambitenSchema.js +247 -0
  103. package/dist/lib-core/bootstrap/ambitenBootstrap.d.ts +38 -0
  104. package/dist/lib-core/bootstrap/ambitenBootstrap.d.ts.map +1 -0
  105. package/dist/lib-core/bootstrap/ambitenBootstrap.js +381 -0
  106. package/dist/lib-core/bootstrap/index.d.ts +2 -0
  107. package/dist/lib-core/bootstrap/index.d.ts.map +1 -0
  108. package/dist/lib-core/bootstrap/index.js +4 -0
  109. package/dist/lib-core/index.d.ts +5 -0
  110. package/dist/lib-core/index.d.ts.map +1 -0
  111. package/dist/lib-core/index.js +7 -0
  112. package/dist/middleware/authorization/auth.d.ts +22 -0
  113. package/dist/middleware/authorization/auth.d.ts.map +1 -0
  114. package/dist/middleware/authorization/auth.js +37 -0
  115. package/dist/middleware/index.d.ts +4 -0
  116. package/dist/middleware/index.d.ts.map +1 -0
  117. package/dist/middleware/index.js +6 -0
  118. package/dist/middleware/rbac/rbacMiddleware.d.ts +103 -0
  119. package/dist/middleware/rbac/rbacMiddleware.d.ts.map +1 -0
  120. package/dist/middleware/rbac/rbacMiddleware.js +246 -0
  121. package/dist/middleware/rbac/rbacTypes.d.ts +4 -0
  122. package/dist/middleware/rbac/rbacTypes.d.ts.map +1 -0
  123. package/dist/middleware/rbac/rbacTypes.js +8 -0
  124. package/dist/plugins/index.d.ts +3 -0
  125. package/dist/plugins/index.d.ts.map +1 -0
  126. package/dist/plugins/index.js +5 -0
  127. package/dist/plugins/softDelete/applySoftDelete.d.ts +5 -0
  128. package/dist/plugins/softDelete/applySoftDelete.d.ts.map +1 -0
  129. package/dist/plugins/softDelete/applySoftDelete.js +139 -0
  130. package/dist/plugins/softDelete/types.d.ts +14 -0
  131. package/dist/plugins/softDelete/types.d.ts.map +1 -0
  132. package/dist/plugins/softDelete/types.js +2 -0
  133. package/dist/redis-manager/index.d.ts +2 -0
  134. package/dist/redis-manager/index.d.ts.map +1 -0
  135. package/dist/redis-manager/index.js +4 -0
  136. package/dist/redis-manager/redisClient.d.ts +32 -0
  137. package/dist/redis-manager/redisClient.d.ts.map +1 -0
  138. package/dist/redis-manager/redisClient.js +146 -0
  139. package/dist/tanancy/MultiTenantManager.d.ts +98 -0
  140. package/dist/tanancy/MultiTenantManager.d.ts.map +1 -0
  141. package/dist/tanancy/MultiTenantManager.js +190 -0
  142. package/dist/tanancy/TenantContext.d.ts +31 -0
  143. package/dist/tanancy/TenantContext.d.ts.map +1 -0
  144. package/dist/tanancy/TenantContext.js +59 -0
  145. package/dist/tanancy/TenantModelResolver.d.ts +10 -0
  146. package/dist/tanancy/TenantModelResolver.d.ts.map +1 -0
  147. package/dist/tanancy/TenantModelResolver.js +114 -0
  148. package/dist/tanancy/index.d.ts +5 -0
  149. package/dist/tanancy/index.d.ts.map +1 -0
  150. package/dist/tanancy/index.js +7 -0
  151. package/dist/tanancy/init/initMultiTenancy.d.ts +29 -0
  152. package/dist/tanancy/init/initMultiTenancy.d.ts.map +1 -0
  153. package/dist/tanancy/init/initMultiTenancy.js +62 -0
  154. package/dist/templates/generateDefaultConfigContent.d.ts +10 -0
  155. package/dist/templates/generateDefaultConfigContent.d.ts.map +1 -0
  156. package/dist/templates/generateDefaultConfigContent.js +108 -0
  157. package/dist/templates/generateGCManagerFile.d.ts +2 -0
  158. package/dist/templates/generateGCManagerFile.d.ts.map +1 -0
  159. package/dist/templates/generateGCManagerFile.js +39 -0
  160. package/dist/templates/generateGCRunnerFile.d.ts +2 -0
  161. package/dist/templates/generateGCRunnerFile.d.ts.map +1 -0
  162. package/dist/templates/generateGCRunnerFile.js +25 -0
  163. package/dist/templates/generateMainEntry.d.ts +3 -0
  164. package/dist/templates/generateMainEntry.d.ts.map +1 -0
  165. package/dist/templates/generateMainEntry.js +24 -0
  166. package/dist/templates/index.d.ts +6 -0
  167. package/dist/templates/index.d.ts.map +1 -0
  168. package/dist/templates/index.js +8 -0
  169. package/dist/templates/scaffold/structureGenerator.d.ts +4 -0
  170. package/dist/templates/scaffold/structureGenerator.d.ts.map +1 -0
  171. package/dist/templates/scaffold/structureGenerator.js +193 -0
  172. package/dist/types/GCConfig.d.ts +7 -0
  173. package/dist/types/GCConfig.d.ts.map +1 -0
  174. package/dist/types/GCConfig.js +2 -0
  175. package/dist/types/ambiten-runtime-type.d.ts +24 -0
  176. package/dist/types/ambiten-runtime-type.d.ts.map +1 -0
  177. package/dist/types/ambiten-runtime-type.js +2 -0
  178. package/dist/types/ambiten.client.type.d.ts +136 -0
  179. package/dist/types/ambiten.client.type.d.ts.map +1 -0
  180. package/dist/types/ambiten.client.type.js +3 -0
  181. package/dist/types/ambiten.model.type.d.ts +135 -0
  182. package/dist/types/ambiten.model.type.d.ts.map +1 -0
  183. package/dist/types/ambiten.model.type.js +4 -0
  184. package/dist/types/ambitenConfig.d.ts +103 -0
  185. package/dist/types/ambitenConfig.d.ts.map +1 -0
  186. package/dist/types/ambitenConfig.js +3 -0
  187. package/dist/types/bootstrapClient.type.d.ts +11 -0
  188. package/dist/types/bootstrapClient.type.d.ts.map +1 -0
  189. package/dist/types/bootstrapClient.type.js +2 -0
  190. package/dist/types/db.provider.d.ts +66 -0
  191. package/dist/types/db.provider.d.ts.map +1 -0
  192. package/dist/types/db.provider.js +2 -0
  193. package/dist/types/document.d.ts +7 -0
  194. package/dist/types/document.d.ts.map +1 -0
  195. package/dist/types/document.js +2 -0
  196. package/dist/types/event.type.d.ts +6 -0
  197. package/dist/types/event.type.d.ts.map +1 -0
  198. package/dist/types/event.type.js +27 -0
  199. package/dist/types/graphql.type.d.ts +22 -0
  200. package/dist/types/graphql.type.d.ts.map +1 -0
  201. package/dist/types/graphql.type.js +2 -0
  202. package/dist/types/index.d.ts +15 -0
  203. package/dist/types/index.d.ts.map +1 -0
  204. package/dist/types/index.js +17 -0
  205. package/dist/types/logger.types.d.ts +15 -0
  206. package/dist/types/logger.types.d.ts.map +1 -0
  207. package/dist/types/logger.types.js +3 -0
  208. package/dist/types/middleware/types.d.ts +28 -0
  209. package/dist/types/middleware/types.d.ts.map +1 -0
  210. package/dist/types/middleware/types.js +2 -0
  211. package/dist/types/result.utils.types.d.ts +7 -0
  212. package/dist/types/result.utils.types.d.ts.map +1 -0
  213. package/dist/types/result.utils.types.js +2 -0
  214. package/dist/types/schema.type.d.ts +23 -0
  215. package/dist/types/schema.type.d.ts.map +1 -0
  216. package/dist/types/schema.type.js +10 -0
  217. package/dist/types/user.type.d.ts +11 -0
  218. package/dist/types/user.type.d.ts.map +1 -0
  219. package/dist/types/user.type.js +2 -0
  220. package/dist/utils/AuthUtils.d.ts +15 -0
  221. package/dist/utils/AuthUtils.d.ts.map +1 -0
  222. package/dist/utils/AuthUtils.js +26 -0
  223. package/dist/utils/ModelRegistry.d.ts +15 -0
  224. package/dist/utils/ModelRegistry.d.ts.map +1 -0
  225. package/dist/utils/ModelRegistry.js +35 -0
  226. package/dist/utils/banner.d.ts +2 -0
  227. package/dist/utils/banner.d.ts.map +1 -0
  228. package/dist/utils/banner.js +20 -0
  229. package/dist/utils/builders/createModel.d.ts +37 -0
  230. package/dist/utils/builders/createModel.d.ts.map +1 -0
  231. package/dist/utils/builders/createModel.js +38 -0
  232. package/dist/utils/builders/getTenantDb.d.ts +12 -0
  233. package/dist/utils/builders/getTenantDb.d.ts.map +1 -0
  234. package/dist/utils/builders/getTenantDb.js +25 -0
  235. package/dist/utils/builders/index.d.ts +4 -0
  236. package/dist/utils/builders/index.d.ts.map +1 -0
  237. package/dist/utils/builders/index.js +6 -0
  238. package/dist/utils/builders/schema.d.ts +22 -0
  239. package/dist/utils/builders/schema.d.ts.map +1 -0
  240. package/dist/utils/builders/schema.js +26 -0
  241. package/dist/utils/cacheWithRedis.d.ts +27 -0
  242. package/dist/utils/cacheWithRedis.d.ts.map +1 -0
  243. package/dist/utils/cacheWithRedis.js +22 -0
  244. package/dist/utils/castId.d.ts +5 -0
  245. package/dist/utils/castId.d.ts.map +1 -0
  246. package/dist/utils/castId.js +52 -0
  247. package/dist/utils/color-palatte.d.ts +4 -0
  248. package/dist/utils/color-palatte.d.ts.map +1 -0
  249. package/dist/utils/color-palatte.js +24 -0
  250. package/dist/utils/configureAmbitenContext.d.ts +13 -0
  251. package/dist/utils/configureAmbitenContext.d.ts.map +1 -0
  252. package/dist/utils/configureAmbitenContext.js +35 -0
  253. package/dist/utils/detect-package-manager.d.ts +5 -0
  254. package/dist/utils/detect-package-manager.d.ts.map +1 -0
  255. package/dist/utils/detect-package-manager.js +59 -0
  256. package/dist/utils/ensureModelNameSafe.d.ts +12 -0
  257. package/dist/utils/ensureModelNameSafe.d.ts.map +1 -0
  258. package/dist/utils/ensureModelNameSafe.js +28 -0
  259. package/dist/utils/ensureRedis.d.ts +7 -0
  260. package/dist/utils/ensureRedis.d.ts.map +1 -0
  261. package/dist/utils/ensureRedis.js +40 -0
  262. package/dist/utils/error/ambitenError-handler.d.ts +24 -0
  263. package/dist/utils/error/ambitenError-handler.d.ts.map +1 -0
  264. package/dist/utils/error/ambitenError-handler.js +39 -0
  265. package/dist/utils/error/errorTypes.d.ts +27 -0
  266. package/dist/utils/error/errorTypes.d.ts.map +1 -0
  267. package/dist/utils/error/errorTypes.js +30 -0
  268. package/dist/utils/error/index.d.ts +3 -0
  269. package/dist/utils/error/index.d.ts.map +1 -0
  270. package/dist/utils/error/index.js +5 -0
  271. package/dist/utils/eventOptions.d.ts +38 -0
  272. package/dist/utils/eventOptions.d.ts.map +1 -0
  273. package/dist/utils/eventOptions.js +130 -0
  274. package/dist/utils/events.d.ts +5 -0
  275. package/dist/utils/events.d.ts.map +1 -0
  276. package/dist/utils/events.js +7 -0
  277. package/dist/utils/index.d.ts +23 -0
  278. package/dist/utils/index.d.ts.map +1 -0
  279. package/dist/utils/index.js +25 -0
  280. package/dist/utils/invalidateTenantCache.d.ts +18 -0
  281. package/dist/utils/invalidateTenantCache.d.ts.map +1 -0
  282. package/dist/utils/invalidateTenantCache.js +27 -0
  283. package/dist/utils/logger.d.ts +3 -0
  284. package/dist/utils/logger.d.ts.map +1 -0
  285. package/dist/utils/logger.js +27 -0
  286. package/dist/utils/modelLoader.d.ts +3 -0
  287. package/dist/utils/modelLoader.d.ts.map +1 -0
  288. package/dist/utils/modelLoader.js +41 -0
  289. package/dist/utils/resolveAmbitenOption.d.ts +2 -0
  290. package/dist/utils/resolveAmbitenOption.d.ts.map +1 -0
  291. package/dist/utils/resolveAmbitenOption.js +10 -0
  292. package/dist/utils/resolveRuntimeConfig.d.ts +22 -0
  293. package/dist/utils/resolveRuntimeConfig.d.ts.map +1 -0
  294. package/dist/utils/resolveRuntimeConfig.js +33 -0
  295. package/dist/utils/scaffoldLoger.d.ts +11 -0
  296. package/dist/utils/scaffoldLoger.d.ts.map +1 -0
  297. package/dist/utils/scaffoldLoger.js +68 -0
  298. package/dist/utils/symbols.d.ts +4 -0
  299. package/dist/utils/symbols.d.ts.map +1 -0
  300. package/dist/utils/symbols.js +6 -0
  301. package/dist/utils/time.d.ts +5 -0
  302. package/dist/utils/time.d.ts.map +1 -0
  303. package/dist/utils/time.js +39 -0
  304. package/package.json +180 -0
@@ -0,0 +1,22 @@
1
+ import type { ClientSession } from 'mongodb';
2
+ export interface RuntimeResolutionInput {
3
+ methodTenantId?: string;
4
+ methodDbName?: string;
5
+ methodCollectionName?: string;
6
+ methodSession?: ClientSession;
7
+ modelTenantId?: string;
8
+ modelDbName?: string;
9
+ modelCollectionName?: string;
10
+ modelSession?: ClientSession;
11
+ clientDbName?: string;
12
+ }
13
+ export interface RuntimeResolutionOutput {
14
+ tenantId?: string;
15
+ dbName?: string;
16
+ collectionName?: string;
17
+ session?: ClientSession;
18
+ requestId?: string;
19
+ loggerMeta?: Record<string, any>;
20
+ }
21
+ export declare function resolveRuntimeConfig(input: RuntimeResolutionInput): RuntimeResolutionOutput;
22
+ //# sourceMappingURL=resolveRuntimeConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveRuntimeConfig.d.ts","sourceRoot":"","sources":["../../src/utils/resolveRuntimeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7C,MAAM,WAAW,sBAAsB;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAE7B,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACjC;AAED,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,sBAAsB,GAC3B,uBAAuB,CA4BzB"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveRuntimeConfig = resolveRuntimeConfig;
4
+ const context_1 = require("../context");
5
+ const resolveAmbitenOption_1 = require("./resolveAmbitenOption");
6
+ function resolveRuntimeConfig(input) {
7
+ const ctx = context_1.AmbitenContext.get();
8
+ return {
9
+ tenantId: (0, resolveAmbitenOption_1.resolveAmbitenOption)([
10
+ input.methodTenantId,
11
+ ctx?.tenantId,
12
+ input.modelTenantId
13
+ ]),
14
+ dbName: (0, resolveAmbitenOption_1.resolveAmbitenOption)([
15
+ input.methodDbName,
16
+ ctx?.dbName,
17
+ input.modelDbName,
18
+ input.clientDbName
19
+ ]),
20
+ collectionName: (0, resolveAmbitenOption_1.resolveAmbitenOption)([
21
+ input.methodCollectionName,
22
+ ctx?.collectionName,
23
+ input.modelCollectionName
24
+ ]),
25
+ session: (0, resolveAmbitenOption_1.resolveAmbitenOption)([
26
+ input.methodSession,
27
+ ctx?.session,
28
+ input.modelSession
29
+ ]),
30
+ requestId: ctx?.requestId,
31
+ loggerMeta: ctx?.loggerMeta
32
+ };
33
+ }
@@ -0,0 +1,11 @@
1
+ import type { AmbitenConfig } from '../types';
2
+ export interface ScaffoldLog {
3
+ files: string[];
4
+ dirs: string[];
5
+ }
6
+ export declare function createScaffoldLogger(projectRoot: string): {
7
+ addFile(filePath: string): void;
8
+ addDir(dirPath: string): void;
9
+ printSummary(projectName: string, options: AmbitenConfig, durationMs: number): void;
10
+ };
11
+ //# sourceMappingURL=scaffoldLoger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffoldLoger.d.ts","sourceRoot":"","sources":["../../src/utils/scaffoldLoger.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM;sBAUlC,MAAM;oBAIR,MAAM;8BAII,MAAM,WAAW,aAAa,cAAc,MAAM;EAuD/E"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createScaffoldLogger = createScaffoldLogger;
4
+ const tslib_1 = require("tslib");
5
+ const path_1 = tslib_1.__importDefault(require("path"));
6
+ const color_palatte_1 = require("./color-palatte");
7
+ function createScaffoldLogger(projectRoot) {
8
+ const log = {
9
+ files: [],
10
+ dirs: [],
11
+ };
12
+ const normalize = (p) => path_1.default.relative(projectRoot, p).replace(/\\/g, '/');
13
+ return {
14
+ addFile(filePath) {
15
+ log.files.push(normalize(filePath));
16
+ },
17
+ addDir(dirPath) {
18
+ log.dirs.push(normalize(dirPath) + '/');
19
+ },
20
+ printSummary(projectName, options, durationMs) {
21
+ const enabledFeatures = [
22
+ options.multiTenant?.enabled ? 'Multi-tenancy' : null,
23
+ options.graphql?.enabled ? 'GraphQL' : null,
24
+ options.logger?.enabled ? 'Logger' : null,
25
+ options.features?.useRedisCache ? 'Redis Cache' : null,
26
+ options.advanced?.garbageCollector?.enabled ? 'Garbage Collector' : null,
27
+ ].filter(Boolean);
28
+ const disabledFeatures = [
29
+ !options.multiTenant?.enabled ? 'Multi-tenancy' : null,
30
+ !options.graphql?.enabled ? 'GraphQL' : null,
31
+ !options.logger?.enabled ? 'Logger' : null,
32
+ !options.features?.useRedisCache ? 'Redis Cache' : null,
33
+ !options.advanced?.garbageCollector?.enabled ? 'Garbage Collector' : null,
34
+ ].filter(Boolean);
35
+ const seconds = (durationMs / 1000).toFixed(2);
36
+ console.log('');
37
+ console.log((0, color_palatte_1.colorize)(`✔ Project scaffold completed in ${seconds}s`, 'green'));
38
+ console.log('');
39
+ if (log.dirs.length) {
40
+ console.log((0, color_palatte_1.colorize)('Directories:', 'blue'));
41
+ log.dirs.forEach((d) => {
42
+ console.log((0, color_palatte_1.colorize)(` + ${d}`, 'green'));
43
+ });
44
+ console.log('');
45
+ }
46
+ if (log.files.length) {
47
+ console.log((0, color_palatte_1.colorize)('Files:', 'blue'));
48
+ log.files.forEach((f) => {
49
+ console.log((0, color_palatte_1.colorize)(` + ${f}`, 'green'));
50
+ });
51
+ console.log('');
52
+ }
53
+ console.log((0, color_palatte_1.colorize)('Feature summary:', 'blue'));
54
+ enabledFeatures.forEach((feature) => {
55
+ console.log((0, color_palatte_1.colorize)(` ✓ ${feature}`, 'green'));
56
+ });
57
+ disabledFeatures.forEach((feature) => {
58
+ console.log((0, color_palatte_1.colorize)(` ✗ ${feature}`, 'yellow'));
59
+ });
60
+ console.log('');
61
+ console.log((0, color_palatte_1.colorize)('Next steps:', 'blue'));
62
+ console.log((0, color_palatte_1.colorize)(` cd ${projectName}`, 'green'));
63
+ console.log((0, color_palatte_1.colorize)(` pnpm install`, 'green'));
64
+ console.log((0, color_palatte_1.colorize)(` pnpm dev`, 'green'));
65
+ console.log('');
66
+ },
67
+ };
68
+ }
@@ -0,0 +1,4 @@
1
+ export declare const AmbitenSymbol: unique symbol;
2
+ export declare const schemaTypeSymbol: unique symbol;
3
+ export declare const objectIdSymbol: unique symbol;
4
+ //# sourceMappingURL=symbols.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../../src/utils/symbols.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,eAAoB,CAAC;AAC/C,eAAO,MAAM,gBAAgB,eAA8B,CAAC;AAC5D,eAAO,MAAM,cAAc,eAAgC,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.objectIdSymbol = exports.schemaTypeSymbol = exports.AmbitenSymbol = void 0;
4
+ exports.AmbitenSymbol = Symbol('Ambiten');
5
+ exports.schemaTypeSymbol = Symbol('AmbitenSchemaType');
6
+ exports.objectIdSymbol = Symbol.for('AmbitenObjectId');
@@ -0,0 +1,5 @@
1
+ export declare const parseDuration: (duration: string) => number;
2
+ export declare const formatDuration: (ms: number) => string;
3
+ export declare const isValidDuration: (duration: string) => boolean;
4
+ export declare const now: Date;
5
+ //# sourceMappingURL=time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/utils/time.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,KAAG,MAgBhD,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,IAAI,MAAM,KAAG,MAU3C,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,KAAG,OAElD,CAAC;AAGF,eAAO,MAAM,GAAG,MAAa,CAAC"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.now = exports.isValidDuration = exports.formatDuration = exports.parseDuration = void 0;
4
+ const parseDuration = (duration) => {
5
+ const match = duration.match(/^(\d+)([smhd])$/);
6
+ const isValid = (0, exports.isValidDuration)(duration);
7
+ if (!match || !isValid) {
8
+ throw new Error(`Invalid duration format: ${duration}. Expected format is <number><unit> where unit is one of 's', 'm', 'h', or 'd'.`);
9
+ }
10
+ const value = parseInt(match[1], 10);
11
+ const unit = match[2];
12
+ switch (unit) {
13
+ case 's': return value * 1000; // seconds to milliseconds
14
+ case 'm': return value * 60 * 1000; // minutes to milliseconds
15
+ case 'h': return value * 60 * 60 * 1000; // hours to milliseconds
16
+ case 'd': return value * 24 * 60 * 60 * 1000; // days to milliseconds
17
+ default: throw new Error(`Unknown time unit: ${unit}`);
18
+ }
19
+ };
20
+ exports.parseDuration = parseDuration;
21
+ const formatDuration = (ms) => {
22
+ const seconds = Math.floor(ms / 1000);
23
+ const minutes = Math.floor(seconds / 60);
24
+ const hours = Math.floor(minutes / 60);
25
+ const days = Math.floor(hours / 24);
26
+ if (days > 0)
27
+ return `${days}d`;
28
+ if (hours > 0)
29
+ return `${hours}h`;
30
+ if (minutes > 0)
31
+ return `${minutes}m`;
32
+ return `${seconds}s`;
33
+ };
34
+ exports.formatDuration = formatDuration;
35
+ const isValidDuration = (duration) => {
36
+ return /^(\d+)([smhd])$/.test(duration);
37
+ };
38
+ exports.isValidDuration = isValidDuration;
39
+ exports.now = new Date();
package/package.json ADDED
@@ -0,0 +1,180 @@
1
+ {
2
+ "name": "@ambiten/core",
3
+ "version": "1.0.0",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
7
+ "description": "Core library for Ambiten, providing essential functionalities and utilities for building applications with Ambiten.",
8
+ "main": "./dist/index.js",
9
+ "module": "./dist/index.js",
10
+ "browser": "./dist/index-browser.js",
11
+ "types": "./dist/index.d.ts",
12
+ "bin": {
13
+ "ambiten": "./bin/bootstrap.js"
14
+ },
15
+ "exports": {
16
+ ".": {
17
+ "import": "./dist/index.js",
18
+ "require": "./dist/index.js",
19
+ "types": "./dist/index.d.ts"
20
+ },
21
+ "./browser": {
22
+ "import": "./dist/index-browser.js",
23
+ "require": "./dist/index-browser.js",
24
+ "types": "./dist/browser.d.ts"
25
+ },
26
+ "./bin": {
27
+ "import": "./dist/index-cli.js",
28
+ "require": "./dist/index-cli.js",
29
+ "types": "./dist/cli.d.ts"
30
+ },
31
+ "./bundle": "./dist/ambiten-logger.js",
32
+ "./package.json": "./package.json"
33
+ },
34
+ "sideEffects": false,
35
+ "files": [
36
+ "dist",
37
+ "bin",
38
+ "README.md",
39
+ "LICENSE",
40
+ "package.json",
41
+ "!dist/scripts"
42
+ ],
43
+ "release": {
44
+ "branches": [
45
+ "main"
46
+ ]
47
+ },
48
+ "keywords": [
49
+ "mongodb",
50
+ "odm",
51
+ "core",
52
+ "Ambiten",
53
+ "library"
54
+ ],
55
+ "author": "Emmanuel Nodolomwanyi",
56
+ "maintainers": [
57
+ {
58
+ "name": "Emmanuel Nodolomwanyi"
59
+ }
60
+ ],
61
+ "license": "ISC",
62
+ "repository": {
63
+ "type": "git",
64
+ "url": "git+https://github.com/AmbitenHQ/ambiten.git",
65
+ "directory": "packages/core"
66
+ },
67
+ "bugs": {
68
+ "url": "https://github.com/AmbitenHQ/ambiten/issues"
69
+ },
70
+ "homepage": "https://ambiten.dev",
71
+ "dependencies": {
72
+ "@babel/runtime": "7.28.4",
73
+ "@inquirer/prompts": "^8.3.2",
74
+ "buffer": "6.0.3",
75
+ "commander": "14.0.2",
76
+ "fs-extra": "11.3.3",
77
+ "node-cron": "4.2.0",
78
+ "prompts": "^2.4.2",
79
+ "@ambiten/logger": "1.0.0"
80
+ },
81
+ "peerDependencies": {
82
+ "@graphql-tools/schema": "10.0.23",
83
+ "ajv": ">=8.18.0",
84
+ "ajv-formats": "3.0.1",
85
+ "express": "^5.1.0",
86
+ "express-serve-static-core": "^0.1.1",
87
+ "graphql": "16.11.0",
88
+ "graphql-http": "1.22.4",
89
+ "graphql-redis-subscriptions": "2.7.0",
90
+ "graphql-subscriptions": "3.0.0",
91
+ "graphql-tag": "2.12.6",
92
+ "graphql-ws": "5.16.2",
93
+ "jsonwebtoken": "9.0.2",
94
+ "mongodb": "^5 || ^6",
95
+ "redis": "4.7.1",
96
+ "ws": ">=8.20.1"
97
+ },
98
+ "peerDependenciesMeta": {
99
+ "mongodb": {
100
+ "optional": false
101
+ },
102
+ "graphql": {
103
+ "optional": false
104
+ }
105
+ },
106
+ "overrides": {
107
+ "graphql": "16.11.0"
108
+ },
109
+ "devDependencies": {
110
+ "@babel/core": "^7.28.5",
111
+ "@babel/eslint-parser": "^7.28.5",
112
+ "@babel/plugin-transform-modules-commonjs": "^7.27.1",
113
+ "@babel/plugin-transform-runtime": "^7.28.5",
114
+ "@babel/preset-env": "^7.28.5",
115
+ "@babel/preset-typescript": "^7.28.5",
116
+ "@eslint/js": "^9.39.2",
117
+ "@semantic-release/changelog": "^6.0.3",
118
+ "@semantic-release/commit-analyzer": "^13.0.1",
119
+ "@semantic-release/git": "^10.0.1",
120
+ "@semantic-release/github": "^11.0.6",
121
+ "@semantic-release/npm": "^12.0.2",
122
+ "@semantic-release/release-notes-generator": "^14.1.0",
123
+ "@testing-library/jest-dom": "^6.9.1",
124
+ "@types/express": "^5.0.6",
125
+ "@types/express-serve-static-core": "^5.1.1",
126
+ "@types/jest": "^29.5.14",
127
+ "@types/jsonwebtoken": "^9.0.10",
128
+ "@types/node": "^22.19.3",
129
+ "@types/webpack": "5.28.5",
130
+ "axios": "^1.13.2",
131
+ "babel-loader": "^10.0.0",
132
+ "clean-webpack-plugin": "^4.0.0",
133
+ "console-browserify": "^1.2.0",
134
+ "conventional-changelog": "^7.2.0",
135
+ "crypto-browserify": "^3.12.1",
136
+ "dotenv": "16.4.7",
137
+ "eslint": "^9.39.2",
138
+ "eslint-webpack-plugin": "^5.0.2",
139
+ "figlet": "^1.9.4",
140
+ "globals": "^14.0.0",
141
+ "graphql": "16.11.0",
142
+ "jest": "^29.7.0",
143
+ "mongodb-memory-server": "^10.4.3",
144
+ "path-browserify": "^1.0.1",
145
+ "semantic-release": "^24.2.9",
146
+ "socket.io-client": "^4.8.3",
147
+ "stream-browserify": "^3.0.0",
148
+ "supertest": "^7.1.4",
149
+ "ts-jest": "^29.4.6",
150
+ "ts-loader": "9.5.4",
151
+ "ts-node": "^10.9.2",
152
+ "tsconfig-paths": "^4.2.0",
153
+ "tsconfig-paths-webpack-plugin": "^4.2.0",
154
+ "tslib": "2.8.1",
155
+ "tsx": "^4.21.0",
156
+ "typescript": "5.9.3",
157
+ "typescript-eslint": "8.30.1",
158
+ "webpack": "5.104.1",
159
+ "webpack-cli": "6.0.1",
160
+ "webpack-node-externals": "3.0.0",
161
+ "webpack-remove-debug": "0.1.0",
162
+ "webpack-shebang-plugin": "1.1.8",
163
+ "@ambiten/adapter-types": "1.0.0"
164
+ },
165
+ "engines": {
166
+ "node": ">=20.11.0"
167
+ },
168
+ "scripts": {
169
+ "build:node": "webpack --config webpack.node.config.js",
170
+ "build:cli": "webpack --config webpack.cli.config.js",
171
+ "build:web": "webpack --config webpack.web.config.js",
172
+ "build:types": "tsc -p tsconfig.json --excludeDirectories **/node_modules",
173
+ "build": "pnpm run build:types && pnpm run build:node && pnpm run build:cli && pnpm run build:web",
174
+ "lint": "eslint src",
175
+ "clean": "rimraf dist",
176
+ "typedoc": "typedoc --options typedoc.json",
177
+ "release": "pnpm changeset version",
178
+ "test": "jest --detectOpenHandles --coverage"
179
+ }
180
+ }