@squidcloud/local-backend 1.0.175 → 1.0.177

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 (24) hide show
  1. package/dist/internal-common/src/local-dev.types.d.ts +2 -1
  2. package/dist/internal-common/src/local-dev.types.js +1 -0
  3. package/dist/internal-common/src/local-dev.types.js.map +1 -1
  4. package/dist/internal-common/src/public-types/api-call.public-context.d.ts +10 -1
  5. package/dist/internal-common/src/public-types/api-call.public-context.js +1 -1
  6. package/dist/internal-common/src/public-types/api-call.public-context.js.map +1 -1
  7. package/dist/internal-common/src/public-types/bundle-api.public-types.d.ts +21 -0
  8. package/dist/internal-common/src/public-types/bundle-api.public-types.js +34 -0
  9. package/dist/internal-common/src/public-types/bundle-api.public-types.js.map +1 -1
  10. package/dist/internal-common/src/types/api.types.d.ts +3 -3
  11. package/dist/internal-common/src/types/bundle-data.types.d.ts +2 -0
  12. package/dist/internal-common/src/types/query.types.js +9 -8
  13. package/dist/internal-common/src/types/query.types.js.map +1 -1
  14. package/dist/internal-common/src/types/security.types.d.ts +13 -6
  15. package/dist/internal-common/src/utils/object.d.ts +6 -0
  16. package/dist/internal-common/src/utils/object.js +80 -0
  17. package/dist/internal-common/src/utils/object.js.map +1 -0
  18. package/dist/internal-common/src/utils/squid-service-utils.d.ts +14 -0
  19. package/dist/internal-common/src/utils/squid-service-utils.js +40 -0
  20. package/dist/internal-common/src/utils/squid-service-utils.js.map +1 -0
  21. package/dist/local-backend/src/local-backend.service.js +12 -3
  22. package/dist/local-backend/src/local-backend.service.js.map +1 -1
  23. package/dist/tsconfig.build.tsbuildinfo +1 -1
  24. package/package.json +1 -1
@@ -42,7 +42,8 @@ export declare enum LogType {
42
42
  ALL = "ALL",
43
43
  QUERY = "QUERY",
44
44
  MUTATIONS = "MUTATIONS",
45
- AI = "AI"
45
+ AI = "AI",
46
+ API = "API"
46
47
  }
47
48
  export interface LogRequest {
48
49
  tag: string;
@@ -7,5 +7,6 @@ var LogType;
7
7
  LogType["QUERY"] = "QUERY";
8
8
  LogType["MUTATIONS"] = "MUTATIONS";
9
9
  LogType["AI"] = "AI";
10
+ LogType["API"] = "API";
10
11
  })(LogType || (exports.LogType = LogType = {}));
11
12
  //# sourceMappingURL=local-dev.types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"local-dev.types.js","sourceRoot":"","sources":["../../../../internal-common/src/local-dev.types.ts"],"names":[],"mappings":";;;AA8DA,IAAY,OAKX;AALD,WAAY,OAAO;IACjB,sBAAW,CAAA;IACX,0BAAe,CAAA;IACf,kCAAuB,CAAA;IACvB,oBAAS,CAAA;AACX,CAAC,EALW,OAAO,uBAAP,OAAO,QAKlB"}
1
+ {"version":3,"file":"local-dev.types.js","sourceRoot":"","sources":["../../../../internal-common/src/local-dev.types.ts"],"names":[],"mappings":";;;AA8DA,IAAY,OAMX;AAND,WAAY,OAAO;IACjB,sBAAW,CAAA;IACX,0BAAe,CAAA;IACf,kCAAuB,CAAA;IACvB,oBAAS,CAAA;IACT,sBAAW,CAAA;AACb,CAAC,EANW,OAAO,uBAAP,OAAO,QAMlB"}
@@ -8,6 +8,15 @@ export declare class ApiCallContext {
8
8
  readonly body: Record<string, any>;
9
9
  readonly queryParams: Record<string, string | number | boolean>;
10
10
  readonly pathParams: Record<string, string>;
11
- readonly serverUrlOverride: string | undefined;
11
+ readonly options: ApiOptions;
12
12
  constructor(prototype: ApiCallContext);
13
13
  }
