sonamu 0.9.3 → 0.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/config.d.ts +0 -8
- package/dist/api/config.d.ts.map +1 -1
- package/dist/api/config.js +1 -1
- package/dist/api/sonamu.d.ts +0 -1
- package/dist/api/sonamu.d.ts.map +1 -1
- package/dist/api/sonamu.js +2 -41
- package/dist/auth/audit-log/builders.d.ts +216 -0
- package/dist/auth/audit-log/builders.d.ts.map +1 -0
- package/dist/auth/audit-log/builders.js +307 -0
- package/dist/auth/audit-log/events.d.ts +143 -0
- package/dist/auth/audit-log/events.d.ts.map +1 -0
- package/dist/auth/audit-log/events.js +74 -0
- package/dist/auth/audit-log/plugin.d.ts +11 -0
- package/dist/auth/audit-log/plugin.d.ts.map +1 -0
- package/dist/auth/audit-log/plugin.js +427 -0
- package/dist/auth/audit-log-ingestor.d.ts +3 -3
- package/dist/auth/audit-log-ingestor.d.ts.map +1 -1
- package/dist/auth/audit-log-ingestor.js +44 -50
- package/dist/auth/index.d.ts +2 -0
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +4 -4
- package/dist/auth/plugins/entity-definitions/admin.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/admin.js +4 -4
- package/dist/auth/plugins/entity-definitions/audit-log.d.ts +2 -2
- package/dist/auth/plugins/entity-definitions/audit-log.js +3 -3
- package/dist/auth/plugins/wrappers/admin.d.ts +2 -2
- package/dist/auth/plugins/wrappers/sso.d.ts +1 -1
- package/dist/bin/fixture.d.ts.map +1 -1
- package/dist/bin/fixture.js +111 -1
- package/dist/database/_batch_update.d.ts +1 -1
- package/dist/database/_batch_update.js +2 -2
- package/dist/entity/entity-manager.d.ts +2 -2
- package/dist/entity/entity-manager.d.ts.map +1 -1
- package/dist/entity/entity-manager.js +14 -4
- package/dist/index.js +4 -3
- package/dist/syncer/syncer.d.ts.map +1 -1
- package/dist/syncer/syncer.js +2 -9
- package/dist/template/implementations/entry-server.template.js +3 -2
- package/dist/template/implementations/generated.template.d.ts.map +1 -1
- package/dist/template/implementations/generated.template.js +2 -1
- package/dist/template/implementations/generated_sso.template.d.ts.map +1 -1
- package/dist/template/implementations/generated_sso.template.js +2 -1
- package/dist/template/implementations/queries.template.d.ts.map +1 -1
- package/dist/template/implementations/queries.template.js +3 -1
- package/dist/template/implementations/sd.template.js +3 -2
- package/dist/template/implementations/services.template.d.ts.map +1 -1
- package/dist/template/implementations/services.template.js +44 -7
- package/dist/template/zod-converter.d.ts.map +1 -1
- package/dist/template/zod-converter.js +2 -2
- package/dist/types/types.d.ts +14 -14
- package/dist/ui-web/assets/{index-DrTfl0Ts.js → index-C5KUjXm0.js} +46 -46
- package/dist/ui-web/index.html +1 -1
- package/dist/utils/fs-utils.d.ts.map +1 -1
- package/dist/utils/fs-utils.js +4 -4
- package/package.json +1 -2
- package/src/api/config.ts +0 -8
- package/src/api/sonamu.ts +1 -51
- package/src/auth/audit-log/builders.ts +791 -0
- package/src/auth/audit-log/events.ts +149 -0
- package/src/auth/audit-log/plugin.ts +913 -0
- package/src/auth/audit-log-ingestor.ts +3 -4
- package/src/auth/index.ts +2 -0
- package/src/auth/plugins/entity-definitions/admin.ts +3 -3
- package/src/auth/plugins/entity-definitions/audit-log.ts +2 -2
- package/src/bin/fixture.ts +143 -0
- package/src/database/_batch_update.ts +1 -1
- package/src/entity/entity-manager.ts +10 -3
- package/src/shared/app.shared.ts.txt +2 -3
- package/src/shared/web.shared.ts.txt +2 -2
- package/src/syncer/syncer.ts +1 -11
- package/src/template/implementations/entry-server.template.ts +1 -1
- package/src/template/implementations/generated.template.ts +1 -0
- package/src/template/implementations/generated_sso.template.ts +1 -0
- package/src/template/implementations/queries.template.ts +10 -1
- package/src/template/implementations/sd.template.ts +1 -1
- package/src/template/implementations/services.template.ts +62 -6
- package/src/template/zod-converter.ts +2 -1
- package/src/utils/fs-utils.ts +6 -4
- package/dist/auth/audit-log-proxy-types.d.ts +0 -23
- package/dist/auth/audit-log-proxy-types.d.ts.map +0 -1
- package/dist/auth/audit-log-proxy-types.js +0 -1
- package/src/auth/audit-log-proxy-types.ts +0 -23
|
@@ -1,7 +1,46 @@
|
|
|
1
|
-
import { __esmMin } from "../_virtual/rolldown_runtime.js";
|
|
2
1
|
import { createHash } from "node:crypto";
|
|
3
2
|
|
|
4
3
|
//#region src/auth/audit-log-ingestor.ts
|
|
4
|
+
const AUDIT_EVENT_SOURCE = "better_auth";
|
|
5
|
+
const AUDIT_EVENT_SOURCE_VERSION = "better-auth|@better-auth/infra";
|
|
6
|
+
const SESSION_EVENT_TYPES = new Set([
|
|
7
|
+
"user_signed_in",
|
|
8
|
+
"user_signed_out",
|
|
9
|
+
"user_sign_in_failed",
|
|
10
|
+
"session_created",
|
|
11
|
+
"session_revoked",
|
|
12
|
+
"all_sessions_revoked",
|
|
13
|
+
"user_impersonated",
|
|
14
|
+
"user_impersonated_stopped"
|
|
15
|
+
]);
|
|
16
|
+
const ACCOUNT_EVENT_TYPES = new Set([
|
|
17
|
+
"account_linked",
|
|
18
|
+
"account_unlinked",
|
|
19
|
+
"password_changed",
|
|
20
|
+
"two_factor_enabled",
|
|
21
|
+
"two_factor_disabled",
|
|
22
|
+
"two_factor_verified"
|
|
23
|
+
]);
|
|
24
|
+
const VERIFICATION_EVENT_TYPES = new Set([
|
|
25
|
+
"email_verification_sent",
|
|
26
|
+
"password_reset_requested",
|
|
27
|
+
"password_reset_completed"
|
|
28
|
+
]);
|
|
29
|
+
const SECURITY_EVENT_TYPES = new Set([
|
|
30
|
+
"security_blocked",
|
|
31
|
+
"security_allowed",
|
|
32
|
+
"security_challenged",
|
|
33
|
+
"security_stale_account"
|
|
34
|
+
]);
|
|
35
|
+
const USER_EVENT_TYPES = new Set([
|
|
36
|
+
"user_created",
|
|
37
|
+
"profile_updated",
|
|
38
|
+
"profile_image_updated",
|
|
39
|
+
"email_verified",
|
|
40
|
+
"user_banned",
|
|
41
|
+
"user_unbanned",
|
|
42
|
+
"user_deleted"
|
|
43
|
+
]);
|
|
5
44
|
function pickString(source, key) {
|
|
6
45
|
const value = source[key];
|
|
7
46
|
return typeof value === "string" ? value : null;
|
|
@@ -67,9 +106,9 @@ function computeDedupeKey(parts) {
|
|
|
67
106
|
return createHash("sha256").update(raw).digest("hex");
|
|
68
107
|
}
|
|
69
108
|
/**
|
|
70
|
-
*
|
|
109
|
+
* sonamuAuditLog 플러그인이 구성한 AuditLogEvent를 audit_events 테이블에 적재합니다.
|
|
71
110
|
* ON CONFLICT (dedupe_key) DO NOTHING으로 중복을 silent 무시합니다.
|
|
72
|
-
* auth.
|
|
111
|
+
* auth.plugins에 sonamuAuditLog() 추가 시 sonamu 내부에서 자동으로 호출됩니다.
|
|
73
112
|
*/
|
|
74
113
|
async function ingestAuditEvent(db, event) {
|
|
75
114
|
const eventData = event.eventData;
|
|
@@ -149,52 +188,7 @@ async function ingestAuditEvent(db, event) {
|
|
|
149
188
|
return;
|
|
150
189
|
}
|
|
151
190
|
}
|
|
152
|
-
var AUDIT_EVENT_SOURCE, AUDIT_EVENT_SOURCE_VERSION, SESSION_EVENT_TYPES, ACCOUNT_EVENT_TYPES, VERIFICATION_EVENT_TYPES, SECURITY_EVENT_TYPES, USER_EVENT_TYPES;
|
|
153
|
-
var init_audit_log_ingestor = __esmMin((() => {
|
|
154
|
-
AUDIT_EVENT_SOURCE = "better_auth";
|
|
155
|
-
AUDIT_EVENT_SOURCE_VERSION = "better-auth|@better-auth/infra";
|
|
156
|
-
SESSION_EVENT_TYPES = new Set([
|
|
157
|
-
"user_signed_in",
|
|
158
|
-
"user_signed_out",
|
|
159
|
-
"user_sign_in_failed",
|
|
160
|
-
"session_created",
|
|
161
|
-
"session_revoked",
|
|
162
|
-
"all_sessions_revoked",
|
|
163
|
-
"user_impersonated",
|
|
164
|
-
"user_impersonated_stopped"
|
|
165
|
-
]);
|
|
166
|
-
ACCOUNT_EVENT_TYPES = new Set([
|
|
167
|
-
"account_linked",
|
|
168
|
-
"account_unlinked",
|
|
169
|
-
"password_changed",
|
|
170
|
-
"two_factor_enabled",
|
|
171
|
-
"two_factor_disabled",
|
|
172
|
-
"two_factor_verified"
|
|
173
|
-
]);
|
|
174
|
-
VERIFICATION_EVENT_TYPES = new Set([
|
|
175
|
-
"email_verification_sent",
|
|
176
|
-
"password_reset_requested",
|
|
177
|
-
"password_reset_completed"
|
|
178
|
-
]);
|
|
179
|
-
SECURITY_EVENT_TYPES = new Set([
|
|
180
|
-
"security_blocked",
|
|
181
|
-
"security_allowed",
|
|
182
|
-
"security_challenged",
|
|
183
|
-
"security_stale_account"
|
|
184
|
-
]);
|
|
185
|
-
USER_EVENT_TYPES = new Set([
|
|
186
|
-
"user_created",
|
|
187
|
-
"profile_updated",
|
|
188
|
-
"profile_image_updated",
|
|
189
|
-
"email_verified",
|
|
190
|
-
"email_changed",
|
|
191
|
-
"user_banned",
|
|
192
|
-
"user_unbanned",
|
|
193
|
-
"user_deleted"
|
|
194
|
-
]);
|
|
195
|
-
}));
|
|
196
191
|
|
|
197
192
|
//#endregion
|
|
198
|
-
|
|
199
|
-
export { ingestAuditEvent, init_audit_log_ingestor };
|
|
200
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLWluZ2VzdG9yLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoL2F1ZGl0LWxvZy1pbmdlc3Rvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSBcIm5vZGU6Y3J5cHRvXCI7XG5cbmltcG9ydCB7IHR5cGUgS25leCB9IGZyb20gXCJrbmV4XCI7XG5cbmltcG9ydCB7IHR5cGUgQXVkaXRMb2dFdmVudCB9IGZyb20gXCIuL2F1ZGl0LWxvZy1wcm94eS10eXBlc1wiO1xuXG5jb25zdCBBVURJVF9FVkVOVF9TT1VSQ0UgPSBcImJldHRlcl9hdXRoXCI7XG5jb25zdCBBVURJVF9FVkVOVF9TT1VSQ0VfVkVSU0lPTiA9IFwiYmV0dGVyLWF1dGh8QGJldHRlci1hdXRoL2luZnJhXCI7XG5cbmNvbnN0IFNFU1NJT05fRVZFTlRfVFlQRVMgPSBuZXcgU2V0PHN0cmluZz4oW1xuICBcInVzZXJfc2lnbmVkX2luXCIsXG4gIFwidXNlcl9zaWduZWRfb3V0XCIsXG4gIFwidXNlcl9zaWduX2luX2ZhaWxlZFwiLFxuICBcInNlc3Npb25fY3JlYXRlZFwiLFxuICBcInNlc3Npb25fcmV2b2tlZFwiLFxuICBcImFsbF9zZXNzaW9uc19yZXZva2VkXCIsXG4gIFwidXNlcl9pbXBlcnNvbmF0ZWRcIixcbiAgXCJ1c2VyX2ltcGVyc29uYXRlZF9zdG9wcGVkXCIsXG5dKTtcblxuY29uc3QgQUNDT1VOVF9FVkVOVF9UWVBFUyA9IG5ldyBTZXQ8c3RyaW5nPihbXG4gIFwiYWNjb3VudF9saW5rZWRcIixcbiAgXCJhY2NvdW50X3VubGlua2VkXCIsXG4gIFwicGFzc3dvcmRfY2hhbmdlZFwiLFxuXG4gIC8vIEBiZXR0ZXItYXV0aC9pbmZyYUAwLjEuMTQg6riw7KSAIEVWRU5UX1RZUEVTIOyDgeyImOyXkOuKlCDsoJXsnZjrkJjslrQg7J6I7Jy864KYIOyLpOygnCB0cmFja0V2ZW50KCkg7Zi47Lac7J20IOyXhuuKlCDrr7jqtaztmIQg7J2067Kk7Yq47J6EXG4gIC8vIO2Wpe2bhCDrsoTsoITsl5DshJwgZW1pdOuQoCDqsr3smrDrpbwg64yA67mE7ZW0IGFjY291bnTroZwg7J6E7IucIOuTseuhnVxuICBcInR3b19mYWN0b3JfZW5hYmxlZFwiLFxuICBcInR3b19mYWN0b3JfZGlzYWJsZWRcIixcbiAgXCJ0d29fZmFjdG9yX3ZlcmlmaWVkXCIsXG5dKTtcblxuY29uc3QgVkVSSUZJQ0FUSU9OX0VWRU5UX1RZUEVTID0gbmV3IFNldDxzdHJpbmc+KFtcbiAgXCJlbWFpbF92ZXJpZmljYXRpb25fc2VudFwiLFxuICBcInBhc3N3b3JkX3Jlc2V0X3JlcXVlc3RlZFwiLFxuICBcInBhc3N3b3JkX3Jlc2V0X2NvbXBsZXRlZFwiLFxuXSk7XG5cbmNvbnN0IFNFQ1VSSVRZX0VWRU5UX1RZUEVTID0gbmV3IFNldDxzdHJpbmc+KFtcbiAgXCJzZWN1cml0eV9ibG9ja2VkXCIsXG4gIFwic2VjdXJpdHlfYWxsb3dlZFwiLFxuICBcInNlY3VyaXR5X2NoYWxsZW5nZWRcIixcbiAgXCJzZWN1cml0eV9zdGFsZV9hY2NvdW50XCIsXG5dKTtcblxuY29uc3QgVVNFUl9FVkVOVF9UWVBFUyA9IG5ldyBTZXQ8c3RyaW5nPihbXG4gIFwidXNlcl9jcmVhdGVkXCIsXG4gIFwicHJvZmlsZV91cGRhdGVkXCIsXG4gIFwicHJvZmlsZV9pbWFnZV91cGRhdGVkXCIsXG4gIFwiZW1haWxfdmVyaWZpZWRcIixcbiAgXCJlbWFpbF9jaGFuZ2VkXCIsXG4gIFwidXNlcl9iYW5uZWRcIixcbiAgXCJ1c2VyX3VuYmFubmVkXCIsXG4gIFwidXNlcl9kZWxldGVkXCIsXG5dKTtcblxuZnVuY3Rpb24gcGlja1N0cmluZyhzb3VyY2U6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBrZXk6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCB2YWx1ZSA9IHNvdXJjZVtrZXldO1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gdmFsdWUgOiBudWxsO1xufVxuXG5mdW5jdGlvbiBwaWNrRmlyc3RTdHJpbmcoc291cmNlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwga2V5czogcmVhZG9ubHkgc3RyaW5nW10pOiBzdHJpbmcgfCBudWxsIHtcbiAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgIGNvbnN0IHZhbHVlID0gcGlja1N0cmluZyhzb3VyY2UsIGtleSk7XG4gICAgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBwYXJzZU9jY3VycmVkQXQocmF3OiB1bmtub3duKTogRGF0ZSB7XG4gIGlmIChyYXcgaW5zdGFuY2VvZiBEYXRlICYmICFOdW1iZXIuaXNOYU4ocmF3LmdldFRpbWUoKSkpIHtcbiAgICByZXR1cm4gcmF3O1xuICB9XG4gIGlmICh0eXBlb2YgcmF3ID09PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgcGFyc2VkID0gbmV3IERhdGUocmF3KTtcbiAgICBpZiAoIU51bWJlci5pc05hTihwYXJzZWQuZ2V0VGltZSgpKSkge1xuICAgICAgcmV0dXJuIHBhcnNlZDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ldyBEYXRlKCk7XG59XG5cbmZ1bmN0aW9uIGNsYXNzaWZ5Q2F0ZWdvcnkoXG4gIGV2ZW50VHlwZTogc3RyaW5nLFxuKTogXCJ1c2VyXCIgfCBcInNlc3Npb25cIiB8IFwiYWNjb3VudFwiIHwgXCJ2ZXJpZmljYXRpb25cIiB8IFwib3JnYW5pemF0aW9uXCIgfCBcInNlY3VyaXR5XCIge1xuICBpZiAoZXZlbnRUeXBlLnN0YXJ0c1dpdGgoXCJvcmdhbml6YXRpb25fXCIpKSB7XG4gICAgcmV0dXJuIFwib3JnYW5pemF0aW9uXCI7XG4gIH1cbiAgaWYgKFNFU1NJT05fRVZFTlRfVFlQRVMuaGFzKGV2ZW50VHlwZSkpIHtcbiAgICByZXR1cm4gXCJzZXNzaW9uXCI7XG4gIH1cbiAgaWYgKEFDQ09VTlRfRVZFTlRfVFlQRVMuaGFzKGV2ZW50VHlwZSkpIHtcbiAgICByZXR1cm4gXCJhY2NvdW50XCI7XG4gIH1cbiAgaWYgKFZFUklGSUNBVElPTl9FVkVOVF9UWVBFUy5oYXMoZXZlbnRUeXBlKSkge1xuICAgIHJldHVybiBcInZlcmlmaWNhdGlvblwiO1xuICB9XG4gIGlmIChTRUNVUklUWV9FVkVOVF9UWVBFUy5oYXMoZXZlbnRUeXBlKSkge1xuICAgIHJldHVybiBcInNlY3VyaXR5XCI7XG4gIH1cbiAgaWYgKFVTRVJfRVZFTlRfVFlQRVMuaGFzKGV2ZW50VHlwZSkpIHtcbiAgICByZXR1cm4gXCJ1c2VyXCI7XG4gIH1cbiAgcmV0dXJuIFwidXNlclwiO1xufVxuXG5mdW5jdGlvbiBjb21wdXRlRGVkdXBlS2V5KHBhcnRzOiB7XG4gIHNvdXJjZTogc3RyaW5nO1xuICBldmVudF90eXBlOiBzdHJpbmc7XG4gIGV2ZW50X2tleTogc3RyaW5nO1xuICBhY3Rvcl91c2VyX2lkOiBzdHJpbmcgfCBudWxsO1xuICBzdWJqZWN0X3VzZXJfaWQ6IHN0cmluZyB8IG51bGw7XG4gIG9yZ2FuaXphdGlvbl9pZDogc3RyaW5nIHwgbnVsbDtcbiAgdGVhbV9pZDogc3RyaW5nIHwgbnVsbDtcbiAgc2Vzc2lvbl9pZDogc3RyaW5nIHwgbnVsbDtcbiAgaWRlbnRpZmllcjogc3RyaW5nIHwgbnVsbDtcbiAgcmVhc29uOiBzdHJpbmcgfCBudWxsO1xuICBhY3Rpb246IHN0cmluZyB8IG51bGw7XG4gIG9jY3VycmVkX2F0OiBEYXRlO1xufSk6IHN0cmluZyB7XG4gIGNvbnN0IG5vcm0gPSAodjogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyA9PiB2ID8/IFwiXCI7XG4gIGNvbnN0IHJhdyA9IFtcbiAgICBwYXJ0cy5zb3VyY2UsXG4gICAgcGFydHMuZXZlbnRfdHlwZSxcbiAgICBwYXJ0cy5ldmVudF9rZXksXG4gICAgbm9ybShwYXJ0cy5hY3Rvcl91c2VyX2lkKSxcbiAgICBub3JtKHBhcnRzLnN1YmplY3RfdXNlcl9pZCksXG4gICAgbm9ybShwYXJ0cy5vcmdhbml6YXRpb25faWQpLFxuICAgIG5vcm0ocGFydHMudGVhbV9pZCksXG4gICAgbm9ybShwYXJ0cy5zZXNzaW9uX2lkKSxcbiAgICBub3JtKHBhcnRzLmlkZW50aWZpZXIpLFxuICAgIG5vcm0ocGFydHMucmVhc29uKSxcbiAgICBub3JtKHBhcnRzLmFjdGlvbiksXG4gICAgcGFydHMub2NjdXJyZWRfYXQudG9JU09TdHJpbmcoKSxcbiAgXS5qb2luKFwifFwiKTtcbiAgcmV0dXJuIGNyZWF0ZUhhc2goXCJzaGEyNTZcIikudXBkYXRlKHJhdykuZGlnZXN0KFwiaGV4XCIpO1xufVxuXG4vKipcbiAqIEJldHRlciBBdXRoIGRhc2goKSDsnbTrsqTtirjrpbwgYXVkaXRfZXZlbnRzIO2FjOydtOu4lOyXkCDsoIHsnqztlanri4jri6QuXG4gKiBPTiBDT05GTElDVCAoZGVkdXBlX2tleSkgRE8gTk9USElOR+ycvOuhnCDspJHrs7XsnYQgc2lsZW50IOustOyLnO2VqeuLiOuLpC5cbiAqIGF1dGguYXVkaXRMb2c6IHRydWUg7ISk7KCVIOyLnCBzb25hbXUg64K067aA7JeQ7IScIOyekOuPmeycvOuhnCDtmLjstpzrkKnri4jri6QuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbmdlc3RBdWRpdEV2ZW50KGRiOiBLbmV4LCBldmVudDogQXVkaXRMb2dFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBldmVudERhdGEgPSBldmVudC5ldmVudERhdGE7XG4gIGNvbnN0IG9jY3VycmVkX2F0ID0gcGFyc2VPY2N1cnJlZEF0KGV2ZW50RGF0YVtcIm9jY3VycmVkQXRcIl0pO1xuXG4gIGNvbnN0IGFjdG9yX3VzZXJfaWQgPSBwaWNrU3RyaW5nKGV2ZW50RGF0YSwgXCJ0cmlnZ2VyZWRCeVwiKTtcbiAgY29uc3Qgc3ViamVjdF91c2VyX2lkID0gcGlja0ZpcnN0U3RyaW5nKGV2ZW50RGF0YSwgW1xuICAgIFwidXNlcklkXCIsXG4gICAgXCJ1c2VyaWRcIixcbiAgICBcImFjY2VwdGVkQnlJZFwiLFxuICAgIFwicmVqZWN0ZWRCeUlkXCIsXG4gIF0pO1xuICBjb25zdCBvcmdhbml6YXRpb25faWQgPSBwaWNrU3RyaW5nKGV2ZW50RGF0YSwgXCJvcmdhbml6YXRpb25JZFwiKTtcbiAgY29uc3QgdGVhbV9pZCA9IHBpY2tGaXJzdFN0cmluZyhldmVudERhdGEsIFtcInRlYW1JZFwiLCBcImludml0ZWVUZWFtSWRcIl0pO1xuICBjb25zdCBzZXNzaW9uX2lkID0gcGlja1N0cmluZyhldmVudERhdGEsIFwic2Vzc2lvbklkXCIpO1xuICBjb25zdCBwcm92aWRlcl9pZCA9IHBpY2tTdHJpbmcoZXZlbnREYXRhLCBcInByb3ZpZGVySWRcIik7XG4gIGNvbnN0IGxvZ2luX21ldGhvZCA9IHBpY2tTdHJpbmcoZXZlbnREYXRhLCBcImxvZ2luTWV0aG9kXCIpO1xuICBjb25zdCBpZGVudGlmaWVyID0gcGlja0ZpcnN0U3RyaW5nKGV2ZW50RGF0YSwgW1xuICAgIFwiaWRlbnRpZmllclwiLFxuICAgIFwidXNlckVtYWlsXCIsXG4gICAgXCJtZW1iZXJFbWFpbFwiLFxuICAgIFwiaW52aXRlZUVtYWlsXCIsXG4gICAgXCJhY2NlcHRlZEJ5RW1haWxcIixcbiAgICBcInJlamVjdGVkQnlFbWFpbFwiLFxuICBdKTtcbiAgY29uc3QgdmlzaXRvcl9pZCA9IHBpY2tTdHJpbmcoZXZlbnREYXRhLCBcInZpc2l0b3JJZFwiKTtcbiAgY29uc3QgcmVhc29uID0gcGlja0ZpcnN0U3RyaW5nKGV2ZW50RGF0YSwgW1wicmVhc29uXCIsIFwiYmFuUmVhc29uXCJdKTtcbiAgY29uc3QgYWN0aW9uID0gcGlja1N0cmluZyhldmVudERhdGEsIFwiYWN0aW9uXCIpO1xuICBjb25zdCB0cmlnZ2VyX2NvbnRleHQgPSBwaWNrU3RyaW5nKGV2ZW50RGF0YSwgXCJ0cmlnZ2VyQ29udGV4dFwiKTtcbiAgY29uc3QgdXNlcl9hZ2VudCA9IHBpY2tTdHJpbmcoZXZlbnREYXRhLCBcInVzZXJBZ2VudFwiKTtcblxuICBjb25zdCBpcF9hZGRyZXNzID0gZXZlbnQuaXBBZGRyZXNzID8/IG51bGw7XG4gIGNvbnN0IGNpdHkgPSBldmVudC5jaXR5ID8/IG51bGw7XG4gIGNvbnN0IGNvdW50cnkgPSBldmVudC5jb3VudHJ5ID8/IG51bGw7XG4gIGNvbnN0IGNvdW50cnlfY29kZSA9IGV2ZW50LmNvdW50cnlDb2RlID8/IG51bGw7XG5cbiAgY29uc3QgY2F0ZWdvcnkgPSBjbGFzc2lmeUNhdGVnb3J5KGV2ZW50LmV2ZW50VHlwZSk7XG4gIGNvbnN0IGRlZHVwZV9rZXkgPSBjb21wdXRlRGVkdXBlS2V5KHtcbiAgICBzb3VyY2U6IEFVRElUX0VWRU5UX1NPVVJDRSxcbiAgICBldmVudF90eXBlOiBldmVudC5ldmVudFR5cGUsXG4gICAgZXZlbnRfa2V5OiBldmVudC5ldmVudEtleSxcbiAgICBhY3Rvcl91c2VyX2lkLFxuICAgIHN1YmplY3RfdXNlcl9pZCxcbiAgICBvcmdhbml6YXRpb25faWQsXG4gICAgdGVhbV9pZCxcbiAgICBzZXNzaW9uX2lkLFxuICAgIGlkZW50aWZpZXIsXG4gICAgcmVhc29uLFxuICAgIGFjdGlvbixcbiAgICBvY2N1cnJlZF9hdCxcbiAgfSk7XG5cbiAgLy8gT04gQ09ORkxJQ1QgRE8gTk9USElORzogZGVkdXBlX2tleSBVTklRVUUg7JyE67CY7J2EIHNpbGVudCDrrLTsi5wuXG4gIC8vIHRyeS9jYXRjaCDrsKnsi53snYAgUEcg7Luk64Sl7IWY7J2EIGFib3J0ZWQg7IOB7YOc66GcIOunjOuTnOuvgOuhnCDsgqzsmqntlZjsp4Ag7JWK64qU64ukLlxuICBjb25zdCBpbnNlcnRlZCA9IGF3YWl0IGRiKFwiYXVkaXRfZXZlbnRzXCIpXG4gICAgLmluc2VydCh7XG4gICAgICBzb3VyY2U6IEFVRElUX0VWRU5UX1NPVVJDRSxcbiAgICAgIHNvdXJjZV92ZXJzaW9uOiBBVURJVF9FVkVOVF9TT1VSQ0VfVkVSU0lPTixcbiAgICAgIGNhdGVnb3J5LFxuICAgICAgZXZlbnRfdHlwZTogZXZlbnQuZXZlbnRUeXBlLFxuICAgICAgZXZlbnRfa2V5OiBldmVudC5ldmVudEtleSxcbiAgICAgIGRlZHVwZV9rZXksXG4gICAgICBhY3Rvcl91c2VyX2lkLFxuICAgICAgc3ViamVjdF91c2VyX2lkLFxuICAgICAgb3JnYW5pemF0aW9uX2lkLFxuICAgICAgdGVhbV9pZCxcbiAgICAgIHNlc3Npb25faWQsXG4gICAgICBwcm92aWRlcl9pZCxcbiAgICAgIGxvZ2luX21ldGhvZCxcbiAgICAgIGlkZW50aWZpZXIsXG4gICAgICB2aXNpdG9yX2lkLFxuICAgICAgcmVhc29uLFxuICAgICAgYWN0aW9uLFxuICAgICAgdHJpZ2dlcl9jb250ZXh0LFxuICAgICAgaXBfYWRkcmVzcyxcbiAgICAgIGNvdW50cnlfY29kZSxcbiAgICAgIGNvdW50cnksXG4gICAgICBjaXR5LFxuICAgICAgdXNlcl9hZ2VudCxcbiAgICAgIHBheWxvYWRfanNvbjogZXZlbnREYXRhLFxuICAgICAgb2NjdXJyZWRfYXQsXG4gICAgfSlcbiAgICAub25Db25mbGljdChcImRlZHVwZV9rZXlcIilcbiAgICAuaWdub3JlKClcbiAgICAucmV0dXJuaW5nKFwiZGVkdXBlX2tleVwiKTtcblxuICBpZiAoaW5zZXJ0ZWQubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuOyAvLyBzaWxlbnQgZGVkdXBlXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQXdEQSxTQUFTLFdBQVcsUUFBaUMsS0FBNEI7Q0FDL0UsTUFBTSxRQUFRLE9BQU87QUFDckIsUUFBTyxPQUFPLFVBQVUsV0FBVyxRQUFROztBQUc3QyxTQUFTLGdCQUFnQixRQUFpQyxNQUF3QztBQUNoRyxNQUFLLE1BQU0sT0FBTyxNQUFNO0VBQ3RCLE1BQU0sUUFBUSxXQUFXLFFBQVEsSUFBSTtBQUNyQyxNQUFJLFVBQVUsTUFBTTtBQUNsQixVQUFPOzs7QUFHWCxRQUFPOztBQUdULFNBQVMsZ0JBQWdCLEtBQW9CO0FBQzNDLEtBQUksZUFBZSxRQUFRLENBQUMsT0FBTyxN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
|
|
193
|
+
export { ingestAuditEvent };
|
|
194
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLWluZ2VzdG9yLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoL2F1ZGl0LWxvZy1pbmdlc3Rvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSBcIm5vZGU6Y3J5cHRvXCI7XG5cbmltcG9ydCB7IHR5cGUgS25leCB9IGZyb20gXCJrbmV4XCI7XG5cbmltcG9ydCB7IHR5cGUgQXVkaXRMb2dFdmVudCB9IGZyb20gXCIuL2F1ZGl0LWxvZy9ldmVudHNcIjtcblxuY29uc3QgQVVESVRfRVZFTlRfU09VUkNFID0gXCJiZXR0ZXJfYXV0aFwiO1xuY29uc3QgQVVESVRfRVZFTlRfU09VUkNFX1ZFUlNJT04gPSBcImJldHRlci1hdXRofEBiZXR0ZXItYXV0aC9pbmZyYVwiO1xuXG5jb25zdCBTRVNTSU9OX0VWRU5UX1RZUEVTID0gbmV3IFNldDxzdHJpbmc+KFtcbiAgXCJ1c2VyX3NpZ25lZF9pblwiLFxuICBcInVzZXJfc2lnbmVkX291dFwiLFxuICBcInVzZXJfc2lnbl9pbl9mYWlsZWRcIixcbiAgXCJzZXNzaW9uX2NyZWF0ZWRcIixcbiAgXCJzZXNzaW9uX3Jldm9rZWRcIixcbiAgXCJhbGxfc2Vzc2lvbnNfcmV2b2tlZFwiLFxuICBcInVzZXJfaW1wZXJzb25hdGVkXCIsXG4gIFwidXNlcl9pbXBlcnNvbmF0ZWRfc3RvcHBlZFwiLFxuXSk7XG5cbmNvbnN0IEFDQ09VTlRfRVZFTlRfVFlQRVMgPSBuZXcgU2V0PHN0cmluZz4oW1xuICBcImFjY291bnRfbGlua2VkXCIsXG4gIFwiYWNjb3VudF91bmxpbmtlZFwiLFxuICBcInBhc3N3b3JkX2NoYW5nZWRcIixcblxuICAvLyBAYmV0dGVyLWF1dGgvaW5mcmFAMC4xLjE0IOq4sOykgCBFVkVOVF9UWVBFUyDsg4HsiJjsl5DripQg7KCV7J2Y65CY7Ja0IOyeiOycvOuCmCDsi6TsoJwgdHJhY2tFdmVudCgpIO2YuOy2nOydtCDsl4bripQg66+46rWs7ZiEIOydtOuypO2KuOyehFxuICAvLyDtlqXtm4Qg67KE7KCE7JeQ7IScIGVtaXTrkKAg6rK97Jqw66W8IOuMgOu5hO2VtCBhY2NvdW5066GcIOyehOyLnCDrk7HroZ1cbiAgXCJ0d29fZmFjdG9yX2VuYWJsZWRcIixcbiAgXCJ0d29fZmFjdG9yX2Rpc2FibGVkXCIsXG4gIFwidHdvX2ZhY3Rvcl92ZXJpZmllZFwiLFxuXSk7XG5cbmNvbnN0IFZFUklGSUNBVElPTl9FVkVOVF9UWVBFUyA9IG5ldyBTZXQ8c3RyaW5nPihbXG4gIFwiZW1haWxfdmVyaWZpY2F0aW9uX3NlbnRcIixcbiAgXCJwYXNzd29yZF9yZXNldF9yZXF1ZXN0ZWRcIixcbiAgXCJwYXNzd29yZF9yZXNldF9jb21wbGV0ZWRcIixcbl0pO1xuXG5jb25zdCBTRUNVUklUWV9FVkVOVF9UWVBFUyA9IG5ldyBTZXQ8c3RyaW5nPihbXG4gIFwic2VjdXJpdHlfYmxvY2tlZFwiLFxuICBcInNlY3VyaXR5X2FsbG93ZWRcIixcbiAgXCJzZWN1cml0eV9jaGFsbGVuZ2VkXCIsXG4gIFwic2VjdXJpdHlfc3RhbGVfYWNjb3VudFwiLFxuXSk7XG5cbmNvbnN0IFVTRVJfRVZFTlRfVFlQRVMgPSBuZXcgU2V0PHN0cmluZz4oW1xuICBcInVzZXJfY3JlYXRlZFwiLFxuICBcInByb2ZpbGVfdXBkYXRlZFwiLFxuICBcInByb2ZpbGVfaW1hZ2VfdXBkYXRlZFwiLFxuICBcImVtYWlsX3ZlcmlmaWVkXCIsXG4gIFwidXNlcl9iYW5uZWRcIixcbiAgXCJ1c2VyX3VuYmFubmVkXCIsXG4gIFwidXNlcl9kZWxldGVkXCIsXG5dKTtcblxuZnVuY3Rpb24gcGlja1N0cmluZyhzb3VyY2U6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBrZXk6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCB2YWx1ZSA9IHNvdXJjZVtrZXldO1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gdmFsdWUgOiBudWxsO1xufVxuXG5mdW5jdGlvbiBwaWNrRmlyc3RTdHJpbmcoc291cmNlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwga2V5czogcmVhZG9ubHkgc3RyaW5nW10pOiBzdHJpbmcgfCBudWxsIHtcbiAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgIGNvbnN0IHZhbHVlID0gcGlja1N0cmluZyhzb3VyY2UsIGtleSk7XG4gICAgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBwYXJzZU9jY3VycmVkQXQocmF3OiB1bmtub3duKTogRGF0ZSB7XG4gIGlmIChyYXcgaW5zdGFuY2VvZiBEYXRlICYmICFOdW1iZXIuaXNOYU4ocmF3LmdldFRpbWUoKSkpIHtcbiAgICByZXR1cm4gcmF3O1xuICB9XG4gIGlmICh0eXBlb2YgcmF3ID09PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgcGFyc2VkID0gbmV3IERhdGUocmF3KTtcbiAgICBpZiAoIU51bWJlci5pc05hTihwYXJzZWQuZ2V0VGltZSgpKSkge1xuICAgICAgcmV0dXJuIHBhcnNlZDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ldyBEYXRlKCk7XG59XG5cbmZ1bmN0aW9uIGNsYXNzaWZ5Q2F0ZWdvcnkoXG4gIGV2ZW50VHlwZTogc3RyaW5nLFxuKTogXCJ1c2VyXCIgfCBcInNlc3Npb25cIiB8IFwiYWNjb3VudFwiIHwgXCJ2ZXJpZmljYXRpb25cIiB8IFwib3JnYW5pemF0aW9uXCIgfCBcInNlY3VyaXR5XCIge1xuICBpZiAoZXZlbnRUeXBlLnN0YXJ0c1dpdGgoXCJvcmdhbml6YXRpb25fXCIpKSB7XG4gICAgcmV0dXJuIFwib3JnYW5pemF0aW9uXCI7XG4gIH1cbiAgaWYgKFNFU1NJT05fRVZFTlRfVFlQRVMuaGFzKGV2ZW50VHlwZSkpIHtcbiAgICByZXR1cm4gXCJzZXNzaW9uXCI7XG4gIH1cbiAgaWYgKEFDQ09VTlRfRVZFTlRfVFlQRVMuaGFzKGV2ZW50VHlwZSkpIHtcbiAgICByZXR1cm4gXCJhY2NvdW50XCI7XG4gIH1cbiAgaWYgKFZFUklGSUNBVElPTl9FVkVOVF9UWVBFUy5oYXMoZXZlbnRUeXBlKSkge1xuICAgIHJldHVybiBcInZlcmlmaWNhdGlvblwiO1xuICB9XG4gIGlmIChTRUNVUklUWV9FVkVOVF9UWVBFUy5oYXMoZXZlbnRUeXBlKSkge1xuICAgIHJldHVybiBcInNlY3VyaXR5XCI7XG4gIH1cbiAgaWYgKFVTRVJfRVZFTlRfVFlQRVMuaGFzKGV2ZW50VHlwZSkpIHtcbiAgICByZXR1cm4gXCJ1c2VyXCI7XG4gIH1cbiAgcmV0dXJuIFwidXNlclwiO1xufVxuXG5mdW5jdGlvbiBjb21wdXRlRGVkdXBlS2V5KHBhcnRzOiB7XG4gIHNvdXJjZTogc3RyaW5nO1xuICBldmVudF90eXBlOiBzdHJpbmc7XG4gIGV2ZW50X2tleTogc3RyaW5nO1xuICBhY3Rvcl91c2VyX2lkOiBzdHJpbmcgfCBudWxsO1xuICBzdWJqZWN0X3VzZXJfaWQ6IHN0cmluZyB8IG51bGw7XG4gIG9yZ2FuaXphdGlvbl9pZDogc3RyaW5nIHwgbnVsbDtcbiAgdGVhbV9pZDogc3RyaW5nIHwgbnVsbDtcbiAgc2Vzc2lvbl9pZDogc3RyaW5nIHwgbnVsbDtcbiAgaWRlbnRpZmllcjogc3RyaW5nIHwgbnVsbDtcbiAgcmVhc29uOiBzdHJpbmcgfCBudWxsO1xuICBhY3Rpb246IHN0cmluZyB8IG51bGw7XG4gIG9jY3VycmVkX2F0OiBEYXRlO1xufSk6IHN0cmluZyB7XG4gIGNvbnN0IG5vcm0gPSAodjogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyA9PiB2ID8/IFwiXCI7XG4gIGNvbnN0IHJhdyA9IFtcbiAgICBwYXJ0cy5zb3VyY2UsXG4gICAgcGFydHMuZXZlbnRfdHlwZSxcbiAgICBwYXJ0cy5ldmVudF9rZXksXG4gICAgbm9ybShwYXJ0cy5hY3Rvcl91c2VyX2lkKSxcbiAgICBub3JtKHBhcnRzLnN1YmplY3RfdXNlcl9pZCksXG4gICAgbm9ybShwYXJ0cy5vcmdhbml6YXRpb25faWQpLFxuICAgIG5vcm0ocGFydHMudGVhbV9pZCksXG4gICAgbm9ybShwYXJ0cy5zZXNzaW9uX2lkKSxcbiAgICBub3JtKHBhcnRzLmlkZW50aWZpZXIpLFxuICAgIG5vcm0ocGFydHMucmVhc29uKSxcbiAgICBub3JtKHBhcnRzLmFjdGlvbiksXG4gICAgcGFydHMub2NjdXJyZWRfYXQudG9JU09TdHJpbmcoKSxcbiAgXS5qb2luKFwifFwiKTtcbiAgcmV0dXJuIGNyZWF0ZUhhc2goXCJzaGEyNTZcIikudXBkYXRlKHJhdykuZGlnZXN0KFwiaGV4XCIpO1xufVxuXG4vKipcbiAqIHNvbmFtdUF1ZGl0TG9nIO2UjOufrOq3uOyduOydtCDqtazshLHtlZwgQXVkaXRMb2dFdmVudOulvCBhdWRpdF9ldmVudHMg7YWM7J2067iU7JeQIOyggeyerO2VqeuLiOuLpC5cbiAqIE9OIENPTkZMSUNUIChkZWR1cGVfa2V5KSBETyBOT1RISU5H7Jy866GcIOykkeuzteydhCBzaWxlbnQg66y07Iuc7ZWp64uI64ukLlxuICogYXV0aC5wbHVnaW5z7JeQIHNvbmFtdUF1ZGl0TG9nKCkg7LaU6rCAIOyLnCBzb25hbXUg64K067aA7JeQ7IScIOyekOuPmeycvOuhnCDtmLjstpzrkKnri4jri6QuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbmdlc3RBdWRpdEV2ZW50KGRiOiBLbmV4LCBldmVudDogQXVkaXRMb2dFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBldmVudERhdGEgPSBldmVudC5ldmVudERhdGE7XG4gIGNvbnN0IG9jY3VycmVkX2F0ID0gcGFyc2VPY2N1cnJlZEF0KGV2ZW50RGF0YVtcIm9jY3VycmVkQXRcIl0pO1xuXG4gIGNvbnN0IGFjdG9yX3VzZXJfaWQgPSBwaWNrU3RyaW5nKGV2ZW50RGF0YSwgXCJ0cmlnZ2VyZWRCeVwiKTtcbiAgY29uc3Qgc3ViamVjdF91c2VyX2lkID0gcGlja0ZpcnN0U3RyaW5nKGV2ZW50RGF0YSwgW1xuICAgIFwidXNlcklkXCIsXG4gICAgXCJ1c2VyaWRcIixcbiAgICBcImFjY2VwdGVkQnlJZFwiLFxuICAgIFwicmVqZWN0ZWRCeUlkXCIsXG4gIF0pO1xuICBjb25zdCBvcmdhbml6YXRpb25faWQgPSBwaWNrU3RyaW5nKGV2ZW50RGF0YSwgXCJvcmdhbml6YXRpb25JZFwiKTtcbiAgY29uc3QgdGVhbV9pZCA9IHBpY2tGaXJzdFN0cmluZyhldmVudERhdGEsIFtcInRlYW1JZFwiLCBcImludml0ZWVUZWFtSWRcIl0pO1xuICBjb25zdCBzZXNzaW9uX2lkID0gcGlja1N0cmluZyhldmVudERhdGEsIFwic2Vzc2lvbklkXCIpO1xuICBjb25zdCBwcm92aWRlcl9pZCA9IHBpY2tTdHJpbmcoZXZlbnREYXRhLCBcInByb3ZpZGVySWRcIik7XG4gIGNvbnN0IGxvZ2luX21ldGhvZCA9IHBpY2tTdHJpbmcoZXZlbnREYXRhLCBcImxvZ2luTWV0aG9kXCIpO1xuICBjb25zdCBpZGVudGlmaWVyID0gcGlja0ZpcnN0U3RyaW5nKGV2ZW50RGF0YSwgW1xuICAgIFwiaWRlbnRpZmllclwiLFxuICAgIFwidXNlckVtYWlsXCIsXG4gICAgXCJtZW1iZXJFbWFpbFwiLFxuICAgIFwiaW52aXRlZUVtYWlsXCIsXG4gICAgXCJhY2NlcHRlZEJ5RW1haWxcIixcbiAgICBcInJlamVjdGVkQnlFbWFpbFwiLFxuICBdKTtcbiAgY29uc3QgdmlzaXRvcl9pZCA9IHBpY2tTdHJpbmcoZXZlbnREYXRhLCBcInZpc2l0b3JJZFwiKTtcbiAgY29uc3QgcmVhc29uID0gcGlja0ZpcnN0U3RyaW5nKGV2ZW50RGF0YSwgW1wicmVhc29uXCIsIFwiYmFuUmVhc29uXCJdKTtcbiAgY29uc3QgYWN0aW9uID0gcGlja1N0cmluZyhldmVudERhdGEsIFwiYWN0aW9uXCIpO1xuICBjb25zdCB0cmlnZ2VyX2NvbnRleHQgPSBwaWNrU3RyaW5nKGV2ZW50RGF0YSwgXCJ0cmlnZ2VyQ29udGV4dFwiKTtcbiAgY29uc3QgdXNlcl9hZ2VudCA9IHBpY2tTdHJpbmcoZXZlbnREYXRhLCBcInVzZXJBZ2VudFwiKTtcblxuICBjb25zdCBpcF9hZGRyZXNzID0gZXZlbnQuaXBBZGRyZXNzID8/IG51bGw7XG4gIGNvbnN0IGNpdHkgPSBldmVudC5jaXR5ID8/IG51bGw7XG4gIGNvbnN0IGNvdW50cnkgPSBldmVudC5jb3VudHJ5ID8/IG51bGw7XG4gIGNvbnN0IGNvdW50cnlfY29kZSA9IGV2ZW50LmNvdW50cnlDb2RlID8/IG51bGw7XG5cbiAgY29uc3QgY2F0ZWdvcnkgPSBjbGFzc2lmeUNhdGVnb3J5KGV2ZW50LmV2ZW50VHlwZSk7XG4gIGNvbnN0IGRlZHVwZV9rZXkgPSBjb21wdXRlRGVkdXBlS2V5KHtcbiAgICBzb3VyY2U6IEFVRElUX0VWRU5UX1NPVVJDRSxcbiAgICBldmVudF90eXBlOiBldmVudC5ldmVudFR5cGUsXG4gICAgZXZlbnRfa2V5OiBldmVudC5ldmVudEtleSxcbiAgICBhY3Rvcl91c2VyX2lkLFxuICAgIHN1YmplY3RfdXNlcl9pZCxcbiAgICBvcmdhbml6YXRpb25faWQsXG4gICAgdGVhbV9pZCxcbiAgICBzZXNzaW9uX2lkLFxuICAgIGlkZW50aWZpZXIsXG4gICAgcmVhc29uLFxuICAgIGFjdGlvbixcbiAgICBvY2N1cnJlZF9hdCxcbiAgfSk7XG5cbiAgLy8gT04gQ09ORkxJQ1QgRE8gTk9USElORzogZGVkdXBlX2tleSBVTklRVUUg7JyE67CY7J2EIHNpbGVudCDrrLTsi5wuXG4gIC8vIHRyeS9jYXRjaCDrsKnsi53snYAgUEcg7Luk64Sl7IWY7J2EIGFib3J0ZWQg7IOB7YOc66GcIOunjOuTnOuvgOuhnCDsgqzsmqntlZjsp4Ag7JWK64qU64ukLlxuICBjb25zdCBpbnNlcnRlZCA9IGF3YWl0IGRiKFwiYXVkaXRfZXZlbnRzXCIpXG4gICAgLmluc2VydCh7XG4gICAgICBzb3VyY2U6IEFVRElUX0VWRU5UX1NPVVJDRSxcbiAgICAgIHNvdXJjZV92ZXJzaW9uOiBBVURJVF9FVkVOVF9TT1VSQ0VfVkVSU0lPTixcbiAgICAgIGNhdGVnb3J5LFxuICAgICAgZXZlbnRfdHlwZTogZXZlbnQuZXZlbnRUeXBlLFxuICAgICAgZXZlbnRfa2V5OiBldmVudC5ldmVudEtleSxcbiAgICAgIGRlZHVwZV9rZXksXG4gICAgICBhY3Rvcl91c2VyX2lkLFxuICAgICAgc3ViamVjdF91c2VyX2lkLFxuICAgICAgb3JnYW5pemF0aW9uX2lkLFxuICAgICAgdGVhbV9pZCxcbiAgICAgIHNlc3Npb25faWQsXG4gICAgICBwcm92aWRlcl9pZCxcbiAgICAgIGxvZ2luX21ldGhvZCxcbiAgICAgIGlkZW50aWZpZXIsXG4gICAgICB2aXNpdG9yX2lkLFxuICAgICAgcmVhc29uLFxuICAgICAgYWN0aW9uLFxuICAgICAgdHJpZ2dlcl9jb250ZXh0LFxuICAgICAgaXBfYWRkcmVzcyxcbiAgICAgIGNvdW50cnlfY29kZSxcbiAgICAgIGNvdW50cnksXG4gICAgICBjaXR5LFxuICAgICAgdXNlcl9hZ2VudCxcbiAgICAgIHBheWxvYWRfanNvbjogZXZlbnREYXRhLFxuICAgICAgb2NjdXJyZWRfYXQsXG4gICAgfSlcbiAgICAub25Db25mbGljdChcImRlZHVwZV9rZXlcIilcbiAgICAuaWdub3JlKClcbiAgICAucmV0dXJuaW5nKFwiZGVkdXBlX2tleVwiKTtcblxuICBpZiAoaW5zZXJ0ZWQubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuOyAvLyBzaWxlbnQgZGVkdXBlXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBTUEsTUFBTSxxQkFBcUI7QUFDM0IsTUFBTSw2QkFBNkI7QUFFbkMsTUFBTSxzQkFBc0IsSUFBSSxJQUFZO0NBQzFDO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDRCxDQUFDO0FBRUYsTUFBTSxzQkFBc0IsSUFBSSxJQUFZO0NBQzFDO0NBQ0E7Q0FDQTtDQUlBO0NBQ0E7Q0FDQTtDQUNELENBQUM7QUFFRixNQUFNLDJCQUEyQixJQUFJLElBQVk7Q0FDL0M7Q0FDQTtDQUNBO0NBQ0QsQ0FBQztBQUVGLE1BQU0sdUJBQXVCLElBQUks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
|
package/dist/auth/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export type { GenerateBetterAuthEntitiesOptions } from "./auth-generator";
|
|
2
2
|
export { generateBetterAuthEntities } from "./auth-generator";
|
|
3
3
|
export { ingestAuditEvent } from "./audit-log-ingestor";
|
|
4
|
+
export { type AuditLogEvent } from "./audit-log/events";
|
|
5
|
+
export { sonamuAuditLog } from "./audit-log/plugin";
|
|
4
6
|
export { BASE_FIELD_MAPPINGS, betterAuthV1 } from "./better-auth-entities";
|
|
5
7
|
export { sonamuKnexAdapter } from "./knex-adapter";
|
|
6
8
|
export * from "./plugins";
|
package/dist/auth/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iCAAiC,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnD,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iCAAiC,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnD,cAAc,WAAW,CAAC"}
|
package/dist/auth/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { ingestAuditEvent, init_audit_log_ingestor } from "./audit-log-ingestor.js";
|
|
2
1
|
import { BASE_FIELD_MAPPINGS, betterAuthV1, init_better_auth_entities } from "./better-auth-entities.js";
|
|
2
|
+
import { ingestAuditEvent } from "./audit-log-ingestor.js";
|
|
3
|
+
import { sonamuAuditLog } from "./audit-log/plugin.js";
|
|
3
4
|
import { generateBetterAuthEntities } from "./auth-generator.js";
|
|
4
5
|
import { init_knex_adapter, sonamuKnexAdapter } from "./knex-adapter.js";
|
|
5
6
|
import { ADMIN_SCHEMA, admin } from "./plugins/wrappers/admin.js";
|
|
@@ -15,10 +16,9 @@ import { USERNAME_SCHEMA, username } from "./plugins/wrappers/username.js";
|
|
|
15
16
|
import "./plugins/index.js";
|
|
16
17
|
|
|
17
18
|
//#region src/auth/index.ts
|
|
18
|
-
init_audit_log_ingestor();
|
|
19
19
|
init_better_auth_entities();
|
|
20
20
|
init_knex_adapter();
|
|
21
21
|
|
|
22
22
|
//#endregion
|
|
23
|
-
export { ADMIN_SCHEMA, ANONYMOUS_SCHEMA, API_KEY_SCHEMA, BASE_FIELD_MAPPINGS, JWT_SCHEMA, ORGANIZATION_SCHEMA, PASSKEY_SCHEMA, PHONE_NUMBER_SCHEMA, SSO_SCHEMA, TWO_FACTOR_SCHEMA, USERNAME_SCHEMA, admin, anonymous, apiKey, betterAuthV1, generateBetterAuthEntities, ingestAuditEvent, jwt, organization, passkey, phoneNumber, sonamuKnexAdapter, sso, twoFactor, username };
|
|
24
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
23
|
+
export { ADMIN_SCHEMA, ANONYMOUS_SCHEMA, API_KEY_SCHEMA, BASE_FIELD_MAPPINGS, JWT_SCHEMA, ORGANIZATION_SCHEMA, PASSKEY_SCHEMA, PHONE_NUMBER_SCHEMA, SSO_SCHEMA, TWO_FACTOR_SCHEMA, USERNAME_SCHEMA, admin, anonymous, apiKey, betterAuthV1, generateBetterAuthEntities, ingestAuditEvent, jwt, organization, passkey, phoneNumber, sonamuAuditLog, sonamuKnexAdapter, sso, twoFactor, username };
|
|
24
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F1dGgvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgeyBHZW5lcmF0ZUJldHRlckF1dGhFbnRpdGllc09wdGlvbnMgfSBmcm9tIFwiLi9hdXRoLWdlbmVyYXRvclwiO1xuZXhwb3J0IHsgZ2VuZXJhdGVCZXR0ZXJBdXRoRW50aXRpZXMgfSBmcm9tIFwiLi9hdXRoLWdlbmVyYXRvclwiO1xuZXhwb3J0IHsgaW5nZXN0QXVkaXRFdmVudCB9IGZyb20gXCIuL2F1ZGl0LWxvZy1pbmdlc3RvclwiO1xuZXhwb3J0IHsgdHlwZSBBdWRpdExvZ0V2ZW50IH0gZnJvbSBcIi4vYXVkaXQtbG9nL2V2ZW50c1wiO1xuZXhwb3J0IHsgc29uYW11QXVkaXRMb2cgfSBmcm9tIFwiLi9hdWRpdC1sb2cvcGx1Z2luXCI7XG5leHBvcnQgeyBCQVNFX0ZJRUxEX01BUFBJTkdTLCBiZXR0ZXJBdXRoVjEgfSBmcm9tIFwiLi9iZXR0ZXItYXV0aC1lbnRpdGllc1wiO1xuZXhwb3J0IHsgc29uYW11S25leEFkYXB0ZXIgfSBmcm9tIFwiLi9rbmV4LWFkYXB0ZXJcIjtcblxuLy8g7Jm467aA66Gc64qUIHdyYXBwZXJz66eMIGV4cG9ydCAoYWRtaW4sIHR3b0ZhY3RvciDrk7Eg656Y7Y28IO2VqOyImOyZgCBTQ0hFTUEpXG5leHBvcnQgKiBmcm9tIFwiLi9wbHVnaW5zXCI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OzsyQkFLMkU7bUJBQ3hCIn0=
|
|
@@ -9,7 +9,7 @@ import { type BetterAuthEntityDef } from "./types";
|
|
|
9
9
|
* - role: 사용자 역할 (기본값: "user")
|
|
10
10
|
* - banned: 차단 여부
|
|
11
11
|
* - ban_reason: 차단 사유
|
|
12
|
-
* - ban_expires: 차단 만료 시간 (
|
|
12
|
+
* - ban_expires: 차단 만료 시간 (Date)
|
|
13
13
|
*
|
|
14
14
|
* Session 테이블:
|
|
15
15
|
* - impersonated_by: 대리 로그인한 관리자 ID
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* - role: 사용자 역할 (기본값: "user")
|
|
10
10
|
* - banned: 차단 여부
|
|
11
11
|
* - ban_reason: 차단 사유
|
|
12
|
-
* - ban_expires: 차단 만료 시간 (
|
|
12
|
+
* - ban_expires: 차단 만료 시간 (Date)
|
|
13
13
|
*
|
|
14
14
|
* Session 테이블:
|
|
15
15
|
* - impersonated_by: 대리 로그인한 관리자 ID
|
|
@@ -42,9 +42,9 @@ const adminEntityDef = {
|
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
44
|
name: "ban_expires",
|
|
45
|
-
type: "
|
|
45
|
+
type: "date",
|
|
46
46
|
nullable: true,
|
|
47
|
-
desc: "차단 만료
|
|
47
|
+
desc: "차단 만료"
|
|
48
48
|
}
|
|
49
49
|
],
|
|
50
50
|
Session: [{
|
|
@@ -58,4 +58,4 @@ const adminEntityDef = {
|
|
|
58
58
|
|
|
59
59
|
//#endregion
|
|
60
60
|
export { adminEntityDef };
|
|
61
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4uanMiLCJuYW1lcyI6WyJhZG1pbkVudGl0eURlZjogQmV0dGVyQXV0aEVudGl0eURlZiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdXRoL3BsdWdpbnMvZW50aXR5LWRlZmluaXRpb25zL2FkbWluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQmV0dGVyQXV0aEVudGl0eURlZiB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogYmV0dGVyLWF1dGggYWRtaW4g7ZSM65+
|
|
61
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4uanMiLCJuYW1lcyI6WyJhZG1pbkVudGl0eURlZjogQmV0dGVyQXV0aEVudGl0eURlZiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdXRoL3BsdWdpbnMvZW50aXR5LWRlZmluaXRpb25zL2FkbWluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQmV0dGVyQXV0aEVudGl0eURlZiB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogYmV0dGVyLWF1dGggYWRtaW4g7ZSM65+s6re47J24IOyXlO2LsO2LsCDsoJXsnZhcbiAqIGh0dHBzOi8vd3d3LmJldHRlci1hdXRoLmNvbS9kb2NzL3BsdWdpbnMvYWRtaW5cbiAqXG4gKiDqtIDrpqzsnpAg6riw64ql7J2EIOychO2VnCDtlYTrk5zrpbwg7LaU6rCA7ZWp64uI64ukOlxuICpcbiAqIFVzZXIg7YWM7J2067iUOlxuICogLSByb2xlOiDsgqzsmqnsnpAg7Jet7ZWgICjquLDrs7jqsJI6IFwidXNlclwiKVxuICogLSBiYW5uZWQ6IOywqOuLqCDsl6zrtoBcbiAqIC0gYmFuX3JlYXNvbjog7LCo64uoIOyCrOycoFxuICogLSBiYW5fZXhwaXJlczog7LCo64uoIOunjOujjCDsi5zqsIQgKERhdGUpXG4gKlxuICogU2Vzc2lvbiDthYzsnbTruJQ6XG4gKiAtIGltcGVyc29uYXRlZF9ieTog64yA66asIOuhnOq3uOyduO2VnCDqtIDrpqzsnpAgSURcbiAqL1xuZXhwb3J0IGNvbnN0IGFkbWluRW50aXR5RGVmOiBCZXR0ZXJBdXRoRW50aXR5RGVmID0ge1xuICBpZDogXCJhZG1pblwiLFxuICBuYW1lOiBcIkFkbWluXCIsXG4gIGVudGl0aWVzOiBbXSxcbiAgYWRkaXRpb25hbFByb3BzOiB7XG4gICAgVXNlcjogW1xuICAgICAge1xuICAgICAgICBuYW1lOiBcInJvbGVcIixcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgbnVsbGFibGU6IHRydWUsXG4gICAgICAgIGRiRGVmYXVsdDogJ1widXNlclwiJyxcbiAgICAgICAgZGVzYzogXCLsgqzsmqnsnpAg7Jet7ZWgXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcImJhbm5lZFwiLFxuICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgbnVsbGFibGU6IHRydWUsXG4gICAgICAgIGRiRGVmYXVsdDogXCJmYWxzZVwiLFxuICAgICAgICBkZXNjOiBcIuywqOuLqCDsl6zrtoBcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiYmFuX3JlYXNvblwiLFxuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICBudWxsYWJsZTogdHJ1ZSxcbiAgICAgICAgZGVzYzogXCLssKjri6gg7IKs7JygXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcImJhbl9leHBpcmVzXCIsXG4gICAgICAgIHR5cGU6IFwiZGF0ZVwiLFxuICAgICAgICBudWxsYWJsZTogdHJ1ZSxcbiAgICAgICAgZGVzYzogXCLssKjri6gg66eM66OMXCIsXG4gICAgICB9LFxuICAgIF0sXG4gICAgU2Vzc2lvbjogW1xuICAgICAge1xuICAgICAgICBuYW1lOiBcImltcGVyc29uYXRlZF9ieVwiLFxuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICBudWxsYWJsZTogdHJ1ZSxcbiAgICAgICAgZGVzYzogXCLrjIDrpqwg66Gc6re47J247ZWcIOq0gOumrOyekCBJRFwiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQWlCQSxNQUFhQSxpQkFBc0M7Q0FDakQsSUFBSTtDQUNKLE1BQU07Q0FDTixVQUFVLEVBQUU7Q0FDWixpQkFBaUI7RUFDZixNQUFNO0dBQ0o7SUFDRSxNQUFNO0lBQ04sTUFBTTtJQUNOLFVBQVU7SUFDVixXQUFXO0lBQ1gsTUFBTTtJQUNQO0dBQ0Q7SUFDRSxNQUFNO0lBQ04sTUFBTTtJQUNOLFVBQVU7SUFDVixXQUFXO0lBQ1gsTUFBTTtJQUNQO0dBQ0Q7SUFDRSxNQUFNO0lBQ04sTUFBTTtJQUNOLFVBQVU7SUFDVixNQUFNO0lBQ1A7R0FDRDtJQUNFLE1BQU07SUFDTixNQUFNO0lBQ04sVUFBVTtJQUNWLE1BQU07SUFDUDtHQUNGO0VBQ0QsU0FBUyxDQUNQO0dBQ0UsTUFBTTtHQUNOLE1BQU07R0FDTixVQUFVO0dBQ1YsTUFBTTtHQUNQLENBQ0Y7RUFDRjtDQUNGIn0=
|
|
@@ -2,8 +2,8 @@ import { type BetterAuthEntityDef } from "./types";
|
|
|
2
2
|
/**
|
|
3
3
|
* better-auth AuditLog 플러그인 엔티티 정의
|
|
4
4
|
*
|
|
5
|
-
* auth.
|
|
6
|
-
* - Better Auth
|
|
5
|
+
* auth.plugins에 sonamuAuditLog() 추가 시 audit_events 테이블이 사용됩니다.
|
|
6
|
+
* - sonamuAuditLog 플러그인이 Better Auth databaseHooks/organizationHooks/middleware에서 수신한 이벤트를 1건씩 적재합니다.
|
|
7
7
|
* - dedupe_key(sha256 hex)로 중복 적재를 방지합니다.
|
|
8
8
|
*
|
|
9
9
|
* 생성 방법: pnpm sonamu auth generate --plugins audit-log
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* better-auth AuditLog 플러그인 엔티티 정의
|
|
4
4
|
*
|
|
5
|
-
* auth.
|
|
6
|
-
* - Better Auth
|
|
5
|
+
* auth.plugins에 sonamuAuditLog() 추가 시 audit_events 테이블이 사용됩니다.
|
|
6
|
+
* - sonamuAuditLog 플러그인이 Better Auth databaseHooks/organizationHooks/middleware에서 수신한 이벤트를 1건씩 적재합니다.
|
|
7
7
|
* - dedupe_key(sha256 hex)로 중복 적재를 방지합니다.
|
|
8
8
|
*
|
|
9
9
|
* 생성 방법: pnpm sonamu auth generate --plugins audit-log
|
|
@@ -288,4 +288,4 @@ const auditLogEntityDef = {
|
|
|
288
288
|
|
|
289
289
|
//#endregion
|
|
290
290
|
export { auditLogEntityDef };
|
|
291
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLmpzIiwibmFtZXMiOlsiYXVkaXRMb2dFbnRpdHlEZWY6IEJldHRlckF1dGhFbnRpdHlEZWYiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXV0aC9wbHVnaW5zL2VudGl0eS1kZWZpbml0aW9ucy9hdWRpdC1sb2cudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBCZXR0ZXJBdXRoRW50aXR5RGVmIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBiZXR0ZXItYXV0aCBBdWRpdExvZyDtlIzrn6zqt7jsnbgg7JeU7Yuw7YuwIOygleydmFxuICpcbiAqIGF1dGguYXVkaXRMb2c6IHRydWUg66GcIO2ZnOyEse2ZlOuQmOupsCBhdWRpdF9ldmVudHMg7YWM7J2067iU7J2EIOyDneyEse2VqeuLiOuLpC5cbiAqIC0gQmV0dGVyIEF1dGggZGFzaCgpIO2UjOufrOq3uOyduOydtCDsoITshqHtlZjripQg7J2067Kk7Yq466W8IDHqsbTslKkg7KCB7J6s7ZWp64uI64ukLlxuICogLSBkZWR1cGVfa2V5KHNoYTI1NiBoZXgp66GcIOykkeuztSDsoIHsnqzrpbwg67Cp7KeA7ZWp64uI64ukLlxuICpcbiAqIOyDneyEsSDrsKnrspU6IHBucG0gc29uYW11IGF1dGggZ2VuZXJhdGUgLS1wbHVnaW5zIGF1ZGl0LWxvZ1xuICovXG5leHBvcnQgY29uc3QgYXVkaXRMb2dFbnRpdHlEZWY6IEJldHRlckF1dGhFbnRpdHlEZWYgPSB7XG4gIGlkOiBcImF1ZGl0LWxvZ1wiLFxuICBuYW1lOiBcIkF1ZGl0TG9nXCIsXG4gIGVudGl0aWVzOiBbXG4gICAge1xuICAgICAgaWQ6IFwiQXVkaXRFdmVudFwiLFxuICAgICAgdGFibGU6IFwiYXVkaXRfZXZlbnRzXCIsXG4gICAgICB0aXRsZTogXCLqsJDsgqzsnbTrsqTtirhcIixcbiAgICAgIHByb3BzOiBbXG4gICAgICAgIHsgbmFtZTogXCJpZFwiLCB0eXBlOiBcImludGVnZXJcIiwgZGVzYzogXCJJRFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJzb3VyY2VcIiwgdHlwZTogXCJzdHJpbmdcIiwgbGVuZ3RoOiAzMiwgZGVzYzogXCLsnbTrsqTtirgg7IaM7IqkXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInNvdXJjZV92ZXJzaW9uXCIsIHR5cGU6IFwic3RyaW5nXCIsIGxlbmd0aDogOTYsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIuyGjOyKpCDrsoTsoIRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiY2F0ZWdvcnlcIiwgdHlwZTogXCJlbnVtXCIsIGlkOiBcIkF1ZGl0RXZlbnRDYXRlZ29yeVwiLCBkZXNjOiBcIuy5tO2FjOqzoOumrFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJldmVudF90eXBlXCIsIHR5cGU6IFwic3RyaW5nXCIsIGxlbmd0aDogNjQsIGRlc2M6IFwi7J2067Kk7Yq4IO2DgOyehVwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJldmVudF9rZXlcIiwgdHlwZTogXCJzdHJpbmdcIiwgbGVuZ3RoOiAxOTEsIGRlc2M6IFwi7J2067Kk7Yq4IO2CpFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJkZWR1cGVfa2V5XCIsIHR5cGU6IFwic3RyaW5nXCIsIGxlbmd0aDogNjQsIGRlc2M6IFwi7KSR67O1IOygnOqxsCDtgqRcIiB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJhY3Rvcl91c2VyX2lkXCIsXG4gICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICBsZW5ndGg6IDE5MSxcbiAgICAgICAgICBudWxsYWJsZTogdHJ1ZSxcbiAgICAgICAgICBkZXNjOiBcIuyVoe2EsCDsgqzsmqnsnpAgSURcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwic3ViamVjdF91c2VyX2lkXCIsXG4gICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICBsZW5ndGg6IDE5MSxcbiAgICAgICAgICBudWxsYWJsZTogdHJ1ZSxcbiAgICAgICAgICBkZXNjOiBcIuuMgOyDgSDsgqzsmqnsnpAgSURcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwib3JnYW5pemF0aW9uX2lkXCIsXG4gICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICBsZW5ndGg6IDE5MSxcbiAgICAgICAgICBudWxsYWJsZTogdHJ1ZSxcbiAgICAgICAgICBkZXNjOiBcIuyhsOyngSBJRFwiLFxuICAgICAgICB9LFxuICAgICAgICB7IG5hbWU6IFwidGVhbV9pZFwiLCB0eXBlOiBcInN0cmluZ1wiLCBsZW5ndGg6IDE5MSwgbnVsbGFibGU6IHRydWUsIGRlc2M6IFwi7YyAIElEXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInNlc3Npb25faWRcIiwgdHlwZTogXCJzdHJpbmdcIiwgbGVuZ3RoOiAxOTEsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIuyEuOyFmCBJRFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJwcm92aWRlcl9pZFwiLCB0eXBlOiBcInN0cmluZ1wiLCBsZW5ndGg6IDY0LCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCLtlITroZzrsJTsnbTrjZQgSURcIiB9LFxuICAgICAgICB7IG5hbWU6IFwibG9naW5fbWV0aG9kXCIsIHR5cGU6IFwic3RyaW5nXCIsIGxlbmd0aDogNjQsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIuuhnOq3uOyduCDrsKnsi51cIiB9LFxuICAgICAgICB7IG5hbWU6IFwiaWRlbnRpZmllclwiLCB0eXBlOiBcInN0cmluZ1wiLCBsZW5ndGg6IDI1NSwgbnVsbGFibGU6IHRydWUsIGRlc2M6IFwi7Iud67OE7J6QXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInZpc2l0b3JfaWRcIiwgdHlwZTogXCJzdHJpbmdcIiwgbGVuZ3RoOiAxOTEsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIuuwqeusuOyekCBJRFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJyZWFzb25cIiwgdHlwZTogXCJzdHJpbmdcIiwgbGVuZ3RoOiAxMjgsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIuyCrOycoFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJhY3Rpb25cIiwgdHlwZTogXCJzdHJpbmdcIiwgbGVuZ3RoOiA2NCwgbnVsbGFibGU6IHRydWUsIGRlc2M6IFwi7JWh7IWYXCIgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwidHJpZ2dlcl9jb250ZXh0XCIsXG4gICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICBsZW5ndGg6IDY0LFxuICAgICAgICAgIG51bGxhYmxlOiB0cnVlLFxuICAgICAgICAgIGRlc2M6IFwi7Yq466as6rGwIOy7qO2FjeyKpO2KuFwiLFxuICAgICAgICB9LFxuICAgICAgICB7IG5hbWU6IFwiaXBfYWRkcmVzc1wiLCB0eXBlOiBcInN0cmluZ1wiLCBsZW5ndGg6IDQ1LCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCJJUCDso7zshoxcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiY291bnRyeV9jb2RlXCIsIHR5cGU6IFwic3RyaW5nXCIsIGxlbmd0aDogOCwgbnVsbGFibGU6IHRydWUsIGRlc2M6IFwi6rWt6rCAIOy9lOuTnFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJjb3VudHJ5XCIsIHR5cGU6IFwic3RyaW5nXCIsIGxlbmd0aDogMTAwLCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCLqta3qsIBcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiY2l0eVwiLCB0eXBlOiBcInN0cmluZ1wiLCBsZW5ndGg6IDEwMCwgbnVsbGFibGU6IHRydWUsIGRlc2M6IFwi64+E7IucXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcInVzZXJfYWdlbnRcIiwgdHlwZTogXCJzdHJpbmdcIiwgbnVsbGFibGU6IHRydWUsIGRlc2M6IFwiVXNlci1BZ2VudFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJwYXlsb2FkX2pzb25cIiwgdHlwZTogXCJqc29uXCIsIGlkOiBcIkF1ZGl0RXZlbnRQYXlsb2FkXCIsIGRlc2M6IFwi7JuQ67O4IHBheWxvYWRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwib2NjdXJyZWRfYXRcIiwgdHlwZTogXCJkYXRlXCIsIGRlc2M6IFwi67Cc7IOdIOyLnOqwgVwiIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcImluZ2VzdGVkX2F0XCIsXG4gICAgICAgICAgdHlwZTogXCJkYXRlXCIsXG4gICAgICAgICAgZGJEZWZhdWx0OiBcIkNVUlJFTlRfVElNRVNUQU1QXCIsXG4gICAgICAgICAgZGVzYzogXCLsoIHsnqwg7Iuc6rCBXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgaW5kZXhlczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogXCJ1bmlxdWVcIixcbiAgICAgICAgICBuYW1lOiBcImF1ZGl0X2V2ZW50c19kZWR1cGVfa2V5X3VuaXF1ZVwiLFxuICAgICAgICAgIGNvbHVtbnM6IFt7IG5hbWU6IFwiZGVkdXBlX2tleVwiIH1dLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogXCJpbmRleFwiLFxuICAgICAgICAgIG5hbWU6IFwiYXVkaXRfZXZlbnRzX29jY3VycmVkX2F0X2luZGV4XCIsXG4gICAgICAgICAgY29sdW1uczogW3sgbmFtZTogXCJvY2N1cnJlZF9hdFwiIH1dLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogXCJpbmRleFwiLFxuICAgICAgICAgIG5hbWU6IFwiYXVkaXRfZXZlbnRzX2V2ZW50X3R5cGVfb2NjdXJyZWRfYXRfaW5kZXhcIixcbiAgICAgICAgICBjb2x1bW5zOiBbeyBuYW1lOiBcImV2ZW50X3R5cGVcIiB9LCB7IG5hbWU6IFwib2NjdXJyZWRfYXRcIiB9XSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwiaW5kZXhcIixcbiAgICAgICAgICBuYW1lOiBcImF1ZGl0X2V2ZW50c19zdWJqZWN0X3VzZXJfaWRfb2NjdXJyZWRfYXRfaW5kZXhcIixcbiAgICAgICAgICBjb2x1bW5zOiBbeyBuYW1lOiBcInN1YmplY3RfdXNlcl9pZFwiIH0sIHsgbmFtZTogXCJvY2N1cnJlZF9hdFwiIH1dLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogXCJpbmRleFwiLFxuICAgICAgICAgIG5hbWU6IFwiYXVkaXRfZXZlbnRzX2FjdG9yX3VzZXJfaWRfb2NjdXJyZWRfYXRfaW5kZXhcIixcbiAgICAgICAgICBjb2x1bW5zOiBbeyBuYW1lOiBcImFjdG9yX3VzZXJfaWRcIiB9LCB7IG5hbWU6IFwib2NjdXJyZWRfYXRcIiB9XSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwiaW5kZXhcIixcbiAgICAgICAgICBuYW1lOiBcImF1ZGl0X2V2ZW50c19vcmdhbml6YXRpb25faWRfb2NjdXJyZWRfYXRfaW5kZXhcIixcbiAgICAgICAgICBjb2x1bW5zOiBbeyBuYW1lOiBcIm9yZ2FuaXphdGlvbl9pZFwiIH0sIHsgbmFtZTogXCJvY2N1cnJlZF9hdFwiIH1dLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogXCJpbmRleFwiLFxuICAgICAgICAgIG5hbWU6IFwiYXVkaXRfZXZlbnRzX3RlYW1faWRfb2NjdXJyZWRfYXRfaW5kZXhcIixcbiAgICAgICAgICBjb2x1bW5zOiBbeyBuYW1lOiBcInRlYW1faWRcIiB9LCB7IG5hbWU6IFwib2NjdXJyZWRfYXRcIiB9XSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwiaW5kZXhcIixcbiAgICAgICAgICBuYW1lOiBcImF1ZGl0X2V2ZW50c19zZXNzaW9uX2lkX2luZGV4XCIsXG4gICAgICAgICAgY29sdW1uczogW3sgbmFtZTogXCJzZXNzaW9uX2lkXCIgfV0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiBcImluZGV4XCIsXG4gICAgICAgICAgbmFtZTogXCJhdWRpdF9ldmVudHNfcmVhc29uX29jY3VycmVkX2F0X2luZGV4XCIsXG4gICAgICAgICAgY29sdW1uczogW3sgbmFtZTogXCJyZWFzb25cIiB9LCB7IG5hbWU6IFwib2NjdXJyZWRfYXRcIiB9XSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBzdWJzZXRzOiB7XG4gICAgICAgIEE6IFtcbiAgICAgICAgICBcImlkXCIsXG4gICAgICAgICAgXCJzb3VyY2VcIixcbiAgICAgICAgICBcInNvdXJjZV92ZXJzaW9uXCIsXG4gICAgICAgICAgXCJjYXRlZ29yeVwiLFxuICAgICAgICAgIFwiZXZlbnRfdHlwZVwiLFxuICAgICAgICAgIFwiZXZlbnRfa2V5XCIsXG4gICAgICAgICAgXCJkZWR1cGVfa2V5XCIsXG4gICAgICAgICAgXCJhY3Rvcl91c2VyX2lkXCIsXG4gICAgICAgICAgXCJzdWJqZWN0X3VzZXJfaWRcIixcbiAgICAgICAgICBcIm9yZ2FuaXphdGlvbl9pZFwiLFxuICAgICAgICAgIFwidGVhbV9pZFwiLFxuICAgICAgICAgIFwic2Vzc2lvbl9pZFwiLFxuICAgICAgICAgIFwicHJvdmlkZXJfaWRcIixcbiAgICAgICAgICBcImxvZ2luX21ldGhvZFwiLFxuICAgICAgICAgIFwiaWRlbnRpZmllclwiLFxuICAgICAgICAgIFwidmlzaXRvcl9pZFwiLFxuICAgICAgICAgIFwicmVhc29uXCIsXG4gICAgICAgICAgXCJhY3Rpb25cIixcbiAgICAgICAgICBcInRyaWdnZXJfY29udGV4dFwiLFxuICAgICAgICAgIFwiaXBfYWRkcmVzc1wiLFxuICAgICAgICAgIFwiY291bnRyeV9jb2RlXCIsXG4gICAgICAgICAgXCJjb3VudHJ5XCIsXG4gICAgICAgICAgXCJjaXR5XCIsXG4gICAgICAgICAgXCJ1c2VyX2FnZW50XCIsXG4gICAgICAgICAgXCJwYXlsb2FkX2pzb25cIixcbiAgICAgICAgICBcIm9jY3VycmVkX2F0XCIsXG4gICAgICAgICAgXCJpbmdlc3RlZF9hdFwiLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIGVudW1zOiB7XG4gICAgICAgIEF1ZGl0RXZlbnRPcmRlckJ5OiB7IFwiaWQtZGVzY1wiOiBcIklE7LWc7Iug7IicXCIgfSxcbiAgICAgICAgQXVkaXRFdmVudFNlYXJjaEZpZWxkOiB7IGlkOiBcIklEXCIgfSxcbiAgICAgICAgQXVkaXRFdmVudENhdGVnb3J5OiB7XG4gICAgICAgICAgdXNlcjogXCLsgqzsmqnsnpBcIixcbiAgICAgICAgICBzZXNzaW9uOiBcIuyEuOyFmFwiLFxuICAgICAgICAgIGFjY291bnQ6IFwi6rOE7KCVXCIsXG4gICAgICAgICAgdmVyaWZpY2F0aW9uOiBcIuyduOymnVwiLFxuICAgICAgICAgIG9yZ2FuaXphdGlvbjogXCLsobDsp4FcIixcbiAgICAgICAgICBzZWN1cml0eTogXCLrs7TslYhcIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbiAgYWRkaXRpb25hbFByb3BzOiB7fSxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFXQSxNQUFhQSxvQkFBeUM7Q0FDcEQsSUFBSTtDQUNKLE1BQU07Q0FDTixVQUFVLENBQ1I7RUFDRSxJQUFJO0VBQ0osT0FBTztFQUNQLE9BQU87RUFDUCxPQUFPO0dBQ0w7SUFBRSxNQUFNO0lBQU0sTUFBTTtJQUFXLE1BQU07SUFBTTtHQUMzQztJQUFFLE1BQU07SUFBVSxNQUFNO0lBQVUsUUFBUTtJQUFJLE1BQU07SUFBVTtHQUM5RDtJQUFFLE1BQU07SUFBa0IsTUFBTTtJQUFVLFFBQVE7SUFBSSxVQUFVO0lBQU0sTUFBTTtJQUFTO0dBQ3JGO0lBQUUsTUFBTTtJQUFZLE1BQU07SUFBUSxJQUFJO0lBQXNCLE1BQU07SUFBUTtHQUMxRTtJQUFFLE1BQU07SUFBYyxNQUFNO0lBQVUsUUFBUTtJQUFJLE1BQU07SUFBVTtHQUNsRTtJQUFFLE1BQU07SUFBYSxNQUFNO0lBQVUsUUFBUTtJQUFLLE1BQU07SUFBUztHQUNqRTtJQUFFLE1BQU07SUFBYyxNQUFNO0lBQVUsUUFBUTtJQUFJLE1BQU07SUFB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
|
|
291
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLmpzIiwibmFtZXMiOlsiYXVkaXRMb2dFbnRpdHlEZWY6IEJldHRlckF1dGhFbnRpdHlEZWYiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXV0aC9wbHVnaW5zL2VudGl0eS1kZWZpbml0aW9ucy9hdWRpdC1sb2cudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBCZXR0ZXJBdXRoRW50aXR5RGVmIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBiZXR0ZXItYXV0aCBBdWRpdExvZyDtlIzrn6zqt7jsnbgg7JeU7Yuw7YuwIOygleydmFxuICpcbiAqIGF1dGgucGx1Z2luc+yXkCBzb25hbXVBdWRpdExvZygpIOy2lOqwgCDsi5wgYXVkaXRfZXZlbnRzIO2FjOydtOu4lOydtCDsgqzsmqnrkKnri4jri6QuXG4gKiAtIHNvbmFtdUF1ZGl0TG9nIO2UjOufrOq3uOyduOydtCBCZXR0ZXIgQXV0aCBkYXRhYmFzZUhvb2tzL29yZ2FuaXphdGlvbkhvb2tzL21pZGRsZXdhcmXsl5DshJwg7IiY7Iug7ZWcIOydtOuypO2KuOulvCAx6rG07JSpIOyggeyerO2VqeuLiOuLpC5cbiAqIC0gZGVkdXBlX2tleShzaGEyNTYgaGV4KeuhnCDspJHrs7Ug7KCB7J6s66W8IOuwqeyngO2VqeuLiOuLpC5cbiAqXG4gKiDsg53shLEg67Cp67KVOiBwbnBtIHNvbmFtdSBhdXRoIGdlbmVyYXRlIC0tcGx1Z2lucyBhdWRpdC1sb2dcbiAqL1xuZXhwb3J0IGNvbnN0IGF1ZGl0TG9nRW50aXR5RGVmOiBCZXR0ZXJBdXRoRW50aXR5RGVmID0ge1xuICBpZDogXCJhdWRpdC1sb2dcIixcbiAgbmFtZTogXCJBdWRpdExvZ1wiLFxuICBlbnRpdGllczogW1xuICAgIHtcbiAgICAgIGlkOiBcIkF1ZGl0RXZlbnRcIixcbiAgICAgIHRhYmxlOiBcImF1ZGl0X2V2ZW50c1wiLFxuICAgICAgdGl0bGU6IFwi6rCQ7IKs7J2067Kk7Yq4XCIsXG4gICAgICBwcm9wczogW1xuICAgICAgICB7IG5hbWU6IFwiaWRcIiwgdHlwZTogXCJpbnRlZ2VyXCIsIGRlc2M6IFwiSURcIiB9LFxuICAgICAgICB7IG5hbWU6IFwic291cmNlXCIsIHR5cGU6IFwic3RyaW5nXCIsIGxlbmd0aDogMzIsIGRlc2M6IFwi7J2067Kk7Yq4IOyGjOyKpFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJzb3VyY2VfdmVyc2lvblwiLCB0eXBlOiBcInN0cmluZ1wiLCBsZW5ndGg6IDk2LCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCLshozsiqQg67KE7KCEXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImNhdGVnb3J5XCIsIHR5cGU6IFwiZW51bVwiLCBpZDogXCJBdWRpdEV2ZW50Q2F0ZWdvcnlcIiwgZGVzYzogXCLsubTthYzqs6DrpqxcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiZXZlbnRfdHlwZVwiLCB0eXBlOiBcInN0cmluZ1wiLCBsZW5ndGg6IDY0LCBkZXNjOiBcIuydtOuypO2KuCDtg4DsnoVcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiZXZlbnRfa2V5XCIsIHR5cGU6IFwic3RyaW5nXCIsIGxlbmd0aDogMTkxLCBkZXNjOiBcIuydtOuypO2KuCDtgqRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiZGVkdXBlX2tleVwiLCB0eXBlOiBcInN0cmluZ1wiLCBsZW5ndGg6IDY0LCBkZXNjOiBcIuykkeuztSDsoJzqsbAg7YKkXCIgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiYWN0b3JfdXNlcl9pZFwiLFxuICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgbGVuZ3RoOiAxOTEsXG4gICAgICAgICAgbnVsbGFibGU6IHRydWUsXG4gICAgICAgICAgZGVzYzogXCLslaHthLAg7IKs7Jqp7J6QIElEXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcInN1YmplY3RfdXNlcl9pZFwiLFxuICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgbGVuZ3RoOiAxOTEsXG4gICAgICAgICAgbnVsbGFibGU6IHRydWUsXG4gICAgICAgICAgZGVzYzogXCLrjIDsg4Eg7IKs7Jqp7J6QIElEXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcIm9yZ2FuaXphdGlvbl9pZFwiLFxuICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgbGVuZ3RoOiAxOTEsXG4gICAgICAgICAgbnVsbGFibGU6IHRydWUsXG4gICAgICAgICAgZGVzYzogXCLsobDsp4EgSURcIixcbiAgICAgICAgfSxcbiAgICAgICAgeyBuYW1lOiBcInRlYW1faWRcIiwgdHlwZTogXCJzdHJpbmdcIiwgbGVuZ3RoOiAxOTEsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIu2MgCBJRFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJzZXNzaW9uX2lkXCIsIHR5cGU6IFwic3RyaW5nXCIsIGxlbmd0aDogMTkxLCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCLshLjshZggSURcIiB9LFxuICAgICAgICB7IG5hbWU6IFwicHJvdmlkZXJfaWRcIiwgdHlwZTogXCJzdHJpbmdcIiwgbGVuZ3RoOiA2NCwgbnVsbGFibGU6IHRydWUsIGRlc2M6IFwi7ZSE66Gc67CU7J20642UIElEXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImxvZ2luX21ldGhvZFwiLCB0eXBlOiBcInN0cmluZ1wiLCBsZW5ndGg6IDY0LCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCLroZzqt7jsnbgg67Cp7IudXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImlkZW50aWZpZXJcIiwgdHlwZTogXCJzdHJpbmdcIiwgbGVuZ3RoOiAyNTUsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIuyLneuzhOyekFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJ2aXNpdG9yX2lkXCIsIHR5cGU6IFwic3RyaW5nXCIsIGxlbmd0aDogMTkxLCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCLrsKnrrLjsnpAgSURcIiB9LFxuICAgICAgICB7IG5hbWU6IFwicmVhc29uXCIsIHR5cGU6IFwic3RyaW5nXCIsIGxlbmd0aDogMTI4LCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCLsgqzsnKBcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiYWN0aW9uXCIsIHR5cGU6IFwic3RyaW5nXCIsIGxlbmd0aDogNjQsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIuyVoeyFmFwiIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcInRyaWdnZXJfY29udGV4dFwiLFxuICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgbGVuZ3RoOiA2NCxcbiAgICAgICAgICBudWxsYWJsZTogdHJ1ZSxcbiAgICAgICAgICBkZXNjOiBcIu2KuOumrOqxsCDsu6jthY3siqTtirhcIixcbiAgICAgICAgfSxcbiAgICAgICAgeyBuYW1lOiBcImlwX2FkZHJlc3NcIiwgdHlwZTogXCJzdHJpbmdcIiwgbGVuZ3RoOiA0NSwgbnVsbGFibGU6IHRydWUsIGRlc2M6IFwiSVAg7KO87IaMXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImNvdW50cnlfY29kZVwiLCB0eXBlOiBcInN0cmluZ1wiLCBsZW5ndGg6IDgsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIuq1reqwgCDsvZTrk5xcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiY291bnRyeVwiLCB0eXBlOiBcInN0cmluZ1wiLCBsZW5ndGg6IDEwMCwgbnVsbGFibGU6IHRydWUsIGRlc2M6IFwi6rWt6rCAXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcImNpdHlcIiwgdHlwZTogXCJzdHJpbmdcIiwgbGVuZ3RoOiAxMDAsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIuuPhOyLnFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJ1c2VyX2FnZW50XCIsIHR5cGU6IFwic3RyaW5nXCIsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIlVzZXItQWdlbnRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwicGF5bG9hZF9qc29uXCIsIHR5cGU6IFwianNvblwiLCBpZDogXCJBdWRpdEV2ZW50UGF5bG9hZFwiLCBkZXNjOiBcIuybkOuzuCBwYXlsb2FkXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcIm9jY3VycmVkX2F0XCIsIHR5cGU6IFwiZGF0ZVwiLCBkZXNjOiBcIuuwnOyDnSDsi5zqsIFcIiB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJpbmdlc3RlZF9hdFwiLFxuICAgICAgICAgIHR5cGU6IFwiZGF0ZVwiLFxuICAgICAgICAgIGRiRGVmYXVsdDogXCJDVVJSRU5UX1RJTUVTVEFNUFwiLFxuICAgICAgICAgIGRlc2M6IFwi7KCB7J6sIOyLnOqwgVwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGluZGV4ZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwidW5pcXVlXCIsXG4gICAgICAgICAgbmFtZTogXCJhdWRpdF9ldmVudHNfZGVkdXBlX2tleV91bmlxdWVcIixcbiAgICAgICAgICBjb2x1bW5zOiBbeyBuYW1lOiBcImRlZHVwZV9rZXlcIiB9XSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwiaW5kZXhcIixcbiAgICAgICAgICBuYW1lOiBcImF1ZGl0X2V2ZW50c19vY2N1cnJlZF9hdF9pbmRleFwiLFxuICAgICAgICAgIGNvbHVtbnM6IFt7IG5hbWU6IFwib2NjdXJyZWRfYXRcIiB9XSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwiaW5kZXhcIixcbiAgICAgICAgICBuYW1lOiBcImF1ZGl0X2V2ZW50c19ldmVudF90eXBlX29jY3VycmVkX2F0X2luZGV4XCIsXG4gICAgICAgICAgY29sdW1uczogW3sgbmFtZTogXCJldmVudF90eXBlXCIgfSwgeyBuYW1lOiBcIm9jY3VycmVkX2F0XCIgfV0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiBcImluZGV4XCIsXG4gICAgICAgICAgbmFtZTogXCJhdWRpdF9ldmVudHNfc3ViamVjdF91c2VyX2lkX29jY3VycmVkX2F0X2luZGV4XCIsXG4gICAgICAgICAgY29sdW1uczogW3sgbmFtZTogXCJzdWJqZWN0X3VzZXJfaWRcIiB9LCB7IG5hbWU6IFwib2NjdXJyZWRfYXRcIiB9XSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwiaW5kZXhcIixcbiAgICAgICAgICBuYW1lOiBcImF1ZGl0X2V2ZW50c19hY3Rvcl91c2VyX2lkX29jY3VycmVkX2F0X2luZGV4XCIsXG4gICAgICAgICAgY29sdW1uczogW3sgbmFtZTogXCJhY3Rvcl91c2VyX2lkXCIgfSwgeyBuYW1lOiBcIm9jY3VycmVkX2F0XCIgfV0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiBcImluZGV4XCIsXG4gICAgICAgICAgbmFtZTogXCJhdWRpdF9ldmVudHNfb3JnYW5pemF0aW9uX2lkX29jY3VycmVkX2F0X2luZGV4XCIsXG4gICAgICAgICAgY29sdW1uczogW3sgbmFtZTogXCJvcmdhbml6YXRpb25faWRcIiB9LCB7IG5hbWU6IFwib2NjdXJyZWRfYXRcIiB9XSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwiaW5kZXhcIixcbiAgICAgICAgICBuYW1lOiBcImF1ZGl0X2V2ZW50c190ZWFtX2lkX29jY3VycmVkX2F0X2luZGV4XCIsXG4gICAgICAgICAgY29sdW1uczogW3sgbmFtZTogXCJ0ZWFtX2lkXCIgfSwgeyBuYW1lOiBcIm9jY3VycmVkX2F0XCIgfV0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiBcImluZGV4XCIsXG4gICAgICAgICAgbmFtZTogXCJhdWRpdF9ldmVudHNfc2Vzc2lvbl9pZF9pbmRleFwiLFxuICAgICAgICAgIGNvbHVtbnM6IFt7IG5hbWU6IFwic2Vzc2lvbl9pZFwiIH1dLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogXCJpbmRleFwiLFxuICAgICAgICAgIG5hbWU6IFwiYXVkaXRfZXZlbnRzX3JlYXNvbl9vY2N1cnJlZF9hdF9pbmRleFwiLFxuICAgICAgICAgIGNvbHVtbnM6IFt7IG5hbWU6IFwicmVhc29uXCIgfSwgeyBuYW1lOiBcIm9jY3VycmVkX2F0XCIgfV0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgc3Vic2V0czoge1xuICAgICAgICBBOiBbXG4gICAgICAgICAgXCJpZFwiLFxuICAgICAgICAgIFwic291cmNlXCIsXG4gICAgICAgICAgXCJzb3VyY2VfdmVyc2lvblwiLFxuICAgICAgICAgIFwiY2F0ZWdvcnlcIixcbiAgICAgICAgICBcImV2ZW50X3R5cGVcIixcbiAgICAgICAgICBcImV2ZW50X2tleVwiLFxuICAgICAgICAgIFwiZGVkdXBlX2tleVwiLFxuICAgICAgICAgIFwiYWN0b3JfdXNlcl9pZFwiLFxuICAgICAgICAgIFwic3ViamVjdF91c2VyX2lkXCIsXG4gICAgICAgICAgXCJvcmdhbml6YXRpb25faWRcIixcbiAgICAgICAgICBcInRlYW1faWRcIixcbiAgICAgICAgICBcInNlc3Npb25faWRcIixcbiAgICAgICAgICBcInByb3ZpZGVyX2lkXCIsXG4gICAgICAgICAgXCJsb2dpbl9tZXRob2RcIixcbiAgICAgICAgICBcImlkZW50aWZpZXJcIixcbiAgICAgICAgICBcInZpc2l0b3JfaWRcIixcbiAgICAgICAgICBcInJlYXNvblwiLFxuICAgICAgICAgIFwiYWN0aW9uXCIsXG4gICAgICAgICAgXCJ0cmlnZ2VyX2NvbnRleHRcIixcbiAgICAgICAgICBcImlwX2FkZHJlc3NcIixcbiAgICAgICAgICBcImNvdW50cnlfY29kZVwiLFxuICAgICAgICAgIFwiY291bnRyeVwiLFxuICAgICAgICAgIFwiY2l0eVwiLFxuICAgICAgICAgIFwidXNlcl9hZ2VudFwiLFxuICAgICAgICAgIFwicGF5bG9hZF9qc29uXCIsXG4gICAgICAgICAgXCJvY2N1cnJlZF9hdFwiLFxuICAgICAgICAgIFwiaW5nZXN0ZWRfYXRcIixcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBlbnVtczoge1xuICAgICAgICBBdWRpdEV2ZW50T3JkZXJCeTogeyBcImlkLWRlc2NcIjogXCJJROy1nOyLoOyInFwiIH0sXG4gICAgICAgIEF1ZGl0RXZlbnRTZWFyY2hGaWVsZDogeyBpZDogXCJJRFwiIH0sXG4gICAgICAgIEF1ZGl0RXZlbnRDYXRlZ29yeToge1xuICAgICAgICAgIHVzZXI6IFwi7IKs7Jqp7J6QXCIsXG4gICAgICAgICAgc2Vzc2lvbjogXCLshLjshZhcIixcbiAgICAgICAgICBhY2NvdW50OiBcIuqzhOyglVwiLFxuICAgICAgICAgIHZlcmlmaWNhdGlvbjogXCLsnbjspp1cIixcbiAgICAgICAgICBvcmdhbml6YXRpb246IFwi7KGw7KeBXCIsXG4gICAgICAgICAgc2VjdXJpdHk6IFwi67O07JWIXCIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIF0sXG4gIGFkZGl0aW9uYWxQcm9wczoge30sXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBV0EsTUFBYUEsb0JBQXlDO0NBQ3BELElBQUk7Q0FDSixNQUFNO0NBQ04sVUFBVSxDQUNSO0VBQ0UsSUFBSTtFQUNKLE9BQU87RUFDUCxPQUFPO0VBQ1AsT0FBTztHQUNMO0lBQUUsTUFBTTtJQUFNLE1BQU07SUFBVyxNQUFNO0lBQU07R0FDM0M7SUFBRSxNQUFNO0lBQVUsTUFBTTtJQUFVLFFBQVE7SUFBSSxNQUFNO0lBQVU7R0FDOUQ7SUFBRSxNQUFNO0lBQWtCLE1BQU07SUFBVSxRQUFRO0lBQUksVUFBVTtJQUFNLE1BQU07SUFBUztHQUNyRjtJQUFFLE1BQU07SUFBWSxNQUFNO0lBQVEsSUFBSTtJQUFzQixNQUFNO0lBQVE7R0FDMUU7SUFBRSxNQUFNO0lBQWMsTUFBTTtJQUFVLFFBQVE7SUFBSSxNQUFNO0lBQVU7R0FDbEU7SUFBRSxNQUFNO0lBQWEsTUFBTTtJQUFVLFFBQVE7SUFBSyxN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
|
|
@@ -826,8 +826,8 @@ export declare const admin: (options?: AdminOptions) => {
|
|
|
826
826
|
$Infer: {
|
|
827
827
|
body: {
|
|
828
828
|
permissions: {
|
|
829
|
-
readonly user?: ("update" | "delete" | "create" | "get" | "
|
|
830
|
-
readonly session?: ("delete" | "
|
|
829
|
+
readonly user?: ("update" | "delete" | "create" | "get" | "list" | "set-role" | "ban" | "impersonate" | "impersonate-admins" | "set-password")[] | undefined;
|
|
830
|
+
readonly session?: ("delete" | "list" | "revoke")[] | undefined;
|
|
831
831
|
};
|
|
832
832
|
} & {
|
|
833
833
|
userId?: string | undefined;
|
|
@@ -316,7 +316,7 @@ export declare const sso: (options?: SSOOptions) => {
|
|
|
316
316
|
providerId: string;
|
|
317
317
|
organizationId?: string | undefined;
|
|
318
318
|
domain: string;
|
|
319
|
-
}, "
|
|
319
|
+
}, "oidcConfig" | "samlConfig">>;
|
|
320
320
|
signInSSO: ReturnType<(options?: SSOOptions) => import("better-auth").StrictEndpoint<"/sign-in/sso", {
|
|
321
321
|
method: "POST";
|
|
322
322
|
body: import("zod").ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../../src/bin/fixture.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGrE,UAAU,qBAAqB;IAC7B,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;
|
|
1
|
+
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../../src/bin/fixture.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGrE,UAAU,qBAAqB;IAC7B,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAmBD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,iBAuTrE;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,iBAgEvE;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,iBAgDzE"}
|
package/dist/bin/fixture.js
CHANGED
|
@@ -15,6 +15,19 @@ init_entity_manager();
|
|
|
15
15
|
init_data_explorer();
|
|
16
16
|
init_fixture_generator();
|
|
17
17
|
/**
|
|
18
|
+
* username을 일반적인 규칙(영문자 시작, 영문자/숫자만, 1-20자)에 맞도록 정규화합니다.
|
|
19
|
+
*/
|
|
20
|
+
function sanitizeUsername(raw) {
|
|
21
|
+
let username = raw.toLowerCase().replace(/[^a-z0-9]/g, "");
|
|
22
|
+
if (username.length === 0) {
|
|
23
|
+
username = "user";
|
|
24
|
+
}
|
|
25
|
+
if (/^[0-9]/.test(username)) {
|
|
26
|
+
username = `u${username}`;
|
|
27
|
+
}
|
|
28
|
+
return username.slice(0, 20);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
18
31
|
* fixture gen 명령어 - cone 메타데이터를 활용하여 자동으로 fixture를 생성합니다.
|
|
19
32
|
*/
|
|
20
33
|
async function fixtureGenCommand(options) {
|
|
@@ -63,6 +76,103 @@ async function fixtureGenCommand(options) {
|
|
|
63
76
|
}
|
|
64
77
|
count = result.count;
|
|
65
78
|
}
|
|
79
|
+
const hasUser = entityNames.includes("User");
|
|
80
|
+
if (hasUser) {
|
|
81
|
+
const userModeResult = await prompts({
|
|
82
|
+
type: "select",
|
|
83
|
+
name: "userMode",
|
|
84
|
+
message: "User 엔티티가 포함되어 있습니다. 생성 방식을 선택하세요:",
|
|
85
|
+
choices: [{
|
|
86
|
+
title: "1. 로그인 가능한 사용자 fixture 생성",
|
|
87
|
+
value: "login"
|
|
88
|
+
}, {
|
|
89
|
+
title: "2. 확인용 데이터(로그인 불가) 생성",
|
|
90
|
+
value: "dummy"
|
|
91
|
+
}]
|
|
92
|
+
});
|
|
93
|
+
if (!userModeResult.userMode) {
|
|
94
|
+
console.log(chalk.yellow("취소되었습니다."));
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (userModeResult.userMode === "login") {
|
|
98
|
+
let useLLM$1 = options["use-llm"] ?? false;
|
|
99
|
+
if (!options["use-llm"]) {
|
|
100
|
+
const llmResult = await prompts({
|
|
101
|
+
type: "confirm",
|
|
102
|
+
name: "useLLM",
|
|
103
|
+
message: "LLM으로 더 현실적인 데이터를 생성할까요? (fixtureHint 기반, ANTHROPIC_API_KEY 필요)",
|
|
104
|
+
initial: false
|
|
105
|
+
});
|
|
106
|
+
useLLM$1 = llmResult.useLLM ?? false;
|
|
107
|
+
}
|
|
108
|
+
const enableLLMCache$1 = !options["no-cache"];
|
|
109
|
+
const DEFAULT_PASSWORD = "Test1234!";
|
|
110
|
+
const sourceDb = DB.getDB("r");
|
|
111
|
+
const generator$1 = new FixtureGenerator(sourceDb, sourceDb, "production_master", EntityManager, {
|
|
112
|
+
useLLM: useLLM$1,
|
|
113
|
+
enableLLMCache: enableLLMCache$1
|
|
114
|
+
});
|
|
115
|
+
const createdCredentials = [];
|
|
116
|
+
const basePath = Sonamu.config.server.auth?.basePath ?? "/api/auth";
|
|
117
|
+
if (useLLM$1) {
|
|
118
|
+
console.log(chalk.cyan(`\nLLM 모드로 로그인 가능한 사용자 ${count}명 생성 중... (캐싱: ${enableLLMCache$1 ? "ON" : "OFF"})`));
|
|
119
|
+
} else {
|
|
120
|
+
console.log(chalk.cyan(`\n로그인 가능한 사용자 ${count}명 생성 중...`));
|
|
121
|
+
}
|
|
122
|
+
for (let i = 0; i < count; i++) {
|
|
123
|
+
const userData = await generator$1.generate("User");
|
|
124
|
+
const name = String(userData.name ?? "");
|
|
125
|
+
const email = String(userData.email ?? "");
|
|
126
|
+
const username = sanitizeUsername(String(userData.username ?? ""));
|
|
127
|
+
const displayUsername = userData.display_username !== undefined ? String(userData.display_username) : undefined;
|
|
128
|
+
const body = {
|
|
129
|
+
name,
|
|
130
|
+
email,
|
|
131
|
+
username,
|
|
132
|
+
password: DEFAULT_PASSWORD
|
|
133
|
+
};
|
|
134
|
+
if (displayUsername !== undefined) {
|
|
135
|
+
body.display_username = displayUsername;
|
|
136
|
+
}
|
|
137
|
+
const req = new Request(`http://localhost${basePath}/sign-up/email`, {
|
|
138
|
+
method: "POST",
|
|
139
|
+
headers: { "Content-Type": "application/json" },
|
|
140
|
+
body: JSON.stringify(body)
|
|
141
|
+
});
|
|
142
|
+
const response = await Sonamu.auth.handler(req);
|
|
143
|
+
if (!response.ok) {
|
|
144
|
+
const responseData = await response.json();
|
|
145
|
+
const code = typeof responseData.code === "string" ? responseData.code : undefined;
|
|
146
|
+
if (code === "USER_ALREADY_EXISTS") {
|
|
147
|
+
console.log(chalk.yellow(` ⚠️ ${email} 이미 존재 - 건너뜁니다.`));
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
console.log(chalk.red(` ❌ ${email} 생성 실패: ${JSON.stringify(responseData)}`));
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
createdCredentials.push({
|
|
154
|
+
email,
|
|
155
|
+
password: DEFAULT_PASSWORD
|
|
156
|
+
});
|
|
157
|
+
console.log(chalk.green(` ✅ ${email} 생성 완료`));
|
|
158
|
+
}
|
|
159
|
+
if (createdCredentials.length > 0) {
|
|
160
|
+
const emails = createdCredentials.map((c) => c.email);
|
|
161
|
+
await DB.getDB("w")("users").whereIn("email", emails).update({ email_verified: true });
|
|
162
|
+
console.log(chalk.green(`\nemail_verified = true 업데이트 완료`));
|
|
163
|
+
}
|
|
164
|
+
if (useLLM$1) {
|
|
165
|
+
const stats = generator$1.getLLMCacheStats();
|
|
166
|
+
console.log(chalk.cyan(`[LLM Cache] 캐시 크기: ${stats.size}`));
|
|
167
|
+
}
|
|
168
|
+
console.log(chalk.green(`\n✅ ${createdCredentials.length}명의 로그인 가능한 사용자 생성 완료`));
|
|
169
|
+
if (createdCredentials.length > 0) {
|
|
170
|
+
console.log("\n생성된 계정 목록:");
|
|
171
|
+
console.table(createdCredentials);
|
|
172
|
+
}
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
66
176
|
let saveTarget = options["save-to"] || "db";
|
|
67
177
|
if (!options["save-to"]) {
|
|
68
178
|
const result = await prompts({
|
|
@@ -272,4 +382,4 @@ async function fixtureExploreCommand(options) {
|
|
|
272
382
|
|
|
273
383
|
//#endregion
|
|
274
384
|
export { fixtureExploreCommand, fixtureFetchCommand, fixtureGenCommand };
|
|
275
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS5qcyIsIm5hbWVzIjpbImVudGl0eU5hbWVzOiBzdHJpbmdbXSIsImZpbGVuYW1lOiBzdHJpbmciLCJzdHJhdGVneTogRGF0YUV4cGxvcmVyU3RyYXRlZ3kiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYmluL2ZpeHR1cmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuaW1wb3J0IHByb21wdHMgZnJvbSBcInByb21wdHNcIjtcblxuaW1wb3J0IHsgU29uYW11IH0gZnJvbSBcIi4uL2FwaS9zb25hbXVcIjtcbmltcG9ydCB7IERCIH0gZnJvbSBcIi4uL2RhdGFiYXNlL2RiXCI7XG5pbXBvcnQgeyBjcmVhdGVLbmV4SW5zdGFuY2UgfSBmcm9tIFwiLi4vZGF0YWJhc2Uva25leFwiO1xuaW1wb3J0IHsgRW50aXR5TWFuYWdlciB9IGZyb20gXCIuLi9lbnRpdHkvZW50aXR5LW1hbmFnZXJcIjtcbmltcG9ydCB7IERhdGFFeHBsb3JlciB9IGZyb20gXCIuLi90ZXN0aW5nL2RhdGEtZXhwbG9yZXJcIjtcbmltcG9ydCB7IHR5cGUgRGF0YUV4cGxvcmVyU3RyYXRlZ3kgfSBmcm9tIFwiLi4vdGVzdGluZy9kYXRhLWV4cGxvcmVyXCI7XG5pbXBvcnQgeyBGaXh0dXJlR2VuZXJhdG9yIH0gZnJvbSBcIi4uL3Rlc3RpbmcvZml4dHVyZS1nZW5lcmF0b3JcIjtcblxuaW50ZXJmYWNlIEZpeHR1cmVDb21tYW5kT3B0aW9ucyB7XG4gIF8/OiBzdHJpbmdbXTtcbiAgYWxsPzogYm9vbGVhbjtcbiAgaW5jbHVkZT86IHN0cmluZztcbiAgZXhjbHVkZT86IHN0cmluZztcbiAgY291bnQ/OiBzdHJpbmc7XG4gIFwic2F2ZS10b1wiPzogc3RyaW5nO1xuICBzdHJhdGVneT86IERhdGFFeHBsb3JlclN0cmF0ZWd5O1xuICBsaW1pdD86IHN0cmluZztcbiAgXCJ1c2UtbGxtXCI/OiBib29sZWFuO1xuICBcIm5vLWNhY2hlXCI/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIGZpeHR1cmUgZ2VuIOuqheugueyWtCAtIGNvbmUg66mU7YOA642w7J207YSw66W8IO2ZnOyaqe2VmOyXrCDsnpDrj5nsnLzroZwgZml4dHVyZeulvCDsg53shLHtlanri4jri6QuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmaXh0dXJlR2VuQ29tbWFuZChvcHRpb25zOiBGaXh0dXJlQ29tbWFuZE9wdGlvbnMpIHtcbiAgdHJ5IHtcbiAgICBpZiAoIUVudGl0eU1hbmFnZXIuaXNBdXRvbG9hZGVkKSB7XG4gICAgICBhd2FpdCBFbnRpdHlNYW5hZ2VyLmF1dG9sb2FkKCk7XG4gICAgfVxuXG4gICAgbGV0IGVudGl0eU5hbWVzOiBzdHJpbmdbXTtcblxuICAgIGlmIChvcHRpb25zLmFsbCkge1xuICAgICAgZW50aXR5TmFtZXMgPSBFbnRpdHlNYW5hZ2VyLmdldEFsbElkcygpO1xuICAgICAgaWYgKG9wdGlvbnMuZXhjbHVkZSkge1xuICAgICAgICBjb25zdCBleGNsdWRlTGlzdCA9IG9wdGlvbnMuZXhjbHVkZS5zcGxpdChcIixcIikubWFwKChzOiBzdHJpbmcpID0+IHMudHJpbSgpKTtcbiAgICAgICAgZW50aXR5TmFtZXMgPSBlbnRpdHlOYW1lcy5maWx0ZXIoKG5hbWUpID0+ICFleGNsdWRlTGlzdC5pbmNsdWRlcyhuYW1lKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmluY2x1ZGUpIHtcbiAgICAgIGVudGl0eU5hbWVzID0gb3B0aW9ucy5pbmNsdWRlLnNwbGl0KFwiLFwiKS5tYXAoKHM6IHN0cmluZykgPT4gcy50cmltKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwcm9tcHRzKHtcbiAgICAgICAgdHlwZTogXCJtdWx0aXNlbGVjdFwiLFxuICAgICAgICBuYW1lOiBcImVudGl0aWVzXCIsXG4gICAgICAgIG1lc3NhZ2U6IFwiRml4dHVyZeulvCDsg53shLHtlaAgRW50aXR566W8IOyEoO2Dne2VmOyEuOyalDpcIixcbiAgICAgICAgY2hvaWNlczogRW50aXR5TWFuYWdlci5nZXRBbGxJZHMoKS5tYXAoKGlkKSA9PiAoeyB0aXRsZTogaWQsIHZhbHVlOiBpZCB9KSksXG4gICAgICAgIG1pbjogMSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoIXJlc3VsdC5lbnRpdGllcyB8fCByZXN1bHQuZW50aXRpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnllbGxvdyhcIuy3qOyGjOuQmOyXiOyKteuLiOuLpC5cIikpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGVudGl0eU5hbWVzID0gcmVzdWx0LmVudGl0aWVzO1xuICAgIH1cblxuICAgIGxldCBjb3VudCA9IG9wdGlvbnMuY291bnQgPyBOdW1iZXIucGFyc2VJbnQob3B0aW9ucy5jb3VudCwgMTApIDogNTtcbiAgICBpZiAoIW9wdGlvbnMuY291bnQpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHByb21wdHMoe1xuICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgICBuYW1lOiBcImNvdW50XCIsXG4gICAgICAgIG1lc3NhZ2U6IFwi6rCBIEVudGl0eeuzhCDsg53shLEg6rCc7IiYOlwiLFxuICAgICAgICBpbml0aWFsOiA1LFxuICAgICAgICBtaW46IDEsXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFyZXN1bHQuY291bnQpIHtcbiAgICAgICAgY29uc29sZS5sb2coY2hhbGsueWVsbG93KFwi7Leo7IaM65CY7JeI7Iq164uI64ukLlwiKSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY291bnQgPSByZXN1bHQuY291bnQ7XG4gICAgfVxuXG4gICAgbGV0IHNhdmVUYXJnZXQgPSBvcHRpb25zW1wic2F2ZS10b1wiXSB8fCBcImRiXCI7XG4gICAgaWYgKCFvcHRpb25zW1wic2F2ZS10b1wiXSkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcHJvbXB0cyh7XG4gICAgICAgIHR5cGU6IFwic2VsZWN0XCIsXG4gICAgICAgIG5hbWU6IFwic2F2ZVRhcmdldFwiLFxuICAgICAgICBtZXNzYWdlOiBcIuyggOyepSDrsKnsi506XCIsXG4gICAgICAgIGNob2ljZXM6IFtcbiAgICAgICAgICB7IHRpdGxlOiBcIkZpeHR1cmUgRELsl5Ag7KCA7J6lXCIsIHZhbHVlOiBcImRiXCIgfSxcbiAgICAgICAgICB7IHRpdGxlOiBcIu2MjOydvOuhnCDsoIDsnqUgKOyekOuPmSDtjIzsnbzrqoUpXCIsIHZhbHVlOiBcImZpbGVcIiB9LFxuICAgICAgICAgIHsgdGl0bGU6IFwi7YyM7J2866GcIOyggOyepSAo7YyM7J2866qFIOyngOyglSlcIiwgdmFsdWU6IFwiZmlsZTpjdXN0b21cIiB9LFxuICAgICAgICAgIHsgdGl0bGU6IFwi7KCA7J6lIOyViCDtlaggKOy2nOugpeunjClcIiwgdmFsdWU6IFwibm9uZVwiIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgc2F2ZVRhcmdldCA9IHJlc3VsdC5zYXZlVGFyZ2V0O1xuXG4gICAgICBpZiAoc2F2ZVRhcmdldCA9PT0gXCJmaWxlOmN1c3RvbVwiKSB7XG4gICAgICAgIGNvbnN0IGZpbGVuYW1lUmVzdWx0ID0gYXdhaXQgcHJvbXB0cyh7XG4gICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgbmFtZTogXCJmaWxlbmFtZVwiLFxuICAgICAgICAgIG1lc3NhZ2U6IFwi7YyM7J2866qFOlwiLFxuICAgICAgICAgIGluaXRpYWw6IFwiZml4dHVyZXMuanNvblwiLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWZpbGVuYW1lUmVzdWx0LmZpbGVuYW1lKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsueWVsbG93KFwi7Leo7IaM65CY7JeI7Iq164uI64ukLlwiKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc2F2ZVRhcmdldCA9IGBmaWxlOiR7ZmlsZW5hbWVSZXN1bHQuZmlsZW5hbWV9YDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBMTE0g7IKs7JqpIOyXrOu2gCDqsrDsoJVcbiAgICBsZXQgdXNlTExNID0gb3B0aW9uc1tcInVzZS1sbG1cIl0gPz8gZmFsc2U7XG4gICAgaWYgKCFvcHRpb25zW1widXNlLWxsbVwiXSkge1xuICAgICAgY29uc3QgbGxtUmVzdWx0ID0gYXdhaXQgcHJvbXB0cyh7XG4gICAgICAgIHR5cGU6IFwiY29uZmlybVwiLFxuICAgICAgICBuYW1lOiBcInVzZUxMTVwiLFxuICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgIFwiTExN7Jy866GcIOuNlCDtmITsi6TsoIHsnbgg642w7J207YSw66W8IOyDneyEse2VoOq5jOyalD8gKGZpeHR1cmVIaW50IOq4sOuwmCwgQU5USFJPUElDX0FQSV9LRVkg7ZWE7JqUKVwiLFxuICAgICAgICBpbml0aWFsOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgICAgdXNlTExNID0gbGxtUmVzdWx0LnVzZUxMTSA/PyBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBlbmFibGVMTE1DYWNoZSA9ICFvcHRpb25zW1wibm8tY2FjaGVcIl07XG5cbiAgICAvLyBmaXh0dXJlIGdlbjogZml4dHVyZSBEQiDrgrTsl5DshJwg7LC47KGwIOq0gOqzhOulvCDtlbTqsrDtlZjqs6Ag7KCA7J6l7ZWp64uI64ukXG4gICAgY29uc3QgZml4dHVyZURiID0gY3JlYXRlS25leEluc3RhbmNlKFNvbmFtdS5kYkNvbmZpZy5maXh0dXJlKTtcbiAgICBjb25zdCBnZW5lcmF0b3IgPSBuZXcgRml4dHVyZUdlbmVyYXRvcihmaXh0dXJlRGIsIGZpeHR1cmVEYiwgXCJmaXh0dXJlXCIsIEVudGl0eU1hbmFnZXIsIHtcbiAgICAgIHVzZUxMTSxcbiAgICAgIGVuYWJsZUxMTUNhY2hlLFxuICAgIH0pO1xuXG4gICAgaWYgKHVzZUxMTSkge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGNoYWxrLmN5YW4oXG4gICAgICAgICAgYFxcbkxMTSDrqqjrk5zroZwgJHtlbnRpdHlOYW1lcy5qb2luKFwiLCBcIil9IOyDneyEsSDspJEuLi4gKOy6kOyLsTogJHtlbmFibGVMTE1DYWNoZSA/IFwiT05cIiA6IFwiT0ZGXCJ9KWAsXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKGBcXG4ke2VudGl0eU5hbWVzLmpvaW4oXCIsIFwiKX0g7IOd7ISxIOykkS4uLmApKTtcbiAgICB9XG5cbiAgICBjb25zdCBzcGVjcyA9IGVudGl0eU5hbWVzLm1hcCgoZW50aXR5TmFtZSkgPT4gKHtcbiAgICAgIGVudGl0eTogZW50aXR5TmFtZSxcbiAgICAgIGNvdW50LFxuICAgICAgb3ZlcnJpZGVzOiB7fSxcbiAgICB9KSk7XG5cbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgZ2VuZXJhdG9yLmdlbmVyYXRlQmF0Y2goc3BlY3MpO1xuXG4gICAgaWYgKHVzZUxMTSkge1xuICAgICAgY29uc3Qgc3RhdHMgPSBnZW5lcmF0b3IuZ2V0TExNQ2FjaGVTdGF0cygpO1xuICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbihgW0xMTSBDYWNoZV0g7LqQ7IucIO2BrOq4sDogJHtzdGF0cy5zaXplfWApKTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbihgXFxu4pyFICR7cmVzdWx0cy5sZW5ndGh96rCcIGZpeHR1cmUg7IOd7ISxIOyZhOujjGApKTtcblxuICAgIGlmIChzYXZlVGFyZ2V0ID09PSBcIm5vbmVcIikge1xuICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkocmVzdWx0cywgbnVsbCwgMikpO1xuICAgIH0gZWxzZSBpZiAoc2F2ZVRhcmdldCA9PT0gXCJkYlwiKSB7XG4gICAgICAvLyBnZW5lcmF0ZUJhdGNo6rCAIOydtOuvuCBEQuyXkCDsoIDsnqXtlojsnLzrr4DroZwg67OE64+EIOyggOyepeydtCDrtojtlYTsmpTtlanri4jri6QuXG4gICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbihcIkZpeHR1cmUgRELsl5Ag7KCA7J6l65CY7JeI7Iq164uI64ukLlwiKSk7XG4gICAgfSBlbHNlIGlmIChzYXZlVGFyZ2V0LnN0YXJ0c1dpdGgoXCJmaWxlXCIpKSB7XG4gICAgICBjb25zdCBmcyA9IGF3YWl0IGltcG9ydChcIm5vZGU6ZnMvcHJvbWlzZXNcIik7XG4gICAgICBjb25zdCBwYXRoID0gYXdhaXQgaW1wb3J0KFwibm9kZTpwYXRoXCIpO1xuXG4gICAgICBjb25zdCBmaXh0dXJlc0RpciA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcInRlc3RcIiwgXCJmaXh0dXJlc1wiKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGZzLmFjY2VzcyhmaXh0dXJlc0Rpcik7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgYXdhaXQgZnMubWtkaXIoZml4dHVyZXNEaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IGVudGl0eU5hbWUgb2YgZW50aXR5TmFtZXMpIHtcbiAgICAgICAgY29uc3QgZW50aXR5UmVzdWx0cyA9IHJlc3VsdHMuZmlsdGVyKChyKSA9PiByLmVudGl0eUlkID09PSBlbnRpdHlOYW1lKTtcblxuICAgICAgICBpZiAoZW50aXR5UmVzdWx0cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBmaWxlbmFtZTogc3RyaW5nO1xuICAgICAgICBpZiAoc2F2ZVRhcmdldCA9PT0gXCJmaWxlXCIpIHtcbiAgICAgICAgICBjb25zdCBlbnRpdHkgPSBFbnRpdHlNYW5hZ2VyLmdldChlbnRpdHlOYW1lKTtcbiAgICAgICAgICBmaWxlbmFtZSA9IGAke2VudGl0eS50YWJsZX0uanNvbmA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmlsZW5hbWUgPSBzYXZlVGFyZ2V0LnJlcGxhY2UoXCJmaWxlOlwiLCBcIlwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpbGVwYXRoID0gcGF0aC5qb2luKGZpeHR1cmVzRGlyLCBmaWxlbmFtZSk7XG4gICAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShcbiAgICAgICAgICBmaWxlcGF0aCxcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIGVudGl0eVJlc3VsdHMubWFwKChyKSA9PiByLmRhdGEpLFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIDIsXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYOKchSAke2ZpbGVwYXRofSDsoIDsnqUg7JmE66OMYCkpO1xuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKFxuICAgICAgY2hhbGsucmVkKFxuICAgICAgICBcIkZpeHR1cmUg7IOd7ISxIOykkSDsmKTrpZjqsIAg67Cc7IOd7ZaI7Iq164uI64ukLlxcblwiICtcbiAgICAgICAgICBcIuybkOyduDogRW50aXR5IOygleydmOuCmCBEQiDsl7DqsrDsnYQg7ZmV7J247ZW07KO87IS47JqULlxcblwiICtcbiAgICAgICAgICBcIuyekOyEuO2VnCDrgrTsmqk6XCIsXG4gICAgICApLFxuICAgICAgZXJyb3IsXG4gICAgKTtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufVxuXG4vKipcbiAqIGZpeHR1cmUgZmV0Y2gg66qF66C57Ja0IC0g7Iuk7KCcIOyatOyYgSBEQuyXkOyEnCDrjbDsnbTthLDrpbwg6rCA7KC47JmAIGZpeHR1cmXroZwg7KCA7J6l7ZWp64uI64ukLlxuICog6rSA6rOE65CcIOuNsOydtO2EsOuPhCDtlajqu5gg6rCA7KC47Jik66+A66GcIO2YhOyLpOyggeyduCDthYzsiqTtirgg642w7J207YSw66W8IO2ZleuztO2VoCDsiJgg7J6I7Iq164uI64ukLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZml4dHVyZUZldGNoQ29tbWFuZChvcHRpb25zOiBGaXh0dXJlQ29tbWFuZE9wdGlvbnMpIHtcbiAgdHJ5IHtcbiAgICBpZiAoIUVudGl0eU1hbmFnZXIuaXNBdXRvbG9hZGVkKSB7XG4gICAgICBhd2FpdCBFbnRpdHlNYW5hZ2VyLmF1dG9sb2FkKCk7XG4gICAgfVxuXG4gICAgbGV0IGVudGl0eU5hbWVzOiBzdHJpbmdbXTtcblxuICAgIGlmIChvcHRpb25zLmFsbCkge1xuICAgICAgZW50aXR5TmFtZXMgPSBFbnRpdHlNYW5hZ2VyLmdldEFsbElkcygpO1xuICAgICAgaWYgKG9wdGlvbnMuZXhjbHVkZSkge1xuICAgICAgICBjb25zdCBleGNsdWRlTGlzdCA9IG9wdGlvbnMuZXhjbHVkZS5zcGxpdChcIixcIikubWFwKChzOiBzdHJpbmcpID0+IHMudHJpbSgpKTtcbiAgICAgICAgZW50aXR5TmFtZXMgPSBlbnRpdHlOYW1lcy5maWx0ZXIoKG5hbWUpID0+ICFleGNsdWRlTGlzdC5pbmNsdWRlcyhuYW1lKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmluY2x1ZGUpIHtcbiAgICAgIGVudGl0eU5hbWVzID0gb3B0aW9ucy5pbmNsdWRlLnNwbGl0KFwiLFwiKS5tYXAoKHM6IHN0cmluZykgPT4gcy50cmltKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwcm9tcHRzKHtcbiAgICAgICAgdHlwZTogXCJtdWx0aXNlbGVjdFwiLFxuICAgICAgICBuYW1lOiBcImVudGl0aWVzXCIsXG4gICAgICAgIG1lc3NhZ2U6IFwiSW1wb3J07ZWgIEVudGl0eeulvCDshKDtg53tlZjshLjsmpQ6XCIsXG4gICAgICAgIGNob2ljZXM6IEVudGl0eU1hbmFnZXIuZ2V0QWxsSWRzKCkubWFwKChpZCkgPT4gKHsgdGl0bGU6IGlkLCB2YWx1ZTogaWQgfSkpLFxuICAgICAgICBtaW46IDEsXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFyZXN1bHQuZW50aXRpZXMgfHwgcmVzdWx0LmVudGl0aWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBjb25zb2xlLmxvZyhjaGFsay55ZWxsb3coXCLst6jshozrkJjsl4jsirXri4jri6QuXCIpKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBlbnRpdHlOYW1lcyA9IHJlc3VsdC5lbnRpdGllcztcbiAgICB9XG5cbiAgICBjb25zdCBzdHJhdGVneTogRGF0YUV4cGxvcmVyU3RyYXRlZ3kgPSBvcHRpb25zLnN0cmF0ZWd5ID8/IFwicmVjZW50XCI7XG4gICAgY29uc3QgbGltaXQgPSBvcHRpb25zLmxpbWl0ID8gTnVtYmVyLnBhcnNlSW50KG9wdGlvbnMubGltaXQsIDEwKSA6IDEwO1xuXG4gICAgLy8gZml4dHVyZSBmZXRjaDogcHJvZHVjdGlvbiDrjbDsnbTthLDrpbwgZml4dHVyZSBEQuuhnCBpbXBvcnTtlanri4jri6RcbiAgICBjb25zdCBzb3VyY2VEYiA9IERCLmdldERCKFwiclwiKTsgLy8gcHJvZHVjdGlvbl9tYXN0ZXIgKOuYkOuKlCBkZXZlbG9wbWVudF9tYXN0ZXIpXG4gICAgY29uc3QgZml4dHVyZURiID0gY3JlYXRlS25leEluc3RhbmNlKFNvbmFtdS5kYkNvbmZpZy5maXh0dXJlKTtcbiAgICBjb25zdCBnZW5lcmF0b3IgPSBuZXcgRml4dHVyZUdlbmVyYXRvcihzb3VyY2VEYiwgZml4dHVyZURiLCBcImZpeHR1cmVcIiwgRW50aXR5TWFuYWdlcik7XG5cbiAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKGBcXG4ke2VudGl0eU5hbWVzLmpvaW4oXCIsIFwiKX0gaW1wb3J0IOykkS4uLmApKTtcblxuICAgIGZvciAoY29uc3QgZW50aXR5TmFtZSBvZiBlbnRpdHlOYW1lcykge1xuICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IGdlbmVyYXRvci5pbXBvcnRGcm9tU291cmNlKGVudGl0eU5hbWUsIHtcbiAgICAgICAgc3RyYXRlZ3ksXG4gICAgICAgIGxpbWl0LFxuICAgICAgICBpbmNsdWRlUmVsYXRpb25zOiB0cnVlLFxuICAgICAgICBtYXhEZXB0aDogMixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbihg4pyFICR7ZW50aXR5TmFtZX06ICR7cmVzdWx0cy5sZW5ndGh96rCcIGltcG9ydCDsmYTro4xgKSk7XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBjaGFsay5yZWQoXG4gICAgICAgIFwi7Iuk7KCcIERC7JeQ7IScIOuNsOydtO2EsOulvCDqsIDsoLjsmKTripQg7KSRIOyYpOulmOqwgCDrsJzsg53tlojsirXri4jri6QuXFxuXCIgK1xuICAgICAgICAgIFwi7JuQ7J24OiDshozsiqQgREIg7Jew6rKwIOyEpOyglShzb25hbXUuY29uZmlnLnRzKeydtOuCmCBFbnRpdHkg6rSA6rOEIOygleydmOulvCDtmZXsnbjtlbTso7zshLjsmpQuXFxuXCIgK1xuICAgICAgICAgIFwi7J6Q7IS47ZWcIOuCtOyaqTpcIixcbiAgICAgICksXG4gICAgICBlcnJvcixcbiAgICApO1xuICAgIHRocm93IGVycm9yO1xuICB9XG59XG5cbi8qKlxuICogZml4dHVyZSBleHBsb3JlIOuqheugueyWtCAtIERC7J2YIOyLpOygnCDrjbDsnbTthLDrpbwg7KGw7ZqM7ZWY7JesIO2ZleyduO2VqeuLiOuLpC5cbiAqIOyggOyepe2VmOyngCDslYrqs6Ag7KGw7ZqM66eMIO2VmOuvgOuhnCDrjbDsnbTthLDrpbwg67mg66W06rKMIO2ZleyduO2VoCDrlYwg7Jyg7Jqp7ZWp64uI64ukLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZml4dHVyZUV4cGxvcmVDb21tYW5kKG9wdGlvbnM6IEZpeHR1cmVDb21tYW5kT3B0aW9ucykge1xuICB0cnkge1xuICAgIGlmICghRW50aXR5TWFuYWdlci5pc0F1dG9sb2FkZWQpIHtcbiAgICAgIGF3YWl0IEVudGl0eU1hbmFnZXIuYXV0b2xvYWQoKTtcbiAgICB9XG5cbiAgICBsZXQgZW50aXR5TmFtZSA9IG9wdGlvbnMuaW5jbHVkZTtcblxuICAgIGlmICghZW50aXR5TmFtZSkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcHJvbXB0cyh7XG4gICAgICAgIHR5cGU6IFwic2VsZWN0XCIsXG4gICAgICAgIG5hbWU6IFwiZW50aXR5XCIsXG4gICAgICAgIG1lc3NhZ2U6IFwi7YOQ7IOJ7ZWgIEVudGl0eTpcIixcbiAgICAgICAgY2hvaWNlczogRW50aXR5TWFuYWdlci5nZXRBbGxJZHMoKS5tYXAoKGlkKSA9PiAoeyB0aXRsZTogaWQsIHZhbHVlOiBpZCB9KSksXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFyZXN1bHQuZW50aXR5KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnllbGxvdyhcIuy3qOyGjOuQmOyXiOyKteuLiOuLpC5cIikpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGVudGl0eU5hbWUgPSByZXN1bHQuZW50aXR5O1xuICAgIH1cblxuICAgIGlmICghZW50aXR5TmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRW50aXR5IG5hbWUgaXMgcmVxdWlyZWRcIik7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RyYXRlZ3k6IERhdGFFeHBsb3JlclN0cmF0ZWd5ID0gb3B0aW9ucy5zdHJhdGVneSA/PyBcInNhbXBsZVwiO1xuICAgIGNvbnN0IGxpbWl0ID0gb3B0aW9ucy5saW1pdCA/IE51bWJlci5wYXJzZUludChvcHRpb25zLmxpbWl0LCAxMCkgOiAxMDtcblxuICAgIGNvbnN0IGRiID0gREIuZ2V0REIoXCJyXCIpO1xuICAgIGNvbnN0IGV4cGxvcmVyID0gbmV3IERhdGFFeHBsb3JlcihkYiwgRW50aXR5TWFuYWdlcik7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IGV4cGxvcmVyLmV4cGxvcmUoZW50aXR5TmFtZSwgeyBzdHJhdGVneSwgbGltaXQgfSk7XG5cbiAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKGBcXG4ke2VudGl0eU5hbWV9ICR7ZGF0YS5sZW5ndGh96rCcIOyhsO2ajCDsmYTro4w6YCkpO1xuICAgIGNvbnNvbGUudGFibGUoZGF0YSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcihcbiAgICAgIGNoYWxrLnJlZChcbiAgICAgICAgXCLrjbDsnbTthLAg7KGw7ZqMIOykkSDsmKTrpZjqsIAg67Cc7IOd7ZaI7Iq164uI64ukLlxcblwiICtcbiAgICAgICAgICBcIuybkOyduDogREIg7Jew6rKw7J2064KYIEVudGl0eSDsoJXsnZjrpbwg7ZmV7J247ZW07KO87IS47JqULlxcblwiICtcbiAgICAgICAgICBcIuyekOyEuO2VnCDrgrTsmqk6XCIsXG4gICAgICApLFxuICAgICAgZXJyb3IsXG4gICAgKTtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O2FBR3VDO1NBQ0g7V0FDa0I7cUJBQ0c7b0JBQ0Q7d0JBRVE7Ozs7QUFrQmhFLGVBQXNCLGtCQUFrQixTQUFnQztBQUN0RSxLQUFJO0FBQ0YsTUFBSSxDQUFDLGNBQWMsY0FBYztBQUMvQixTQUFNLGNBQWMsVUFBVTs7RUFHaEMsSUFBSUE7QUFFSixNQUFJLFFBQVEsS0FBSztBQUNmLGlCQUFjLGNBQWMsV0FBVztBQUN2QyxPQUFJLFFBQVEsU0FBUztJQUNuQixNQUFNLGNBQWMsUUFBUSxRQUFRLE1BQU0sSUFBSSxDQUFDLEtBQUssTUFBYyxFQUFFLE1BQU0sQ0FBQztBQUMzRSxrQkFBYyxZQUFZLFFBQVEsU0FBUyxDQUFDLFlBQVksU0FBUyxLQUFLLENBQUM7O2FBRWhFLFFBQVEsU0FBUztBQUMxQixpQkFBYyxRQUFRLFFBQVEsTUFBTSxJQUFJLENBQUMsS0FBSyxNQUFjLEVBQUUsTUFBTSxDQUFDO1NBQ2hFO0dBQ0wsTUFBTSxTQUFTLE1BQU0sUUFBUTtJQUMzQixNQUFNO0lBQ04sTUFBTTtJQUNOLFNBQVM7SUFDVCxTQUFTLGNBQWMsV0FBVyxDQUFDLEtBQUssUUFBUTtLQUFFLE9BQU87S0FB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
|
|
385
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS5qcyIsIm5hbWVzIjpbImVudGl0eU5hbWVzOiBzdHJpbmdbXSIsInVzZUxMTSIsImVuYWJsZUxMTUNhY2hlIiwiZ2VuZXJhdG9yIiwiY3JlYXRlZENyZWRlbnRpYWxzOiBBcnJheTx7IGVtYWlsOiBzdHJpbmc7IHBhc3N3b3JkOiBzdHJpbmcgfT4iLCJib2R5OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiIsImZpbGVuYW1lOiBzdHJpbmciLCJzdHJhdGVneTogRGF0YUV4cGxvcmVyU3RyYXRlZ3kiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYmluL2ZpeHR1cmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuaW1wb3J0IHByb21wdHMgZnJvbSBcInByb21wdHNcIjtcblxuaW1wb3J0IHsgU29uYW11IH0gZnJvbSBcIi4uL2FwaS9zb25hbXVcIjtcbmltcG9ydCB7IERCIH0gZnJvbSBcIi4uL2RhdGFiYXNlL2RiXCI7XG5pbXBvcnQgeyBjcmVhdGVLbmV4SW5zdGFuY2UgfSBmcm9tIFwiLi4vZGF0YWJhc2Uva25leFwiO1xuaW1wb3J0IHsgRW50aXR5TWFuYWdlciB9IGZyb20gXCIuLi9lbnRpdHkvZW50aXR5LW1hbmFnZXJcIjtcbmltcG9ydCB7IERhdGFFeHBsb3JlciB9IGZyb20gXCIuLi90ZXN0aW5nL2RhdGEtZXhwbG9yZXJcIjtcbmltcG9ydCB7IHR5cGUgRGF0YUV4cGxvcmVyU3RyYXRlZ3kgfSBmcm9tIFwiLi4vdGVzdGluZy9kYXRhLWV4cGxvcmVyXCI7XG5pbXBvcnQgeyBGaXh0dXJlR2VuZXJhdG9yIH0gZnJvbSBcIi4uL3Rlc3RpbmcvZml4dHVyZS1nZW5lcmF0b3JcIjtcblxuaW50ZXJmYWNlIEZpeHR1cmVDb21tYW5kT3B0aW9ucyB7XG4gIF8/OiBzdHJpbmdbXTtcbiAgYWxsPzogYm9vbGVhbjtcbiAgaW5jbHVkZT86IHN0cmluZztcbiAgZXhjbHVkZT86IHN0cmluZztcbiAgY291bnQ/OiBzdHJpbmc7XG4gIFwic2F2ZS10b1wiPzogc3RyaW5nO1xuICBzdHJhdGVneT86IERhdGFFeHBsb3JlclN0cmF0ZWd5O1xuICBsaW1pdD86IHN0cmluZztcbiAgXCJ1c2UtbGxtXCI/OiBib29sZWFuO1xuICBcIm5vLWNhY2hlXCI/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIHVzZXJuYW1l7J2EIOydvOuwmOyggeyduCDqt5zsuZko7JiB66y47J6QIOyLnOyekSwg7JiB66y47J6QL+yIq+yekOunjCwgMS0yMOyekCnsl5Ag66ee64+E66GdIOygleq3nO2ZlO2VqeuLiOuLpC5cbiAqL1xuZnVuY3Rpb24gc2FuaXRpemVVc2VybmFtZShyYXc6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIOyGjOusuOyekCDrs4DtmZgg7ZuEIOyYgeusuOyekC/siKvsnpAg7Jm4IOusuOyekCDsoJzqsbBcbiAgbGV0IHVzZXJuYW1lID0gcmF3LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvW15hLXowLTldL2csIFwiXCIpO1xuICBpZiAodXNlcm5hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgdXNlcm5hbWUgPSBcInVzZXJcIjtcbiAgfVxuICAvLyDssqsg6riA7J6Q6rCAIOyIq+yekOuptCAndScg7KCR65GQ7Ja0IOy2lOqwgFxuICBpZiAoL15bMC05XS8udGVzdCh1c2VybmFtZSkpIHtcbiAgICB1c2VybmFtZSA9IGB1JHt1c2VybmFtZX1gO1xuICB9XG4gIC8vIDIw7J6QIOy0iOqzvCDsi5wgdHJ1bmNhdGVcbiAgcmV0dXJuIHVzZXJuYW1lLnNsaWNlKDAsIDIwKTtcbn1cblxuLyoqXG4gKiBmaXh0dXJlIGdlbiDrqoXroLnslrQgLSBjb25lIOuplO2DgOuNsOydtO2EsOulvCDtmZzsmqntlZjsl6wg7J6Q64+Z7Jy866GcIGZpeHR1cmXrpbwg7IOd7ISx7ZWp64uI64ukLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZml4dHVyZUdlbkNvbW1hbmQob3B0aW9uczogRml4dHVyZUNvbW1hbmRPcHRpb25zKSB7XG4gIHRyeSB7XG4gICAgaWYgKCFFbnRpdHlNYW5hZ2VyLmlzQXV0b2xvYWRlZCkge1xuICAgICAgYXdhaXQgRW50aXR5TWFuYWdlci5hdXRvbG9hZCgpO1xuICAgIH1cblxuICAgIGxldCBlbnRpdHlOYW1lczogc3RyaW5nW107XG5cbiAgICBpZiAob3B0aW9ucy5hbGwpIHtcbiAgICAgIGVudGl0eU5hbWVzID0gRW50aXR5TWFuYWdlci5nZXRBbGxJZHMoKTtcbiAgICAgIGlmIChvcHRpb25zLmV4Y2x1ZGUpIHtcbiAgICAgICAgY29uc3QgZXhjbHVkZUxpc3QgPSBvcHRpb25zLmV4Y2x1ZGUuc3BsaXQoXCIsXCIpLm1hcCgoczogc3RyaW5nKSA9PiBzLnRyaW0oKSk7XG4gICAgICAgIGVudGl0eU5hbWVzID0gZW50aXR5TmFtZXMuZmlsdGVyKChuYW1lKSA9PiAhZXhjbHVkZUxpc3QuaW5jbHVkZXMobmFtZSkpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAob3B0aW9ucy5pbmNsdWRlKSB7XG4gICAgICBlbnRpdHlOYW1lcyA9IG9wdGlvbnMuaW5jbHVkZS5zcGxpdChcIixcIikubWFwKChzOiBzdHJpbmcpID0+IHMudHJpbSgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcHJvbXB0cyh7XG4gICAgICAgIHR5cGU6IFwibXVsdGlzZWxlY3RcIixcbiAgICAgICAgbmFtZTogXCJlbnRpdGllc1wiLFxuICAgICAgICBtZXNzYWdlOiBcIkZpeHR1cmXrpbwg7IOd7ISx7ZWgIEVudGl0eeulvCDshKDtg53tlZjshLjsmpQ6XCIsXG4gICAgICAgIGNob2ljZXM6IEVudGl0eU1hbmFnZXIuZ2V0QWxsSWRzKCkubWFwKChpZCkgPT4gKHsgdGl0bGU6IGlkLCB2YWx1ZTogaWQgfSkpLFxuICAgICAgICBtaW46IDEsXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFyZXN1bHQuZW50aXRpZXMgfHwgcmVzdWx0LmVudGl0aWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBjb25zb2xlLmxvZyhjaGFsay55ZWxsb3coXCLst6jshozrkJjsl4jsirXri4jri6QuXCIpKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBlbnRpdHlOYW1lcyA9IHJlc3VsdC5lbnRpdGllcztcbiAgICB9XG5cbiAgICBsZXQgY291bnQgPSBvcHRpb25zLmNvdW50ID8gTnVtYmVyLnBhcnNlSW50KG9wdGlvbnMuY291bnQsIDEwKSA6IDU7XG4gICAgaWYgKCFvcHRpb25zLmNvdW50KSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwcm9tcHRzKHtcbiAgICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgICAgbmFtZTogXCJjb3VudFwiLFxuICAgICAgICBtZXNzYWdlOiBcIuqwgSBFbnRpdHnrs4Qg7IOd7ISxIOqwnOyImDpcIixcbiAgICAgICAgaW5pdGlhbDogNSxcbiAgICAgICAgbWluOiAxLFxuICAgICAgfSk7XG5cbiAgICAgIGlmICghcmVzdWx0LmNvdW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnllbGxvdyhcIuy3qOyGjOuQmOyXiOyKteuLiOuLpC5cIikpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvdW50ID0gcmVzdWx0LmNvdW50O1xuICAgIH1cblxuICAgIC8vIFVzZXIg7JeU7Yuw7Yuw6rCAIO2PrO2VqOuQnCDqsr3smrA6IOuhnOq3uOyduCDqsIDriqUv7ZmV7J247JqpIOu2hOq4sCDshKDtg51cbiAgICBjb25zdCBoYXNVc2VyID0gZW50aXR5TmFtZXMuaW5jbHVkZXMoXCJVc2VyXCIpO1xuXG4gICAgaWYgKGhhc1VzZXIpIHtcbiAgICAgIGNvbnN0IHVzZXJNb2RlUmVzdWx0ID0gYXdhaXQgcHJvbXB0cyh7XG4gICAgICAgIHR5cGU6IFwic2VsZWN0XCIsXG4gICAgICAgIG5hbWU6IFwidXNlck1vZGVcIixcbiAgICAgICAgbWVzc2FnZTogXCJVc2VyIOyXlO2LsO2LsOqwgCDtj6ztlajrkJjslrQg7J6I7Iq164uI64ukLiDsg53shLEg67Cp7Iud7J2EIOyEoO2Dne2VmOyEuOyalDpcIixcbiAgICAgICAgY2hvaWNlczogW1xuICAgICAgICAgIHsgdGl0bGU6IFwiMS4g66Gc6re47J24IOqwgOuKpe2VnCDsgqzsmqnsnpAgZml4dHVyZSDsg53shLFcIiwgdmFsdWU6IFwibG9naW5cIiB9LFxuICAgICAgICAgIHsgdGl0bGU6IFwiMi4g7ZmV7J247JqpIOuNsOydtO2EsCjroZzqt7jsnbgg67aI6rCAKSDsg53shLFcIiwgdmFsdWU6IFwiZHVtbXlcIiB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGlmICghdXNlck1vZGVSZXN1bHQudXNlck1vZGUpIHtcbiAgICAgICAgY29uc29sZS5sb2coY2hhbGsueWVsbG93KFwi7Leo7IaM65CY7JeI7Iq164uI64ukLlwiKSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHVzZXJNb2RlUmVzdWx0LnVzZXJNb2RlID09PSBcImxvZ2luXCIpIHtcbiAgICAgICAgLy8gTExNIOyCrOyaqSDsl6zrtoBcbiAgICAgICAgbGV0IHVzZUxMTSA9IG9wdGlvbnNbXCJ1c2UtbGxtXCJdID8/IGZhbHNlO1xuICAgICAgICBpZiAoIW9wdGlvbnNbXCJ1c2UtbGxtXCJdKSB7XG4gICAgICAgICAgY29uc3QgbGxtUmVzdWx0ID0gYXdhaXQgcHJvbXB0cyh7XG4gICAgICAgICAgICB0eXBlOiBcImNvbmZpcm1cIixcbiAgICAgICAgICAgIG5hbWU6IFwidXNlTExNXCIsXG4gICAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgICBcIkxMTeycvOuhnCDrjZQg7ZiE7Iuk7KCB7J24IOuNsOydtO2EsOulvCDsg53shLHtlaDquYzsmpQ/IChmaXh0dXJlSGludCDquLDrsJgsIEFOVEhST1BJQ19BUElfS0VZIO2VhOyalClcIixcbiAgICAgICAgICAgIGluaXRpYWw6IGZhbHNlLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHVzZUxMTSA9IGxsbVJlc3VsdC51c2VMTE0gPz8gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlbmFibGVMTE1DYWNoZSA9ICFvcHRpb25zW1wibm8tY2FjaGVcIl07XG4gICAgICAgIGNvbnN0IERFRkFVTFRfUEFTU1dPUkQgPSBcIlRlc3QxMjM0IVwiO1xuXG4gICAgICAgIC8vIOuhnOq3uOyduCDqsIDriqUg6rK966Gc7JeQ7ISc64qUIHNvdXJjZURi66GcIGRldmVsb3BtZW50X21hc3RlciDsgqzsmqlcbiAgICAgICAgY29uc3Qgc291cmNlRGIgPSBEQi5nZXREQihcInJcIik7XG4gICAgICAgIGNvbnN0IGdlbmVyYXRvciA9IG5ldyBGaXh0dXJlR2VuZXJhdG9yKFxuICAgICAgICAgIHNvdXJjZURiLFxuICAgICAgICAgIHNvdXJjZURiLFxuICAgICAgICAgIFwicHJvZHVjdGlvbl9tYXN0ZXJcIixcbiAgICAgICAgICBFbnRpdHlNYW5hZ2VyLFxuICAgICAgICAgIHsgdXNlTExNLCBlbmFibGVMTE1DYWNoZSB9LFxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGNyZWF0ZWRDcmVkZW50aWFsczogQXJyYXk8eyBlbWFpbDogc3RyaW5nOyBwYXNzd29yZDogc3RyaW5nIH0+ID0gW107XG4gICAgICAgIGNvbnN0IGJhc2VQYXRoID0gU29uYW11LmNvbmZpZy5zZXJ2ZXIuYXV0aD8uYmFzZVBhdGggPz8gXCIvYXBpL2F1dGhcIjtcblxuICAgICAgICBpZiAodXNlTExNKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICBjaGFsay5jeWFuKFxuICAgICAgICAgICAgICBgXFxuTExNIOuqqOuTnOuhnCDroZzqt7jsnbgg6rCA64ql7ZWcIOyCrOyaqeyekCAke2NvdW50feuqhSDsg53shLEg7KSRLi4uICjsupDsi7E6ICR7ZW5hYmxlTExNQ2FjaGUgPyBcIk9OXCIgOiBcIk9GRlwifSlgLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4oYFxcbuuhnOq3uOyduCDqsIDriqXtlZwg7IKs7Jqp7J6QICR7Y291bnR966qFIOyDneyEsSDspJEuLi5gKSk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICAgICAgICBjb25zdCB1c2VyRGF0YSA9IGF3YWl0IGdlbmVyYXRvci5nZW5lcmF0ZShcIlVzZXJcIik7XG5cbiAgICAgICAgICBjb25zdCBuYW1lID0gU3RyaW5nKHVzZXJEYXRhLm5hbWUgPz8gXCJcIik7XG4gICAgICAgICAgY29uc3QgZW1haWwgPSBTdHJpbmcodXNlckRhdGEuZW1haWwgPz8gXCJcIik7XG4gICAgICAgICAgY29uc3QgdXNlcm5hbWUgPSBzYW5pdGl6ZVVzZXJuYW1lKFN0cmluZyh1c2VyRGF0YS51c2VybmFtZSA/PyBcIlwiKSk7XG4gICAgICAgICAgY29uc3QgZGlzcGxheVVzZXJuYW1lID1cbiAgICAgICAgICAgIHVzZXJEYXRhLmRpc3BsYXlfdXNlcm5hbWUgIT09IHVuZGVmaW5lZCA/IFN0cmluZyh1c2VyRGF0YS5kaXNwbGF5X3VzZXJuYW1lKSA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgIGNvbnN0IGJvZHk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIGVtYWlsLFxuICAgICAgICAgICAgdXNlcm5hbWUsXG4gICAgICAgICAgICBwYXNzd29yZDogREVGQVVMVF9QQVNTV09SRCxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlmIChkaXNwbGF5VXNlcm5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgYm9keS5kaXNwbGF5X3VzZXJuYW1lID0gZGlzcGxheVVzZXJuYW1lO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHJlcSA9IG5ldyBSZXF1ZXN0KGBodHRwOi8vbG9jYWxob3N0JHtiYXNlUGF0aH0vc2lnbi11cC9lbWFpbGAsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShib2R5KSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgU29uYW11LmF1dGguaGFuZGxlcihyZXEpO1xuXG4gICAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2VEYXRhID0gKGF3YWl0IHJlc3BvbnNlLmpzb24oKSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICAgICAgICBjb25zdCBjb2RlID0gdHlwZW9mIHJlc3BvbnNlRGF0YS5jb2RlID09PSBcInN0cmluZ1wiID8gcmVzcG9uc2VEYXRhLmNvZGUgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAoY29kZSA9PT0gXCJVU0VSX0FMUkVBRFlfRVhJU1RTXCIpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsueWVsbG93KGAgIOKaoO+4jyAgJHtlbWFpbH0g7J2066+4IOyhtOyerCAtIOqxtOuEiOucgeuLiOuLpC5gKSk7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsucmVkKGAgIOKdjCAke2VtYWlsfSDsg53shLEg7Iuk7YyoOiAke0pTT04uc3RyaW5naWZ5KHJlc3BvbnNlRGF0YSl9YCkpO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY3JlYXRlZENyZWRlbnRpYWxzLnB1c2goeyBlbWFpbCwgcGFzc3dvcmQ6IERFRkFVTFRfUEFTU1dPUkQgfSk7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYCAg4pyFICR7ZW1haWx9IOyDneyEsSDsmYTro4xgKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBlbWFpbF92ZXJpZmllZCA9IHRydWUg7KeB7KCRIOyXheuNsOydtO2KuCAoZGV2IO2OuOydmClcbiAgICAgICAgaWYgKGNyZWF0ZWRDcmVkZW50aWFscy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgZW1haWxzID0gY3JlYXRlZENyZWRlbnRpYWxzLm1hcCgoYykgPT4gYy5lbWFpbCk7XG4gICAgICAgICAgYXdhaXQgREIuZ2V0REIoXCJ3XCIpKFwidXNlcnNcIikud2hlcmVJbihcImVtYWlsXCIsIGVtYWlscykudXBkYXRlKHsgZW1haWxfdmVyaWZpZWQ6IHRydWUgfSk7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYFxcbmVtYWlsX3ZlcmlmaWVkID0gdHJ1ZSDsl4XrjbDsnbTtirgg7JmE66OMYCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHVzZUxMTSkge1xuICAgICAgICAgIGNvbnN0IHN0YXRzID0gZ2VuZXJhdG9yLmdldExMTUNhY2hlU3RhdHMoKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKGBbTExNIENhY2hlXSDsupDsi5wg7YGs6riwOiAke3N0YXRzLnNpemV9YCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgY2hhbGsuZ3JlZW4oYFxcbuKchSAke2NyZWF0ZWRDcmVkZW50aWFscy5sZW5ndGh966qF7J2YIOuhnOq3uOyduCDqsIDriqXtlZwg7IKs7Jqp7J6QIOyDneyEsSDsmYTro4xgKSxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGNyZWF0ZWRDcmVkZW50aWFscy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJcXG7sg53shLHrkJwg6rOE7KCVIOuqqeuhnTpcIik7XG4gICAgICAgICAgY29uc29sZS50YWJsZShjcmVhdGVkQ3JlZGVudGlhbHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgLy8gdXNlck1vZGUgPT09IFwiZHVtbXlcIjog6riw7KG0IGdlbmVyYXRlQmF0Y2goKSDtnZDrpoQg6rOE7IaNXG4gICAgfVxuXG4gICAgbGV0IHNhdmVUYXJnZXQgPSBvcHRpb25zW1wic2F2ZS10b1wiXSB8fCBcImRiXCI7XG4gICAgaWYgKCFvcHRpb25zW1wic2F2ZS10b1wiXSkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcHJvbXB0cyh7XG4gICAgICAgIHR5cGU6IFwic2VsZWN0XCIsXG4gICAgICAgIG5hbWU6IFwic2F2ZVRhcmdldFwiLFxuICAgICAgICBtZXNzYWdlOiBcIuyggOyepSDrsKnsi506XCIsXG4gICAgICAgIGNob2ljZXM6IFtcbiAgICAgICAgICB7IHRpdGxlOiBcIkZpeHR1cmUgRELsl5Ag7KCA7J6lXCIsIHZhbHVlOiBcImRiXCIgfSxcbiAgICAgICAgICB7IHRpdGxlOiBcIu2MjOydvOuhnCDsoIDsnqUgKOyekOuPmSDtjIzsnbzrqoUpXCIsIHZhbHVlOiBcImZpbGVcIiB9LFxuICAgICAgICAgIHsgdGl0bGU6IFwi7YyM7J2866GcIOyggOyepSAo7YyM7J2866qFIOyngOyglSlcIiwgdmFsdWU6IFwiZmlsZTpjdXN0b21cIiB9LFxuICAgICAgICAgIHsgdGl0bGU6IFwi7KCA7J6lIOyViCDtlaggKOy2nOugpeunjClcIiwgdmFsdWU6IFwibm9uZVwiIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgc2F2ZVRhcmdldCA9IHJlc3VsdC5zYXZlVGFyZ2V0O1xuXG4gICAgICBpZiAoc2F2ZVRhcmdldCA9PT0gXCJmaWxlOmN1c3RvbVwiKSB7XG4gICAgICAgIGNvbnN0IGZpbGVuYW1lUmVzdWx0ID0gYXdhaXQgcHJvbXB0cyh7XG4gICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgbmFtZTogXCJmaWxlbmFtZVwiLFxuICAgICAgICAgIG1lc3NhZ2U6IFwi7YyM7J2866qFOlwiLFxuICAgICAgICAgIGluaXRpYWw6IFwiZml4dHVyZXMuanNvblwiLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWZpbGVuYW1lUmVzdWx0LmZpbGVuYW1lKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsueWVsbG93KFwi7Leo7IaM65CY7JeI7Iq164uI64ukLlwiKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc2F2ZVRhcmdldCA9IGBmaWxlOiR7ZmlsZW5hbWVSZXN1bHQuZmlsZW5hbWV9YDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBMTE0g7IKs7JqpIOyXrOu2gCDqsrDsoJVcbiAgICBsZXQgdXNlTExNID0gb3B0aW9uc1tcInVzZS1sbG1cIl0gPz8gZmFsc2U7XG4gICAgaWYgKCFvcHRpb25zW1widXNlLWxsbVwiXSkge1xuICAgICAgY29uc3QgbGxtUmVzdWx0ID0gYXdhaXQgcHJvbXB0cyh7XG4gICAgICAgIHR5cGU6IFwiY29uZmlybVwiLFxuICAgICAgICBuYW1lOiBcInVzZUxMTVwiLFxuICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgIFwiTExN7Jy866GcIOuNlCDtmITsi6TsoIHsnbgg642w7J207YSw66W8IOyDneyEse2VoOq5jOyalD8gKGZpeHR1cmVIaW50IOq4sOuwmCwgQU5USFJPUElDX0FQSV9LRVkg7ZWE7JqUKVwiLFxuICAgICAgICBpbml0aWFsOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgICAgdXNlTExNID0gbGxtUmVzdWx0LnVzZUxMTSA/PyBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBlbmFibGVMTE1DYWNoZSA9ICFvcHRpb25zW1wibm8tY2FjaGVcIl07XG5cbiAgICAvLyBmaXh0dXJlIGdlbjogZml4dHVyZSBEQiDrgrTsl5DshJwg7LC47KGwIOq0gOqzhOulvCDtlbTqsrDtlZjqs6Ag7KCA7J6l7ZWp64uI64ukXG4gICAgY29uc3QgZml4dHVyZURiID0gY3JlYXRlS25leEluc3RhbmNlKFNvbmFtdS5kYkNvbmZpZy5maXh0dXJlKTtcbiAgICBjb25zdCBnZW5lcmF0b3IgPSBuZXcgRml4dHVyZUdlbmVyYXRvcihmaXh0dXJlRGIsIGZpeHR1cmVEYiwgXCJmaXh0dXJlXCIsIEVudGl0eU1hbmFnZXIsIHtcbiAgICAgIHVzZUxMTSxcbiAgICAgIGVuYWJsZUxMTUNhY2hlLFxuICAgIH0pO1xuXG4gICAgaWYgKHVzZUxMTSkge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGNoYWxrLmN5YW4oXG4gICAgICAgICAgYFxcbkxMTSDrqqjrk5zroZwgJHtlbnRpdHlOYW1lcy5qb2luKFwiLCBcIil9IOyDneyEsSDspJEuLi4gKOy6kOyLsTogJHtlbmFibGVMTE1DYWNoZSA/IFwiT05cIiA6IFwiT0ZGXCJ9KWAsXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKGBcXG4ke2VudGl0eU5hbWVzLmpvaW4oXCIsIFwiKX0g7IOd7ISxIOykkS4uLmApKTtcbiAgICB9XG5cbiAgICBjb25zdCBzcGVjcyA9IGVudGl0eU5hbWVzLm1hcCgoZW50aXR5TmFtZSkgPT4gKHtcbiAgICAgIGVudGl0eTogZW50aXR5TmFtZSxcbiAgICAgIGNvdW50LFxuICAgICAgb3ZlcnJpZGVzOiB7fSxcbiAgICB9KSk7XG5cbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgZ2VuZXJhdG9yLmdlbmVyYXRlQmF0Y2goc3BlY3MpO1xuXG4gICAgaWYgKHVzZUxMTSkge1xuICAgICAgY29uc3Qgc3RhdHMgPSBnZW5lcmF0b3IuZ2V0TExNQ2FjaGVTdGF0cygpO1xuICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbihgW0xMTSBDYWNoZV0g7LqQ7IucIO2BrOq4sDogJHtzdGF0cy5zaXplfWApKTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbihgXFxu4pyFICR7cmVzdWx0cy5sZW5ndGh96rCcIGZpeHR1cmUg7IOd7ISxIOyZhOujjGApKTtcblxuICAgIGlmIChzYXZlVGFyZ2V0ID09PSBcIm5vbmVcIikge1xuICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkocmVzdWx0cywgbnVsbCwgMikpO1xuICAgIH0gZWxzZSBpZiAoc2F2ZVRhcmdldCA9PT0gXCJkYlwiKSB7XG4gICAgICAvLyBnZW5lcmF0ZUJhdGNo6rCAIOydtOuvuCBEQuyXkCDsoIDsnqXtlojsnLzrr4DroZwg67OE64+EIOyggOyepeydtCDrtojtlYTsmpTtlanri4jri6QuXG4gICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbihcIkZpeHR1cmUgRELsl5Ag7KCA7J6l65CY7JeI7Iq164uI64ukLlwiKSk7XG4gICAgfSBlbHNlIGlmIChzYXZlVGFyZ2V0LnN0YXJ0c1dpdGgoXCJmaWxlXCIpKSB7XG4gICAgICBjb25zdCBmcyA9IGF3YWl0IGltcG9ydChcIm5vZGU6ZnMvcHJvbWlzZXNcIik7XG4gICAgICBjb25zdCBwYXRoID0gYXdhaXQgaW1wb3J0KFwibm9kZTpwYXRoXCIpO1xuXG4gICAgICBjb25zdCBmaXh0dXJlc0RpciA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcInRlc3RcIiwgXCJmaXh0dXJlc1wiKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGZzLmFjY2VzcyhmaXh0dXJlc0Rpcik7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgYXdhaXQgZnMubWtkaXIoZml4dHVyZXNEaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IGVudGl0eU5hbWUgb2YgZW50aXR5TmFtZXMpIHtcbiAgICAgICAgY29uc3QgZW50aXR5UmVzdWx0cyA9IHJlc3VsdHMuZmlsdGVyKChyKSA9PiByLmVudGl0eUlkID09PSBlbnRpdHlOYW1lKTtcblxuICAgICAgICBpZiAoZW50aXR5UmVzdWx0cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBmaWxlbmFtZTogc3RyaW5nO1xuICAgICAgICBpZiAoc2F2ZVRhcmdldCA9PT0gXCJmaWxlXCIpIHtcbiAgICAgICAgICBjb25zdCBlbnRpdHkgPSBFbnRpdHlNYW5hZ2VyLmdldChlbnRpdHlOYW1lKTtcbiAgICAgICAgICBmaWxlbmFtZSA9IGAke2VudGl0eS50YWJsZX0uanNvbmA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmlsZW5hbWUgPSBzYXZlVGFyZ2V0LnJlcGxhY2UoXCJmaWxlOlwiLCBcIlwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpbGVwYXRoID0gcGF0aC5qb2luKGZpeHR1cmVzRGlyLCBmaWxlbmFtZSk7XG4gICAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShcbiAgICAgICAgICBmaWxlcGF0aCxcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIGVudGl0eVJlc3VsdHMubWFwKChyKSA9PiByLmRhdGEpLFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIDIsXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYOKchSAke2ZpbGVwYXRofSDsoIDsnqUg7JmE66OMYCkpO1xuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKFxuICAgICAgY2hhbGsucmVkKFxuICAgICAgICBcIkZpeHR1cmUg7IOd7ISxIOykkSDsmKTrpZjqsIAg67Cc7IOd7ZaI7Iq164uI64ukLlxcblwiICtcbiAgICAgICAgICBcIuybkOyduDogRW50aXR5IOygleydmOuCmCBEQiDsl7DqsrDsnYQg7ZmV7J247ZW07KO87IS47JqULlxcblwiICtcbiAgICAgICAgICBcIuyekOyEuO2VnCDrgrTsmqk6XCIsXG4gICAgICApLFxuICAgICAgZXJyb3IsXG4gICAgKTtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufVxuXG4vKipcbiAqIGZpeHR1cmUgZmV0Y2gg66qF66C57Ja0IC0g7Iuk7KCcIOyatOyYgSBEQuyXkOyEnCDrjbDsnbTthLDrpbwg6rCA7KC47JmAIGZpeHR1cmXroZwg7KCA7J6l7ZWp64uI64ukLlxuICog6rSA6rOE65CcIOuNsOydtO2EsOuPhCDtlajqu5gg6rCA7KC47Jik66+A66GcIO2YhOyLpOyggeyduCDthYzsiqTtirgg642w7J207YSw66W8IO2ZleuztO2VoCDsiJgg7J6I7Iq164uI64ukLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZml4dHVyZUZldGNoQ29tbWFuZChvcHRpb25zOiBGaXh0dXJlQ29tbWFuZE9wdGlvbnMpIHtcbiAgdHJ5IHtcbiAgICBpZiAoIUVudGl0eU1hbmFnZXIuaXNBdXRvbG9hZGVkKSB7XG4gICAgICBhd2FpdCBFbnRpdHlNYW5hZ2VyLmF1dG9sb2FkKCk7XG4gICAgfVxuXG4gICAgbGV0IGVudGl0eU5hbWVzOiBzdHJpbmdbXTtcblxuICAgIGlmIChvcHRpb25zLmFsbCkge1xuICAgICAgZW50aXR5TmFtZXMgPSBFbnRpdHlNYW5hZ2VyLmdldEFsbElkcygpO1xuICAgICAgaWYgKG9wdGlvbnMuZXhjbHVkZSkge1xuICAgICAgICBjb25zdCBleGNsdWRlTGlzdCA9IG9wdGlvbnMuZXhjbHVkZS5zcGxpdChcIixcIikubWFwKChzOiBzdHJpbmcpID0+IHMudHJpbSgpKTtcbiAgICAgICAgZW50aXR5TmFtZXMgPSBlbnRpdHlOYW1lcy5maWx0ZXIoKG5hbWUpID0+ICFleGNsdWRlTGlzdC5pbmNsdWRlcyhuYW1lKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmluY2x1ZGUpIHtcbiAgICAgIGVudGl0eU5hbWVzID0gb3B0aW9ucy5pbmNsdWRlLnNwbGl0KFwiLFwiKS5tYXAoKHM6IHN0cmluZykgPT4gcy50cmltKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwcm9tcHRzKHtcbiAgICAgICAgdHlwZTogXCJtdWx0aXNlbGVjdFwiLFxuICAgICAgICBuYW1lOiBcImVudGl0aWVzXCIsXG4gICAgICAgIG1lc3NhZ2U6IFwiSW1wb3J07ZWgIEVudGl0eeulvCDshKDtg53tlZjshLjsmpQ6XCIsXG4gICAgICAgIGNob2ljZXM6IEVudGl0eU1hbmFnZXIuZ2V0QWxsSWRzKCkubWFwKChpZCkgPT4gKHsgdGl0bGU6IGlkLCB2YWx1ZTogaWQgfSkpLFxuICAgICAgICBtaW46IDEsXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFyZXN1bHQuZW50aXRpZXMgfHwgcmVzdWx0LmVudGl0aWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBjb25zb2xlLmxvZyhjaGFsay55ZWxsb3coXCLst6jshozrkJjsl4jsirXri4jri6QuXCIpKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBlbnRpdHlOYW1lcyA9IHJlc3VsdC5lbnRpdGllcztcbiAgICB9XG5cbiAgICBjb25zdCBzdHJhdGVneTogRGF0YUV4cGxvcmVyU3RyYXRlZ3kgPSBvcHRpb25zLnN0cmF0ZWd5ID8/IFwicmVjZW50XCI7XG4gICAgY29uc3QgbGltaXQgPSBvcHRpb25zLmxpbWl0ID8gTnVtYmVyLnBhcnNlSW50KG9wdGlvbnMubGltaXQsIDEwKSA6IDEwO1xuXG4gICAgLy8gZml4dHVyZSBmZXRjaDogcHJvZHVjdGlvbiDrjbDsnbTthLDrpbwgZml4dHVyZSBEQuuhnCBpbXBvcnTtlanri4jri6RcbiAgICBjb25zdCBzb3VyY2VEYiA9IERCLmdldERCKFwiclwiKTsgLy8gcHJvZHVjdGlvbl9tYXN0ZXIgKOuYkOuKlCBkZXZlbG9wbWVudF9tYXN0ZXIpXG4gICAgY29uc3QgZml4dHVyZURiID0gY3JlYXRlS25leEluc3RhbmNlKFNvbmFtdS5kYkNvbmZpZy5maXh0dXJlKTtcbiAgICBjb25zdCBnZW5lcmF0b3IgPSBuZXcgRml4dHVyZUdlbmVyYXRvcihzb3VyY2VEYiwgZml4dHVyZURiLCBcImZpeHR1cmVcIiwgRW50aXR5TWFuYWdlcik7XG5cbiAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKGBcXG4ke2VudGl0eU5hbWVzLmpvaW4oXCIsIFwiKX0gaW1wb3J0IOykkS4uLmApKTtcblxuICAgIGZvciAoY29uc3QgZW50aXR5TmFtZSBvZiBlbnRpdHlOYW1lcykge1xuICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IGdlbmVyYXRvci5pbXBvcnRGcm9tU291cmNlKGVudGl0eU5hbWUsIHtcbiAgICAgICAgc3RyYXRlZ3ksXG4gICAgICAgIGxpbWl0LFxuICAgICAgICBpbmNsdWRlUmVsYXRpb25zOiB0cnVlLFxuICAgICAgICBtYXhEZXB0aDogMixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbihg4pyFICR7ZW50aXR5TmFtZX06ICR7cmVzdWx0cy5sZW5ndGh96rCcIGltcG9ydCDsmYTro4xgKSk7XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBjaGFsay5yZWQoXG4gICAgICAgIFwi7Iuk7KCcIERC7JeQ7IScIOuNsOydtO2EsOulvCDqsIDsoLjsmKTripQg7KSRIOyYpOulmOqwgCDrsJzsg53tlojsirXri4jri6QuXFxuXCIgK1xuICAgICAgICAgIFwi7JuQ7J24OiDshozsiqQgREIg7Jew6rKwIOyEpOyglShzb25hbXUuY29uZmlnLnRzKeydtOuCmCBFbnRpdHkg6rSA6rOEIOygleydmOulvCDtmZXsnbjtlbTso7zshLjsmpQuXFxuXCIgK1xuICAgICAgICAgIFwi7J6Q7IS47ZWcIOuCtOyaqTpcIixcbiAgICAgICksXG4gICAgICBlcnJvcixcbiAgICApO1xuICAgIHRocm93IGVycm9yO1xuICB9XG59XG5cbi8qKlxuICogZml4dHVyZSBleHBsb3JlIOuqheugueyWtCAtIERC7J2YIOyLpOygnCDrjbDsnbTthLDrpbwg7KGw7ZqM7ZWY7JesIO2ZleyduO2VqeuLiOuLpC5cbiAqIOyggOyepe2VmOyngCDslYrqs6Ag7KGw7ZqM66eMIO2VmOuvgOuhnCDrjbDsnbTthLDrpbwg67mg66W06rKMIO2ZleyduO2VoCDrlYwg7Jyg7Jqp7ZWp64uI64ukLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZml4dHVyZUV4cGxvcmVDb21tYW5kKG9wdGlvbnM6IEZpeHR1cmVDb21tYW5kT3B0aW9ucykge1xuICB0cnkge1xuICAgIGlmICghRW50aXR5TWFuYWdlci5pc0F1dG9sb2FkZWQpIHtcbiAgICAgIGF3YWl0IEVudGl0eU1hbmFnZXIuYXV0b2xvYWQoKTtcbiAgICB9XG5cbiAgICBsZXQgZW50aXR5TmFtZSA9IG9wdGlvbnMuaW5jbHVkZTtcblxuICAgIGlmICghZW50aXR5TmFtZSkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcHJvbXB0cyh7XG4gICAgICAgIHR5cGU6IFwic2VsZWN0XCIsXG4gICAgICAgIG5hbWU6IFwiZW50aXR5XCIsXG4gICAgICAgIG1lc3NhZ2U6IFwi7YOQ7IOJ7ZWgIEVudGl0eTpcIixcbiAgICAgICAgY2hvaWNlczogRW50aXR5TWFuYWdlci5nZXRBbGxJZHMoKS5tYXAoKGlkKSA9PiAoeyB0aXRsZTogaWQsIHZhbHVlOiBpZCB9KSksXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFyZXN1bHQuZW50aXR5KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnllbGxvdyhcIuy3qOyGjOuQmOyXiOyKteuLiOuLpC5cIikpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGVudGl0eU5hbWUgPSByZXN1bHQuZW50aXR5O1xuICAgIH1cblxuICAgIGlmICghZW50aXR5TmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRW50aXR5IG5hbWUgaXMgcmVxdWlyZWRcIik7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RyYXRlZ3k6IERhdGFFeHBsb3JlclN0cmF0ZWd5ID0gb3B0aW9ucy5zdHJhdGVneSA/PyBcInNhbXBsZVwiO1xuICAgIGNvbnN0IGxpbWl0ID0gb3B0aW9ucy5saW1pdCA/IE51bWJlci5wYXJzZUludChvcHRpb25zLmxpbWl0LCAxMCkgOiAxMDtcblxuICAgIGNvbnN0IGRiID0gREIuZ2V0REIoXCJyXCIpO1xuICAgIGNvbnN0IGV4cGxvcmVyID0gbmV3IERhdGFFeHBsb3JlcihkYiwgRW50aXR5TWFuYWdlcik7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IGV4cGxvcmVyLmV4cGxvcmUoZW50aXR5TmFtZSwgeyBzdHJhdGVneSwgbGltaXQgfSk7XG5cbiAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKGBcXG4ke2VudGl0eU5hbWV9ICR7ZGF0YS5sZW5ndGh96rCcIOyhsO2ajCDsmYTro4w6YCkpO1xuICAgIGNvbnNvbGUudGFibGUoZGF0YSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcihcbiAgICAgIGNoYWxrLnJlZChcbiAgICAgICAgXCLrjbDsnbTthLAg7KGw7ZqMIOykkSDsmKTrpZjqsIAg67Cc7IOd7ZaI7Iq164uI64ukLlxcblwiICtcbiAgICAgICAgICBcIuybkOyduDogREIg7Jew6rKw7J2064KYIEVudGl0eSDsoJXsnZjrpbwg7ZmV7J247ZW07KO87IS47JqULlxcblwiICtcbiAgICAgICAgICBcIuyekOyEuO2VnCDrgrTsmqk6XCIsXG4gICAgICApLFxuICAgICAgZXJyb3IsXG4gICAgKTtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O2FBR3VDO1NBQ0g7V0FDa0I7cUJBQ0c7b0JBQ0Q7d0JBRVE7Ozs7QUFrQmhFLFNBQVMsaUJBQWlCLEtBQXFCO0NBRTdDLElBQUksV0FBVyxJQUFJLGFBQWEsQ0FBQyxRQUFRLGNBQWMsR0FBRztBQUMxRCxLQUFJLFNBQVMsV0FBVyxHQUFHO0FBQ3pCLGFBQVc7O0FBR2IsS0FBSSxTQUFTLEtBQUssU0FBUyxFQUFFO0FBQzNCLGFBQVcsSUFBSTs7QUFHakIsUUFBTyxTQUFTLE1BQU0sR0FBRyxHQUFHOzs7OztBQU05QixlQUFzQixrQkFBa0IsU0FBZ0M7QUFDdEUsS0FBSTtBQUNGLE1BQUksQ0FBQyxjQUFj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
|