@squidcloud/local-backend 1.0.61 → 1.0.63

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 (46) hide show
  1. package/dist/common/src/application.schemas.d.ts +562 -418
  2. package/dist/common/src/application.schemas.js +218 -99
  3. package/dist/common/src/application.schemas.js.map +1 -1
  4. package/dist/common/src/application.types.d.ts +40 -82
  5. package/dist/common/src/application.types.js.map +1 -1
  6. package/dist/common/src/index.d.ts +2 -0
  7. package/dist/common/src/index.js +2 -0
  8. package/dist/common/src/index.js.map +1 -1
  9. package/dist/common/src/integrations/ai_assistant.types.d.ts +5 -11
  10. package/dist/common/src/integrations/api.types.d.ts +5 -5
  11. package/dist/common/src/integrations/database.types.d.ts +3 -8
  12. package/dist/common/src/integrations/index.d.ts +27 -4
  13. package/dist/common/src/integrations/index.js +7 -1
  14. package/dist/common/src/integrations/index.js.map +1 -1
  15. package/dist/common/src/query/base-query-builder.d.ts +1 -30
  16. package/dist/common/src/query/base-query-builder.js +1 -259
  17. package/dist/common/src/query/base-query-builder.js.map +1 -1
  18. package/dist/common/src/query/index.d.ts +1 -0
  19. package/dist/common/src/query/index.js +1 -0
  20. package/dist/common/src/query/index.js.map +1 -1
  21. package/dist/common/src/query/pagination.d.ts +42 -0
  22. package/dist/common/src/query/pagination.js +165 -0
  23. package/dist/common/src/query/pagination.js.map +1 -0
  24. package/dist/common/src/query.types.d.ts +5 -0
  25. package/dist/common/src/query.types.js.map +1 -1
  26. package/dist/common/src/socket.types.d.ts +7 -3
  27. package/dist/common/src/utils/global.utils.d.ts +10 -0
  28. package/dist/common/src/utils/global.utils.js +47 -0
  29. package/dist/common/src/utils/global.utils.js.map +1 -0
  30. package/dist/common/src/utils/http.js +1 -1
  31. package/dist/common/src/utils/http.js.map +1 -1
  32. package/dist/common/src/websocket.impl.d.ts +21 -0
  33. package/dist/common/src/websocket.impl.js +75 -0
  34. package/dist/common/src/websocket.impl.js.map +1 -0
  35. package/dist/internal-common/src/dao.types.d.ts +46 -0
  36. package/dist/internal-common/src/dao.types.js +3 -0
  37. package/dist/internal-common/src/dao.types.js.map +1 -0
  38. package/dist/internal-common/src/index.d.ts +4 -4
  39. package/dist/internal-common/src/index.js +5 -5
  40. package/dist/internal-common/src/index.js.map +1 -1
  41. package/dist/internal-common/src/local-dev.types.d.ts +5 -1
  42. package/dist/local-backend/src/local-backend-socket.service.d.ts +2 -1
  43. package/dist/local-backend/src/local-backend-socket.service.js +45 -42
  44. package/dist/local-backend/src/local-backend-socket.service.js.map +1 -1
  45. package/dist/tsconfig.build.tsbuildinfo +1 -1
  46. package/package.json +2 -2
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DebugLogger = exports.enableDebugLogs = exports.isDebugEnabled = exports.getGlobal = void 0;
4
+ function getGlobal() {
5
+ if (typeof window !== 'undefined') {
6
+ return window;
7
+ }
8
+ if (typeof global !== 'undefined') {
9
+ return global;
10
+ }
11
+ if (typeof self !== 'undefined') {
12
+ return self;
13
+ }
14
+ throw new Error('Unable to locate global object');
15
+ }
16
+ exports.getGlobal = getGlobal;
17
+ function isDebugEnabled() {
18
+ const global = getGlobal();
19
+ return global && global['SQUID_DEBUG_ENABLED'];
20
+ }
21
+ exports.isDebugEnabled = isDebugEnabled;
22
+ function enableDebugLogs() {
23
+ const global = getGlobal();
24
+ global['SQUID_DEBUG_ENABLED'] = true;
25
+ }
26
+ exports.enableDebugLogs = enableDebugLogs;
27
+ class DebugLogger {
28
+ static log(...args) {
29
+ DebugLogger.info(...args);
30
+ }
31
+ static info(...args) {
32
+ console.log(`%c[${new Date().toLocaleTimeString()}] INFO`, 'color:green', ...args);
33
+ }
34
+ static warn(...args) {
35
+ console.warn(`%c[${new Date().toLocaleTimeString()}] WARN`, 'color:yellow', ...args);
36
+ }
37
+ static error(...args) {
38
+ console.error(`%c[${new Date().toLocaleTimeString()}] ERROR`, 'color:red', ...args);
39
+ }
40
+ static debug(...args) {
41
+ if (!isDebugEnabled())
42
+ return;
43
+ console.log(`%c[${new Date().toLocaleTimeString()}] DEBUG`, 'color:cyan', ...args);
44
+ }
45
+ }
46
+ exports.DebugLogger = DebugLogger;
47
+ //# sourceMappingURL=global.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global.utils.js","sourceRoot":"","sources":["../../../../../common/src/utils/global.utils.ts"],"names":[],"mappings":";;;AAKA,SAAgB,SAAS;IACvB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,MAAM,CAAC;KACf;IACD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,MAAM,CAAC;KACf;IACD,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;QAC/B,OAAO,IAAI,CAAC;KACb;IACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACpD,CAAC;AAXD,8BAWC;AAGD,SAAgB,cAAc;IAC5B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,OAAO,MAAM,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACjD,CAAC;AAHD,wCAGC;AAGD,SAAgB,eAAe;IAC7B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC;AACvC,CAAC;AAHD,0CAGC;AAGD,MAAa,WAAW;IACtB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAW;QACvB,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,GAAG,IAAW;QACxB,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,GAAG,IAAW;QACxB,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,IAAW;QACzB,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,IAAW;QACzB,IAAI,CAAC,cAAc,EAAE;YAAE,OAAO;QAC9B,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,CAAC;IACrF,CAAC;CACF;AArBD,kCAqBC"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getApplicationHttpHeaders = exports.getApplicationUrl = void 0;
4
- const kotlinControllers = ['query', 'aiData', 'api', 'backend-function', 'webhooks'];
4
+ const kotlinControllers = ['query', 'aiData', 'api', 'backend-function', 'webhooks', 'ws'];
5
5
  function getApplicationUrl(regionPrefix, appId, path) {
6
6
  const baseUrl = 'https://squid.cloud';
7
7
  const parsedBaseUrl = new URL(baseUrl);
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../../../common/src/utils/http.ts"],"names":[],"mappings":";;;AAAA,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAE,UAAU,CAAC,CAAC;AAErF,SAAgB,iBAAiB,CAAC,YAAoB,EAAE,KAAa,EAAE,IAAY;IACjF,MAAM,OAAO,GAAG,qBAAqB,CAAC;IACtC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACvC,aAAa,CAAC,IAAI,GAAG,GAAG,KAAK,IAAI,YAAY,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;IACtE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAE5C,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE;QACzB,aAAa,CAAC,QAAQ,GAAG,MAAM,CAAC;QAChC,aAAa,CAAC,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9E,IAAI,SAAS,CAAC,YAAY,CAAC,EAAE;YAC3B,aAAa,CAAC,IAAI,GAAG,UAAU,CAAC;SACjC;aAAM,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE;YAC9B,aAAa,CAAC,IAAI,GAAG,WAAW,CAAC;SAClC;KACF;IACD,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;AACtD,CAAC;AAjBD,8CAiBC;AAED,SAAgB,yBAAyB,CAAC,YAAoB,EAAE,KAAa;IAC3E,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE;QACzB,OAAO,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC;KAClC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAPD,8DAOC;AAED,SAAS,OAAO,CAAC,YAAoB;IACnC,OAAO,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,SAAS,CAAC,YAAoB;IACrC,OAAO,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,KAAK,CAAC,YAAoB;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../../../common/src/utils/http.ts"],"names":[],"mappings":";;;AAAA,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AAE3F,SAAgB,iBAAiB,CAAC,YAAoB,EAAE,KAAa,EAAE,IAAY;IACjF,MAAM,OAAO,GAAG,qBAAqB,CAAC;IACtC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACvC,aAAa,CAAC,IAAI,GAAG,GAAG,KAAK,IAAI,YAAY,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;IACtE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAE5C,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE;QACzB,aAAa,CAAC,QAAQ,GAAG,MAAM,CAAC;QAChC,aAAa,CAAC,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9E,IAAI,SAAS,CAAC,YAAY,CAAC,EAAE;YAC3B,aAAa,CAAC,IAAI,GAAG,UAAU,CAAC;SACjC;aAAM,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE;YAC9B,aAAa,CAAC,IAAI,GAAG,WAAW,CAAC;SAClC;KACF;IACD,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;AACtD,CAAC;AAjBD,8CAiBC;AAED,SAAgB,yBAAyB,CAAC,YAAoB,EAAE,KAAa;IAC3E,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE;QACzB,OAAO,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC;KAClC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAPD,8DAOC;AAED,SAAS,OAAO,CAAC,YAAoB;IACnC,OAAO,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,SAAS,CAAC,YAAoB;IACrC,OAAO,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,KAAK,CAAC,YAAoB;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,21 @@
1
+ interface Options {
2
+ maxAttempts?: number;
3
+ protocols?: string[];
4
+ onmessage?: (event: any) => void;
5
+ onopen?: (event: any) => void;
6
+ onclose?: (event: any) => void;
7
+ onerror?: (event: any) => void;
8
+ onreconnect?: (event: any) => void;
9
+ onmaximum?: (event: any) => void;
10
+ timeout?: number;
11
+ }
12
+ export interface WebSocketWrapper {
13
+ open: () => void;
14
+ reconnect: (e: any) => void;
15
+ json: (x: any) => void;
16
+ send: (x: string) => void;
17
+ close: (x?: number, y?: string) => void;
18
+ connected: boolean;
19
+ }
20
+ export declare function createWebSocketWrapper(url: string, opts?: Options): WebSocketWrapper;
21
+ export {};
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.createWebSocketWrapper = void 0;
5
+ const global_utils_1 = require("./utils/global.utils");
6
+ function noop() {
7
+ return;
8
+ }
9
+ const globalObj = (0, global_utils_1.getGlobal)();
10
+ const WebSocketClass = (_a = globalObj['WebSocket']) !== null && _a !== void 0 ? _a : require('ws');
11
+ function createWebSocketWrapper(url, opts = {}) {
12
+ let ws;
13
+ let num = 0;
14
+ let timer = 1;
15
+ const $ = {
16
+ connected: false,
17
+ open() {
18
+ ws = new WebSocketClass(url, opts.protocols || []);
19
+ ws.onmessage = opts.onmessage || noop;
20
+ ws.onopen = function (e) {
21
+ $.connected = true;
22
+ (opts.onopen || noop)(e);
23
+ num = 0;
24
+ };
25
+ ws.onclose = function (e) {
26
+ $.connected = false;
27
+ if (e.code !== 4999) {
28
+ global_utils_1.DebugLogger.debug('WebSocket closed. Reconnecting. Close code: ', e.code);
29
+ (opts.onclose || noop)(e);
30
+ $.reconnect(e);
31
+ return;
32
+ }
33
+ (opts.onclose || noop)(e);
34
+ };
35
+ ws.onerror = function (e) {
36
+ $.connected = false;
37
+ if (e && 'ECONNREFUSED' === e.code) {
38
+ $.reconnect(e);
39
+ }
40
+ else {
41
+ (opts.onerror || noop)(e);
42
+ }
43
+ };
44
+ },
45
+ reconnect(e) {
46
+ const maxAttempts = opts.maxAttempts !== undefined ? opts.maxAttempts : Infinity;
47
+ if (timer && num++ < maxAttempts) {
48
+ timer = setTimeout(function () {
49
+ (opts.onreconnect || noop)(e);
50
+ global_utils_1.DebugLogger.debug('WebSocket trying to reconnect...');
51
+ $.open();
52
+ }, opts.timeout || 1000);
53
+ }
54
+ else {
55
+ (opts.onmaximum || noop)(e);
56
+ }
57
+ },
58
+ json(x) {
59
+ ws.send(JSON.stringify(x));
60
+ },
61
+ send(x) {
62
+ ws.send(x);
63
+ },
64
+ close(code = 4999, message) {
65
+ $.connected = false;
66
+ clearTimeout(timer);
67
+ timer = undefined;
68
+ ws.close(code, message);
69
+ },
70
+ };
71
+ $.open();
72
+ return $;
73
+ }
74
+ exports.createWebSocketWrapper = createWebSocketWrapper;
75
+ //# sourceMappingURL=websocket.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket.impl.js","sourceRoot":"","sources":["../../../../common/src/websocket.impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { AiAssistantContextMetadata, AiAssistantProfileMetadata, AppId, ApplicationBundleData, ClientId, CodeUrl, IntegrationConfig, IntegrationId, IntegrationSchema, MessageToClient, OpenIdProvider, SchedulerId } from '@squidcloud/common';
2
+ export interface ApplicationBo {
3
+ appId: AppId;
4
+ codeUrl?: CodeUrl;
5
+ allowedHosts: string[];
6
+ createdAt: Date;
7
+ updatedAt: Date;
8
+ openIdProvider?: OpenIdProvider;
9
+ integrations: Record<IntegrationId, IntegrationConfig>;
10
+ bundleData?: ApplicationBundleData;
11
+ }
12
+ export interface ScheduledJobBo {
13
+ appId: AppId;
14
+ schedulerId: SchedulerId;
15
+ nextRunTime: number;
16
+ }
17
+ export interface MessageToClientBo {
18
+ message: MessageToClient;
19
+ appId: AppId;
20
+ clientId: ClientId;
21
+ createdAt: Date;
22
+ }
23
+ export interface SchemaBo {
24
+ appId: AppId;
25
+ integrationId: IntegrationId;
26
+ schema: IntegrationSchema;
27
+ createdAt: Date;
28
+ updatedAt: Date;
29
+ }
30
+ export interface AiProfileBo {
31
+ appId: AppId;
32
+ integrationId: IntegrationId;
33
+ id: string;
34
+ profile: AiAssistantProfileMetadata;
35
+ createdAt: Date;
36
+ updatedAt: Date;
37
+ }
38
+ export interface AiContextBo {
39
+ appId: AppId;
40
+ integrationId: IntegrationId;
41
+ profileId: string;
42
+ id: string;
43
+ context: AiAssistantContextMetadata;
44
+ createdAt: Date;
45
+ updatedAt: Date;
46
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=dao.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dao.types.js","sourceRoot":"","sources":["../../../../internal-common/src/dao.types.ts"],"names":[],"mappings":""}
@@ -1,14 +1,14 @@
1
1
  export * from './async-queue';
2
2
  export * from './code-executor.types';
3
+ export * from './dao.types';
3
4
  export * from './environment';
5
+ export * from './filters/custom-exception.filter';
6
+ export * from './interceptors/body.interceptor';
4
7
  export * from './kafka-observability-publisher';
5
8
  export * from './kafka/kafka.manager';
6
9
  export * from './kafka/kafka.types';
7
10
  export * from './local-dev.types';
11
+ export { ObservabilityPublisher } from './observability-publisher';
8
12
  export * from './observability.types';
9
13
  export * from './shutdown.manager';
10
14
  export * from './utils';
11
- export * from './code-executor.types';
12
- export * from './interceptors/body.interceptor';
13
- export * from './filters/custom-exception.filter';
14
- export { ObservabilityPublisher } from './observability-publisher';
@@ -17,17 +17,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.ObservabilityPublisher = void 0;
18
18
  __exportStar(require("./async-queue"), exports);
19
19
  __exportStar(require("./code-executor.types"), exports);
20
+ __exportStar(require("./dao.types"), exports);
20
21
  __exportStar(require("./environment"), exports);
22
+ __exportStar(require("./filters/custom-exception.filter"), exports);
23
+ __exportStar(require("./interceptors/body.interceptor"), exports);
21
24
  __exportStar(require("./kafka-observability-publisher"), exports);
22
25
  __exportStar(require("./kafka/kafka.manager"), exports);
23
26
  __exportStar(require("./kafka/kafka.types"), exports);
24
27
  __exportStar(require("./local-dev.types"), exports);
28
+ var observability_publisher_1 = require("./observability-publisher");
29
+ Object.defineProperty(exports, "ObservabilityPublisher", { enumerable: true, get: function () { return observability_publisher_1.ObservabilityPublisher; } });
25
30
  __exportStar(require("./observability.types"), exports);
26
31
  __exportStar(require("./shutdown.manager"), exports);
27
32
  __exportStar(require("./utils"), exports);
28
- __exportStar(require("./code-executor.types"), exports);
29
- __exportStar(require("./interceptors/body.interceptor"), exports);
30
- __exportStar(require("./filters/custom-exception.filter"), exports);
31
- var observability_publisher_1 = require("./observability-publisher");
32
- Object.defineProperty(exports, "ObservabilityPublisher", { enumerable: true, get: function () { return observability_publisher_1.ObservabilityPublisher; } });
33
33
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../internal-common/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,wDAAsC;AACtC,gDAA8B;AAC9B,kEAAgD;AAChD,wDAAsC;AACtC,sDAAoC;AACpC,oDAAkC;AAClC,wDAAsC;AACtC,qDAAmC;AACnC,0CAAwB;AACxB,wDAAsC;AACtC,kEAAgD;AAChD,oEAAkD;AAClD,qEAAmE;AAA1D,iIAAA,sBAAsB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../internal-common/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,wDAAsC;AACtC,8CAA4B;AAC5B,gDAA8B;AAC9B,oEAAkD;AAClD,kEAAgD;AAChD,kEAAgD;AAChD,wDAAsC;AACtC,sDAAoC;AACpC,oDAAkC;AAClC,qEAAmE;AAA1D,iIAAA,sBAAsB,OAAA;AAC/B,wDAAsC;AACtC,qDAAmC;AACnC,0CAAwB"}
@@ -6,11 +6,15 @@ interface BaseMessageFromDeveloper {
6
6
  payload?: unknown;
7
7
  requestId: string;
8
8
  }
9
- export type MessageFromDeveloper = ResponseMessageFromDeveloper;
9
+ export type MessageFromDeveloper = ResponseMessageFromDeveloper | BundleDataMessageFromDeveloper;
10
10
  export interface ResponseMessageFromDeveloper extends BaseMessageFromDeveloper {
11
11
  type: 'response';
12
12
  payload: any;
13
13
  }
14
+ export interface BundleDataMessageFromDeveloper extends BaseMessageFromDeveloper {
15
+ type: 'bundleData';
16
+ payload: any;
17
+ }
14
18
  export type MessageToDeveloperType = 'executeFunction' | 'localBackendData';
15
19
  interface BaseMessageToDeveloper {
16
20
  type: MessageToDeveloperType;
@@ -1,7 +1,7 @@
1
1
  import { LocalBackendService } from './local-backend.service';
2
2
  export declare class LocalBackendSocketService {
3
3
  private readonly localBackendService;
4
- private readonly socketIoEndpoint;
4
+ private readonly socketEndpoint;
5
5
  private socket;
6
6
  private readonly appId;
7
7
  private readonly region;
@@ -12,6 +12,7 @@ export declare class LocalBackendSocketService {
12
12
  private readonly fullAppId;
13
13
  constructor(localBackendService: LocalBackendService);
14
14
  private connectToSocket;
15
+ private onMessage;
15
16
  private handleExecuteFunctionMessage;
16
17
  private sendMessageThroughSocket;
17
18
  private printInfoAboutBundleData;
@@ -10,7 +10,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.LocalBackendSocketService = void 0;
13
- const socket_io_client_1 = require("socket.io-client");
14
13
  const common_1 = require("@squidcloud/common");
15
14
  const common_2 = require("@nestjs/common");
16
15
  const local_backend_service_1 = require("./local-backend.service");
@@ -30,52 +29,56 @@ let LocalBackendSocketService = class LocalBackendSocketService {
30
29
  console.error('The local backend can only be run using the "dev" environment. Please follow the instructions in: https://docs.squid.cloud/docs/development-tools/local-dev-cli');
31
30
  process.exit(1);
32
31
  }
33
- this.socketIoEndpoint = (0, common_1.getApplicationUrl)(this.region, this.fullAppId, '');
32
+ this.socketEndpoint = (0, common_1.getApplicationUrl)(this.region, this.fullAppId, 'ws/localdev')
33
+ .replace('https', 'wss')
34
+ .replace('http', 'ws');
34
35
  this.connectToSocket();
35
36
  }
36
37
  connectToSocket() {
37
- const socketUri = `${this.socketIoEndpoint}`;
38
38
  const query = { apiKey: this.apiKey };
39
- console.log('Connecting to local dev socket: ', socketUri, query);
40
- this.socket = (0, socket_io_client_1.io)(socketUri, {
41
- query,
42
- reconnectionDelay: 5000,
43
- transports: ['websocket'],
44
- path: '/localdev',
45
- });
46
- this.socket.on('connect', () => {
47
- console.log('Connected to local dev socket');
48
- });
49
- this.socket.on('disconnect', (_reason, _description) => {
50
- console.log(`Disconnected from socket, reason: "${_reason}":`, _description);
51
- this.connectionReady.next(false);
52
- });
53
- this.socket.on('connect_error', (error) => {
54
- console.log(`An error occurred while connecting to the local dev socket with url: `, this.socketIoEndpoint, error);
55
- });
56
- this.socket.on('message', async (messageStr) => {
57
- const message = (0, common_1.deserializeObj)(messageStr);
58
- switch (message.type) {
59
- case 'localBackendData':
60
- this.connectionReady.next(true);
61
- const bundleData = await this.localBackendService.initializeAndGetBackendData(message.payload.secrets, this.appId);
62
- const bundleDataMessage = {
63
- type: 'response',
64
- requestId: message.requestId,
65
- payload: bundleData,
66
- };
67
- await this.sendMessageThroughSocket(bundleDataMessage);
68
- this.printInfoAboutBundleData(bundleData);
69
- break;
70
- case 'executeFunction':
71
- await this.handleExecuteFunctionMessage(message);
72
- break;
73
- default:
74
- console.error('Unsupported message type: ', message.type);
75
- break;
76
- }
39
+ const queryString = Object.entries(query)
40
+ .map(([key, value]) => `${key}=${value}`)
41
+ .join('&');
42
+ this.socket = (0, common_1.createWebSocketWrapper)(`${this.socketEndpoint}?${queryString}`, {
43
+ timeout: 5000,
44
+ onmessage: (e) => this.onMessage(e.data),
45
+ onopen: (_e) => {
46
+ common_1.DebugLogger.debug(`Connection to socket established. Endpoint: ${this.socketEndpoint}`);
47
+ },
48
+ onreconnect: (_e) => {
49
+ common_1.DebugLogger.debug(`WebSocket reconnect event triggered`);
50
+ this.connectionReady.next(false);
51
+ },
52
+ onclose: (_e) => {
53
+ common_1.DebugLogger.debug(`WebSocket onclose event triggered`);
54
+ this.connectionReady.next(false);
55
+ },
56
+ onerror: (e) => console.error('WebSocket error:', e),
77
57
  });
78
58
  }
59
+ async onMessage(messageStr) {
60
+ const message = (0, common_1.deserializeObj)(messageStr);
61
+ common_1.DebugLogger.debug('Received message from server: ', messageStr);
62
+ switch (message.type) {
63
+ case 'localBackendData':
64
+ this.connectionReady.next(true);
65
+ const bundleData = await this.localBackendService.initializeAndGetBackendData(message.payload.secrets, this.appId);
66
+ const bundleDataMessage = {
67
+ type: 'bundleData',
68
+ requestId: message.requestId,
69
+ payload: bundleData,
70
+ };
71
+ await this.sendMessageThroughSocket(bundleDataMessage);
72
+ this.printInfoAboutBundleData(bundleData);
73
+ break;
74
+ case 'executeFunction':
75
+ await this.handleExecuteFunctionMessage(message);
76
+ break;
77
+ default:
78
+ console.error('Unsupported message type: ', message.type);
79
+ break;
80
+ }
81
+ }
79
82
  async handleExecuteFunctionMessage(message) {
80
83
  const { responses } = await this.localBackendService.processRunCode(message.payload);
81
84
  const response = {
@@ -87,7 +90,7 @@ let LocalBackendSocketService = class LocalBackendSocketService {
87
90
  }
88
91
  async sendMessageThroughSocket(message) {
89
92
  await (0, rxjs_1.firstValueFrom)(this.connectionReady.pipe((0, rxjs_1.filter)(Boolean)));
90
- this.socket.emit('message', (0, common_1.serializeObj)(message));
93
+ this.socket.send((0, common_1.serializeObj)(message));
91
94
  }
92
95
  printInfoAboutBundleData(bundleData) {
93
96
  const webhooks = Object.entries(bundleData.webhooks || {});
@@ -1 +1 @@
1
- {"version":3,"file":"local-backend-socket.service.js","sourceRoot":"","sources":["../../../src/local-backend-socket.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-backend-socket.service.js","sourceRoot":"","sources":["../../../src/local-backend-socket.service.ts"],"names":[],"mappings":"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"}