@squidcloud/local-backend 1.0.25 → 1.0.26

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/dist/common/src/ai-assistant.context.d.ts +13 -0
  2. package/dist/common/src/ai-assistant.context.js +20 -0
  3. package/dist/common/src/ai-assistant.context.js.map +1 -0
  4. package/dist/common/src/ai-assistant.schemas.d.ts +210 -0
  5. package/dist/common/src/ai-assistant.schemas.js +200 -0
  6. package/dist/common/src/ai-assistant.schemas.js.map +1 -0
  7. package/dist/common/src/ai-assistant.types.d.ts +81 -0
  8. package/dist/common/src/ai-assistant.types.js +12 -0
  9. package/dist/common/src/ai-assistant.types.js.map +1 -0
  10. package/dist/common/src/api-call.context.d.ts +13 -0
  11. package/dist/common/src/api-call.context.js +17 -0
  12. package/dist/common/src/api-call.context.js.map +1 -0
  13. package/dist/common/src/api.types.d.ts +24 -0
  14. package/dist/common/src/api.types.js +3 -0
  15. package/dist/common/src/api.types.js.map +1 -0
  16. package/dist/common/src/application.schemas.d.ts +1060 -0
  17. package/dist/common/src/application.schemas.js +711 -0
  18. package/dist/common/src/application.schemas.js.map +1 -0
  19. package/dist/common/src/application.types.d.ts +228 -0
  20. package/dist/common/src/application.types.js +90 -0
  21. package/dist/common/src/application.types.js.map +1 -0
  22. package/dist/common/src/auth.types.d.ts +4 -0
  23. package/dist/common/src/auth.types.js +3 -0
  24. package/dist/common/src/auth.types.js.map +1 -0
  25. package/dist/common/src/backend-function.schemas.d.ts +3 -0
  26. package/dist/common/src/backend-function.schemas.js +14 -0
  27. package/dist/common/src/backend-function.schemas.js.map +1 -0
  28. package/dist/common/src/backend-function.types.d.ts +7 -0
  29. package/dist/common/src/backend-function.types.js +3 -0
  30. package/dist/common/src/backend-function.types.js.map +1 -0
  31. package/dist/common/src/backend-run.types.d.ts +54 -0
  32. package/dist/common/src/backend-run.types.js +74 -0
  33. package/dist/common/src/backend-run.types.js.map +1 -0
  34. package/dist/common/src/bundle-api.types.d.ts +71 -0
  35. package/dist/common/src/bundle-api.types.js +3 -0
  36. package/dist/common/src/bundle-api.types.js.map +1 -0
  37. package/dist/common/src/bundle-data.types.d.ts +59 -0
  38. package/dist/common/src/bundle-data.types.js +3 -0
  39. package/dist/common/src/bundle-data.types.js.map +1 -0
  40. package/dist/common/src/communication.types.d.ts +17 -0
  41. package/dist/common/src/communication.types.js +37 -0
  42. package/dist/common/src/communication.types.js.map +1 -0
  43. package/dist/common/src/context.types.d.ts +22 -0
  44. package/dist/common/src/context.types.js +3 -0
  45. package/dist/common/src/context.types.js.map +1 -0
  46. package/dist/common/src/distributed-lock.context.d.ts +5 -0
  47. package/dist/common/src/distributed-lock.context.js +11 -0
  48. package/dist/common/src/distributed-lock.context.js.map +1 -0
  49. package/dist/common/src/document.types.d.ts +31 -0
  50. package/dist/common/src/document.types.js +50 -0
  51. package/dist/common/src/document.types.js.map +1 -0
  52. package/dist/common/src/graphql.context.d.ts +14 -0
  53. package/dist/common/src/graphql.context.js +13 -0
  54. package/dist/common/src/graphql.context.js.map +1 -0
  55. package/dist/common/src/graphql.types.d.ts +11 -0
  56. package/dist/common/src/graphql.types.js +35 -0
  57. package/dist/common/src/graphql.types.js.map +1 -0
  58. package/dist/common/src/http-status.enum.d.ts +50 -0
  59. package/dist/common/src/http-status.enum.js +55 -0
  60. package/dist/common/src/http-status.enum.js.map +1 -0
  61. package/dist/common/src/index.d.ts +54 -0
  62. package/dist/common/src/index.js +71 -0
  63. package/dist/common/src/index.js.map +1 -0
  64. package/dist/common/src/integrations/ai_assistant.types.d.ts +30 -0
  65. package/dist/common/src/integrations/ai_assistant.types.js +3 -0
  66. package/dist/common/src/integrations/ai_assistant.types.js.map +1 -0
  67. package/dist/common/src/integrations/api.types.d.ts +80 -0
  68. package/dist/common/src/integrations/api.types.js +3 -0
  69. package/dist/common/src/integrations/api.types.js.map +1 -0
  70. package/dist/common/src/integrations/auth.types.d.ts +22 -0
  71. package/dist/common/src/integrations/auth.types.js +3 -0
  72. package/dist/common/src/integrations/auth.types.js.map +1 -0
  73. package/dist/common/src/integrations/database.types.d.ts +236 -0
  74. package/dist/common/src/integrations/database.types.js +3 -0
  75. package/dist/common/src/integrations/database.types.js.map +1 -0
  76. package/dist/common/src/integrations/index.d.ts +97 -0
  77. package/dist/common/src/integrations/index.js +98 -0
  78. package/dist/common/src/integrations/index.js.map +1 -0
  79. package/dist/common/src/integrations/observability.types.d.ts +22 -0
  80. package/dist/common/src/integrations/observability.types.js +15 -0
  81. package/dist/common/src/integrations/observability.types.js.map +1 -0
  82. package/dist/common/src/logger.types.d.ts +21 -0
  83. package/dist/common/src/logger.types.js +12 -0
  84. package/dist/common/src/logger.types.js.map +1 -0
  85. package/dist/common/src/metrics.types.d.ts +58 -0
  86. package/dist/common/src/metrics.types.js +12 -0
  87. package/dist/common/src/metrics.types.js.map +1 -0
  88. package/dist/common/src/mutation.context.d.ts +11 -0
  89. package/dist/common/src/mutation.context.js +21 -0
  90. package/dist/common/src/mutation.context.js.map +1 -0
  91. package/dist/common/src/mutation.schemas.d.ts +5 -0
  92. package/dist/common/src/mutation.schemas.js +116 -0
  93. package/dist/common/src/mutation.schemas.js.map +1 -0
  94. package/dist/common/src/mutation.types.d.ts +64 -0
  95. package/dist/common/src/mutation.types.js +143 -0
  96. package/dist/common/src/mutation.types.js.map +1 -0
  97. package/dist/common/src/named-query.context.d.ts +4 -0
  98. package/dist/common/src/named-query.context.js +10 -0
  99. package/dist/common/src/named-query.context.js.map +1 -0
  100. package/dist/common/src/named-query.schemas.d.ts +3 -0
  101. package/dist/common/src/named-query.schemas.js +15 -0
  102. package/dist/common/src/named-query.schemas.js.map +1 -0
  103. package/dist/common/src/named-query.types.d.ts +9 -0
  104. package/dist/common/src/named-query.types.js +3 -0
  105. package/dist/common/src/named-query.types.js.map +1 -0
  106. package/dist/common/src/query/index.d.ts +2 -0
  107. package/dist/common/src/query/index.js +19 -0
  108. package/dist/common/src/query/index.js.map +1 -0
  109. package/dist/common/src/query/query-context.d.ts +28 -0
  110. package/dist/common/src/query/query-context.js +161 -0
  111. package/dist/common/src/query/query-context.js.map +1 -0
  112. package/dist/common/src/query/simple-query-builder.d.ts +39 -0
  113. package/dist/common/src/query/simple-query-builder.js +111 -0
  114. package/dist/common/src/query/simple-query-builder.js.map +1 -0
  115. package/dist/common/src/query.schemas.d.ts +5 -0
  116. package/dist/common/src/query.schemas.js +90 -0
  117. package/dist/common/src/query.schemas.js.map +1 -0
  118. package/dist/common/src/query.types.d.ts +89 -0
  119. package/dist/common/src/query.types.js +135 -0
  120. package/dist/common/src/query.types.js.map +1 -0
  121. package/dist/common/src/regions.d.ts +21 -0
  122. package/dist/common/src/regions.js +44 -0
  123. package/dist/common/src/regions.js.map +1 -0
  124. package/dist/common/src/schema/schema.types.d.ts +30 -0
  125. package/dist/common/src/schema/schema.types.js +173 -0
  126. package/dist/common/src/schema/schema.types.js.map +1 -0
  127. package/dist/common/src/secret.schemas.d.ts +6 -0
  128. package/dist/common/src/secret.schemas.js +33 -0
  129. package/dist/common/src/secret.schemas.js.map +1 -0
  130. package/dist/common/src/secret.types.d.ts +49 -0
  131. package/dist/common/src/secret.types.js +6 -0
  132. package/dist/common/src/secret.types.js.map +1 -0
  133. package/dist/common/src/security.types.d.ts +3 -0
  134. package/dist/common/src/security.types.js +3 -0
  135. package/dist/common/src/security.types.js.map +1 -0
  136. package/dist/common/src/socket.schemas.d.ts +3 -0
  137. package/dist/common/src/socket.schemas.js +59 -0
  138. package/dist/common/src/socket.schemas.js.map +1 -0
  139. package/dist/common/src/socket.types.d.ts +108 -0
  140. package/dist/common/src/socket.types.js +3 -0
  141. package/dist/common/src/socket.types.js.map +1 -0
  142. package/dist/common/src/time-units.d.ts +5 -0
  143. package/dist/common/src/time-units.js +9 -0
  144. package/dist/common/src/time-units.js.map +1 -0
  145. package/dist/common/src/trigger.types.d.ts +15 -0
  146. package/dist/common/src/trigger.types.js +3 -0
  147. package/dist/common/src/trigger.types.js.map +1 -0
  148. package/dist/common/src/types.d.ts +15 -0
  149. package/dist/common/src/types.js +3 -0
  150. package/dist/common/src/types.js.map +1 -0
  151. package/dist/common/src/utils/array.d.ts +8 -0
  152. package/dist/common/src/utils/array.js +52 -0
  153. package/dist/common/src/utils/array.js.map +1 -0
  154. package/dist/common/src/utils/assert.d.ts +8 -0
  155. package/dist/common/src/utils/assert.js +50 -0
  156. package/dist/common/src/utils/assert.js.map +1 -0
  157. package/dist/common/src/utils/error.d.ts +4 -0
  158. package/dist/common/src/utils/error.js +11 -0
  159. package/dist/common/src/utils/error.js.map +1 -0
  160. package/dist/common/src/utils/http.d.ts +2 -0
  161. package/dist/common/src/utils/http.js +39 -0
  162. package/dist/common/src/utils/http.js.map +1 -0
  163. package/dist/common/src/utils/id.d.ts +2 -0
  164. package/dist/common/src/utils/id.js +22 -0
  165. package/dist/common/src/utils/id.js.map +1 -0
  166. package/dist/common/src/utils/lock.manager.d.ts +9 -0
  167. package/dist/common/src/utils/lock.manager.js +40 -0
  168. package/dist/common/src/utils/lock.manager.js.map +1 -0
  169. package/dist/common/src/utils/nullish.d.ts +1 -0
  170. package/dist/common/src/utils/nullish.js +8 -0
  171. package/dist/common/src/utils/nullish.js.map +1 -0
  172. package/dist/common/src/utils/object.d.ts +6 -0
  173. package/dist/common/src/utils/object.js +90 -0
  174. package/dist/common/src/utils/object.js.map +1 -0
  175. package/dist/common/src/utils/serialization.d.ts +6 -0
  176. package/dist/common/src/utils/serialization.js +51 -0
  177. package/dist/common/src/utils/serialization.js.map +1 -0
  178. package/dist/common/src/utils/transforms.d.ts +18 -0
  179. package/dist/common/src/utils/transforms.js +93 -0
  180. package/dist/common/src/utils/transforms.js.map +1 -0
  181. package/dist/common/src/utils/url.d.ts +1 -0
  182. package/dist/common/src/utils/url.js +16 -0
  183. package/dist/common/src/utils/url.js.map +1 -0
  184. package/dist/common/src/utils/validation.d.ts +17 -0
  185. package/dist/common/src/utils/validation.js +210 -0
  186. package/dist/common/src/utils/validation.js.map +1 -0
  187. package/dist/common/src/webhook-response.d.ts +7 -0
  188. package/dist/common/src/webhook-response.js +8 -0
  189. package/dist/common/src/webhook-response.js.map +1 -0
  190. package/dist/internal-common/src/code-executor.types.d.ts +13 -0
  191. package/dist/internal-common/src/code-executor.types.js +3 -0
  192. package/dist/internal-common/src/code-executor.types.js.map +1 -0
  193. package/dist/internal-common/src/environment/environment.types.d.ts +71 -0
  194. package/dist/internal-common/src/environment/environment.types.js +3 -0
  195. package/dist/internal-common/src/environment/environment.types.js.map +1 -0
  196. package/dist/internal-common/src/environment/index.d.ts +6 -0
  197. package/dist/internal-common/src/environment/index.js +26 -0
  198. package/dist/internal-common/src/environment/index.js.map +1 -0
  199. package/dist/internal-common/src/environment/local.environment.d.ts +2 -0
  200. package/dist/internal-common/src/environment/local.environment.js +60 -0
  201. package/dist/internal-common/src/environment/local.environment.js.map +1 -0
  202. package/dist/internal-common/src/index.d.ts +10 -0
  203. package/dist/internal-common/src/index.js +27 -0
  204. package/dist/internal-common/src/index.js.map +1 -0
  205. package/dist/internal-common/src/kafka/kafka.manager.d.ts +17 -0
  206. package/dist/internal-common/src/kafka/kafka.manager.interface.d.ts +10 -0
  207. package/dist/internal-common/src/kafka/kafka.manager.interface.js +7 -0
  208. package/dist/internal-common/src/kafka/kafka.manager.interface.js.map +1 -0
  209. package/dist/internal-common/src/kafka/kafka.manager.js +104 -0
  210. package/dist/internal-common/src/kafka/kafka.manager.js.map +1 -0
  211. package/dist/internal-common/src/kafka/kafka.types.d.ts +17 -0
  212. package/dist/internal-common/src/kafka/kafka.types.js +3 -0
  213. package/dist/internal-common/src/kafka/kafka.types.js.map +1 -0
  214. package/dist/internal-common/src/local-dev.types.d.ts +31 -0
  215. package/dist/internal-common/src/local-dev.types.js +3 -0
  216. package/dist/internal-common/src/local-dev.types.js.map +1 -0
  217. package/dist/internal-common/src/observability-publisher.d.ts +14 -0
  218. package/dist/internal-common/src/observability-publisher.js +71 -0
  219. package/dist/internal-common/src/observability-publisher.js.map +1 -0
  220. package/dist/internal-common/src/observability.types.d.ts +17 -0
  221. package/dist/internal-common/src/observability.types.js +3 -0
  222. package/dist/internal-common/src/observability.types.js.map +1 -0
  223. package/dist/internal-common/src/shutdown.manager.d.ts +20 -0
  224. package/dist/internal-common/src/shutdown.manager.js +77 -0
  225. package/dist/internal-common/src/shutdown.manager.js.map +1 -0
  226. package/dist/internal-common/src/utils.d.ts +5 -0
  227. package/dist/internal-common/src/utils.js +30 -0
  228. package/dist/internal-common/src/utils.js.map +1 -0
  229. package/dist/{index.d.ts → local-backend/src/index.d.ts} +4 -4
  230. package/dist/{index.js → local-backend/src/index.js} +20 -20
  231. package/dist/local-backend/src/index.js.map +1 -0
  232. package/dist/local-backend/src/local-backend-socket.service.d.ts +18 -0
  233. package/dist/local-backend/src/local-backend-socket.service.js +110 -0
  234. package/dist/local-backend/src/local-backend-socket.service.js.map +1 -0
  235. package/dist/{local-backend.app.d.ts → local-backend/src/local-backend.app.d.ts} +2 -2
  236. package/dist/{local-backend.app.js → local-backend/src/local-backend.app.js} +25 -15
  237. package/dist/local-backend/src/local-backend.app.js.map +1 -0
  238. package/dist/{local-backend.controller.d.ts → local-backend/src/local-backend.controller.d.ts} +8 -8
  239. package/dist/{local-backend.controller.js → local-backend/src/local-backend.controller.js} +49 -49
  240. package/dist/local-backend/src/local-backend.controller.js.map +1 -0
  241. package/dist/{local-backend.module.d.ts → local-backend/src/local-backend.module.d.ts} +8 -8
  242. package/dist/{local-backend.module.js → local-backend/src/local-backend.module.js} +53 -51
  243. package/dist/local-backend/src/local-backend.module.js.map +1 -0
  244. package/dist/local-backend/src/local-backend.service.d.ts +15 -0
  245. package/dist/{local-backend.service.js → local-backend/src/local-backend.service.js} +165 -143
  246. package/dist/local-backend/src/local-backend.service.js.map +1 -0
  247. package/dist/tsconfig.build.tsbuildinfo +1 -1
  248. package/package.json +6 -4
  249. package/dist/index.js.map +0 -1
  250. package/dist/local-backend.app.js.map +0 -1
  251. package/dist/local-backend.controller.js.map +0 -1
  252. package/dist/local-backend.module.js.map +0 -1
  253. package/dist/local-backend.service.d.ts +0 -7
  254. package/dist/local-backend.service.js.map +0 -1
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LocalEnvironment = void 0;
4
+ exports.LocalEnvironment = {
5
+ region: 'us-east-1',
6
+ redisUrl: 'redis://127.0.0.1:6379',
7
+ dbConnectionLimit: 5,
8
+ stage: 'local',
9
+ dbSslEnabled: false,
10
+ squidRegion: 'local',
11
+ internalApiKey: 'localInternalApiKey',
12
+ deno: {
13
+ baseUrl: 'http://127.0.0.1:3000',
14
+ workerTimeout: 5000,
15
+ },
16
+ code: {
17
+ bucket: 'squid-code-bucket',
18
+ awsEndpoint: 'http://localhost.localstack.cloud:4566',
19
+ },
20
+ kafka: {
21
+ clusterUrls: ['kafka.local.squid.cloud:9092'],
22
+ consumerSessionTimeoutMs: 6000,
23
+ },
24
+ kafkaConnect: {
25
+ endpoint: 'http://127.0.0.1:8083',
26
+ },
27
+ vault: {
28
+ endpoint: 'http://127.0.0.1:8200',
29
+ token: 'root',
30
+ },
31
+ zookeeper: {
32
+ host: 'localhost:2181',
33
+ lockDirectory: '/SquidLocks',
34
+ },
35
+ sharedMongo: {
36
+ connectionString: 'mongodb://mongo:27017',
37
+ user: 'root',
38
+ },
39
+ clickhouse: {
40
+ username: 'squid',
41
+ password: 'squid',
42
+ dbName: 'squid',
43
+ host: 'http://clickhouse:8123',
44
+ },
45
+ datadog: {
46
+ datadogRegion: 'us5',
47
+ agentUrl: 'http://localhost:8126',
48
+ envName: 'local',
49
+ },
50
+ pinecone: {
51
+ environment: 'asia-southeast1-gcp-free',
52
+ indexName: 'free-test-index',
53
+ },
54
+ weaviate: {
55
+ scheme: 'http',
56
+ host: 'localhost:8081',
57
+ apiKey: undefined,
58
+ },
59
+ };
60
+ //# sourceMappingURL=local.environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local.environment.js","sourceRoot":"","sources":["../../../../../internal-common/src/environment/local.environment.ts"],"names":[],"mappings":";;;AAGa,QAAA,gBAAgB,GAAoB;IAC/C,MAAM,EAAE,WAAW;IACnB,QAAQ,EAAE,wBAAwB;IAClC,iBAAiB,EAAE,CAAC;IACpB,KAAK,EAAE,OAAO;IACd,YAAY,EAAE,KAAK;IACnB,WAAW,EAAE,OAA+B;IAC5C,cAAc,EAAE,qBAAqB;IACrC,IAAI,EAAE;QACJ,OAAO,EAAE,uBAAuB;QAChC,aAAa,EAAE,IAAI;KACpB;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,mBAAmB;QAC3B,WAAW,EAAE,wCAAwC;KACtD;IACD,KAAK,EAAE;QACL,WAAW,EAAE,CAAC,8BAA8B,CAAC;QAC7C,wBAAwB,EAAE,IAAI;KAC/B;IACD,YAAY,EAAE;QACZ,QAAQ,EAAE,uBAAuB;KAClC;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,uBAAuB;QACjC,KAAK,EAAE,MAAM;KACd;IACD,SAAS,EAAE;QACT,IAAI,EAAE,gBAAgB;QACtB,aAAa,EAAE,aAAa;KAC7B;IACD,WAAW,EAAE;QACX,gBAAgB,EAAE,uBAAuB;QACzC,IAAI,EAAE,MAAM;KACb;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,wBAAwB;KAC/B;IACD,OAAO,EAAE;QACP,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,uBAAuB;QACjC,OAAO,EAAE,OAAO;KACjB;IACD,QAAQ,EAAE;QACR,WAAW,EAAE,0BAA0B;QACvC,SAAS,EAAE,iBAAiB;KAC7B;IACD,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,SAAS;KAClB;CACF,CAAC"}
@@ -0,0 +1,10 @@
1
+ export * from './environment';
2
+ export * from './kafka/kafka.manager';
3
+ export * from './kafka/kafka.manager.interface';
4
+ export * from './kafka/kafka.types';
5
+ export * from './local-dev.types';
6
+ export * from './observability-publisher';
7
+ export * from './observability.types';
8
+ export * from './shutdown.manager';
9
+ export * from './utils';
10
+ export * from './code-executor.types';
@@ -0,0 +1,27 @@
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("./environment"), exports);
18
+ __exportStar(require("./kafka/kafka.manager"), exports);
19
+ __exportStar(require("./kafka/kafka.manager.interface"), exports);
20
+ __exportStar(require("./kafka/kafka.types"), exports);
21
+ __exportStar(require("./local-dev.types"), exports);
22
+ __exportStar(require("./observability-publisher"), exports);
23
+ __exportStar(require("./observability.types"), exports);
24
+ __exportStar(require("./shutdown.manager"), exports);
25
+ __exportStar(require("./utils"), exports);
26
+ __exportStar(require("./code-executor.types"), exports);
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../internal-common/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,wDAAsC;AACtC,kEAAgD;AAChD,sDAAoC;AACpC,oDAAkC;AAClC,4DAA0C;AAC1C,wDAAsC;AACtC,qDAAmC;AACnC,0CAAwB;AACxB,wDAAsC"}
@@ -0,0 +1,17 @@
1
+ import { KafkaConnectionConfig, MessageEnvelope, TopicId } from './kafka.types';
2
+ import { KafkaManager } from './kafka.manager.interface';
3
+ import { Observable } from 'rxjs';
4
+ export declare class KafkaManagerImpl extends KafkaManager {
5
+ private readonly connectionConfig;
6
+ private kafka;
7
+ private readonly producerMap;
8
+ private readonly pubSubSubjectMap;
9
+ constructor(connectionConfig: KafkaConnectionConfig);
10
+ publishMessage<T>(topicId: TopicId, message: T): Promise<void>;
11
+ observePubSubTopic<T>(topicId: TopicId): Observable<T>;
12
+ observeTopic<T>(topicId: TopicId): Observable<MessageEnvelope<T>>;
13
+ observeBatchTopic<T>(topicId: TopicId): Observable<Array<MessageEnvelope<T>>>;
14
+ sendMessage<T>(topicId: TopicId, message: T): Promise<void>;
15
+ sendMessages<T>(topicId: TopicId, messages: Array<T>): Promise<void>;
16
+ private subscribeBatchAndRun;
17
+ }
@@ -0,0 +1,10 @@
1
+ import { MessageEnvelope, TopicId } from './kafka.types';
2
+ import { Observable } from 'rxjs';
3
+ export declare abstract class KafkaManager {
4
+ abstract observeTopic<T>(topicId: TopicId): Observable<MessageEnvelope<T>>;
5
+ abstract observeBatchTopic<T>(topicId: TopicId): Observable<Array<MessageEnvelope<T>>>;
6
+ abstract sendMessage<T>(topicId: TopicId, message: T): Promise<void>;
7
+ abstract sendMessages<T>(topicId: TopicId, messages: Array<T>): Promise<void>;
8
+ abstract publishMessage<T>(topicId: TopicId, message: T): Promise<void>;
9
+ abstract observePubSubTopic<T>(topicId: TopicId): Observable<T>;
10
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KafkaManager = void 0;
4
+ class KafkaManager {
5
+ }
6
+ exports.KafkaManager = KafkaManager;
7
+ //# sourceMappingURL=kafka.manager.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.manager.interface.js","sourceRoot":"","sources":["../../../../../internal-common/src/kafka/kafka.manager.interface.ts"],"names":[],"mappings":";;;AAGA,MAAsB,YAAY;CAYjC;AAZD,oCAYC"}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KafkaManagerImpl = void 0;
4
+ const common_1 = require("@squidcloud/common");
5
+ const kafkajs_1 = require("kafkajs");
6
+ const kafka_manager_interface_1 = require("./kafka.manager.interface");
7
+ const rxjs_1 = require("rxjs");
8
+ class KafkaManagerImpl extends kafka_manager_interface_1.KafkaManager {
9
+ constructor(connectionConfig) {
10
+ super();
11
+ this.connectionConfig = connectionConfig;
12
+ this.producerMap = {};
13
+ this.pubSubSubjectMap = {};
14
+ const config = {
15
+ clientId: (0, common_1.generateId)(),
16
+ brokers: connectionConfig.clusterUrls,
17
+ logCreator: connectionConfig.logAdapter,
18
+ sasl: connectionConfig.sasl,
19
+ ssl: connectionConfig.ssl,
20
+ };
21
+ this.kafka = new kafkajs_1.Kafka(config);
22
+ }
23
+ async publishMessage(topicId, message) {
24
+ await this.sendMessage(topicId, message);
25
+ }
26
+ observePubSubTopic(topicId) {
27
+ if (this.pubSubSubjectMap[topicId]) {
28
+ return this.pubSubSubjectMap[topicId];
29
+ }
30
+ const subject = new rxjs_1.Subject();
31
+ const consumer = this.kafka.consumer({
32
+ groupId: `${topicId}-group - ${(0, common_1.generateId)()}`,
33
+ sessionTimeout: this.connectionConfig.consumerSessionTimeoutMs,
34
+ });
35
+ const obs = (0, rxjs_1.from)(this.subscribeBatchAndRun(consumer, topicId, subject)).pipe((0, rxjs_1.switchMap)(() => subject), (0, rxjs_1.finalize)(async () => {
36
+ delete this.pubSubSubjectMap[topicId];
37
+ await consumer.disconnect();
38
+ }), (0, rxjs_1.mergeMap)((a) => a), (0, rxjs_1.tap)((a) => a.commit()), (0, rxjs_1.map)((a) => a.data), (0, rxjs_1.share)());
39
+ this.pubSubSubjectMap[topicId] = obs;
40
+ return obs;
41
+ }
42
+ observeTopic(topicId) {
43
+ return this.observeBatchTopic(topicId).pipe((0, rxjs_1.mergeMap)((a) => a));
44
+ }
45
+ observeBatchTopic(topicId) {
46
+ const consumer = this.kafka.consumer({
47
+ groupId: `${topicId}-group`,
48
+ sessionTimeout: this.connectionConfig.consumerSessionTimeoutMs,
49
+ });
50
+ const subject = new rxjs_1.Subject();
51
+ return (0, rxjs_1.from)(this.subscribeBatchAndRun(consumer, topicId, subject)).pipe((0, rxjs_1.switchMap)(() => subject), (0, rxjs_1.finalize)(async () => {
52
+ await consumer.disconnect();
53
+ }), (0, rxjs_1.share)());
54
+ }
55
+ async sendMessage(topicId, message) {
56
+ await this.sendMessages(topicId, [message]);
57
+ }
58
+ async sendMessages(topicId, messages) {
59
+ if (!this.producerMap[topicId]) {
60
+ const producer = this.kafka.producer({ createPartitioner: kafkajs_1.Partitioners.DefaultPartitioner });
61
+ this.producerMap[topicId] = producer.connect().then(() => producer);
62
+ }
63
+ const producer = await this.producerMap[topicId];
64
+ const messagesWithValue = messages.map((m) => {
65
+ return { value: (0, common_1.serializeObj)(m) };
66
+ });
67
+ try {
68
+ await producer.send({ topic: topicId, messages: messagesWithValue });
69
+ }
70
+ catch (e) {
71
+ console.error('Error sending messages to Kafka', e, messagesWithValue);
72
+ throw e;
73
+ }
74
+ }
75
+ async subscribeBatchAndRun(consumer, topicId, subject) {
76
+ await consumer.connect();
77
+ await consumer.subscribe({ topic: topicId, fromBeginning: false });
78
+ await consumer.run({
79
+ eachBatchAutoResolve: true,
80
+ eachBatch: async ({ batch, resolveOffset }) => {
81
+ const messageEnvelopes = batch.messages
82
+ .filter((message) => message.value !== null)
83
+ .map((message) => {
84
+ const data = (0, common_1.deserializeObj)((0, common_1.truthy)(message.value).toString());
85
+ return {
86
+ data,
87
+ timestamp: parseInt(message.timestamp),
88
+ offset: message.offset,
89
+ partition: batch.partition,
90
+ topicId,
91
+ commit: () => {
92
+ resolveOffset(message.offset);
93
+ },
94
+ };
95
+ });
96
+ if (messageEnvelopes.length) {
97
+ subject.next(messageEnvelopes);
98
+ }
99
+ },
100
+ });
101
+ }
102
+ }
103
+ exports.KafkaManagerImpl = KafkaManagerImpl;
104
+ //# sourceMappingURL=kafka.manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.manager.js","sourceRoot":"","sources":["../../../../../internal-common/src/kafka/kafka.manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { LogEntry, logLevel, Mechanism, SASLOptions } from 'kafkajs';
2
+ export type TopicId = string;
3
+ export interface MessageEnvelope<T> {
4
+ data: T;
5
+ offset: string;
6
+ timestamp: number;
7
+ partition: number;
8
+ topicId: TopicId;
9
+ commit: () => void;
10
+ }
11
+ export interface KafkaConnectionConfig {
12
+ clusterUrls: string[];
13
+ logAdapter?: (logLevel: logLevel) => (entry: LogEntry) => void;
14
+ ssl: boolean;
15
+ sasl?: SASLOptions | Mechanism;
16
+ consumerSessionTimeoutMs: number;
17
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=kafka.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.types.js","sourceRoot":"","sources":["../../../../../internal-common/src/kafka/kafka.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,31 @@
1
+ import { RunSecrets } from '@squidcloud/common';
2
+ import { BatchRunConfigurationRequest } from './code-executor.types';
3
+ export type MessageFromDeveloperType = 'bundleData' | 'response';
4
+ interface BaseMessageFromDeveloper {
5
+ type: MessageFromDeveloperType;
6
+ payload?: unknown;
7
+ requestId: string;
8
+ }
9
+ export type MessageFromDeveloper = ResponseMessageFromDeveloper;
10
+ export interface ResponseMessageFromDeveloper extends BaseMessageFromDeveloper {
11
+ type: 'response';
12
+ payload: any;
13
+ }
14
+ export type MessageToDeveloperType = 'executeFunction' | 'localBackendData';
15
+ interface BaseMessageToDeveloper {
16
+ type: MessageToDeveloperType;
17
+ payload: unknown;
18
+ requestId: string;
19
+ }
20
+ export type MessageToDeveloper = ExecuteFunctionMessageToDeveloper | LocalBackendDataMessageToDeveloper;
21
+ export interface ExecuteFunctionMessageToDeveloper extends BaseMessageToDeveloper {
22
+ type: 'executeFunction';
23
+ payload: BatchRunConfigurationRequest;
24
+ }
25
+ export interface LocalBackendDataMessageToDeveloper extends BaseMessageToDeveloper {
26
+ type: 'localBackendData';
27
+ payload: {
28
+ secrets: RunSecrets;
29
+ };
30
+ }
31
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=local-dev.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-dev.types.js","sourceRoot":"","sources":["../../../../internal-common/src/local-dev.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import { KafkaManager } from './kafka/kafka.manager.interface';
2
+ import { LogEvent, MetricEvent } from './observability.types';
3
+ export declare class ObservabilityPublisher {
4
+ private readonly kafkaManager;
5
+ private readonly metricsTopicId;
6
+ private readonly logsTopicId;
7
+ constructor(kafkaManager: KafkaManager, metricsTopicId: string, logsTopicId: string);
8
+ reportMetric(event: Omit<MetricEvent, 'timestamp'>): Promise<void>;
9
+ timeFunction(event: Omit<MetricEvent, 'type' | 'timestamp' | 'value'>, timedFunction: () => Promise<any>): Promise<any>;
10
+ measureMetric<T extends (...args: any[]) => any>(func: T, name: string, tags?: Record<string, string>, isExposedToUser?: boolean, reportTime?: boolean): ReturnType<T>;
11
+ private reportTimeMetric;
12
+ private reportCountMetric;
13
+ reportLog(event: LogEvent): Promise<void>;
14
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ObservabilityPublisher = void 0;
4
+ class ObservabilityPublisher {
5
+ constructor(kafkaManager, metricsTopicId, logsTopicId) {
6
+ this.kafkaManager = kafkaManager;
7
+ this.metricsTopicId = metricsTopicId;
8
+ this.logsTopicId = logsTopicId;
9
+ }
10
+ async reportMetric(event) {
11
+ const modifiedEvent = Object.assign(Object.assign({}, event), { timestamp: new Date(), name: `squid_${event.name}` });
12
+ await this.kafkaManager.sendMessage(this.metricsTopicId, modifiedEvent);
13
+ }
14
+ async timeFunction(event, timedFunction) {
15
+ const startTime = Date.now();
16
+ const result = await timedFunction();
17
+ this.reportMetric(Object.assign(Object.assign({}, event), { type: 'gauge', value: Date.now() - startTime })).then();
18
+ return result;
19
+ }
20
+ measureMetric(func, name, tags = {}, isExposedToUser = false, reportTime = true) {
21
+ try {
22
+ const startTime = Date.now();
23
+ const result = func();
24
+ if (result instanceof Promise) {
25
+ return result
26
+ .then((r) => {
27
+ if (reportTime)
28
+ this.reportTimeMetric(name, isExposedToUser, startTime, tags);
29
+ this.reportCountMetric(name, isExposedToUser, tags, true);
30
+ return r;
31
+ })
32
+ .catch((e) => {
33
+ this.reportCountMetric(name, isExposedToUser, tags, false);
34
+ throw e;
35
+ });
36
+ }
37
+ if (reportTime)
38
+ this.reportTimeMetric(name, isExposedToUser, startTime, tags);
39
+ this.reportCountMetric(name, isExposedToUser, tags, true);
40
+ return result;
41
+ }
42
+ catch (e) {
43
+ this.reportCountMetric(name, isExposedToUser, tags, false);
44
+ throw e;
45
+ }
46
+ }
47
+ reportTimeMetric(name, isExposedToUser, startTime, tags) {
48
+ this.reportMetric({
49
+ name: `${name}_time`,
50
+ isExposedToUser,
51
+ tags,
52
+ value: Date.now() - startTime,
53
+ type: 'gauge',
54
+ }).then();
55
+ }
56
+ reportCountMetric(name, isExposedToUser, tags, success) {
57
+ tags = Object.assign(Object.assign({}, tags), { success: success ? 'true' : 'false' });
58
+ this.reportMetric({
59
+ name: `${name}_count`,
60
+ isExposedToUser,
61
+ tags,
62
+ value: 1,
63
+ type: 'count',
64
+ }).then();
65
+ }
66
+ async reportLog(event) {
67
+ await this.kafkaManager.sendMessage(this.logsTopicId, event);
68
+ }
69
+ }
70
+ exports.ObservabilityPublisher = ObservabilityPublisher;
71
+ //# sourceMappingURL=observability-publisher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability-publisher.js","sourceRoot":"","sources":["../../../../internal-common/src/observability-publisher.ts"],"names":[],"mappings":";;;AAIA,MAAa,sBAAsB;IACjC,YACmB,YAA0B,EAC1B,cAAsB,EACtB,WAAmB;QAFnB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,mBAAc,GAAd,cAAc,CAAQ;QACtB,gBAAW,GAAX,WAAW,CAAQ;IACnC,CAAC;IAEJ,KAAK,CAAC,YAAY,CAAC,KAAqC;QACtD,MAAM,aAAa,mCAAqB,KAAK,KAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,KAAK,CAAC,IAAI,EAAE,GAAE,CAAC;QACpG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,KAAwD,EACxD,aAAiC;QAEjC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;QACrC,IAAI,CAAC,YAAY,iCAAM,KAAK,KAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,IAAG,CAAC,IAAI,EAAE,CAAC;QACrF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,aAAa,CACX,IAAO,EACP,IAAY,EACZ,OAA+B,EAAE,EACjC,eAAe,GAAG,KAAK,EACvB,UAAU,GAAG,IAAI;QAEjB,IAAI;YACF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC;YACtB,IAAI,MAAM,YAAY,OAAO,EAAE;gBAC7B,OAAO,MAAM;qBACV,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;oBACV,IAAI,UAAU;wBAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;oBAC9E,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBAC1D,OAAO,CAAC,CAAC;gBACX,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;oBACX,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;oBAC3D,MAAM,CAAC,CAAC;gBACV,CAAC,CAAkB,CAAC;aACvB;YACD,IAAI,UAAU;gBAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAC9E,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1D,OAAO,MAAM,CAAC;SACf;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3D,MAAM,CAAC,CAAC;SACT;IACH,CAAC;IAEO,gBAAgB,CACtB,IAAY,EACZ,eAAwB,EACxB,SAAiB,EACjB,IAA4B;QAE5B,IAAI,CAAC,YAAY,CAAC;YAChB,IAAI,EAAE,GAAG,IAAI,OAAO;YACpB,eAAe;YACf,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YAC7B,IAAI,EAAE,OAAO;SACd,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IAEO,iBAAiB,CACvB,IAAY,EACZ,eAAwB,EACxB,IAA4B,EAC5B,OAAgB;QAEhB,IAAI,mCAAQ,IAAI,KAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAE,CAAC;QACxD,IAAI,CAAC,YAAY,CAAC;YAChB,IAAI,EAAE,GAAG,IAAI,QAAQ;YACrB,eAAe;YACf,IAAI;YACJ,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,OAAO;SACd,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAe;QAC7B,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;CACF;AAvFD,wDAuFC"}
@@ -0,0 +1,17 @@
1
+ import { MetricType } from '@squidcloud/common';
2
+ export type MetricName = 'queryCount';
3
+ export interface MetricEvent {
4
+ name: string | MetricName;
5
+ type: MetricType;
6
+ tags: Record<string, string>;
7
+ timestamp: Date;
8
+ value: number;
9
+ isExposedToUser: boolean;
10
+ }
11
+ export interface LogEvent {
12
+ message: string;
13
+ level: string;
14
+ tags: Record<string, string>;
15
+ timestamp: Date;
16
+ isExposedToUser: boolean;
17
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=observability.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability.types.js","sourceRoot":"","sources":["../../../../internal-common/src/observability.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import { Logger } from '@squidcloud/common';
2
+ import { Observable } from 'rxjs';
3
+ export type ShutdownHook = () => Promise<void>;
4
+ export declare class ShutdownManager {
5
+ private static readonly instance;
6
+ private logger?;
7
+ private hooks;
8
+ private shutdownOnError;
9
+ private readonly errorSubject;
10
+ private readonly sigTermSubject;
11
+ private constructor();
12
+ setShutdownOnError(enable?: boolean): void;
13
+ static getInstance(): ShutdownManager;
14
+ register(hook: ShutdownHook): void;
15
+ observeErrorCount(): Observable<number>;
16
+ observeSigTerm(): Observable<void>;
17
+ private handleError;
18
+ setLogger(logger: Logger): void;
19
+ forceShutdown(): Promise<never>;
20
+ }
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ShutdownManager = void 0;
4
+ const node_process_1 = require("node:process");
5
+ const rxjs_1 = require("rxjs");
6
+ class ShutdownManager {
7
+ constructor() {
8
+ this.hooks = [];
9
+ this.shutdownOnError = false;
10
+ this.errorSubject = new rxjs_1.Subject();
11
+ this.sigTermSubject = new rxjs_1.Subject();
12
+ if (node_process_1.default.platform !== 'win32') {
13
+ node_process_1.default.prependOnceListener('SIGTERM', async () => {
14
+ this.sigTermSubject.next();
15
+ await this.handleError('SIGTERM');
16
+ });
17
+ }
18
+ node_process_1.default.prependOnceListener('uncaughtException', (err) => this.handleError('ShutdownManager: Uncaught error', err));
19
+ node_process_1.default.prependOnceListener('unhandledRejection', (err) => this.handleError('ShutdownManager: Unhandled rejection', err));
20
+ protectProcessFromThirdPartyListeners();
21
+ }
22
+ setShutdownOnError(enable = true) {
23
+ this.shutdownOnError = enable;
24
+ }
25
+ static getInstance() {
26
+ return ShutdownManager.instance;
27
+ }
28
+ register(hook) {
29
+ this.hooks.push(hook);
30
+ }
31
+ observeErrorCount() {
32
+ return this.errorSubject.pipe((0, rxjs_1.bufferTime)(10000), (0, rxjs_1.map)((errors) => errors.length));
33
+ }
34
+ observeSigTerm() {
35
+ return this.sigTermSubject.pipe((0, rxjs_1.delay)(15000));
36
+ }
37
+ async handleError(reason, err) {
38
+ var _a, _b;
39
+ console.log({ reason, err });
40
+ this.errorSubject.next({ reason, err });
41
+ if (err) {
42
+ (_a = this.logger) === null || _a === void 0 ? void 0 : _a.error(reason, { err });
43
+ }
44
+ else {
45
+ (_b = this.logger) === null || _b === void 0 ? void 0 : _b.info(reason);
46
+ }
47
+ if (this.shutdownOnError) {
48
+ await this.forceShutdown();
49
+ }
50
+ }
51
+ setLogger(logger) {
52
+ this.logger = logger;
53
+ }
54
+ async forceShutdown() {
55
+ try {
56
+ await Promise.all(this.hooks.map((hook) => hook()));
57
+ }
58
+ catch (err) {
59
+ console.error(err);
60
+ }
61
+ finally {
62
+ node_process_1.default.exit();
63
+ }
64
+ }
65
+ }
66
+ exports.ShutdownManager = ShutdownManager;
67
+ ShutdownManager.instance = new ShutdownManager();
68
+ function protectProcessFromThirdPartyListeners() {
69
+ const processOn = node_process_1.default.on.bind(node_process_1.default);
70
+ node_process_1.default.on = (event, listener) => {
71
+ if (event !== 'SIGTERM' && event !== 'uncaughtException' && event !== 'unhandledRejection') {
72
+ processOn(event, listener);
73
+ }
74
+ return node_process_1.default;
75
+ };
76
+ }
77
+ //# sourceMappingURL=shutdown.manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shutdown.manager.js","sourceRoot":"","sources":["../../../../internal-common/src/shutdown.manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="node" />
2
+ import { EnvironmentVars } from './environment';
3
+ import NodeVault from 'node-vault';
4
+ export declare function extractFromBuffer(buffer: Buffer, path: string): Promise<void>;
5
+ export declare function getVaultClient(vaultConfig: EnvironmentVars['vault']): Promise<NodeVault.client>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getVaultClient = exports.extractFromBuffer = void 0;
4
+ const decompress_1 = require("decompress");
5
+ const promises_1 = require("fs/promises");
6
+ const node_vault_1 = require("node-vault");
7
+ const lodash_1 = require("lodash");
8
+ async function extractFromBuffer(buffer, path) {
9
+ await (0, promises_1.mkdir)(path, { recursive: true });
10
+ await (0, decompress_1.default)(buffer, path);
11
+ }
12
+ exports.extractFromBuffer = extractFromBuffer;
13
+ async function getVaultClient(vaultConfig) {
14
+ if ('token' in vaultConfig) {
15
+ const vaultClient = (0, node_vault_1.default)(vaultConfig);
16
+ await vaultClient.health();
17
+ return vaultClient;
18
+ }
19
+ else {
20
+ const vaultClient = (0, node_vault_1.default)({ endpoint: vaultConfig.endpoint, namespace: 'admin' });
21
+ await vaultClient.health();
22
+ await vaultClient.approleLogin((0, lodash_1.pick)(vaultConfig, ['role_id', 'secret_id']));
23
+ setInterval(() => {
24
+ vaultClient.approleLogin((0, lodash_1.pick)(vaultConfig, ['role_id', 'secret_id']));
25
+ }, 3000000);
26
+ return vaultClient;
27
+ }
28
+ }
29
+ exports.getVaultClient = getVaultClient;
30
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../internal-common/src/utils.ts"],"names":[],"mappings":";;;AAAA,2CAAoC;AACpC,0CAAoC;AAEpC,2CAAmC;AACnC,mCAA8B;AAEvB,KAAK,UAAU,iBAAiB,CAAC,MAAc,EAAE,IAAY;IAClE,MAAM,IAAA,gBAAK,EAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,MAAM,IAAA,oBAAU,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC;AAHD,8CAGC;AAEM,KAAK,UAAU,cAAc,CAAC,WAAqC;IACxE,IAAI,OAAO,IAAI,WAAW,EAAE;QAC1B,MAAM,WAAW,GAAG,IAAA,oBAAS,EAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;QAC3B,OAAO,WAAW,CAAC;KACpB;SAAM;QACL,MAAM,WAAW,GAAG,IAAA,oBAAS,EAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QACtF,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,WAAW,CAAC,YAAY,CAAC,IAAA,aAAI,EAAC,WAAW,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;QAI5E,WAAW,CAAC,GAAG,EAAE;YACf,WAAW,CAAC,YAAY,CAAC,IAAA,aAAI,EAAC,WAAW,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC,EAAE,OAAO,CAAC,CAAC;QACZ,OAAO,WAAW,CAAC;KACpB;AACH,CAAC;AAjBD,wCAiBC"}
@@ -1,4 +1,4 @@
1
- export * from './local-backend.module';
2
- export * from './local-backend.app';
3
- export * from './local-backend.controller';
4
- export * from './local-backend.service';
1
+ export * from './local-backend.module';
2
+ export * from './local-backend.app';
3
+ export * from './local-backend.controller';
4
+ export * from './local-backend.service';