donobu 2.46.3 → 2.46.4
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.
- package/dist/assets/generated/version +1 -1
- package/dist/envVars.d.ts +140 -57
- package/dist/envVars.d.ts.map +1 -1
- package/dist/envVars.js +42 -55
- package/dist/envVars.js.map +1 -1
- package/dist/esm/assets/generated/version +1 -1
- package/dist/esm/envVars.d.ts +140 -57
- package/dist/esm/envVars.d.ts.map +1 -1
- package/dist/esm/envVars.js +42 -55
- package/dist/esm/envVars.js.map +1 -1
- package/dist/esm/lib/fixtures/gptClients.d.ts +33 -5
- package/dist/esm/lib/fixtures/gptClients.d.ts.map +1 -1
- package/dist/esm/lib/fixtures/gptClients.js +38 -35
- package/dist/esm/lib/fixtures/gptClients.js.map +1 -1
- package/dist/esm/lib/testExtension.d.ts.map +1 -1
- package/dist/esm/lib/testExtension.js +7 -7
- package/dist/esm/lib/testExtension.js.map +1 -1
- package/dist/esm/lib/utils/donobuTestStack.d.ts +18 -1
- package/dist/esm/lib/utils/donobuTestStack.d.ts.map +1 -1
- package/dist/esm/lib/utils/donobuTestStack.js +3 -3
- package/dist/esm/lib/utils/donobuTestStack.js.map +1 -1
- package/dist/esm/main.d.ts.map +1 -1
- package/dist/esm/main.js +1 -9
- package/dist/esm/main.js.map +1 -1
- package/dist/esm/managers/AdminApiController.d.ts +3 -1
- package/dist/esm/managers/AdminApiController.d.ts.map +1 -1
- package/dist/esm/managers/AdminApiController.js +8 -13
- package/dist/esm/managers/AdminApiController.js.map +1 -1
- package/dist/esm/managers/AgentsManager.d.ts +3 -1
- package/dist/esm/managers/AgentsManager.d.ts.map +1 -1
- package/dist/esm/managers/AgentsManager.js +4 -5
- package/dist/esm/managers/AgentsManager.js.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.d.ts +4 -1
- package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.js +24 -25
- package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/esm/managers/DonobuStack.d.ts +18 -1
- package/dist/esm/managers/DonobuStack.d.ts.map +1 -1
- package/dist/esm/managers/DonobuStack.js +7 -6
- package/dist/esm/managers/DonobuStack.js.map +1 -1
- package/dist/esm/managers/GptConfigsManager.d.ts +3 -1
- package/dist/esm/managers/GptConfigsManager.d.ts.map +1 -1
- package/dist/esm/managers/GptConfigsManager.js +6 -7
- package/dist/esm/managers/GptConfigsManager.js.map +1 -1
- package/dist/esm/managers/InteractionVisualizer.d.ts.map +1 -1
- package/dist/esm/managers/InteractionVisualizer.js +25 -3
- package/dist/esm/managers/InteractionVisualizer.js.map +1 -1
- package/dist/esm/models/DonobuDeploymentEnvironment.d.ts +7 -5
- package/dist/esm/models/DonobuDeploymentEnvironment.d.ts.map +1 -1
- package/dist/esm/models/DonobuDeploymentEnvironment.js +7 -7
- package/dist/esm/models/DonobuDeploymentEnvironment.js.map +1 -1
- package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.d.ts +5 -3
- package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.d.ts.map +1 -1
- package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.js +11 -15
- package/dist/esm/persistence/env/EnvPersistenceFactoryImpl.js.map +1 -1
- package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.d.ts +6 -4
- package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.d.ts.map +1 -1
- package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.js +14 -19
- package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.js.map +1 -1
- package/dist/esm/utils/BrowserUtils.d.ts +6 -1
- package/dist/esm/utils/BrowserUtils.d.ts.map +1 -1
- package/dist/esm/utils/BrowserUtils.js +19 -19
- package/dist/esm/utils/BrowserUtils.js.map +1 -1
- package/dist/esm/utils/MiscUtils.d.ts +5 -1
- package/dist/esm/utils/MiscUtils.d.ts.map +1 -1
- package/dist/esm/utils/MiscUtils.js +4 -4
- package/dist/esm/utils/MiscUtils.js.map +1 -1
- package/dist/lib/fixtures/gptClients.d.ts +33 -5
- package/dist/lib/fixtures/gptClients.d.ts.map +1 -1
- package/dist/lib/fixtures/gptClients.js +38 -35
- package/dist/lib/fixtures/gptClients.js.map +1 -1
- package/dist/lib/testExtension.d.ts.map +1 -1
- package/dist/lib/testExtension.js +7 -7
- package/dist/lib/testExtension.js.map +1 -1
- package/dist/lib/utils/donobuTestStack.d.ts +18 -1
- package/dist/lib/utils/donobuTestStack.d.ts.map +1 -1
- package/dist/lib/utils/donobuTestStack.js +3 -3
- package/dist/lib/utils/donobuTestStack.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +1 -9
- package/dist/main.js.map +1 -1
- package/dist/managers/AdminApiController.d.ts +3 -1
- package/dist/managers/AdminApiController.d.ts.map +1 -1
- package/dist/managers/AdminApiController.js +8 -13
- package/dist/managers/AdminApiController.js.map +1 -1
- package/dist/managers/AgentsManager.d.ts +3 -1
- package/dist/managers/AgentsManager.d.ts.map +1 -1
- package/dist/managers/AgentsManager.js +4 -5
- package/dist/managers/AgentsManager.js.map +1 -1
- package/dist/managers/DonobuFlowsManager.d.ts +4 -1
- package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/managers/DonobuFlowsManager.js +24 -25
- package/dist/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/managers/DonobuStack.d.ts +18 -1
- package/dist/managers/DonobuStack.d.ts.map +1 -1
- package/dist/managers/DonobuStack.js +7 -6
- package/dist/managers/DonobuStack.js.map +1 -1
- package/dist/managers/GptConfigsManager.d.ts +3 -1
- package/dist/managers/GptConfigsManager.d.ts.map +1 -1
- package/dist/managers/GptConfigsManager.js +6 -7
- package/dist/managers/GptConfigsManager.js.map +1 -1
- package/dist/managers/InteractionVisualizer.d.ts.map +1 -1
- package/dist/managers/InteractionVisualizer.js +25 -3
- package/dist/managers/InteractionVisualizer.js.map +1 -1
- package/dist/models/DonobuDeploymentEnvironment.d.ts +7 -5
- package/dist/models/DonobuDeploymentEnvironment.d.ts.map +1 -1
- package/dist/models/DonobuDeploymentEnvironment.js +7 -7
- package/dist/models/DonobuDeploymentEnvironment.js.map +1 -1
- package/dist/persistence/env/EnvPersistenceFactoryImpl.d.ts +5 -3
- package/dist/persistence/env/EnvPersistenceFactoryImpl.d.ts.map +1 -1
- package/dist/persistence/env/EnvPersistenceFactoryImpl.js +11 -15
- package/dist/persistence/env/EnvPersistenceFactoryImpl.js.map +1 -1
- package/dist/persistence/flows/FlowsPersistenceFactoryImpl.d.ts +6 -4
- package/dist/persistence/flows/FlowsPersistenceFactoryImpl.d.ts.map +1 -1
- package/dist/persistence/flows/FlowsPersistenceFactoryImpl.js +14 -19
- package/dist/persistence/flows/FlowsPersistenceFactoryImpl.js.map +1 -1
- package/dist/utils/BrowserUtils.d.ts +6 -1
- package/dist/utils/BrowserUtils.d.ts.map +1 -1
- package/dist/utils/BrowserUtils.js +19 -19
- package/dist/utils/BrowserUtils.js.map +1 -1
- package/dist/utils/MiscUtils.d.ts +5 -1
- package/dist/utils/MiscUtils.d.ts.map +1 -1
- package/dist/utils/MiscUtils.js +4 -4
- package/dist/utils/MiscUtils.js.map +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InteractionVisualizer.js","sourceRoot":"","sources":["../../src/managers/InteractionVisualizer.ts"],"names":[],"mappings":";;;AACA,4CAA4C;
|
|
1
|
+
{"version":3,"file":"InteractionVisualizer.js","sourceRoot":"","sources":["../../src/managers/InteractionVisualizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { z } from 'zod/v4';
|
|
2
|
+
export declare const DonobuDeploymentEnvironmentSchema: z.ZodEnum<{
|
|
3
|
+
LOCAL: "LOCAL";
|
|
4
|
+
DONOBU_HOSTED_MULTI_TENANT: "DONOBU_HOSTED_MULTI_TENANT";
|
|
5
|
+
DONOBU_HOSTED_SINGLE_TENANT: "DONOBU_HOSTED_SINGLE_TENANT";
|
|
6
|
+
}>;
|
|
7
|
+
export type DonobuDeploymentEnvironment = z.infer<typeof DonobuDeploymentEnvironmentSchema>;
|
|
6
8
|
//# sourceMappingURL=DonobuDeploymentEnvironment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DonobuDeploymentEnvironment.d.ts","sourceRoot":"","sources":["../../src/models/DonobuDeploymentEnvironment.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"DonobuDeploymentEnvironment.d.ts","sourceRoot":"","sources":["../../src/models/DonobuDeploymentEnvironment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,iCAAiC;;;;EAI5C,CAAC;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAC/C,OAAO,iCAAiC,CACzC,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
exports.DonobuDeploymentEnvironmentSchema = void 0;
|
|
4
|
+
const v4_1 = require("zod/v4");
|
|
5
|
+
exports.DonobuDeploymentEnvironmentSchema = v4_1.z.enum([
|
|
6
|
+
'LOCAL',
|
|
7
|
+
'DONOBU_HOSTED_MULTI_TENANT',
|
|
8
|
+
'DONOBU_HOSTED_SINGLE_TENANT',
|
|
9
|
+
]);
|
|
10
10
|
//# sourceMappingURL=DonobuDeploymentEnvironment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DonobuDeploymentEnvironment.js","sourceRoot":"","sources":["../../src/models/DonobuDeploymentEnvironment.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"DonobuDeploymentEnvironment.js","sourceRoot":"","sources":["../../src/models/DonobuDeploymentEnvironment.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAEd,QAAA,iCAAiC,GAAG,MAAC,CAAC,IAAI,CAAC;IACtD,OAAO;IACP,4BAA4B;IAC5B,6BAA6B;CAC9B,CAAC,CAAC"}
|
|
@@ -2,6 +2,8 @@ import { EnvPersistence } from './EnvPersistence';
|
|
|
2
2
|
import { RequestContextHolder } from '../../managers/RequestContextHolder';
|
|
3
3
|
import { DonobuDeploymentEnvironment } from '../../models/DonobuDeploymentEnvironment';
|
|
4
4
|
import { EnvPersistenceFactory } from './EnvPersistenceFactory';
|
|
5
|
+
import { env } from '../../envVars';
|
|
6
|
+
import { EnvPick } from 'env-struct';
|
|
5
7
|
import { EnvPersistenceVolatile } from './EnvPersistenceVolatile';
|
|
6
8
|
/**
|
|
7
9
|
* A factory class for creating new EnvPersistence instances. The type of persistence
|
|
@@ -21,7 +23,7 @@ export declare class EnvPersistenceFactoryImpl implements EnvPersistenceFactory
|
|
|
21
23
|
* Creates an instance.
|
|
22
24
|
*
|
|
23
25
|
* @param deploymentEnvironment The deployment environment for this application. If this is set to
|
|
24
|
-
* a value of
|
|
26
|
+
* a value of DONOBU_HOSTED_MULTI_TENANT, then the
|
|
25
27
|
* supabaseJwtSecretKey must also be specified.
|
|
26
28
|
* @param awsS3Bucket The name of the AWS S3 bucket to use for persistence.
|
|
27
29
|
* @param awsS3Region The region of the AWS S3 bucket.
|
|
@@ -32,14 +34,14 @@ export declare class EnvPersistenceFactoryImpl implements EnvPersistenceFactory
|
|
|
32
34
|
* the Google Cloud CLI before running this application.
|
|
33
35
|
* @param supabaseJwtSecretKey The Supabase JWT secret key used to generate new JWTs for the
|
|
34
36
|
* purposes of authentication. This key is extremely sensitive! This parameter MUST be
|
|
35
|
-
* specified if deploymentEnvironment is set to
|
|
37
|
+
* specified if deploymentEnvironment is set to DONOBU_HOSTED_MULTI_TENANT.
|
|
36
38
|
* @param requestContextHolder The object used to get the current API request context.
|
|
37
39
|
*/
|
|
38
40
|
constructor(deploymentEnvironment: DonobuDeploymentEnvironment, awsS3Bucket: string | null, awsS3Region: string | null, googleCloudStorageBucket: string | null, supabaseJwtSecretKey: string | null, requestContextHolder: RequestContextHolder, envPersistenceVolatile: EnvPersistenceVolatile | null);
|
|
39
41
|
/**
|
|
40
42
|
* Creates an instance.
|
|
41
43
|
*/
|
|
42
|
-
static fromEnvironment(deploymentEnvironment: DonobuDeploymentEnvironment, requestContextHolder: RequestContextHolder, envPersistenceVolatile: EnvPersistenceVolatile | null): Promise<EnvPersistenceFactoryImpl>;
|
|
44
|
+
static fromEnvironment(deploymentEnvironment: DonobuDeploymentEnvironment, requestContextHolder: RequestContextHolder, envPersistenceVolatile: EnvPersistenceVolatile | null, environ: EnvPick<typeof env, 'AWS_S3_BUCKET' | 'AWS_S3_REGION' | 'AWS_REGION' | 'GOOGLE_CLOUD_STORAGE_BUCKET' | 'SUPABASE_JWT_SECRET_KEY'>): Promise<EnvPersistenceFactoryImpl>;
|
|
43
45
|
/** Returns a list of all valid persistence layers. Note that the returned list may be empty! */
|
|
44
46
|
createPersistenceLayers(): Promise<EnvPersistence[]>;
|
|
45
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvPersistenceFactoryImpl.d.ts","sourceRoot":"","sources":["../../../src/persistence/env/EnvPersistenceFactoryImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIlD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"EnvPersistenceFactoryImpl.d.ts","sourceRoot":"","sources":["../../../src/persistence/env/EnvPersistenceFactoryImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIlD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;GAKG;AACH,qBAAa,yBAA0B,YAAW,qBAAqB;IAoBnE,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAzBzC;;;;;;;;;;;;;;;;;OAiBG;gBAEgB,qBAAqB,EAAE,2BAA2B,EAClD,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,wBAAwB,EAAE,MAAM,GAAG,IAAI,EACvC,oBAAoB,EAAE,MAAM,GAAG,IAAI,EACnC,oBAAoB,EAAE,oBAAoB,EAC1C,sBAAsB,EAAE,sBAAsB,GAAG,IAAI;IAYxE;;OAEG;WACiB,eAAe,CACjC,qBAAqB,EAAE,2BAA2B,EAClD,oBAAoB,EAAE,oBAAoB,EAC1C,sBAAsB,EAAE,sBAAsB,GAAG,IAAI,EACrD,OAAO,EAAE,OAAO,CACd,OAAO,GAAG,EACR,eAAe,GACf,eAAe,GACf,YAAY,GACZ,6BAA6B,GAC7B,yBAAyB,CAC5B,GACA,OAAO,CAAC,yBAAyB,CAAC;IAgBrC,gGAAgG;IACnF,uBAAuB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;CAuClE"}
|
|
@@ -4,11 +4,9 @@ exports.EnvPersistenceFactoryImpl = void 0;
|
|
|
4
4
|
const EnvPersistenceGoogleCloudStorage_1 = require("./EnvPersistenceGoogleCloudStorage");
|
|
5
5
|
const EnvPersistenceSupabase_1 = require("./EnvPersistenceSupabase");
|
|
6
6
|
const SupabaseClient_1 = require("../../clients/SupabaseClient");
|
|
7
|
-
const DonobuDeploymentEnvironment_1 = require("../../models/DonobuDeploymentEnvironment");
|
|
8
7
|
const EnvPersistenceAwsS3_1 = require("./EnvPersistenceAwsS3");
|
|
9
8
|
const EnvPersistenceSqlite_1 = require("./EnvPersistenceSqlite");
|
|
10
9
|
const DonobuSqliteDb_1 = require("../DonobuSqliteDb");
|
|
11
|
-
const envVars_1 = require("../../envVars");
|
|
12
10
|
/**
|
|
13
11
|
* A factory class for creating new EnvPersistence instances. The type of persistence
|
|
14
12
|
* objects created varies depending on this factory's constructor arguments and the current API
|
|
@@ -20,7 +18,7 @@ class EnvPersistenceFactoryImpl {
|
|
|
20
18
|
* Creates an instance.
|
|
21
19
|
*
|
|
22
20
|
* @param deploymentEnvironment The deployment environment for this application. If this is set to
|
|
23
|
-
* a value of
|
|
21
|
+
* a value of DONOBU_HOSTED_MULTI_TENANT, then the
|
|
24
22
|
* supabaseJwtSecretKey must also be specified.
|
|
25
23
|
* @param awsS3Bucket The name of the AWS S3 bucket to use for persistence.
|
|
26
24
|
* @param awsS3Region The region of the AWS S3 bucket.
|
|
@@ -31,7 +29,7 @@ class EnvPersistenceFactoryImpl {
|
|
|
31
29
|
* the Google Cloud CLI before running this application.
|
|
32
30
|
* @param supabaseJwtSecretKey The Supabase JWT secret key used to generate new JWTs for the
|
|
33
31
|
* purposes of authentication. This key is extremely sensitive! This parameter MUST be
|
|
34
|
-
* specified if deploymentEnvironment is set to
|
|
32
|
+
* specified if deploymentEnvironment is set to DONOBU_HOSTED_MULTI_TENANT.
|
|
35
33
|
* @param requestContextHolder The object used to get the current API request context.
|
|
36
34
|
*/
|
|
37
35
|
constructor(deploymentEnvironment, awsS3Bucket, awsS3Region, googleCloudStorageBucket, supabaseJwtSecretKey, requestContextHolder, envPersistenceVolatile) {
|
|
@@ -42,20 +40,19 @@ class EnvPersistenceFactoryImpl {
|
|
|
42
40
|
this.supabaseJwtSecretKey = supabaseJwtSecretKey;
|
|
43
41
|
this.requestContextHolder = requestContextHolder;
|
|
44
42
|
this.envPersistenceVolatile = envPersistenceVolatile;
|
|
45
|
-
if (deploymentEnvironment ===
|
|
46
|
-
DonobuDeploymentEnvironment_1.DonobuDeploymentEnvironment.DONOBU_HOSTED_MULTI_TENANT &&
|
|
43
|
+
if (deploymentEnvironment === 'DONOBU_HOSTED_MULTI_TENANT' &&
|
|
47
44
|
!supabaseJwtSecretKey) {
|
|
48
|
-
throw new Error(
|
|
45
|
+
throw new Error(`supabaseJwtSecretKey cannot be null if deploymentEnvironment is set to ${deploymentEnvironment}.`);
|
|
49
46
|
}
|
|
50
47
|
}
|
|
51
48
|
/**
|
|
52
49
|
* Creates an instance.
|
|
53
50
|
*/
|
|
54
|
-
static async fromEnvironment(deploymentEnvironment, requestContextHolder, envPersistenceVolatile) {
|
|
55
|
-
const awsS3Bucket =
|
|
56
|
-
const awsS3Region =
|
|
57
|
-
const googleCloudStorageBucket =
|
|
58
|
-
const supabaseJwtSecretKey =
|
|
51
|
+
static async fromEnvironment(deploymentEnvironment, requestContextHolder, envPersistenceVolatile, environ) {
|
|
52
|
+
const awsS3Bucket = environ.data.AWS_S3_BUCKET;
|
|
53
|
+
const awsS3Region = environ.data.AWS_S3_REGION || environ.data.AWS_REGION;
|
|
54
|
+
const googleCloudStorageBucket = environ.data.GOOGLE_CLOUD_STORAGE_BUCKET;
|
|
55
|
+
const supabaseJwtSecretKey = environ.data.SUPABASE_JWT_SECRET_KEY;
|
|
59
56
|
return new EnvPersistenceFactoryImpl(deploymentEnvironment, awsS3Bucket ?? null, awsS3Region ?? null, googleCloudStorageBucket ?? null, supabaseJwtSecretKey ?? null, requestContextHolder, envPersistenceVolatile ?? null);
|
|
60
57
|
}
|
|
61
58
|
/** Returns a list of all valid persistence layers. Note that the returned list may be empty! */
|
|
@@ -68,13 +65,12 @@ class EnvPersistenceFactoryImpl {
|
|
|
68
65
|
if (this.googleCloudStorageBucket) {
|
|
69
66
|
layers.push(await EnvPersistenceGoogleCloudStorage_1.EnvPersistenceGoogleCloudStorage.create(this.googleCloudStorageBucket));
|
|
70
67
|
}
|
|
71
|
-
if (this.deploymentEnvironment ===
|
|
72
|
-
DonobuDeploymentEnvironment_1.DonobuDeploymentEnvironment.DONOBU_HOSTED_MULTI_TENANT &&
|
|
68
|
+
if (this.deploymentEnvironment === 'DONOBU_HOSTED_MULTI_TENANT' &&
|
|
73
69
|
requestContext.accessToken &&
|
|
74
70
|
this.supabaseJwtSecretKey) {
|
|
75
71
|
layers.push(new EnvPersistenceSupabase_1.EnvPersistenceSupabase(SupabaseClient_1.SupabaseClient.createClient(requestContext.accessToken, this.supabaseJwtSecretKey)));
|
|
76
72
|
}
|
|
77
|
-
else if (this.deploymentEnvironment ===
|
|
73
|
+
else if (this.deploymentEnvironment === 'LOCAL') {
|
|
78
74
|
layers.push(await EnvPersistenceSqlite_1.EnvPersistenceSqlite.create((0, DonobuSqliteDb_1.getDonobuSqliteDatabase)()));
|
|
79
75
|
}
|
|
80
76
|
if (this.envPersistenceVolatile) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvPersistenceFactoryImpl.js","sourceRoot":"","sources":["../../../src/persistence/env/EnvPersistenceFactoryImpl.ts"],"names":[],"mappings":";;;AACA,yFAAsF;AACtF,qEAAkE;AAClE,iEAA8D;
|
|
1
|
+
{"version":3,"file":"EnvPersistenceFactoryImpl.js","sourceRoot":"","sources":["../../../src/persistence/env/EnvPersistenceFactoryImpl.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,8 @@ import { FlowsPersistence } from './FlowsPersistence';
|
|
|
2
2
|
import { RequestContextHolder } from '../../managers/RequestContextHolder';
|
|
3
3
|
import { DonobuDeploymentEnvironment } from '../../models/DonobuDeploymentEnvironment';
|
|
4
4
|
import { FlowsPersistenceFactory } from './FlowsPersistenceFactory';
|
|
5
|
+
import { env } from '../../envVars';
|
|
6
|
+
import { EnvPick } from 'env-struct';
|
|
5
7
|
/**
|
|
6
8
|
* A factory class for creating new FlowsPersistence instances. The type of persistence
|
|
7
9
|
* objects created varies depending on this factory's constructor arguments and the current API
|
|
@@ -18,7 +20,7 @@ export declare class FlowsPersistenceFactoryImpl implements FlowsPersistenceFact
|
|
|
18
20
|
* Creates an instance.
|
|
19
21
|
*
|
|
20
22
|
* @param deploymentEnvironment The deployment environment for this application. If this is set to
|
|
21
|
-
* a value of
|
|
23
|
+
* a value of DONOBU_HOSTED_MULTI_TENANT, then the
|
|
22
24
|
* supabaseJwtSecretKey must also be specified.
|
|
23
25
|
* @param awsS3Bucket The name of the AWS S3 bucket to use for persistence.
|
|
24
26
|
* @param awsS3Region The region of the AWS S3 bucket.
|
|
@@ -29,7 +31,7 @@ export declare class FlowsPersistenceFactoryImpl implements FlowsPersistenceFact
|
|
|
29
31
|
* the Google Cloud CLI before running this application.
|
|
30
32
|
* @param supabaseJwtSecretKey The Supabase JWT secret key used to generate new JWTs for the
|
|
31
33
|
* purposes of authentication. This key is extremely sensitive! This parameter MUST be
|
|
32
|
-
* specified if deploymentEnvironment is set to
|
|
34
|
+
* specified if deploymentEnvironment is set to DONOBU_HOSTED_MULTI_TENANT.
|
|
33
35
|
* @param requestContextHolder The object used to get the current API request context.
|
|
34
36
|
*/
|
|
35
37
|
constructor(deploymentEnvironment: DonobuDeploymentEnvironment, awsS3Bucket: string | null, awsS3Region: string | null, googleCloudStorageBucket: string | null, supabaseJwtSecretKey: string | null, requestContextHolder: RequestContextHolder);
|
|
@@ -37,12 +39,12 @@ export declare class FlowsPersistenceFactoryImpl implements FlowsPersistenceFact
|
|
|
37
39
|
* Creates an instance, fetching the values for googleCloudStorageBucket and
|
|
38
40
|
* supabaseJwtSecretKey from the environment variables.
|
|
39
41
|
*/
|
|
40
|
-
static fromEnvironment(deploymentEnvironment: DonobuDeploymentEnvironment, requestContextHolder: RequestContextHolder): Promise<FlowsPersistenceFactoryImpl>;
|
|
42
|
+
static fromEnvironment(deploymentEnvironment: DonobuDeploymentEnvironment, requestContextHolder: RequestContextHolder, environ: EnvPick<typeof env, 'AWS_S3_BUCKET' | 'AWS_S3_REGION' | 'AWS_REGION' | 'GOOGLE_CLOUD_STORAGE_BUCKET' | 'SUPABASE_JWT_SECRET_KEY'>): Promise<FlowsPersistenceFactoryImpl>;
|
|
41
43
|
/**
|
|
42
44
|
* Creates a new FlowsPersistence instance.
|
|
43
45
|
*
|
|
44
46
|
* @throws NoApiAccessTokenPresentException If the deploymentEnvironment has a value of
|
|
45
|
-
*
|
|
47
|
+
* DONOBU_HOSTED_MULTI_TENANT, and the current RequestContext
|
|
46
48
|
* accessToken is null or invalid.
|
|
47
49
|
*/
|
|
48
50
|
createPersistenceLayer(): Promise<FlowsPersistence>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowsPersistenceFactoryImpl.d.ts","sourceRoot":"","sources":["../../../src/persistence/flows/FlowsPersistenceFactoryImpl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAKtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"FlowsPersistenceFactoryImpl.d.ts","sourceRoot":"","sources":["../../../src/persistence/flows/FlowsPersistenceFactoryImpl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAKtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAQpE,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;GAIG;AACH,qBAAa,2BAA4B,YAAW,uBAAuB;IAoBvE,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IAxBvC;;;;;;;;;;;;;;;;;OAiBG;gBAEgB,qBAAqB,EAAE,2BAA2B,EAClD,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,wBAAwB,EAAE,MAAM,GAAG,IAAI,EACvC,oBAAoB,EAAE,MAAM,GAAG,IAAI,EACnC,oBAAoB,EAAE,oBAAoB;IAY7D;;;OAGG;WACiB,eAAe,CACjC,qBAAqB,EAAE,2BAA2B,EAClD,oBAAoB,EAAE,oBAAoB,EAC1C,OAAO,EAAE,OAAO,CACd,OAAO,GAAG,EACR,eAAe,GACf,eAAe,GACf,YAAY,GACZ,6BAA6B,GAC7B,yBAAyB,CAC5B,GACA,OAAO,CAAC,2BAA2B,CAAC;IAmBvC;;;;;;OAMG;IACU,sBAAsB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IA2BhE,gGAAgG;IACnF,uBAAuB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;mBAwC9C,eAAe;IAyGpC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;CA8C9B"}
|
|
@@ -11,13 +11,11 @@ const FlowsPersistenceGoogleCloudStorage_1 = require("./FlowsPersistenceGoogleCl
|
|
|
11
11
|
const FlowsPersistenceFilesystem_1 = require("./FlowsPersistenceFilesystem");
|
|
12
12
|
const FlowsPersistenceSupabase_1 = require("./FlowsPersistenceSupabase");
|
|
13
13
|
const SupabaseClient_1 = require("../../clients/SupabaseClient");
|
|
14
|
-
const DonobuDeploymentEnvironment_1 = require("../../models/DonobuDeploymentEnvironment");
|
|
15
14
|
const FlowsPersistenceAwsS3_1 = require("./FlowsPersistenceAwsS3");
|
|
16
15
|
const FlowsPersistenceSqlite_1 = require("./FlowsPersistenceSqlite");
|
|
17
16
|
const Logger_1 = require("../../utils/Logger");
|
|
18
17
|
const MiscUtils_1 = require("../../utils/MiscUtils");
|
|
19
18
|
const DonobuSqliteDb_1 = require("../DonobuSqliteDb");
|
|
20
|
-
const envVars_1 = require("../../envVars");
|
|
21
19
|
/**
|
|
22
20
|
* A factory class for creating new FlowsPersistence instances. The type of persistence
|
|
23
21
|
* objects created varies depending on this factory's constructor arguments and the current API
|
|
@@ -28,7 +26,7 @@ class FlowsPersistenceFactoryImpl {
|
|
|
28
26
|
* Creates an instance.
|
|
29
27
|
*
|
|
30
28
|
* @param deploymentEnvironment The deployment environment for this application. If this is set to
|
|
31
|
-
* a value of
|
|
29
|
+
* a value of DONOBU_HOSTED_MULTI_TENANT, then the
|
|
32
30
|
* supabaseJwtSecretKey must also be specified.
|
|
33
31
|
* @param awsS3Bucket The name of the AWS S3 bucket to use for persistence.
|
|
34
32
|
* @param awsS3Region The region of the AWS S3 bucket.
|
|
@@ -39,7 +37,7 @@ class FlowsPersistenceFactoryImpl {
|
|
|
39
37
|
* the Google Cloud CLI before running this application.
|
|
40
38
|
* @param supabaseJwtSecretKey The Supabase JWT secret key used to generate new JWTs for the
|
|
41
39
|
* purposes of authentication. This key is extremely sensitive! This parameter MUST be
|
|
42
|
-
* specified if deploymentEnvironment is set to
|
|
40
|
+
* specified if deploymentEnvironment is set to DONOBU_HOSTED_MULTI_TENANT.
|
|
43
41
|
* @param requestContextHolder The object used to get the current API request context.
|
|
44
42
|
*/
|
|
45
43
|
constructor(deploymentEnvironment, awsS3Bucket, awsS3Region, googleCloudStorageBucket, supabaseJwtSecretKey, requestContextHolder) {
|
|
@@ -49,8 +47,7 @@ class FlowsPersistenceFactoryImpl {
|
|
|
49
47
|
this.googleCloudStorageBucket = googleCloudStorageBucket;
|
|
50
48
|
this.supabaseJwtSecretKey = supabaseJwtSecretKey;
|
|
51
49
|
this.requestContextHolder = requestContextHolder;
|
|
52
|
-
if (deploymentEnvironment ===
|
|
53
|
-
DonobuDeploymentEnvironment_1.DonobuDeploymentEnvironment.DONOBU_HOSTED_MULTI_TENANT &&
|
|
50
|
+
if (deploymentEnvironment === 'DONOBU_HOSTED_MULTI_TENANT' &&
|
|
54
51
|
!supabaseJwtSecretKey) {
|
|
55
52
|
throw new Error('supabaseJwtSecretKey cannot be null if deploymentEnvironment is set to DONOBU_HOSTED_MULTI_TENANT.');
|
|
56
53
|
}
|
|
@@ -59,21 +56,21 @@ class FlowsPersistenceFactoryImpl {
|
|
|
59
56
|
* Creates an instance, fetching the values for googleCloudStorageBucket and
|
|
60
57
|
* supabaseJwtSecretKey from the environment variables.
|
|
61
58
|
*/
|
|
62
|
-
static async fromEnvironment(deploymentEnvironment, requestContextHolder) {
|
|
63
|
-
if (deploymentEnvironment ===
|
|
59
|
+
static async fromEnvironment(deploymentEnvironment, requestContextHolder, environ) {
|
|
60
|
+
if (deploymentEnvironment === 'LOCAL') {
|
|
64
61
|
await FlowsPersistenceFactoryImpl.migrateToSqlite();
|
|
65
62
|
}
|
|
66
|
-
const awsS3Bucket =
|
|
67
|
-
const awsS3Region =
|
|
68
|
-
const googleCloudStorageBucket =
|
|
69
|
-
const supabaseJwtSecretKey =
|
|
63
|
+
const awsS3Bucket = environ.data.AWS_S3_BUCKET;
|
|
64
|
+
const awsS3Region = environ.data.AWS_S3_REGION || environ.data.AWS_REGION;
|
|
65
|
+
const googleCloudStorageBucket = environ.data.GOOGLE_CLOUD_STORAGE_BUCKET;
|
|
66
|
+
const supabaseJwtSecretKey = environ.data.SUPABASE_JWT_SECRET_KEY;
|
|
70
67
|
return new FlowsPersistenceFactoryImpl(deploymentEnvironment, awsS3Bucket ?? null, awsS3Region ?? null, googleCloudStorageBucket ?? null, supabaseJwtSecretKey ?? null, requestContextHolder);
|
|
71
68
|
}
|
|
72
69
|
/**
|
|
73
70
|
* Creates a new FlowsPersistence instance.
|
|
74
71
|
*
|
|
75
72
|
* @throws NoApiAccessTokenPresentException If the deploymentEnvironment has a value of
|
|
76
|
-
*
|
|
73
|
+
* DONOBU_HOSTED_MULTI_TENANT, and the current RequestContext
|
|
77
74
|
* accessToken is null or invalid.
|
|
78
75
|
*/
|
|
79
76
|
async createPersistenceLayer() {
|
|
@@ -84,11 +81,10 @@ class FlowsPersistenceFactoryImpl {
|
|
|
84
81
|
else if (this.googleCloudStorageBucket) {
|
|
85
82
|
return FlowsPersistenceGoogleCloudStorage_1.FlowsPersistenceGoogleCloudStorage.create(this.googleCloudStorageBucket);
|
|
86
83
|
}
|
|
87
|
-
else if (this.deploymentEnvironment ===
|
|
84
|
+
else if (this.deploymentEnvironment === 'LOCAL') {
|
|
88
85
|
return await FlowsPersistenceSqlite_1.FlowsPersistenceSqlite.create((0, DonobuSqliteDb_1.getDonobuSqliteDatabase)());
|
|
89
86
|
}
|
|
90
|
-
else if (this.deploymentEnvironment ===
|
|
91
|
-
DonobuDeploymentEnvironment_1.DonobuDeploymentEnvironment.DONOBU_HOSTED_MULTI_TENANT) {
|
|
87
|
+
else if (this.deploymentEnvironment === 'DONOBU_HOSTED_MULTI_TENANT') {
|
|
92
88
|
if (!requestContext.accessToken) {
|
|
93
89
|
throw new NoApiAccessTokenPresentException_1.NoApiAccessTokenPresentException();
|
|
94
90
|
}
|
|
@@ -106,13 +102,12 @@ class FlowsPersistenceFactoryImpl {
|
|
|
106
102
|
if (this.googleCloudStorageBucket) {
|
|
107
103
|
layers.push(await FlowsPersistenceGoogleCloudStorage_1.FlowsPersistenceGoogleCloudStorage.create(this.googleCloudStorageBucket));
|
|
108
104
|
}
|
|
109
|
-
if (this.deploymentEnvironment ===
|
|
110
|
-
DonobuDeploymentEnvironment_1.DonobuDeploymentEnvironment.DONOBU_HOSTED_MULTI_TENANT &&
|
|
105
|
+
if (this.deploymentEnvironment === 'DONOBU_HOSTED_MULTI_TENANT' &&
|
|
111
106
|
requestContext.accessToken &&
|
|
112
107
|
this.supabaseJwtSecretKey) {
|
|
113
108
|
layers.push(new FlowsPersistenceSupabase_1.FlowsPersistenceSupabase(SupabaseClient_1.SupabaseClient.createClient(requestContext.accessToken, this.supabaseJwtSecretKey)));
|
|
114
109
|
}
|
|
115
|
-
else if (this.deploymentEnvironment ===
|
|
110
|
+
else if (this.deploymentEnvironment === 'LOCAL') {
|
|
116
111
|
layers.push(await FlowsPersistenceSqlite_1.FlowsPersistenceSqlite.create((0, DonobuSqliteDb_1.getDonobuSqliteDatabase)()));
|
|
117
112
|
}
|
|
118
113
|
return layers;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowsPersistenceFactoryImpl.js","sourceRoot":"","sources":["../../../src/persistence/flows/FlowsPersistenceFactoryImpl.ts"],"names":[],"mappings":";;;;;;AAAA,2DAA6B;AAC7B,gDAAwB;AACxB,wGAAqG;AAErG,6FAA0F;AAC1F,6EAA0E;AAC1E,yEAAsE;AACtE,iEAA8D;
|
|
1
|
+
{"version":3,"file":"FlowsPersistenceFactoryImpl.js","sourceRoot":"","sources":["../../../src/persistence/flows/FlowsPersistenceFactoryImpl.ts"],"names":[],"mappings":";;;;;;AAAA,2DAA6B;AAC7B,gDAAwB;AACxB,wGAAqG;AAErG,6FAA0F;AAC1F,6EAA0E;AAC1E,yEAAsE;AACtE,iEAA8D;AAI9D,mEAAgE;AAChE,qEAAkE;AAClE,+CAA+C;AAC/C,qDAAkD;AAClD,sDAA4D;AAM5D;;;;GAIG;AACH,MAAa,2BAA2B;IACtC;;;;;;;;;;;;;;;;;OAiBG;IACH,YACmB,qBAAkD,EAClD,WAA0B,EAC1B,WAA0B,EAC1B,wBAAuC,EACvC,oBAAmC,EACnC,oBAA0C;QAL1C,0BAAqB,GAArB,qBAAqB,CAA6B;QAClD,gBAAW,GAAX,WAAW,CAAe;QAC1B,gBAAW,GAAX,WAAW,CAAe;QAC1B,6BAAwB,GAAxB,wBAAwB,CAAe;QACvC,yBAAoB,GAApB,oBAAoB,CAAe;QACnC,yBAAoB,GAApB,oBAAoB,CAAsB;QAE3D,IACE,qBAAqB,KAAK,4BAA4B;YACtD,CAAC,oBAAoB,EACrB,CAAC;YACD,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,eAAe,CACjC,qBAAkD,EAClD,oBAA0C,EAC1C,OAOC;QAED,IAAI,qBAAqB,KAAK,OAAO,EAAE,CAAC;YACtC,MAAM,2BAA2B,CAAC,eAAe,EAAE,CAAC;QACtD,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;QAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;QAC1E,MAAM,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC;QAC1E,MAAM,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC;QAClE,OAAO,IAAI,2BAA2B,CACpC,qBAAqB,EACrB,WAAW,IAAI,IAAI,EACnB,WAAW,IAAI,IAAI,EACnB,wBAAwB,IAAI,IAAI,EAChC,oBAAoB,IAAI,IAAI,EAC5B,oBAAoB,CACrB,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,sBAAsB;QACjC,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC;QAEvD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,OAAO,IAAI,6CAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACvE,CAAC;aAAM,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACzC,OAAO,uEAAkC,CAAC,MAAM,CAC9C,IAAI,CAAC,wBAAwB,CAC9B,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,CAAC,qBAAqB,KAAK,OAAO,EAAE,CAAC;YAClD,OAAO,MAAM,+CAAsB,CAAC,MAAM,CAAC,IAAA,wCAAuB,GAAE,CAAC,CAAC;QACxE,CAAC;aAAM,IAAI,IAAI,CAAC,qBAAqB,KAAK,4BAA4B,EAAE,CAAC;YACvE,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;gBAChC,MAAM,IAAI,mEAAgC,EAAE,CAAC;YAC/C,CAAC;YAED,OAAO,IAAI,mDAAwB,CACjC,+BAAc,CAAC,YAAY,CACzB,cAAc,CAAC,WAAW,EAC1B,IAAI,CAAC,oBAAqB,CAC3B,CACF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IAED,gGAAgG;IACzF,KAAK,CAAC,uBAAuB;QAClC,MAAM,MAAM,GAAuB,EAAE,CAAC;QACtC,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC;QAEvD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CACT,IAAI,6CAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAC9D,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CACT,MAAM,uEAAkC,CAAC,MAAM,CAC7C,IAAI,CAAC,wBAAwB,CAC9B,CACF,CAAC;QACJ,CAAC;QAED,IACE,IAAI,CAAC,qBAAqB,KAAK,4BAA4B;YAC3D,cAAc,CAAC,WAAW;YAC1B,IAAI,CAAC,oBAAoB,EACzB,CAAC;YACD,MAAM,CAAC,IAAI,CACT,IAAI,mDAAwB,CAC1B,+BAAc,CAAC,YAAY,CACzB,cAAc,CAAC,WAAW,EAC1B,IAAI,CAAC,oBAAoB,CAC1B,CACF,CACF,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,CAAC,qBAAqB,KAAK,OAAO,EAAE,CAAC;YAClD,MAAM,CAAC,IAAI,CACT,MAAM,+CAAsB,CAAC,MAAM,CAAC,IAAA,wCAAuB,GAAE,CAAC,CAC/D,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,eAAe;QAClC,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,qBAAS,CAAC,oBAAoB,EAAE,EAAE,OAAO,CAAC,CAAC;QAE5E,yCAAyC;QACzC,IAAI,CAAC;YACH,MAAM,kBAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,8BAA8B;YAC9B,OAAO;QACT,CAAC;QAED,MAAM,iBAAiB,GAAG,MAAM,uDAA0B,CAAC,MAAM,CAC/D,qBAAS,CAAC,oBAAoB,EAAE,CACjC,CAAC;QACF,MAAM,iBAAiB,GAAG,MAAM,+CAAsB,CAAC,MAAM,CAC3D,IAAA,wCAAuB,GAAE,CAC1B,CAAC;QAEF,IAAI,CAAC;YACH,qCAAqC;YACrC,IAAI,QAAQ,GAAmB,EAAE,CAAC;YAClC,IAAI,aAAiC,CAAC;YAEtC,sCAAsC;YACtC,GAAG,CAAC;gBACF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,gBAAgB,CAAC;oBACtD,KAAK,EAAE,GAAG,EAAE,qCAAqC;oBACjD,SAAS,EAAE,aAAa;iBACzB,CAAC,CAAC;gBAEH,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC/B,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;YACvC,CAAC,QAAQ,aAAa,EAAE;YAExB,kBAAS,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,MAAM,qBAAqB,CAAC,CAAC;YAElE,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,MAAM,iBAAiB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAClD,sCAAsC;oBACtC,MAAM,SAAS,GAAG,CAChB,MAAM,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAClD,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,2BAA2B,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;oBAE5D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;wBACjC,MAAM,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;wBAC5D,0CAA0C;wBAC1C,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;4BAC7B,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAC/C,QAAQ,CAAC,EAAE,EACX,QAAQ,CAAC,eAAe,CACzB,CAAC;4BAEF,IAAI,KAAK,EAAE,CAAC;gCACV,MAAM,iBAAiB,CAAC,WAAW,CACjC,QAAQ,CAAC,EAAE,EACX,QAAQ,CAAC,eAAe,EACxB,KAAK,CACN,CAAC;4BACJ,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,yCAAyC;oBACzC,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,eAAe,CAC1D,QAAQ,CAAC,EAAE,CACZ,CAAC;oBAEF,IAAI,YAAY,EAAE,CAAC;wBACjB,MAAM,iBAAiB,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;oBACrE,CAAC;oBACD,oCAAoC;oBACpC,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,eAAe,CACvD,QAAQ,CAAC,EAAE,EACX,CAAC,EACD,MAAM,CAAC,gBAAgB,CACxB,CAAC;oBAEF,IAAI,SAAS,EAAE,CAAC;wBACd,MAAM,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;oBACjE,CAAC;oBAED,kBAAS,CAAC,IAAI,CAAC,8BAA8B,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9D,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,kBAAS,CAAC,KAAK,CACb,0BAA0B,QAAQ,CAAC,EAAE,YAAY,EACjD,KAAK,CACN,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,wDAAwD;YACxD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,kBAAS,CAAC,IAAI,CACZ,wDAAwD,CACzD,CAAC;gBACF,MAAM,kBAAE,CAAC,EAAE,CAAC,iBAAiB,CAAC,cAAc,EAAE;oBAC5C,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,IAAI;iBACZ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,kBAAS,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,cAAc,CAAC,QAAkB;QAC9C,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;QAClD,MAAM,gBAAgB,GACpB,CAAC,eAAe,EAAE,kCAAkC,IAAI,KAAK,CAAC;YAC5D,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,KAAK,CAAC;QAEZ,IAAI,gBAAgB,EAAE,CAAC;YACrB,wDAAwD;YACxD,eAAgB,CAAC,OAAO;gBACtB,eAAgB,CAAC,kCAAkC,CAAC;YACtD,eAAgB,CAAC,KAAK,GAAG,eAAgB,CAAC,sBAAsB,CAAC;YACjE,OAAO,eAAgB,CAAC,kCAAkC,CAAC;YAC3D,OAAO,eAAgB,CAAC,sBAAsB,CAAC;QACjD,CAAC;QAED,MAAM,aAAa,GACjB,CAAC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAElE,IAAI,aAAa,EAAE,CAAC;YAClB,mDAAmD;YACnD,QAAQ,CAAC,UAAU,CAAC,QAAQ,GAAG;gBAC7B,OAAO,EACL,QAAQ,CAAC,UAAU,CAAC,iBAAiB;qBAClC,kCAAkC;gBACvC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC,sBAAsB;aACpE,CAAC;YACF,OAAO,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAC/C,CAAC;aAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;YAC1D,OAAO,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAC/C,CAAC;QACD,2BAA2B;QAC3B,IAAI,QAAQ,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;YACxC,OAAO;gBACL,GAAG,QAAQ;gBACX,QAAQ,EAAE,OAAO;aAClB,CAAC;QACJ,CAAC;aAAM,IAAI,QAAQ,CAAC,QAAQ,KAAK,mBAAmB,EAAE,CAAC;YACrD,OAAO;gBACL,GAAG,QAAQ;gBACX,QAAQ,EAAE,aAAa;aACxB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;CACF;AA5SD,kEA4SC"}
|
|
@@ -69,7 +69,12 @@ export declare class BrowserUtils {
|
|
|
69
69
|
* @returns A promise that resolves to a configured BrowserContext.
|
|
70
70
|
* @throws {InvalidParamValueException} When an invalid browser type is specified.
|
|
71
71
|
*/
|
|
72
|
-
static create(browserConfig: BrowserConfig, videoDir?: string, storageState?: BrowserStorageState)
|
|
72
|
+
static create(browserConfig: BrowserConfig, videoDir?: string, storageState?: BrowserStorageState, environ?: import("env-struct").Env<{
|
|
73
|
+
BROWSERBASE_API_KEY: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
|
|
74
|
+
PROXY_SERVER: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
|
|
75
|
+
PROXY_USERNAME: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
|
|
76
|
+
PROXY_PASSWORD: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
|
|
77
|
+
}>): Promise<BrowserContext>;
|
|
73
78
|
/**
|
|
74
79
|
* Gets the browser storage state including cookies, localStorage, and sessionStorage.
|
|
75
80
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserUtils.d.ts","sourceRoot":"","sources":["../../src/utils/BrowserUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAGf,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAA0B,aAAa,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"BrowserUtils.d.ts","sourceRoot":"","sources":["../../src/utils/BrowserUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAGf,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAA0B,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAWhF,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,KAAK,CAAC;AAEV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IACjE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAoB;IAEtE;;;;;;;;;;OAUG;WACW,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC;IAY/D;;;;;;;;;;;;OAYG;WACiB,MAAM,CACxB,aAAa,EAAE,aAAa,EAC5B,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,mBAAmB,EAClC,OAAO;;;;;MAKN,GACA,OAAO,CAAC,cAAc,CAAC;IAuG1B;;;;;OAKG;WACiB,sBAAsB,CACxC,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,mBAAmB,CAAC;IAkF/B;;;;;;;;;OASG;mBACkB,eAAe;IAyKpC;;;;;;;OAOG;mBACkB,kBAAkB;IAyDvC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAiC7B;;;;;;;;OAQG;mBACkB,gBAAgB;IAiCrC;;;;;;;;;;;;OAYG;mBACkB,SAAS;IAkC9B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,8BAA8B;IAgD7C;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IA6BvC;;;;;;;;;OASG;mBACkB,UAAU;IAqC/B;;;;;;;;;;;;;OAaG;mBACkB,cAAc;IA8BnC;;;;;;;;OAQG;mBACkB,2BAA2B;IAmChD;;;;;;OAMG;WACiB,oCAAoC,CACtD,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,mBAAmB,GACjC,OAAO,CAAC,IAAI,CAAC;IAwChB;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;CAgB1B"}
|
|
@@ -85,7 +85,7 @@ class BrowserUtils {
|
|
|
85
85
|
* @returns A promise that resolves to a configured BrowserContext.
|
|
86
86
|
* @throws {InvalidParamValueException} When an invalid browser type is specified.
|
|
87
87
|
*/
|
|
88
|
-
static async create(browserConfig, videoDir, storageState) {
|
|
88
|
+
static async create(browserConfig, videoDir, storageState, environ = envVars_1.env.pick('BROWSERBASE_API_KEY', 'PROXY_SERVER', 'PROXY_USERNAME', 'PROXY_PASSWORD')) {
|
|
89
89
|
const type = browserConfig.using.type;
|
|
90
90
|
let browser;
|
|
91
91
|
let browserContext;
|
|
@@ -94,10 +94,10 @@ class BrowserUtils {
|
|
|
94
94
|
const deviceName = browserConfig.using.deviceName ?? BrowserUtils.DEFAULT_DEVICE_NAME;
|
|
95
95
|
// Special case for Desktop Chrome - use native Chrome installation via CDP
|
|
96
96
|
if (deviceName === BrowserUtils.DESKTOP_CHROME_DEVICE_NAME) {
|
|
97
|
-
({ browser, browserContext } = await BrowserUtils.forNativeChrome(browserConfig.using.headless ?? false, storageState, browserConfig.using.proxy));
|
|
97
|
+
({ browser, browserContext } = await BrowserUtils.forNativeChrome(browserConfig.using.headless ?? false, storageState, browserConfig.using.proxy, environ));
|
|
98
98
|
}
|
|
99
99
|
else {
|
|
100
|
-
({ browser, browserContext } = await BrowserUtils.forDevice(deviceName, browserConfig.using.headless ?? false, videoDir, storageState, browserConfig.using.proxy));
|
|
100
|
+
({ browser, browserContext } = await BrowserUtils.forDevice(deviceName, browserConfig.using.headless ?? false, videoDir, storageState, browserConfig.using.proxy, environ));
|
|
101
101
|
}
|
|
102
102
|
BrowserUtils.patchClose(browserContext, () => browser.close());
|
|
103
103
|
break;
|
|
@@ -110,7 +110,7 @@ class BrowserUtils {
|
|
|
110
110
|
case 'browserBase': {
|
|
111
111
|
let browserBaseData;
|
|
112
112
|
({ browser, browserContext, browserBaseData } =
|
|
113
|
-
await BrowserUtils.forBrowserBase(browserConfig.using.sessionArgs, videoDir, storageState));
|
|
113
|
+
await BrowserUtils.forBrowserBase(browserConfig.using.sessionArgs, videoDir, storageState, environ));
|
|
114
114
|
BrowserUtils.patchClose(browserContext, async () => {
|
|
115
115
|
try {
|
|
116
116
|
await browser.close();
|
|
@@ -122,7 +122,7 @@ class BrowserUtils {
|
|
|
122
122
|
projectId: browserBaseData.projectId,
|
|
123
123
|
status: 'REQUEST_RELEASE',
|
|
124
124
|
};
|
|
125
|
-
const password =
|
|
125
|
+
const password = environ.data.BROWSERBASE_API_KEY ?? '';
|
|
126
126
|
const options = {
|
|
127
127
|
method: 'POST',
|
|
128
128
|
headers: {
|
|
@@ -232,7 +232,7 @@ class BrowserUtils {
|
|
|
232
232
|
* @returns A promise that resolves to an object containing the browser and browser context
|
|
233
233
|
* @throws {Error} When Chrome cannot be launched or CDP connection fails
|
|
234
234
|
*/
|
|
235
|
-
static async forNativeChrome(headless, storageState, proxy) {
|
|
235
|
+
static async forNativeChrome(headless, storageState, proxy, environ) {
|
|
236
236
|
// Always use a dedicated user-data-dir to avoid handing off to an existing Chrome.
|
|
237
237
|
const userDataDir = await promises_1.default.mkdtemp(path_1.default.join(os_1.default.tmpdir(), 'donobu-chrome-'));
|
|
238
238
|
// Chrome will choose a free port and write it into DevToolsActivePort in userDataDir.
|
|
@@ -275,7 +275,7 @@ class BrowserUtils {
|
|
|
275
275
|
if (headless) {
|
|
276
276
|
chromeArgs.push('--headless=new');
|
|
277
277
|
}
|
|
278
|
-
const expandedProxy = BrowserUtils.expandProxyConfiguration(proxy);
|
|
278
|
+
const expandedProxy = BrowserUtils.expandProxyConfiguration(proxy, environ);
|
|
279
279
|
if (expandedProxy) {
|
|
280
280
|
chromeArgs.push(`--proxy-server=${expandedProxy.server}`);
|
|
281
281
|
if (expandedProxy.bypass) {
|
|
@@ -502,7 +502,7 @@ class BrowserUtils {
|
|
|
502
502
|
* @returns A promise that resolves to an object containing the browser and browser context
|
|
503
503
|
* @throws {InvalidParamValueException} When the device name is not found in supported devices
|
|
504
504
|
*/
|
|
505
|
-
static async forDevice(deviceName, headless, videoDir, storageState, proxy) {
|
|
505
|
+
static async forDevice(deviceName, headless, videoDir, storageState, proxy, environ) {
|
|
506
506
|
const { browserTypeName, browserContextOptions } = this.browserContextOptionsForDevice(deviceName, videoDir);
|
|
507
507
|
if (storageState) {
|
|
508
508
|
browserContextOptions.storageState = storageState;
|
|
@@ -513,7 +513,7 @@ class BrowserUtils {
|
|
|
513
513
|
'--ignore-certificate-errors',
|
|
514
514
|
'--disable-blink-features=AutomationControlled',
|
|
515
515
|
],
|
|
516
|
-
proxy: this.expandProxyConfiguration(proxy),
|
|
516
|
+
proxy: this.expandProxyConfiguration(proxy, environ),
|
|
517
517
|
};
|
|
518
518
|
return await this.newBrowser(browserTypeName, launchOptions, browserContextOptions);
|
|
519
519
|
}
|
|
@@ -567,10 +567,10 @@ class BrowserUtils {
|
|
|
567
567
|
* @param proxy - Optional proxy configuration object
|
|
568
568
|
* @returns Expanded proxy configuration or undefined if no proxy is configured
|
|
569
569
|
*/
|
|
570
|
-
static expandProxyConfiguration(proxy) {
|
|
571
|
-
const envProxyServer =
|
|
572
|
-
const envProxyUsername =
|
|
573
|
-
const envProxyPassword =
|
|
570
|
+
static expandProxyConfiguration(proxy, environ) {
|
|
571
|
+
const envProxyServer = environ.data.PROXY_SERVER;
|
|
572
|
+
const envProxyUsername = environ.data.PROXY_USERNAME;
|
|
573
|
+
const envProxyPassword = environ.data.PROXY_PASSWORD;
|
|
574
574
|
if (!proxy) {
|
|
575
575
|
return envProxyServer !== undefined
|
|
576
576
|
? {
|
|
@@ -642,8 +642,8 @@ class BrowserUtils {
|
|
|
642
642
|
* @returns A promise that resolves to an object containing the browser, context, and session data.
|
|
643
643
|
* @throws {InvalidParamValueException} When BrowserBase API key is missing or session creation fails.
|
|
644
644
|
*/
|
|
645
|
-
static async forBrowserBase(sessionArgs, videoDir, storageState) {
|
|
646
|
-
const browserBaseData = await BrowserUtils.establishBrowserBaseSession(sessionArgs);
|
|
645
|
+
static async forBrowserBase(sessionArgs, videoDir, storageState, environ) {
|
|
646
|
+
const browserBaseData = await BrowserUtils.establishBrowserBaseSession(sessionArgs, environ);
|
|
647
647
|
const browser = await playwright_1.chromium.connectOverCDP(browserBaseData.connectUrl);
|
|
648
648
|
const contextOptions = {
|
|
649
649
|
...(videoDir ? { recordVideo: { dir: videoDir } } : {}),
|
|
@@ -666,10 +666,10 @@ class BrowserUtils {
|
|
|
666
666
|
* @returns A promise that resolves to the BrowserBase session data
|
|
667
667
|
* @throws {InvalidParamValueException} When the API key is missing or the API returns an error
|
|
668
668
|
*/
|
|
669
|
-
static async establishBrowserBaseSession(sessionArgs) {
|
|
670
|
-
const password =
|
|
669
|
+
static async establishBrowserBaseSession(sessionArgs, environ) {
|
|
670
|
+
const password = environ.data.BROWSERBASE_API_KEY;
|
|
671
671
|
if (!password) {
|
|
672
|
-
throw new InvalidParamValueException_1.InvalidParamValueException(
|
|
672
|
+
throw new InvalidParamValueException_1.InvalidParamValueException(environ.keys.BROWSERBASE_API_KEY, null);
|
|
673
673
|
}
|
|
674
674
|
const options = {
|
|
675
675
|
method: 'POST',
|
|
@@ -678,7 +678,7 @@ class BrowserUtils {
|
|
|
678
678
|
};
|
|
679
679
|
const browserBaseData = await fetch('https://api.browserbase.com/v1/sessions', options).then((response) => response.json());
|
|
680
680
|
if (browserBaseData.error) {
|
|
681
|
-
throw new InvalidParamValueException_1.InvalidParamValueException(
|
|
681
|
+
throw new InvalidParamValueException_1.InvalidParamValueException(environ.keys.BROWSERBASE_API_KEY, '*** REDACTED ***', `${browserBaseData.error}: ${browserBaseData.message}`);
|
|
682
682
|
}
|
|
683
683
|
return browserBaseData;
|
|
684
684
|
}
|