@squidcloud/local-backend 1.0.25 → 1.0.27

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,58 @@
1
+ export type MetricType = 'count' | 'gauge';
2
+ export type AggregationPeriod = '1m' | '5m' | '15m' | '1h' | '1d' | '1w';
3
+ export declare const aggregationPeriodMap: Record<AggregationPeriod, number>;
4
+ export interface CountMetricHistogramData {
5
+ stepInterval: number;
6
+ sumInStep: number;
7
+ cumulativeSum: number;
8
+ rate: number;
9
+ }
10
+ export interface CountMetricSummary {
11
+ cumulativeRate: number;
12
+ cumulativeSum: number;
13
+ }
14
+ export interface GaugeMetricHistogramData {
15
+ stepInterval: number;
16
+ sumInStep: number;
17
+ countInStep: number;
18
+ minInStep: number;
19
+ maxInStep: number;
20
+ avgInStep: number;
21
+ medianInStep: number;
22
+ }
23
+ export interface GaugeMetricSummary {
24
+ cumulativeSum: number;
25
+ cumulativeMin: number;
26
+ cumulativeMax: number;
27
+ cumulativeAvg: number;
28
+ cumulativeCount: number;
29
+ }
30
+ interface BaseMetricResponse {
31
+ type: MetricType;
32
+ }
33
+ export interface CountMetricResponse extends BaseMetricResponse {
34
+ type: 'count';
35
+ histogram: Array<CountMetricHistogramData>;
36
+ summary: CountMetricSummary;
37
+ }
38
+ export interface GaugeMetricResponse extends BaseMetricResponse {
39
+ type: 'gauge';
40
+ histogram: Array<GaugeMetricHistogramData>;
41
+ summary: GaugeMetricSummary;
42
+ }
43
+ export type MetricResponse = CountMetricResponse | GaugeMetricResponse;
44
+ export interface GetSingleMetricRequest {
45
+ metricName: string;
46
+ tagFilters: Record<string, string | Array<string>>;
47
+ metricType: MetricType;
48
+ }
49
+ export interface GetMetricsRequest {
50
+ requests: Array<GetSingleMetricRequest>;
51
+ from: number;
52
+ to: number;
53
+ aggregationPeriod: AggregationPeriod;
54
+ }
55
+ export interface GetMetricsResponse {
56
+ responses: Array<MetricResponse>;
57
+ }
58
+ export {};
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.aggregationPeriodMap = void 0;
4
+ exports.aggregationPeriodMap = {
5
+ '1m': 1,
6
+ '5m': 5,
7
+ '15m': 15,
8
+ '1h': 60,
9
+ '1d': 1440,
10
+ '1w': 10080,
11
+ };
12
+ //# sourceMappingURL=metrics.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.types.js","sourceRoot":"","sources":["../../../../common/src/metrics.types.ts"],"names":[],"mappings":";;;AAKa,QAAA,oBAAoB,GAAsC;IACrE,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,KAAK;CACZ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Mutation, MutationType } from './mutation.types';
2
+ import { BeforeAndAfterDocs } from './document.types';
3
+ import { Paths } from './types';
4
+ export declare class MutationContext<T = any> {
5
+ readonly mutation: Mutation<T>;
6
+ readonly beforeAndAfterDocs: BeforeAndAfterDocs<T>;
7
+ readonly serverTimeStamp: Date;
8
+ constructor(mutation: Mutation<T>, beforeAndAfterDocs: BeforeAndAfterDocs<T>, serverTimeStamp: Date);
9
+ getMutationType(): MutationType;
10
+ affectsPath(path: Paths<T>): boolean;
11
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MutationContext = void 0;
4
+ const _ = require("lodash");
5
+ class MutationContext {
6
+ constructor(mutation, beforeAndAfterDocs, serverTimeStamp) {
7
+ this.mutation = mutation;
8
+ this.beforeAndAfterDocs = beforeAndAfterDocs;
9
+ this.serverTimeStamp = serverTimeStamp;
10
+ }
11
+ getMutationType() {
12
+ return this.mutation.type;
13
+ }
14
+ affectsPath(path) {
15
+ const before = this.beforeAndAfterDocs.before ? _.get(this.beforeAndAfterDocs.before, path) : undefined;
16
+ const after = this.beforeAndAfterDocs.after ? _.get(this.beforeAndAfterDocs.after, path) : undefined;
17
+ return !_.isEqual(before, after);
18
+ }
19
+ }
20
+ exports.MutationContext = MutationContext;
21
+ //# sourceMappingURL=mutation.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation.context.js","sourceRoot":"","sources":["../../../../common/src/mutation.context.ts"],"names":[],"mappings":";;;AAGA,4BAA4B;AAG5B,MAAa,eAAe;IAI1B,YACW,QAAqB,EACrB,kBAAyC,EACzC,eAAqB;QAFrB,aAAQ,GAAR,QAAQ,CAAa;QACrB,uBAAkB,GAAlB,kBAAkB,CAAuB;QACzC,oBAAe,GAAf,eAAe,CAAM;IAC7B,CAAC;IAEJ,eAAe;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IAGD,WAAW,CAAC,IAAc;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxG,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;CACF;AApBD,0CAoBC"}
@@ -0,0 +1,5 @@
1
+ import { JSONSchemaType } from 'ajv';
2
+ import { MutateRequest } from './mutation.types';
3
+ type DocumentBase = Record<string, any>;
4
+ export declare const MutationRequestSchema: JSONSchemaType<MutateRequest<DocumentBase>>;
5
+ export {};
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MutationRequestSchema = void 0;
4
+ const Anything = {};
5
+ const AnyString = {
6
+ type: 'string',
7
+ };
8
+ const DocumentSchema = {
9
+ type: 'object',
10
+ };
11
+ const DocIdSchema = {
12
+ type: 'object',
13
+ required: ['docId', 'integrationId', 'collectionName'],
14
+ properties: {
15
+ docId: AnyString,
16
+ integrationId: AnyString,
17
+ collectionName: AnyString,
18
+ },
19
+ };
20
+ const InsertSchema = {
21
+ type: 'object',
22
+ required: ['type', 'properties', 'squidDocIdObj'],
23
+ properties: {
24
+ type: { type: 'string', const: 'insert' },
25
+ properties: DocumentSchema,
26
+ squidDocIdObj: DocIdSchema,
27
+ },
28
+ };
29
+ const DeleteSchema = {
30
+ type: 'object',
31
+ required: ['type', 'squidDocIdObj'],
32
+ properties: {
33
+ type: { type: 'string', const: 'delete' },
34
+ squidDocIdObj: DocIdSchema,
35
+ },
36
+ };
37
+ const ValueUpdateProperties = {
38
+ type: { type: 'string', const: 'update' },
39
+ value: Anything,
40
+ };
41
+ const PropertyMutationSchema = {
42
+ oneOf: [
43
+ {
44
+ type: 'object',
45
+ required: ['type', 'fn', 'value'],
46
+ properties: {
47
+ type: { type: 'string', const: 'applyNumericFn' },
48
+ fn: { type: 'string', const: 'increment' },
49
+ value: { type: 'number' },
50
+ },
51
+ },
52
+ {
53
+ type: 'object',
54
+ required: ['type'],
55
+ properties: {
56
+ type: { type: 'string', const: 'removeProperty' },
57
+ },
58
+ },
59
+ {
60
+ type: 'object',
61
+ required: ['type', 'value'],
62
+ properties: ValueUpdateProperties,
63
+ },
64
+ {
65
+ type: 'object',
66
+ required: ['type', 'fn', 'value'],
67
+ properties: {
68
+ type: { type: 'string', const: 'applyStringFn' },
69
+ fn: { type: 'string', const: 'extendString' },
70
+ value: AnyString,
71
+ },
72
+ },
73
+ {
74
+ type: 'object',
75
+ required: ['type', 'fn'],
76
+ properties: {
77
+ type: { type: 'string', const: 'applyStringFn' },
78
+ fn: { type: 'string', const: 'trim' },
79
+ },
80
+ },
81
+ ],
82
+ };
83
+ const UpdateSchema = {
84
+ type: 'object',
85
+ required: [],
86
+ properties: {
87
+ type: { type: 'string', const: 'update' },
88
+ squidDocIdObj: DocIdSchema,
89
+ properties: {
90
+ type: 'object',
91
+ patternProperties: {
92
+ '[0-9a-zA-Z\\$_\\-\\.]+': {
93
+ type: 'array',
94
+ minItems: 1,
95
+ items: PropertyMutationSchema,
96
+ },
97
+ },
98
+ },
99
+ },
100
+ };
101
+ const MutationSchema = {
102
+ oneOf: [InsertSchema, DeleteSchema, UpdateSchema],
103
+ };
104
+ exports.MutationRequestSchema = {
105
+ type: 'object',
106
+ required: ['clientId', 'integrationId', 'mutations'],
107
+ properties: {
108
+ clientId: AnyString,
109
+ integrationId: AnyString,
110
+ mutations: {
111
+ type: 'array',
112
+ items: MutationSchema,
113
+ },
114
+ },
115
+ };
116
+ //# sourceMappingURL=mutation.schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation.schemas.js","sourceRoot":"","sources":["../../../../common/src/mutation.schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import { ClientId, IntegrationId } from './communication.types';
2
+ import { DocTimestamp, FieldName, SquidDocId, SquidDocIdObj, SquidDocument } from './document.types';
3
+ export interface MutateRequest<T = any> {
4
+ clientId: ClientId;
5
+ integrationId: IntegrationId;
6
+ mutations: Array<Mutation<T>>;
7
+ }
8
+ export interface ExecuteMutationsResponse {
9
+ timestamp: DocTimestamp;
10
+ idResolutionMap?: IdResolutionMap;
11
+ afterDocs: Record<SquidDocId, SquidDocument>;
12
+ }
13
+ export interface MutateResponse extends Omit<ExecuteMutationsResponse, 'afterDocs'> {
14
+ refreshList: Array<SquidDocId>;
15
+ }
16
+ export type IdResolutionMap = Record<SquidDocId, SquidDocId>;
17
+ export type Mutation<T = any> = UpdateMutation<T> | InsertMutation<T> | DeleteMutation;
18
+ export type MutationType = 'insert' | 'update' | 'delete';
19
+ interface BaseMutation {
20
+ type: MutationType;
21
+ squidDocIdObj: SquidDocIdObj;
22
+ }
23
+ export interface DeleteMutation extends BaseMutation {
24
+ type: 'delete';
25
+ }
26
+ export interface UpdateMutation<T = any> extends BaseMutation {
27
+ type: 'update';
28
+ properties: {
29
+ [key in keyof T & string]?: Array<PropertyMutation<T[key]>>;
30
+ };
31
+ }
32
+ export interface InsertMutation<T = any> extends BaseMutation {
33
+ type: 'insert';
34
+ properties: T;
35
+ }
36
+ export type PropertyMutation<Value = any> = ApplyNumericFnPropertyMutation | ApplyStringFnPropertyMutation | ValueUpdatePropertyMutation<Value> | RemovePropertyMutation;
37
+ export interface ValueUpdatePropertyMutation<Value = any> {
38
+ type: 'update';
39
+ value: Value;
40
+ }
41
+ export interface ApplyNumericFnPropertyMutation {
42
+ type: 'applyNumericFn';
43
+ fn: 'increment';
44
+ value: number;
45
+ }
46
+ export interface RemovePropertyMutation {
47
+ type: 'removeProperty';
48
+ }
49
+ interface ApplyExtendString {
50
+ type: 'applyStringFn';
51
+ fn: 'extendString';
52
+ value: string;
53
+ }
54
+ interface ApplyTrimString {
55
+ type: 'applyStringFn';
56
+ fn: 'trim';
57
+ }
58
+ export type ApplyStringFnPropertyMutation = ApplyExtendString | ApplyTrimString;
59
+ export declare function sortUpdateMutationProperties(updateMutation: UpdateMutation): Array<[FieldName, Array<PropertyMutation>]>;
60
+ export declare function mergeMutations(mutationA: Mutation, mutationB: Mutation): Mutation;
61
+ export declare function applyUpdateMutation<T extends SquidDocument>(doc: T, updateMutation: UpdateMutation<T>): T | undefined;
62
+ export declare function convertInsertToUpdate(insertMutation: InsertMutation): UpdateMutation;
63
+ export declare function reduceMutations(mutations: Array<Mutation<unknown>>): Array<Mutation<unknown>>;
64
+ export {};
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reduceMutations = exports.convertInsertToUpdate = exports.applyUpdateMutation = exports.mergeMutations = exports.sortUpdateMutationProperties = void 0;
4
+ const _ = require("lodash");
5
+ const rxjs_1 = require("rxjs");
6
+ const assert_1 = require("./utils/assert");
7
+ const object_1 = require("./utils/object");
8
+ function applyStringFn(initialValue, propertyMutation) {
9
+ switch (propertyMutation.fn) {
10
+ case 'trim':
11
+ if (typeof initialValue !== 'string')
12
+ return initialValue;
13
+ return initialValue.trim();
14
+ case 'extendString':
15
+ if (initialValue === null || initialValue === undefined)
16
+ return propertyMutation.value;
17
+ return initialValue + propertyMutation.value;
18
+ default:
19
+ throw new Error('Unknown string function: ' + JSON.stringify(propertyMutation));
20
+ }
21
+ }
22
+ function applyNumericFn(initialValue, propertyMutation) {
23
+ switch (propertyMutation.fn) {
24
+ case 'increment':
25
+ if (initialValue === null || initialValue === undefined)
26
+ return propertyMutation.value;
27
+ return initialValue + propertyMutation.value;
28
+ default:
29
+ throw new Error('Unknown numeric function: ' + JSON.stringify(propertyMutation));
30
+ }
31
+ }
32
+ function applyPropertyMutation(property, propertyMutation) {
33
+ switch (propertyMutation.type) {
34
+ case 'applyNumericFn':
35
+ return applyNumericFn(property, propertyMutation);
36
+ case 'applyStringFn':
37
+ return applyStringFn(property, propertyMutation);
38
+ case 'update':
39
+ return typeof propertyMutation.value === 'object' ? _.cloneDeep(propertyMutation.value) : propertyMutation.value;
40
+ case 'removeProperty':
41
+ return undefined;
42
+ default:
43
+ throw new Error('Unknown property mutation type: ' + JSON.stringify(propertyMutation));
44
+ }
45
+ }
46
+ function sortUpdateMutationProperties(updateMutation) {
47
+ return Object.entries(updateMutation.properties).sort(([propA], [propB]) => {
48
+ const propADots = propA.split('.').length;
49
+ const propBDots = propB.split('.').length;
50
+ return propADots - propBDots;
51
+ });
52
+ }
53
+ exports.sortUpdateMutationProperties = sortUpdateMutationProperties;
54
+ function mergeMutations(mutationA, mutationB) {
55
+ if (mutationB.type === 'insert')
56
+ return mutationB;
57
+ if (mutationB.type === 'delete')
58
+ return mutationB;
59
+ if (mutationA.type === 'delete')
60
+ throw new Error('Cannot delete and then update');
61
+ (0, assert_1.assertTruthy)(mutationB.type === 'update', 'Invalid mutation type');
62
+ if (mutationA.type === 'update')
63
+ return mergeUpdateMutations(mutationA, mutationB);
64
+ const result = _.cloneDeep(mutationA);
65
+ for (const [fieldName, propertyMutationsAr] of sortUpdateMutationProperties(mutationB)) {
66
+ const propertyMutations = propertyMutationsAr;
67
+ for (const propertyMutation of propertyMutations) {
68
+ const value = applyPropertyMutation((0, object_1.getInPath)(result.properties, fieldName), propertyMutation);
69
+ if (value === undefined) {
70
+ (0, object_1.deleteInPath)(result.properties, fieldName);
71
+ }
72
+ else {
73
+ (0, object_1.setInPath)(result.properties, fieldName, value);
74
+ }
75
+ }
76
+ }
77
+ return result;
78
+ }
79
+ exports.mergeMutations = mergeMutations;
80
+ function mergeUpdateMutations(mutationA, mutationB) {
81
+ const result = _.cloneDeep(mutationA);
82
+ mutationB = _.cloneDeep(mutationB);
83
+ for (const [aPropName] of sortUpdateMutationProperties(result)) {
84
+ const aPropNameDots = aPropName.split('.').length;
85
+ const isOverriddenByMutationB = Object.entries(mutationB.properties).some(([bPropName]) => {
86
+ return aPropName.startsWith(bPropName + '.') && aPropNameDots > bPropName.split('.').length;
87
+ });
88
+ if (isOverriddenByMutationB) {
89
+ delete result.properties[aPropName];
90
+ }
91
+ }
92
+ for (const [bPropName, bPropValues] of sortUpdateMutationProperties(mutationB)) {
93
+ result.properties[bPropName] = [...(result.properties[bPropName] || []), ...bPropValues];
94
+ }
95
+ return result;
96
+ }
97
+ function applyUpdateMutation(doc, updateMutation) {
98
+ if (!doc)
99
+ return undefined;
100
+ const result = Object.assign({}, doc);
101
+ const entries = sortUpdateMutationProperties(updateMutation);
102
+ for (const [fieldName, propertyMutationsAr] of entries) {
103
+ const propertyMutations = propertyMutationsAr;
104
+ for (const propertyMutation of propertyMutations) {
105
+ const value = applyPropertyMutation((0, object_1.getInPath)(result, fieldName), propertyMutation);
106
+ if (value === undefined) {
107
+ (0, object_1.deleteInPath)(result, fieldName);
108
+ }
109
+ else {
110
+ (0, object_1.setInPath)(result, fieldName, value);
111
+ }
112
+ }
113
+ }
114
+ return result;
115
+ }
116
+ exports.applyUpdateMutation = applyUpdateMutation;
117
+ function convertInsertToUpdate(insertMutation) {
118
+ const result = {
119
+ type: 'update',
120
+ squidDocIdObj: insertMutation.squidDocIdObj,
121
+ properties: {},
122
+ };
123
+ for (const [key, value] of Object.entries(insertMutation.properties)) {
124
+ result.properties[key] = [{ type: 'update', value }];
125
+ }
126
+ return result;
127
+ }
128
+ exports.convertInsertToUpdate = convertInsertToUpdate;
129
+ function reduceMutations(mutations) {
130
+ let result = [];
131
+ (0, rxjs_1.from)(mutations)
132
+ .pipe((0, rxjs_1.groupBy)((mutation) => {
133
+ return `${mutation.squidDocIdObj.integrationId}${mutation.squidDocIdObj.collectionName}/${mutation.squidDocIdObj.docId}`;
134
+ }), (0, rxjs_1.mergeMap)((mutationsGroup) => mutationsGroup.pipe((0, rxjs_1.reduce)((mutationA, mutationB) => {
135
+ return mergeMutations(mutationA, mutationB);
136
+ }))), (0, rxjs_1.toArray)())
137
+ .subscribe((value) => {
138
+ result = value;
139
+ });
140
+ return result;
141
+ }
142
+ exports.reduceMutations = reduceMutations;
143
+ //# sourceMappingURL=mutation.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation.types.js","sourceRoot":"","sources":["../../../../common/src/mutation.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare class NamedQueryContext {
2
+ readonly params: Record<string, any>;
3
+ constructor(params: Record<string, any>);
4
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NamedQueryContext = void 0;
4
+ class NamedQueryContext {
5
+ constructor(params) {
6
+ this.params = params;
7
+ }
8
+ }
9
+ exports.NamedQueryContext = NamedQueryContext;
10
+ //# sourceMappingURL=named-query.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"named-query.context.js","sourceRoot":"","sources":["../../../../common/src/named-query.context.ts"],"names":[],"mappings":";;;AACA,MAAa,iBAAiB;IAE5B,YAAqB,MAA2B;QAA3B,WAAM,GAAN,MAAM,CAAqB;IAAG,CAAC;CACrD;AAHD,8CAGC"}
@@ -0,0 +1,3 @@
1
+ import { JSONSchemaType } from 'ajv';
2
+ import { ExecuteNamedQueryRequest } from './named-query.types';
3
+ export declare const ExecuteNamedQueryRequestSchema: JSONSchemaType<ExecuteNamedQueryRequest>;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExecuteNamedQueryRequestSchema = void 0;
4
+ exports.ExecuteNamedQueryRequestSchema = {
5
+ type: 'object',
6
+ required: ['integrationId', 'queryName', 'paramsRecordStr', 'clientRequestId', 'clientId'],
7
+ properties: {
8
+ integrationId: { type: 'string', nullable: false },
9
+ queryName: { type: 'string', nullable: false },
10
+ paramsRecordStr: { type: 'string', nullable: false },
11
+ clientRequestId: { type: 'string', nullable: false },
12
+ clientId: { type: 'string', nullable: false },
13
+ },
14
+ };
15
+ //# sourceMappingURL=named-query.schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"named-query.schemas.js","sourceRoot":"","sources":["../../../../common/src/named-query.schemas.ts"],"names":[],"mappings":";;;AAIa,QAAA,8BAA8B,GAA6C;IACtF,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC;IAC1F,UAAU,EAAE;QACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;QAClD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC9C,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;QACpD,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;QACpD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;KAC9C;CACF,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { ClientId, ClientRequestId, IntegrationId } from './communication.types';
2
+ import { QueryName } from './application.types';
3
+ export interface ExecuteNamedQueryRequest {
4
+ integrationId: IntegrationId;
5
+ queryName: QueryName;
6
+ paramsRecordStr: string;
7
+ clientRequestId: ClientRequestId;
8
+ clientId: ClientId;
9
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=named-query.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"named-query.types.js","sourceRoot":"","sources":["../../../../common/src/named-query.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from './query-context';
2
+ export * from './simple-query-builder';
@@ -0,0 +1,19 @@
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("./query-context"), exports);
18
+ __exportStar(require("./simple-query-builder"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../common/src/query/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,yDAAuC"}
@@ -0,0 +1,28 @@
1
+ import { IntegrationId } from '../communication.types';
2
+ import { CollectionName, FieldName } from '../document.types';
3
+ import { AllOperators, ContextCondition, ContextConditions, FieldSort, GeneralCondition, GeneralConditions, GenericValue, Query } from '../query.types';
4
+ import { PartialBy, Paths } from '../types';
5
+ export declare class QueryContext<T = any> {
6
+ readonly query: Query<T>;
7
+ private readonly parsedConditions;
8
+ constructor(query: Query<T>);
9
+ get integrationId(): IntegrationId;
10
+ get collectionName(): CollectionName;
11
+ get limit(): number;
12
+ sortedBy(sorts: Array<PartialBy<FieldSort<T>, 'asc'>>): boolean;
13
+ sortedByExact(sorts: Array<PartialBy<FieldSort<T>, 'asc'>>): boolean;
14
+ includes<F extends FieldName<T>, O extends AllOperators>(fieldName: F, operator: O, value: GenericValue<T, F, O>): boolean;
15
+ includesCondition(condition: ContextCondition<T>): boolean;
16
+ includesConditions(conditions: GeneralConditions<T>): boolean;
17
+ matchesConditions(conditions: GeneralConditions<T>): boolean;
18
+ matchesQuery(query: Query<T>): boolean;
19
+ isSubsetOf<F extends FieldName<T>, O extends AllOperators>(fieldName: F, operator: O, value: GenericValue<T, F, O> | null): boolean;
20
+ isSubsetOfCondition(condition: GeneralCondition<T>): boolean;
21
+ isSubsetOfConditions(conditions: GeneralConditions<T>): boolean;
22
+ isSubsetOfQuery(query: Query<T>): boolean;
23
+ getConditionsFor<K extends FieldName<T>>(...fieldNames: K[]): ContextConditions<T, K>;
24
+ getConditionsForField<K extends Paths<T>>(fieldName: K): ContextConditions<T>;
25
+ private evaluateSubset;
26
+ private evaluateIncludes;
27
+ private parseConditions;
28
+ }