@microsoft/agents-hosting-storage-cosmos 1.7.2 → 1.8.0-beta.36.gb033f0abc1
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/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@microsoft/agents-hosting-storage-cosmos",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.8.0-beta.36.gb033f0abc1",
|
|
5
5
|
"homepage": "https://github.com/microsoft/Agents-for-js",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -13,13 +13,13 @@
|
|
|
13
13
|
"url": "https://aka.ms/Agents"
|
|
14
14
|
},
|
|
15
15
|
"description": "Microsoft 365 Agents SDK State Cosmos Storage support.",
|
|
16
|
-
"main": "dist/index.js",
|
|
16
|
+
"main": "dist/src/index.js",
|
|
17
17
|
"types": "dist/src/index.d.ts",
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@azure/cosmos": "4.9.3",
|
|
20
|
-
"@microsoft/agents-hosting": "1.
|
|
21
|
-
"@microsoft/agents-activity": "1.
|
|
22
|
-
"@microsoft/agents-telemetry": "1.
|
|
20
|
+
"@microsoft/agents-hosting": "1.8.0-beta.36.gb033f0abc1",
|
|
21
|
+
"@microsoft/agents-activity": "1.8.0-beta.36.gb033f0abc1",
|
|
22
|
+
"@microsoft/agents-telemetry": "1.8.0-beta.36.gb033f0abc1"
|
|
23
23
|
},
|
|
24
24
|
"license": "MIT",
|
|
25
25
|
"files": [
|
|
@@ -12,13 +12,15 @@ const agents_telemetry_1 = require("@microsoft/agents-telemetry");
|
|
|
12
12
|
const observability_1 = require("./observability");
|
|
13
13
|
const agents_telemetry_2 = require("@microsoft/agents-telemetry");
|
|
14
14
|
const logger = (0, agents_telemetry_2.debug)('agents:cosmos-storage');
|
|
15
|
+
const maxCachedInitializations = 100;
|
|
15
16
|
/**
|
|
16
17
|
* A utility class to ensure that a specific asynchronous task is executed only once for a given key.
|
|
17
18
|
* @typeParam T The type of the result returned by the asynchronous task.
|
|
18
19
|
*/
|
|
19
20
|
class DoOnce {
|
|
20
|
-
constructor() {
|
|
21
|
-
this.
|
|
21
|
+
constructor(maxTasks) {
|
|
22
|
+
this.maxTasks = maxTasks;
|
|
23
|
+
this.tasks = new Map();
|
|
22
24
|
}
|
|
23
25
|
/**
|
|
24
26
|
* Waits for the task associated with the given key to complete, or starts the task if it hasn't been started yet.
|
|
@@ -27,14 +29,54 @@ class DoOnce {
|
|
|
27
29
|
* @returns A promise that resolves to the result of the task.
|
|
28
30
|
*/
|
|
29
31
|
waitFor(key, fn) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
const existingTask = this.tasks.get(key);
|
|
33
|
+
if (existingTask) {
|
|
34
|
+
this.tasks.delete(key);
|
|
35
|
+
this.tasks.set(key, existingTask);
|
|
36
|
+
return existingTask.promise;
|
|
37
|
+
}
|
|
38
|
+
const cachedTask = {
|
|
39
|
+
promise: Promise.resolve().then(fn),
|
|
40
|
+
settled: false,
|
|
41
|
+
};
|
|
42
|
+
this.tasks.set(key, cachedTask);
|
|
43
|
+
cachedTask.promise.then(() => {
|
|
44
|
+
if (this.tasks.get(key) === cachedTask) {
|
|
45
|
+
cachedTask.settled = true;
|
|
46
|
+
this.evictLeastRecentlyUsed();
|
|
47
|
+
}
|
|
48
|
+
}, () => {
|
|
49
|
+
if (this.tasks.get(key) === cachedTask) {
|
|
50
|
+
this.tasks.delete(key);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
this.evictLeastRecentlyUsed();
|
|
54
|
+
return cachedTask.promise;
|
|
55
|
+
}
|
|
56
|
+
evictLeastRecentlyUsed() {
|
|
57
|
+
while (this.tasks.size > this.maxTasks) {
|
|
58
|
+
let evicted = false;
|
|
59
|
+
for (const [key, task] of this.tasks) {
|
|
60
|
+
if (task.settled) {
|
|
61
|
+
this.tasks.delete(key);
|
|
62
|
+
evicted = true;
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (!evicted) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
32
69
|
}
|
|
33
|
-
return this.task[key];
|
|
34
70
|
}
|
|
35
71
|
}
|
|
36
|
-
const _doOnce = new DoOnce();
|
|
72
|
+
const _doOnce = new DoOnce(maxCachedInitializations);
|
|
37
73
|
const maxDepthAllowed = 127;
|
|
74
|
+
function isNotFoundError(err) {
|
|
75
|
+
if (!err || typeof err !== 'object' || !('code' in err)) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
return Number(err.code) === 404;
|
|
79
|
+
}
|
|
38
80
|
/**
|
|
39
81
|
* Implements storage using Cosmos DB partitioned storage.
|
|
40
82
|
*/
|
|
@@ -198,16 +240,26 @@ class CosmosDbPartitionedStorage {
|
|
|
198
240
|
*/
|
|
199
241
|
async initialize() {
|
|
200
242
|
if (!this.container) {
|
|
201
|
-
|
|
202
|
-
this.
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
243
|
+
const dbAndContainerKey = JSON.stringify([
|
|
244
|
+
this.cosmosDbStorageOptions.cosmosClientOptions.endpoint,
|
|
245
|
+
this.cosmosDbStorageOptions.databaseId,
|
|
246
|
+
this.cosmosDbStorageOptions.containerId,
|
|
247
|
+
]);
|
|
248
|
+
const initialization = await _doOnce.waitFor(dbAndContainerKey, () => {
|
|
249
|
+
if (!this.client) {
|
|
250
|
+
this.client = new cosmos_1.CosmosClient(this.cosmosDbStorageOptions.cosmosClientOptions);
|
|
251
|
+
}
|
|
252
|
+
return this.getOrCreateContainer();
|
|
253
|
+
});
|
|
254
|
+
this.container = initialization.container;
|
|
255
|
+
this.compatibilityModePartitionKey = initialization.compatibilityModePartitionKey;
|
|
206
256
|
}
|
|
207
257
|
}
|
|
208
258
|
async getOrCreateContainer() {
|
|
259
|
+
var _a, _b;
|
|
209
260
|
let createIfNotExists = !this.cosmosDbStorageOptions.compatibilityMode;
|
|
210
261
|
let container;
|
|
262
|
+
let compatibilityModePartitionKey = false;
|
|
211
263
|
try {
|
|
212
264
|
const { database } = await this.client.databases.createIfNotExists({
|
|
213
265
|
id: this.cosmosDbStorageOptions.databaseId
|
|
@@ -215,12 +267,11 @@ class CosmosDbPartitionedStorage {
|
|
|
215
267
|
if (this.cosmosDbStorageOptions.compatibilityMode) {
|
|
216
268
|
try {
|
|
217
269
|
container = database.container(this.cosmosDbStorageOptions.containerId);
|
|
218
|
-
|
|
219
|
-
const
|
|
220
|
-
if (
|
|
221
|
-
const paths = partitionKeyResponse.resource.paths;
|
|
270
|
+
const containerResponse = await container.read();
|
|
271
|
+
const paths = (_b = (_a = containerResponse.resource) === null || _a === void 0 ? void 0 : _a.partitionKey) === null || _b === void 0 ? void 0 : _b.paths;
|
|
272
|
+
if (paths) {
|
|
222
273
|
if (paths.includes('/_partitionKey')) {
|
|
223
|
-
|
|
274
|
+
compatibilityModePartitionKey = true;
|
|
224
275
|
}
|
|
225
276
|
else if (paths.indexOf(documentStoreItem_1.DocumentStoreItem.partitionKeyPath) === -1) {
|
|
226
277
|
throw agents_activity_1.ExceptionHelper.generateException(Error, errorHelper_1.Errors.UnsupportedCustomPartitionKeyPath, undefined, {
|
|
@@ -230,11 +281,14 @@ class CosmosDbPartitionedStorage {
|
|
|
230
281
|
}
|
|
231
282
|
}
|
|
232
283
|
else {
|
|
233
|
-
|
|
284
|
+
compatibilityModePartitionKey = true;
|
|
234
285
|
}
|
|
235
|
-
return container;
|
|
286
|
+
return { container, compatibilityModePartitionKey };
|
|
236
287
|
}
|
|
237
|
-
catch {
|
|
288
|
+
catch (err) {
|
|
289
|
+
if (!isNotFoundError(err)) {
|
|
290
|
+
throw err;
|
|
291
|
+
}
|
|
238
292
|
createIfNotExists = true;
|
|
239
293
|
}
|
|
240
294
|
}
|
|
@@ -246,12 +300,12 @@ class CosmosDbPartitionedStorage {
|
|
|
246
300
|
},
|
|
247
301
|
throughput: this.cosmosDbStorageOptions.containerThroughput,
|
|
248
302
|
});
|
|
249
|
-
return result.container;
|
|
303
|
+
return { container: result.container, compatibilityModePartitionKey };
|
|
250
304
|
}
|
|
251
305
|
if (!container) {
|
|
252
306
|
throw agents_activity_1.ExceptionHelper.generateException(Error, errorHelper_1.Errors.ContainerNotFound, undefined, { containerId: this.cosmosDbStorageOptions.containerId });
|
|
253
307
|
}
|
|
254
|
-
return container;
|
|
308
|
+
return { container, compatibilityModePartitionKey };
|
|
255
309
|
}
|
|
256
310
|
catch (err) {
|
|
257
311
|
throw agents_activity_1.ExceptionHelper.generateException(Error, errorHelper_1.Errors.InitializationError, err, {
|
|
@@ -264,6 +318,7 @@ class CosmosDbPartitionedStorage {
|
|
|
264
318
|
return this.compatibilityModePartitionKey ? undefined : key;
|
|
265
319
|
}
|
|
266
320
|
checkForNestingError(json, err) {
|
|
321
|
+
const ancestors = new WeakSet();
|
|
267
322
|
const checkDepth = (obj, depth, isInDialogState) => {
|
|
268
323
|
if (depth > maxDepthAllowed) {
|
|
269
324
|
let additionalMessage = '';
|
|
@@ -288,8 +343,17 @@ class CosmosDbPartitionedStorage {
|
|
|
288
343
|
});
|
|
289
344
|
}
|
|
290
345
|
else if (obj && typeof obj === 'object') {
|
|
291
|
-
|
|
292
|
-
|
|
346
|
+
if (ancestors.has(obj)) {
|
|
347
|
+
return;
|
|
348
|
+
}
|
|
349
|
+
ancestors.add(obj);
|
|
350
|
+
try {
|
|
351
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
352
|
+
checkDepth(value, depth + 1, key === 'dialogStack' || isInDialogState);
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
finally {
|
|
356
|
+
ancestors.delete(obj);
|
|
293
357
|
}
|
|
294
358
|
}
|
|
295
359
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cosmosDbPartitionedStorage.js","sourceRoot":"","sources":["../../src/cosmosDbPartitionedStorage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cosmosDbPartitionedStorage.js","sourceRoot":"","sources":["../../src/cosmosDbPartitionedStorage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@microsoft/agents-hosting-storage-cosmos",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.8.0-beta.36.gb033f0abc1",
|
|
5
5
|
"homepage": "https://github.com/microsoft/Agents-for-js",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -13,13 +13,13 @@
|
|
|
13
13
|
"url": "https://aka.ms/Agents"
|
|
14
14
|
},
|
|
15
15
|
"description": "Microsoft 365 Agents SDK State Cosmos Storage support.",
|
|
16
|
-
"main": "dist/index.js",
|
|
16
|
+
"main": "dist/src/index.js",
|
|
17
17
|
"types": "dist/src/index.d.ts",
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@azure/cosmos": "4.9.3",
|
|
20
|
-
"@microsoft/agents-hosting": "1.
|
|
21
|
-
"@microsoft/agents-activity": "1.
|
|
22
|
-
"@microsoft/agents-telemetry": "1.
|
|
20
|
+
"@microsoft/agents-hosting": "1.8.0-beta.36.gb033f0abc1",
|
|
21
|
+
"@microsoft/agents-activity": "1.8.0-beta.36.gb033f0abc1",
|
|
22
|
+
"@microsoft/agents-telemetry": "1.8.0-beta.36.gb033f0abc1"
|
|
23
23
|
},
|
|
24
24
|
"license": "MIT",
|
|
25
25
|
"files": [
|
|
@@ -13,15 +13,21 @@ import { CosmosStorageTraceDefinitions } from './observability'
|
|
|
13
13
|
import { debug } from '@microsoft/agents-telemetry'
|
|
14
14
|
|
|
15
15
|
const logger = debug('agents:cosmos-storage')
|
|
16
|
+
const maxCachedInitializations = 100
|
|
17
|
+
|
|
18
|
+
interface CachedTask<T> {
|
|
19
|
+
promise: Promise<T>;
|
|
20
|
+
settled: boolean;
|
|
21
|
+
}
|
|
16
22
|
|
|
17
23
|
/**
|
|
18
24
|
* A utility class to ensure that a specific asynchronous task is executed only once for a given key.
|
|
19
25
|
* @typeParam T The type of the result returned by the asynchronous task.
|
|
20
26
|
*/
|
|
21
27
|
class DoOnce<T> {
|
|
22
|
-
private
|
|
23
|
-
|
|
24
|
-
|
|
28
|
+
private readonly tasks = new Map<string, CachedTask<T>>()
|
|
29
|
+
|
|
30
|
+
constructor (private readonly maxTasks: number) {}
|
|
25
31
|
|
|
26
32
|
/**
|
|
27
33
|
* Waits for the task associated with the given key to complete, or starts the task if it hasn't been started yet.
|
|
@@ -30,18 +36,67 @@ class DoOnce<T> {
|
|
|
30
36
|
* @returns A promise that resolves to the result of the task.
|
|
31
37
|
*/
|
|
32
38
|
waitFor (key: string, fn: () => Promise<T>): Promise<T> {
|
|
33
|
-
|
|
34
|
-
|
|
39
|
+
const existingTask = this.tasks.get(key)
|
|
40
|
+
if (existingTask) {
|
|
41
|
+
this.tasks.delete(key)
|
|
42
|
+
this.tasks.set(key, existingTask)
|
|
43
|
+
return existingTask.promise
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const cachedTask: CachedTask<T> = {
|
|
47
|
+
promise: Promise.resolve().then(fn),
|
|
48
|
+
settled: false,
|
|
35
49
|
}
|
|
50
|
+
this.tasks.set(key, cachedTask)
|
|
51
|
+
cachedTask.promise.then(() => {
|
|
52
|
+
if (this.tasks.get(key) === cachedTask) {
|
|
53
|
+
cachedTask.settled = true
|
|
54
|
+
this.evictLeastRecentlyUsed()
|
|
55
|
+
}
|
|
56
|
+
}, () => {
|
|
57
|
+
if (this.tasks.get(key) === cachedTask) {
|
|
58
|
+
this.tasks.delete(key)
|
|
59
|
+
}
|
|
60
|
+
})
|
|
61
|
+
this.evictLeastRecentlyUsed()
|
|
36
62
|
|
|
37
|
-
return
|
|
63
|
+
return cachedTask.promise
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
private evictLeastRecentlyUsed (): void {
|
|
67
|
+
while (this.tasks.size > this.maxTasks) {
|
|
68
|
+
let evicted = false
|
|
69
|
+
for (const [key, task] of this.tasks) {
|
|
70
|
+
if (task.settled) {
|
|
71
|
+
this.tasks.delete(key)
|
|
72
|
+
evicted = true
|
|
73
|
+
break
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (!evicted) {
|
|
77
|
+
return
|
|
78
|
+
}
|
|
79
|
+
}
|
|
38
80
|
}
|
|
39
81
|
}
|
|
40
82
|
|
|
41
|
-
|
|
83
|
+
interface ContainerInitialization {
|
|
84
|
+
container: Container;
|
|
85
|
+
compatibilityModePartitionKey: boolean;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const _doOnce: DoOnce<ContainerInitialization> = new DoOnce<ContainerInitialization>(maxCachedInitializations)
|
|
42
89
|
|
|
43
90
|
const maxDepthAllowed = 127
|
|
44
91
|
|
|
92
|
+
function isNotFoundError (err: unknown): boolean {
|
|
93
|
+
if (!err || typeof err !== 'object' || !('code' in err)) {
|
|
94
|
+
return false
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return Number(err.code) === 404
|
|
98
|
+
}
|
|
99
|
+
|
|
45
100
|
/**
|
|
46
101
|
* Implements storage using Cosmos DB partitioned storage.
|
|
47
102
|
*/
|
|
@@ -280,20 +335,29 @@ export class CosmosDbPartitionedStorage implements Storage {
|
|
|
280
335
|
*/
|
|
281
336
|
private async initialize (): Promise<void> {
|
|
282
337
|
if (!this.container) {
|
|
283
|
-
|
|
284
|
-
this.
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
338
|
+
const dbAndContainerKey = JSON.stringify([
|
|
339
|
+
this.cosmosDbStorageOptions.cosmosClientOptions!.endpoint,
|
|
340
|
+
this.cosmosDbStorageOptions.databaseId,
|
|
341
|
+
this.cosmosDbStorageOptions.containerId,
|
|
342
|
+
])
|
|
343
|
+
const initialization = await _doOnce.waitFor(
|
|
288
344
|
dbAndContainerKey,
|
|
289
|
-
|
|
345
|
+
() => {
|
|
346
|
+
if (!this.client) {
|
|
347
|
+
this.client = new CosmosClient(this.cosmosDbStorageOptions.cosmosClientOptions!)
|
|
348
|
+
}
|
|
349
|
+
return this.getOrCreateContainer()
|
|
350
|
+
}
|
|
290
351
|
)
|
|
352
|
+
this.container = initialization.container
|
|
353
|
+
this.compatibilityModePartitionKey = initialization.compatibilityModePartitionKey
|
|
291
354
|
}
|
|
292
355
|
}
|
|
293
356
|
|
|
294
|
-
private async getOrCreateContainer (): Promise<
|
|
357
|
+
private async getOrCreateContainer (): Promise<ContainerInitialization> {
|
|
295
358
|
let createIfNotExists = !this.cosmosDbStorageOptions.compatibilityMode
|
|
296
359
|
let container: Container | undefined
|
|
360
|
+
let compatibilityModePartitionKey = false
|
|
297
361
|
|
|
298
362
|
try {
|
|
299
363
|
const { database } = await this.client.databases.createIfNotExists({
|
|
@@ -303,12 +367,11 @@ export class CosmosDbPartitionedStorage implements Storage {
|
|
|
303
367
|
if (this.cosmosDbStorageOptions.compatibilityMode) {
|
|
304
368
|
try {
|
|
305
369
|
container = database.container(this.cosmosDbStorageOptions.containerId)
|
|
306
|
-
|
|
307
|
-
const
|
|
308
|
-
if (
|
|
309
|
-
const paths = partitionKeyResponse.resource.paths
|
|
370
|
+
const containerResponse = await container.read()
|
|
371
|
+
const paths = containerResponse.resource?.partitionKey?.paths
|
|
372
|
+
if (paths) {
|
|
310
373
|
if (paths.includes('/_partitionKey')) {
|
|
311
|
-
|
|
374
|
+
compatibilityModePartitionKey = true
|
|
312
375
|
} else if (paths.indexOf(DocumentStoreItem.partitionKeyPath) === -1) {
|
|
313
376
|
throw ExceptionHelper.generateException(
|
|
314
377
|
Error,
|
|
@@ -321,10 +384,13 @@ export class CosmosDbPartitionedStorage implements Storage {
|
|
|
321
384
|
)
|
|
322
385
|
}
|
|
323
386
|
} else {
|
|
324
|
-
|
|
387
|
+
compatibilityModePartitionKey = true
|
|
388
|
+
}
|
|
389
|
+
return { container, compatibilityModePartitionKey }
|
|
390
|
+
} catch (err: unknown) {
|
|
391
|
+
if (!isNotFoundError(err)) {
|
|
392
|
+
throw err
|
|
325
393
|
}
|
|
326
|
-
return container
|
|
327
|
-
} catch {
|
|
328
394
|
createIfNotExists = true
|
|
329
395
|
}
|
|
330
396
|
}
|
|
@@ -337,7 +403,7 @@ export class CosmosDbPartitionedStorage implements Storage {
|
|
|
337
403
|
},
|
|
338
404
|
throughput: this.cosmosDbStorageOptions.containerThroughput,
|
|
339
405
|
})
|
|
340
|
-
return result.container
|
|
406
|
+
return { container: result.container, compatibilityModePartitionKey }
|
|
341
407
|
}
|
|
342
408
|
|
|
343
409
|
if (!container) {
|
|
@@ -348,7 +414,7 @@ export class CosmosDbPartitionedStorage implements Storage {
|
|
|
348
414
|
{ containerId: this.cosmosDbStorageOptions.containerId }
|
|
349
415
|
)
|
|
350
416
|
}
|
|
351
|
-
return container
|
|
417
|
+
return { container, compatibilityModePartitionKey }
|
|
352
418
|
} catch (err: any) {
|
|
353
419
|
throw ExceptionHelper.generateException(
|
|
354
420
|
Error,
|
|
@@ -367,6 +433,8 @@ export class CosmosDbPartitionedStorage implements Storage {
|
|
|
367
433
|
}
|
|
368
434
|
|
|
369
435
|
private checkForNestingError (json: object, err: Error | Record<'message', string> | string): void {
|
|
436
|
+
const ancestors = new WeakSet<object>()
|
|
437
|
+
|
|
370
438
|
const checkDepth = (obj: unknown, depth: number, isInDialogState: boolean): void => {
|
|
371
439
|
if (depth > maxDepthAllowed) {
|
|
372
440
|
let additionalMessage = ''
|
|
@@ -397,8 +465,17 @@ export class CosmosDbPartitionedStorage implements Storage {
|
|
|
397
465
|
}
|
|
398
466
|
)
|
|
399
467
|
} else if (obj && typeof obj === 'object') {
|
|
400
|
-
|
|
401
|
-
|
|
468
|
+
if (ancestors.has(obj)) {
|
|
469
|
+
return
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
ancestors.add(obj)
|
|
473
|
+
try {
|
|
474
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
475
|
+
checkDepth(value, depth + 1, key === 'dialogStack' || isInDialogState)
|
|
476
|
+
}
|
|
477
|
+
} finally {
|
|
478
|
+
ancestors.delete(obj)
|
|
402
479
|
}
|
|
403
480
|
}
|
|
404
481
|
}
|