14
+ export interface ApiOptions {
15
+ nativeResponse?: boolean;
16
+ originOverride?: string;
17
+ }
18
+ export interface NativeApiCallResponse<T = unknown> {
19
+ body: T;
20
+ headers: ApiHeaders;
21
+ status: number;
22
+ }
@@ -10,7 +10,7 @@ class ApiCallContext {
10
10
  this.body = prototype.body;
11
11
  this.queryParams = prototype.queryParams;
12
12
  this.pathParams = prototype.pathParams;
13
- this.serverUrlOverride = prototype.serverUrlOverride;
13
+ this.options = prototype.options;
14
14
  }
15
15
  }
16
16
  exports.ApiCallContext = ApiCallContext;
@@ -1 +1 @@
1
- {"version":3,"file":"api-call.public-context.js","sourceRoot":"","sources":["../../../../../internal-common/src/public-types/api-call.public-context.ts"],"names":[],"mappings":";;;AAMA,MAAa,cAAc;IAWzB,YAAY,SAAyB;QACnC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;QACvC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;QACvC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,iBAAiB,CAAC;IACvD,CAAC;CACF;AArBD,wCAqBC"}
1
+ {"version":3,"file":"api-call.public-context.js","sourceRoot":"","sources":["../../../../../internal-common/src/public-types/api-call.public-context.ts"],"names":[],"mappings":";;;AAMA,MAAa,cAAc;IAWzB,YAAY,SAAyB;QACnC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;QACvC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IACnC,CAAC;CACF;AArBD,wCAqBC"}
@@ -29,6 +29,27 @@ export interface TriggerRequest<T extends DocumentData = any> {
29
29
  docAfter?: T;
30
30
  }
31
31
  export type SchedulerAction = () => void | Promise<void>;
32
+ export type LimitedAction = () => any | Promise<any>;
33
+ export type LimiterScope = 'ip' | 'user' | 'global';
34
+ export type QuotaRenewPeriod = 'hourly' | 'daily' | 'weekly' | 'monthly' | 'quarterly' | 'annually';
35
+ export interface RateLimitOptions {
36
+ value: number;
37
+ scope?: LimiterScope;
38
+ }
39
+ export interface QuotaLimitOptions {
40
+ value: number;
41
+ scope?: LimiterScope;
42
+ renewPeriod?: QuotaRenewPeriod;
43
+ }
44
+ export interface LimiterOptions {
45
+ rateLimit?: RateLimitOptions[];
46
+ quotaLimit?: QuotaLimitOptions[];
47
+ }
48
+ export type LimiterConfig = {
49
+ rateLimit?: number | RateLimitOptions | Array<RateLimitOptions>;
50
+ quotaLimit?: number | QuotaLimitOptions | Array<QuotaLimitOptions>;
51
+ };
52
+ export declare function limiterConfigToOptions(config: LimiterConfig): LimiterOptions;
32
53
  export type WebhookAction = ((request: WebhookRequest) => any) | (() => any);
