@rockster/core 0.0.4 → 0.1.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 (318) hide show
  1. package/access/access.module.js +3 -7
  2. package/access/access.module.js.map +1 -1
  3. package/access/constants.d.ts +2 -0
  4. package/access/constants.js +6 -0
  5. package/access/constants.js.map +1 -0
  6. package/access/controllers/controllers.d.ts +2 -1
  7. package/access/controllers/controllers.js +3 -1
  8. package/access/controllers/controllers.js.map +1 -1
  9. package/access/controllers/scope-access-profile.controller.d.ts +17 -0
  10. package/access/controllers/scope-access-profile.controller.js +111 -0
  11. package/access/controllers/scope-access-profile.controller.js.map +1 -0
  12. package/access/controllers/scope-group-user.controller.d.ts +11 -4
  13. package/access/controllers/scope-group-user.controller.js +57 -9
  14. package/access/controllers/scope-group-user.controller.js.map +1 -1
  15. package/access/controllers/scope-group.controller.d.ts +8 -5
  16. package/access/controllers/scope-group.controller.js +66 -12
  17. package/access/controllers/scope-group.controller.js.map +1 -1
  18. package/access/controllers/scope-owner.controller.d.ts +3 -2
  19. package/access/controllers/scope-owner.controller.js +18 -4
  20. package/access/controllers/scope-owner.controller.js.map +1 -1
  21. package/access/controllers/scope-user.controller.d.ts +2 -2
  22. package/access/controllers/scope-user.controller.js +19 -5
  23. package/access/controllers/scope-user.controller.js.map +1 -1
  24. package/access/decorators/context-params.decorator.d.ts +2 -0
  25. package/access/decorators/context-params.decorator.js +13 -0
  26. package/access/decorators/context-params.decorator.js.map +1 -0
  27. package/access/decorators/index.d.ts +2 -0
  28. package/access/decorators/index.js +19 -0
  29. package/access/decorators/index.js.map +1 -0
  30. package/access/decorators/scope-context-id-resolver.decorator.d.ts +10 -0
  31. package/access/decorators/scope-context-id-resolver.decorator.js +22 -0
  32. package/access/decorators/scope-context-id-resolver.decorator.js.map +1 -0
  33. package/access/entities/entities.d.ts +3 -1
  34. package/access/entities/entities.js +4 -0
  35. package/access/entities/entities.js.map +1 -1
  36. package/access/entities/index.d.ts +2 -0
  37. package/access/entities/index.js +2 -0
  38. package/access/entities/index.js.map +1 -1
  39. package/access/entities/scope-access-profile-key.d.ts +6 -0
  40. package/access/entities/scope-access-profile-key.js +40 -0
  41. package/access/entities/scope-access-profile-key.js.map +1 -0
  42. package/access/entities/scope-access-profile.d.ts +6 -0
  43. package/access/entities/scope-access-profile.js +37 -0
  44. package/access/entities/scope-access-profile.js.map +1 -0
  45. package/access/entities/scope-group.d.ts +3 -0
  46. package/access/entities/scope-group.js +16 -0
  47. package/access/entities/scope-group.js.map +1 -1
  48. package/access/functions/assert-context-admin-access.d.ts +15 -0
  49. package/access/functions/assert-context-admin-access.js +62 -0
  50. package/access/functions/assert-context-admin-access.js.map +1 -0
  51. package/access/functions/assert-master-or-owner.d.ts +9 -0
  52. package/access/functions/assert-master-or-owner.js +40 -0
  53. package/access/functions/assert-master-or-owner.js.map +1 -0
  54. package/access/functions/assert-scope-action-access.d.ts +32 -0
  55. package/access/functions/assert-scope-action-access.js +189 -0
  56. package/access/functions/assert-scope-action-access.js.map +1 -0
  57. package/access/functions/build-scope-resolver-initial-data.d.ts +4 -0
  58. package/access/functions/build-scope-resolver-initial-data.js +17 -0
  59. package/access/functions/build-scope-resolver-initial-data.js.map +1 -0
  60. package/access/functions/describe-action-scope.d.ts +9 -0
  61. package/access/functions/describe-action-scope.js +27 -0
  62. package/access/functions/describe-action-scope.js.map +1 -0
  63. package/access/functions/index.d.ts +5 -0
  64. package/access/functions/index.js +5 -0
  65. package/access/functions/index.js.map +1 -1
  66. package/access/functions/init-scope-service-executors.d.ts +3 -0
  67. package/access/functions/init-scope-service-executors.js +38 -0
  68. package/access/functions/init-scope-service-executors.js.map +1 -0
  69. package/access/functions/normalize-scope-keys.d.ts +4 -0
  70. package/access/functions/normalize-scope-keys.js +17 -0
  71. package/access/functions/normalize-scope-keys.js.map +1 -0
  72. package/access/functions/register-scope.d.ts +16 -5
  73. package/access/functions/register-scope.js +57 -45
  74. package/access/functions/register-scope.js.map +1 -1
  75. package/access/functions/resolve-scope-context-id.d.ts +9 -0
  76. package/access/functions/resolve-scope-context-id.js +71 -0
  77. package/access/functions/resolve-scope-context-id.js.map +1 -0
  78. package/access/functions/warn-if-public.d.ts +12 -0
  79. package/access/functions/warn-if-public.js +20 -0
  80. package/access/functions/warn-if-public.js.map +1 -0
  81. package/access/index.d.ts +2 -0
  82. package/access/index.js +2 -0
  83. package/access/index.js.map +1 -1
  84. package/access/interfaces/index.d.ts +1 -0
  85. package/access/interfaces/index.js +1 -0
  86. package/access/interfaces/index.js.map +1 -1
  87. package/access/interfaces/resolve-scope-context-id.d.ts +21 -0
  88. package/access/interfaces/resolve-scope-context-id.js +3 -0
  89. package/access/interfaces/resolve-scope-context-id.js.map +1 -0
  90. package/access/interfaces/scope-service-registry.d.ts +16 -1
  91. package/access/interfaces/scope-service.d.ts +6 -7
  92. package/access/models/scope-access-profile-keys-update.d.ts +5 -0
  93. package/access/models/scope-access-profile-keys-update.js +27 -0
  94. package/access/models/scope-access-profile-keys-update.js.map +1 -0
  95. package/access/models/scope-group-apply-access-profile.d.ts +6 -0
  96. package/access/models/scope-group-apply-access-profile.js +32 -0
  97. package/access/models/scope-group-apply-access-profile.js.map +1 -0
  98. package/access/models/scope-user-mapped.d.ts +1 -0
  99. package/access/models/scope-user-mapped.js +6 -0
  100. package/access/models/scope-user-mapped.js.map +1 -1
  101. package/access/models/scope-user.js +4 -2
  102. package/access/models/scope-user.js.map +1 -1
  103. package/access/queries/scope-access-profile.query.d.ts +1 -0
  104. package/access/queries/scope-access-profile.query.js +10 -0
  105. package/access/queries/scope-access-profile.query.js.map +1 -0
  106. package/access/queries/scope-group.query.js +9 -2
  107. package/access/queries/scope-group.query.js.map +1 -1
  108. package/access/services/index.d.ts +1 -0
  109. package/access/services/index.js +1 -0
  110. package/access/services/index.js.map +1 -1
  111. package/access/services/scope-access-profile.service.d.ts +13 -0
  112. package/access/services/scope-access-profile.service.js +75 -0
  113. package/access/services/scope-access-profile.service.js.map +1 -0
  114. package/access/services/scope-access.service.js +4 -2
  115. package/access/services/scope-access.service.js.map +1 -1
  116. package/access/services/scope-group-user.service.js +2 -2
  117. package/access/services/scope-group-user.service.js.map +1 -1
  118. package/access/services/scope-group.service.d.ts +10 -0
  119. package/access/services/scope-group.service.js +38 -1
  120. package/access/services/scope-group.service.js.map +1 -1
  121. package/access/services/scope-owner.service.d.ts +3 -0
  122. package/access/services/scope-owner.service.js +26 -1
  123. package/access/services/scope-owner.service.js.map +1 -1
  124. package/command/services/post-action-builder.js +19 -17
  125. package/command/services/post-action-builder.js.map +1 -1
  126. package/command/services/remove-action-builder.js +30 -22
  127. package/command/services/remove-action-builder.js.map +1 -1
  128. package/controllers/interfaces/controller-property.d.ts +7 -1
  129. package/controllers/services/default-action-builder.js +12 -30
  130. package/controllers/services/default-action-builder.js.map +1 -1
  131. package/controllers/services/restful-action-builder.js +25 -1
  132. package/controllers/services/restful-action-builder.js.map +1 -1
  133. package/core/contexts/request-context.d.ts +5 -0
  134. package/core/contexts/request-context.js +6 -0
  135. package/core/contexts/request-context.js.map +1 -0
  136. package/core/core.controller.js +6 -1
  137. package/core/core.controller.js.map +1 -1
  138. package/core/interfaces/action-docs.d.ts +15 -0
  139. package/core/interfaces/request-context.d.ts +5 -0
  140. package/core/services/request-router.js +2 -1
  141. package/core/services/request-router.js.map +1 -1
  142. package/database/database.controller.d.ts +1 -3
  143. package/database/database.controller.js +1 -5
  144. package/database/database.controller.js.map +1 -1
  145. package/database/decorators/protect-entity.decorator.d.ts +1 -0
  146. package/database/decorators/protect-entity.decorator.js +2 -3
  147. package/database/decorators/protect-entity.decorator.js.map +1 -1
  148. package/database/decorators/protected-entity.decorator.d.ts +1 -0
  149. package/database/decorators/protected-entity.decorator.js +2 -16
  150. package/database/decorators/protected-entity.decorator.js.map +1 -1
  151. package/database/functions/inject-repository-handle.js +4 -3
  152. package/database/functions/inject-repository-handle.js.map +1 -1
  153. package/database/interfaces/entity-object.d.ts +0 -6
  154. package/database/interfaces/index.d.ts +0 -1
  155. package/database/interfaces/index.js +0 -1
  156. package/database/interfaces/index.js.map +1 -1
  157. package/database/interfaces/repository.d.ts +8 -8
  158. package/docs/docs.module.js +3 -1
  159. package/docs/docs.module.js.map +1 -1
  160. package/docs/migrations/1747584000000-CreateDocsTables.d.ts +5 -0
  161. package/docs/migrations/1747584000000-CreateDocsTables.js +90 -0
  162. package/docs/migrations/1747584000000-CreateDocsTables.js.map +1 -0
  163. package/docs/migrations/migrations.d.ts +2 -0
  164. package/docs/migrations/migrations.js +8 -0
  165. package/docs/migrations/migrations.js.map +1 -0
  166. package/global.d.ts +2 -0
  167. package/global.js +1 -0
  168. package/global.js.map +1 -1
  169. package/index.d.ts +2 -1
  170. package/index.js +2 -1
  171. package/index.js.map +1 -1
  172. package/jobs/jobs.controller.d.ts +2 -0
  173. package/jobs/jobs.controller.js +20 -16
  174. package/jobs/jobs.controller.js.map +1 -1
  175. package/package.json +70 -70
  176. package/query/functions/add-join.js +2 -13
  177. package/query/functions/add-join.js.map +1 -1
  178. package/query/functions/create-query-builder.js +0 -10
  179. package/query/functions/create-query-builder.js.map +1 -1
  180. package/query/functions/execute-query.js +34 -0
  181. package/query/functions/execute-query.js.map +1 -1
  182. package/query/functions/load-properties.js +73 -5
  183. package/query/functions/load-properties.js.map +1 -1
  184. package/query/services/query-action-builder.js +12 -18
  185. package/query/services/query-action-builder.js.map +1 -1
  186. package/remote-logs/dtos/index.d.ts +2 -0
  187. package/remote-logs/dtos/index.js +19 -0
  188. package/remote-logs/dtos/index.js.map +1 -0
  189. package/remote-logs/dtos/remote-log-hooks.dto.d.ts +72 -0
  190. package/remote-logs/dtos/remote-log-hooks.dto.js +280 -0
  191. package/remote-logs/dtos/remote-log-hooks.dto.js.map +1 -0
  192. package/remote-logs/dtos/remote-log-search.dto.d.ts +34 -0
  193. package/remote-logs/dtos/remote-log-search.dto.js +146 -0
  194. package/remote-logs/dtos/remote-log-search.dto.js.map +1 -0
  195. package/remote-logs/environment.d.ts +4 -0
  196. package/remote-logs/environment.js +5 -0
  197. package/remote-logs/environment.js.map +1 -0
  198. package/remote-logs/index.d.ts +3 -0
  199. package/remote-logs/index.js +20 -0
  200. package/remote-logs/index.js.map +1 -0
  201. package/remote-logs/interfaces/index.d.ts +1 -0
  202. package/remote-logs/interfaces/index.js +18 -0
  203. package/remote-logs/interfaces/index.js.map +1 -0
  204. package/remote-logs/interfaces/remote-logs-module-options.d.ts +8 -0
  205. package/remote-logs/interfaces/remote-logs-module-options.js +3 -0
  206. package/remote-logs/interfaces/remote-logs-module-options.js.map +1 -0
  207. package/remote-logs/remote-logs-hooks.controller.d.ts +60 -0
  208. package/remote-logs/remote-logs-hooks.controller.js +331 -0
  209. package/remote-logs/remote-logs-hooks.controller.js.map +1 -0
  210. package/remote-logs/remote-logs.controller.d.ts +8 -0
  211. package/remote-logs/remote-logs.controller.js +41 -0
  212. package/remote-logs/remote-logs.controller.js.map +1 -0
  213. package/remote-logs/remote-logs.module.d.ts +12 -0
  214. package/remote-logs/remote-logs.module.js +107 -0
  215. package/remote-logs/remote-logs.module.js.map +1 -0
  216. package/remote-logs/services/opensearch.service.d.ts +13 -0
  217. package/remote-logs/services/opensearch.service.js +167 -0
  218. package/remote-logs/services/opensearch.service.js.map +1 -0
  219. package/security/auth.controller.js +4 -4
  220. package/security/auth.controller.js.map +1 -1
  221. package/security/functions/add-protected.d.ts +2 -2
  222. package/security/functions/add-protected.js +8 -5
  223. package/security/functions/add-protected.js.map +1 -1
  224. package/security/functions/create-authentication-interceptor.d.ts +44 -0
  225. package/security/functions/create-authentication-interceptor.js +114 -0
  226. package/security/functions/create-authentication-interceptor.js.map +1 -0
  227. package/security/functions/find-auth-context.d.ts +1 -2
  228. package/security/functions/find-auth-context.js +6 -11
  229. package/security/functions/find-auth-context.js.map +1 -1
  230. package/security/index.d.ts +1 -0
  231. package/security/index.js +1 -0
  232. package/security/index.js.map +1 -1
  233. package/security/interfaces/authorization-schema.d.ts +3 -1
  234. package/security/services/authorization.service.d.ts +5 -3
  235. package/security/services/authorization.service.js +56 -37
  236. package/security/services/authorization.service.js.map +1 -1
  237. package/storage/services/routes.service.js +1 -1
  238. package/storage/services/routes.service.js.map +1 -1
  239. package/tasks/constants.d.ts +3 -0
  240. package/tasks/constants.js +2 -1
  241. package/tasks/constants.js.map +1 -1
  242. package/tasks/controllers/task.controller.d.ts +3 -2
  243. package/tasks/controllers/task.controller.js +11 -40
  244. package/tasks/controllers/task.controller.js.map +1 -1
  245. package/tasks/decorators/index.d.ts +1 -0
  246. package/tasks/decorators/index.js +1 -0
  247. package/tasks/decorators/index.js.map +1 -1
  248. package/tasks/decorators/task-payload.decorator.d.ts +1 -0
  249. package/tasks/decorators/task-payload.decorator.js +12 -0
  250. package/tasks/decorators/task-payload.decorator.js.map +1 -0
  251. package/tasks/decorators/task.decorator.js +3 -0
  252. package/tasks/decorators/task.decorator.js.map +1 -1
  253. package/tasks/functions/compile-all-task-post-hooks.d.ts +1 -0
  254. package/tasks/functions/compile-all-task-post-hooks.js +27 -0
  255. package/tasks/functions/compile-all-task-post-hooks.js.map +1 -0
  256. package/tasks/functions/compile-task-hook-handle.d.ts +6 -0
  257. package/tasks/functions/compile-task-hook-handle.js +67 -0
  258. package/tasks/functions/compile-task-hook-handle.js.map +1 -0
  259. package/tasks/functions/create-task-hook.d.ts +9 -0
  260. package/tasks/functions/create-task-hook.js +13 -0
  261. package/tasks/functions/create-task-hook.js.map +1 -0
  262. package/tasks/functions/create-task-message-post.js +2 -0
  263. package/tasks/functions/create-task-message-post.js.map +1 -1
  264. package/tasks/functions/register-task-post-hook-interceptors.d.ts +3 -0
  265. package/tasks/functions/register-task-post-hook-interceptors.js +86 -0
  266. package/tasks/functions/register-task-post-hook-interceptors.js.map +1 -0
  267. package/tasks/functions/run-task-post-hooks.d.ts +11 -0
  268. package/tasks/functions/run-task-post-hooks.js +18 -0
  269. package/tasks/functions/run-task-post-hooks.js.map +1 -0
  270. package/tasks/functions/task-message-operations.d.ts +18 -0
  271. package/tasks/functions/task-message-operations.js +100 -0
  272. package/tasks/functions/task-message-operations.js.map +1 -0
  273. package/tasks/functions/validate-task-payload.d.ts +2 -0
  274. package/tasks/functions/validate-task-payload.js +19 -0
  275. package/tasks/functions/validate-task-payload.js.map +1 -0
  276. package/tasks/hook-constants.d.ts +2 -0
  277. package/tasks/hook-constants.js +6 -0
  278. package/tasks/hook-constants.js.map +1 -0
  279. package/tasks/index.d.ts +3 -0
  280. package/tasks/index.js +3 -0
  281. package/tasks/index.js.map +1 -1
  282. package/tasks/interfaces/compiled-task-post-hooks.d.ts +17 -0
  283. package/tasks/interfaces/compiled-task-post-hooks.js +3 -0
  284. package/tasks/interfaces/compiled-task-post-hooks.js.map +1 -0
  285. package/tasks/interfaces/index.d.ts +3 -0
  286. package/tasks/interfaces/index.js +3 -0
  287. package/tasks/interfaces/index.js.map +1 -1
  288. package/tasks/interfaces/task-hook.d.ts +16 -0
  289. package/tasks/interfaces/task-hook.js +8 -0
  290. package/tasks/interfaces/task-hook.js.map +1 -0
  291. package/tasks/interfaces/task-object.d.ts +4 -0
  292. package/tasks/interfaces/task-post-hook.d.ts +2 -0
  293. package/{database/interfaces/protector.js → tasks/interfaces/task-post-hook.js} +1 -1
  294. package/tasks/interfaces/task-post-hook.js.map +1 -0
  295. package/tasks/interfaces/task-settings.d.ts +5 -0
  296. package/tasks/services/task-runner.service.d.ts +24 -3
  297. package/tasks/services/task-runner.service.js +66 -28
  298. package/tasks/services/task-runner.service.js.map +1 -1
  299. package/translations/controllers/translation.controller.d.ts +3 -1
  300. package/translations/controllers/translation.controller.js +17 -3
  301. package/translations/controllers/translation.controller.js.map +1 -1
  302. package/translations/services/translations.service.d.ts +1 -0
  303. package/translations/services/translations.service.js +25 -6
  304. package/translations/services/translations.service.js.map +1 -1
  305. package/translations/services/translator.service.d.ts +1 -0
  306. package/translations/services/translator.service.js +6 -0
  307. package/translations/services/translator.service.js.map +1 -1
  308. package/database/functions/use-protector.d.ts +0 -2
  309. package/database/functions/use-protector.js +0 -11
  310. package/database/functions/use-protector.js.map +0 -1
  311. package/database/interfaces/protector.d.ts +0 -51
  312. package/database/interfaces/protector.js.map +0 -1
  313. package/database/services/protect-builder.d.ts +0 -60
  314. package/database/services/protect-builder.js +0 -524
  315. package/database/services/protect-builder.js.map +0 -1
  316. package/security/functions/add-protect.d.ts +0 -2
  317. package/security/functions/add-protect.js +0 -11
  318. package/security/functions/add-protect.js.map +0 -1
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./remote-logs-module-options"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"./","sources":["remote-logs/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C"}
@@ -0,0 +1,8 @@
1
+ export interface RemoteLogsModuleOptions {
2
+ url: string;
3
+ index: string;
4
+ username: string;
5
+ password: string;
6
+ apiUrl?: string;
7
+ defaultHooks?: import('@rockster/common/logs').ILogHook[];
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=remote-logs-module-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-logs-module-options.js","sourceRoot":"./","sources":["remote-logs/interfaces/remote-logs-module-options.ts"],"names":[],"mappings":""}
@@ -0,0 +1,60 @@
1
+ import { IRequestContext } from '../core/interfaces/request-context';
2
+ import { LogClearInterval, LogLevel } from '@rockster/common/logs';
3
+ import { OpenSearchService } from './services/opensearch.service';
4
+ import { RemoteLogAppsQueryDto, RemoteLogEventReadDto, RemoteLogEventsQueryDto, RemoteLogHookPostDto, RemoteLogHookQueryDto, RemoteLogHookRemoveDto, RemoteLogSettingsPostDto, RemoteLogSettingsQueryDto, RemoteLogSettingsRemoveDto } from './dtos/remote-log-hooks.dto';
5
+ export declare class RemoteLogsHooksController {
6
+ protected readonly openSearchService: OpenSearchService;
7
+ constructor(openSearchService: OpenSearchService);
8
+ query(content: RemoteLogHookQueryDto): Promise<import("@rockster/common/logs").IRemoteLogSearchResponse>;
9
+ post(content: RemoteLogHookPostDto): Promise<{
10
+ ok: boolean;
11
+ id: string;
12
+ }>;
13
+ remove(content: RemoteLogHookRemoveDto): Promise<{
14
+ ok: boolean;
15
+ id: string;
16
+ }>;
17
+ }
18
+ export declare class RemoteLogsSettingsController {
19
+ protected readonly openSearchService: OpenSearchService;
20
+ constructor(openSearchService: OpenSearchService);
21
+ query(_content: RemoteLogSettingsQueryDto): Promise<{
22
+ settings: {
23
+ id: string;
24
+ appId: string;
25
+ clearInterval: LogClearInterval;
26
+ logLevel: LogLevel;
27
+ date: string;
28
+ }[];
29
+ }>;
30
+ post(content: RemoteLogSettingsPostDto): Promise<{
31
+ id: string;
32
+ appId: string;
33
+ clearInterval: LogClearInterval;
34
+ logLevel: LogLevel;
35
+ date: string;
36
+ }>;
37
+ remove(content: RemoteLogSettingsRemoveDto): Promise<{
38
+ ok: boolean;
39
+ id: string;
40
+ }>;
41
+ }
42
+ export declare class RemoteLogsAppsController {
43
+ protected readonly openSearchService: OpenSearchService;
44
+ constructor(openSearchService: OpenSearchService);
45
+ query(content: RemoteLogAppsQueryDto): Promise<{
46
+ apps: {
47
+ appId: string;
48
+ date: string;
49
+ }[];
50
+ }>;
51
+ }
52
+ export declare class RemoteLogsEventsController {
53
+ protected readonly openSearchService: OpenSearchService;
54
+ constructor(openSearchService: OpenSearchService);
55
+ query(content: RemoteLogEventsQueryDto): Promise<import("@rockster/common/logs").IRemoteLogSearchResponse>;
56
+ read(content: RemoteLogEventReadDto, requestContext: IRequestContext): Promise<{
57
+ ok: boolean;
58
+ id: string;
59
+ }>;
60
+ }
@@ -0,0 +1,331 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.RemoteLogsEventsController = exports.RemoteLogsAppsController = exports.RemoteLogsSettingsController = exports.RemoteLogsHooksController = void 0;
16
+ const controllers_1 = require("../controllers");
17
+ const request_context_decorator_1 = require("../controllers/decorators/request-context.decorator");
18
+ const query_builder_1 = require("@rockster/common/query-builder");
19
+ const logs_1 = require("@rockster/common/logs");
20
+ const crypto_1 = require("crypto");
21
+ const opensearch_service_1 = require("./services/opensearch.service");
22
+ const remote_log_hooks_dto_1 = require("./dtos/remote-log-hooks.dto");
23
+ const remote_log_search_dto_1 = require("./dtos/remote-log-search.dto");
24
+ const unreadEventFilter = {
25
+ bool: {
26
+ should: [
27
+ { term: { read: false } },
28
+ { bool: { must_not: { exists: { field: 'read' } } } },
29
+ ],
30
+ minimum_should_match: 1,
31
+ },
32
+ };
33
+ let RemoteLogsHooksController = class RemoteLogsHooksController {
34
+ constructor(openSearchService) {
35
+ this.openSearchService = openSearchService;
36
+ }
37
+ async query(content) {
38
+ const appId = content.appId?.trim();
39
+ return this.openSearchService.searchIndex('hooks', {
40
+ size: 500,
41
+ sort: [{ date: { order: 'desc', unmapped_type: 'keyword' } }],
42
+ query: appId
43
+ ? {
44
+ bool: {
45
+ must: [
46
+ {
47
+ bool: {
48
+ should: [
49
+ { term: { 'appId.keyword': appId } },
50
+ { term: { appId } },
51
+ ],
52
+ minimum_should_match: 1,
53
+ },
54
+ },
55
+ ],
56
+ },
57
+ }
58
+ : { match_all: {} },
59
+ });
60
+ }
61
+ async post(content) {
62
+ const id = content.id ?? (0, crypto_1.randomUUID)();
63
+ const conditionQuery = content.conditionQuery;
64
+ const aggregatorQuery = content.aggregatorQuery;
65
+ await this.openSearchService.indexDocument('hooks', id, {
66
+ ...content,
67
+ id,
68
+ conditionQueryAsHandle: conditionQuery?.queryValue
69
+ ? (0, query_builder_1.buildQueryAsHandle)(conditionQuery.queryValue)
70
+ : undefined,
71
+ aggregatorQueryAsHandle: aggregatorQuery?.queryValue
72
+ ? (0, query_builder_1.buildQueryAsHandle)(aggregatorQuery.queryValue)
73
+ : undefined,
74
+ date: new Date().toISOString(),
75
+ });
76
+ return { ok: true, id };
77
+ }
78
+ async remove(content) {
79
+ const existing = await this.openSearchService.getDocument('hooks', content.id);
80
+ if ((0, logs_1.isAdministrativeLogHook)({
81
+ ...(existing ?? {}),
82
+ id: content.id,
83
+ })) {
84
+ throw new Error('Administrative log hooks cannot be removed');
85
+ }
86
+ await this.openSearchService.deleteDocument('hooks', content.id);
87
+ return { ok: true, id: content.id };
88
+ }
89
+ };
90
+ exports.RemoteLogsHooksController = RemoteLogsHooksController;
91
+ __decorate([
92
+ (0, controllers_1.Action)({ response: () => remote_log_search_dto_1.RemoteLogSearchResponseDto }),
93
+ __param(0, (0, controllers_1.ActionContent)()),
94
+ __metadata("design:type", Function),
95
+ __metadata("design:paramtypes", [remote_log_hooks_dto_1.RemoteLogHookQueryDto]),
96
+ __metadata("design:returntype", Promise)
97
+ ], RemoteLogsHooksController.prototype, "query", null);
98
+ __decorate([
99
+ (0, controllers_1.Action)({ response: () => remote_log_hooks_dto_1.RemoteLogHookOkDto }),
100
+ __param(0, (0, controllers_1.ActionContent)()),
101
+ __metadata("design:type", Function),
102
+ __metadata("design:paramtypes", [remote_log_hooks_dto_1.RemoteLogHookPostDto]),
103
+ __metadata("design:returntype", Promise)
104
+ ], RemoteLogsHooksController.prototype, "post", null);
105
+ __decorate([
106
+ (0, controllers_1.Action)({ response: () => remote_log_hooks_dto_1.RemoteLogHookOkDto }),
107
+ __param(0, (0, controllers_1.ActionContent)()),
108
+ __metadata("design:type", Function),
109
+ __metadata("design:paramtypes", [remote_log_hooks_dto_1.RemoteLogHookRemoveDto]),
110
+ __metadata("design:returntype", Promise)
111
+ ], RemoteLogsHooksController.prototype, "remove", null);
112
+ exports.RemoteLogsHooksController = RemoteLogsHooksController = __decorate([
113
+ (0, controllers_1.Controller)({ alias: 'remoteLogsHooks' }),
114
+ __metadata("design:paramtypes", [opensearch_service_1.OpenSearchService])
115
+ ], RemoteLogsHooksController);
116
+ let RemoteLogsSettingsController = class RemoteLogsSettingsController {
117
+ constructor(openSearchService) {
118
+ this.openSearchService = openSearchService;
119
+ }
120
+ async query(_content) {
121
+ const response = await this.openSearchService.searchIndex('settings', {
122
+ size: 500,
123
+ sort: [{ date: { order: 'desc', unmapped_type: 'keyword' } }],
124
+ query: { match_all: {} },
125
+ });
126
+ const hits = response.hits?.hits ?? [];
127
+ const settings = hits.map((hit) => {
128
+ const source = (hit._source ?? {});
129
+ const id = hit._id ?? source.id ?? logs_1.LOG_SETTINGS_GLOBAL_ID;
130
+ const isGlobal = id === logs_1.LOG_SETTINGS_GLOBAL_ID || !source.appId;
131
+ return {
132
+ id,
133
+ appId: isGlobal ? null : (source.appId ?? id),
134
+ clearInterval: source.clearInterval ?? logs_1.LogClearInterval.days_30,
135
+ logLevel: source.logLevel ?? logs_1.LogLevel.info,
136
+ date: source.date,
137
+ };
138
+ });
139
+ return { settings };
140
+ }
141
+ async post(content) {
142
+ const appId = content.appId?.trim() || null;
143
+ const isGlobal = !appId;
144
+ const id = isGlobal ? logs_1.LOG_SETTINGS_GLOBAL_ID : appId;
145
+ const document = {
146
+ appId: isGlobal ? null : appId,
147
+ clearInterval: content.clearInterval,
148
+ logLevel: content.logLevel,
149
+ date: new Date().toISOString(),
150
+ };
151
+ await this.openSearchService.indexDocument('settings', id, document);
152
+ return {
153
+ id,
154
+ appId: isGlobal ? null : appId,
155
+ clearInterval: content.clearInterval,
156
+ logLevel: content.logLevel,
157
+ date: document.date,
158
+ };
159
+ }
160
+ async remove(content) {
161
+ if (content.id === logs_1.LOG_SETTINGS_GLOBAL_ID) {
162
+ throw new Error('Global log settings cannot be removed');
163
+ }
164
+ await this.openSearchService.deleteDocument('settings', content.id);
165
+ return { ok: true, id: content.id };
166
+ }
167
+ };
168
+ exports.RemoteLogsSettingsController = RemoteLogsSettingsController;
169
+ __decorate([
170
+ (0, controllers_1.Action)({ response: () => remote_log_hooks_dto_1.RemoteLogSettingsListResponseDto }),
171
+ __param(0, (0, controllers_1.ActionContent)()),
172
+ __metadata("design:type", Function),
173
+ __metadata("design:paramtypes", [remote_log_hooks_dto_1.RemoteLogSettingsQueryDto]),
174
+ __metadata("design:returntype", Promise)
175
+ ], RemoteLogsSettingsController.prototype, "query", null);
176
+ __decorate([
177
+ (0, controllers_1.Action)({ response: () => remote_log_hooks_dto_1.RemoteLogSettingsResponseDto }),
178
+ __param(0, (0, controllers_1.ActionContent)()),
179
+ __metadata("design:type", Function),
180
+ __metadata("design:paramtypes", [remote_log_hooks_dto_1.RemoteLogSettingsPostDto]),
181
+ __metadata("design:returntype", Promise)
182
+ ], RemoteLogsSettingsController.prototype, "post", null);
183
+ __decorate([
184
+ (0, controllers_1.Action)({ response: () => remote_log_hooks_dto_1.RemoteLogHookOkDto }),
185
+ __param(0, (0, controllers_1.ActionContent)()),
186
+ __metadata("design:type", Function),
187
+ __metadata("design:paramtypes", [remote_log_hooks_dto_1.RemoteLogSettingsRemoveDto]),
188
+ __metadata("design:returntype", Promise)
189
+ ], RemoteLogsSettingsController.prototype, "remove", null);
190
+ exports.RemoteLogsSettingsController = RemoteLogsSettingsController = __decorate([
191
+ (0, controllers_1.Controller)({ alias: 'remoteLogsSettings' }),
192
+ __metadata("design:paramtypes", [opensearch_service_1.OpenSearchService])
193
+ ], RemoteLogsSettingsController);
194
+ let RemoteLogsAppsController = class RemoteLogsAppsController {
195
+ constructor(openSearchService) {
196
+ this.openSearchService = openSearchService;
197
+ }
198
+ async query(content) {
199
+ const size = content.size ?? 50;
200
+ const search = content.search?.trim();
201
+ const query = search
202
+ ? {
203
+ bool: {
204
+ should: [
205
+ { prefix: { appId: search } },
206
+ { wildcard: { appId: `*${search}*` } },
207
+ ],
208
+ minimum_should_match: 1,
209
+ },
210
+ }
211
+ : { match_all: {} };
212
+ const response = await this.openSearchService.searchIndex('apps', {
213
+ size,
214
+ sort: [{ appId: { order: 'asc', unmapped_type: 'keyword' } }],
215
+ query,
216
+ });
217
+ const hits = response.hits?.hits ?? [];
218
+ const apps = hits.map((hit) => {
219
+ const source = (hit._source ?? {});
220
+ return {
221
+ appId: source.appId ?? hit._id ?? '',
222
+ date: source.date,
223
+ };
224
+ }).filter((app) => Boolean(app.appId));
225
+ return { apps };
226
+ }
227
+ };
228
+ exports.RemoteLogsAppsController = RemoteLogsAppsController;
229
+ __decorate([
230
+ (0, controllers_1.Action)({ response: () => remote_log_hooks_dto_1.RemoteLogAppsListResponseDto }),
231
+ __param(0, (0, controllers_1.ActionContent)()),
232
+ __metadata("design:type", Function),
233
+ __metadata("design:paramtypes", [remote_log_hooks_dto_1.RemoteLogAppsQueryDto]),
234
+ __metadata("design:returntype", Promise)
235
+ ], RemoteLogsAppsController.prototype, "query", null);
236
+ exports.RemoteLogsAppsController = RemoteLogsAppsController = __decorate([
237
+ (0, controllers_1.Controller)({ alias: 'remoteLogsApps' }),
238
+ __metadata("design:paramtypes", [opensearch_service_1.OpenSearchService])
239
+ ], RemoteLogsAppsController);
240
+ let RemoteLogsEventsController = class RemoteLogsEventsController {
241
+ constructor(openSearchService) {
242
+ this.openSearchService = openSearchService;
243
+ }
244
+ async query(content) {
245
+ const must = [
246
+ {
247
+ bool: {
248
+ should: [
249
+ { term: { 'appId.keyword': content.appId } },
250
+ { term: { appId: content.appId } },
251
+ ],
252
+ minimum_should_match: 1,
253
+ },
254
+ },
255
+ ];
256
+ if (content.hookId) {
257
+ must.push({
258
+ bool: {
259
+ should: [
260
+ { term: { 'hookId.keyword': content.hookId } },
261
+ { term: { hookId: content.hookId } },
262
+ ],
263
+ minimum_should_match: 1,
264
+ },
265
+ });
266
+ }
267
+ if (content.fromDate || content.toDate) {
268
+ must.push({
269
+ range: {
270
+ date: {
271
+ ...(content.fromDate ? { gte: content.fromDate } : {}),
272
+ ...(content.toDate ? { lte: content.toDate } : {}),
273
+ },
274
+ },
275
+ });
276
+ }
277
+ const body = {
278
+ size: content.size ?? 50,
279
+ sort: [{ date: { order: 'desc', unmapped_type: 'keyword' } }],
280
+ query: { bool: { must } },
281
+ };
282
+ if (content.includeAggregations) {
283
+ body.aggs = {
284
+ byHook: {
285
+ terms: { field: 'hookId', size: 100 },
286
+ aggs: {
287
+ unread: {
288
+ filter: unreadEventFilter,
289
+ },
290
+ read: {
291
+ filter: { term: { read: true } },
292
+ },
293
+ },
294
+ },
295
+ };
296
+ }
297
+ return this.openSearchService.searchIndex('events', body);
298
+ }
299
+ async read(content, requestContext) {
300
+ const userId = requestContext.session?.userId;
301
+ if (!userId) {
302
+ throw new Error('Authenticated session is required to mark events as read');
303
+ }
304
+ await this.openSearchService.updateDocument('events', content.id, {
305
+ read: true,
306
+ readBy: userId,
307
+ });
308
+ return { ok: true, id: content.id };
309
+ }
310
+ };
311
+ exports.RemoteLogsEventsController = RemoteLogsEventsController;
312
+ __decorate([
313
+ (0, controllers_1.Action)({ response: () => remote_log_search_dto_1.RemoteLogSearchResponseDto }),
314
+ __param(0, (0, controllers_1.ActionContent)()),
315
+ __metadata("design:type", Function),
316
+ __metadata("design:paramtypes", [remote_log_hooks_dto_1.RemoteLogEventsQueryDto]),
317
+ __metadata("design:returntype", Promise)
318
+ ], RemoteLogsEventsController.prototype, "query", null);
319
+ __decorate([
320
+ (0, controllers_1.Action)({ response: () => remote_log_hooks_dto_1.RemoteLogHookOkDto }),
321
+ __param(0, (0, controllers_1.ActionContent)()),
322
+ __param(1, (0, request_context_decorator_1.RequestContext)()),
323
+ __metadata("design:type", Function),
324
+ __metadata("design:paramtypes", [remote_log_hooks_dto_1.RemoteLogEventReadDto, Object]),
325
+ __metadata("design:returntype", Promise)
326
+ ], RemoteLogsEventsController.prototype, "read", null);
327
+ exports.RemoteLogsEventsController = RemoteLogsEventsController = __decorate([
328
+ (0, controllers_1.Controller)({ alias: 'remoteLogsEvents' }),
329
+ __metadata("design:paramtypes", [opensearch_service_1.OpenSearchService])
330
+ ], RemoteLogsEventsController);
331
+ //# sourceMappingURL=remote-logs-hooks.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-logs-hooks.controller.js","sourceRoot":"./","sources":["remote-logs/remote-logs-hooks.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { OpenSearchService } from './services/opensearch.service';
2
+ import { RemoteLogSearchPayloadDto } from './dtos/remote-log-search.dto';
3
+ import { IRemoteLogSearchPayload } from '@rockster/common/logs';
4
+ export declare class RemoteLogsController {
5
+ protected readonly openSearchService: OpenSearchService;
6
+ constructor(openSearchService: OpenSearchService);
7
+ search(payload: RemoteLogSearchPayloadDto & IRemoteLogSearchPayload): Promise<import("@rockster/common/logs").IRemoteLogSearchResponse>;
8
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.RemoteLogsController = void 0;
16
+ const controllers_1 = require("../controllers");
17
+ const opensearch_service_1 = require("./services/opensearch.service");
18
+ const remote_log_search_dto_1 = require("./dtos/remote-log-search.dto");
19
+ let RemoteLogsController = class RemoteLogsController {
20
+ constructor(openSearchService) {
21
+ this.openSearchService = openSearchService;
22
+ }
23
+ async search(payload) {
24
+ return this.openSearchService.search(payload);
25
+ }
26
+ };
27
+ exports.RemoteLogsController = RemoteLogsController;
28
+ __decorate([
29
+ (0, controllers_1.Action)({
30
+ response: () => remote_log_search_dto_1.RemoteLogSearchResponseDto,
31
+ }),
32
+ __param(0, (0, controllers_1.ActionContent)({ strict: false })),
33
+ __metadata("design:type", Function),
34
+ __metadata("design:paramtypes", [Object]),
35
+ __metadata("design:returntype", Promise)
36
+ ], RemoteLogsController.prototype, "search", null);
37
+ exports.RemoteLogsController = RemoteLogsController = __decorate([
38
+ (0, controllers_1.Controller)({ alias: 'remoteLogs' }),
39
+ __metadata("design:paramtypes", [opensearch_service_1.OpenSearchService])
40
+ ], RemoteLogsController);
41
+ //# sourceMappingURL=remote-logs.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-logs.controller.js","sourceRoot":"./","sources":["remote-logs/remote-logs.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAIwB;AACxB,sEAAkE;AAClE,wEAGsC;AAI/B,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAE9B,YACsB,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;IACvD,CAAC;IAKE,AAAN,KAAK,CAAC,MAAM,CACyB,OAA4D;QAE9F,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;CACH,CAAA;AAdY,oDAAoB;AASxB;IAHL,IAAA,oBAAM,EAAC;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,kDAA0B;KAC5C,CAAC;IAEE,WAAA,IAAA,2BAAa,EAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;;;;kDAGnC;+BAbS,oBAAoB;IADhC,IAAA,wBAAU,EAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;qCAIQ,sCAAiB;GAHhD,oBAAoB,CAchC"}
@@ -0,0 +1,12 @@
1
+ import { RemoteLogsModuleOptions } from './interfaces/remote-logs-module-options';
2
+ import { OpenSearchService } from './services/opensearch.service';
3
+ import { Logger } from '@rockster/logger';
4
+ export declare class RemoteLogsModule {
5
+ protected readonly openSearchService: OpenSearchService;
6
+ protected readonly bootstrapLogger: Logger;
7
+ static init(options: RemoteLogsModuleOptions): typeof RemoteLogsModule;
8
+ constructor(openSearchService: OpenSearchService);
9
+ seedOnStart(): Promise<void>;
10
+ protected seedDefaultHooks(): Promise<void>;
11
+ protected seedGlobalSettings(): Promise<void>;
12
+ }
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var RemoteLogsModule_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.RemoteLogsModule = void 0;
14
+ const module_1 = require("../module");
15
+ const environment_1 = require("./environment");
16
+ const remote_logs_controller_1 = require("./remote-logs.controller");
17
+ const remote_logs_hooks_controller_1 = require("./remote-logs-hooks.controller");
18
+ const opensearch_service_1 = require("./services/opensearch.service");
19
+ const logger_1 = require("@rockster/logger");
20
+ const logs_1 = require("@rockster/common/logs");
21
+ let RemoteLogsModule = RemoteLogsModule_1 = class RemoteLogsModule {
22
+ static init(options) {
23
+ environment_1.environment.options = {
24
+ url: options.url.replace(/\/+$/, ''),
25
+ index: options.index,
26
+ username: options.username,
27
+ password: options.password,
28
+ apiUrl: options.apiUrl?.replace(/\/+$/, ''),
29
+ defaultHooks: options.defaultHooks,
30
+ };
31
+ return RemoteLogsModule_1;
32
+ }
33
+ constructor(openSearchService) {
34
+ this.openSearchService = openSearchService;
35
+ this.bootstrapLogger = new logger_1.Logger('RemoteLogsModule');
36
+ if (!environment_1.environment.options) {
37
+ throw new Error('Use RemoteLogsModule.init(<options>) to enable it');
38
+ }
39
+ }
40
+ async seedOnStart() {
41
+ await Promise.all([
42
+ this.seedDefaultHooks(),
43
+ this.seedGlobalSettings(),
44
+ ]);
45
+ }
46
+ async seedDefaultHooks() {
47
+ const hooks = environment_1.environment.options?.defaultHooks;
48
+ if (!hooks?.length) {
49
+ this.bootstrapLogger.warn('Default log hooks seed skipped: no hooks configured (check API_URL)');
50
+ return;
51
+ }
52
+ try {
53
+ await this.openSearchService.ensureIndex('hooks');
54
+ for (const hook of hooks) {
55
+ await this.openSearchService.indexDocument('hooks', hook.id, {
56
+ ...hook,
57
+ date: new Date().toISOString(),
58
+ });
59
+ }
60
+ this.bootstrapLogger.log(`Seeded ${hooks.length} default log hook(s)`);
61
+ }
62
+ catch (error) {
63
+ const message = error instanceof Error ? error.message : String(error);
64
+ this.bootstrapLogger.error(`Default log hooks seed failed: ${message}`);
65
+ }
66
+ }
67
+ async seedGlobalSettings() {
68
+ try {
69
+ await this.openSearchService.ensureIndex('settings');
70
+ const existing = await this.openSearchService.getDocument('settings', logs_1.LOG_SETTINGS_GLOBAL_ID);
71
+ if (existing) {
72
+ return;
73
+ }
74
+ await this.openSearchService.indexDocument('settings', logs_1.LOG_SETTINGS_GLOBAL_ID, {
75
+ appId: null,
76
+ clearInterval: logs_1.LogClearInterval.days_30,
77
+ logLevel: logs_1.LogLevel.info,
78
+ date: new Date().toISOString(),
79
+ });
80
+ this.bootstrapLogger.log('Seeded global log settings');
81
+ }
82
+ catch (error) {
83
+ const message = error instanceof Error ? error.message : String(error);
84
+ this.bootstrapLogger.error(`Global log settings seed failed: ${message}`);
85
+ }
86
+ }
87
+ };
88
+ exports.RemoteLogsModule = RemoteLogsModule;
89
+ __decorate([
90
+ (0, module_1.OnAfterAppStart)(),
91
+ __metadata("design:type", Function),
92
+ __metadata("design:paramtypes", []),
93
+ __metadata("design:returntype", Promise)
94
+ ], RemoteLogsModule.prototype, "seedOnStart", null);
95
+ exports.RemoteLogsModule = RemoteLogsModule = RemoteLogsModule_1 = __decorate([
96
+ (0, module_1.Module)({
97
+ controllers: [
98
+ remote_logs_controller_1.RemoteLogsController,
99
+ remote_logs_hooks_controller_1.RemoteLogsHooksController,
100
+ remote_logs_hooks_controller_1.RemoteLogsSettingsController,
101
+ remote_logs_hooks_controller_1.RemoteLogsAppsController,
102
+ remote_logs_hooks_controller_1.RemoteLogsEventsController,
103
+ ],
104
+ }),
105
+ __metadata("design:paramtypes", [opensearch_service_1.OpenSearchService])
106
+ ], RemoteLogsModule);
107
+ //# sourceMappingURL=remote-logs.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-logs.module.js","sourceRoot":"./","sources":["remote-logs/remote-logs.module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { IRemoteLogSearchPayload, IRemoteLogSearchResponse } from '@rockster/common/logs';
2
+ export declare class OpenSearchService {
3
+ protected getAuthHeader(): string;
4
+ protected getIndexName(suffix?: string): string;
5
+ protected request(path: string, init?: RequestInit): Promise<Response>;
6
+ search(payload: IRemoteLogSearchPayload): Promise<IRemoteLogSearchResponse>;
7
+ searchIndex(suffix: string, payload: IRemoteLogSearchPayload): Promise<IRemoteLogSearchResponse>;
8
+ indexDocument(suffix: string, id: string, document: Record<string, unknown>): Promise<void>;
9
+ updateDocument(suffix: string, id: string, document: Record<string, unknown>): Promise<void>;
10
+ getDocument(suffix: string, id: string): Promise<Record<string, unknown> | null>;
11
+ deleteDocument(suffix: string, id: string): Promise<void>;
12
+ ensureIndex(suffix: string): Promise<void>;
13
+ }