donobu 3.5.5 → 3.6.1
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/apis/GptConfigsApi.d.ts.map +1 -1
- package/dist/apis/GptConfigsApi.js +0 -2
- package/dist/apis/GptConfigsApi.js.map +1 -1
- package/dist/assets/donobu-namespace.js +54 -0
- package/dist/assets/interactive-elements-tracker.js +9 -9
- package/dist/assets/page-interactions-tracker.js +21 -22
- package/dist/assets/smart-selector-generator.js +11 -13
- package/dist/bindings/PageInteractionTracker.d.ts.map +1 -1
- package/dist/bindings/PageInteractionTracker.js +1 -0
- package/dist/bindings/PageInteractionTracker.js.map +1 -1
- package/dist/envVars.d.ts +0 -2
- package/dist/envVars.d.ts.map +1 -1
- package/dist/envVars.js +0 -4
- package/dist/envVars.js.map +1 -1
- package/dist/esm/apis/GptConfigsApi.d.ts.map +1 -1
- package/dist/esm/apis/GptConfigsApi.js +0 -2
- package/dist/esm/apis/GptConfigsApi.js.map +1 -1
- package/dist/esm/assets/donobu-namespace.js +54 -0
- package/dist/esm/assets/interactive-elements-tracker.js +9 -9
- package/dist/esm/assets/page-interactions-tracker.js +21 -22
- package/dist/esm/assets/smart-selector-generator.js +11 -13
- package/dist/esm/bindings/PageInteractionTracker.d.ts.map +1 -1
- package/dist/esm/bindings/PageInteractionTracker.js +1 -0
- package/dist/esm/bindings/PageInteractionTracker.js.map +1 -1
- package/dist/esm/envVars.d.ts +0 -2
- package/dist/esm/envVars.d.ts.map +1 -1
- package/dist/esm/envVars.js +0 -4
- package/dist/esm/envVars.js.map +1 -1
- package/dist/esm/lib/PageAi.d.ts +1 -1
- package/dist/esm/lib/PageAi.js +1 -1
- package/dist/esm/lib/PageAi.js.map +1 -1
- package/dist/esm/lib/createDonobuExtendedPage.js +1 -1
- package/dist/esm/lib/createDonobuExtendedPage.js.map +1 -1
- package/dist/esm/lib/fixtures/gptClients.d.ts +7 -61
- package/dist/esm/lib/fixtures/gptClients.d.ts.map +1 -1
- package/dist/esm/lib/fixtures/gptClients.js +48 -160
- package/dist/esm/lib/fixtures/gptClients.js.map +1 -1
- package/dist/esm/lib/utils/donobuTestStack.d.ts +4 -2
- package/dist/esm/lib/utils/donobuTestStack.d.ts.map +1 -1
- package/dist/esm/lib/utils/donobuTestStack.js +1 -1
- package/dist/esm/lib/utils/donobuTestStack.js.map +1 -1
- package/dist/esm/managers/AdminApiController.d.ts +1 -5
- package/dist/esm/managers/AdminApiController.d.ts.map +1 -1
- package/dist/esm/managers/AdminApiController.js +0 -13
- package/dist/esm/managers/AdminApiController.js.map +1 -1
- package/dist/esm/managers/AgentsManager.d.ts +1 -17
- package/dist/esm/managers/AgentsManager.d.ts.map +1 -1
- package/dist/esm/managers/AgentsManager.js +1 -64
- package/dist/esm/managers/AgentsManager.js.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.d.ts +13 -40
- package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.js +45 -316
- package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/esm/managers/DonobuStack.d.ts +4 -2
- package/dist/esm/managers/DonobuStack.d.ts.map +1 -1
- package/dist/esm/managers/DonobuStack.js +3 -3
- package/dist/esm/managers/DonobuStack.js.map +1 -1
- package/dist/esm/managers/EnvDataManager.d.ts +11 -0
- package/dist/esm/managers/EnvDataManager.d.ts.map +1 -1
- package/dist/esm/managers/EnvDataManager.js +20 -0
- package/dist/esm/managers/EnvDataManager.js.map +1 -1
- package/dist/esm/managers/FlowCatalog.d.ts +29 -0
- package/dist/esm/managers/FlowCatalog.d.ts.map +1 -0
- package/dist/esm/managers/FlowCatalog.js +153 -0
- package/dist/esm/managers/FlowCatalog.js.map +1 -0
- package/dist/esm/managers/FlowDependencyResolver.d.ts +20 -0
- package/dist/esm/managers/FlowDependencyResolver.d.ts.map +1 -0
- package/dist/esm/managers/FlowDependencyResolver.js +101 -0
- package/dist/esm/managers/FlowDependencyResolver.js.map +1 -0
- package/dist/esm/managers/FlowRuntime.d.ts +18 -0
- package/dist/esm/managers/FlowRuntime.d.ts.map +1 -0
- package/dist/esm/managers/FlowRuntime.js +33 -0
- package/dist/esm/managers/FlowRuntime.js.map +1 -0
- package/dist/esm/managers/GptConfigsManager.d.ts +1 -8
- package/dist/esm/managers/GptConfigsManager.d.ts.map +1 -1
- package/dist/esm/managers/GptConfigsManager.js +1 -177
- package/dist/esm/managers/GptConfigsManager.js.map +1 -1
- package/dist/esm/managers/PageInspector.d.ts +1 -1
- package/dist/esm/managers/PageInspector.js +1 -1
- package/dist/esm/models/FlowHandle.d.ts +12 -0
- package/dist/esm/models/FlowHandle.d.ts.map +1 -0
- package/dist/esm/models/FlowHandle.js +3 -0
- package/dist/esm/models/FlowHandle.js.map +1 -0
- package/dist/esm/tools/InputRandomizedEmailAddressTool.js +2 -2
- package/dist/esm/utils/Logger.d.ts +1 -0
- package/dist/esm/utils/Logger.d.ts.map +1 -1
- package/dist/esm/utils/Logger.js +100 -12
- package/dist/esm/utils/Logger.js.map +1 -1
- package/dist/esm/utils/PlaywrightUtils.d.ts +4 -0
- package/dist/esm/utils/PlaywrightUtils.d.ts.map +1 -1
- package/dist/esm/utils/PlaywrightUtils.js +5 -0
- package/dist/esm/utils/PlaywrightUtils.js.map +1 -1
- package/dist/lib/PageAi.d.ts +1 -1
- package/dist/lib/PageAi.js +1 -1
- package/dist/lib/PageAi.js.map +1 -1
- package/dist/lib/createDonobuExtendedPage.js +1 -1
- package/dist/lib/createDonobuExtendedPage.js.map +1 -1
- package/dist/lib/fixtures/gptClients.d.ts +7 -61
- package/dist/lib/fixtures/gptClients.d.ts.map +1 -1
- package/dist/lib/fixtures/gptClients.js +48 -160
- package/dist/lib/fixtures/gptClients.js.map +1 -1
- package/dist/lib/utils/donobuTestStack.d.ts +4 -2
- package/dist/lib/utils/donobuTestStack.d.ts.map +1 -1
- package/dist/lib/utils/donobuTestStack.js +1 -1
- package/dist/lib/utils/donobuTestStack.js.map +1 -1
- package/dist/managers/AdminApiController.d.ts +1 -5
- package/dist/managers/AdminApiController.d.ts.map +1 -1
- package/dist/managers/AdminApiController.js +0 -13
- package/dist/managers/AdminApiController.js.map +1 -1
- package/dist/managers/AgentsManager.d.ts +1 -17
- package/dist/managers/AgentsManager.d.ts.map +1 -1
- package/dist/managers/AgentsManager.js +1 -64
- package/dist/managers/AgentsManager.js.map +1 -1
- package/dist/managers/DonobuFlowsManager.d.ts +13 -40
- package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/managers/DonobuFlowsManager.js +45 -316
- package/dist/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/managers/DonobuStack.d.ts +4 -2
- package/dist/managers/DonobuStack.d.ts.map +1 -1
- package/dist/managers/DonobuStack.js +3 -3
- package/dist/managers/DonobuStack.js.map +1 -1
- package/dist/managers/EnvDataManager.d.ts +11 -0
- package/dist/managers/EnvDataManager.d.ts.map +1 -1
- package/dist/managers/EnvDataManager.js +20 -0
- package/dist/managers/EnvDataManager.js.map +1 -1
- package/dist/managers/FlowCatalog.d.ts +29 -0
- package/dist/managers/FlowCatalog.d.ts.map +1 -0
- package/dist/managers/FlowCatalog.js +153 -0
- package/dist/managers/FlowCatalog.js.map +1 -0
- package/dist/managers/FlowDependencyResolver.d.ts +20 -0
- package/dist/managers/FlowDependencyResolver.d.ts.map +1 -0
- package/dist/managers/FlowDependencyResolver.js +101 -0
- package/dist/managers/FlowDependencyResolver.js.map +1 -0
- package/dist/managers/FlowRuntime.d.ts +18 -0
- package/dist/managers/FlowRuntime.d.ts.map +1 -0
- package/dist/managers/FlowRuntime.js +33 -0
- package/dist/managers/FlowRuntime.js.map +1 -0
- package/dist/managers/GptConfigsManager.d.ts +1 -8
- package/dist/managers/GptConfigsManager.d.ts.map +1 -1
- package/dist/managers/GptConfigsManager.js +1 -177
- package/dist/managers/GptConfigsManager.js.map +1 -1
- package/dist/managers/PageInspector.d.ts +1 -1
- package/dist/managers/PageInspector.js +1 -1
- package/dist/models/FlowHandle.d.ts +12 -0
- package/dist/models/FlowHandle.d.ts.map +1 -0
- package/dist/models/FlowHandle.js +3 -0
- package/dist/models/FlowHandle.js.map +1 -0
- package/dist/tools/InputRandomizedEmailAddressTool.js +2 -2
- package/dist/utils/Logger.d.ts +1 -0
- package/dist/utils/Logger.d.ts.map +1 -1
- package/dist/utils/Logger.js +100 -12
- package/dist/utils/Logger.js.map +1 -1
- package/dist/utils/PlaywrightUtils.d.ts +4 -0
- package/dist/utils/PlaywrightUtils.d.ts.map +1 -1
- package/dist/utils/PlaywrightUtils.js +5 -0
- package/dist/utils/PlaywrightUtils.js.map +1 -1
- package/package.json +1 -1
- package/dist/apis/SpecialFlowsApi.d.ts +0 -20
- package/dist/apis/SpecialFlowsApi.d.ts.map +0 -1
- package/dist/apis/SpecialFlowsApi.js +0 -466
- package/dist/apis/SpecialFlowsApi.js.map +0 -1
- package/dist/esm/apis/SpecialFlowsApi.d.ts +0 -20
- package/dist/esm/apis/SpecialFlowsApi.d.ts.map +0 -1
- package/dist/esm/apis/SpecialFlowsApi.js +0 -466
- package/dist/esm/apis/SpecialFlowsApi.js.map +0 -1
|
@@ -1,47 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
3
|
exports.GptConfigsManager = void 0;
|
|
40
|
-
const fs = __importStar(require("fs/promises"));
|
|
41
|
-
const path_1 = __importDefault(require("path"));
|
|
42
4
|
const v4_1 = require("zod/v4");
|
|
43
|
-
const Logger_1 = require("../utils/Logger");
|
|
44
|
-
const MiscUtils_1 = require("../utils/MiscUtils");
|
|
45
5
|
/**
|
|
46
6
|
* This class manages GPT configs and is responsible for validation around
|
|
47
7
|
* that context.
|
|
@@ -51,9 +11,8 @@ class GptConfigsManager {
|
|
|
51
11
|
this.persistence = persistence;
|
|
52
12
|
this.gptClientFactory = gptClientFactory;
|
|
53
13
|
}
|
|
54
|
-
static async create(persistence, gptClientFactory
|
|
14
|
+
static async create(persistence, gptClientFactory) {
|
|
55
15
|
const instance = new GptConfigsManager(persistence, gptClientFactory);
|
|
56
|
-
await instance.initializeDefaultConfigurations(environ);
|
|
57
16
|
return instance;
|
|
58
17
|
}
|
|
59
18
|
/**
|
|
@@ -91,141 +50,6 @@ class GptConfigsManager {
|
|
|
91
50
|
// Creating a GPT client performs validation on its own.
|
|
92
51
|
await this.gptClientFactory.createClient(config);
|
|
93
52
|
}
|
|
94
|
-
/**
|
|
95
|
-
* Inspects environment variables and legacy GPT platform keys files to
|
|
96
|
-
* initialize default GPT configurations.
|
|
97
|
-
*/
|
|
98
|
-
async initializeDefaultConfigurations(environ) {
|
|
99
|
-
const apiKeysFilepath = path_1.default.join(MiscUtils_1.MiscUtils.baseWorkingDirectory(), '.gptplatforms');
|
|
100
|
-
let apiKeysData = {
|
|
101
|
-
ANTHROPIC: null,
|
|
102
|
-
DONOBU: null,
|
|
103
|
-
GOOGLE: null,
|
|
104
|
-
OPENAI: null,
|
|
105
|
-
};
|
|
106
|
-
try {
|
|
107
|
-
const content = await fs.readFile(apiKeysFilepath, 'utf-8');
|
|
108
|
-
// API key data has the JSON format of...
|
|
109
|
-
// {
|
|
110
|
-
// "ANTHROPIC": <key>,
|
|
111
|
-
// ...
|
|
112
|
-
// }
|
|
113
|
-
apiKeysData = JSON.parse(content);
|
|
114
|
-
}
|
|
115
|
-
catch (_error) {
|
|
116
|
-
// This likely just means the legacy API keys file has already been migrated.
|
|
117
|
-
}
|
|
118
|
-
// Perform overrides if environment variables are present.
|
|
119
|
-
const anthropicApiKeyFromEnv = environ.data.ANTHROPIC_API_KEY;
|
|
120
|
-
if (anthropicApiKeyFromEnv) {
|
|
121
|
-
apiKeysData.ANTHROPIC = anthropicApiKeyFromEnv;
|
|
122
|
-
}
|
|
123
|
-
const donobuGptKeyFromEnv = environ.data.DONOBU_API_KEY;
|
|
124
|
-
if (donobuGptKeyFromEnv) {
|
|
125
|
-
apiKeysData.DONOBU = donobuGptKeyFromEnv;
|
|
126
|
-
}
|
|
127
|
-
const googleApiKeyFromEnv = environ.data.GOOGLE_GENERATIVE_AI_API_KEY;
|
|
128
|
-
if (googleApiKeyFromEnv) {
|
|
129
|
-
apiKeysData.GOOGLE = googleApiKeyFromEnv;
|
|
130
|
-
}
|
|
131
|
-
const openAiApiKeyFromEnv = environ.data.OPENAI_API_KEY;
|
|
132
|
-
if (openAiApiKeyFromEnv) {
|
|
133
|
-
apiKeysData.OPENAI = openAiApiKeyFromEnv;
|
|
134
|
-
}
|
|
135
|
-
// Setup Anthropic GPT configurations.
|
|
136
|
-
if (apiKeysData.ANTHROPIC) {
|
|
137
|
-
for (const modelName of ['claude-sonnet-4-5']) {
|
|
138
|
-
try {
|
|
139
|
-
await this.get(modelName);
|
|
140
|
-
}
|
|
141
|
-
catch (_error) {
|
|
142
|
-
try {
|
|
143
|
-
// Nothing found, so port it.
|
|
144
|
-
Logger_1.appLogger.info(`Found Anthropic API key, setting up '${modelName}' GPT config.`);
|
|
145
|
-
await this.set(modelName, {
|
|
146
|
-
type: 'ANTHROPIC',
|
|
147
|
-
apiKey: apiKeysData.ANTHROPIC,
|
|
148
|
-
modelName: modelName,
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
catch (error) {
|
|
152
|
-
Logger_1.appLogger.warn(`Failed to create default GPT configuration for model: ${modelName}`, error);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
// Setup Donobu GPT client configuration.
|
|
158
|
-
if (apiKeysData.DONOBU) {
|
|
159
|
-
const configName = 'donobu-gpt';
|
|
160
|
-
try {
|
|
161
|
-
await this.get(configName);
|
|
162
|
-
}
|
|
163
|
-
catch (_error) {
|
|
164
|
-
try {
|
|
165
|
-
// Nothing found, so port it.
|
|
166
|
-
Logger_1.appLogger.info(`Found Donobu GPT key, setting up '${configName}' GPT config.`);
|
|
167
|
-
await this.set(configName, {
|
|
168
|
-
type: 'DONOBU',
|
|
169
|
-
apiKey: apiKeysData.DONOBU,
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
catch (error) {
|
|
173
|
-
Logger_1.appLogger.warn(`Failed to create ${configName} GPT configuration`, error);
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
// Setup Google GPT configurations.
|
|
178
|
-
if (apiKeysData.GOOGLE) {
|
|
179
|
-
for (const modelName of ['gemini-2.5-flash']) {
|
|
180
|
-
try {
|
|
181
|
-
await this.get(modelName);
|
|
182
|
-
}
|
|
183
|
-
catch (_error) {
|
|
184
|
-
try {
|
|
185
|
-
// Nothing found, so port it.
|
|
186
|
-
Logger_1.appLogger.info(`Found Google API key, setting up '${modelName}' GPT config.`);
|
|
187
|
-
await this.set(modelName, {
|
|
188
|
-
type: 'GOOGLE_GEMINI',
|
|
189
|
-
apiKey: apiKeysData.GOOGLE,
|
|
190
|
-
modelName: modelName,
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
catch (error) {
|
|
194
|
-
Logger_1.appLogger.warn(`Failed to create default GPT configuration for model: ${modelName}`, error);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
// Setup OpenAI GPT configurations.
|
|
200
|
-
if (apiKeysData.OPENAI) {
|
|
201
|
-
for (const modelName of ['gpt-5.1']) {
|
|
202
|
-
try {
|
|
203
|
-
await this.get(modelName);
|
|
204
|
-
}
|
|
205
|
-
catch (_error) {
|
|
206
|
-
try {
|
|
207
|
-
// Nothing found, so port it.
|
|
208
|
-
Logger_1.appLogger.info(`Found OpenAI API key, setting up '${modelName}' GPT config.`);
|
|
209
|
-
await this.set(modelName, {
|
|
210
|
-
type: 'OPENAI',
|
|
211
|
-
apiKey: apiKeysData.OPENAI,
|
|
212
|
-
modelName: modelName,
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
|
-
catch (error) {
|
|
216
|
-
Logger_1.appLogger.warn(`Failed to create default GPT configuration for model: ${modelName}`, error);
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
// Remove the legacy API keys file if it exists.
|
|
222
|
-
try {
|
|
223
|
-
await fs.rm(apiKeysFilepath);
|
|
224
|
-
}
|
|
225
|
-
catch (_error) {
|
|
226
|
-
// No-op.
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
53
|
}
|
|
230
54
|
exports.GptConfigsManager = GptConfigsManager;
|
|
231
55
|
//# sourceMappingURL=GptConfigsManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GptConfigsManager.js","sourceRoot":"","sources":["../../src/managers/GptConfigsManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GptConfigsManager.js","sourceRoot":"","sources":["../../src/managers/GptConfigsManager.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAM3B;;;GAGG;AACH,MAAa,iBAAiB;IAC5B,YACmB,WAAkC,EAClC,gBAAkC;QADlC,gBAAW,GAAX,WAAW,CAAuB;QAClC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAClD,CAAC;IAEG,MAAM,CAAC,KAAK,CAAC,MAAM,CACxB,WAAkC,EAClC,gBAAkC;QAElC,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,MAAiB;QAC9C,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,GAAG,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,MAAM;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,MAAM,CAAC,IAAY;QAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,sBAAsB,CAClC,IAAY,EACZ,MAAiB;QAEjB,MAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,wDAAwD;QACxD,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;CACF;AAxDD,8CAwDC"}
|
|
@@ -24,7 +24,7 @@ import type { InteractableElement } from '../models/InteractableElement';
|
|
|
24
24
|
* @example
|
|
25
25
|
* ```typescript
|
|
26
26
|
* // Basic usage
|
|
27
|
-
* await
|
|
27
|
+
* await PlaywrightUtils.setupBasicBrowserContext(browserContext);
|
|
28
28
|
* const inspector = new PageInspector();
|
|
29
29
|
*
|
|
30
30
|
* const page = await browserContext.newPage();
|
|
@@ -33,7 +33,7 @@ const PlaywrightUtils_1 = require("../utils/PlaywrightUtils");
|
|
|
33
33
|
* @example
|
|
34
34
|
* ```typescript
|
|
35
35
|
* // Basic usage
|
|
36
|
-
* await
|
|
36
|
+
* await PlaywrightUtils.setupBasicBrowserContext(browserContext);
|
|
37
37
|
* const inspector = new PageInspector();
|
|
38
38
|
*
|
|
39
39
|
* const page = await browserContext.newPage();
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { DonobuFlow } from '../managers/DonobuFlow';
|
|
2
|
+
/**
|
|
3
|
+
* Handle that pairs an active DonobuFlow with its running job promise.
|
|
4
|
+
*
|
|
5
|
+
* Exposed separately so FlowRuntime and callers can share the same shape
|
|
6
|
+
* without importing the entire DonobuFlowsManager.
|
|
7
|
+
*/
|
|
8
|
+
export interface FlowHandle {
|
|
9
|
+
donobuFlow: DonobuFlow;
|
|
10
|
+
job: Promise<Record<string, unknown> | null>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=FlowHandle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowHandle.d.ts","sourceRoot":"","sources":["../../src/models/FlowHandle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;CAC9C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowHandle.js","sourceRoot":"","sources":["../../src/models/FlowHandle.ts"],"names":[],"mappings":""}
|
|
@@ -24,8 +24,8 @@ exports.InputRandomizedEmailAddressGptSchema = v4_1.z.object({
|
|
|
24
24
|
class InputRandomizedEmailAddressTool extends ReplayableInteraction_1.ReplayableInteraction {
|
|
25
25
|
constructor() {
|
|
26
26
|
super(InputRandomizedEmailAddressTool.NAME, `Create a new randomized email address based on a given email and inputs it to a specific input text field.
|
|
27
|
-
For example if passed "foo@gmail.com", this tool will create "foo+
|
|
28
|
-
|
|
27
|
+
For example if passed "foo@gmail.com", this tool will create "foo+RANDOM@gmail.com", where
|
|
28
|
+
RANDOM is a random string of characters safe for use in an email address, and input it in the
|
|
29
29
|
specified text field.`, exports.InputRandomizedEmailAddressCoreSchema, exports.InputRandomizedEmailAddressNonGptSchema, exports.InputRandomizedEmailAddressGptSchema);
|
|
30
30
|
}
|
|
31
31
|
async invoke(_context, parameters, element) {
|
package/dist/utils/Logger.d.ts
CHANGED
|
@@ -20,4 +20,5 @@ export declare function setProcessLocalFlowId(flowId: string | null): void;
|
|
|
20
20
|
export declare const appLogger: winston.Logger;
|
|
21
21
|
export declare const accessLogger: winston.Logger;
|
|
22
22
|
export declare function logErrorWithoutStack(message: string, error: any, level?: 'error' | 'warn' | 'info' | 'debug'): void;
|
|
23
|
+
export declare function formatLogInfoForTest(info: any): any;
|
|
23
24
|
//# sourceMappingURL=Logger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/utils/Logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,OAAO,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/utils/Logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,OAAO,MAAM,SAAS,CAAC;AAoJ9B,eAAO,MAAM,cAAc,4BAA0B,CAAC;AAGtD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEjE;AAgBD,eAAO,MAAM,SAAS,gBA+BpB,CAAC;AAGH,eAAO,MAAM,YAAY,gBA2BvB,CAAC;AAEH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,GAAG,EACV,KAAK,GAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAiB,GACnD,IAAI,CAuBN;AAGD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAEnD"}
|
package/dist/utils/Logger.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.accessLogger = exports.appLogger = exports.loggingContext = void 0;
|
|
7
7
|
exports.setProcessLocalFlowId = setProcessLocalFlowId;
|
|
8
8
|
exports.logErrorWithoutStack = logErrorWithoutStack;
|
|
9
|
+
exports.formatLogInfoForTest = formatLogInfoForTest;
|
|
9
10
|
// utils/logger.ts
|
|
10
11
|
const async_hooks_1 = require("async_hooks");
|
|
11
12
|
const path_1 = __importDefault(require("path"));
|
|
@@ -20,28 +21,111 @@ const MAX_FILES = 2;
|
|
|
20
21
|
function formatError(error) {
|
|
21
22
|
return `${error.constructor.name}: ${error.message}\n${error.stack || ''}`;
|
|
22
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Winston stores extra positional args (e.g., logger.error('msg', err, meta))
|
|
26
|
+
* on this symbol when no `format.splat()` is used. We pull from it so that
|
|
27
|
+
* callers who pass Errors or other values as additional arguments still get
|
|
28
|
+
* those details rendered, even though we do our own formatting.
|
|
29
|
+
*/
|
|
30
|
+
const SPLAT = Symbol.for('splat');
|
|
31
|
+
function stringifyUnknown(value) {
|
|
32
|
+
if (value === null) {
|
|
33
|
+
return 'null';
|
|
34
|
+
}
|
|
35
|
+
if (value === undefined) {
|
|
36
|
+
return 'undefined';
|
|
37
|
+
}
|
|
38
|
+
if (typeof value === 'string') {
|
|
39
|
+
return value;
|
|
40
|
+
}
|
|
41
|
+
if (typeof value === 'number' ||
|
|
42
|
+
typeof value === 'boolean' ||
|
|
43
|
+
typeof value === 'bigint') {
|
|
44
|
+
return String(value);
|
|
45
|
+
}
|
|
46
|
+
if (typeof value === 'symbol') {
|
|
47
|
+
return value.toString();
|
|
48
|
+
}
|
|
49
|
+
if (typeof value === 'function') {
|
|
50
|
+
return `[function ${value.name || 'anonymous'}]`;
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
return JSON.stringify(value);
|
|
54
|
+
}
|
|
55
|
+
catch (_error) {
|
|
56
|
+
try {
|
|
57
|
+
return String(value);
|
|
58
|
+
}
|
|
59
|
+
catch (_stringifyError) {
|
|
60
|
+
return '[Unserializable value]';
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Extracts an Error instance that winston may have tucked into the splat array
|
|
66
|
+
* or the `error` property when logging like `logger.error('msg', error)`.
|
|
67
|
+
*/
|
|
68
|
+
function getErrorFromInfo(info) {
|
|
69
|
+
if (info instanceof Error) {
|
|
70
|
+
return info;
|
|
71
|
+
}
|
|
72
|
+
if (info?.error instanceof Error) {
|
|
73
|
+
return info.error;
|
|
74
|
+
}
|
|
75
|
+
const splat = info?.[SPLAT];
|
|
76
|
+
if (Array.isArray(splat)) {
|
|
77
|
+
const errorFromSplat = splat.find((item) => item instanceof Error);
|
|
78
|
+
if (errorFromSplat) {
|
|
79
|
+
return errorFromSplat;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Collects non-Error details that may have been passed to the logger so we can
|
|
86
|
+
* still surface something meaningful (e.g., thrown numbers/strings).
|
|
87
|
+
*/
|
|
88
|
+
function getNonErrorDetails(info) {
|
|
89
|
+
const details = [];
|
|
90
|
+
if (info?.error && !(info.error instanceof Error)) {
|
|
91
|
+
details.push(stringifyUnknown(info.error));
|
|
92
|
+
}
|
|
93
|
+
const splat = info?.[SPLAT];
|
|
94
|
+
if (Array.isArray(splat)) {
|
|
95
|
+
splat.forEach((item) => {
|
|
96
|
+
if (!(item instanceof Error)) {
|
|
97
|
+
details.push(stringifyUnknown(item));
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
if (details.length === 0) {
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
return `Details: ${details.join(' | ')}`;
|
|
105
|
+
}
|
|
23
106
|
// Configure common logging settings
|
|
24
107
|
const basePath = MiscUtils_1.MiscUtils.baseWorkingDirectory();
|
|
25
108
|
const timestampFormat = 'YYYY-MM-DD HH:mm:ss';
|
|
26
109
|
// Custom format that handles errors properly
|
|
27
110
|
const errorAwareFormat = winston_1.default.format((info) => {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
stack: info.stack,
|
|
33
|
-
name: info.constructor.name,
|
|
34
|
-
};
|
|
111
|
+
const error = getErrorFromInfo(info);
|
|
112
|
+
const nonErrorDetails = getNonErrorDetails(info);
|
|
113
|
+
if (!error && !nonErrorDetails) {
|
|
114
|
+
return info;
|
|
35
115
|
}
|
|
36
|
-
|
|
116
|
+
const messagePrefix = info instanceof Error || !info?.message ? '' : `${info.message}\n`;
|
|
117
|
+
if (error) {
|
|
37
118
|
return {
|
|
38
119
|
...info,
|
|
39
|
-
message: `${
|
|
40
|
-
stack:
|
|
41
|
-
name:
|
|
120
|
+
message: `${messagePrefix}${formatError(error)}`,
|
|
121
|
+
stack: error.stack,
|
|
122
|
+
name: error.constructor.name,
|
|
42
123
|
};
|
|
43
124
|
}
|
|
44
|
-
return
|
|
125
|
+
return {
|
|
126
|
+
...info,
|
|
127
|
+
message: `${messagePrefix}${nonErrorDetails}`,
|
|
128
|
+
};
|
|
45
129
|
});
|
|
46
130
|
exports.loggingContext = new async_hooks_1.AsyncLocalStorage();
|
|
47
131
|
let processLocalFlowId = null;
|
|
@@ -130,4 +214,8 @@ function logErrorWithoutStack(message, error, level = 'error') {
|
|
|
130
214
|
: `${errorName}: ${errorMessage}`;
|
|
131
215
|
exports.appLogger.log({ level, message: composedMessage, errorName, errorMessage });
|
|
132
216
|
}
|
|
217
|
+
// Test helper to exercise the error-aware formatting logic without invoking transports.
|
|
218
|
+
function formatLogInfoForTest(info) {
|
|
219
|
+
return errorAwareFormat().transform({ ...info });
|
|
220
|
+
}
|
|
133
221
|
//# sourceMappingURL=Logger.js.map
|
package/dist/utils/Logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/utils/Logger.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/utils/Logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,10 @@ export declare class PlaywrightUtils {
|
|
|
12
12
|
* Playwright actions. See `DonobuFlow.onDialog(Dialog)` for details.
|
|
13
13
|
*/
|
|
14
14
|
private static readonly DIALOG_PROMPT_TRACKER_INIT_SCRIPT;
|
|
15
|
+
/**
|
|
16
|
+
* Initialization script that establishes the shared Donobu namespace once.
|
|
17
|
+
*/
|
|
18
|
+
static readonly DONOBU_NAMESPACE_INIT_SCRIPT: string;
|
|
15
19
|
/**
|
|
16
20
|
* Returns a JavaScript code snippet intended to run as an initialization
|
|
17
21
|
* script for `DonobuFlow` flows. This enables the {@link ReplayableInteraction}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaywrightUtils.d.ts","sourceRoot":"","sources":["../../src/utils/PlaywrightUtils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,cAAc,EACd,OAAO,EACP,IAAI,EACJ,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAOpB;;;GAGG;AACH,qBAAa,eAAe;IAC1B;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iCAAiC,CACkB;IAE3E;;;;;OAKG;IACH,gBAAuB,oCAAoC,SACmB;IAE9E;;;;;;;;;OASG;WACiB,sBAAsB,CACxC,IAAI,EAAE,IAAI,EACV,OAAO,GAAE,qBAER,GACA,OAAO,CAAC,MAAM,CAAC;IAYlB;;;;;;;;;;OAUG;WACiB,iBAAiB,CAAC,OAAO,EAAE;QAC7C,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;KAC/B,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAMrB;;;;OAIG;WACiB,wBAAwB,CAC1C,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"PlaywrightUtils.d.ts","sourceRoot":"","sources":["../../src/utils/PlaywrightUtils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,cAAc,EACd,OAAO,EACP,IAAI,EACJ,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAOpB;;;GAGG;AACH,qBAAa,eAAe;IAC1B;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iCAAiC,CACkB;IAE3E;;OAEG;IACH,gBAAuB,4BAA4B,SACmB;IAEtE;;;;;OAKG;IACH,gBAAuB,oCAAoC,SACmB;IAE9E;;;;;;;;;OASG;WACiB,sBAAsB,CACxC,IAAI,EAAE,IAAI,EACV,OAAO,GAAE,qBAER,GACA,OAAO,CAAC,MAAM,CAAC;IAYlB;;;;;;;;;;OAUG;WACiB,iBAAiB,CAAC,OAAO,EAAE;QAC7C,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;KAC/B,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAMrB;;;;OAIG;WACiB,wBAAwB,CAC1C,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,IAAI,CAAC;IAahB;;;OAGG;WACW,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;WAkBhC,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;WAI7C,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgDnE;;;;OAIG;WACiB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB1E;;OAEG;WACW,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;WAa1C,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;CAU1D"}
|
|
@@ -63,6 +63,7 @@ class PlaywrightUtils {
|
|
|
63
63
|
* scripts.
|
|
64
64
|
*/
|
|
65
65
|
static async setupBasicBrowserContext(browserContext) {
|
|
66
|
+
await browserContext.addInitScript(PlaywrightUtils.DONOBU_NAMESPACE_INIT_SCRIPT);
|
|
66
67
|
await browserContext.addInitScript(PageInspector_1.PageInspector.INIT_SCRIPT);
|
|
67
68
|
await browserContext.addInitScript(PlaywrightUtils.DIALOG_PROMPT_TRACKER_INIT_SCRIPT);
|
|
68
69
|
await browserContext.addInitScript(PlaywrightUtils.SMART_SELECTOR_GENERATOR_INIT_SCRIPT);
|
|
@@ -191,6 +192,10 @@ exports.PlaywrightUtils = PlaywrightUtils;
|
|
|
191
192
|
* Playwright actions. See `DonobuFlow.onDialog(Dialog)` for details.
|
|
192
193
|
*/
|
|
193
194
|
PlaywrightUtils.DIALOG_PROMPT_TRACKER_INIT_SCRIPT = MiscUtils_1.MiscUtils.getResourceFileAsString(path_1.default.join('dialog-prompt-tracker.js'));
|
|
195
|
+
/**
|
|
196
|
+
* Initialization script that establishes the shared Donobu namespace once.
|
|
197
|
+
*/
|
|
198
|
+
PlaywrightUtils.DONOBU_NAMESPACE_INIT_SCRIPT = MiscUtils_1.MiscUtils.getResourceFileAsString(path_1.default.join('donobu-namespace.js'));
|
|
194
199
|
/**
|
|
195
200
|
* Returns a JavaScript code snippet intended to run as an initialization
|
|
196
201
|
* script for `DonobuFlow` flows. This enables the {@link ReplayableInteraction}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaywrightUtils.js","sourceRoot":"","sources":["../../src/utils/PlaywrightUtils.ts"],"names":[],"mappings":";;;;;;AAAA,qBAAqB;AACrB,iDAAsC;AACtC,gDAAwB;AAQxB,2EAAwE;AACxE,6DAA0D;AAC1D,qCAA2D;AAC3D,2CAAwC;AAExC;;;GAGG;AACH,MAAa,eAAe;
|
|
1
|
+
{"version":3,"file":"PlaywrightUtils.js","sourceRoot":"","sources":["../../src/utils/PlaywrightUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { Request, Response } from 'express';
|
|
2
|
-
import type { DonobuFlowsManager } from '../managers/DonobuFlowsManager';
|
|
3
|
-
/**
|
|
4
|
-
* This class defines the API for special flows (i.e. flows that are essentially
|
|
5
|
-
* pre-defined and have a specific purpose).
|
|
6
|
-
*/
|
|
7
|
-
export declare class SpecialFlowsApi {
|
|
8
|
-
private readonly donobuFlowsManager;
|
|
9
|
-
constructor(donobuFlowsManager: DonobuFlowsManager);
|
|
10
|
-
analyzeCookieConsent(req: Request, res: Response): Promise<void>;
|
|
11
|
-
detectBrokenLinks(req: Request, res: Response): Promise<void>;
|
|
12
|
-
extractPublicFacebookEntityData(req: Request, res: Response): Promise<void>;
|
|
13
|
-
extractPaymentProviderData(req: Request, res: Response): Promise<void>;
|
|
14
|
-
extractGoogleStreetviewEntityData(req: Request, res: Response): Promise<void>;
|
|
15
|
-
private divineTargetEntityDataFromGoogleMapUrl;
|
|
16
|
-
private wrapUp;
|
|
17
|
-
private wrapUpWithStreetDataRecovery;
|
|
18
|
-
private parseUrl;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=SpecialFlowsApi.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpecialFlowsApi.d.ts","sourceRoot":"","sources":["../../src/apis/SpecialFlowsApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAMjD,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,gCAAgC,CAAC;AAqBxC;;;GAGG;AACH,qBAAa,eAAe;IACP,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAAlB,kBAAkB,EAAE,kBAAkB;IAE7D,oBAAoB,CAC/B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACZ,OAAO,CAAC,IAAI,CAAC;IAyIH,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B7D,+BAA+B,CAC1C,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACZ,OAAO,CAAC,IAAI,CAAC;IAwCH,0BAA0B,CACrC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACZ,OAAO,CAAC,IAAI,CAAC;IAmDH,iCAAiC,CAC5C,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACZ,OAAO,CAAC,IAAI,CAAC;YA6IF,sCAAsC;YAqBtC,MAAM;YA8BN,4BAA4B;IA8C1C,OAAO,CAAC,QAAQ;CAWjB"}
|