33
54
  export interface WebhookRequest<T = any> {
34
55
  body: T;
@@ -1,3 +1,37 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.limiterConfigToOptions = void 0;
4
+ function limiterConfigToOptions(config) {
5
+ if (config.rateLimit !== undefined) {
6
+ if (typeof config.rateLimit === 'number') {
7
+ config.rateLimit = [{ value: config.rateLimit, scope: 'global' }];
8
+ }
9
+ else if (typeof config.rateLimit === 'object' && !Array.isArray(config.rateLimit)) {
10
+ config.rateLimit = [config.rateLimit];
11
+ }
12
+ config.rateLimit.forEach((options) => {
13
+ if (options.scope === undefined) {
14
+ options.scope = 'global';
15
+ }
16
+ });
17
+ }
18
+ if (config.quotaLimit !== undefined) {
19
+ if (typeof config.quotaLimit === 'number') {
20
+ config.quotaLimit = [{ value: config.quotaLimit, scope: 'global', renewPeriod: 'monthly' }];
21
+ }
22
+ else if (typeof config.quotaLimit === 'object' && !Array.isArray(config.quotaLimit)) {
23
+ config.quotaLimit = [config.quotaLimit];
24
+ }
25
+ config.quotaLimit.forEach((options) => {
26
+ if (options.scope === undefined) {
27
+ options.scope = 'global';
28
+ }
29
+ if (options.renewPeriod === undefined) {
30
+ options.renewPeriod = 'monthly';
31
+ }
32
+ });
33
+ }
34
+ return config;
35
+ }
36
+ exports.limiterConfigToOptions = limiterConfigToOptions;
3
37
  //# sourceMappingURL=bundle-api.public-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bundle-api.public-types.js","sourceRoot":"","sources":["../../../../../internal-common/src/public-types/bundle-api.public-types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"bundle-api.public-types.js","sourceRoot":"","sources":["../../../../../internal-common/src/public-types/bundle-api.public-types.ts"],"names":[],"mappings":";;;AAmIA,SAAgB,sBAAsB,CAAC,MAAqB;IAE1D,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAEnC,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpE,CAAC;aAAM,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YACpF,MAAM,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC;QAGD,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAyB,EAAE,EAAE;YACrD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAChC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACpC,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,CAAC,UAAU,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9F,CAAC;aAAM,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YACtF,MAAM,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAA0B,EAAE,EAAE;YACvD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAChC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;YAC3B,CAAC;YACD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACtC,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAwB,CAAC;AAClC,CAAC;AAnCD,wDAmCC"}
@@ -1,12 +1,12 @@
1
1
  import { ApiEndpointId, HttpMethod } from '../public-types/integrations/api.public-types';
2
2
  import { IntegrationId } from '../public-types/communication.public-types';
3
- import { ApiHeaders } from '../public-types/api-call.public-context';
3
+ import { ApiHeaders, ApiOptions } from '../public-types/api-call.public-context';
4
4
  export type ApiQueryParams = Record<string, string | number | boolean>;
5
5
  export interface CallApiRequest {
6
6
  integrationId: IntegrationId;
7
7
  endpointId: ApiEndpointId;
8
- serverUrlOverride?: string;
9
8
  request: Record<string, any>;
9
+ options: ApiOptions;
10
10
  }
11
11
  export interface ExtractedApiParams {
12
12
  headers: ApiHeaders;
@@ -18,5 +18,5 @@ export interface SecureApiRequest extends ExtractedApiParams {
18
18
  endpointId: ApiEndpointId;
19
19
  url: string;
20
20
  method: HttpMethod;
21
- serverUrlOverride: string | undefined;
21
+ options: ApiOptions;
22
22
  }
@@ -5,6 +5,7 @@ import { AiChatbotActionType, AiFunctionParamType, DatabaseActionType, FunctionN
5
5
  import { IntegrationId } from '../public-types/communication.public-types';
6
6
  import { CollectionName } from '../public-types/document.public-types';
7
7
  import { SchedulerConfig, TriggerConfig, WebhookConfig } from './application.types';
8
+ import { LimiterOptions } from '../public-types/bundle-api.public-types';
8
9
  export type TopicName = string;
9
10
  export type ServiceName = string;
10
11
  export type ServiceFunctionName = `${ServiceName}:${FunctionName}`;
@@ -32,6 +33,7 @@ export interface ApplicationBundleData {
32
33
  aiFunctions?: Record<FunctionName, AiFunctionMetadata>;
33
34
  openApiControllers?: Array<OpenApiController>;
34
35
  queues?: Record<IntegrationId, QueueMetadata>;
36
+ limits?: Record<ServiceFunctionName, LimiterOptions>;
35
37
  }
36
38
  export interface LocalBackendData {
37
39
  applicationBundleData: ApplicationBundleData;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseQuerySubscriptionId = exports.getQuerySubscriptionId = exports.compareOperator = exports.QueryMappingManager = exports.encodeCondition = void 0;
4
4
  const lodash_1 = require("lodash");
5
5
  const serialization_1 = require("../utils/serialization");
6
+ const object_1 = require("../utils/object");
6
7
  function encodeCondition(condition) {
7
8
  return (0, serialization_1.normalizeJsonAsString)(condition);
8
9
  }
@@ -21,30 +22,30 @@ function compareOperator(conditionValue, valueInDocument, operator) {
21
22
  }
22
23
  switch (operator) {
23
24
  case '<':
24
- if (lodash_1.default.isNil(conditionValue))
25
+ if ((0, object_1.isNil)(conditionValue))
25
26
  return false;
26
- if (lodash_1.default.isNil(valueInDocument))
27
+ if ((0, object_1.isNil)(valueInDocument))
27
28
  return true;
28
29
  return valueInDocument < conditionValue;
29
30
  case '<=':
30
- if (lodash_1.default.isNil(valueInDocument)) {
31
+ if ((0, object_1.isNil)(valueInDocument)) {
31
32
  return true;
32
33
  }
33
- if (lodash_1.default.isNil(conditionValue)) {
34
+ if ((0, object_1.isNil)(conditionValue)) {
34
35
  return false;
35
36
  }
36
37
  return valueInDocument <= conditionValue;
37
38
  case '>':
38
- if (lodash_1.default.isNil(valueInDocument))
39
+ if ((0, object_1.isNil)(valueInDocument))
39
40
  return false;
40
- if (lodash_1.default.isNil(conditionValue))
41
+ if ((0, object_1.isNil)(conditionValue))
41
42
  return true;
42
43
  return valueInDocument > conditionValue;
43
44
  case '>=':
44
- if (lodash_1.default.isNil(conditionValue)) {
45
+ if ((0, object_1.isNil)(conditionValue)) {
45
46
  return true;
46
47
  }
47
- if (lodash_1.default.isNil(valueInDocument)) {
48
+ if ((0, object_1.isNil)(valueInDocument)) {
48
49
  return false;
49
50
  }
50
51
  return valueInDocument >= conditionValue;
@@ -1 +1 @@
1
- {"version":3,"file":"query.types.js","sourceRoot":"","sources":["../../../../../internal-common/src/types/query.types.ts"],"names":[],"mappings":";;;AAAA,mCAAuB;AACvB,0DAA+D;AA4C/D,SAAgB,eAAe,CAAC,SAAyB;IACvD,OAAO,IAAA,qCAAqB,EAAC,SAAS,CAAC,CAAC;AAC1C,CAAC;AAFD,0CAEC;AAYD,MAAsB,mBAAmB;CAMxC;AAND,kDAMC;AAGD,SAAgB,eAAe,CAC7B,cAAkC,EAClC,eAAmC,EACnC,QAAkB;IAElB,cAAc,GAAG,cAAc,YAAY,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,IAAI,CAAC;IACpG,eAAe,GAAG,eAAe,YAAY,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,IAAI,CAAC;IAExG,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,gBAAC,CAAC,OAAO,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,CAAC,gBAAC,CAAC,OAAO,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACrD,CAAC;IAGD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,GAAG;YACN,IAAI,gBAAC,CAAC,KAAK,CAAC,cAAc,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC1C,IAAI,gBAAC,CAAC,KAAK,CAAC,eAAe,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC1C,OAAO,eAAe,GAAG,cAAc,CAAC;QAC1C,KAAK,IAAI;YACP,IAAI,gBAAC,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,gBAAC,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC5B,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,eAAe,IAAI,cAAc,CAAC;QAC3C,KAAK,GAAG;YACN,IAAI,gBAAC,CAAC,KAAK,CAAC,eAAe,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC3C,IAAI,gBAAC,CAAC,KAAK,CAAC,cAAc,CAAC;gBAAE,OAAO,IAAI,CAAC;YACzC,OAAO,eAAe,GAAG,cAAc,CAAC;QAC1C,KAAK,IAAI;YACP,IAAI,gBAAC,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,gBAAC,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC7B,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,eAAe,IAAI,cAAc,CAAC;QAC3C,KAAK,MAAM;YACT,OAAO,CACL,OAAO,eAAe,KAAK,QAAQ;gBACnC,OAAO,cAAc,KAAK,QAAQ;gBAClC,aAAa,CAAC,eAAe,EAAE,cAAc,EAAE,KAAK,CAAC,CACtD,CAAC;QACJ,KAAK,UAAU;YACb,OAAO,CAAC,CACN,OAAO,eAAe,KAAK,QAAQ;gBACnC,OAAO,cAAc,KAAK,QAAQ;gBAClC,aAAa,CAAC,eAAe,EAAE,cAAc,EAAE,KAAK,CAAC,CACtD,CAAC;QACJ,KAAK,SAAS;YACZ,OAAO,CACL,OAAO,eAAe,KAAK,QAAQ;gBACnC,OAAO,cAAc,KAAK,QAAQ;gBAClC,aAAa,CAAC,eAAe,EAAE,cAAc,EAAE,IAAI,CAAC,CACrD,CAAC;QACJ,KAAK,aAAa;YAChB,OAAO,CAAC,CACN,OAAO,eAAe,KAAK,QAAQ;gBACnC,OAAO,cAAc,KAAK,QAAQ;gBAClC,aAAa,CAAC,eAAe,EAAE,cAAc,EAAE,IAAI,CAAC,CACrD,CAAC;QACJ;YACE,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AApED,0CAoEC;AAGD,SAAS,aAAa,CAAC,GAAW,EAAE,OAAe,EAAE,aAAsB;IACzE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QACxB,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;IAIzE,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAG/D,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAMD,SAAgB,sBAAsB,CAAC,QAAgB,EAAE,eAAuB;IAC9E,OAAO,GAAG,QAAQ,IAAI,eAAe,EAAE,CAAC;AAC1C,CAAC;AAFD,wDAEC;AAGD,SAAgB,wBAAwB,CAAC,mBAAwC;IAI/E,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnD,OAAO;QACL,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;QACxB,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC;KAChC,CAAC;AACJ,CAAC;AATD,4DASC"}
1
+ {"version":3,"file":"query.types.js","sourceRoot":"","sources":["../../../../../internal-common/src/types/query.types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
+ /// <reference types="node" />
1
2
  import { Auth, RunContext } from '../public-types/context.public-types';
2
3
  import { SecretKey } from '../public-types/secret.public-types';
3
- import { EnvironmentId, SquidDeveloperId, SquidDocId } from '../public-types/communication.public-types';
4
+ import { AppId, EnvironmentId, SquidDeveloperId, SquidDocId } from '../public-types/communication.public-types';
5
+ import { AsyncLocalStorage } from 'async_hooks';
4
6
  export interface SecureNamedQueryRequest {
5
7
  params: Record<string, any>;
6
8
  }
@@ -11,12 +13,17 @@ export type SecurityResponse = {
11
13
  } | {
12
14
  rulesPassed: false;
13
15
  };
14
- export interface ServiceConfig {
15
- auth: Auth | undefined;
16
- backendApiKey: string;
16
+ export interface ServiceGlobalConfig {
17
17
  codeDir: string;
18
- context: RunContext;
19
18
  environmentId?: EnvironmentId;
20
- secrets: Record<SecretKey, any>;
19
+ appId: AppId;
21
20
  squidDeveloperId?: SquidDeveloperId;
21
+ backendApiKey: string;
22
+ secrets: Record<SecretKey, any>;
23
+ requestLocalStorage: AsyncLocalStorage<ServiceRequestConfig>;
24
+ }
25
+ export interface ServiceRequestConfig {
26
+ auth: Auth | undefined;
27
+ context: RunContext;
22
28
  }
29
+ export type ServiceConfig = ServiceGlobalConfig & ServiceRequestConfig;
@@ -0,0 +1,6 @@
1
+ export declare function getInPath(obj: Readonly<any> | undefined, path: string, delimiter?: string): any;
2
+ export declare function setInPath(obj: object, path: string, value: unknown, delimiter?: string): void;
3
+ export declare function deleteInPath(obj: object, path: string, delimiter?: string): void;
4
+ export declare function replaceKeyInMap<K, T>(map: Map<K, T | undefined>, a: K, b: K): void;
5
+ export declare function replaceKeyInRecord<K extends keyof any, T>(record: Record<K, T>, a: K, b: K): void;
6
+ export declare function isNil(obj: unknown): obj is null | undefined;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isNil = exports.replaceKeyInRecord = exports.replaceKeyInMap = exports.deleteInPath = exports.setInPath = exports.getInPath = void 0;
4
+ const _ = require("lodash");
5
+ const assertic_1 = require("assertic");
6
+ function getInPath(obj, path, delimiter = '.') {
7
+ const splitPath = path.split(delimiter);
8
+ let value = undefined;
9
+ let currentObj = obj;
10
+ while (currentObj && splitPath.length) {
11
+ const key = (0, assertic_1.truthy)(splitPath.shift());
12
+ if (!(currentObj instanceof Object) || !(key in currentObj)) {
13
+ return undefined;
14
+ }
15
+ value = currentObj[key];
16
+ currentObj = value;
17
+ }
18
+ return value;
19
+ }
20
+ exports.getInPath = getInPath;
21
+ function isJsObject(obj) {
22
+ if (typeof obj !== 'object')
23
+ return false;
24
+ return Reflect.getPrototypeOf(obj) === Object.prototype;
25
+ }
26
+ function setInPath(obj, path, value, delimiter = '.') {
27
+ var _a;
28
+ const splitPath = path.split(delimiter);
29
+ let currentObj = obj;
30
+ while (splitPath.length) {
31
+ const key = (0, assertic_1.truthy)(splitPath.shift());
32
+ if (splitPath.length) {
33
+ const newCurrentObj = isJsObject(currentObj[key]) ? (_a = _.clone(currentObj[key])) !== null && _a !== void 0 ? _a : {} : {};
34
+ currentObj[key] = newCurrentObj;
35
+ currentObj = newCurrentObj;
36
+ }
37
+ else {
38
+ currentObj[key] = value;
39
+ }
40
+ }
41
+ }
42
+ exports.setInPath = setInPath;
43
+ function deleteInPath(obj, path, delimiter = '.') {
44
+ var _a;
45
+ const splitPath = path.split(delimiter);
46
+ let currentObj = obj;
47
+ while (splitPath.length) {
48
+ const key = (0, assertic_1.truthy)(splitPath.shift());
49
+ if (splitPath.length) {
50
+ const newCurrentObj = isJsObject(currentObj[key]) ? (_a = _.clone(currentObj[key])) !== null && _a !== void 0 ? _a : {} : {};
51
+ currentObj[key] = newCurrentObj;
52
+ currentObj = newCurrentObj;
53
+ }
54
+ else {
55
+ delete currentObj[key];
56
+ }
57
+ }
58
+ }
59
+ exports.deleteInPath = deleteInPath;
60
+ function replaceKeyInMap(map, a, b) {
61
+ if (map.has(a)) {
62
+ const value = map.get(a);
63
+ map.delete(a);
64
+ map.set(b, value);
65
+ }
66
+ }
67
+ exports.replaceKeyInMap = replaceKeyInMap;
68
+ function replaceKeyInRecord(record, a, b) {
69
+ const value = record[a];
70
+ if (typeof value !== 'undefined') {
71
+ record[b] = value;
72
+ delete record[a];
73
+ }
74
+ }
75
+ exports.replaceKeyInRecord = replaceKeyInRecord;
76
+ function isNil(obj) {
77
+ return obj === undefined || obj === null;
78
+ }
79
+ exports.isNil = isNil;
80
+ //# sourceMappingURL=object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../../../internal-common/src/utils/object.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /// <reference types="node" />
2
+ import { ServiceConfig, ServiceGlobalConfig, ServiceRequestConfig } from '../types/security.types';
3
+ import { AsyncLocalStorage } from 'node:async_hooks';
4
+ export interface SquidServiceLike extends Record<string, Function | object> {
5
+ new <T extends SquidServiceLike>(config: ServiceGlobalConfig): T;
6
+ config: ServiceGlobalConfig;
7
+ }
8
+ export declare function getOrCreateSquidService<T extends SquidServiceLike>(serviceName: string, config: ServiceConfig, serviceClass: T): T;
9
+ export declare function getSquidServiceRequestConfig(requestLocalStorage: AsyncLocalStorage<ServiceRequestConfig>): ServiceRequestConfig;
10
+ export interface SquidServiceMetadata {
11
+ version: number;
12
+ }
13
+ export declare function getSquidServiceMetadata(service: SquidServiceLike): SquidServiceMetadata;
14
+ export declare function setSquidServiceMetadata(service: SquidServiceLike): void;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setSquidServiceMetadata = exports.getSquidServiceMetadata = exports.getSquidServiceRequestConfig = exports.getOrCreateSquidService = void 0;
4
+ const assertic_1 = require("assertic");
5
+ const squidServiceSingletonMap = new Map();
6
+ const CURRENT_SQUID_SERVICE_VERSION = 2;
7
+ const SQUID_SERVICE_METADATA_KEY = '__squidMetadata';
8
+ function getOrCreateSquidService(serviceName, config, serviceClass) {
9
+ let service = squidServiceSingletonMap.get(serviceName);
10
+ if (!service || getSquidServiceMetadata(service).version <= 1) {
11
+ service = config.requestLocalStorage.run(config, () => new serviceClass(config));
12
+ if (getSquidServiceMetadata(service).version > 1) {
13
+ squidServiceSingletonMap.set(serviceName, service);
14
+ }
15
+ }
16
+ else {
17
+ (0, assertic_1.assertTruthy)(service.config.backendApiKey === config.backendApiKey, 'backendApiKey does not match.');
18
+ (0, assertic_1.assertTruthy)(service.config.codeDir === config.codeDir, 'codeDir does not match');
19
+ (0, assertic_1.assertTruthy)(service.config.environmentId === config.environmentId, 'environmentId does not match');
20
+ (0, assertic_1.assertTruthy)(service.config.squidDeveloperId === config.squidDeveloperId, 'squidDeveloperId does not match');
21
+ (0, assertic_1.assertTruthy)(service.config.appId === config.appId, 'appId does not match');
22
+ service.config.secrets = config.secrets;
23
+ }
24
+ return service;
25
+ }
26
+ exports.getOrCreateSquidService = getOrCreateSquidService;
27
+ function getSquidServiceRequestConfig(requestLocalStorage) {
28
+ return (0, assertic_1.truthy)(requestLocalStorage.getStore(), `Failed to access request data outside of the request's scope`);
29
+ }
30
+ exports.getSquidServiceRequestConfig = getSquidServiceRequestConfig;
31
+ function getSquidServiceMetadata(service) {
32
+ const metadata = service[SQUID_SERVICE_METADATA_KEY];
33
+ return metadata || { version: 0 };
34
+ }
35
+ exports.getSquidServiceMetadata = getSquidServiceMetadata;
36
+ function setSquidServiceMetadata(service) {
37
+ service[SQUID_SERVICE_METADATA_KEY] = { version: CURRENT_SQUID_SERVICE_VERSION };
38
+ }
39
+ exports.setSquidServiceMetadata = setSquidServiceMetadata;
40
+ //# sourceMappingURL=squid-service-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"squid-service-utils.js","sourceRoot":"","sources":["../../../../../internal-common/src/utils/squid-service-utils.ts"],"names":[],"mappings":";;;AAIA,uCAAgD;AAEhD,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAA4B,CAAC;AACrE,MAAM,6BAA6B,GAAG,CAAC,CAAC;AACxC,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;AAerD,SAAgB,uBAAuB,CACrC,WAAmB,EACnB,MAAqB,EACrB,YAAe;IAEf,IAAI,OAAO,GAAG,wBAAwB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACxD,IAAI,CAAC,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;QAC9D,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QACjF,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YACjD,wBAAwB,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAA,uBAAY,EAAC,OAAO,CAAC,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa,EAAE,+BAA+B,CAAC,CAAC;QACrG,IAAA,uBAAY,EAAC,OAAO,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;QAClF,IAAA,uBAAY,EAAC,OAAO,CAAC,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;QACpG,IAAA,uBAAY,EAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,KAAK,MAAM,CAAC,gBAAgB,EAAE,iCAAiC,CAAC,CAAC;QAC7G,IAAA,uBAAY,EAAC,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;QAC5E,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC1C,CAAC;IACD,OAAO,OAAY,CAAC;AACtB,CAAC;AApBD,0DAoBC;AAGD,SAAgB,4BAA4B,CAC1C,mBAA4D;IAE5D,OAAO,IAAA,iBAAM,EAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,8DAA8D,CAAC,CAAC;AAChH,CAAC;AAJD,oEAIC;AAcD,SAAgB,uBAAuB,CAAC,OAAyB;IAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,0BAA0B,CAAqC,CAAC;IACzF,OAAO,QAAQ,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACpC,CAAC;AAHD,0DAGC;AAED,SAAgB,uBAAuB,CAAC,OAAyB;IAC/D,OAAO,CAAC,0BAA0B,CAAC,GAAG,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;AACnF,CAAC;AAFD,0DAEC"}
@@ -18,6 +18,9 @@ const promise_pool_1 = require("@supercharge/promise-pool");
18
18
  const assertic_1 = require("assertic");
19
19
  const serialization_1 = require("../../internal-common/src/utils/serialization");
20
20
  const backend_transforms_1 = require("../../internal-common/src/utils/backend-transforms");
21
+ const squid_service_utils_1 = require("../../internal-common/src/utils/squid-service-utils");
22
+ const async_hooks_1 = require("async_hooks");
23
+ const requestLocalStorage = new async_hooks_1.AsyncLocalStorage();
21
24
  let LocalBackendService = class LocalBackendService {
22
25
  constructor(backendService) {
23
26
  this.backendService = backendService;
@@ -33,21 +36,25 @@ let LocalBackendService = class LocalBackendService {
33
36
  const [serviceName, fnName] = functionName.split(':');
34
37
  let fn;
35
38
  let service;
39
+ let serviceConfig;
36
40
  if (serviceName === 'default') {
37
41
  fn = this.backendService[serviceName][fnName];
38
42
  (0, assertic_1.assertTruthy)(typeof fn === 'function', `${serviceName}.${fnName} is not a function`);
39
43
  }
40
44
  else {
41
45
  const Service = this.backendService[serviceName];
46
+ (0, assertic_1.assertTruthy)(Service, () => `Service not found: ${serviceName}`);
42
47
  (0, assertic_1.assertTruthy)(this.secrets, 'Secrets must be defined in executeActionRequest');
43
- const config = {
48
+ serviceConfig = {
44
49
  secrets: this.secrets.custom,
45
50
  context: payload.context,
46
51
  auth: payload.auth,
47
52
  backendApiKey: payload.backendApiKey,
53
+ appId: payload.context.appId,
48
54
  codeDir: '',
55
+ requestLocalStorage,
49
56
  };
50
- service = new Service(config);
57
+ service = (0, squid_service_utils_1.getOrCreateSquidService)(serviceName, serviceConfig, Service);
51
58
  const squidServiceMethod = service[fnName];
52
59
  (0, assertic_1.assertTruthy)(typeof squidServiceMethod === 'function', `${serviceName}.${fnName} is not a function`);
53
60
  fn = squidServiceMethod.bind(service);
@@ -73,7 +80,9 @@ let LocalBackendService = class LocalBackendService {
73
80
  }
74
81
  }
75
82
  const transformedParams = (0, backend_transforms_1.transformParams)(params, executeFunctionAnnotationType);
76
- const functionResponse = await fn(...transformedParams);
83
+ const functionResponse = serviceConfig
84
+ ? await serviceConfig.requestLocalStorage.run(serviceConfig, () => fn(...transformedParams))
85
+ : await fn(...transformedParams);
77
86
  const transformedResponse = (0, backend_transforms_1.transformResponse)(functionResponse, executeFunctionAnnotationType);
78
87
  return { ok: true, functionResponse: transformedResponse };
79
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"local-backend.service.js","sourceRoot":"","sources":["../../../src/local-backend.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-backend.service.js","sourceRoot":"","sources":["../../../src/local-backend.service.ts"],"names":[],"mappings":"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"}