@umbraco/playwright-testhelpers 17.0.0-beta.11 → 17.0.0-beta.13
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/lib/helpers/ApiHelpers.d.ts +13 -24
- package/dist/lib/helpers/ApiHelpers.js +30 -74
- package/dist/lib/helpers/ApiHelpers.js.map +1 -1
- package/dist/lib/helpers/LoginApiHelper.d.ts +4 -8
- package/dist/lib/helpers/LoginApiHelper.js +15 -16
- package/dist/lib/helpers/LoginApiHelper.js.map +1 -1
- package/dist/lib/helpers/UserApiHelper.d.ts +3 -7
- package/dist/lib/helpers/UserApiHelper.js +1 -2
- package/dist/lib/helpers/UserApiHelper.js.map +1 -1
- package/dist/lib/helpers/testExtension.js +1 -1
- package/dist/lib/helpers/testExtension.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -89,45 +89,34 @@ export declare class ApiHelpers {
|
|
|
89
89
|
put(url: string, data?: object): Promise<import("playwright-core").APIResponse>;
|
|
90
90
|
postMultiPartForm(url: string, id: any, name: string, mimeType: string, filePath: any): Promise<import("playwright-core").APIResponse>;
|
|
91
91
|
getRefreshToken(): Promise<any>;
|
|
92
|
-
|
|
93
|
-
private dateToEpoch;
|
|
94
|
-
refreshAccessToken(userEmail: string, userPassword: string): Promise<{
|
|
92
|
+
refreshLoginState(userEmail: string, userPassword: string): Promise<{
|
|
95
93
|
cookie: string;
|
|
96
|
-
accessToken:
|
|
97
|
-
|
|
98
|
-
} | undefined;
|
|
99
|
-
refreshToken: "" | {
|
|
100
|
-
value: string;
|
|
101
|
-
} | undefined;
|
|
94
|
+
accessToken: string;
|
|
95
|
+
refreshToken: string;
|
|
102
96
|
} | undefined>;
|
|
103
97
|
private splitCookies;
|
|
104
98
|
updateTokenAndCookie(userEmail: string, userPassword: string): Promise<{
|
|
105
99
|
cookie: string;
|
|
106
|
-
accessToken:
|
|
107
|
-
|
|
108
|
-
} | undefined;
|
|
109
|
-
refreshToken: "" | {
|
|
110
|
-
value: string;
|
|
111
|
-
} | undefined;
|
|
100
|
+
accessToken: string;
|
|
101
|
+
refreshToken: string;
|
|
112
102
|
}>;
|
|
113
103
|
readFileContent(filePath: any): Promise<any>;
|
|
114
104
|
readLocalBearerToken(): Promise<string>;
|
|
115
105
|
readLocalCookie(): Promise<string>;
|
|
116
106
|
private getLocalStorageToken;
|
|
117
|
-
|
|
118
|
-
accessToken:
|
|
119
|
-
|
|
120
|
-
} | undefined;
|
|
121
|
-
refreshToken: "" | {
|
|
122
|
-
value: string;
|
|
123
|
-
} | undefined;
|
|
107
|
+
extractTokensFromSetCookie(setCookies: string): Promise<{
|
|
108
|
+
accessToken: string;
|
|
109
|
+
refreshToken: string;
|
|
124
110
|
}>;
|
|
125
111
|
private getLocalStorageAuthToken;
|
|
126
|
-
private updateLocalStorage;
|
|
127
112
|
private updateCookie;
|
|
128
113
|
revokeAccessToken(cookie: string, accessToken: string): Promise<import("playwright-core").APIResponse>;
|
|
129
114
|
revokeRefreshToken(cookie: string, refreshToken: string): Promise<import("playwright-core").APIResponse>;
|
|
130
|
-
loginToAdminUser(testUserCookie: string, testUserAccessToken: string, testUserRefreshToken: string): Promise<
|
|
115
|
+
loginToAdminUser(testUserCookie: string, testUserAccessToken: string, testUserRefreshToken: string): Promise<{
|
|
116
|
+
cookie: string;
|
|
117
|
+
accessToken: string;
|
|
118
|
+
refreshToken: string;
|
|
119
|
+
}>;
|
|
131
120
|
getCurrentTimePlusMinute(minute?: number): Promise<string>;
|
|
132
121
|
convertDateFormat(dateString: string): Promise<string>;
|
|
133
122
|
}
|
|
@@ -216,18 +216,19 @@ class ApiHelpers {
|
|
|
216
216
|
const authToken = await this.getLocalStorageAuthToken();
|
|
217
217
|
return authToken.refresh_token;
|
|
218
218
|
}
|
|
219
|
-
async currentDateToEpoch() {
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
219
|
+
// private async currentDateToEpoch() {
|
|
220
|
+
// const currentTime = new Date(Date.now());
|
|
221
|
+
// return await this.dateToEpoch(currentTime);
|
|
222
|
+
// }
|
|
223
|
+
//
|
|
224
|
+
// private async dateToEpoch(date: Date) {
|
|
225
|
+
// const dateToEpoch = date.getTime();
|
|
226
|
+
// // The epoch is in milliseconds, but we want it to be in seconds(Like it is in the token).
|
|
227
|
+
// const millisecondsToSeconds = dateToEpoch / 1000;
|
|
228
|
+
// // There is no need to have anything after .
|
|
229
|
+
// return Number(millisecondsToSeconds.toString().split('.')[0]);
|
|
230
|
+
// }
|
|
231
|
+
async refreshLoginState(userEmail, userPassword) {
|
|
231
232
|
const response = await this.page.request.post(this.baseUrl + '/umbraco/management/api/v1/security/back-office/token', {
|
|
232
233
|
headers: {
|
|
233
234
|
'Content-Type': 'application/x-www-form-urlencoded',
|
|
@@ -243,10 +244,8 @@ class ApiHelpers {
|
|
|
243
244
|
ignoreHTTPSErrors: true
|
|
244
245
|
});
|
|
245
246
|
if (response.status() === 200) {
|
|
246
|
-
const jsonStorageValue = await response.json();
|
|
247
247
|
const jsonStorageCookie = response.headers()['set-cookie'];
|
|
248
|
-
|
|
249
|
-
// We get multiple cookies, so we have to split them and then update each of the cookies in our localestorage
|
|
248
|
+
// We get multiple cookies, so we have to split them and then update each of the cookies in our localstorage
|
|
250
249
|
let cookies = this.splitCookies(jsonStorageCookie);
|
|
251
250
|
for (const cookie of cookies) {
|
|
252
251
|
await this.updateCookie(cookie);
|
|
@@ -266,11 +265,16 @@ class ApiHelpers {
|
|
|
266
265
|
async updateTokenAndCookie(userEmail, userPassword) {
|
|
267
266
|
const storageStateValues = await this.login.login(userEmail, userPassword);
|
|
268
267
|
await this.updateCookie(storageStateValues.cookie);
|
|
269
|
-
|
|
268
|
+
// We get multiple set cookies, so we have to split them and then update each of the cookies in our localstorage
|
|
269
|
+
let cookies = this.splitCookies(storageStateValues.setCookies);
|
|
270
|
+
for (const cookie of cookies) {
|
|
271
|
+
await this.updateCookie(cookie);
|
|
272
|
+
}
|
|
273
|
+
let tokens = await this.extractTokensFromSetCookie(storageStateValues.setCookies);
|
|
270
274
|
return {
|
|
271
275
|
cookie: storageStateValues.cookie,
|
|
272
|
-
accessToken:
|
|
273
|
-
refreshToken:
|
|
276
|
+
accessToken: tokens.accessToken,
|
|
277
|
+
refreshToken: tokens.refreshToken,
|
|
274
278
|
};
|
|
275
279
|
}
|
|
276
280
|
async readFileContent(filePath) {
|
|
@@ -316,67 +320,17 @@ class ApiHelpers {
|
|
|
316
320
|
async getLocalStorageToken(localStorage, tokenName) {
|
|
317
321
|
return await localStorage.origins?.[0]?.localStorage?.find(item => item.name === tokenName);
|
|
318
322
|
}
|
|
319
|
-
async
|
|
320
|
-
//
|
|
321
|
-
const
|
|
322
|
-
const
|
|
323
|
-
|
|
324
|
-
const refreshToken = refreshValue && { value: refreshValue };
|
|
325
|
-
let currentLocalStorageValue = await this.getLocalStorageAuthToken();
|
|
326
|
-
const newIssuedTime = await this.currentDateToEpoch();
|
|
327
|
-
currentLocalStorageValue.access_token = accessToken;
|
|
328
|
-
currentLocalStorageValue.refresh_token = refreshToken;
|
|
329
|
-
currentLocalStorageValue.issued_at = newIssuedTime;
|
|
330
|
-
const filePath = process.env.STORAGE_STAGE_PATH;
|
|
331
|
-
// Updates the user.json file in our CMS project
|
|
332
|
-
if (filePath) {
|
|
333
|
-
try {
|
|
334
|
-
const data = await this.readFileContent(filePath);
|
|
335
|
-
const fileLocalStorageToken = await this.getLocalStorageToken(data, 'umb:userAuthTokenResponse');
|
|
336
|
-
fileLocalStorageToken.value = JSON.stringify(currentLocalStorageValue);
|
|
337
|
-
// Converts the object to JSON string
|
|
338
|
-
const updatedJsonString = JSON.stringify(data, null, 2);
|
|
339
|
-
// Writes the updated JSON content to the file
|
|
340
|
-
fs.writeFileSync(filePath, updatedJsonString, 'utf-8');
|
|
341
|
-
}
|
|
342
|
-
catch (error) {
|
|
343
|
-
console.error('Error updating token:', error);
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
return { accessToken: accessToken, refreshToken: refreshToken };
|
|
323
|
+
async extractTokensFromSetCookie(setCookies) {
|
|
324
|
+
// Extract token values from cookies
|
|
325
|
+
const accessToken = setCookies.match(/__Host-umbAccessToken=([^;]+)/)?.[1] ?? "";
|
|
326
|
+
const refreshToken = setCookies.match(/__Host-umbRefreshToken=([^;]+)/)?.[1] ?? "";
|
|
327
|
+
return { accessToken, refreshToken };
|
|
347
328
|
}
|
|
348
329
|
async getLocalStorageAuthToken() {
|
|
349
330
|
const currentStorageState = await this.page.context().storageState();
|
|
350
331
|
const currentStorageToken = await this.getLocalStorageToken(currentStorageState, 'umb:userAuthTokenResponse');
|
|
351
332
|
return JSON.parse(currentStorageToken.value);
|
|
352
333
|
}
|
|
353
|
-
async updateLocalStorage(localStorageValue) {
|
|
354
|
-
// Parse the existing token value and update its fields
|
|
355
|
-
let currentLocalStorageValue = await this.getLocalStorageAuthToken();
|
|
356
|
-
const newIssuedTime = await this.currentDateToEpoch();
|
|
357
|
-
currentLocalStorageValue.access_token = localStorageValue.access_token;
|
|
358
|
-
currentLocalStorageValue.refresh_token = localStorageValue.refresh_token;
|
|
359
|
-
currentLocalStorageValue.issued_at = newIssuedTime;
|
|
360
|
-
currentLocalStorageValue.scope = localStorageValue.scope;
|
|
361
|
-
currentLocalStorageValue.token_type = localStorageValue.token_type;
|
|
362
|
-
currentLocalStorageValue.expires_in = localStorageValue.expires_in.toString();
|
|
363
|
-
const filePath = process.env.STORAGE_STAGE_PATH;
|
|
364
|
-
// Updates the user.json file in our CMS project
|
|
365
|
-
if (filePath) {
|
|
366
|
-
try {
|
|
367
|
-
const data = await this.readFileContent(filePath);
|
|
368
|
-
const fileLocalStorageToken = await this.getLocalStorageToken(data, 'umb:userAuthTokenResponse');
|
|
369
|
-
fileLocalStorageToken.value = JSON.stringify(currentLocalStorageValue);
|
|
370
|
-
// Converts the object to JSON string
|
|
371
|
-
const updatedJsonString = JSON.stringify(data, null, 2);
|
|
372
|
-
// Writes the updated JSON content to the file
|
|
373
|
-
fs.writeFileSync(filePath, updatedJsonString, 'utf-8');
|
|
374
|
-
}
|
|
375
|
-
catch (error) {
|
|
376
|
-
console.error('Error updating token:', error);
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
334
|
async updateCookie(cookieString) {
|
|
381
335
|
try {
|
|
382
336
|
// Parse cookie string
|
|
@@ -452,7 +406,9 @@ class ApiHelpers {
|
|
|
452
406
|
async loginToAdminUser(testUserCookie, testUserAccessToken, testUserRefreshToken) {
|
|
453
407
|
await this.revokeAccessToken(testUserCookie, testUserAccessToken);
|
|
454
408
|
await this.revokeRefreshToken(testUserCookie, testUserRefreshToken);
|
|
455
|
-
|
|
409
|
+
let userCookieAndTokens;
|
|
410
|
+
userCookieAndTokens = await this.updateTokenAndCookie(umbraco_config_1.umbracoConfig.user.login, umbraco_config_1.umbracoConfig.user.password);
|
|
411
|
+
return userCookieAndTokens;
|
|
456
412
|
}
|
|
457
413
|
async getCurrentTimePlusMinute(minute = 1) {
|
|
458
414
|
const now = new Date();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiHelpers.js","sourceRoot":"","sources":["../../../lib/helpers/ApiHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page} from \"@playwright/test\"\nimport {umbracoConfig} from \"../../umbraco.config\";\nimport {ReportHelper} from \"./ReportHelper\";\nimport {TelemetryDataApiHelper} from \"./TelemetryDataApiHelper\";\nimport {LanguageApiHelper} from \"./LanguageApiHelper\";\nimport {DictionaryApiHelper} from \"./DictionaryApiHelper\";\nimport {RelationTypeApiHelper} from \"./RelationTypeApiHelper\";\nimport {UserGroupApiHelper} from \"./UserGroupApiHelper\";\nimport {TemplateApiHelper} from \"./TemplateApiHelper\";\nimport {AliasHelper} from \"./AliasHelper\";\nimport {DataTypeApiHelper} from \"./DataTypeApiHelper\";\nimport {UserApiHelper} from \"./UserApiHelper\";\nimport {TemporaryFileApiHelper} from \"./TemporaryFileApiHelper\";\nimport {PackageApiHelper} from \"./PackageApiHelper\";\nimport {ScriptApiHelper} from \"./ScriptApiHelper\";\nimport {PartialViewApiHelper} from \"./PartialViewApiHelper\";\nimport {StylesheetApiHelper} from \"./StylesheetApiHelper\";\nimport * as fs from \"fs\";\nimport {LogViewerApiHelper} from \"./LogViewerApiHelper\";\nimport {DocumentTypeApiHelper} from \"./DocumentTypeApiHelper\";\nimport {DocumentApiHelper} from \"./DocumentApiHelper\";\nimport {MediaTypeApiHelper} from \"./MediaTypeApiHelper\";\nimport {MediaApiHelper} from \"./MediaApiHelper\";\nimport {ObjectTypesApiHelper} from \"./ObjectTypesApiHelper\";\nimport {ModelsBuilderApiHelper} from \"./ModelsBuilderApiHelper\";\nimport {HealthCheckApiHelper} from \"./HealthCheckApiHelper\";\nimport {IndexerApiHelper} from \"./IndexerApiHelper\";\nimport {PublishedCacheApiHelper} from \"./PublishedCacheApiHelper\";\nimport {RedirectManagementApiHelper} from './RedirectManagementApiHelper';\nimport {MemberGroupApiHelper} from './MemberGroupApiHelper';\nimport {MemberApiHelper} from './MemberApiHelper';\nimport {MemberTypeApiHelper} from \"./MemberTypeApiHelper\";\nimport {DocumentBlueprintApiHelper} from \"./DocumentBlueprintApiHelper\";\nimport {LoginApiHelper} from \"./LoginApiHelper\";\nimport {WebhookApiHelper} from \"./WebhookApiHelper\";\nimport {MediaDeliveryApiHelper} from './differentAppSettingsHelpers/MediaDeliveryApiHelper';\nimport {ContentDeliveryApiHelper} from \"./differentAppSettingsHelpers/ContentDeliveryApiHelper\";\n\nexport class ApiHelpers {\n baseUrl: string = umbracoConfig.environment.baseUrl;\n page: Page;\n alias: AliasHelper;\n report: ReportHelper;\n telemetry: TelemetryDataApiHelper;\n language: LanguageApiHelper;\n dictionary: DictionaryApiHelper;\n relationType: RelationTypeApiHelper;\n userGroup: UserGroupApiHelper;\n template: TemplateApiHelper;\n dataType: DataTypeApiHelper;\n user: UserApiHelper;\n temporaryFile: TemporaryFileApiHelper;\n documentType: DocumentTypeApiHelper;\n document: DocumentApiHelper;\n package: PackageApiHelper;\n script: ScriptApiHelper;\n partialView: PartialViewApiHelper;\n stylesheet: StylesheetApiHelper;\n logViewer: LogViewerApiHelper;\n mediaType: MediaTypeApiHelper;\n media: MediaApiHelper;\n objectTypes: ObjectTypesApiHelper;\n modelsBuilder: ModelsBuilderApiHelper;\n healthCheck: HealthCheckApiHelper;\n indexer: IndexerApiHelper;\n publishedCache: PublishedCacheApiHelper;\n redirectManagement: RedirectManagementApiHelper;\n memberGroup: MemberGroupApiHelper;\n member: MemberApiHelper;\n memberType: MemberTypeApiHelper;\n documentBlueprint: DocumentBlueprintApiHelper;\n login: LoginApiHelper;\n webhook: WebhookApiHelper;\n mediaDeliveryApi: MediaDeliveryApiHelper;\n contentDeliveryApi: ContentDeliveryApiHelper;\n\n constructor(page: Page) {\n this.page = page;\n this.alias = new AliasHelper();\n this.report = new ReportHelper(this);\n this.telemetry = new TelemetryDataApiHelper(this);\n this.language = new LanguageApiHelper(this);\n this.dictionary = new DictionaryApiHelper(this);\n this.relationType = new RelationTypeApiHelper(this);\n this.userGroup = new UserGroupApiHelper(this);\n this.template = new TemplateApiHelper(this);\n this.dataType = new DataTypeApiHelper(this);\n this.user = new UserApiHelper(this, page);\n this.temporaryFile = new TemporaryFileApiHelper(this);\n this.documentType = new DocumentTypeApiHelper(this);\n this.document = new DocumentApiHelper(this);\n this.package = new PackageApiHelper(this);\n this.script = new ScriptApiHelper(this);\n this.partialView = new PartialViewApiHelper(this);\n this.stylesheet = new StylesheetApiHelper(this);\n this.logViewer = new LogViewerApiHelper(this);\n this.mediaType = new MediaTypeApiHelper(this);\n this.media = new MediaApiHelper(this);\n this.objectTypes = new ObjectTypesApiHelper(this);\n this.modelsBuilder = new ModelsBuilderApiHelper(this);\n this.healthCheck = new HealthCheckApiHelper(this);\n this.indexer = new IndexerApiHelper(this);\n this.publishedCache = new PublishedCacheApiHelper(this);\n this.redirectManagement = new RedirectManagementApiHelper(this);\n this.memberGroup = new MemberGroupApiHelper(this);\n this.member = new MemberApiHelper(this);\n this.memberType = new MemberTypeApiHelper(this);\n this.documentBlueprint = new DocumentBlueprintApiHelper(this);\n this.login = new LoginApiHelper(this, this.page);\n this.webhook = new WebhookApiHelper(this, this.page);\n this.mediaDeliveryApi = new MediaDeliveryApiHelper(this);\n this.contentDeliveryApi = new ContentDeliveryApiHelper(this);\n }\n\n async getAccessToken() {\n const authToken = await this.getLocalStorageAuthToken();\n return authToken.access_token;\n }\n\n async getBearerToken() {\n return 'Bearer ' + await this.getAccessToken();\n }\n\n async getCookie() {\n let someStorage = await this.page.context().storageState();\n let cookieString = \"\";\n for (let cookie of someStorage.cookies) {\n cookieString += cookie.name + '=' + cookie.value + ';';\n }\n return cookieString;\n }\n\n async getHeaders() {\n return {\n 'Authorization': await this.readLocalBearerToken(),\n 'Cookie': await this.readLocalCookie(),\n }\n }\n\n async get(url: string, params?: { [key: string]: string | number | boolean; }, extraHeaders?: { [key: string]: string; }) {\n const headers = await this.getHeaders();\n const allHeaders = {...headers, ...extraHeaders};\n const options = {\n headers: allHeaders,\n params: params,\n ignoreHTTPSErrors: true\n }\n return await this.page.request.get(url, options);\n }\n\n async saveCodeFile(codeFile) {\n if (codeFile == null) {\n return;\n }\n return await this.post(umbracoConfig.environment.baseUrl + '/umbraco/backoffice/UmbracoApi/CodeFile/PostSave', codeFile);\n }\n\n async post(url: string, data?: object) {\n const options = {\n headers: await this.getHeaders(),\n data: data,\n ignoreHTTPSErrors: true\n }\n return await this.page.request.post(url, options);\n }\n\n async delete(url: string, data?: object) {\n const options = {\n headers: await this.getHeaders(),\n data: data,\n ignoreHTTPSErrors: true\n }\n return await this.page.request.delete(url, options);\n }\n\n async put(url: string, data?: object) {\n const options = {\n headers: await this.getHeaders(),\n data: data,\n ignoreHTTPSErrors: true\n }\n return await this.page.request.put(url, options);\n }\n\n async postMultiPartForm(url: string, id, name: string, mimeType: string, filePath) {\n const options = {\n headers: await this.getHeaders(),\n multipart: {\n Id: id,\n File: {\n name: name,\n mimeType: mimeType,\n buffer: fs.readFileSync(filePath)\n }\n },\n ignoreHTTPSErrors: true\n }\n return await this.page.request.post(url, options);\n }\n\n // Currently not used\n // private async getTokenIssuedTime() {\n // const authToken = await this.getLocalStorageAuthToken();\n // return Number(authToken.issued_at);\n // }\n // private async getTokenExpireTime() {\n // const authToken = await this.getLocalStorageAuthToken();\n // return Number(authToken.expires_in);\n // }\n //\n // async isAccessTokenValid() {\n // const tokenTimeIssued = await this.getTokenIssuedTime();\n // const tokenExpireTime = await this.getTokenExpireTime();\n // // Should use a global value\n // const globalTestTimeout: number = 45;\n // // We want to have the date minus the globalTimeout, the reason for this is that while a test is running, the token could expire.\n // // The refresh token lasts for 300 seconds, while the access token lasts for 60 seconds (NOT TOTALLY SURE) this is why we add 240 seconds\n // const tokenRefreshTime = tokenTimeIssued + tokenExpireTime - (globalTestTimeout);\n // // We need the currentTimeInEpoch so we can check if the tokenRefreshTime is close to expiring.\n // const currentTimeInEpoch = await this.currentDateToEpoch();\n //\n // if (tokenRefreshTime <= currentTimeInEpoch) {\n // return await this.refreshAccessToken(umbracoConfig.user.login, umbracoConfig.user.password);\n // }\n // }\n async getRefreshToken() {\n const authToken = await this.getLocalStorageAuthToken();\n return authToken.refresh_token;\n }\n\n private async currentDateToEpoch() {\n const currentTime = new Date(Date.now());\n return await this.dateToEpoch(currentTime);\n }\n\n private async dateToEpoch(date: Date) {\n const dateToEpoch = date.getTime();\n // The epoch is in milliseconds, but we want it to be in seconds(Like it is in the token).\n const millisecondsToSeconds = dateToEpoch / 1000;\n // There is no need to have anything after .\n return Number(millisecondsToSeconds.toString().split('.')[0]);\n }\n\n async refreshAccessToken(userEmail: string, userPassword: string) {\n const response = await this.page.request.post(this.baseUrl + '/umbraco/management/api/v1/security/back-office/token', {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n Cookie: await this.readLocalCookie(),\n Origin: this.baseUrl\n },\n form:\n {\n grant_type: 'refresh_token',\n client_id: 'umbraco-back-office',\n redirect_uri: this.baseUrl + '/umbraco/oauth_complete',\n refresh_token: await this.getRefreshToken()\n },\n ignoreHTTPSErrors: true\n });\n\n if (response.status() === 200) {\n const jsonStorageValue = await response.json();\n const jsonStorageCookie = response.headers()['set-cookie'];\n await this.updateLocalStorage(jsonStorageValue);\n // We get multiple cookies, so we have to split them and then update each of the cookies in our localestorage \n let cookies = this.splitCookies(jsonStorageCookie);\n for (const cookie of cookies) {\n await this.updateCookie(cookie);\n }\n return;\n }\n console.log('Error refreshing access token.');\n return await this.updateTokenAndCookie(userEmail, userPassword);\n }\n\n private splitCookies(cookieString: string): string[] {\n return cookieString\n .trim()\n .split('\\n')\n .filter(line => line.trim())\n .filter(line => !line.includes('expires=Thu, 01 Jan 1970'));\n }\n\n async updateTokenAndCookie(userEmail: string, userPassword: string) {\n const storageStateValues = await this.login.login(userEmail, userPassword);\n await this.updateCookie(storageStateValues.cookie);\n await this.updateLocalStorage(storageStateValues.accessToken);\n return {\n cookie: storageStateValues.cookie,\n accessToken: storageStateValues.accessToken,\n refreshToken: storageStateValues.refreshToken,\n };\n }\n\n async readFileContent(filePath) {\n try {\n const jsonString = fs.readFileSync(filePath, 'utf-8');\n return JSON.parse(jsonString);\n } catch (error) {\n console.log('Error reading file:', error);\n throw error;\n }\n }\n\n async readLocalBearerToken() {\n const filePath = process.env.STORAGE_STAGE_PATH;\n if (!filePath) {\n return await this.getBearerToken();\n }\n\n try {\n const data = await JSON.parse(fs.readFileSync(filePath, 'utf-8'));\n const localStorageItem = await this.getLocalStorageToken(data, 'umb:userAuthTokenResponse');\n const parsedValue = await JSON.parse(localStorageItem.value);\n return `Bearer ${parsedValue.access_token}`;\n } catch {\n // If the file is not found, return the current access token from the page context\n return await this.getBearerToken();\n }\n }\n\n async readLocalCookie() {\n const filePath = process.env.STORAGE_STAGE_PATH;\n if (!filePath) {\n return await this.getCookie();\n }\n\n try {\n const data = await JSON.parse(fs.readFileSync(filePath, 'utf-8'));\n return await data.cookies.map(cookie => `${cookie.name}=${cookie.value}`).join('; ') + ';';\n } catch {\n // If the file is not found, return the current cookie from the page context\n return await this.getCookie();\n }\n }\n\n private async getLocalStorageToken(localStorage: any, tokenName: string) {\n return await localStorage.origins?.[0]?.localStorage?.find(item => item.name === tokenName);\n }\n\n async updateLocalStorageTokens(setCookies: string) {\n // Find AccessToken and RefreshToken in CookiesString\n const accessValue = setCookies.match(/__Host-umbAccessToken=([^;]+)/)?.[1];\n const refreshValue = setCookies.match(/__Host-umbRefreshToken=([^;]+)/)?.[1];\n const accessToken = accessValue && {value: accessValue};\n const refreshToken = refreshValue && {value: refreshValue};\n\n let currentLocalStorageValue = await this.getLocalStorageAuthToken();\n const newIssuedTime = await this.currentDateToEpoch();\n\n currentLocalStorageValue.access_token = accessToken;\n currentLocalStorageValue.refresh_token = refreshToken;\n currentLocalStorageValue.issued_at = newIssuedTime;\n\n const filePath = process.env.STORAGE_STAGE_PATH;\n // Updates the user.json file in our CMS project\n if (filePath) {\n try {\n const data = await this.readFileContent(filePath);\n const fileLocalStorageToken = await this.getLocalStorageToken(data, 'umb:userAuthTokenResponse');\n fileLocalStorageToken.value = JSON.stringify(currentLocalStorageValue);\n // Converts the object to JSON string\n const updatedJsonString = JSON.stringify(data, null, 2);\n // Writes the updated JSON content to the file\n fs.writeFileSync(filePath, updatedJsonString, 'utf-8');\n } catch (error) {\n console.error('Error updating token:', error);\n }\n }\n return {accessToken: accessToken, refreshToken: refreshToken};\n }\n\n private async getLocalStorageAuthToken() {\n const currentStorageState = await this.page.context().storageState();\n const currentStorageToken = await this.getLocalStorageToken(currentStorageState, 'umb:userAuthTokenResponse');\n return JSON.parse(currentStorageToken.value);\n }\n\n private async updateLocalStorage(localStorageValue) {\n // Parse the existing token value and update its fields\n let currentLocalStorageValue = await this.getLocalStorageAuthToken();\n const newIssuedTime = await this.currentDateToEpoch();\n\n currentLocalStorageValue.access_token = localStorageValue.access_token;\n currentLocalStorageValue.refresh_token = localStorageValue.refresh_token;\n currentLocalStorageValue.issued_at = newIssuedTime;\n currentLocalStorageValue.scope = localStorageValue.scope;\n currentLocalStorageValue.token_type = localStorageValue.token_type;\n currentLocalStorageValue.expires_in = localStorageValue.expires_in.toString();\n\n const filePath = process.env.STORAGE_STAGE_PATH;\n // Updates the user.json file in our CMS project\n if (filePath) {\n try {\n const data = await this.readFileContent(filePath);\n const fileLocalStorageToken = await this.getLocalStorageToken(data, 'umb:userAuthTokenResponse');\n fileLocalStorageToken.value = JSON.stringify(currentLocalStorageValue);\n // Converts the object to JSON string\n const updatedJsonString = JSON.stringify(data, null, 2);\n // Writes the updated JSON content to the file\n fs.writeFileSync(filePath, updatedJsonString, 'utf-8');\n } catch (error) {\n console.error('Error updating token:', error);\n }\n }\n }\n\n private async updateCookie(cookieString: string) {\n try {\n // Parse cookie string\n const parts = cookieString.split(';').map(p => p.trim());\n const [nameValue, ...attributes] = parts;\n const [name, value] = nameValue.split('=');\n const cookieName = name.trim();\n\n // Get current state\n const storageState = await this.page.context().storageState();\n const cookieIndex = storageState.cookies.findIndex(c => c.name === cookieName);\n\n if (cookieIndex === -1) {\n console.log(`Cookie \"${cookieName}\" not found`);\n return;\n }\n\n // Update cookie value\n storageState.cookies[cookieIndex].value = value;\n\n // Update expires if present\n for (const attr of attributes) {\n if (attr.toLowerCase().startsWith('expires=')) {\n const expiresDate = attr.split('=')[1];\n storageState.cookies[cookieIndex].expires = Date.parse(expiresDate) / 1000;\n }\n }\n\n // Write to file if path exists\n const filePath = process.env.STORAGE_STAGE_PATH;\n if (filePath) {\n const fs = require('fs');\n const fileData = JSON.parse(fs.readFileSync(filePath, 'utf-8'));\n\n const fileCookieIndex = fileData.cookies.findIndex(c => c.name === cookieName);\n\n if (fileCookieIndex !== -1) {\n fileData.cookies[fileCookieIndex] = storageState.cookies[cookieIndex];\n fs.writeFileSync(filePath, JSON.stringify(fileData, null, 2));\n } else {\n console.log(`Cookie \"${cookieName}\" not found in file`);\n }\n }\n } catch (error) {\n console.error('Error updating cookie:', error);\n }\n }\n\n async revokeAccessToken(cookie: string, accessToken: string) {\n return await this.page.request.post(this.baseUrl + '/umbraco/management/api/v1/security/back-office/revoke', {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n Cookie: cookie,\n Origin: this.baseUrl\n },\n form:\n {\n token: accessToken,\n token_type_hint: 'access_token',\n client_id: 'umbraco-back-office'\n },\n ignoreHTTPSErrors: true\n });\n }\n\n async revokeRefreshToken(cookie: string, refreshToken: string) {\n return await this.page.request.post(this.baseUrl + '/umbraco/management/api/v1/security/back-office/revoke', {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n Cookie: cookie,\n Origin: this.baseUrl\n },\n form:\n {\n token: refreshToken,\n token_type_hint: 'refresh_token',\n client_id: 'umbraco-back-office'\n },\n ignoreHTTPSErrors: true\n });\n }\n\n async loginToAdminUser(testUserCookie: string, testUserAccessToken: string, testUserRefreshToken: string) {\n await this.revokeAccessToken(testUserCookie, testUserAccessToken);\n await this.revokeRefreshToken(testUserCookie, testUserRefreshToken);\n await this.updateTokenAndCookie(umbracoConfig.user.login, umbracoConfig.user.password);\n }\n\n async getCurrentTimePlusMinute(minute: number = 1) {\n const now = new Date();\n now.setMinutes(now.getMinutes() + minute); // Add one minute\n\n const year = now.getFullYear();\n const month = String(now.getMonth() + 1).padStart(2, '0');\n const day = String(now.getDate()).padStart(2, '0');\n const hours = String(now.getHours()).padStart(2, '0');\n const minutes = String(now.getMinutes()).padStart(2, '0');\n\n return `${year}-${month}-${day}T${hours}:${minutes}`;\n }\n\n async convertDateFormat(dateString: string) {\n return new Date(dateString).toLocaleString(\"en-US\", {\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n second: \"numeric\",\n hour12: true,\n });\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"ApiHelpers.js","sourceRoot":"","sources":["../../../lib/helpers/ApiHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page} from \"@playwright/test\"\nimport {umbracoConfig} from \"../../umbraco.config\";\nimport {ReportHelper} from \"./ReportHelper\";\nimport {TelemetryDataApiHelper} from \"./TelemetryDataApiHelper\";\nimport {LanguageApiHelper} from \"./LanguageApiHelper\";\nimport {DictionaryApiHelper} from \"./DictionaryApiHelper\";\nimport {RelationTypeApiHelper} from \"./RelationTypeApiHelper\";\nimport {UserGroupApiHelper} from \"./UserGroupApiHelper\";\nimport {TemplateApiHelper} from \"./TemplateApiHelper\";\nimport {AliasHelper} from \"./AliasHelper\";\nimport {DataTypeApiHelper} from \"./DataTypeApiHelper\";\nimport {UserApiHelper} from \"./UserApiHelper\";\nimport {TemporaryFileApiHelper} from \"./TemporaryFileApiHelper\";\nimport {PackageApiHelper} from \"./PackageApiHelper\";\nimport {ScriptApiHelper} from \"./ScriptApiHelper\";\nimport {PartialViewApiHelper} from \"./PartialViewApiHelper\";\nimport {StylesheetApiHelper} from \"./StylesheetApiHelper\";\nimport * as fs from \"fs\";\nimport {LogViewerApiHelper} from \"./LogViewerApiHelper\";\nimport {DocumentTypeApiHelper} from \"./DocumentTypeApiHelper\";\nimport {DocumentApiHelper} from \"./DocumentApiHelper\";\nimport {MediaTypeApiHelper} from \"./MediaTypeApiHelper\";\nimport {MediaApiHelper} from \"./MediaApiHelper\";\nimport {ObjectTypesApiHelper} from \"./ObjectTypesApiHelper\";\nimport {ModelsBuilderApiHelper} from \"./ModelsBuilderApiHelper\";\nimport {HealthCheckApiHelper} from \"./HealthCheckApiHelper\";\nimport {IndexerApiHelper} from \"./IndexerApiHelper\";\nimport {PublishedCacheApiHelper} from \"./PublishedCacheApiHelper\";\nimport {RedirectManagementApiHelper} from './RedirectManagementApiHelper';\nimport {MemberGroupApiHelper} from './MemberGroupApiHelper';\nimport {MemberApiHelper} from './MemberApiHelper';\nimport {MemberTypeApiHelper} from \"./MemberTypeApiHelper\";\nimport {DocumentBlueprintApiHelper} from \"./DocumentBlueprintApiHelper\";\nimport {LoginApiHelper} from \"./LoginApiHelper\";\nimport {WebhookApiHelper} from \"./WebhookApiHelper\";\nimport {MediaDeliveryApiHelper} from './differentAppSettingsHelpers/MediaDeliveryApiHelper';\nimport {ContentDeliveryApiHelper} from \"./differentAppSettingsHelpers/ContentDeliveryApiHelper\";\n\nexport class ApiHelpers {\n baseUrl: string = umbracoConfig.environment.baseUrl;\n page: Page;\n alias: AliasHelper;\n report: ReportHelper;\n telemetry: TelemetryDataApiHelper;\n language: LanguageApiHelper;\n dictionary: DictionaryApiHelper;\n relationType: RelationTypeApiHelper;\n userGroup: UserGroupApiHelper;\n template: TemplateApiHelper;\n dataType: DataTypeApiHelper;\n user: UserApiHelper;\n temporaryFile: TemporaryFileApiHelper;\n documentType: DocumentTypeApiHelper;\n document: DocumentApiHelper;\n package: PackageApiHelper;\n script: ScriptApiHelper;\n partialView: PartialViewApiHelper;\n stylesheet: StylesheetApiHelper;\n logViewer: LogViewerApiHelper;\n mediaType: MediaTypeApiHelper;\n media: MediaApiHelper;\n objectTypes: ObjectTypesApiHelper;\n modelsBuilder: ModelsBuilderApiHelper;\n healthCheck: HealthCheckApiHelper;\n indexer: IndexerApiHelper;\n publishedCache: PublishedCacheApiHelper;\n redirectManagement: RedirectManagementApiHelper;\n memberGroup: MemberGroupApiHelper;\n member: MemberApiHelper;\n memberType: MemberTypeApiHelper;\n documentBlueprint: DocumentBlueprintApiHelper;\n login: LoginApiHelper;\n webhook: WebhookApiHelper;\n mediaDeliveryApi: MediaDeliveryApiHelper;\n contentDeliveryApi: ContentDeliveryApiHelper;\n\n constructor(page: Page) {\n this.page = page;\n this.alias = new AliasHelper();\n this.report = new ReportHelper(this);\n this.telemetry = new TelemetryDataApiHelper(this);\n this.language = new LanguageApiHelper(this);\n this.dictionary = new DictionaryApiHelper(this);\n this.relationType = new RelationTypeApiHelper(this);\n this.userGroup = new UserGroupApiHelper(this);\n this.template = new TemplateApiHelper(this);\n this.dataType = new DataTypeApiHelper(this);\n this.user = new UserApiHelper(this, page);\n this.temporaryFile = new TemporaryFileApiHelper(this);\n this.documentType = new DocumentTypeApiHelper(this);\n this.document = new DocumentApiHelper(this);\n this.package = new PackageApiHelper(this);\n this.script = new ScriptApiHelper(this);\n this.partialView = new PartialViewApiHelper(this);\n this.stylesheet = new StylesheetApiHelper(this);\n this.logViewer = new LogViewerApiHelper(this);\n this.mediaType = new MediaTypeApiHelper(this);\n this.media = new MediaApiHelper(this);\n this.objectTypes = new ObjectTypesApiHelper(this);\n this.modelsBuilder = new ModelsBuilderApiHelper(this);\n this.healthCheck = new HealthCheckApiHelper(this);\n this.indexer = new IndexerApiHelper(this);\n this.publishedCache = new PublishedCacheApiHelper(this);\n this.redirectManagement = new RedirectManagementApiHelper(this);\n this.memberGroup = new MemberGroupApiHelper(this);\n this.member = new MemberApiHelper(this);\n this.memberType = new MemberTypeApiHelper(this);\n this.documentBlueprint = new DocumentBlueprintApiHelper(this);\n this.login = new LoginApiHelper(this, this.page);\n this.webhook = new WebhookApiHelper(this, this.page);\n this.mediaDeliveryApi = new MediaDeliveryApiHelper(this);\n this.contentDeliveryApi = new ContentDeliveryApiHelper(this);\n }\n\n async getAccessToken() {\n const authToken = await this.getLocalStorageAuthToken();\n return authToken.access_token;\n }\n\n async getBearerToken() {\n return 'Bearer ' + await this.getAccessToken();\n }\n\n async getCookie() {\n let someStorage = await this.page.context().storageState();\n let cookieString = \"\";\n for (let cookie of someStorage.cookies) {\n cookieString += cookie.name + '=' + cookie.value + ';';\n }\n return cookieString;\n }\n\n async getHeaders() {\n return {\n 'Authorization': await this.readLocalBearerToken(),\n 'Cookie': await this.readLocalCookie(),\n }\n }\n\n async get(url: string, params?: { [key: string]: string | number | boolean; }, extraHeaders?: { [key: string]: string; }) {\n const headers = await this.getHeaders();\n const allHeaders = {...headers, ...extraHeaders};\n const options = {\n headers: allHeaders,\n params: params,\n ignoreHTTPSErrors: true\n }\n return await this.page.request.get(url, options);\n }\n\n async saveCodeFile(codeFile) {\n if (codeFile == null) {\n return;\n }\n return await this.post(umbracoConfig.environment.baseUrl + '/umbraco/backoffice/UmbracoApi/CodeFile/PostSave', codeFile);\n }\n\n async post(url: string, data?: object) {\n const options = {\n headers: await this.getHeaders(),\n data: data,\n ignoreHTTPSErrors: true\n }\n return await this.page.request.post(url, options);\n }\n\n async delete(url: string, data?: object) {\n const options = {\n headers: await this.getHeaders(),\n data: data,\n ignoreHTTPSErrors: true\n }\n return await this.page.request.delete(url, options);\n }\n\n async put(url: string, data?: object) {\n const options = {\n headers: await this.getHeaders(),\n data: data,\n ignoreHTTPSErrors: true\n }\n return await this.page.request.put(url, options);\n }\n\n async postMultiPartForm(url: string, id, name: string, mimeType: string, filePath) {\n const options = {\n headers: await this.getHeaders(),\n multipart: {\n Id: id,\n File: {\n name: name,\n mimeType: mimeType,\n buffer: fs.readFileSync(filePath)\n }\n },\n ignoreHTTPSErrors: true\n }\n return await this.page.request.post(url, options);\n }\n\n // Currently not used\n // private async getTokenIssuedTime() {\n // const authToken = await this.getLocalStorageAuthToken();\n // return Number(authToken.issued_at);\n // }\n // private async getTokenExpireTime() {\n // const authToken = await this.getLocalStorageAuthToken();\n // return Number(authToken.expires_in);\n // }\n //\n // async isAccessTokenValid() {\n // const tokenTimeIssued = await this.getTokenIssuedTime();\n // const tokenExpireTime = await this.getTokenExpireTime();\n // // Should use a global value\n // const globalTestTimeout: number = 45;\n // // We want to have the date minus the globalTimeout, the reason for this is that while a test is running, the token could expire.\n // // The refresh token lasts for 300 seconds, while the access token lasts for 60 seconds (NOT TOTALLY SURE) this is why we add 240 seconds\n // const tokenRefreshTime = tokenTimeIssued + tokenExpireTime - (globalTestTimeout);\n // // We need the currentTimeInEpoch so we can check if the tokenRefreshTime is close to expiring.\n // const currentTimeInEpoch = await this.currentDateToEpoch();\n //\n // if (tokenRefreshTime <= currentTimeInEpoch) {\n // return await this.refreshAccessToken(umbracoConfig.user.login, umbracoConfig.user.password);\n // }\n // }\n async getRefreshToken() {\n const authToken = await this.getLocalStorageAuthToken();\n return authToken.refresh_token;\n }\n\n // private async currentDateToEpoch() {\n // const currentTime = new Date(Date.now());\n // return await this.dateToEpoch(currentTime);\n // }\n //\n // private async dateToEpoch(date: Date) {\n // const dateToEpoch = date.getTime();\n // // The epoch is in milliseconds, but we want it to be in seconds(Like it is in the token).\n // const millisecondsToSeconds = dateToEpoch / 1000;\n // // There is no need to have anything after .\n // return Number(millisecondsToSeconds.toString().split('.')[0]);\n // }\n\n async refreshLoginState(userEmail: string, userPassword: string) {\n const response = await this.page.request.post(this.baseUrl + '/umbraco/management/api/v1/security/back-office/token', {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n Cookie: await this.readLocalCookie(),\n Origin: this.baseUrl\n },\n form:\n {\n grant_type: 'refresh_token',\n client_id: 'umbraco-back-office',\n redirect_uri: this.baseUrl + '/umbraco/oauth_complete',\n refresh_token: await this.getRefreshToken()\n },\n ignoreHTTPSErrors: true\n });\n\n if (response.status() === 200) {\n const jsonStorageCookie = response.headers()['set-cookie'];\n // We get multiple cookies, so we have to split them and then update each of the cookies in our localstorage \n let cookies = this.splitCookies(jsonStorageCookie);\n for (const cookie of cookies) {\n await this.updateCookie(cookie);\n }\n return;\n }\n console.log('Error refreshing access token.');\n return await this.updateTokenAndCookie(userEmail, userPassword);\n }\n\n private splitCookies(cookieString: string): string[] {\n return cookieString\n .trim()\n .split('\\n')\n .filter(line => line.trim())\n .filter(line => !line.includes('expires=Thu, 01 Jan 1970'));\n }\n\n async updateTokenAndCookie(userEmail: string, userPassword: string) {\n const storageStateValues = await this.login.login(userEmail, userPassword);\n await this.updateCookie(storageStateValues.cookie)\n\n // We get multiple set cookies, so we have to split them and then update each of the cookies in our localstorage \n let cookies = this.splitCookies(storageStateValues.setCookies);\n for (const cookie of cookies) {\n await this.updateCookie(cookie);\n }\n let tokens = await this.extractTokensFromSetCookie(storageStateValues.setCookies);\n\n return {\n cookie: storageStateValues.cookie,\n accessToken: tokens.accessToken,\n refreshToken: tokens.refreshToken,\n };\n }\n\n async readFileContent(filePath) {\n try {\n const jsonString = fs.readFileSync(filePath, 'utf-8');\n return JSON.parse(jsonString);\n } catch (error) {\n console.log('Error reading file:', error);\n throw error;\n }\n }\n\n async readLocalBearerToken() {\n const filePath = process.env.STORAGE_STAGE_PATH;\n if (!filePath) {\n return await this.getBearerToken();\n }\n\n try {\n const data = await JSON.parse(fs.readFileSync(filePath, 'utf-8'));\n const localStorageItem = await this.getLocalStorageToken(data, 'umb:userAuthTokenResponse');\n const parsedValue = await JSON.parse(localStorageItem.value);\n return `Bearer ${parsedValue.access_token}`;\n } catch {\n // If the file is not found, return the current access token from the page context\n return await this.getBearerToken();\n }\n }\n\n async readLocalCookie() {\n const filePath = process.env.STORAGE_STAGE_PATH;\n if (!filePath) {\n return await this.getCookie();\n }\n\n try {\n const data = await JSON.parse(fs.readFileSync(filePath, 'utf-8'));\n return await data.cookies.map(cookie => `${cookie.name}=${cookie.value}`).join('; ') + ';';\n } catch {\n // If the file is not found, return the current cookie from the page context\n return await this.getCookie();\n }\n }\n\n private async getLocalStorageToken(localStorage: any, tokenName: string) {\n return await localStorage.origins?.[0]?.localStorage?.find(item => item.name === tokenName);\n }\n\n async extractTokensFromSetCookie(setCookies: string) {\n // Extract token values from cookies\n const accessToken = setCookies.match(/__Host-umbAccessToken=([^;]+)/)?.[1] ?? \"\";\n const refreshToken = setCookies.match(/__Host-umbRefreshToken=([^;]+)/)?.[1] ?? \"\";\n return {accessToken, refreshToken};\n }\n\n private async getLocalStorageAuthToken() {\n const currentStorageState = await this.page.context().storageState();\n const currentStorageToken = await this.getLocalStorageToken(currentStorageState, 'umb:userAuthTokenResponse');\n return JSON.parse(currentStorageToken.value);\n }\n\n private async updateCookie(cookieString: string) {\n try {\n // Parse cookie string\n const parts = cookieString.split(';').map(p => p.trim());\n const [nameValue, ...attributes] = parts;\n const [name, value] = nameValue.split('=');\n const cookieName = name.trim();\n\n // Get current state\n const storageState = await this.page.context().storageState();\n const cookieIndex = storageState.cookies.findIndex(c => c.name === cookieName);\n\n if (cookieIndex === -1) {\n console.log(`Cookie \"${cookieName}\" not found`);\n return;\n }\n\n // Update cookie value\n storageState.cookies[cookieIndex].value = value;\n\n // Update expires if present\n for (const attr of attributes) {\n if (attr.toLowerCase().startsWith('expires=')) {\n const expiresDate = attr.split('=')[1];\n storageState.cookies[cookieIndex].expires = Date.parse(expiresDate) / 1000;\n }\n }\n\n // Write to file if path exists\n const filePath = process.env.STORAGE_STAGE_PATH;\n if (filePath) {\n const fs = require('fs');\n const fileData = JSON.parse(fs.readFileSync(filePath, 'utf-8'));\n\n const fileCookieIndex = fileData.cookies.findIndex(c => c.name === cookieName);\n\n if (fileCookieIndex !== -1) {\n fileData.cookies[fileCookieIndex] = storageState.cookies[cookieIndex];\n fs.writeFileSync(filePath, JSON.stringify(fileData, null, 2));\n } else {\n console.log(`Cookie \"${cookieName}\" not found in file`);\n }\n }\n } catch (error) {\n console.error('Error updating cookie:', error);\n }\n }\n\n async revokeAccessToken(cookie: string, accessToken: string) {\n return await this.page.request.post(this.baseUrl + '/umbraco/management/api/v1/security/back-office/revoke', {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n Cookie: cookie,\n Origin: this.baseUrl\n },\n form:\n {\n token: accessToken,\n token_type_hint: 'access_token',\n client_id: 'umbraco-back-office'\n },\n ignoreHTTPSErrors: true\n });\n }\n\n async revokeRefreshToken(cookie: string, refreshToken: string) {\n return await this.page.request.post(this.baseUrl + '/umbraco/management/api/v1/security/back-office/revoke', {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n Cookie: cookie,\n Origin: this.baseUrl\n },\n form:\n {\n token: refreshToken,\n token_type_hint: 'refresh_token',\n client_id: 'umbraco-back-office'\n },\n ignoreHTTPSErrors: true\n });\n }\n\n async loginToAdminUser(testUserCookie: string, testUserAccessToken: string, testUserRefreshToken: string) {\n await this.revokeAccessToken(testUserCookie, testUserAccessToken);\n await this.revokeRefreshToken(testUserCookie, testUserRefreshToken);\n \n let userCookieAndTokens: { cookie: string; accessToken: string; refreshToken: string } | undefined;\n userCookieAndTokens = await this.updateTokenAndCookie(umbracoConfig.user.login, umbracoConfig.user.password);\n\n return userCookieAndTokens;\n }\n\n async getCurrentTimePlusMinute(minute: number = 1) {\n const now = new Date();\n now.setMinutes(now.getMinutes() + minute); // Add one minute\n\n const year = now.getFullYear();\n const month = String(now.getMonth() + 1).padStart(2, '0');\n const day = String(now.getDate()).padStart(2, '0');\n const hours = String(now.getHours()).padStart(2, '0');\n const minutes = String(now.getMinutes()).padStart(2, '0');\n\n return `${year}-${month}-${day}T${hours}:${minutes}`;\n }\n\n async convertDateFormat(dateString: string) {\n return new Date(dateString).toLocaleString(\"en-US\", {\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n second: \"numeric\",\n hour12: true,\n });\n }\n}"]}
|
|
@@ -6,16 +6,12 @@ export declare class LoginApiHelper {
|
|
|
6
6
|
constructor(api: ApiHelpers, page: Page);
|
|
7
7
|
login(userEmail: string, password: string): Promise<{
|
|
8
8
|
cookie: string;
|
|
9
|
-
|
|
10
|
-
value: string;
|
|
11
|
-
} | undefined;
|
|
12
|
-
refreshToken: "" | {
|
|
13
|
-
value: string;
|
|
14
|
-
} | undefined;
|
|
9
|
+
setCookies: string;
|
|
15
10
|
}>;
|
|
11
|
+
extractPKCECodeFromSetCookie(setCookies: string): Promise<string>;
|
|
16
12
|
getCookie(userEmail: string, password: string): Promise<string>;
|
|
17
13
|
createCodeChallenge(codeVerifier: string): Promise<string>;
|
|
18
|
-
|
|
19
|
-
getCookiesWithAccessTokenAndRefreshToken(cookie: string, codeVerifier: string,
|
|
14
|
+
getAuthorizationSetCookie(codeChallenge: string, cookie: string, stateValue: string): Promise<string>;
|
|
15
|
+
getCookiesWithAccessTokenAndRefreshToken(cookie: string, codeVerifier: string, PKCECookie: string): Promise<string>;
|
|
20
16
|
getAccessToken(cookie: string, refreshToken: string): Promise<any>;
|
|
21
17
|
}
|
|
@@ -14,12 +14,14 @@ class LoginApiHelper {
|
|
|
14
14
|
const stateValue = 'myStateValue'; // A static state value for testing
|
|
15
15
|
const cookie = await this.getCookie(userEmail, password);
|
|
16
16
|
const codeChallenge = await this.createCodeChallenge(codeVerifier);
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
const authorizationSetCookie = await this.getAuthorizationSetCookie(codeChallenge, cookie, stateValue);
|
|
18
|
+
const PKCECookie = await this.extractPKCECodeFromSetCookie(authorizationSetCookie);
|
|
19
|
+
const setCookies = await this.getCookiesWithAccessTokenAndRefreshToken(cookie, codeVerifier, PKCECookie);
|
|
20
|
+
return { cookie, setCookies };
|
|
21
|
+
}
|
|
22
|
+
async extractPKCECodeFromSetCookie(setCookies) {
|
|
23
|
+
const match = setCookies.match(/.*(__Host-umbPkceCode=[A-Za-z0-9_-]+;)/s);
|
|
24
|
+
return match?.[1] ?? "";
|
|
23
25
|
}
|
|
24
26
|
async getCookie(userEmail, password) {
|
|
25
27
|
const response = await this.page.request.post(this.api.baseUrl + '/umbraco/management/api/v1/security/back-office/login', {
|
|
@@ -40,7 +42,7 @@ class LoginApiHelper {
|
|
|
40
42
|
async createCodeChallenge(codeVerifier) {
|
|
41
43
|
return (0, crypto_1.createHash)('sha256').update(codeVerifier, 'utf8').digest('base64').replace(/=/g, '').trim();
|
|
42
44
|
}
|
|
43
|
-
async
|
|
45
|
+
async getAuthorizationSetCookie(codeChallenge, cookie, stateValue) {
|
|
44
46
|
const authorizationUrl = `${this.api.baseUrl}/umbraco/management/api/v1/security/back-office/authorize?client_id=umbraco-back-office&response_type=code&redirect_uri=${encodeURIComponent(this.api.baseUrl + '/umbraco/oauth_complete')}&code_challenge_method=S256&code_challenge=${codeChallenge}&state=${stateValue}&scope=offline_access&prompt=consent&access_type=offline`;
|
|
45
47
|
const response = await this.page.request.get(authorizationUrl, {
|
|
46
48
|
headers: {
|
|
@@ -50,26 +52,23 @@ class LoginApiHelper {
|
|
|
50
52
|
ignoreHTTPSErrors: true,
|
|
51
53
|
maxRedirects: 0
|
|
52
54
|
});
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
if (!locationHeader) {
|
|
56
|
-
throw new Error('Authorization redirect location not found');
|
|
55
|
+
if (response.status() !== 200) {
|
|
56
|
+
console.error('Failed to retrieve cookie');
|
|
57
57
|
}
|
|
58
|
-
|
|
59
|
-
return new URLSearchParams(locationHeader.split('?')[1]).get('code');
|
|
58
|
+
return response.headers()['set-cookie'];
|
|
60
59
|
}
|
|
61
|
-
async getCookiesWithAccessTokenAndRefreshToken(cookie, codeVerifier,
|
|
60
|
+
async getCookiesWithAccessTokenAndRefreshToken(cookie, codeVerifier, PKCECookie) {
|
|
62
61
|
const response = await this.page.request.post(this.api.baseUrl + '/umbraco/management/api/v1/security/back-office/token', {
|
|
63
62
|
headers: {
|
|
64
63
|
'Content-Type': 'application/x-www-form-urlencoded',
|
|
65
|
-
Cookie: cookie,
|
|
64
|
+
Cookie: PKCECookie + cookie,
|
|
66
65
|
Origin: this.api.baseUrl
|
|
67
66
|
},
|
|
68
67
|
form: {
|
|
69
68
|
grant_type: 'authorization_code',
|
|
70
69
|
client_id: 'umbraco-back-office',
|
|
71
70
|
redirect_uri: this.api.baseUrl + '/umbraco/oauth_complete',
|
|
72
|
-
code:
|
|
71
|
+
code: '[redacted]',
|
|
73
72
|
code_verifier: codeVerifier
|
|
74
73
|
},
|
|
75
74
|
ignoreHTTPSErrors: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoginApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/LoginApiHelper.ts"],"names":[],"mappings":";;;AAEA,mCAAkC;AAElC,MAAa,cAAc;IACzB,GAAG,CAAa;IAChB,IAAI,CAAO;IAEX,YAAY,GAAe,EAAE,IAAU;QACrC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,SAAiB,EAAE,QAAgB;QACpD,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,mCAAmC;QACjE,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,mCAAmC;QACtE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACzD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QACnE,MAAM,
|
|
1
|
+
{"version":3,"file":"LoginApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/LoginApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {Page} from \"@playwright/test\";\nimport {createHash} from \"crypto\";\n\nexport class LoginApiHelper {\n api: ApiHelpers;\n page: Page;\n\n constructor(api: ApiHelpers, page: Page) {\n this.api = api;\n this.page = page;\n }\n\n public async login(userEmail: string, password: string) {\n const codeVerifier = \"12345\"; // A static state value for testing\n const stateValue = 'myStateValue'; // A static state value for testing\n const cookie = await this.getCookie(userEmail, password);\n const codeChallenge = await this.createCodeChallenge(codeVerifier);\n const authorizationSetCookie = await this.getAuthorizationSetCookie(codeChallenge, cookie, stateValue);\n const PKCECookie = await this.extractPKCECodeFromSetCookie(authorizationSetCookie);\n const setCookies = await this.getCookiesWithAccessTokenAndRefreshToken(cookie, codeVerifier, PKCECookie);\n return {cookie, setCookies};\n }\n\n async extractPKCECodeFromSetCookie(setCookies: string) {\n const match = setCookies.match(/.*(__Host-umbPkceCode=[A-Za-z0-9_-]+;)/s);\n return match?.[1] ?? \"\";\n }\n\n async getCookie(userEmail: string, password: string) {\n const response = await this.page.request.post(this.api.baseUrl + '/umbraco/management/api/v1/security/back-office/login', {\n headers: {\n 'Content-Type': 'application/json',\n Referer: this.api.baseUrl,\n Origin: this.api.baseUrl,\n },\n data: {\n username: userEmail,\n password: password\n },\n ignoreHTTPSErrors: true\n });\n\n // Ensure the cookie is properly captured\n return response.headers()['set-cookie'];\n }\n\n async createCodeChallenge(codeVerifier: string) {\n return createHash('sha256').update(codeVerifier, 'utf8').digest('base64').replace(/=/g, '').trim();\n }\n\n async getAuthorizationSetCookie(codeChallenge: string, cookie: string, stateValue: string) {\n const authorizationUrl = `${this.api.baseUrl}/umbraco/management/api/v1/security/back-office/authorize?client_id=umbraco-back-office&response_type=code&redirect_uri=${encodeURIComponent(this.api.baseUrl + '/umbraco/oauth_complete')}&code_challenge_method=S256&code_challenge=${codeChallenge}&state=${stateValue}&scope=offline_access&prompt=consent&access_type=offline`;\n const response = await this.page.request.get(authorizationUrl, {\n headers: {\n Cookie: cookie,\n Referer: this.api.baseUrl,\n },\n ignoreHTTPSErrors: true,\n maxRedirects: 0\n });\n\n if (response.status() !== 200) {\n console.error('Failed to retrieve cookie');\n }\n return response.headers()['set-cookie'];\n }\n\n async getCookiesWithAccessTokenAndRefreshToken(cookie: string, codeVerifier: string, PKCECookie: string) {\n const response = await this.page.request.post(this.api.baseUrl + '/umbraco/management/api/v1/security/back-office/token', {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n Cookie: PKCECookie + cookie,\n Origin: this.api.baseUrl\n },\n form: {\n grant_type: 'authorization_code',\n client_id: 'umbraco-back-office',\n redirect_uri: this.api.baseUrl + '/umbraco/oauth_complete',\n code: '[redacted]',\n code_verifier: codeVerifier\n },\n ignoreHTTPSErrors: true\n });\n\n if (response.status() !== 200) {\n console.error('Failed to retrieve cookie');\n }\n return response.headers()['set-cookie'];\n }\n\n async getAccessToken(cookie: string, refreshToken: string) {\n const response = await this.page.request.post(this.api.baseUrl + '/umbraco/management/api/v1/security/back-office/token', {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n Cookie: cookie,\n Origin: this.api.baseUrl\n },\n form: {\n grant_type: 'refresh_token',\n client_id: 'umbraco-back-office',\n redirect_uri: this.api.baseUrl + '/umbraco/oauth_complete',\n refresh_token: refreshToken,\n },\n ignoreHTTPSErrors: true\n });\n\n if (response.status() === 200) {\n console.log('Login successful');\n } else {\n console.error('Login failed');\n }\n return await response.json();\n }\n}\n"]}
|
|
@@ -33,13 +33,9 @@ export declare class UserApiHelper {
|
|
|
33
33
|
setUserPermissions(userName: string, userEmail: string, userPassword: string, userGroupId: string, documentStartNodeIds?: string[], hasDocumentRootAccess?: boolean, mediaStartNodeIds?: string[], hasMediaRootAccess?: boolean, uiCulture?: string): Promise<void>;
|
|
34
34
|
loginToUser(userName: string, userEmail: string, userPassword: string): Promise<{
|
|
35
35
|
cookie: string;
|
|
36
|
-
accessToken:
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
refreshToken: "" | undefined | {
|
|
40
|
-
value: string;
|
|
41
|
-
};
|
|
42
|
-
}>;
|
|
36
|
+
accessToken: string;
|
|
37
|
+
refreshToken: string;
|
|
38
|
+
} | undefined>;
|
|
43
39
|
getAll(): Promise<import("playwright-core").APIResponse>;
|
|
44
40
|
filterByText(text: string): Promise<any>;
|
|
45
41
|
filterByUserStates(userStates: string): Promise<any>;
|
|
@@ -233,13 +233,12 @@ class UserApiHelper {
|
|
|
233
233
|
}
|
|
234
234
|
async loginToUser(userName, userEmail, userPassword) {
|
|
235
235
|
const user = await this.getByName(userName);
|
|
236
|
-
let userCookieAndTokens
|
|
236
|
+
let userCookieAndTokens;
|
|
237
237
|
if (user.id !== null) {
|
|
238
238
|
await this.api.revokeAccessToken(await this.api.getCookie(), await this.api.getAccessToken());
|
|
239
239
|
await this.api.revokeRefreshToken(await this.api.getCookie(), await this.api.getRefreshToken());
|
|
240
240
|
userCookieAndTokens = await this.api.updateTokenAndCookie(userEmail, userPassword);
|
|
241
241
|
}
|
|
242
|
-
await this.page.reload();
|
|
243
242
|
return userCookieAndTokens;
|
|
244
243
|
}
|
|
245
244
|
async getAll() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/UserApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {UserBuilder} from \"@umbraco/json-models-builders\";\nimport {Page} from \"@playwright/test\";\n\nexport class UserApiHelper {\n api: ApiHelpers;\n page: Page;\n\n constructor(api: ApiHelpers, page: Page) {\n this.api = api;\n this.page = page;\n }\n\n async ensureNameNotExists(name: string) {\n const response = await this.getAll();\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n // It takes a while to create the user, so if we delete it too fast. We get a DB lock\n await this.page.waitForTimeout(500);\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user/' + sb.id);\n }\n }\n }\n return null;\n }\n\n async getUsersCount() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user?skip=0&take=10000');\n const json = await response.json();\n return json.total;\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user/' + id);\n return response.status() === 200;\n }\n\n async doesNameExist(name: string) {\n const response = await this.getAll();\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n return true;\n }\n }\n return false;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user/' + id);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user/' + sb.id);\n return await response.json();\n }\n }\n }\n return null;\n }\n\n async create(userData) {\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user', userData);\n return response.headers().location.split(\"/\").pop();\n }\n\n async update(id: string, userData) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/user/' + id, userData);\n }\n\n async delete(id: string) {\n await this.page.waitForTimeout(500);\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user/' + id);\n }\n\n async deleteByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n await this.page.waitForTimeout(500);\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user/' + sb.id);\n }\n }\n }\n return null;\n }\n\n async saveUser(user) {\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user', user);\n }\n\n // Avatar\n async addAvatar(id: string, fileId: string) {\n const avatar = {\n 'file':\n {\n 'id': fileId\n }\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/avatar/' + id, avatar);\n }\n\n async removeAvatar(id: string) {\n await this.page.waitForTimeout(500);\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user/avatar/' + id);\n }\n\n // Enable/Disabled and Unlock\n async disable(ids: string[]) {\n const users = {\n \"userIds\": ids.map(id => ({id}))\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/disable', users);\n }\n\n async enable(ids: string[]) {\n const users = {\n \"userIds\": ids.map(id => ({id}))\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/enable', users);\n }\n\n async unlock(ids: string[]) {\n const users = {\n \"userIds\": ids.map(id => ({id}))\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/unlock', users);\n }\n\n async getCurrentUser() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user/current');\n return await response.json();\n }\n\n // Set User Groups for Users\n async setUserGroups(userIds: string[], userGroupIds: string[]) {\n const userGroupsForUsers = {\n \"userIds\": userIds.map(id => ({id})),\n \"userGroupIds\": userGroupIds.map(id => ({id}))\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/set-user-groups', userGroupsForUsers);\n }\n\n // Password\n async updateCurrentUserPassword(newPassword: string, oldPassword: string) {\n const updatePassword = {\n \"newPassword\": newPassword,\n \"oldPassword\": oldPassword\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/change-password/', updatePassword);\n }\n\n // Invite\n async invite(email: string, name: string, userGroupIds: string[], message: string) {\n const userInvite = {\n \"email\": email,\n \"userName\": email,\n \"name\": name,\n \"userGroupIds\": userGroupIds.map(id => ({id})),\n \"message\": message\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/invite', userInvite);\n }\n\n async createDefaultUser(nameOfUser: string, email: string, userGroupIds: string[], kind: string = 'Default') {\n const user = new UserBuilder()\n .withName(nameOfUser)\n .withEmail(email)\n .withKind(kind)\n .build();\n\n for (const userGroupId of userGroupIds) {\n user.userGroupIds.push({id: userGroupId});\n }\n return await this.create(user);\n }\n\n async addDefaultAvatarImageToUser(userId: string) {\n const crypto = require('crypto');\n const temporaryFileId = crypto.randomUUID();\n const filePath = './fixtures/mediaLibrary/Umbraco.png';\n const fileName = 'Umbraco.png';\n const mimeType = 'image/png';\n await this.api.temporaryFile.create(temporaryFileId, fileName, mimeType, filePath);\n return await this.addAvatar(userId, temporaryFileId);\n }\n\n async doesUserContainUserGroupIds(userName: string, userGroupIds: string[]) {\n const user = await this.getByName(userName);\n if (!user.userGroupIds || user.userGroupIds.length === 0) {\n return false;\n }\n const userGroupIdsArray = user.userGroupIds.map(group => group.id);\n return userGroupIdsArray.every(id => userGroupIds.includes(id));\n }\n\n async doesUserContainContentStartNodeIds(userName: string, documentStartNodeIds: string[]) {\n const user = await this.getByName(userName);\n if (!user.documentStartNodeIds || user.documentStartNodeIds.length === 0) {\n return false;\n }\n const documentStartNodeIdsArray = user.documentStartNodeIds.map(documentStartNode => documentStartNode.id);\n return documentStartNodeIdsArray.every(id => documentStartNodeIds.includes(id));\n }\n\n async doesUserContainMediaStartNodeIds(userName: string, mediaStartNodeIds: string[]) {\n const user = await this.getByName(userName);\n if (!user.mediaStartNodeIds || user.mediaStartNodeIds.length === 0) {\n return false;\n }\n const mediaStartNodeIdsArray = user.mediaStartNodeIds.map(mediaStartNode => mediaStartNode.id);\n return mediaStartNodeIdsArray.every(id => mediaStartNodeIds.includes(id));\n }\n\n async updatePassword(userId: string, newPassword: string) {\n const updatePassword = {\n \"newPassword\": newPassword,\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/' + userId + '/change-password/', updatePassword);\n }\n\n // User Permissions\n async setUserPermissions(userName: string, userEmail: string, userPassword: string, userGroupId: string, documentStartNodeIds: string[] = [], hasDocumentRootAccess = false, mediaStartNodeIds: string[] = [], hasMediaRootAccess = false, uiCulture: string = 'en-us') {\n let user = await this.getByName(userName);\n\n // If the user does not exist, create a default user and retrieve the newly created user\n if (!user) {\n await this.createDefaultUser(userName, userEmail, [userGroupId]);\n user = await this.getByName(userName);\n }\n\n await this.updatePassword(user.id, userPassword);\n\n let userSetup = {\n documentStartNodeIds: [] as { id: string }[],\n email: user.email,\n hasDocumentRootAccess: hasDocumentRootAccess,\n hasMediaRootAccess: hasMediaRootAccess,\n languageIsoCode: uiCulture,\n mediaStartNodeIds: [] as { id: string }[],\n name: user.name,\n userGroupIds: [{id: userGroupId}],\n userName: user.userName,\n };\n\n for (const documentStartNodeId of documentStartNodeIds) {\n userSetup.documentStartNodeIds.push({id: documentStartNodeId});\n }\n\n for (const mediaStartNodeId of mediaStartNodeIds) {\n userSetup.mediaStartNodeIds.push({id: mediaStartNodeId});\n }\n\n await this.update(user.id, userSetup);\n }\n\n async loginToUser(userName: string, userEmail: string, userPassword: string) {\n const user = await this.getByName(userName);\n let userCookieAndTokens: { cookie: string; accessToken: \"\" | undefined | { value: string }; refreshToken: \"\" | undefined | { value: string } } = {cookie: \"\", accessToken: \"\", refreshToken: \"\"};\n\n if (user.id !== null) {\n await this.api.revokeAccessToken(await this.api.getCookie(), await this.api.getAccessToken());\n await this.api.revokeRefreshToken(await this.api.getCookie(), await this.api.getRefreshToken());\n userCookieAndTokens = await this.api.updateTokenAndCookie(userEmail, userPassword);\n }\n\n await this.page.reload();\n return userCookieAndTokens;\n }\n\n async getAll() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user?skip=0&take=100');\n }\n\n async filterByText(text: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/filter/user?skip=0&take=100&filter=' + text);\n return await response.json();\n }\n\n async filterByUserStates(userStates: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/filter/user?skip=0&take=100&userStates=' + userStates);\n return await response.json();\n }\n\n async filterByUserGroupIds(userGroupIds: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/filter/user?skip=0&take=100&userGroupIds=' + userGroupIds);\n return await response.json();\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"UserApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/UserApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {UserBuilder} from \"@umbraco/json-models-builders\";\nimport {Page} from \"@playwright/test\";\n\nexport class UserApiHelper {\n api: ApiHelpers;\n page: Page;\n\n constructor(api: ApiHelpers, page: Page) {\n this.api = api;\n this.page = page;\n }\n\n async ensureNameNotExists(name: string) {\n const response = await this.getAll();\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n // It takes a while to create the user, so if we delete it too fast. We get a DB lock\n await this.page.waitForTimeout(500);\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user/' + sb.id);\n }\n }\n }\n return null;\n }\n\n async getUsersCount() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user?skip=0&take=10000');\n const json = await response.json();\n return json.total;\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user/' + id);\n return response.status() === 200;\n }\n\n async doesNameExist(name: string) {\n const response = await this.getAll();\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n return true;\n }\n }\n return false;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user/' + id);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user/' + sb.id);\n return await response.json();\n }\n }\n }\n return null;\n }\n\n async create(userData) {\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user', userData);\n return response.headers().location.split(\"/\").pop();\n }\n\n async update(id: string, userData) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/user/' + id, userData);\n }\n\n async delete(id: string) {\n await this.page.waitForTimeout(500);\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user/' + id);\n }\n\n async deleteByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n await this.page.waitForTimeout(500);\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user/' + sb.id);\n }\n }\n }\n return null;\n }\n\n async saveUser(user) {\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user', user);\n }\n\n // Avatar\n async addAvatar(id: string, fileId: string) {\n const avatar = {\n 'file':\n {\n 'id': fileId\n }\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/avatar/' + id, avatar);\n }\n\n async removeAvatar(id: string) {\n await this.page.waitForTimeout(500);\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/user/avatar/' + id);\n }\n\n // Enable/Disabled and Unlock\n async disable(ids: string[]) {\n const users = {\n \"userIds\": ids.map(id => ({id}))\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/disable', users);\n }\n\n async enable(ids: string[]) {\n const users = {\n \"userIds\": ids.map(id => ({id}))\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/enable', users);\n }\n\n async unlock(ids: string[]) {\n const users = {\n \"userIds\": ids.map(id => ({id}))\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/unlock', users);\n }\n\n async getCurrentUser() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user/current');\n return await response.json();\n }\n\n // Set User Groups for Users\n async setUserGroups(userIds: string[], userGroupIds: string[]) {\n const userGroupsForUsers = {\n \"userIds\": userIds.map(id => ({id})),\n \"userGroupIds\": userGroupIds.map(id => ({id}))\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/set-user-groups', userGroupsForUsers);\n }\n\n // Password\n async updateCurrentUserPassword(newPassword: string, oldPassword: string) {\n const updatePassword = {\n \"newPassword\": newPassword,\n \"oldPassword\": oldPassword\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/change-password/', updatePassword);\n }\n\n // Invite\n async invite(email: string, name: string, userGroupIds: string[], message: string) {\n const userInvite = {\n \"email\": email,\n \"userName\": email,\n \"name\": name,\n \"userGroupIds\": userGroupIds.map(id => ({id})),\n \"message\": message\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/invite', userInvite);\n }\n\n async createDefaultUser(nameOfUser: string, email: string, userGroupIds: string[], kind: string = 'Default') {\n const user = new UserBuilder()\n .withName(nameOfUser)\n .withEmail(email)\n .withKind(kind)\n .build();\n\n for (const userGroupId of userGroupIds) {\n user.userGroupIds.push({id: userGroupId});\n }\n return await this.create(user);\n }\n\n async addDefaultAvatarImageToUser(userId: string) {\n const crypto = require('crypto');\n const temporaryFileId = crypto.randomUUID();\n const filePath = './fixtures/mediaLibrary/Umbraco.png';\n const fileName = 'Umbraco.png';\n const mimeType = 'image/png';\n await this.api.temporaryFile.create(temporaryFileId, fileName, mimeType, filePath);\n return await this.addAvatar(userId, temporaryFileId);\n }\n\n async doesUserContainUserGroupIds(userName: string, userGroupIds: string[]) {\n const user = await this.getByName(userName);\n if (!user.userGroupIds || user.userGroupIds.length === 0) {\n return false;\n }\n const userGroupIdsArray = user.userGroupIds.map(group => group.id);\n return userGroupIdsArray.every(id => userGroupIds.includes(id));\n }\n\n async doesUserContainContentStartNodeIds(userName: string, documentStartNodeIds: string[]) {\n const user = await this.getByName(userName);\n if (!user.documentStartNodeIds || user.documentStartNodeIds.length === 0) {\n return false;\n }\n const documentStartNodeIdsArray = user.documentStartNodeIds.map(documentStartNode => documentStartNode.id);\n return documentStartNodeIdsArray.every(id => documentStartNodeIds.includes(id));\n }\n\n async doesUserContainMediaStartNodeIds(userName: string, mediaStartNodeIds: string[]) {\n const user = await this.getByName(userName);\n if (!user.mediaStartNodeIds || user.mediaStartNodeIds.length === 0) {\n return false;\n }\n const mediaStartNodeIdsArray = user.mediaStartNodeIds.map(mediaStartNode => mediaStartNode.id);\n return mediaStartNodeIdsArray.every(id => mediaStartNodeIds.includes(id));\n }\n\n async updatePassword(userId: string, newPassword: string) {\n const updatePassword = {\n \"newPassword\": newPassword,\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/user/' + userId + '/change-password/', updatePassword);\n }\n\n // User Permissions\n async setUserPermissions(userName: string, userEmail: string, userPassword: string, userGroupId: string, documentStartNodeIds: string[] = [], hasDocumentRootAccess = false, mediaStartNodeIds: string[] = [], hasMediaRootAccess = false, uiCulture: string = 'en-us') {\n let user = await this.getByName(userName);\n\n // If the user does not exist, create a default user and retrieve the newly created user\n if (!user) {\n await this.createDefaultUser(userName, userEmail, [userGroupId]);\n user = await this.getByName(userName);\n }\n\n await this.updatePassword(user.id, userPassword);\n\n let userSetup = {\n documentStartNodeIds: [] as { id: string }[],\n email: user.email,\n hasDocumentRootAccess: hasDocumentRootAccess,\n hasMediaRootAccess: hasMediaRootAccess,\n languageIsoCode: uiCulture,\n mediaStartNodeIds: [] as { id: string }[],\n name: user.name,\n userGroupIds: [{id: userGroupId}],\n userName: user.userName,\n };\n\n for (const documentStartNodeId of documentStartNodeIds) {\n userSetup.documentStartNodeIds.push({id: documentStartNodeId});\n }\n\n for (const mediaStartNodeId of mediaStartNodeIds) {\n userSetup.mediaStartNodeIds.push({id: mediaStartNodeId});\n }\n\n await this.update(user.id, userSetup);\n }\n\n async loginToUser(userName: string, userEmail: string, userPassword: string) {\n const user = await this.getByName(userName);\n let userCookieAndTokens: { cookie: string; accessToken: string; refreshToken: string } | undefined;\n if (user.id !== null) {\n await this.api.revokeAccessToken(await this.api.getCookie(), await this.api.getAccessToken());\n await this.api.revokeRefreshToken(await this.api.getCookie(), await this.api.getRefreshToken());\n userCookieAndTokens = await this.api.updateTokenAndCookie(userEmail, userPassword);\n }\n \n return userCookieAndTokens;\n }\n\n async getAll() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/user?skip=0&take=100');\n }\n\n async filterByText(text: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/filter/user?skip=0&take=100&filter=' + text);\n return await response.json();\n }\n\n async filterByUserStates(userStates: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/filter/user?skip=0&take=100&userStates=' + userStates);\n return await response.json();\n }\n\n async filterByUserGroupIds(userGroupIds: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/filter/user?skip=0&take=100&userGroupIds=' + userGroupIds);\n return await response.json();\n }\n}"]}
|
|
@@ -11,7 +11,7 @@ const test = test_1.test.extend({
|
|
|
11
11
|
// Runs the isAccessTokenValid before each implementation of umbracoApi in our tests (Which is every single one)
|
|
12
12
|
// await umbracoApi.isAccessTokenValid();
|
|
13
13
|
// TODO: use isAccessTokenValid in the tests, currently it is a bit flaky. So now we refresh the token after each test
|
|
14
|
-
await umbracoApi.
|
|
14
|
+
await umbracoApi.refreshLoginState(umbraco_config_1.umbracoConfig.user.login, umbraco_config_1.umbracoConfig.user.password);
|
|
15
15
|
await use(umbracoApi);
|
|
16
16
|
},
|
|
17
17
|
umbracoUi: async ({ page }, use) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testExtension.js","sourceRoot":"","sources":["../../../lib/helpers/testExtension.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAC7C,wBAAwC;AACxC,yDAAmD;AACnD,6DAAwD;AAExD,MAAM,IAAI,GAAG,WAAI,CAAC,MAAM,CAAwD;IAC9E,UAAU,EAAE,KAAK,EAAE,EAAC,IAAI,EAAC,EAAE,GAAG,EAAE,EAAE;QAChC,MAAM,UAAU,GAAG,IAAI,aAAU,CAAC,IAAI,CAAC,CAAC;QACxC,gHAAgH;QAChH,yCAAyC;QACzC,sHAAsH;QACtH,MAAM,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"testExtension.js","sourceRoot":"","sources":["../../../lib/helpers/testExtension.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAC7C,wBAAwC;AACxC,yDAAmD;AACnD,6DAAwD;AAExD,MAAM,IAAI,GAAG,WAAI,CAAC,MAAM,CAAwD;IAC9E,UAAU,EAAE,KAAK,EAAE,EAAC,IAAI,EAAC,EAAE,GAAG,EAAE,EAAE;QAChC,MAAM,UAAU,GAAG,IAAI,aAAU,CAAC,IAAI,CAAC,CAAC;QACxC,gHAAgH;QAChH,yCAAyC;QACzC,sHAAsH;QACtH,MAAM,UAAU,CAAC,iBAAiB,CAAC,8BAAa,CAAC,IAAI,CAAC,KAAK,EAAE,8BAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1F,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC;IAED,SAAS,EAAE,KAAK,EAAE,EAAC,IAAI,EAAC,EAAE,GAAG,EAAE,EAAE;QAC/B,MAAM,SAAS,GAAG,IAAI,YAAS,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,kBAAkB,GAAG,IAAI,uCAAkB,EAAE,CAAC;QAEpD,kDAAkD;QAClD,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE;YAC3B,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,OAAO,EAAE;gBAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;gBACpC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC9C,IAAI,gBAAgB,GAAG,kBAAkB,CAAC,4BAA4B,CAAC,YAAY,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;gBAC9G,kBAAkB,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;aAC9D;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;CACF,CAAC,CAAA;AAEM,oBAAI","sourcesContent":["import {test as base} from \"@playwright/test\"\nimport {ApiHelpers, UiHelpers} from \".\";\nimport {umbracoConfig} from \"../../umbraco.config\";\nimport {ConsoleErrorHelper} from \"./ConsoleErrorHelper\";\n\nconst test = base.extend<{ umbracoApi: ApiHelpers } & { umbracoUi: UiHelpers }>({\n umbracoApi: async ({page}, use) => {\n const umbracoApi = new ApiHelpers(page);\n // Runs the isAccessTokenValid before each implementation of umbracoApi in our tests (Which is every single one)\n // await umbracoApi.isAccessTokenValid();\n // TODO: use isAccessTokenValid in the tests, currently it is a bit flaky. So now we refresh the token after each test\n await umbracoApi.refreshLoginState(umbracoConfig.user.login, umbracoConfig.user.password);\n await use(umbracoApi);\n },\n\n umbracoUi: async ({page}, use) => {\n const umbracoUi = new UiHelpers(page);\n const consoleErrorHelper = new ConsoleErrorHelper();\n\n // Listen for all console events and handle errors\n page.on('console', message => {\n if (message.type() === 'error') {\n const errorMessage = message.text();\n const testTitle = test.info().title;\n const testLocation = test.info().titlePath[0];\n let errorMessageJson = consoleErrorHelper.updateConsoleErrorTextToJson(errorMessage, testTitle, testLocation);\n consoleErrorHelper.writeConsoleErrorToFile(errorMessageJson);\n }\n });\n\n await use(umbracoUi);\n }\n})\n\nexport {test};"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/tslib/tslib.d.ts","../node_modules/playwright-core/types/protocol.d.ts","../node_modules/playwright-core/types/structs.d.ts","../node_modules/playwright-core/types/types.d.ts","../node_modules/playwright/types/test.d.ts","../node_modules/playwright/test.d.ts","../node_modules/@playwright/test/index.d.ts","../umbraco.config.ts","../lib/helpers/ReportHelper.ts","../lib/helpers/TelemetryDataApiHelper.ts","../lib/helpers/LanguageApiHelper.ts","../lib/helpers/DictionaryApiHelper.ts","../lib/helpers/RelationTypeApiHelper.ts","../node_modules/@umbraco/json-models-builders/dist/lib/helpers/AliasHelper.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/packages/packageBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/packages/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/dataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/sliderDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/textAreaDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/numericDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/datePickerDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/blockListBuilder/blockListBlockBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/blockListBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/blockListDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/checkboxListDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/contentPickerDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/blockGridBuiler/blockGridSpecifiedAllowanceBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/blockGridBuiler/blockGridBlockBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/blockGridBuiler/blockGridAreaBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/blockGridBuiler/blockGridBlockGroupBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/blockGridBuiler/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/blockGridDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/dropdownDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/imageCropperBuilder/imageCropperCropBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/imageCropperBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/imageCropperDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/mediaPickerBuilder/mediaPickerCropBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/mediaPickerBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/mediaPickerDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/radioboxDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/textStringDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/trueFalseDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/emailAddressDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/codeEditorDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/markdownEditorDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/decimalDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/multipleTextStringDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/listViewBuilder/listViewLayoutBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/listViewBuilder/listViewPropertyBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/listViewBuilder/listViewBulkActionPermissionsBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/listViewBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/listViewDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/approvedColorBuilder/approvedColorItemBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/approvedColorBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/approvedColorDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/tinyMCEBuilder/tinyMCEToolbarBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/tinyMCEBuilder/tinyMCEDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/tinyMCEBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/tiptapBuilder/tiptapExtensionBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/tiptapBuilder/tiptapToolbarGroupBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/tiptapBuilder/tiptapToolbarRowBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/tiptapBuilder/tiptapBlockBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/tiptapBuilder/tiptapStatusbarBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/tiptapBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/tiptapDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/uploadFieldDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/labelDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/multiUrlPickerDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/tagsDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/multiNodeTreePickerBuilder/startNodeQueryStepsBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/multiNodeTreePickerBuilder/multiNodeTreePickerStartNodeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/multiNodeTreePickerDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/dateTimeWithTimeZonePickerDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/dateOnlyPickerDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/timeOnlyPickerDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/dateTimePickerDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/mediaPickerValueBuilder/mediaPickerValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/mediaPickerValueBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/urlPickerValueBuilder/urlPickerValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/urlPickerValueBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/imageCropperValueBuilder/imageCropperValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/imageCropperValueBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/baseBlockValueBuilder/baseExposeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/baseBlockValueBuilder/baseContentDataValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/baseBlockValueBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockGridValueBuilder/blockGridContentDataValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockGridValueBuilder/blockGridContentDataBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockGridValueBuilder/blockGridExposeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockGridValueBuilder/blockGridAreaBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockGridValueBuilder/blockGridLayoutBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockGridValueBuilder/blockGridValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockGridValueBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockListValueBuilder/blockListContentDataValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockListValueBuilder/blockListContentDataBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockListValueBuilder/blockListExposeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockListValueBuilder/blockListLayoutBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockListValueBuilder/blockListValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockListValueBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/documentValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/documentVariantBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/documentBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/documentDomainBuilder/documentDomainValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/documentDomainBuilder/documentDomainBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/documentTypes/documentTypePropertyBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/documentTypes/documentTypeContainerBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/documentTypes/documentTypeAllowedDocumentTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/documentTypes/documentTypeCompositionBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/documentTypes/documentTypeAllowedTemplateBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/documentTypes/documentTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/documentTypes/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/mediaTypes/mediaTypePropertyBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/mediaTypes/mediaTypeContainerBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/mediaTypes/mediaTypeAllowedMediaTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/mediaTypes/mediaTypeCompositionBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/mediaTypes/mediaTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/mediaTypes/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/media/mediaValueDataBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/media/mediaValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/media/mediaVariantBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/media/mediaBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/media/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/users/userBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/users/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/userGroups/userGroupsPermissionsBaseBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/userGroups/userGroupDocumentPermissionBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/userGroups/userGroupPropertyValuePermissionBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/userGroups/userGroupPermissionBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/userGroups/userGroupBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/userGroups/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/member/memberValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/member/memberVariantBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/member/memberBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/member/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/memberTypes/memberTypeCompositionBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/memberTypes/memberTypeContainerBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/memberTypes/memberTypePropertyBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/memberTypes/memberTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/memberTypes/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/documentBlueprints/documentBlueprintsValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/documentBlueprints/documentBlueprintsVariantBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/documentBlueprints/documentBlueprintsBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/documentBlueprints/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/webhook/webhookBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/webhook/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/index.d.ts","../lib/helpers/ConstantHelper.ts","../lib/helpers/UserGroupApiHelper.ts","../lib/helpers/AliasHelper.ts","../lib/helpers/TemplateApiHelper.ts","../lib/helpers/DataTypeApiHelper.ts","../lib/helpers/UserApiHelper.ts","../lib/helpers/TemporaryFileApiHelper.ts","../lib/helpers/PackageApiHelper.ts","../lib/helpers/ScriptApiHelper.ts","../lib/helpers/PartialViewApiHelper.ts","../lib/helpers/StylesheetApiHelper.ts","../lib/helpers/LogViewerApiHelper.ts","../lib/helpers/DocumentTypeApiHelper.ts","../lib/helpers/DocumentApiHelper.ts","../lib/helpers/MediaTypeApiHelper.ts","../lib/helpers/MediaApiHelper.ts","../lib/helpers/ObjectTypesApiHelper.ts","../lib/helpers/ModelsBuilderApiHelper.ts","../lib/helpers/HealthCheckApiHelper.ts","../lib/helpers/IndexerApiHelper.ts","../lib/helpers/PublishedCacheApiHelper.ts","../lib/helpers/RedirectManagementApiHelper.ts","../lib/helpers/MemberGroupApiHelper.ts","../lib/helpers/MemberApiHelper.ts","../lib/helpers/MemberTypeApiHelper.ts","../lib/helpers/DocumentBlueprintApiHelper.ts","../lib/helpers/LoginApiHelper.ts","../lib/helpers/WebhookApiHelper.ts","../lib/helpers/differentAppSettingsHelpers/MediaDeliveryApiHelper.ts","../lib/helpers/differentAppSettingsHelpers/ContentDeliveryApiHelper.ts","../lib/helpers/ApiHelpers.ts","../lib/helpers/UiBaseLocators.ts","../lib/helpers/StylesheetUiHelper.ts","../lib/helpers/PartialViewUiHelper.ts","../lib/helpers/ScriptUiHelper.ts","../lib/helpers/TemplateUiHelper.ts","../lib/helpers/LoginUiHelper.ts","../lib/helpers/LogViewerUiHelper.ts","../lib/helpers/TelemetryDataUiHelper.ts","../lib/helpers/DataTypeUiHelper.ts","../lib/helpers/RelationTypeUiHelper.ts","../lib/helpers/PackageUiHelper.ts","../lib/helpers/LanguageUiHelper.ts","../lib/helpers/ModelsBuilderUiHelper.ts","../lib/helpers/ExamineManagementUiHelper.ts","../lib/helpers/PublishedStatusUiHelper.ts","../lib/helpers/HealthCheckUiHelper.ts","../lib/helpers/ProfilingUiHelper.ts","../lib/helpers/WelcomeDashboardUiHelper.ts","../lib/helpers/ContentUiHelper.ts","../lib/helpers/DocumentTypeUiHelper.ts","../lib/helpers/RedirectManagementUiHelper.ts","../lib/helpers/MemberGroupUiHelper.ts","../lib/helpers/MemberUiHelper.ts","../lib/helpers/MemberTypeUiHelper.ts","../lib/helpers/MediaTypeUiHelper.ts","../lib/helpers/UserUiHelper.ts","../lib/helpers/UserGroupUiHelper.ts","../lib/helpers/MediaUiHelper.ts","../lib/helpers/DocumentBlueprintUiHelper.ts","../lib/helpers/DictionaryUiHelper.ts","../lib/helpers/ContentRenderUiHelper.ts","../lib/helpers/FormsUiHelper.ts","../lib/helpers/CurrentUserProfileUiHelper.ts","../lib/helpers/WebhookUiHelper.ts","../lib/helpers/differentAppSettingsHelpers/InstallUiHelper.ts","../lib/helpers/differentAppSettingsHelpers/ExternalLoginUiHelpers.ts","../lib/helpers/UiHelpers.ts","../lib/helpers/ConsoleErrorHelper.ts","../lib/helpers/testExtension.ts","../lib/helpers/NotificationConstantHelper.ts","../lib/helpers/index.ts","../lib/index.ts","../node_modules/@types/node/ts4.8/assert.d.ts","../node_modules/@types/node/ts4.8/assert/strict.d.ts","../node_modules/undici-types/header.d.ts","../node_modules/undici-types/readable.d.ts","../node_modules/undici-types/file.d.ts","../node_modules/undici-types/fetch.d.ts","../node_modules/undici-types/formdata.d.ts","../node_modules/undici-types/connector.d.ts","../node_modules/undici-types/client.d.ts","../node_modules/undici-types/errors.d.ts","../node_modules/undici-types/dispatcher.d.ts","../node_modules/undici-types/global-dispatcher.d.ts","../node_modules/undici-types/global-origin.d.ts","../node_modules/undici-types/pool-stats.d.ts","../node_modules/undici-types/pool.d.ts","../node_modules/undici-types/handlers.d.ts","../node_modules/undici-types/balanced-pool.d.ts","../node_modules/undici-types/agent.d.ts","../node_modules/undici-types/mock-interceptor.d.ts","../node_modules/undici-types/mock-agent.d.ts","../node_modules/undici-types/mock-client.d.ts","../node_modules/undici-types/mock-pool.d.ts","../node_modules/undici-types/mock-errors.d.ts","../node_modules/undici-types/proxy-agent.d.ts","../node_modules/undici-types/api.d.ts","../node_modules/undici-types/cookies.d.ts","../node_modules/undici-types/patch.d.ts","../node_modules/undici-types/filereader.d.ts","../node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/undici-types/websocket.d.ts","../node_modules/undici-types/content-type.d.ts","../node_modules/undici-types/cache.d.ts","../node_modules/undici-types/interceptors.d.ts","../node_modules/undici-types/index.d.ts","../node_modules/@types/node/ts4.8/globals.d.ts","../node_modules/@types/node/ts4.8/async_hooks.d.ts","../node_modules/@types/node/ts4.8/buffer.d.ts","../node_modules/@types/node/ts4.8/child_process.d.ts","../node_modules/@types/node/ts4.8/cluster.d.ts","../node_modules/@types/node/ts4.8/console.d.ts","../node_modules/@types/node/ts4.8/constants.d.ts","../node_modules/@types/node/ts4.8/crypto.d.ts","../node_modules/@types/node/ts4.8/dgram.d.ts","../node_modules/@types/node/ts4.8/diagnostics_channel.d.ts","../node_modules/@types/node/ts4.8/dns.d.ts","../node_modules/@types/node/ts4.8/dns/promises.d.ts","../node_modules/@types/node/ts4.8/domain.d.ts","../node_modules/@types/node/ts4.8/dom-events.d.ts","../node_modules/@types/node/ts4.8/events.d.ts","../node_modules/@types/node/ts4.8/fs.d.ts","../node_modules/@types/node/ts4.8/fs/promises.d.ts","../node_modules/@types/node/ts4.8/http.d.ts","../node_modules/@types/node/ts4.8/http2.d.ts","../node_modules/@types/node/ts4.8/https.d.ts","../node_modules/@types/node/ts4.8/inspector.d.ts","../node_modules/@types/node/ts4.8/module.d.ts","../node_modules/@types/node/ts4.8/net.d.ts","../node_modules/@types/node/ts4.8/os.d.ts","../node_modules/@types/node/ts4.8/path.d.ts","../node_modules/@types/node/ts4.8/perf_hooks.d.ts","../node_modules/@types/node/ts4.8/process.d.ts","../node_modules/@types/node/ts4.8/punycode.d.ts","../node_modules/@types/node/ts4.8/querystring.d.ts","../node_modules/@types/node/ts4.8/readline.d.ts","../node_modules/@types/node/ts4.8/readline/promises.d.ts","../node_modules/@types/node/ts4.8/repl.d.ts","../node_modules/@types/node/ts4.8/stream.d.ts","../node_modules/@types/node/ts4.8/stream/promises.d.ts","../node_modules/@types/node/ts4.8/stream/consumers.d.ts","../node_modules/@types/node/ts4.8/stream/web.d.ts","../node_modules/@types/node/ts4.8/string_decoder.d.ts","../node_modules/@types/node/ts4.8/test.d.ts","../node_modules/@types/node/ts4.8/timers.d.ts","../node_modules/@types/node/ts4.8/timers/promises.d.ts","../node_modules/@types/node/ts4.8/tls.d.ts","../node_modules/@types/node/ts4.8/trace_events.d.ts","../node_modules/@types/node/ts4.8/tty.d.ts","../node_modules/@types/node/ts4.8/url.d.ts","../node_modules/@types/node/ts4.8/util.d.ts","../node_modules/@types/node/ts4.8/v8.d.ts","../node_modules/@types/node/ts4.8/vm.d.ts","../node_modules/@types/node/ts4.8/wasi.d.ts","../node_modules/@types/node/ts4.8/worker_threads.d.ts","../node_modules/@types/node/ts4.8/zlib.d.ts","../node_modules/@types/node/ts4.8/globals.global.d.ts","../node_modules/@types/node/ts4.8/index.d.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"9b087de7268e4efc5f215347a62656663933d63c0b1d7b624913240367b999ea","affectsGlobalScope":true},{"version":"3260e3386d9535b804205bdddb5618a9a27735bd22927f48ad54363abcd23d45","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"14a84fbe4ec531dcbaf5d2594fd95df107258e60ae6c6a076404f13c3f66f28e","c77a05fd25ad8573bf57168e895b6e323687623e49157bcc8b0c512cbd8e1c54","32727845ab5bd8a9ef3e4844c567c09f6d418fcf0f90d381c00652a6f23e7f6e","73e3c02b8dda99fdd41c42b3d8cc8a405ee4aff24026f171d91954bd46327fdf",{"version":"6187791003c1feaf4e15681bf4b1222d9f1be65b24bdf71c61ab31670248710c","affectsGlobalScope":true},"3f00324f263189b385c3a9383b1f4dae6237697bcf0801f96aa35c340512d79c","ec8997c2e5cea26befc76e7bf990750e96babb16977673a9ff3b5c0575d01e48",{"version":"ac566ad371d04b0c1a4e9303085f14385dd9cea96515646ca1a6a4bfb79c7968","signature":"22fea8c28752d1a841afd4b34f886b6ddd7701982943de4a92694a371824b818"},{"version":"e598311445ebe4378af1cb00abfb7222659a7851aaa3d9549c64628857ab4838","signature":"d9e590839d9b5259ea85c4b7b8abedd8459bfadad3aa2ab707df5f06d838a879"},{"version":"16bc0fd4adf6f83440a9f0401fc64bd45c73ca0e5e3efa7a3df152e884420ccd","signature":"f4c914bf76148b4feba712d9e6b2b33b52ee537448d9002e48faaadd12d8f1e9"},{"version":"84da45a7b2598f9e62c06fe1dd496de571b9535d0d0603006f3a70fc490acff1","signature":"3cbbd3bc296e9b4b6decad89c1111a82d8d72a91070b1befd8c09ad5b656fa74"},{"version":"68f09543fa1964b7589e02e2ae23600a3fe1095bc779724631c1155d875cd095","signature":"7931acf2186d2590d9ab45126666c3c6978bfbc5d5cf3912c515893f2f3b81db"},{"version":"ad9cb996e3a752abbfa8ebfb0e601bf6eb7f3b3d8c17390c600a73b408238afa","signature":"d521080ce5075b637966ad9caca3ec81b81ae03f4fad43e3f5d312208561093c"},"7c9803e8b478726fc90dac32492eb1904cf2ddf6cacc9393a823a1f56c8de2b6","0783729a44206a501651406aacd7b44313953e75308cbdd8125ec07d871f7c27","fbeb32592d935d0a8394e889bdd60dde93b35c3274a8823e2717bbe490086cc6","d70a15b0471ca6747cf3c14064536bd759e1a0d528f5624cd71ea1a4c058805a","312a2551e6cdcd53d3699f40ede6e682bdb17b1f15c6708f060fae2e29212bbd","2d0c888fee03ecc5d3395659bef30a1fb6a1851af29a28beddba1dbeccce2e3f","8978c1d03df21edfe3332397117aeea5a6f214cfac22967317df8775f107891a","88d2d9a76bbfb7389e462ba02e24049c76561f093ab2d283562616fd7463cd07","a7647386550454047b62da8d4a5d04312208f23f22e6186b3a27ef3f10ebe618","d7eb5237961f5a6d62b25ef2f01f86dd2be6c4ccb049e4c8cc13cc88e4ffbf42","efcc13cba6fb27850812d508498facd63f2ca1d5c9f64cc145e12187c7272ed2","b8de75ee932693f19d2b084d476e51a57420d2fda88471748cb54628b150508d","5b594bcc58ede578b88b2570af727a6ef5813069a52bd596ec5fb39f368c546f","350ccc15287705af6302395c5b3a69fd855c62c4c65732fe47b19418171b190d","6b85b7398836a6e61e5314f6e1f0f4195e0068405758715628c125f65a391d99","2267458e9652d04bf6193bee1bc8480560efc76e1ca19fd6c5d229c31b20f139","1ffb0d838153e3b4c13e4b1d0381747edbf062cf41768ca0df90465dc1f8101d","6769985f8e56b9829e2bd87f6f618f72484a854040b752b3dc9f04b9f6ff6d6d","bb555b20e6849cf51af25885b2b4334dfe647b8a6ba4d9e4faec50b3fb0a7b47","f015f503439495b68ebe0e476109803d4dedbf209fad10d3457fa520b7808cbd","19aeeacd98eefad3aec0538e17d9a999bcd83f15f8a84534646250b00d08aa6f","1a279ac619bc23042fd8dd148b46d884341ada2546107e79bf0239c9b58c16fc","7b3ceccf06d79b8d68decb705be870c29dc244646252b3a4ddd4c0b7067aa571","b6e04ec3ad7799ecd11d8ef3b58b6833ee8277a23d3e5375ba6bf6cfcfccd7f3","ae9927efeaf5d7738047aecd10f716203cb5be6fed8fe480e1776e7984d5379f","ef0cfed3d4cbf4b6f43ef488eb0304182b1cf0c5669b495ac64966b7ec9750c5","558b92696d7cf4f323100fc8cf51ac4cb5aeadf3176dd0fcca84c3fe196f8412","7b97967c9c10ec8c8c9da742620fd2672666066d1cf3341873dea31a7d9c2da0","5e544d0c9724864d088addd0d30944b7f96fd68f418cf49baea16fdf57a01f03","509d6299f11b88942cc795a249694f07704f22fb7e5ade38065f01a521b6cd1e","ed382c79a5e80af613eec92061efefbacf3a93a8658ad43fa095ca8a708f5ef1","9fbae997a4f6038d1eb854794a202ecf0212e63c73f86893221a07d0fc2c480f","d24c7ce11c0c989638bf0a2e26d2fa7635d833fdf3d6a03a008378f59cedb62b","629dee53dc71d8a76d4589830b38c0d5046027943b5145605280cc8a4a7139ec","7bea0ababbdce87cc4feddba725873474d538f7308ff7dc0072573962b4f8f62","99911cccad6d5d4518a3aeafabeb087b7304d963c3de9091d815046a7077081a","e7d4dccd8f14d827a19d760621de0b41d7da2b2c56ebf88d70f3c04f0cf6b465","4f2ede6a3e67a0ec8051c2e8369278456d605e0fc29b1fac219fefc52e094166","7c6c031a9c66394c3b9115218299fe868082551ea93c4ffdeafd9b1098a76e02","c6af2f9fd5f03ec4a7bbc4ac8fdfbc77d448cf9881304629b534b486d3ba0189","c7a80e5651c2a52565b06f9f22b5dfd03bff9c847bd3915068a87a19382bd2e2","b960b43fc768a8bc5add2a82be3b91b7b6c791590930d036f73b7c6021fb1c6d","55f5da2b9b49b97930031d45fcbd9fc04945fdc8c39c239041c58df4ee0ad906","e8f960f1fb844d47aff7b170c1875c9cdc6d8d47a5dcb12ae347f15bf6fe9942","3981f78285b43827abd088c01726f60f0076a0017ab26710112430ae1878d165","5349fe68736c662d6a3db27f5626032cf36f288a5ac984804281dd108848c790","9eda76e153828a1124a40c6b443a14eb325e3d5a48426cbf167e3265b51db23e","f03894701f6f7f7c5ceabf94870aca8ee83282fbd672561d81fa13377a68f294","6e24582c2eb92415166b28a76c0b514bfc13148ed695d842b306b829da057777","a16024369931b4c65e725e1fa6f57780aee43f884454ca0ffd497f1b385b2f93","8788e37705a52759169ebe347139caf47fa9f761abda7bebb1ce9a2219839d1d","58fe954608abf7f88e7733065ce688bb222a1dce593916b7fb108e9b22d87361","8274b8ed8d1eb27e980803fc110d609ab045b4e5208d1c57d066940ab3ccde21","713d0f6227ae3d7fe881028def28d5964310d2fa8d49894db44048d238bfa8da","c6176b54aace1434e00e670525ea9eeeeb55769eabef5df3d700ca8627fc1c06","bd5202376cb78f2490b8615dffc124cb5f1ac933dd268d17f131c30950be74b4","b68c9adb90c095a3e98fe6de5f6898128115dc703829e8a25255459a912ef702","2661c02e644f1180bee6d226e7f2a401d80412f303d48f47e40fe61c2192cc20","71fdb32e5af22f35c431d3b1f3707e783b03cc1d98d99afb0f1f51e6dd821b0e","bcc5c920deefcb4ef2bccfd9d7566cddbd60ba5bfe80053ff6ba9d6e9ea53d6e","9cc06af0a7149e77a0b860652086fbf26c73a9e9c01f56df6aeddb742757a29c","44839f0ead1ae1441855335b74fdbde41919c55e3918a80b01e07163ee2b1531","088d17dc97fde2c8d089b8888b0e23507435e01a52632cc64a00735fd91b11be","b7d4d02389f4b1fe6dba7820e6bdf18b1053b6a9d538a382036a53d38361b0ef","c90e9d0d6eacd5ed89ebdfeb68037bc1f418b473261c1c70f442cfc86ac26652","8b286e0b720a01d1bab077d218fbe5a45fbbfe4587ae996e9250e3da4596165c","92aa042da3e124ffc27b5996c695dd241c6c5ef630b1c578e01e450553d05cd0","b021de85780940ad460ec30fb2aa40b64e73b97c880498c4ed984cab2aedc51f","60ad2d3253025a7e74005ed31798be5772c03f6fdd4ec21f50a11ac7b1aca920","5964e0a8f6838db796a98e2cb08291bd5d2978d76a61a196d34cffc24c64cad9","8e03f9c8c45b7f11cfe456660fae495e63c546c83089039855f0647b59415b09","d16e9d5a87f43757fd4cac17c24efd90050a13bf5c5ffb6d333842d84d293117","46a1ada9a424d8fd0a9c8ab85943397747c1aceae5da544139067fa6865202c7","590b00bf15d914a6a62cefa7e2b1920629f51883dd8055fa10b412214962b8ad","641758ca97a831e6024eebdfc5a5a11a5000b27c4bb8d7714e25488ae4527044","adb82b9920dbbefd3c2ca8af30b3da320c9494838b2c7994b4fd2ad1bd74017d","2435e0b2b85c765e2d7bd5053fed7b02146e2debf7985d6de53f1cb4d909a246","e6f3e4e9f6c16c81231b024c4397a1acf6617d72ff120fe5426569fc024f79ef","e7add77ac243fa9b7d5a64e1a234b6e86ecf144c1c284b0ebc02540d7b253908","c1520f93182e3f0c5a2f3fa0870be98eafc939f63342e7b50e7a36464dc4fe6e","f4f54e9a6c8c13a9553a82f6d706703bcd11f5de016398ba89a2d1e83ece0f76","4730c71b847c99142cd7541146b9c0b535232034353061b9bc73280c2b23ee2a","d0b388ed632bf943cab7c6f245f6a6a77078760900e69eccf72bd8f468a4855f","6bf328ceb72877af700fe7eb98754f907073207e964f696f086878f260c85d30","501bd65a06a24ff7dae72532ed879910e1ceed44eda5bcbb28c73a1825a06fe1","910fdfdc6bde5056e5f5cc848668aa816251aab03b4e538ec656ce7c2e5c9d4d","1a5f5c43ad6d6fadd15704705b19f1b421fb0c133909b155af7b1bdafe92860c","a461cc5ab62a829a65e0663387d8ebad9c15e7d4392ffbf971e8682313ad9384","4bad8c2aba3bc8f6e4561423d3c53c6e534b92b584a68e503a3b011a38f9eced","8a611331345fb5d790268cfa7170481994f22070d315c336390d1897db81db77","634160ceea0957a1519c5c3803da6cae11f9bba6352d631493fe9acd84f16349","3eea4f3a632c7eaa5fbfbea88a2646d7fb4d085611fbd6da43ee9b80e039420a","1d018ec10663264ba121d22bb237fabf71d9147b949d69518bcb5770aa3a2f88","859334213ea02d45aec5b54ff1d54ef18b3a5ac715a52c0ef8a6ae75050b50a2","9cb6270351ef5ea1c6cbcf75097c63937f106f21ce46fe693482f46bc34bfb96","fb1192ef5c5db2eeac7f996bf882bd99062a742eba7d229519f8964d35f19423","46c0c38ca7829481d9f8989636eaecf3c85a48ce9f1467564cd14cc58eecc39d","9e53b9653e46a7d649c6621e8870d8bd29f948cd577699a44d9b5867ea1a86c0","a7070c25054200db28f04abf7e5829970f22870c50f4795abab0bec193c9cbb7","fbc73b8d844b5d4ca9b6f91cd1c3f8fc230dc79430016df3940c3b50d7743208","6f084acd88dd7c9e7a1c801e09597b3de7714898cfe98a6a4772c14ffeac1b0a","2ea4f3b7a09612b2510ba1699e0b7969b7e668345495d4efec4474143364bab8","fffd55ccb0e275d0cfe6aa05d95a42c0fcc6d0f749b30d7419bd5d08b2ca8fb9","79584f80c79a9c50842cf5486802d8e37652ab6b1a2f6241dfd97d7af52286ae","98e3cbe57ce44ac1c1af9dded0a70e070b4b733a7b2ee1ac4139b63b9cdda7e8","c826bfc25c73cec1ffce13428e9aaa435658c285d0cd10dfa09aedb755820861","bfc5ee36f43a425fa5720198bfffefe614bb69243b31812807fb0d0912857cc7","33ad481a4f005ca22db6c3e8e3dd24ac7175d7b24bc0bf167787e7ea0ca8c2c0","88cbfe3a10f78341882df13c4ab22483303f316d10a2efa15635c180bdbf86e2","42146cb979a01be300870e350d7ea90c0afb71604afc9c729675dfa0bca38abc","1be6becd10569954af3c9bcb00e34fbcc90030286cfa9329aff7341042e2ad4f","1be065122adefc5329252a7ee7d13bd480744049e1f57131e585b6c8763081f4","dede6e04951db7014739fd547b0e8e9726cc0dc3bad22957aade6fcfbb58397c","82dd2019057743d2cc0e37e4e48857d3e306ea66523663be4e4cbe458987cb0b","c5516831bc1c567a383eee90c242669fb3fec7b8c879f5adca1f8ca86bf1bc8e","5fd7b3479066d26b96e6c0208104e6286117adffabc0713686db6a254dc88299","5ebe6ee4079998e88e572457af5d610af67b80bb4d375e21ead51e1bd7007b87","e719f43d7e54832f0c0943b988d78eb2838dc1e61c0c504fce6501500579847c","84c1a5494578c5affca53779468eff24fc912615128aaeba0443a7d084da1c81","d57106aed70ae121f2abbeafb903630c64b3d24ad708d331b5e39ee4154cdef2","317589f5460dfdb1386cd7feda7c57b03861c33c40f136da2239657ec9625028","755cb989f97ae212f7d67804513c0404e19d60085d50a2d821c1e7898622afb9","a73e2f83376a0533d2534cf39db9326f7b17e10258343d743dc8e4be9fa7d7e6","0104f554c856d43470d5143b76a858630948864dbb525ba503abf2495ea32d62","d2720cc47e5116280f94ea51b12443bdb6d34f6dbc2cc718eb22bc9fdf6d1c22","1c2088b528dbbfd94b68d0b391e5a753194beb4f816d01bcf45424a48490a3d8","1e9f7113fbfa4e026da90e21a0b8a0d2693ea17b396f840a35f763d00e52acd9","0e3118760a4906a6b2f0c403125a2c27b23811deb32efc2f3b42ac20cd841e85","27955c2eada51f900146f6e08e98e7fc3c78b3c45299fa224d59751a2a67c2cf","523784089865ec42489606ed3b0886ebe30ec8f502f339a9f0eb0ae799785672","eb3f968aec915281401fe9587625aaf032a5ded4d6e76cc79754572d638b711f","2eaa67d9b44fe8af026a6575ff389781a0bbf9b52635ee029ca6cc0817d597aa","243013284ca9c530cddfd1edbc112a97a3a5292a9b8c4e081ba021343001c1d0","12382a5cb0a2b7e0c5918a88592c5b02d9570bd137cef2c2c1a4be05184603d6","b63b1bb2b9961efa84cb580dd9369838250b2d7dc26db0ae2396b75ec4df1b2c",{"version":"0e82563a60d4162ba709a6ef1d429a5712450d76b681edae0664863ee813811e","signature":"a86a81b97ec2209ba49996429870a8df8e3e02e09398abd2fc6bd728eac294f3"},{"version":"d49f512f8c147d1eefab23feac328e5eadcba24dd8352d509076404d5a4abb36","signature":"694b6ea9d3497e3e838a296d83bf9e8f19ccdd5db7b6f5928c7d1baf6b6fd003"},{"version":"e17f07b028b14f80d6c625470844ec2f52f37efcd58f80dffc607fb8653cd4d0","signature":"7c9803e8b478726fc90dac32492eb1904cf2ddf6cacc9393a823a1f56c8de2b6"},{"version":"18bee0fc600249efb5d78a9683c32e7575f15d4384009cb67f6df227f5c5fccc","signature":"3794da5b928d5a205f9b9651f3579ebb8af9b70319ef73a2c2e3465d3dc8f718"},{"version":"bc0be104c40e84b5ae1c6da0cc7c4b8d3a5f1ba14876eef44564e5f28cf0ab90","signature":"14900a52b7633e6ae047a1daea519a0d904daf396941b62592b89fb6dc20b622"},{"version":"355c976694bc275cabc7854c34cc0f49c12577602a82514dfc82ae70ea437f0a","signature":"8695b776a305422353628ac625e37d9ad438b6fcf47d49888327cfcc688a6731"},{"version":"ec678d1db5de708933519ae4c15492171c4710e4c49309823fc174732f69a873","signature":"41f9b4337c66b5b241523f2589b4d8651156770bbe8d172776672f87f9e53d81"},{"version":"cabd0d5b08b9df681c7d96ebb233547f3ff5afff1258fb4fd989c48cfa4b696d","signature":"0b46a5aa62769d95c500231b1c18bf8f75a79bb758ee37b1a212d4608abff3cc"},{"version":"de7c5dea73d5e22520fb1d28facde3c60bf71328cd7ad2d6449b1576ea1b5861","signature":"e92dfe1525bf57c604cae7ba4146b7e39e7e69b8a60fd5248b25704475f241f3"},{"version":"9aa03437de8e8312f9c38664eb81758f4aef3116c81fb0ba24502e079eaf531d","signature":"6abcd0c4ef723adaa273858de49546a5270b1498bec2329a7a7611a15b2778f2"},{"version":"f2d2748d596b3ae5dad7a4984ed3d384d4400e91a89b240290e67e286cd4c8ba","signature":"15e8f021d2fbae31be899e942446114bf164bbbd9342425c3e658d372c07c148"},{"version":"f1bd24334e503e833a2cecf306de16ba4c5cf2fefd6fda9d57c19d838f6cb8ec","signature":"35d0dad48d46ff699954fd32afe947a9191acfd3a0dbf1d9d75f4f8785d41cc3"},{"version":"fb0cd3c33762824fa73c360b342359720629c1f02ccfde652341944a6548a640","signature":"df9d7db1a4b3ccc776d8c2bcf8f3c9ff96d7efcf814078ec33717e5a5f19f8e8"},{"version":"b26501c9514c052f2d1da11cc1bf6a0a2a0d3ffe70c22e69a958a588739e1a12","signature":"c5d3af3f84902e8b04243caff273cbae25fdc5d3e77771b0642dc803865a7525"},{"version":"596e7908279ed76d2188b54002e59164bacec4c27a4cbb4effbb17aafe4808b2","signature":"3ed36632608252a461410f1da8b87ca1b64c627261bb8a07a0ceaa7f3910cf23"},{"version":"b2d2e87d468546ed18751d699f0aaf30c03d7e76af3c0af2b956b608a11f6f8e","signature":"0afe6efcb40b1da9c8a94d85b563d8800c8d84c813d17aee1cc3c2650c5d42e1"},{"version":"58b36cc8aa8df872016ddc8269da9e1d09f894e0260baa6d576e55a6eebdfa4a","signature":"d7e67bbc423e3fe460466cc7e84fabf003d0756d9386d894062e6fb09f53e640"},{"version":"31b8e49f0e99e1470a80b9e273fac5700c56fe8d234059cd1bb2ad21b820b0b9","signature":"85bb21606bafbcba87c9fc4c9b64fcc55e1ed9f625bfdcfecb013a0ccce0835f"},{"version":"91e881ba6c6c9dea00855969f278cf4a0a182eb7a0014643cd702d4b6c2d823e","signature":"f8e4d7dd0140c412232ec41e3d92bd3e52eaa65c040d404313d3119693f4f9d7"},{"version":"093412a58431807d86f292735937204c5733c2b33cff45ca392dc2e1b0d710a1","signature":"36958eeed010fd5dbd61070cb9f1dcf65951f523cf00f9fe4f057e072cffcb0c"},{"version":"25c502fca47c551749ae8050e73c7e6346ea5e32b1fef84f6d6d461e9a872ce6","signature":"f789f70171e3c0b4ce8fee345c5b6fd6cb2e39835db65da25f1c218ce5970c4d"},{"version":"b23a85b0d1f26cab65f63c2947a580d5c7fd740013236fdf427a7ddececbd0c8","signature":"a27d35adf759527b5fb60796cb380ee478217b3df0b1309a39c580ceaf1c234c"},{"version":"082479941b759c52dd1ec4c86e79cdd98221878a3c4bff7866b9d297f093347b","signature":"a1dbb77028ab261d8f1e556f050161f358f3e14410c94cfeaefc6ecb0aef9d8b"},{"version":"a174fc45ad8a74a86d8b380599c9ca30b5e1fa3d60897bef721254054cb4303a","signature":"7bd245389f77c48754e28c66782ac10d36438dda660d7f61efdf2216b4a3ff29"},{"version":"b8f5cdab145c7a6c176eabb6000a32ddda642272cb7af2d8ad7c13a3aa7d3c4b","signature":"a2f2dda048d4e932f639ed87095a550e9d379d029c0cae7145b960eb207f39a8"},{"version":"191794ef7a92c39a39f54d7f772a99edab959daa0f7c4a9c634bf49d3a82c3b6","signature":"844b635be8266872300d1af44e7340ef5da7e463322c29841dcbcdc84dfdccdb"},{"version":"f5f786cca4bef8ca219d68325f055460a690bf9620bfec34a403eb472f5972ff","signature":"e9b9267439796338e2387d4b94f435b8e12d373e521d34fadb222ccac5f5bcf2"},{"version":"1297ca2f2073051a0573e09bc764df1b626f9edcdd6d0d274e98a6f2def53b64","signature":"af5ad9eec924ddc55ecad0720d9dc3d639e2f61b592baff0aa4e643ddd94a163"},{"version":"03aced2ca6aabe4fc429ffe5161c67f23993759d74452481aa498de278678697","signature":"71cac2e96e268005590cc1fba294b72e4234f2486047b91cee8df72925b3b354"},{"version":"cd2ff1cca8b1883af596e17799eae5ecb9cbc0cfb6c2e930ce5b0ca7f94782ae","signature":"f4560774225a851ffc4cefaec9152b2b6ad068439f0f5c5660d1baeb32ac99ae"},{"version":"c41b79c39b4765e0db231434e651dfe5d05b17bae131c26edfe7335c45aa18c9","signature":"41278fe016e94b3dc984cdf3f1054c653c35a3ee74f84ac56985b0922ded9fe1"},{"version":"f3d4186ef98bf6db54c89a8a747c23aae105f584c6fad074835224dbe611d91d","signature":"aec164d922f9386068bed5e2bcd1d04937bbce531572b8e44ea6ad0caaafbf1a"},{"version":"a32f9b69f24718d1407b36661e39149e15498baf60a94f4ce609af153663fa03","signature":"0b638ee62e687af37db25a201e63c62659aa827d140231b0ee8698e9acf45a42"},{"version":"2c3250facab3d16b0ff34a446a92711997d79b85e5a52bbdeee4e9f9dfd371ba","signature":"a1811359c0505d8b97fb0e167064b8053872654d4a2722f6f374a2b94d0f499b"},{"version":"4a79e067c7b8d7f73a3fcd55f8a4874a1736ecdf891a6b0850d452044b82bcc6","signature":"88c89e1b4d8a67b345491f9dd93672ca53d8e18399dcb9387f9dd5bc7a3a3f66"},{"version":"912001ab07f6c7fd56143af2e8145086af15af0cdcc877a88ff3c3b41efe32a1","signature":"582cbd71150c6195bb9474f893aa177a17964a77d6fb3e56e872a92011506f2c"},{"version":"4efdc2ea4a22c2ec266cbd13c42dc0bb8965bdc2c7d6a5202fca48013e42cd0c","signature":"441a7dd1f6a3e908d08de6d57c14679d199699ae59ec4b2c6f6909ee4e7a01dd"},{"version":"3b936196adcb10d5b656784d239154287f830b0b2138b8a446f0310963c84e35","signature":"5b6af1305a4c918d33730d4c9043d4075b36f9ca51b6fdf5ec49c4874e9d75ce"},{"version":"49c7a6edf644309ceff389e9b160fe69edb0983b17c7d83b219a14e96ee9e682","signature":"c865cfca79caae709d39894c48b1c5f65fa053a265aaf308aba27523471eb5f3"},{"version":"590768eb8708affb35a48a1ef171db13a6e831243b82c1ace63964eda89d6dd2","signature":"dccc396f0aa525182575a83fcf3931b3634df6d1893ae9783c979b22c260e624"},{"version":"f0e9ac0da8951f8de0776b36ec01c9a0c1c5fd1374e515428d36af30f028bb1f","signature":"35901e0b27d889f7bf94a96ffdd92bc18f28eeaa744bb3574e69755d181c9014"},{"version":"538820bb8777699407c53f5d725d69241df0ccfd9124e300de7d77ab9e053ea2","signature":"2874116ce916010bd67500e5477a62b3ea9a54b2aba2cfa241fdc3bee623f4b6"},{"version":"f8d17a7727dbdd8120db9d0f333b7cbe854a7412912c17e29c67e8b2f741fc37","signature":"5ef0a5ecdff873c72fcea4f4af9617409525dc108e52be28b39374cf81a0c3f3"},{"version":"70082ebcdffb51a4f232d04e7a72fa796d6f058e0a5ffaa81d51b2bdaa4dcacd","signature":"56544ec521b04c8619ecbb1fc134cd36e27f3fc52cbac2c6d0d66caa5e2bcf1c"},{"version":"f683588eb6f67d093e22010f727767dc12ccf947c4fcd56cfbf042e8b396dfc8","signature":"c89e2d183a3683530fc7c5fd94368e05bf62438940c1da5e3b73c71b00b1cbce"},{"version":"19a1a3e1f5321005e623b2ae3665f2968a7284f33f485e611d11f8c127fd6b46","signature":"a917c20caa02cf7636797e7872d5d5fd0355770e67808dc8c0525154fe5df041"},{"version":"c694cc36fdfeda4e7ad3ec79875a395d94c0e983469f6f8b1f747ef24674f4e0","signature":"708167176f8be143ef9e9adb420b236bd96b640ac8718a5d35c03248db221029"},{"version":"8a6cb0689c78c6d06cda1a81c47728cec57dfe5d7382da38e7fa851a9b356044","signature":"65ea13fa514a27566539ac313802b79c40227eb25f63ab4d57694348b9558e03"},{"version":"4a0cfb0d136c13a6f5df928908838752f1f49ec89974acc27d69c3e93cbd5e50","signature":"e89d36d87b8f081e39accdb95e7d8b1518f56ca3250a52ff198f7490690232b6"},{"version":"0dd2f446c42b103ca67a10711b764bf05aa118becbef77a389421db5cac9e08d","signature":"9cdea431d09d62324518d19f66003ffd697c174bda4c1be3c2053e122e55a703"},{"version":"b4241c102ca153f7e0a1c260fbab992f6ee3601a15b24d0b399589d32754f6de","signature":"57e41725dab0b209a1437531e0645874491def852f959f0f72943368d4fdbac6"},{"version":"b50e7c01f37ff011d2a15fa7fe1a5ac616486405a74c8aad70064d40b173261e","signature":"5230e6e19ab1970510ff810fec7754d2dcdb6d18d59f14350e0aa87f5bc2aa99"},{"version":"de22d6858ea35b6593d46294ce1f53f2166fc68e604e4728cb355f0770a22e32","signature":"7150e554e4b520f46489dbeedc5d1aae34a1a4523a048ddcb1aa397aedfcf310"},{"version":"357c919e7e0d59f06d3338f2008fa6fc4a871699bda14dbef088ad11f506216b","signature":"067d49f3234f239c882022c01e889d6e792bf7085e6b0c63bbf0251502eb356d"},{"version":"b95534a12f624aeb43b548389a8e319dd0c45af5b6a0d5ca0deb17dd537d827c","signature":"c2b78ad093c430807ae5afa6c56a12577970453c0d23a5a39249d4c9f4f04c9a"},{"version":"b08745d70e8e965de312ec9d90f1677051e121beb22b0f51c98d454096d25b8b","signature":"63ccf0a61956c2bac64556440cb2a807a75e4e5f79e08e5e6943f5f8c056203d"},{"version":"32ab295f54df66db7ecc66e662cdb0b5263e348837df784a3c692d1778f5ae94","signature":"e43d3d40d7b1d75f28d4cd790bb7f434a54e925a8f3b460302caf96078f40456"},{"version":"65b1bbc3cd765e20dfc43370df2138fc6239ee7e9946ff64d99f6f716f3f0e6c","signature":"0f7b0d7b1a598b2c772bdf519d2f312a2fafed67ba688c8b8ae5673ea2fb72bd"},{"version":"a64ee2d56629b4f524e3d7c4df678bcbbf3289b1794b5669da449d7887a0509a","signature":"552cddbd3ded0d5e1070bd5e299c0a94310314258ad4a82ebf6a8738c6e8830e"},{"version":"13c348566c2499c8fd371b99b51f9d894a783305cd6b2c911984d095afd1a03a","signature":"5896d62b2d8d97b5fe55bb684612c15bde24042542e6675a9d36e28dbcac42a9"},{"version":"87a1bb96366c16e3e73879aac6f77e0c1ea03c92c651fe8192083122df4c606b","signature":"22c5ca39727cd0c6154e866f6dab971efb6e423b8e633f945c76b200445abf31"},{"version":"c47c9493a250debc18a3ad2ce82771e5199caf93a81b6b8e1cb2557ec3329932","signature":"bc51cd969400d3e7313f1b3c0c7b59c6a27e45397e60b08c18d0009c74c98ef7"},{"version":"381f599c31790435b7490cfc2d3b9b360ecb189f725cc30ee5a9815855ddd938","signature":"ba34fe7f22717251e7e6a7ee64f4e199b62d0a011f3e3a419ed2d02fd0406fe5"},{"version":"310fc2c26d833592f12e4914d29f6691d77e51e879cf5885b888793b3035a171","signature":"20f215bd22d807bbe50511a48dca1dbc9222afc2a21ed2c67cab2c56dc289c15"},{"version":"e742f7b2db81d1777ee37b3cb323f56f0757b97cdc5468225cacbc5a3338db20","signature":"e7a94ec5a906276b1aed55461228bae61e881e8c9c36d0a4411422465caa2c07"},{"version":"4f56fa0cd0084b727e4d68f8c6e18149993f2402e45d3330fac8db28893938eb","signature":"94d49d26910b2894d4b137b234b0b8017c849f367a49d8b1c06baaca35a61d71"},{"version":"80ee7c64cef79f70253437daa5a12711564369b589e052e27f129fba44de36f5","signature":"a87ca1eabd3b90b2ed8a1d76c7151cfb9c153e21f8e0672126c4dad1bcfb9b6e"},{"version":"23f99ef0a992c14948e5fa1abbbbbfa7cbb854b3e2b502363f3f0ec3ff46d826","signature":"4d5af068c5785ccc151eec74cefeb2b099177f746e24f5c99256535f9eca9f31"},{"version":"4d5c432e7fa841d2d19458f1ad68a44293ac918eccdfe896962c1ae5b30f49f7","signature":"abee7fe5a75e4698c69ab8cbb31199eb92137095f3f65dee4317bfbd7d40f61c"},{"version":"cd24fbd1542427d313b99bba65e45a6b614a55c0a88c236052d9f9e39d1ed445","signature":"302280c749ac14a35a70667829db1fb7118cc298f4a9c98dbde1a69899158aeb"},{"version":"d878fbf876c13bc42e0f20854ac9e980b6ae0efaba633427293f998113b30437","signature":"b9d97c0f18410f8d58e63d176d80f70368e2f02f8de30cff4f0bcebea436cb8b"},{"version":"54292f36779add1f8a8b3d65ab07c1aa4da0ba080bfb22e3af12bc784e14a4f3","signature":"2db9feb799733261c6fcae1f15c412debe2712c9a73c8566576f1c5c42584e45"},{"version":"b9181bea4a29329594d5c5a53bec78507fcc67ad0c5afa2a580dc51d6f19a4f7","signature":"4f7d54c603949113f45505330caae6f41e8dbb59841d4ae20b42307dc4579835"},"09df3b4f1c937f02e7fee2836d4c4d7a63e66db70fd4d4e97126f4542cc21d9d","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"4d719cfab49ae4045d15cb6bed0f38ad3d7d6eb7f277d2603502a0f862ca3182","affectsGlobalScope":true},"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c",{"version":"5a856afb15f9dc9983faa391dde989826995a33983c1cccb173e9606688e9709","affectsGlobalScope":true},"546ab07e19116d935ad982e76a223275b53bff7771dab94f433b7ab04652936e","7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba",{"version":"aefb5a4a209f756b580eb53ea771cca8aad411603926f307a5e5b8ec6b16dcf6","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","daece0d85f8783595463f509f7d82b03b2c210cc064cc793096b5f9c73a6db43","b86e1a45b29437f3a99bad4147cb9fe2357617e8008c0484568e5bb5138d6e13","b5b719a47968cd61a6f83f437236bb6fe22a39223b6620da81ef89f5d7a78fb7","42c431e7965b641106b5e25ab3283aa4865ca7bb9909610a2abfa6226e4348be","0b7e732af0a9599be28c091d6bd1cb22c856ec0d415d4749c087c3881ca07a56","b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"bd27e23daf177808fc4b00c86f7d67d64dc42bbc3c855ea41bfed7a529150a1d","affectsGlobalScope":true},"3b4c85eea12187de9929a76792b98406e8778ce575caca8c574f06da82622c54","f788131a39c81e0c9b9e463645dd7132b5bc1beb609b0e31e5c1ceaea378b4df","0c236069ce7bded4f6774946e928e4b3601894d294054af47a553f7abcafe2c1","21894466693f64957b9bd4c80fa3ec7fdfd4efa9d1861e070aca23f10220c9b2","396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","21773f5ac69ddf5a05636ba1f50b5239f4f2d27e4420db147fc2f76a5ae598ac",{"version":"6ec93c745c5e3e25e278fa35451bf18ef857f733de7e57c15e7920ac463baa2a","affectsGlobalScope":true},"a5fe4cc622c3bf8e09ababde5f4096ceac53163eefcd95e9cd53f062ff9bb67a","30c2ec6abf6aaa60eb4f32fb1235531506b7961c6d1bdc7430711aec8fd85295","0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7",{"version":"603df4e91a0c2fd815c6619927468373fb00b6c13066334982ee684f5c7d40b2","affectsGlobalScope":true},{"version":"d48009cbe8a30a504031cc82e1286f78fed33b7a42abf7602c23b5547b382563","affectsGlobalScope":true},"7aaeb5e62f90e1b2be0fc4844df78cdb1be15c22b427bc6c39d57308785b8f10","3ba30205a029ebc0c91d7b1ab4da73f6277d730ca1fc6692d5a9144c6772c76b","d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","458b216959c231df388a5de9dcbcafd4b4ca563bc3784d706d0455467d7d4942","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","f8c87b19eae111f8720b0345ab301af8d81add39621b63614dfc2d15fd6f140a","831c22d257717bf2cbb03afe9c4bcffc5ccb8a2074344d4238bf16d3a857bb12",{"version":"24ba151e213906027e2b1f5223d33575a3612b0234a0e2b56119520bbe0e594b","affectsGlobalScope":true},{"version":"cbf046714f3a3ba2544957e1973ac94aa819fa8aa668846fa8de47eb1c41b0b2","affectsGlobalScope":true},"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","eae74e3d50820f37c72c0679fed959cd1e63c98f6a146a55b8c4361582fa6a52","7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df",{"version":"aed89e3c18f4c659ee8153a76560dffda23e2d801e1e60d7a67abd84bc555f8d","affectsGlobalScope":true},{"version":"527e6e7c1e60184879fe97517f0d51dbfab72c4625cef50179f27f46d7fd69a1","affectsGlobalScope":true},"e393915d3dc385e69c0e2390739c87b2d296a610662eb0b1cb85224e55992250","2f940651c2f30e6b29f8743fae3f40b7b1c03615184f837132b56ea75edad08b","5749c327c3f789f658072f8340786966c8b05ea124a56c1d8d60e04649495a4d",{"version":"c9d62b2a51b2ff166314d8be84f6881a7fcbccd37612442cf1c70d27d5352f50","affectsGlobalScope":true},"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"652ee9c5103e89102d87bc20d167a02a0e3e5e53665674466c8cfea8a9e418c7"],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"emitDeclarationOnly":false,"esModuleInterop":false,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":1,"noEmitOnError":true,"noFallthroughCasesInSwitch":true,"noImplicitAny":false,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"strictPropertyInitialization":false,"target":99},"fileIdsList":[[43,342],[43,49,50,51,52,53,54,55,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,313,342],[43,313,342],[43,49,50,222,342],[43,49,191,222,342],[43,49,222,342],[43,190,221,342],[43,221,342],[43,190,193,221,342],[43,49,221,305,342],[43,49,221,342],[43,193,221,342],[43,49,191,342],[43,49,50,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,342],[43,49,190,221,342],[43,190,191,221,342],[43,49,50,191,222,342],[43,49,190,191,221,342],[43,191,193,221,258,260,261,342],[43,49,50,259,262,342],[43,262,342],[48,342],[264,342],[299,342],[300,305,333,342],[301,312,313,320,330,341,342],[301,302,312,320,342],[303,342],[304,305,313,321,342],[305,330,338,342],[306,308,312,320,342],[307,342],[308,309,342],[312,342],[310,312,342],[312,313,314,330,341,342],[312,313,314,327,330,333,342],[297,342,346],[342],[308,312,315,320,330,341,342],[312,313,315,316,320,330,338,341,342],[315,317,330,338,341,342],[264,265,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348],[312,318,342],[319,341,342,346],[308,312,320,330,342],[321,342],[322,342],[299,323,342],[324,340,342,346],[325,342],[326,342],[312,327,328,342],[327,329,342,344],[300,312,330,331,332,333,342],[300,330,332,342],[330,331,342],[333,342],[334,342],[299,330,342],[312,336,337,342],[336,337,342],[305,320,330,338,342],[339,342],[320,340,342],[300,315,326,341,342],[305,342],[330,342,343],[319,342,344],[342,345],[300,305,312,314,323,330,341,342,344,346],[330,342,347],[97,342],[95,342],[59,96,342],[69,70,342],[71,74,342],[74,342],[71,342],[69,70,71,72,342],[59,73,342],[66,342],[64,342],[59,65,342],[59,342],[78,342],[76,342],[59,77,342],[59,60,61,62,63,66,67,68,74,75,78,81,82,83,84,85,86,87,88,89,94,97,100,107,108,109,110,111,114,115,116,117,118,342],[90,91,92,342],[94,342],[59,93,342],[79,342],[81,342],[59,80,342],[112,114,342],[113,342],[59,113,342],[98,99,342],[59,98,342],[99,342],[101,102,103,104,105,342],[107,342],[103,342],[102,107,342],[59,106,342],[126,127,342],[133,342],[129,134,342],[128,130,342],[128,134,342],[132,342],[130,131,133,142,342],[129,130,131,132,133,134,342],[136,140,342],[128,137,342],[128,140,342],[140,342],[137,138,139,142,342],[136,137,138,139,140,342],[142,143,342],[145,342],[146,342],[121,123,125,135,141,144,342],[144,342],[142,342],[124,342],[142,143,144,146,342],[120,342],[122,342],[183,184,342],[135,141,185,342],[185,342],[183,184,185,342],[153,342],[148,149,150,151,152,342],[148,149,150,151,152,153,342],[58,119,147,154,160,165,167,173,177,182,186,188,342],[161,162,163,164,342],[162,163,342],[161,164,342],[162,342],[164,342],[155,156,157,158,159,342],[159,342],[155,156,157,158,342],[174,175,176,342],[174,175,342],[176,342],[178,179,180,181,342],[178,179,180,342],[181,342],[57,342],[168,169,170,171,172,342],[168,171,342],[169,170,172,342],[166,342],[187,342],[56,189,342],[46,342],[44,45,301,312,313,330,342],[47,342],[274,278,341,342],[274,330,341,342],[269,342],[271,274,338,341,342],[320,338,342],[342,349],[269,342,349],[271,274,320,341,342],[266,267,270,273,300,312,330,341,342],[266,272,342],[270,274,300,333,341,342,349],[300,342,349],[290,300,342,349],[268,269,342,349],[274,342],[268,269,270,271,272,273,274,275,276,278,279,280,281,282,283,284,285,286,287,288,289,291,292,293,294,295,296,342],[274,281,282,342],[272,274,282,283,342],[273,342],[266,269,274,342],[274,278,282,283,342],[278,342],[272,274,277,341,342],[266,271,272,274,278,281,342],[300,330,342],[269,274,290,300,342,346,349],[46,49,51,52,53,54,55,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220],[49,222],[46,221],[221],[49,221],[49],[49,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257],[46,49,221],[191,193,221,258,260,261],[49,262],[262]],"referencedMap":[[193,1],[221,2],[259,3],[191,1],[252,4],[240,5],[254,6],[195,7],[230,6],[54,8],[251,6],[204,9],[216,7],[250,5],[203,9],[241,6],[235,6],[253,6],[209,8],[237,6],[210,8],[53,8],[233,5],[202,8],[228,6],[217,10],[227,6],[206,7],[205,9],[246,6],[249,6],[214,7],[213,8],[243,5],[215,9],[245,6],[244,5],[208,8],[234,6],[261,1],[207,8],[198,8],[232,4],[200,8],[224,6],[238,6],[211,8],[236,6],[212,8],[242,6],[55,8],[231,6],[51,11],[199,8],[225,5],[201,8],[223,5],[52,8],[229,6],[194,12],[226,5],[197,8],[222,13],[258,14],[196,15],[192,16],[248,6],[247,17],[218,18],[255,5],[239,6],[220,11],[257,6],[256,6],[219,11],[262,19],[260,20],[263,21],[49,22],[264,23],[265,23],[299,24],[300,25],[301,26],[302,27],[303,28],[304,29],[305,30],[306,31],[307,32],[308,33],[309,33],[311,34],[310,35],[312,34],[313,36],[314,37],[298,38],[348,39],[315,40],[316,41],[317,42],[349,43],[318,44],[319,45],[320,46],[321,47],[322,48],[323,49],[324,50],[325,51],[326,52],[327,53],[328,53],[329,54],[330,55],[332,56],[331,57],[333,58],[334,59],[335,60],[336,61],[337,62],[338,63],[339,64],[340,65],[341,66],[342,67],[343,68],[344,69],[345,70],[346,71],[347,72],[95,73],[96,74],[97,75],[71,76],[70,77],[72,78],[69,79],[73,80],[74,81],[64,82],[65,83],[66,84],[67,85],[86,85],[68,85],[59,39],[116,85],[63,85],[118,85],[115,85],[88,85],[75,85],[85,85],[76,86],[77,87],[78,88],[119,89],[109,85],[93,90],[92,91],[90,91],[91,91],[94,92],[87,85],[80,93],[79,94],[81,95],[113,96],[112,97],[114,98],[110,85],[89,85],[62,85],[82,85],[60,85],[111,85],[61,85],[83,85],[117,85],[100,99],[99,100],[98,101],[106,102],[104,103],[101,103],[105,103],[102,104],[103,105],[107,106],[84,85],[108,85],[127,39],[126,39],[128,107],[132,108],[130,109],[129,110],[131,111],[133,112],[134,113],[135,114],[137,115],[136,116],[138,117],[139,118],[140,119],[141,120],[144,121],[146,122],[145,123],[142,124],[143,125],[124,126],[125,127],[147,128],[121,129],[120,126],[123,130],[122,126],[185,131],[183,132],[184,133],[186,134],[150,135],[152,135],[153,136],[151,135],[149,135],[148,135],[154,137],[189,138],[165,139],[164,140],[162,141],[161,142],[163,143],[160,144],[157,145],[159,146],[158,145],[156,145],[155,145],[177,147],[176,148],[174,149],[175,149],[182,150],[181,151],[178,152],[179,152],[180,152],[58,153],[57,39],[173,154],[172,155],[169,155],[171,156],[170,155],[168,39],[167,157],[166,39],[188,158],[187,39],[56,39],[190,159],[44,39],[45,160],[46,161],[48,162],[47,160],[43,39],[8,39],[9,39],[11,39],[10,39],[2,39],[12,39],[13,39],[14,39],[15,39],[16,39],[17,39],[18,39],[19,39],[3,39],[4,39],[23,39],[20,39],[21,39],[22,39],[24,39],[25,39],[26,39],[5,39],[27,39],[28,39],[29,39],[30,39],[6,39],[31,39],[32,39],[33,39],[34,39],[7,39],[35,39],[40,39],[41,39],[36,39],[37,39],[38,39],[39,39],[1,39],[42,39],[281,163],[288,164],[280,163],[295,165],[272,166],[271,167],[294,168],[289,169],[292,170],[274,171],[273,172],[269,173],[268,174],[291,175],[270,176],[275,177],[276,39],[279,177],[266,39],[297,178],[296,177],[283,179],[284,180],[286,181],[282,182],[285,183],[290,168],[277,184],[278,185],[287,186],[267,187],[293,188],[50,1]],"exportedModulesMap":[[221,189],[252,190],[240,190],[254,190],[195,191],[230,190],[54,191],[251,190],[204,191],[216,191],[250,190],[203,191],[241,190],[235,190],[253,190],[209,192],[237,190],[210,192],[53,191],[233,190],[202,192],[228,190],[217,193],[227,190],[206,191],[205,191],[246,190],[249,190],[214,191],[213,191],[243,190],[215,191],[245,190],[244,190],[208,192],[234,190],[207,192],[198,191],[232,190],[200,191],[224,190],[238,190],[211,192],[236,190],[212,191],[242,190],[55,191],[231,190],[51,193],[199,191],[225,190],[201,191],[223,190],[52,191],[229,190],[194,191],[226,190],[197,191],[222,194],[258,195],[196,196],[192,191],[248,190],[247,190],[218,196],[255,190],[239,190],[220,191],[257,190],[256,190],[219,191],[262,197],[260,198],[263,199],[49,22],[264,23],[265,23],[299,24],[300,25],[301,26],[302,27],[303,28],[304,29],[305,30],[306,31],[307,32],[308,33],[309,33],[311,34],[310,35],[312,34],[313,36],[314,37],[298,38],[348,39],[315,40],[316,41],[317,42],[349,43],[318,44],[319,45],[320,46],[321,47],[322,48],[323,49],[324,50],[325,51],[326,52],[327,53],[328,53],[329,54],[330,55],[332,56],[331,57],[333,58],[334,59],[335,60],[336,61],[337,62],[338,63],[339,64],[340,65],[341,66],[342,67],[343,68],[344,69],[345,70],[346,71],[347,72],[95,73],[96,74],[97,75],[71,76],[70,77],[72,78],[69,79],[73,80],[74,81],[64,82],[65,83],[66,84],[67,85],[86,85],[68,85],[59,39],[116,85],[63,85],[118,85],[115,85],[88,85],[75,85],[85,85],[76,86],[77,87],[78,88],[119,89],[109,85],[93,90],[92,91],[90,91],[91,91],[94,92],[87,85],[80,93],[79,94],[81,95],[113,96],[112,97],[114,98],[110,85],[89,85],[62,85],[82,85],[60,85],[111,85],[61,85],[83,85],[117,85],[100,99],[99,100],[98,101],[106,102],[104,103],[101,103],[105,103],[102,104],[103,105],[107,106],[84,85],[108,85],[127,39],[126,39],[128,107],[132,108],[130,109],[129,110],[131,111],[133,112],[134,113],[135,114],[137,115],[136,116],[138,117],[139,118],[140,119],[141,120],[144,121],[146,122],[145,123],[142,124],[143,125],[124,126],[125,127],[147,128],[121,129],[120,126],[123,130],[122,126],[185,131],[183,132],[184,133],[186,134],[150,135],[152,135],[153,136],[151,135],[149,135],[148,135],[154,137],[189,138],[165,139],[164,140],[162,141],[161,142],[163,143],[160,144],[157,145],[159,146],[158,145],[156,145],[155,145],[177,147],[176,148],[174,149],[175,149],[182,150],[181,151],[178,152],[179,152],[180,152],[58,153],[57,39],[173,154],[172,155],[169,155],[171,156],[170,155],[168,39],[167,157],[166,39],[188,158],[187,39],[56,39],[190,159],[44,39],[45,160],[46,161],[48,162],[47,160],[43,39],[8,39],[9,39],[11,39],[10,39],[2,39],[12,39],[13,39],[14,39],[15,39],[16,39],[17,39],[18,39],[19,39],[3,39],[4,39],[23,39],[20,39],[21,39],[22,39],[24,39],[25,39],[26,39],[5,39],[27,39],[28,39],[29,39],[30,39],[6,39],[31,39],[32,39],[33,39],[34,39],[7,39],[35,39],[40,39],[41,39],[36,39],[37,39],[38,39],[39,39],[1,39],[42,39],[281,163],[288,164],[280,163],[295,165],[272,166],[271,167],[294,168],[289,169],[292,170],[274,171],[273,172],[269,173],[268,174],[291,175],[270,176],[275,177],[276,39],[279,177],[266,39],[297,178],[296,177],[283,179],[284,180],[286,181],[282,182],[285,183],[290,168],[277,184],[278,185],[287,186],[267,187],[293,188]],"semanticDiagnosticsPerFile":[193,221,259,191,252,240,254,195,230,54,251,204,216,250,203,241,235,253,209,237,210,53,233,202,228,217,227,206,205,246,249,214,213,243,215,245,244,208,234,261,207,198,232,200,224,238,211,236,212,242,55,231,51,199,225,201,223,52,229,194,226,197,222,258,196,192,248,247,218,255,239,220,257,256,219,262,260,263,49,264,265,299,300,301,302,303,304,305,306,307,308,309,311,310,312,313,314,298,348,315,316,317,349,318,319,320,321,322,323,324,325,326,327,328,329,330,332,331,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,95,96,97,71,70,72,69,73,74,64,65,66,67,86,68,59,116,63,118,115,88,75,85,76,77,78,119,109,93,92,90,91,94,87,80,79,81,113,112,114,110,89,62,82,60,111,61,83,117,100,99,98,106,104,101,105,102,103,107,84,108,127,126,128,132,130,129,131,133,134,135,137,136,138,139,140,141,144,146,145,142,143,124,125,147,121,120,123,122,185,183,184,186,150,152,153,151,149,148,154,189,165,164,162,161,163,160,157,159,158,156,155,177,176,174,175,182,181,178,179,180,58,57,173,172,169,171,170,168,167,166,188,187,56,190,44,45,46,48,47,43,8,9,11,10,2,12,13,14,15,16,17,18,19,3,4,23,20,21,22,24,25,26,5,27,28,29,30,6,31,32,33,34,7,35,40,41,36,37,38,39,1,42,281,288,280,295,272,271,294,289,292,274,273,269,268,291,270,275,276,279,266,297,296,283,284,286,282,285,290,277,278,287,267,293,50],"latestChangedDtsFile":"./lib/index.d.ts"},"version":"4.8.3"}
|
|
1
|
+
{"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/tslib/tslib.d.ts","../node_modules/playwright-core/types/protocol.d.ts","../node_modules/playwright-core/types/structs.d.ts","../node_modules/playwright-core/types/types.d.ts","../node_modules/playwright/types/test.d.ts","../node_modules/playwright/test.d.ts","../node_modules/@playwright/test/index.d.ts","../umbraco.config.ts","../lib/helpers/ReportHelper.ts","../lib/helpers/TelemetryDataApiHelper.ts","../lib/helpers/LanguageApiHelper.ts","../lib/helpers/DictionaryApiHelper.ts","../lib/helpers/RelationTypeApiHelper.ts","../node_modules/@umbraco/json-models-builders/dist/lib/helpers/AliasHelper.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/packages/packageBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/packages/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/dataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/sliderDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/textAreaDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/numericDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/datePickerDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/blockListBuilder/blockListBlockBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/blockListBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/blockListDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/checkboxListDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/contentPickerDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/blockGridBuiler/blockGridSpecifiedAllowanceBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/blockGridBuiler/blockGridBlockBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/blockGridBuiler/blockGridAreaBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/blockGridBuiler/blockGridBlockGroupBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/blockGridBuiler/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/blockGridDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/dropdownDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/imageCropperBuilder/imageCropperCropBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/imageCropperBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/imageCropperDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/mediaPickerBuilder/mediaPickerCropBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/mediaPickerBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/mediaPickerDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/radioboxDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/textStringDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/trueFalseDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/emailAddressDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/codeEditorDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/markdownEditorDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/decimalDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/multipleTextStringDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/listViewBuilder/listViewLayoutBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/listViewBuilder/listViewPropertyBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/listViewBuilder/listViewBulkActionPermissionsBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/listViewBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/listViewDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/approvedColorBuilder/approvedColorItemBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/approvedColorBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/approvedColorDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/tinyMCEBuilder/tinyMCEToolbarBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/tinyMCEBuilder/tinyMCEDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/tinyMCEBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/tiptapBuilder/tiptapExtensionBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/tiptapBuilder/tiptapToolbarGroupBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/tiptapBuilder/tiptapToolbarRowBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/tiptapBuilder/tiptapBlockBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/tiptapBuilder/tiptapStatusbarBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/tiptapBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/tiptapDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/uploadFieldDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/labelDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/multiUrlPickerDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/tagsDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/multiNodeTreePickerBuilder/startNodeQueryStepsBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/multiNodeTreePickerBuilder/multiNodeTreePickerStartNodeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/multiNodeTreePickerDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/dateTimeWithTimeZonePickerDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/dateOnlyPickerDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/timeOnlyPickerDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/dateTimePickerDataTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/dataTypes/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/mediaPickerValueBuilder/mediaPickerValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/mediaPickerValueBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/urlPickerValueBuilder/urlPickerValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/urlPickerValueBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/imageCropperValueBuilder/imageCropperValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/imageCropperValueBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/baseBlockValueBuilder/baseExposeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/baseBlockValueBuilder/baseContentDataValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/baseBlockValueBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockGridValueBuilder/blockGridContentDataValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockGridValueBuilder/blockGridContentDataBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockGridValueBuilder/blockGridExposeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockGridValueBuilder/blockGridAreaBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockGridValueBuilder/blockGridLayoutBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockGridValueBuilder/blockGridValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockGridValueBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockListValueBuilder/blockListContentDataValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockListValueBuilder/blockListContentDataBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockListValueBuilder/blockListExposeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockListValueBuilder/blockListLayoutBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockListValueBuilder/blockListValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/blockListValueBuilder/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/documentValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/documentVariantBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/documentBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/documentDomainBuilder/documentDomainValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/documentDomainBuilder/documentDomainBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/document/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/documentTypes/documentTypePropertyBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/documentTypes/documentTypeContainerBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/documentTypes/documentTypeAllowedDocumentTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/documentTypes/documentTypeCompositionBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/documentTypes/documentTypeAllowedTemplateBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/documentTypes/documentTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/documentTypes/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/mediaTypes/mediaTypePropertyBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/mediaTypes/mediaTypeContainerBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/mediaTypes/mediaTypeAllowedMediaTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/mediaTypes/mediaTypeCompositionBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/mediaTypes/mediaTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/mediaTypes/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/media/mediaValueDataBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/media/mediaValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/media/mediaVariantBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/media/mediaBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/media/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/users/userBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/users/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/userGroups/userGroupsPermissionsBaseBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/userGroups/userGroupDocumentPermissionBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/userGroups/userGroupPropertyValuePermissionBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/userGroups/userGroupPermissionBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/userGroups/userGroupBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/userGroups/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/member/memberValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/member/memberVariantBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/member/memberBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/member/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/memberTypes/memberTypeCompositionBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/memberTypes/memberTypeContainerBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/memberTypes/memberTypePropertyBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/memberTypes/memberTypeBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/memberTypes/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/documentBlueprints/documentBlueprintsValueBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/documentBlueprints/documentBlueprintsVariantBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/documentBlueprints/documentBlueprintsBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/documentBlueprints/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/webhook/webhookBuilder.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/webhook/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/builders/index.d.ts","../node_modules/@umbraco/json-models-builders/dist/lib/index.d.ts","../lib/helpers/ConstantHelper.ts","../lib/helpers/UserGroupApiHelper.ts","../lib/helpers/AliasHelper.ts","../lib/helpers/TemplateApiHelper.ts","../lib/helpers/DataTypeApiHelper.ts","../lib/helpers/UserApiHelper.ts","../lib/helpers/TemporaryFileApiHelper.ts","../lib/helpers/PackageApiHelper.ts","../lib/helpers/ScriptApiHelper.ts","../lib/helpers/PartialViewApiHelper.ts","../lib/helpers/StylesheetApiHelper.ts","../lib/helpers/LogViewerApiHelper.ts","../lib/helpers/DocumentTypeApiHelper.ts","../lib/helpers/DocumentApiHelper.ts","../lib/helpers/MediaTypeApiHelper.ts","../lib/helpers/MediaApiHelper.ts","../lib/helpers/ObjectTypesApiHelper.ts","../lib/helpers/ModelsBuilderApiHelper.ts","../lib/helpers/HealthCheckApiHelper.ts","../lib/helpers/IndexerApiHelper.ts","../lib/helpers/PublishedCacheApiHelper.ts","../lib/helpers/RedirectManagementApiHelper.ts","../lib/helpers/MemberGroupApiHelper.ts","../lib/helpers/MemberApiHelper.ts","../lib/helpers/MemberTypeApiHelper.ts","../lib/helpers/DocumentBlueprintApiHelper.ts","../lib/helpers/LoginApiHelper.ts","../lib/helpers/WebhookApiHelper.ts","../lib/helpers/differentAppSettingsHelpers/MediaDeliveryApiHelper.ts","../lib/helpers/differentAppSettingsHelpers/ContentDeliveryApiHelper.ts","../lib/helpers/ApiHelpers.ts","../lib/helpers/UiBaseLocators.ts","../lib/helpers/StylesheetUiHelper.ts","../lib/helpers/PartialViewUiHelper.ts","../lib/helpers/ScriptUiHelper.ts","../lib/helpers/TemplateUiHelper.ts","../lib/helpers/LoginUiHelper.ts","../lib/helpers/LogViewerUiHelper.ts","../lib/helpers/TelemetryDataUiHelper.ts","../lib/helpers/DataTypeUiHelper.ts","../lib/helpers/RelationTypeUiHelper.ts","../lib/helpers/PackageUiHelper.ts","../lib/helpers/LanguageUiHelper.ts","../lib/helpers/ModelsBuilderUiHelper.ts","../lib/helpers/ExamineManagementUiHelper.ts","../lib/helpers/PublishedStatusUiHelper.ts","../lib/helpers/HealthCheckUiHelper.ts","../lib/helpers/ProfilingUiHelper.ts","../lib/helpers/WelcomeDashboardUiHelper.ts","../lib/helpers/ContentUiHelper.ts","../lib/helpers/DocumentTypeUiHelper.ts","../lib/helpers/RedirectManagementUiHelper.ts","../lib/helpers/MemberGroupUiHelper.ts","../lib/helpers/MemberUiHelper.ts","../lib/helpers/MemberTypeUiHelper.ts","../lib/helpers/MediaTypeUiHelper.ts","../lib/helpers/UserUiHelper.ts","../lib/helpers/UserGroupUiHelper.ts","../lib/helpers/MediaUiHelper.ts","../lib/helpers/DocumentBlueprintUiHelper.ts","../lib/helpers/DictionaryUiHelper.ts","../lib/helpers/ContentRenderUiHelper.ts","../lib/helpers/FormsUiHelper.ts","../lib/helpers/CurrentUserProfileUiHelper.ts","../lib/helpers/WebhookUiHelper.ts","../lib/helpers/differentAppSettingsHelpers/InstallUiHelper.ts","../lib/helpers/differentAppSettingsHelpers/ExternalLoginUiHelpers.ts","../lib/helpers/UiHelpers.ts","../lib/helpers/ConsoleErrorHelper.ts","../lib/helpers/testExtension.ts","../lib/helpers/NotificationConstantHelper.ts","../lib/helpers/index.ts","../lib/index.ts","../node_modules/@types/node/ts4.8/assert.d.ts","../node_modules/@types/node/ts4.8/assert/strict.d.ts","../node_modules/undici-types/header.d.ts","../node_modules/undici-types/readable.d.ts","../node_modules/undici-types/file.d.ts","../node_modules/undici-types/fetch.d.ts","../node_modules/undici-types/formdata.d.ts","../node_modules/undici-types/connector.d.ts","../node_modules/undici-types/client.d.ts","../node_modules/undici-types/errors.d.ts","../node_modules/undici-types/dispatcher.d.ts","../node_modules/undici-types/global-dispatcher.d.ts","../node_modules/undici-types/global-origin.d.ts","../node_modules/undici-types/pool-stats.d.ts","../node_modules/undici-types/pool.d.ts","../node_modules/undici-types/handlers.d.ts","../node_modules/undici-types/balanced-pool.d.ts","../node_modules/undici-types/agent.d.ts","../node_modules/undici-types/mock-interceptor.d.ts","../node_modules/undici-types/mock-agent.d.ts","../node_modules/undici-types/mock-client.d.ts","../node_modules/undici-types/mock-pool.d.ts","../node_modules/undici-types/mock-errors.d.ts","../node_modules/undici-types/proxy-agent.d.ts","../node_modules/undici-types/api.d.ts","../node_modules/undici-types/cookies.d.ts","../node_modules/undici-types/patch.d.ts","../node_modules/undici-types/filereader.d.ts","../node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/undici-types/websocket.d.ts","../node_modules/undici-types/content-type.d.ts","../node_modules/undici-types/cache.d.ts","../node_modules/undici-types/interceptors.d.ts","../node_modules/undici-types/index.d.ts","../node_modules/@types/node/ts4.8/globals.d.ts","../node_modules/@types/node/ts4.8/async_hooks.d.ts","../node_modules/@types/node/ts4.8/buffer.d.ts","../node_modules/@types/node/ts4.8/child_process.d.ts","../node_modules/@types/node/ts4.8/cluster.d.ts","../node_modules/@types/node/ts4.8/console.d.ts","../node_modules/@types/node/ts4.8/constants.d.ts","../node_modules/@types/node/ts4.8/crypto.d.ts","../node_modules/@types/node/ts4.8/dgram.d.ts","../node_modules/@types/node/ts4.8/diagnostics_channel.d.ts","../node_modules/@types/node/ts4.8/dns.d.ts","../node_modules/@types/node/ts4.8/dns/promises.d.ts","../node_modules/@types/node/ts4.8/domain.d.ts","../node_modules/@types/node/ts4.8/dom-events.d.ts","../node_modules/@types/node/ts4.8/events.d.ts","../node_modules/@types/node/ts4.8/fs.d.ts","../node_modules/@types/node/ts4.8/fs/promises.d.ts","../node_modules/@types/node/ts4.8/http.d.ts","../node_modules/@types/node/ts4.8/http2.d.ts","../node_modules/@types/node/ts4.8/https.d.ts","../node_modules/@types/node/ts4.8/inspector.d.ts","../node_modules/@types/node/ts4.8/module.d.ts","../node_modules/@types/node/ts4.8/net.d.ts","../node_modules/@types/node/ts4.8/os.d.ts","../node_modules/@types/node/ts4.8/path.d.ts","../node_modules/@types/node/ts4.8/perf_hooks.d.ts","../node_modules/@types/node/ts4.8/process.d.ts","../node_modules/@types/node/ts4.8/punycode.d.ts","../node_modules/@types/node/ts4.8/querystring.d.ts","../node_modules/@types/node/ts4.8/readline.d.ts","../node_modules/@types/node/ts4.8/readline/promises.d.ts","../node_modules/@types/node/ts4.8/repl.d.ts","../node_modules/@types/node/ts4.8/stream.d.ts","../node_modules/@types/node/ts4.8/stream/promises.d.ts","../node_modules/@types/node/ts4.8/stream/consumers.d.ts","../node_modules/@types/node/ts4.8/stream/web.d.ts","../node_modules/@types/node/ts4.8/string_decoder.d.ts","../node_modules/@types/node/ts4.8/test.d.ts","../node_modules/@types/node/ts4.8/timers.d.ts","../node_modules/@types/node/ts4.8/timers/promises.d.ts","../node_modules/@types/node/ts4.8/tls.d.ts","../node_modules/@types/node/ts4.8/trace_events.d.ts","../node_modules/@types/node/ts4.8/tty.d.ts","../node_modules/@types/node/ts4.8/url.d.ts","../node_modules/@types/node/ts4.8/util.d.ts","../node_modules/@types/node/ts4.8/v8.d.ts","../node_modules/@types/node/ts4.8/vm.d.ts","../node_modules/@types/node/ts4.8/wasi.d.ts","../node_modules/@types/node/ts4.8/worker_threads.d.ts","../node_modules/@types/node/ts4.8/zlib.d.ts","../node_modules/@types/node/ts4.8/globals.global.d.ts","../node_modules/@types/node/ts4.8/index.d.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"9b087de7268e4efc5f215347a62656663933d63c0b1d7b624913240367b999ea","affectsGlobalScope":true},{"version":"3260e3386d9535b804205bdddb5618a9a27735bd22927f48ad54363abcd23d45","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"14a84fbe4ec531dcbaf5d2594fd95df107258e60ae6c6a076404f13c3f66f28e","c77a05fd25ad8573bf57168e895b6e323687623e49157bcc8b0c512cbd8e1c54","32727845ab5bd8a9ef3e4844c567c09f6d418fcf0f90d381c00652a6f23e7f6e","73e3c02b8dda99fdd41c42b3d8cc8a405ee4aff24026f171d91954bd46327fdf",{"version":"6187791003c1feaf4e15681bf4b1222d9f1be65b24bdf71c61ab31670248710c","affectsGlobalScope":true},"3f00324f263189b385c3a9383b1f4dae6237697bcf0801f96aa35c340512d79c","ec8997c2e5cea26befc76e7bf990750e96babb16977673a9ff3b5c0575d01e48",{"version":"ac566ad371d04b0c1a4e9303085f14385dd9cea96515646ca1a6a4bfb79c7968","signature":"22fea8c28752d1a841afd4b34f886b6ddd7701982943de4a92694a371824b818"},{"version":"e598311445ebe4378af1cb00abfb7222659a7851aaa3d9549c64628857ab4838","signature":"d9e590839d9b5259ea85c4b7b8abedd8459bfadad3aa2ab707df5f06d838a879"},{"version":"16bc0fd4adf6f83440a9f0401fc64bd45c73ca0e5e3efa7a3df152e884420ccd","signature":"f4c914bf76148b4feba712d9e6b2b33b52ee537448d9002e48faaadd12d8f1e9"},{"version":"84da45a7b2598f9e62c06fe1dd496de571b9535d0d0603006f3a70fc490acff1","signature":"3cbbd3bc296e9b4b6decad89c1111a82d8d72a91070b1befd8c09ad5b656fa74"},{"version":"68f09543fa1964b7589e02e2ae23600a3fe1095bc779724631c1155d875cd095","signature":"7931acf2186d2590d9ab45126666c3c6978bfbc5d5cf3912c515893f2f3b81db"},{"version":"ad9cb996e3a752abbfa8ebfb0e601bf6eb7f3b3d8c17390c600a73b408238afa","signature":"d521080ce5075b637966ad9caca3ec81b81ae03f4fad43e3f5d312208561093c"},"7c9803e8b478726fc90dac32492eb1904cf2ddf6cacc9393a823a1f56c8de2b6","0783729a44206a501651406aacd7b44313953e75308cbdd8125ec07d871f7c27","fbeb32592d935d0a8394e889bdd60dde93b35c3274a8823e2717bbe490086cc6","d70a15b0471ca6747cf3c14064536bd759e1a0d528f5624cd71ea1a4c058805a","312a2551e6cdcd53d3699f40ede6e682bdb17b1f15c6708f060fae2e29212bbd","2d0c888fee03ecc5d3395659bef30a1fb6a1851af29a28beddba1dbeccce2e3f","8978c1d03df21edfe3332397117aeea5a6f214cfac22967317df8775f107891a","88d2d9a76bbfb7389e462ba02e24049c76561f093ab2d283562616fd7463cd07","a7647386550454047b62da8d4a5d04312208f23f22e6186b3a27ef3f10ebe618","d7eb5237961f5a6d62b25ef2f01f86dd2be6c4ccb049e4c8cc13cc88e4ffbf42","efcc13cba6fb27850812d508498facd63f2ca1d5c9f64cc145e12187c7272ed2","b8de75ee932693f19d2b084d476e51a57420d2fda88471748cb54628b150508d","5b594bcc58ede578b88b2570af727a6ef5813069a52bd596ec5fb39f368c546f","350ccc15287705af6302395c5b3a69fd855c62c4c65732fe47b19418171b190d","6b85b7398836a6e61e5314f6e1f0f4195e0068405758715628c125f65a391d99","2267458e9652d04bf6193bee1bc8480560efc76e1ca19fd6c5d229c31b20f139","1ffb0d838153e3b4c13e4b1d0381747edbf062cf41768ca0df90465dc1f8101d","6769985f8e56b9829e2bd87f6f618f72484a854040b752b3dc9f04b9f6ff6d6d","bb555b20e6849cf51af25885b2b4334dfe647b8a6ba4d9e4faec50b3fb0a7b47","f015f503439495b68ebe0e476109803d4dedbf209fad10d3457fa520b7808cbd","19aeeacd98eefad3aec0538e17d9a999bcd83f15f8a84534646250b00d08aa6f","1a279ac619bc23042fd8dd148b46d884341ada2546107e79bf0239c9b58c16fc","7b3ceccf06d79b8d68decb705be870c29dc244646252b3a4ddd4c0b7067aa571","b6e04ec3ad7799ecd11d8ef3b58b6833ee8277a23d3e5375ba6bf6cfcfccd7f3","ae9927efeaf5d7738047aecd10f716203cb5be6fed8fe480e1776e7984d5379f","ef0cfed3d4cbf4b6f43ef488eb0304182b1cf0c5669b495ac64966b7ec9750c5","558b92696d7cf4f323100fc8cf51ac4cb5aeadf3176dd0fcca84c3fe196f8412","7b97967c9c10ec8c8c9da742620fd2672666066d1cf3341873dea31a7d9c2da0","5e544d0c9724864d088addd0d30944b7f96fd68f418cf49baea16fdf57a01f03","509d6299f11b88942cc795a249694f07704f22fb7e5ade38065f01a521b6cd1e","ed382c79a5e80af613eec92061efefbacf3a93a8658ad43fa095ca8a708f5ef1","9fbae997a4f6038d1eb854794a202ecf0212e63c73f86893221a07d0fc2c480f","d24c7ce11c0c989638bf0a2e26d2fa7635d833fdf3d6a03a008378f59cedb62b","629dee53dc71d8a76d4589830b38c0d5046027943b5145605280cc8a4a7139ec","7bea0ababbdce87cc4feddba725873474d538f7308ff7dc0072573962b4f8f62","99911cccad6d5d4518a3aeafabeb087b7304d963c3de9091d815046a7077081a","e7d4dccd8f14d827a19d760621de0b41d7da2b2c56ebf88d70f3c04f0cf6b465","4f2ede6a3e67a0ec8051c2e8369278456d605e0fc29b1fac219fefc52e094166","7c6c031a9c66394c3b9115218299fe868082551ea93c4ffdeafd9b1098a76e02","c6af2f9fd5f03ec4a7bbc4ac8fdfbc77d448cf9881304629b534b486d3ba0189","c7a80e5651c2a52565b06f9f22b5dfd03bff9c847bd3915068a87a19382bd2e2","b960b43fc768a8bc5add2a82be3b91b7b6c791590930d036f73b7c6021fb1c6d","55f5da2b9b49b97930031d45fcbd9fc04945fdc8c39c239041c58df4ee0ad906","e8f960f1fb844d47aff7b170c1875c9cdc6d8d47a5dcb12ae347f15bf6fe9942","3981f78285b43827abd088c01726f60f0076a0017ab26710112430ae1878d165","5349fe68736c662d6a3db27f5626032cf36f288a5ac984804281dd108848c790","9eda76e153828a1124a40c6b443a14eb325e3d5a48426cbf167e3265b51db23e","f03894701f6f7f7c5ceabf94870aca8ee83282fbd672561d81fa13377a68f294","6e24582c2eb92415166b28a76c0b514bfc13148ed695d842b306b829da057777","a16024369931b4c65e725e1fa6f57780aee43f884454ca0ffd497f1b385b2f93","8788e37705a52759169ebe347139caf47fa9f761abda7bebb1ce9a2219839d1d","58fe954608abf7f88e7733065ce688bb222a1dce593916b7fb108e9b22d87361","8274b8ed8d1eb27e980803fc110d609ab045b4e5208d1c57d066940ab3ccde21","713d0f6227ae3d7fe881028def28d5964310d2fa8d49894db44048d238bfa8da","c6176b54aace1434e00e670525ea9eeeeb55769eabef5df3d700ca8627fc1c06","bd5202376cb78f2490b8615dffc124cb5f1ac933dd268d17f131c30950be74b4","b68c9adb90c095a3e98fe6de5f6898128115dc703829e8a25255459a912ef702","2661c02e644f1180bee6d226e7f2a401d80412f303d48f47e40fe61c2192cc20","71fdb32e5af22f35c431d3b1f3707e783b03cc1d98d99afb0f1f51e6dd821b0e","bcc5c920deefcb4ef2bccfd9d7566cddbd60ba5bfe80053ff6ba9d6e9ea53d6e","9cc06af0a7149e77a0b860652086fbf26c73a9e9c01f56df6aeddb742757a29c","44839f0ead1ae1441855335b74fdbde41919c55e3918a80b01e07163ee2b1531","088d17dc97fde2c8d089b8888b0e23507435e01a52632cc64a00735fd91b11be","b7d4d02389f4b1fe6dba7820e6bdf18b1053b6a9d538a382036a53d38361b0ef","c90e9d0d6eacd5ed89ebdfeb68037bc1f418b473261c1c70f442cfc86ac26652","8b286e0b720a01d1bab077d218fbe5a45fbbfe4587ae996e9250e3da4596165c","92aa042da3e124ffc27b5996c695dd241c6c5ef630b1c578e01e450553d05cd0","b021de85780940ad460ec30fb2aa40b64e73b97c880498c4ed984cab2aedc51f","60ad2d3253025a7e74005ed31798be5772c03f6fdd4ec21f50a11ac7b1aca920","5964e0a8f6838db796a98e2cb08291bd5d2978d76a61a196d34cffc24c64cad9","8e03f9c8c45b7f11cfe456660fae495e63c546c83089039855f0647b59415b09","d16e9d5a87f43757fd4cac17c24efd90050a13bf5c5ffb6d333842d84d293117","46a1ada9a424d8fd0a9c8ab85943397747c1aceae5da544139067fa6865202c7","590b00bf15d914a6a62cefa7e2b1920629f51883dd8055fa10b412214962b8ad","641758ca97a831e6024eebdfc5a5a11a5000b27c4bb8d7714e25488ae4527044","adb82b9920dbbefd3c2ca8af30b3da320c9494838b2c7994b4fd2ad1bd74017d","2435e0b2b85c765e2d7bd5053fed7b02146e2debf7985d6de53f1cb4d909a246","e6f3e4e9f6c16c81231b024c4397a1acf6617d72ff120fe5426569fc024f79ef","e7add77ac243fa9b7d5a64e1a234b6e86ecf144c1c284b0ebc02540d7b253908","c1520f93182e3f0c5a2f3fa0870be98eafc939f63342e7b50e7a36464dc4fe6e","f4f54e9a6c8c13a9553a82f6d706703bcd11f5de016398ba89a2d1e83ece0f76","4730c71b847c99142cd7541146b9c0b535232034353061b9bc73280c2b23ee2a","d0b388ed632bf943cab7c6f245f6a6a77078760900e69eccf72bd8f468a4855f","6bf328ceb72877af700fe7eb98754f907073207e964f696f086878f260c85d30","501bd65a06a24ff7dae72532ed879910e1ceed44eda5bcbb28c73a1825a06fe1","910fdfdc6bde5056e5f5cc848668aa816251aab03b4e538ec656ce7c2e5c9d4d","1a5f5c43ad6d6fadd15704705b19f1b421fb0c133909b155af7b1bdafe92860c","a461cc5ab62a829a65e0663387d8ebad9c15e7d4392ffbf971e8682313ad9384","4bad8c2aba3bc8f6e4561423d3c53c6e534b92b584a68e503a3b011a38f9eced","8a611331345fb5d790268cfa7170481994f22070d315c336390d1897db81db77","634160ceea0957a1519c5c3803da6cae11f9bba6352d631493fe9acd84f16349","3eea4f3a632c7eaa5fbfbea88a2646d7fb4d085611fbd6da43ee9b80e039420a","1d018ec10663264ba121d22bb237fabf71d9147b949d69518bcb5770aa3a2f88","859334213ea02d45aec5b54ff1d54ef18b3a5ac715a52c0ef8a6ae75050b50a2","9cb6270351ef5ea1c6cbcf75097c63937f106f21ce46fe693482f46bc34bfb96","fb1192ef5c5db2eeac7f996bf882bd99062a742eba7d229519f8964d35f19423","46c0c38ca7829481d9f8989636eaecf3c85a48ce9f1467564cd14cc58eecc39d","9e53b9653e46a7d649c6621e8870d8bd29f948cd577699a44d9b5867ea1a86c0","a7070c25054200db28f04abf7e5829970f22870c50f4795abab0bec193c9cbb7","fbc73b8d844b5d4ca9b6f91cd1c3f8fc230dc79430016df3940c3b50d7743208","6f084acd88dd7c9e7a1c801e09597b3de7714898cfe98a6a4772c14ffeac1b0a","2ea4f3b7a09612b2510ba1699e0b7969b7e668345495d4efec4474143364bab8","fffd55ccb0e275d0cfe6aa05d95a42c0fcc6d0f749b30d7419bd5d08b2ca8fb9","79584f80c79a9c50842cf5486802d8e37652ab6b1a2f6241dfd97d7af52286ae","98e3cbe57ce44ac1c1af9dded0a70e070b4b733a7b2ee1ac4139b63b9cdda7e8","c826bfc25c73cec1ffce13428e9aaa435658c285d0cd10dfa09aedb755820861","bfc5ee36f43a425fa5720198bfffefe614bb69243b31812807fb0d0912857cc7","33ad481a4f005ca22db6c3e8e3dd24ac7175d7b24bc0bf167787e7ea0ca8c2c0","88cbfe3a10f78341882df13c4ab22483303f316d10a2efa15635c180bdbf86e2","42146cb979a01be300870e350d7ea90c0afb71604afc9c729675dfa0bca38abc","1be6becd10569954af3c9bcb00e34fbcc90030286cfa9329aff7341042e2ad4f","1be065122adefc5329252a7ee7d13bd480744049e1f57131e585b6c8763081f4","dede6e04951db7014739fd547b0e8e9726cc0dc3bad22957aade6fcfbb58397c","82dd2019057743d2cc0e37e4e48857d3e306ea66523663be4e4cbe458987cb0b","c5516831bc1c567a383eee90c242669fb3fec7b8c879f5adca1f8ca86bf1bc8e","5fd7b3479066d26b96e6c0208104e6286117adffabc0713686db6a254dc88299","5ebe6ee4079998e88e572457af5d610af67b80bb4d375e21ead51e1bd7007b87","e719f43d7e54832f0c0943b988d78eb2838dc1e61c0c504fce6501500579847c","84c1a5494578c5affca53779468eff24fc912615128aaeba0443a7d084da1c81","d57106aed70ae121f2abbeafb903630c64b3d24ad708d331b5e39ee4154cdef2","317589f5460dfdb1386cd7feda7c57b03861c33c40f136da2239657ec9625028","755cb989f97ae212f7d67804513c0404e19d60085d50a2d821c1e7898622afb9","a73e2f83376a0533d2534cf39db9326f7b17e10258343d743dc8e4be9fa7d7e6","0104f554c856d43470d5143b76a858630948864dbb525ba503abf2495ea32d62","d2720cc47e5116280f94ea51b12443bdb6d34f6dbc2cc718eb22bc9fdf6d1c22","1c2088b528dbbfd94b68d0b391e5a753194beb4f816d01bcf45424a48490a3d8","1e9f7113fbfa4e026da90e21a0b8a0d2693ea17b396f840a35f763d00e52acd9","0e3118760a4906a6b2f0c403125a2c27b23811deb32efc2f3b42ac20cd841e85","27955c2eada51f900146f6e08e98e7fc3c78b3c45299fa224d59751a2a67c2cf","523784089865ec42489606ed3b0886ebe30ec8f502f339a9f0eb0ae799785672","eb3f968aec915281401fe9587625aaf032a5ded4d6e76cc79754572d638b711f","2eaa67d9b44fe8af026a6575ff389781a0bbf9b52635ee029ca6cc0817d597aa","243013284ca9c530cddfd1edbc112a97a3a5292a9b8c4e081ba021343001c1d0","12382a5cb0a2b7e0c5918a88592c5b02d9570bd137cef2c2c1a4be05184603d6","b63b1bb2b9961efa84cb580dd9369838250b2d7dc26db0ae2396b75ec4df1b2c",{"version":"0e82563a60d4162ba709a6ef1d429a5712450d76b681edae0664863ee813811e","signature":"a86a81b97ec2209ba49996429870a8df8e3e02e09398abd2fc6bd728eac294f3"},{"version":"d49f512f8c147d1eefab23feac328e5eadcba24dd8352d509076404d5a4abb36","signature":"694b6ea9d3497e3e838a296d83bf9e8f19ccdd5db7b6f5928c7d1baf6b6fd003"},{"version":"e17f07b028b14f80d6c625470844ec2f52f37efcd58f80dffc607fb8653cd4d0","signature":"7c9803e8b478726fc90dac32492eb1904cf2ddf6cacc9393a823a1f56c8de2b6"},{"version":"18bee0fc600249efb5d78a9683c32e7575f15d4384009cb67f6df227f5c5fccc","signature":"3794da5b928d5a205f9b9651f3579ebb8af9b70319ef73a2c2e3465d3dc8f718"},{"version":"bc0be104c40e84b5ae1c6da0cc7c4b8d3a5f1ba14876eef44564e5f28cf0ab90","signature":"14900a52b7633e6ae047a1daea519a0d904daf396941b62592b89fb6dc20b622"},{"version":"b3e60521da7cb2b68f675fca7d8d54e19e2b8c642f76fc4d30ec646a51d5e491","signature":"8458213db43cbe6bc4f924262d9dfc984b36a8a18144b4cadd36c7fc559a3d4d"},{"version":"ec678d1db5de708933519ae4c15492171c4710e4c49309823fc174732f69a873","signature":"41f9b4337c66b5b241523f2589b4d8651156770bbe8d172776672f87f9e53d81"},{"version":"cabd0d5b08b9df681c7d96ebb233547f3ff5afff1258fb4fd989c48cfa4b696d","signature":"0b46a5aa62769d95c500231b1c18bf8f75a79bb758ee37b1a212d4608abff3cc"},{"version":"de7c5dea73d5e22520fb1d28facde3c60bf71328cd7ad2d6449b1576ea1b5861","signature":"e92dfe1525bf57c604cae7ba4146b7e39e7e69b8a60fd5248b25704475f241f3"},{"version":"9aa03437de8e8312f9c38664eb81758f4aef3116c81fb0ba24502e079eaf531d","signature":"6abcd0c4ef723adaa273858de49546a5270b1498bec2329a7a7611a15b2778f2"},{"version":"f2d2748d596b3ae5dad7a4984ed3d384d4400e91a89b240290e67e286cd4c8ba","signature":"15e8f021d2fbae31be899e942446114bf164bbbd9342425c3e658d372c07c148"},{"version":"f1bd24334e503e833a2cecf306de16ba4c5cf2fefd6fda9d57c19d838f6cb8ec","signature":"35d0dad48d46ff699954fd32afe947a9191acfd3a0dbf1d9d75f4f8785d41cc3"},{"version":"fb0cd3c33762824fa73c360b342359720629c1f02ccfde652341944a6548a640","signature":"df9d7db1a4b3ccc776d8c2bcf8f3c9ff96d7efcf814078ec33717e5a5f19f8e8"},{"version":"b26501c9514c052f2d1da11cc1bf6a0a2a0d3ffe70c22e69a958a588739e1a12","signature":"c5d3af3f84902e8b04243caff273cbae25fdc5d3e77771b0642dc803865a7525"},{"version":"596e7908279ed76d2188b54002e59164bacec4c27a4cbb4effbb17aafe4808b2","signature":"3ed36632608252a461410f1da8b87ca1b64c627261bb8a07a0ceaa7f3910cf23"},{"version":"b2d2e87d468546ed18751d699f0aaf30c03d7e76af3c0af2b956b608a11f6f8e","signature":"0afe6efcb40b1da9c8a94d85b563d8800c8d84c813d17aee1cc3c2650c5d42e1"},{"version":"58b36cc8aa8df872016ddc8269da9e1d09f894e0260baa6d576e55a6eebdfa4a","signature":"d7e67bbc423e3fe460466cc7e84fabf003d0756d9386d894062e6fb09f53e640"},{"version":"31b8e49f0e99e1470a80b9e273fac5700c56fe8d234059cd1bb2ad21b820b0b9","signature":"85bb21606bafbcba87c9fc4c9b64fcc55e1ed9f625bfdcfecb013a0ccce0835f"},{"version":"91e881ba6c6c9dea00855969f278cf4a0a182eb7a0014643cd702d4b6c2d823e","signature":"f8e4d7dd0140c412232ec41e3d92bd3e52eaa65c040d404313d3119693f4f9d7"},{"version":"093412a58431807d86f292735937204c5733c2b33cff45ca392dc2e1b0d710a1","signature":"36958eeed010fd5dbd61070cb9f1dcf65951f523cf00f9fe4f057e072cffcb0c"},{"version":"25c502fca47c551749ae8050e73c7e6346ea5e32b1fef84f6d6d461e9a872ce6","signature":"f789f70171e3c0b4ce8fee345c5b6fd6cb2e39835db65da25f1c218ce5970c4d"},{"version":"b23a85b0d1f26cab65f63c2947a580d5c7fd740013236fdf427a7ddececbd0c8","signature":"a27d35adf759527b5fb60796cb380ee478217b3df0b1309a39c580ceaf1c234c"},{"version":"082479941b759c52dd1ec4c86e79cdd98221878a3c4bff7866b9d297f093347b","signature":"a1dbb77028ab261d8f1e556f050161f358f3e14410c94cfeaefc6ecb0aef9d8b"},{"version":"a174fc45ad8a74a86d8b380599c9ca30b5e1fa3d60897bef721254054cb4303a","signature":"7bd245389f77c48754e28c66782ac10d36438dda660d7f61efdf2216b4a3ff29"},{"version":"b8f5cdab145c7a6c176eabb6000a32ddda642272cb7af2d8ad7c13a3aa7d3c4b","signature":"a2f2dda048d4e932f639ed87095a550e9d379d029c0cae7145b960eb207f39a8"},{"version":"191794ef7a92c39a39f54d7f772a99edab959daa0f7c4a9c634bf49d3a82c3b6","signature":"844b635be8266872300d1af44e7340ef5da7e463322c29841dcbcdc84dfdccdb"},{"version":"4323de306ada775d0eb37cb085c1dd4dc5699375efcf5ceeccab07a3057e0d61","signature":"9624e0c38187d95e902648f477c6cbcfca2e529b332f8db92e9fe1e76d4adefb"},{"version":"1297ca2f2073051a0573e09bc764df1b626f9edcdd6d0d274e98a6f2def53b64","signature":"af5ad9eec924ddc55ecad0720d9dc3d639e2f61b592baff0aa4e643ddd94a163"},{"version":"03aced2ca6aabe4fc429ffe5161c67f23993759d74452481aa498de278678697","signature":"71cac2e96e268005590cc1fba294b72e4234f2486047b91cee8df72925b3b354"},{"version":"cd2ff1cca8b1883af596e17799eae5ecb9cbc0cfb6c2e930ce5b0ca7f94782ae","signature":"f4560774225a851ffc4cefaec9152b2b6ad068439f0f5c5660d1baeb32ac99ae"},{"version":"f74719e01936682c0e2a911ea3416175a9500e63a40681687facd9a98b8d9df1","signature":"012134b24c465445a4cabfca2f2f487cab5b8d916a7f173b95b4410e2a55adb3"},{"version":"f3d4186ef98bf6db54c89a8a747c23aae105f584c6fad074835224dbe611d91d","signature":"aec164d922f9386068bed5e2bcd1d04937bbce531572b8e44ea6ad0caaafbf1a"},{"version":"a32f9b69f24718d1407b36661e39149e15498baf60a94f4ce609af153663fa03","signature":"0b638ee62e687af37db25a201e63c62659aa827d140231b0ee8698e9acf45a42"},{"version":"2c3250facab3d16b0ff34a446a92711997d79b85e5a52bbdeee4e9f9dfd371ba","signature":"a1811359c0505d8b97fb0e167064b8053872654d4a2722f6f374a2b94d0f499b"},{"version":"4a79e067c7b8d7f73a3fcd55f8a4874a1736ecdf891a6b0850d452044b82bcc6","signature":"88c89e1b4d8a67b345491f9dd93672ca53d8e18399dcb9387f9dd5bc7a3a3f66"},{"version":"912001ab07f6c7fd56143af2e8145086af15af0cdcc877a88ff3c3b41efe32a1","signature":"582cbd71150c6195bb9474f893aa177a17964a77d6fb3e56e872a92011506f2c"},{"version":"4efdc2ea4a22c2ec266cbd13c42dc0bb8965bdc2c7d6a5202fca48013e42cd0c","signature":"441a7dd1f6a3e908d08de6d57c14679d199699ae59ec4b2c6f6909ee4e7a01dd"},{"version":"3b936196adcb10d5b656784d239154287f830b0b2138b8a446f0310963c84e35","signature":"5b6af1305a4c918d33730d4c9043d4075b36f9ca51b6fdf5ec49c4874e9d75ce"},{"version":"49c7a6edf644309ceff389e9b160fe69edb0983b17c7d83b219a14e96ee9e682","signature":"c865cfca79caae709d39894c48b1c5f65fa053a265aaf308aba27523471eb5f3"},{"version":"590768eb8708affb35a48a1ef171db13a6e831243b82c1ace63964eda89d6dd2","signature":"dccc396f0aa525182575a83fcf3931b3634df6d1893ae9783c979b22c260e624"},{"version":"f0e9ac0da8951f8de0776b36ec01c9a0c1c5fd1374e515428d36af30f028bb1f","signature":"35901e0b27d889f7bf94a96ffdd92bc18f28eeaa744bb3574e69755d181c9014"},{"version":"538820bb8777699407c53f5d725d69241df0ccfd9124e300de7d77ab9e053ea2","signature":"2874116ce916010bd67500e5477a62b3ea9a54b2aba2cfa241fdc3bee623f4b6"},{"version":"f8d17a7727dbdd8120db9d0f333b7cbe854a7412912c17e29c67e8b2f741fc37","signature":"5ef0a5ecdff873c72fcea4f4af9617409525dc108e52be28b39374cf81a0c3f3"},{"version":"70082ebcdffb51a4f232d04e7a72fa796d6f058e0a5ffaa81d51b2bdaa4dcacd","signature":"56544ec521b04c8619ecbb1fc134cd36e27f3fc52cbac2c6d0d66caa5e2bcf1c"},{"version":"f683588eb6f67d093e22010f727767dc12ccf947c4fcd56cfbf042e8b396dfc8","signature":"c89e2d183a3683530fc7c5fd94368e05bf62438940c1da5e3b73c71b00b1cbce"},{"version":"19a1a3e1f5321005e623b2ae3665f2968a7284f33f485e611d11f8c127fd6b46","signature":"a917c20caa02cf7636797e7872d5d5fd0355770e67808dc8c0525154fe5df041"},{"version":"c694cc36fdfeda4e7ad3ec79875a395d94c0e983469f6f8b1f747ef24674f4e0","signature":"708167176f8be143ef9e9adb420b236bd96b640ac8718a5d35c03248db221029"},{"version":"8a6cb0689c78c6d06cda1a81c47728cec57dfe5d7382da38e7fa851a9b356044","signature":"65ea13fa514a27566539ac313802b79c40227eb25f63ab4d57694348b9558e03"},{"version":"4a0cfb0d136c13a6f5df928908838752f1f49ec89974acc27d69c3e93cbd5e50","signature":"e89d36d87b8f081e39accdb95e7d8b1518f56ca3250a52ff198f7490690232b6"},{"version":"0dd2f446c42b103ca67a10711b764bf05aa118becbef77a389421db5cac9e08d","signature":"9cdea431d09d62324518d19f66003ffd697c174bda4c1be3c2053e122e55a703"},{"version":"b4241c102ca153f7e0a1c260fbab992f6ee3601a15b24d0b399589d32754f6de","signature":"57e41725dab0b209a1437531e0645874491def852f959f0f72943368d4fdbac6"},{"version":"b50e7c01f37ff011d2a15fa7fe1a5ac616486405a74c8aad70064d40b173261e","signature":"5230e6e19ab1970510ff810fec7754d2dcdb6d18d59f14350e0aa87f5bc2aa99"},{"version":"de22d6858ea35b6593d46294ce1f53f2166fc68e604e4728cb355f0770a22e32","signature":"7150e554e4b520f46489dbeedc5d1aae34a1a4523a048ddcb1aa397aedfcf310"},{"version":"357c919e7e0d59f06d3338f2008fa6fc4a871699bda14dbef088ad11f506216b","signature":"067d49f3234f239c882022c01e889d6e792bf7085e6b0c63bbf0251502eb356d"},{"version":"b95534a12f624aeb43b548389a8e319dd0c45af5b6a0d5ca0deb17dd537d827c","signature":"c2b78ad093c430807ae5afa6c56a12577970453c0d23a5a39249d4c9f4f04c9a"},{"version":"b08745d70e8e965de312ec9d90f1677051e121beb22b0f51c98d454096d25b8b","signature":"63ccf0a61956c2bac64556440cb2a807a75e4e5f79e08e5e6943f5f8c056203d"},{"version":"32ab295f54df66db7ecc66e662cdb0b5263e348837df784a3c692d1778f5ae94","signature":"e43d3d40d7b1d75f28d4cd790bb7f434a54e925a8f3b460302caf96078f40456"},{"version":"65b1bbc3cd765e20dfc43370df2138fc6239ee7e9946ff64d99f6f716f3f0e6c","signature":"0f7b0d7b1a598b2c772bdf519d2f312a2fafed67ba688c8b8ae5673ea2fb72bd"},{"version":"a64ee2d56629b4f524e3d7c4df678bcbbf3289b1794b5669da449d7887a0509a","signature":"552cddbd3ded0d5e1070bd5e299c0a94310314258ad4a82ebf6a8738c6e8830e"},{"version":"13c348566c2499c8fd371b99b51f9d894a783305cd6b2c911984d095afd1a03a","signature":"5896d62b2d8d97b5fe55bb684612c15bde24042542e6675a9d36e28dbcac42a9"},{"version":"87a1bb96366c16e3e73879aac6f77e0c1ea03c92c651fe8192083122df4c606b","signature":"22c5ca39727cd0c6154e866f6dab971efb6e423b8e633f945c76b200445abf31"},{"version":"c47c9493a250debc18a3ad2ce82771e5199caf93a81b6b8e1cb2557ec3329932","signature":"bc51cd969400d3e7313f1b3c0c7b59c6a27e45397e60b08c18d0009c74c98ef7"},{"version":"381f599c31790435b7490cfc2d3b9b360ecb189f725cc30ee5a9815855ddd938","signature":"ba34fe7f22717251e7e6a7ee64f4e199b62d0a011f3e3a419ed2d02fd0406fe5"},{"version":"310fc2c26d833592f12e4914d29f6691d77e51e879cf5885b888793b3035a171","signature":"20f215bd22d807bbe50511a48dca1dbc9222afc2a21ed2c67cab2c56dc289c15"},{"version":"e742f7b2db81d1777ee37b3cb323f56f0757b97cdc5468225cacbc5a3338db20","signature":"e7a94ec5a906276b1aed55461228bae61e881e8c9c36d0a4411422465caa2c07"},{"version":"4f56fa0cd0084b727e4d68f8c6e18149993f2402e45d3330fac8db28893938eb","signature":"94d49d26910b2894d4b137b234b0b8017c849f367a49d8b1c06baaca35a61d71"},{"version":"80ee7c64cef79f70253437daa5a12711564369b589e052e27f129fba44de36f5","signature":"a87ca1eabd3b90b2ed8a1d76c7151cfb9c153e21f8e0672126c4dad1bcfb9b6e"},{"version":"23f99ef0a992c14948e5fa1abbbbbfa7cbb854b3e2b502363f3f0ec3ff46d826","signature":"4d5af068c5785ccc151eec74cefeb2b099177f746e24f5c99256535f9eca9f31"},{"version":"4d5c432e7fa841d2d19458f1ad68a44293ac918eccdfe896962c1ae5b30f49f7","signature":"abee7fe5a75e4698c69ab8cbb31199eb92137095f3f65dee4317bfbd7d40f61c"},{"version":"91c3c0354371379ac1a5d16856b9a7b9befd1ef4efe7bf0085a6b404545b88b3","signature":"302280c749ac14a35a70667829db1fb7118cc298f4a9c98dbde1a69899158aeb"},{"version":"d878fbf876c13bc42e0f20854ac9e980b6ae0efaba633427293f998113b30437","signature":"b9d97c0f18410f8d58e63d176d80f70368e2f02f8de30cff4f0bcebea436cb8b"},{"version":"54292f36779add1f8a8b3d65ab07c1aa4da0ba080bfb22e3af12bc784e14a4f3","signature":"2db9feb799733261c6fcae1f15c412debe2712c9a73c8566576f1c5c42584e45"},{"version":"b9181bea4a29329594d5c5a53bec78507fcc67ad0c5afa2a580dc51d6f19a4f7","signature":"4f7d54c603949113f45505330caae6f41e8dbb59841d4ae20b42307dc4579835"},"09df3b4f1c937f02e7fee2836d4c4d7a63e66db70fd4d4e97126f4542cc21d9d","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"4d719cfab49ae4045d15cb6bed0f38ad3d7d6eb7f277d2603502a0f862ca3182","affectsGlobalScope":true},"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c",{"version":"5a856afb15f9dc9983faa391dde989826995a33983c1cccb173e9606688e9709","affectsGlobalScope":true},"546ab07e19116d935ad982e76a223275b53bff7771dab94f433b7ab04652936e","7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba",{"version":"aefb5a4a209f756b580eb53ea771cca8aad411603926f307a5e5b8ec6b16dcf6","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","daece0d85f8783595463f509f7d82b03b2c210cc064cc793096b5f9c73a6db43","b86e1a45b29437f3a99bad4147cb9fe2357617e8008c0484568e5bb5138d6e13","b5b719a47968cd61a6f83f437236bb6fe22a39223b6620da81ef89f5d7a78fb7","42c431e7965b641106b5e25ab3283aa4865ca7bb9909610a2abfa6226e4348be","0b7e732af0a9599be28c091d6bd1cb22c856ec0d415d4749c087c3881ca07a56","b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"bd27e23daf177808fc4b00c86f7d67d64dc42bbc3c855ea41bfed7a529150a1d","affectsGlobalScope":true},"3b4c85eea12187de9929a76792b98406e8778ce575caca8c574f06da82622c54","f788131a39c81e0c9b9e463645dd7132b5bc1beb609b0e31e5c1ceaea378b4df","0c236069ce7bded4f6774946e928e4b3601894d294054af47a553f7abcafe2c1","21894466693f64957b9bd4c80fa3ec7fdfd4efa9d1861e070aca23f10220c9b2","396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","21773f5ac69ddf5a05636ba1f50b5239f4f2d27e4420db147fc2f76a5ae598ac",{"version":"6ec93c745c5e3e25e278fa35451bf18ef857f733de7e57c15e7920ac463baa2a","affectsGlobalScope":true},"a5fe4cc622c3bf8e09ababde5f4096ceac53163eefcd95e9cd53f062ff9bb67a","30c2ec6abf6aaa60eb4f32fb1235531506b7961c6d1bdc7430711aec8fd85295","0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7",{"version":"603df4e91a0c2fd815c6619927468373fb00b6c13066334982ee684f5c7d40b2","affectsGlobalScope":true},{"version":"d48009cbe8a30a504031cc82e1286f78fed33b7a42abf7602c23b5547b382563","affectsGlobalScope":true},"7aaeb5e62f90e1b2be0fc4844df78cdb1be15c22b427bc6c39d57308785b8f10","3ba30205a029ebc0c91d7b1ab4da73f6277d730ca1fc6692d5a9144c6772c76b","d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","458b216959c231df388a5de9dcbcafd4b4ca563bc3784d706d0455467d7d4942","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","f8c87b19eae111f8720b0345ab301af8d81add39621b63614dfc2d15fd6f140a","831c22d257717bf2cbb03afe9c4bcffc5ccb8a2074344d4238bf16d3a857bb12",{"version":"24ba151e213906027e2b1f5223d33575a3612b0234a0e2b56119520bbe0e594b","affectsGlobalScope":true},{"version":"cbf046714f3a3ba2544957e1973ac94aa819fa8aa668846fa8de47eb1c41b0b2","affectsGlobalScope":true},"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","eae74e3d50820f37c72c0679fed959cd1e63c98f6a146a55b8c4361582fa6a52","7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df",{"version":"aed89e3c18f4c659ee8153a76560dffda23e2d801e1e60d7a67abd84bc555f8d","affectsGlobalScope":true},{"version":"527e6e7c1e60184879fe97517f0d51dbfab72c4625cef50179f27f46d7fd69a1","affectsGlobalScope":true},"e393915d3dc385e69c0e2390739c87b2d296a610662eb0b1cb85224e55992250","2f940651c2f30e6b29f8743fae3f40b7b1c03615184f837132b56ea75edad08b","5749c327c3f789f658072f8340786966c8b05ea124a56c1d8d60e04649495a4d",{"version":"c9d62b2a51b2ff166314d8be84f6881a7fcbccd37612442cf1c70d27d5352f50","affectsGlobalScope":true},"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"652ee9c5103e89102d87bc20d167a02a0e3e5e53665674466c8cfea8a9e418c7"],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"emitDeclarationOnly":false,"esModuleInterop":false,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":1,"noEmitOnError":true,"noFallthroughCasesInSwitch":true,"noImplicitAny":false,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"strictPropertyInitialization":false,"target":99},"fileIdsList":[[43,342],[43,49,50,51,52,53,54,55,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,313,342],[43,313,342],[43,49,50,222,342],[43,49,191,222,342],[43,49,222,342],[43,190,221,342],[43,221,342],[43,190,193,221,342],[43,49,221,305,342],[43,49,221,342],[43,193,221,342],[43,49,191,342],[43,49,50,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,342],[43,49,190,221,342],[43,190,191,221,342],[43,49,50,191,222,342],[43,49,190,191,221,342],[43,191,193,221,258,260,261,342],[43,49,50,259,262,342],[43,262,342],[48,342],[264,342],[299,342],[300,305,333,342],[301,312,313,320,330,341,342],[301,302,312,320,342],[303,342],[304,305,313,321,342],[305,330,338,342],[306,308,312,320,342],[307,342],[308,309,342],[312,342],[310,312,342],[312,313,314,330,341,342],[312,313,314,327,330,333,342],[297,342,346],[342],[308,312,315,320,330,341,342],[312,313,315,316,320,330,338,341,342],[315,317,330,338,341,342],[264,265,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348],[312,318,342],[319,341,342,346],[308,312,320,330,342],[321,342],[322,342],[299,323,342],[324,340,342,346],[325,342],[326,342],[312,327,328,342],[327,329,342,344],[300,312,330,331,332,333,342],[300,330,332,342],[330,331,342],[333,342],[334,342],[299,330,342],[312,336,337,342],[336,337,342],[305,320,330,338,342],[339,342],[320,340,342],[300,315,326,341,342],[305,342],[330,342,343],[319,342,344],[342,345],[300,305,312,314,323,330,341,342,344,346],[330,342,347],[97,342],[95,342],[59,96,342],[69,70,342],[71,74,342],[74,342],[71,342],[69,70,71,72,342],[59,73,342],[66,342],[64,342],[59,65,342],[59,342],[78,342],[76,342],[59,77,342],[59,60,61,62,63,66,67,68,74,75,78,81,82,83,84,85,86,87,88,89,94,97,100,107,108,109,110,111,114,115,116,117,118,342],[90,91,92,342],[94,342],[59,93,342],[79,342],[81,342],[59,80,342],[112,114,342],[113,342],[59,113,342],[98,99,342],[59,98,342],[99,342],[101,102,103,104,105,342],[107,342],[103,342],[102,107,342],[59,106,342],[126,127,342],[133,342],[129,134,342],[128,130,342],[128,134,342],[132,342],[130,131,133,142,342],[129,130,131,132,133,134,342],[136,140,342],[128,137,342],[128,140,342],[140,342],[137,138,139,142,342],[136,137,138,139,140,342],[142,143,342],[145,342],[146,342],[121,123,125,135,141,144,342],[144,342],[142,342],[124,342],[142,143,144,146,342],[120,342],[122,342],[183,184,342],[135,141,185,342],[185,342],[183,184,185,342],[153,342],[148,149,150,151,152,342],[148,149,150,151,152,153,342],[58,119,147,154,160,165,167,173,177,182,186,188,342],[161,162,163,164,342],[162,163,342],[161,164,342],[162,342],[164,342],[155,156,157,158,159,342],[159,342],[155,156,157,158,342],[174,175,176,342],[174,175,342],[176,342],[178,179,180,181,342],[178,179,180,342],[181,342],[57,342],[168,169,170,171,172,342],[168,171,342],[169,170,172,342],[166,342],[187,342],[56,189,342],[46,342],[44,45,301,312,313,330,342],[47,342],[274,278,341,342],[274,330,341,342],[269,342],[271,274,338,341,342],[320,338,342],[342,349],[269,342,349],[271,274,320,341,342],[266,267,270,273,300,312,330,341,342],[266,272,342],[270,274,300,333,341,342,349],[300,342,349],[290,300,342,349],[268,269,342,349],[274,342],[268,269,270,271,272,273,274,275,276,278,279,280,281,282,283,284,285,286,287,288,289,291,292,293,294,295,296,342],[274,281,282,342],[272,274,282,283,342],[273,342],[266,269,274,342],[274,278,282,283,342],[278,342],[272,274,277,341,342],[266,271,272,274,278,281,342],[300,330,342],[269,274,290,300,342,346,349],[46,49,51,52,53,54,55,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220],[49,222],[46,221],[221],[49,221],[49],[49,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257],[46,49,221],[191,193,221,258,260,261],[49,262],[262]],"referencedMap":[[193,1],[221,2],[259,3],[191,1],[252,4],[240,5],[254,6],[195,7],[230,6],[54,8],[251,6],[204,9],[216,7],[250,5],[203,9],[241,6],[235,6],[253,6],[209,8],[237,6],[210,8],[53,8],[233,5],[202,8],[228,6],[217,10],[227,6],[206,7],[205,9],[246,6],[249,6],[214,7],[213,8],[243,5],[215,9],[245,6],[244,5],[208,8],[234,6],[261,1],[207,8],[198,8],[232,4],[200,8],[224,6],[238,6],[211,8],[236,6],[212,8],[242,6],[55,8],[231,6],[51,11],[199,8],[225,5],[201,8],[223,5],[52,8],[229,6],[194,12],[226,5],[197,8],[222,13],[258,14],[196,15],[192,16],[248,6],[247,17],[218,18],[255,5],[239,6],[220,11],[257,6],[256,6],[219,11],[262,19],[260,20],[263,21],[49,22],[264,23],[265,23],[299,24],[300,25],[301,26],[302,27],[303,28],[304,29],[305,30],[306,31],[307,32],[308,33],[309,33],[311,34],[310,35],[312,34],[313,36],[314,37],[298,38],[348,39],[315,40],[316,41],[317,42],[349,43],[318,44],[319,45],[320,46],[321,47],[322,48],[323,49],[324,50],[325,51],[326,52],[327,53],[328,53],[329,54],[330,55],[332,56],[331,57],[333,58],[334,59],[335,60],[336,61],[337,62],[338,63],[339,64],[340,65],[341,66],[342,67],[343,68],[344,69],[345,70],[346,71],[347,72],[95,73],[96,74],[97,75],[71,76],[70,77],[72,78],[69,79],[73,80],[74,81],[64,82],[65,83],[66,84],[67,85],[86,85],[68,85],[59,39],[116,85],[63,85],[118,85],[115,85],[88,85],[75,85],[85,85],[76,86],[77,87],[78,88],[119,89],[109,85],[93,90],[92,91],[90,91],[91,91],[94,92],[87,85],[80,93],[79,94],[81,95],[113,96],[112,97],[114,98],[110,85],[89,85],[62,85],[82,85],[60,85],[111,85],[61,85],[83,85],[117,85],[100,99],[99,100],[98,101],[106,102],[104,103],[101,103],[105,103],[102,104],[103,105],[107,106],[84,85],[108,85],[127,39],[126,39],[128,107],[132,108],[130,109],[129,110],[131,111],[133,112],[134,113],[135,114],[137,115],[136,116],[138,117],[139,118],[140,119],[141,120],[144,121],[146,122],[145,123],[142,124],[143,125],[124,126],[125,127],[147,128],[121,129],[120,126],[123,130],[122,126],[185,131],[183,132],[184,133],[186,134],[150,135],[152,135],[153,136],[151,135],[149,135],[148,135],[154,137],[189,138],[165,139],[164,140],[162,141],[161,142],[163,143],[160,144],[157,145],[159,146],[158,145],[156,145],[155,145],[177,147],[176,148],[174,149],[175,149],[182,150],[181,151],[178,152],[179,152],[180,152],[58,153],[57,39],[173,154],[172,155],[169,155],[171,156],[170,155],[168,39],[167,157],[166,39],[188,158],[187,39],[56,39],[190,159],[44,39],[45,160],[46,161],[48,162],[47,160],[43,39],[8,39],[9,39],[11,39],[10,39],[2,39],[12,39],[13,39],[14,39],[15,39],[16,39],[17,39],[18,39],[19,39],[3,39],[4,39],[23,39],[20,39],[21,39],[22,39],[24,39],[25,39],[26,39],[5,39],[27,39],[28,39],[29,39],[30,39],[6,39],[31,39],[32,39],[33,39],[34,39],[7,39],[35,39],[40,39],[41,39],[36,39],[37,39],[38,39],[39,39],[1,39],[42,39],[281,163],[288,164],[280,163],[295,165],[272,166],[271,167],[294,168],[289,169],[292,170],[274,171],[273,172],[269,173],[268,174],[291,175],[270,176],[275,177],[276,39],[279,177],[266,39],[297,178],[296,177],[283,179],[284,180],[286,181],[282,182],[285,183],[290,168],[277,184],[278,185],[287,186],[267,187],[293,188],[50,1]],"exportedModulesMap":[[221,189],[252,190],[240,190],[254,190],[195,191],[230,190],[54,191],[251,190],[204,191],[216,191],[250,190],[203,191],[241,190],[235,190],[253,190],[209,192],[237,190],[210,192],[53,191],[233,190],[202,192],[228,190],[217,193],[227,190],[206,191],[205,191],[246,190],[249,190],[214,191],[213,191],[243,190],[215,191],[245,190],[244,190],[208,192],[234,190],[207,192],[198,191],[232,190],[200,191],[224,190],[238,190],[211,192],[236,190],[212,191],[242,190],[55,191],[231,190],[51,193],[199,191],[225,190],[201,191],[223,190],[52,191],[229,190],[194,191],[226,190],[197,191],[222,194],[258,195],[196,196],[192,191],[248,190],[247,190],[218,196],[255,190],[239,190],[220,191],[257,190],[256,190],[219,191],[262,197],[260,198],[263,199],[49,22],[264,23],[265,23],[299,24],[300,25],[301,26],[302,27],[303,28],[304,29],[305,30],[306,31],[307,32],[308,33],[309,33],[311,34],[310,35],[312,34],[313,36],[314,37],[298,38],[348,39],[315,40],[316,41],[317,42],[349,43],[318,44],[319,45],[320,46],[321,47],[322,48],[323,49],[324,50],[325,51],[326,52],[327,53],[328,53],[329,54],[330,55],[332,56],[331,57],[333,58],[334,59],[335,60],[336,61],[337,62],[338,63],[339,64],[340,65],[341,66],[342,67],[343,68],[344,69],[345,70],[346,71],[347,72],[95,73],[96,74],[97,75],[71,76],[70,77],[72,78],[69,79],[73,80],[74,81],[64,82],[65,83],[66,84],[67,85],[86,85],[68,85],[59,39],[116,85],[63,85],[118,85],[115,85],[88,85],[75,85],[85,85],[76,86],[77,87],[78,88],[119,89],[109,85],[93,90],[92,91],[90,91],[91,91],[94,92],[87,85],[80,93],[79,94],[81,95],[113,96],[112,97],[114,98],[110,85],[89,85],[62,85],[82,85],[60,85],[111,85],[61,85],[83,85],[117,85],[100,99],[99,100],[98,101],[106,102],[104,103],[101,103],[105,103],[102,104],[103,105],[107,106],[84,85],[108,85],[127,39],[126,39],[128,107],[132,108],[130,109],[129,110],[131,111],[133,112],[134,113],[135,114],[137,115],[136,116],[138,117],[139,118],[140,119],[141,120],[144,121],[146,122],[145,123],[142,124],[143,125],[124,126],[125,127],[147,128],[121,129],[120,126],[123,130],[122,126],[185,131],[183,132],[184,133],[186,134],[150,135],[152,135],[153,136],[151,135],[149,135],[148,135],[154,137],[189,138],[165,139],[164,140],[162,141],[161,142],[163,143],[160,144],[157,145],[159,146],[158,145],[156,145],[155,145],[177,147],[176,148],[174,149],[175,149],[182,150],[181,151],[178,152],[179,152],[180,152],[58,153],[57,39],[173,154],[172,155],[169,155],[171,156],[170,155],[168,39],[167,157],[166,39],[188,158],[187,39],[56,39],[190,159],[44,39],[45,160],[46,161],[48,162],[47,160],[43,39],[8,39],[9,39],[11,39],[10,39],[2,39],[12,39],[13,39],[14,39],[15,39],[16,39],[17,39],[18,39],[19,39],[3,39],[4,39],[23,39],[20,39],[21,39],[22,39],[24,39],[25,39],[26,39],[5,39],[27,39],[28,39],[29,39],[30,39],[6,39],[31,39],[32,39],[33,39],[34,39],[7,39],[35,39],[40,39],[41,39],[36,39],[37,39],[38,39],[39,39],[1,39],[42,39],[281,163],[288,164],[280,163],[295,165],[272,166],[271,167],[294,168],[289,169],[292,170],[274,171],[273,172],[269,173],[268,174],[291,175],[270,176],[275,177],[276,39],[279,177],[266,39],[297,178],[296,177],[283,179],[284,180],[286,181],[282,182],[285,183],[290,168],[277,184],[278,185],[287,186],[267,187],[293,188]],"semanticDiagnosticsPerFile":[193,221,259,191,252,240,254,195,230,54,251,204,216,250,203,241,235,253,209,237,210,53,233,202,228,217,227,206,205,246,249,214,213,243,215,245,244,208,234,261,207,198,232,200,224,238,211,236,212,242,55,231,51,199,225,201,223,52,229,194,226,197,222,258,196,192,248,247,218,255,239,220,257,256,219,262,260,263,49,264,265,299,300,301,302,303,304,305,306,307,308,309,311,310,312,313,314,298,348,315,316,317,349,318,319,320,321,322,323,324,325,326,327,328,329,330,332,331,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,95,96,97,71,70,72,69,73,74,64,65,66,67,86,68,59,116,63,118,115,88,75,85,76,77,78,119,109,93,92,90,91,94,87,80,79,81,113,112,114,110,89,62,82,60,111,61,83,117,100,99,98,106,104,101,105,102,103,107,84,108,127,126,128,132,130,129,131,133,134,135,137,136,138,139,140,141,144,146,145,142,143,124,125,147,121,120,123,122,185,183,184,186,150,152,153,151,149,148,154,189,165,164,162,161,163,160,157,159,158,156,155,177,176,174,175,182,181,178,179,180,58,57,173,172,169,171,170,168,167,166,188,187,56,190,44,45,46,48,47,43,8,9,11,10,2,12,13,14,15,16,17,18,19,3,4,23,20,21,22,24,25,26,5,27,28,29,30,6,31,32,33,34,7,35,40,41,36,37,38,39,1,42,281,288,280,295,272,271,294,289,292,274,273,269,268,291,270,275,276,279,266,297,296,283,284,286,282,285,290,277,278,287,267,293,50],"latestChangedDtsFile":"./lib/index.d.ts"},"version":"4.8.3"}
|