@atlasauth/angular 0.6.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -0
- package/dist/esm2022/lib/components/user-profile.component.mjs +103 -2
- package/dist/esm2022/lib/i18n.mjs +6 -1
- package/dist/esm2022/lib/version.mjs +2 -2
- package/dist/fesm2022/atlasauth-angular.mjs +107 -1
- package/dist/fesm2022/atlasauth-angular.mjs.map +1 -1
- package/dist/lib/components/user-profile.component.d.ts +7 -0
- package/dist/lib/version.d.ts +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# @atlasauth/angular changelog
|
|
2
2
|
|
|
3
|
+
## 0.6.1
|
|
4
|
+
- **`<atlas-user-profile>` can verify an address.** Each unverified email address now has a **Verify** button: it emails a code (`POST /v1/client/me/email_addresses/{id}/prepare_verification`) and shows a field to enter it (`attempt_verification`), then reloads the user. This includes the sign-up address on an app that does not require email verification, which now reads unverified until it is proven. New catalog keys: `userProfile.verify`, `userProfile.verifyConfirm`, `userProfile.verifyCodePlaceholder`, `userProfile.verifySendFailed`, `userProfile.verifyCodeRejected`.
|
|
5
|
+
|
|
3
6
|
## 0.6.0
|
|
4
7
|
- **New `provideAtlas({ onSignOut })`, `AtlasService.signOut$` and `AtlasService.onSignOut(listener)`**: `onSignOut({ reason, sessionId })` fired once each time a signed-in user becomes signed out, on every
|
|
5
8
|
path: `reason` is `user` (this tab), `other_tab`, `session_expired`, `revoked` (the session was ended elsewhere,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, inject, signal } from '@angular/core';
|
|
2
2
|
import { AtlasService } from '../atlas.service';
|
|
3
3
|
import { classFor } from '../appearance';
|
|
4
4
|
import { translate } from '../i18n';
|
|
@@ -10,6 +10,43 @@ import * as i0 from "@angular/core";
|
|
|
10
10
|
*/
|
|
11
11
|
export class UserProfileComponent {
|
|
12
12
|
atlas = inject(AtlasService);
|
|
13
|
+
// An unverified address (added and never confirmed, or the sign-up address on
|
|
14
|
+
// an app that did not require verification) can be proven here: send a code,
|
|
15
|
+
// then enter it.
|
|
16
|
+
verifying = signal(null);
|
|
17
|
+
code = signal('');
|
|
18
|
+
busy = signal(false);
|
|
19
|
+
verifyError = signal(null);
|
|
20
|
+
client = this.atlas.createFapiClient();
|
|
21
|
+
async sendCode(id) {
|
|
22
|
+
this.verifyError.set(null);
|
|
23
|
+
this.busy.set(true);
|
|
24
|
+
const res = await this.client.post(`/v1/client/me/email_addresses/${id}/prepare_verification`);
|
|
25
|
+
this.busy.set(false);
|
|
26
|
+
if (!res.ok) {
|
|
27
|
+
this.verifyError.set(this.t('userProfile.verifySendFailed'));
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
this.code.set('');
|
|
31
|
+
this.verifying.set(id);
|
|
32
|
+
}
|
|
33
|
+
async confirmCode() {
|
|
34
|
+
const id = this.verifying();
|
|
35
|
+
if (!id)
|
|
36
|
+
return;
|
|
37
|
+
this.verifyError.set(null);
|
|
38
|
+
this.busy.set(true);
|
|
39
|
+
const res = await this.client.post(`/v1/client/me/email_addresses/${id}/attempt_verification`, {
|
|
40
|
+
code: this.code(),
|
|
41
|
+
});
|
|
42
|
+
this.busy.set(false);
|
|
43
|
+
if (!res.ok) {
|
|
44
|
+
this.verifyError.set(this.t('userProfile.verifyCodeRejected'));
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
this.verifying.set(null);
|
|
48
|
+
await this.atlas.reload();
|
|
49
|
+
}
|
|
13
50
|
t(key) {
|
|
14
51
|
return translate(this.atlas.localization, key);
|
|
15
52
|
}
|
|
@@ -30,10 +67,42 @@ export class UserProfileComponent {
|
|
|
30
67
|
{{ email.email_address }}
|
|
31
68
|
@if (!email.verified) {
|
|
32
69
|
<em> — {{ t('userProfile.unverified') }}</em>
|
|
70
|
+
@if (verifying() === email.id) {
|
|
71
|
+
<span data-atlas="email-verify">
|
|
72
|
+
<input
|
|
73
|
+
[class]="cls('formFieldInput', 'atlas-account-input')"
|
|
74
|
+
inputmode="numeric"
|
|
75
|
+
autocomplete="one-time-code"
|
|
76
|
+
[placeholder]="t('userProfile.verifyCodePlaceholder')"
|
|
77
|
+
[value]="code()"
|
|
78
|
+
(input)="code.set($any($event.target).value)"
|
|
79
|
+
/>
|
|
80
|
+
<button
|
|
81
|
+
[class]="cls('formButtonSecondary', 'atlas-button-secondary')"
|
|
82
|
+
type="button"
|
|
83
|
+
[disabled]="busy()"
|
|
84
|
+
(click)="confirmCode()"
|
|
85
|
+
>
|
|
86
|
+
{{ t('userProfile.verifyConfirm') }}
|
|
87
|
+
</button>
|
|
88
|
+
</span>
|
|
89
|
+
} @else {
|
|
90
|
+
<button
|
|
91
|
+
[class]="cls('formButtonSecondary', 'atlas-button-secondary')"
|
|
92
|
+
type="button"
|
|
93
|
+
[disabled]="busy()"
|
|
94
|
+
(click)="sendCode(email.id)"
|
|
95
|
+
>
|
|
96
|
+
{{ t('userProfile.verify') }}
|
|
97
|
+
</button>
|
|
98
|
+
}
|
|
33
99
|
}
|
|
34
100
|
</li>
|
|
35
101
|
}
|
|
36
102
|
</ul>
|
|
103
|
+
@if (verifyError(); as message) {
|
|
104
|
+
<p role="alert">{{ message }}</p>
|
|
105
|
+
}
|
|
37
106
|
</section>
|
|
38
107
|
|
|
39
108
|
<section>
|
|
@@ -63,10 +132,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
63
132
|
{{ email.email_address }}
|
|
64
133
|
@if (!email.verified) {
|
|
65
134
|
<em> — {{ t('userProfile.unverified') }}</em>
|
|
135
|
+
@if (verifying() === email.id) {
|
|
136
|
+
<span data-atlas="email-verify">
|
|
137
|
+
<input
|
|
138
|
+
[class]="cls('formFieldInput', 'atlas-account-input')"
|
|
139
|
+
inputmode="numeric"
|
|
140
|
+
autocomplete="one-time-code"
|
|
141
|
+
[placeholder]="t('userProfile.verifyCodePlaceholder')"
|
|
142
|
+
[value]="code()"
|
|
143
|
+
(input)="code.set($any($event.target).value)"
|
|
144
|
+
/>
|
|
145
|
+
<button
|
|
146
|
+
[class]="cls('formButtonSecondary', 'atlas-button-secondary')"
|
|
147
|
+
type="button"
|
|
148
|
+
[disabled]="busy()"
|
|
149
|
+
(click)="confirmCode()"
|
|
150
|
+
>
|
|
151
|
+
{{ t('userProfile.verifyConfirm') }}
|
|
152
|
+
</button>
|
|
153
|
+
</span>
|
|
154
|
+
} @else {
|
|
155
|
+
<button
|
|
156
|
+
[class]="cls('formButtonSecondary', 'atlas-button-secondary')"
|
|
157
|
+
type="button"
|
|
158
|
+
[disabled]="busy()"
|
|
159
|
+
(click)="sendCode(email.id)"
|
|
160
|
+
>
|
|
161
|
+
{{ t('userProfile.verify') }}
|
|
162
|
+
</button>
|
|
163
|
+
}
|
|
66
164
|
}
|
|
67
165
|
</li>
|
|
68
166
|
}
|
|
69
167
|
</ul>
|
|
168
|
+
@if (verifyError(); as message) {
|
|
169
|
+
<p role="alert">{{ message }}</p>
|
|
170
|
+
}
|
|
70
171
|
</section>
|
|
71
172
|
|
|
72
173
|
<section>
|
|
@@ -78,4 +179,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
78
179
|
`,
|
|
79
180
|
}]
|
|
80
181
|
}] });
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy91c2VyLXByb2ZpbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBbUIsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFFcEM7Ozs7R0FJRztBQWdFSCxNQUFNLE9BQU8sb0JBQW9CO0lBQ1osS0FBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCw4RUFBOEU7SUFDOUUsNkVBQTZFO0lBQzdFLGlCQUFpQjtJQUNFLFNBQVMsR0FBRyxNQUFNLENBQWdCLElBQUksQ0FBQyxDQUFDO0lBQ3hDLElBQUksR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEIsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixXQUFXLEdBQUcsTUFBTSxDQUFnQixJQUFJLENBQUMsQ0FBQztJQUM1QyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBRTlDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBVTtRQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxFQUFFLHVCQUF1QixDQUFDLENBQUM7UUFDL0YsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsOEJBQThCLENBQUMsQ0FBQyxDQUFDO1lBQzdELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVTLEtBQUssQ0FBQyxXQUFXO1FBQ3pCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsRUFBRTtZQUFFLE9BQU87UUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQ0FBaUMsRUFBRSx1QkFBdUIsRUFBRTtZQUM3RixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtTQUNsQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUM7WUFDL0QsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVTLENBQUMsQ0FBQyxHQUFXO1FBQ3JCLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFUyxHQUFHLENBQUMsR0FBZSxFQUFFLElBQVk7UUFDekMsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3BELENBQUM7d0dBL0NVLG9CQUFvQjs0RkFBcEIsb0JBQW9CLDhFQTNEckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlEVDs7NEZBRVUsb0JBQW9CO2tCQS9EaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeURUO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF0bGFzU2VydmljZSB9IGZyb20gJy4uL2F0bGFzLnNlcnZpY2UnO1xuaW1wb3J0IHsgY2xhc3NGb3IsIHR5cGUgRWxlbWVudEtleSB9IGZyb20gJy4uL2FwcGVhcmFuY2UnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIH0gZnJvbSAnLi4vaTE4bic7XG5cbi8qKlxuICogYDxhdGxhcy11c2VyLXByb2ZpbGU+YCDigJQgdGhlIHNpZ25lZC1pbiB1c2VyJ3MgYWNjb3VudCBzdXJmYWNlIChlbWFpbHMsXG4gKiBzZWN1cml0eSkuIFRoZSBBbmd1bGFyIHBlZXIgb2YgUmVhY3QncyBgPFVzZXJQcm9maWxlLz5gLiBSZW5kZXJzIG5vdGhpbmcgd2hlblxuICogdGhlcmUgaXMgbm8gdXNlci5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXRsYXMtdXNlci1wcm9maWxlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChhdGxhcy51c2VyKCk7IGFzIHVzZXIpIHtcbiAgICAgIDxkaXYgW2NsYXNzXT1cImNscygnY2FyZCcsICdhdGxhcy1jYXJkJylcIj5cbiAgICAgICAgPGgxPnt7IHQoJ3VzZXJQcm9maWxlLnRpdGxlJykgfX08L2gxPlxuXG4gICAgICAgIDxzZWN0aW9uPlxuICAgICAgICAgIDxoMj57eyB0KCd1c2VyUHJvZmlsZS5lbWFpbHNTZWN0aW9uJykgfX08L2gyPlxuICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgIEBmb3IgKGVtYWlsIG9mIHVzZXIuZW1haWxfYWRkcmVzc2VzID8/IFtdOyB0cmFjayBlbWFpbC5pZCkge1xuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAge3sgZW1haWwuZW1haWxfYWRkcmVzcyB9fVxuICAgICAgICAgICAgICAgIEBpZiAoIWVtYWlsLnZlcmlmaWVkKSB7XG4gICAgICAgICAgICAgICAgICA8ZW0+IOKAlCB7eyB0KCd1c2VyUHJvZmlsZS51bnZlcmlmaWVkJykgfX08L2VtPlxuICAgICAgICAgICAgICAgICAgQGlmICh2ZXJpZnlpbmcoKSA9PT0gZW1haWwuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gZGF0YS1hdGxhcz1cImVtYWlsLXZlcmlmeVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNscygnZm9ybUZpZWxkSW5wdXQnLCAnYXRsYXMtYWNjb3VudC1pbnB1dCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib25lLXRpbWUtY29kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidCgndXNlclByb2ZpbGUudmVyaWZ5Q29kZVBsYWNlaG9sZGVyJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNvZGUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwiY29kZS5zZXQoJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNscygnZm9ybUJ1dHRvblNlY29uZGFyeScsICdhdGxhcy1idXR0b24tc2Vjb25kYXJ5JylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYnVzeSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjb25maXJtQ29kZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyB0KCd1c2VyUHJvZmlsZS52ZXJpZnlDb25maXJtJykgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY2xzKCdmb3JtQnV0dG9uU2Vjb25kYXJ5JywgJ2F0bGFzLWJ1dHRvbi1zZWNvbmRhcnknKVwiXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImJ1c3koKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbmRDb2RlKGVtYWlsLmlkKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7eyB0KCd1c2VyUHJvZmlsZS52ZXJpZnknKSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgICBAaWYgKHZlcmlmeUVycm9yKCk7IGFzIG1lc3NhZ2UpIHtcbiAgICAgICAgICAgIDxwIHJvbGU9XCJhbGVydFwiPnt7IG1lc3NhZ2UgfX08L3A+XG4gICAgICAgICAgfVxuICAgICAgICA8L3NlY3Rpb24+XG5cbiAgICAgICAgPHNlY3Rpb24+XG4gICAgICAgICAgPGgyPnt7IHQoJ3VzZXJQcm9maWxlLnNlY3VyaXR5U2VjdGlvbicpIH19PC9oMj5cbiAgICAgICAgICA8cD57eyB1c2VyLm1mYV9lbmFibGVkID8gJzJGQSBvbicgOiAnMkZBIG9mZicgfX08L3A+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgVXNlclByb2ZpbGVDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXRsYXMgPSBpbmplY3QoQXRsYXNTZXJ2aWNlKTtcbiAgLy8gQW4gdW52ZXJpZmllZCBhZGRyZXNzIChhZGRlZCBhbmQgbmV2ZXIgY29uZmlybWVkLCBvciB0aGUgc2lnbi11cCBhZGRyZXNzIG9uXG4gIC8vIGFuIGFwcCB0aGF0IGRpZCBub3QgcmVxdWlyZSB2ZXJpZmljYXRpb24pIGNhbiBiZSBwcm92ZW4gaGVyZTogc2VuZCBhIGNvZGUsXG4gIC8vIHRoZW4gZW50ZXIgaXQuXG4gIHByb3RlY3RlZCByZWFkb25seSB2ZXJpZnlpbmcgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjb2RlID0gc2lnbmFsKCcnKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGJ1c3kgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdmVyaWZ5RXJyb3IgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2xpZW50ID0gdGhpcy5hdGxhcy5jcmVhdGVGYXBpQ2xpZW50KCk7XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHNlbmRDb2RlKGlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnZlcmlmeUVycm9yLnNldChudWxsKTtcbiAgICB0aGlzLmJ1c3kuc2V0KHRydWUpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuY2xpZW50LnBvc3QoYC92MS9jbGllbnQvbWUvZW1haWxfYWRkcmVzc2VzLyR7aWR9L3ByZXBhcmVfdmVyaWZpY2F0aW9uYCk7XG4gICAgdGhpcy5idXN5LnNldChmYWxzZSk7XG4gICAgaWYgKCFyZXMub2spIHtcbiAgICAgIHRoaXMudmVyaWZ5RXJyb3Iuc2V0KHRoaXMudCgndXNlclByb2ZpbGUudmVyaWZ5U2VuZEZhaWxlZCcpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jb2RlLnNldCgnJyk7XG4gICAgdGhpcy52ZXJpZnlpbmcuc2V0KGlkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjb25maXJtQ29kZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpZCA9IHRoaXMudmVyaWZ5aW5nKCk7XG4gICAgaWYgKCFpZCkgcmV0dXJuO1xuICAgIHRoaXMudmVyaWZ5RXJyb3Iuc2V0KG51bGwpO1xuICAgIHRoaXMuYnVzeS5zZXQodHJ1ZSk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5jbGllbnQucG9zdChgL3YxL2NsaWVudC9tZS9lbWFpbF9hZGRyZXNzZXMvJHtpZH0vYXR0ZW1wdF92ZXJpZmljYXRpb25gLCB7XG4gICAgICBjb2RlOiB0aGlzLmNvZGUoKSxcbiAgICB9KTtcbiAgICB0aGlzLmJ1c3kuc2V0KGZhbHNlKTtcbiAgICBpZiAoIXJlcy5vaykge1xuICAgICAgdGhpcy52ZXJpZnlFcnJvci5zZXQodGhpcy50KCd1c2VyUHJvZmlsZS52ZXJpZnlDb2RlUmVqZWN0ZWQnKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudmVyaWZ5aW5nLnNldChudWxsKTtcbiAgICBhd2FpdCB0aGlzLmF0bGFzLnJlbG9hZCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0cmFuc2xhdGUodGhpcy5hdGxhcy5sb2NhbGl6YXRpb24sIGtleSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xzKGtleTogRWxlbWVudEtleSwgYmFzZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY2xhc3NGb3Ioa2V5LCB0aGlzLmF0bGFzLmFwcGVhcmFuY2UsIGJhc2UpO1xuICB9XG59XG4iXX0=
|
|
@@ -73,6 +73,11 @@ export const EN_US = {
|
|
|
73
73
|
'userProfile.addEmail': 'Add an email address',
|
|
74
74
|
'userProfile.makePrimary': 'Make primary',
|
|
75
75
|
'userProfile.unverified': 'Unverified',
|
|
76
|
+
'userProfile.verify': 'Verify',
|
|
77
|
+
'userProfile.verifyConfirm': 'Confirm',
|
|
78
|
+
'userProfile.verifyCodePlaceholder': 'Code from the email',
|
|
79
|
+
'userProfile.verifySendFailed': 'We could not send a code right now. Try again in a minute.',
|
|
80
|
+
'userProfile.verifyCodeRejected': 'That code was not accepted.',
|
|
76
81
|
'userProfile.revokeDevice': 'Sign out',
|
|
77
82
|
'userProfile.deleteAccount': 'Delete account',
|
|
78
83
|
'organization.switcher': 'Switch organization',
|
|
@@ -138,4 +143,4 @@ export function translate(catalog, key, variables = {}) {
|
|
|
138
143
|
export function withFallback(locale) {
|
|
139
144
|
return { ...EN_US, ...locale };
|
|
140
145
|
}
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHO0FBSUgsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFZO0lBQzVCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLGlCQUFpQixFQUFFLDhCQUE4QjtJQUNqRCx3QkFBd0IsRUFBRSxlQUFlO0lBQ3pDLHNCQUFzQixFQUFFLFVBQVU7SUFDbEMsZUFBZSxFQUFFLFVBQVU7SUFDM0IsdUJBQXVCLEVBQUUsa0JBQWtCO0lBQzNDLGtCQUFrQixFQUFFLGFBQWE7SUFDakMsbUJBQW1CLEVBQUUsU0FBUztJQUM5QixrQkFBa0IsRUFBRSxJQUFJO0lBQ3hCLHFCQUFxQixFQUFFLDBCQUEwQjtJQUNqRCx1QkFBdUIsRUFBRSxtQkFBbUI7SUFDNUMscUJBQXFCLEVBQUUsaUJBQWlCO0lBQ3hDLG1CQUFtQixFQUFFLDRDQUE0QztJQUNqRSxtQkFBbUIsRUFBRSxhQUFhO0lBQ2xDLHNCQUFzQixFQUFFLHNDQUFzQztJQUM5RCxzQkFBc0IsRUFBRSwrREFBK0Q7SUFFdkYsY0FBYyxFQUFFLHFCQUFxQjtJQUNyQyxlQUFlLEVBQUUsVUFBVTtJQUMzQixvQkFBb0IsRUFBRSwwQkFBMEI7SUFDaEQsbUJBQW1CLEVBQUUsU0FBUztJQUM5QixtQkFBbUIsRUFBRSxlQUFlO0lBQ3BDLHNCQUFzQixFQUFFLFVBQVU7SUFDbEMsc0JBQXNCLEVBQUUsb0JBQW9CO0lBQzVDLDBCQUEwQixFQUFFLFNBQVM7SUFDckMscUJBQXFCLEVBQUUsZ0JBQWdCO0lBQ3ZDLHNCQUFzQixFQUFFLGdDQUFnQztJQUN4RCxjQUFjLEVBQUUsa0JBQWtCO0lBQ2xDLGdCQUFnQixFQUFFLGdCQUFnQjtJQUNsQyxZQUFZLEVBQUUsS0FBSztJQUNuQixrREFBa0Q7SUFDbEQseUJBQXlCLEVBQ3ZCLDJGQUEyRjtJQUU3RixnQkFBZ0IsRUFBRSww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RSxzRUFBc0U7SUFDeEcsb0JBQW9CLEVBQUUsK0RBQStEO0lBQ3JGLHlCQUF5QixFQUFFLG9DQUFvQztJQUMvRCx5QkFBeUIsRUFBRSxvQ0FBb0M7SUFDL0QseUJBQXlCLEVBQUUscURBQXFEO0lBQ2hGLDBCQUEwQixFQUFFLHdEQUF3RDtDQUNyRixDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FDdkIsT0FBZ0IsRUFDaEIsR0FBVyxFQUNYLFlBQW9DLEVBQUU7SUFFdEMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUM7SUFDbkQsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFZLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQztBQUMzRixDQUFDO0FBRUQsa0ZBQWtGO0FBQ2xGLE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBZTtJQUMxQyxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztBQUNqQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiDCpzEwLjM6IFwiRXZlcnkgc3RyaW5nIHBhc3NlcyB0aHJvdWdoIGFuIGkxOG4gY2F0YWxvZzsgZW4tVVMgc2hpcHMsIGNhdGFsb2dcbiAqIGZvcm1hdCBkb2N1bWVudGVkIGZvciBjb21tdW5pdHkgbG9jYWxlcy5cIlxuICpcbiAqIEEgZmxhdCBrZXktdG8tc3RyaW5nIG1hcCByYXRoZXIgdGhhbiBuZXN0ZWQgb2JqZWN0cywgYmVjYXVzZSBuZXN0aW5nIGxvb2tzXG4gKiB0aWRpZXIgYW5kIG1ha2VzIGEgbWlzc2luZyBrZXkgYSBydW50aW1lIGNyYXNoIG9uIGB1bmRlZmluZWQub2YuYS5jaGFpbmBcbiAqIHJhdGhlciB0aGFuIGEgdmlzaWJsZSBmYWxsYmFjay5cbiAqXG4gKiBBIG1pc3Npbmcga2V5IHJlbmRlcnMgdGhlIEtFWSwgbm90IGFuIGVtcHR5IHN0cmluZy4gQSBibGFuayBidXR0b24gaXMgYSBidWdcbiAqIG5vYm9keSBjYW4gcmVwb3J0OyBhIGJ1dHRvbiByZWFkaW5nIGBzaWduSW4uc3VibWl0YCBpcyBvbmUgYW55b25lIGNhbi5cbiAqL1xuXG5leHBvcnQgdHlwZSBDYXRhbG9nID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuZXhwb3J0IGNvbnN0IEVOX1VTOiBDYXRhbG9nID0ge1xuICAnc2lnbkluLnRpdGxlJzogJ1NpZ24gaW4nLFxuICAnc2lnbkluLnN1YnRpdGxlJzogJ3RvIGNvbnRpbnVlIHRvIHthcHBsaWNhdGlvbn0nLFxuICAnc2lnbkluLmlkZW50aWZpZXJMYWJlbCc6ICdFbWFpbCBhZGRyZXNzJyxcbiAgJ3NpZ25Jbi5wYXNzd29yZExhYmVsJzogJ1Bhc3N3b3JkJyxcbiAgJ3NpZ25Jbi5zdWJtaXQnOiAnQ29udGludWUnLFxuICAnc2lnbkluLmZvcmdvdFBhc3N3b3JkJzogJ0ZvcmdvdCBwYXNzd29yZD8nLFxuICAnc2lnbkluLm5vQWNjb3VudCc6ICdObyBhY2NvdW50PycsXG4gICdzaWduSW4uc2lnblVwTGluayc6ICdTaWduIHVwJyxcbiAgJ3NpZ25Jbi5vckRpdmlkZXInOiAnb3InLFxuICAnc2lnbkluLnNvY2lhbEJ1dHRvbic6ICdDb250aW51ZSB3aXRoIHtwcm92aWRlcn0nLFxuICAnc2lnbkluLmVtYWlsQ29kZUxhYmVsJzogJ1ZlcmlmaWNhdGlvbiBjb2RlJyxcbiAgJ3NpZ25Jbi51c2VFbWFpbENvZGUnOiAnRW1haWwgbWUgYSBjb2RlJyxcbiAgJ3NpZ25Jbi5jb2RlU2VudFRvJzogJ1dlIHNlbnQgYSBjb2RlIHRvIHtlbWFpbH0uIEVudGVyIGl0IGJlbG93LicsXG4gICdzaWduSW4ucmVzZW5kQ29kZSc6ICdSZXNlbmQgY29kZScsXG4gICdzaWduSW4ubWFnaWNMaW5rU2VudCc6ICdDaGVjayB5b3VyIGVtYWlsIGZvciBhIHNpZ24taW4gbGluay4nLFxuICAnc2lnbkluLmNoZWNrT3RoZXJUYWInOiAnWW91IGNhbiBjbG9zZSB0aGlzIHRhYiDigJQgeW91IGFyZSBzaWduZWQgaW4gd2hlcmUgeW91IHN0YXJ0ZWQuJyxcblxuICAnc2lnblVwLnRpdGxlJzogJ0NyZWF0ZSB5b3VyIGFjY291bnQnLFxuICAnc2lnblVwLnN1Ym1pdCc6ICdDb250aW51ZScsXG4gICdzaWduVXAuaGF2ZUFjY291bnQnOiAnQWxyZWFkeSBoYXZlIGFuIGFjY291bnQ/JyxcbiAgJ3NpZ25VcC5zaWduSW5MaW5rJzogJ1NpZ24gaW4nLFxuICAnc2lnblVwLmVtYWlsTGFiZWwnOiAnRW1haWwgYWRkcmVzcycsXG4gICdzaWduVXAucGFzc3dvcmRMYWJlbCc6ICdQYXNzd29yZCcsXG4gICdzaWduVXAub3B0aW9uYWxGaWVsZCc6ICd7bGFiZWx9IChvcHRpb25hbCknLFxuICAnc2lnblVwLnNlbGVjdFBsYWNlaG9sZGVyJzogJ1NlbGVjdOKApicsXG4gICdzaWduVXAuY29uc2VudEFncmVlJzogJ0kgYWdyZWUgdG8gdGhlJyxcbiAgJ3NpZ25VcC5jb25zZW50Tm90aWNlJzogJ0J5IGNvbnRpbnVpbmcgeW91IGFncmVlIHRvIHRoZScsXG4gICdzaWduVXAudGVybXMnOiAnVGVybXMgb2YgU2VydmljZScsXG4gICdzaWduVXAucHJpdmFjeSc6ICdQcml2YWN5IFBvbGljeScsXG4gICdzaWduVXAuYW5kJzogJ2FuZCcsXG4gIC8vID0gRU1BSUxfVU5BVkFJTEFCTEVfTUVTU0FHRSBmcm9tIEBhdGxhc2F1dGgvanMuXG4gICdzaWduVXAuZW1haWxVbmF2YWlsYWJsZSc6XG4gICAgXCJUaGlzIGFwcCBjYW4ndCBzZW5kIGVtYWlsIHJpZ2h0IG5vdy4gVHJ5IGFub3RoZXIgc2lnbi1pbiBtZXRob2Qgb3IgY29udGFjdCB0aGUgYXBwIG93bmVyLlwiLFxuXG4gICdjYXB0Y2hhLnByb21wdCc6ICdDb21wbGV0ZSB0aGUgc2VjdXJpdHkgY2hlY2sgdG8gY29udGludWUuJyxcbiAgJ2NhcHRjaGEucmVxdWlyZWQnOiAnUGxlYXNlIGNvbXBsZXRlIHRoZSBzZWN1cml0eSBjaGVjaywgdGhlbiB0cnkgYWdhaW4uJyxcbiAgJ2NhcHRjaGEuZmFpbGVkJzogXCJUaGUgc2VjdXJpdHkgY2hlY2sgZGlkbid0IHBhc3MuIFBsZWFzZSB0cnkgYWdhaW4uXCIsXG4gICdjYXB0Y2hhLmNoZWNraW5nJzogJ0NoZWNraW5nIHlvdXIgYnJvd3NlcuKApicsXG4gICdjYXB0Y2hhLnZlcmlmaWVkJzogJ1NlY3VyaXR5IGNoZWNrIGNvbXBsZXRlLicsXG4gICdjYXB0Y2hhLnB1enpsZVByb21wdCc6IFwiU2VsZWN0IGV2ZXJ5IHBpY3R1cmUgdGhhdCBzaG93cyB0aGUgc2FtZSBzaGFwZSBhcyB0aGlzIG9uZS4gQ29sb3VyIGFuZCBzaXplIGRvbid0IG1hdHRlci5cIixcbiAgJ2NhcHRjaGEucHV6emxlQ29uZmlybSc6ICdDb25maXJtJyxcbiAgJ2NhcHRjaGEucHV6emxlVGlsZSc6ICdQaWN0dXJlIHtufScsXG4gICdjYXB0Y2hhLnB1enpsZUFsdGVybmF0aXZlJzogXCJDYW4ndCBkbyB0aGUgcGljdHVyZSBjaGVjaz8gVXNlIGEgbG9uZ2VyIGF1dG9tYXRpYyBjaGVjayBpbnN0ZWFkLlwiLFxuXG4gICdtZmEudGl0bGUnOiAnVHdvLXN0ZXAgdmVyaWZpY2F0aW9uJyxcbiAgJ21mYS5zdWJ0aXRsZSc6ICdFbnRlciB0aGUgY29kZSBmcm9tIHlvdXIgYXV0aGVudGljYXRvciBhcHAuJyxcbiAgJ21mYS5jb2RlTGFiZWwnOiAnQ29kZScsXG4gICdtZmEuZW5yb2xsRmlyc3RDb2RlTGFiZWwnOiAnQ29kZSBmcm9tIHlvdXIgYXV0aGVudGljYXRvciBhcHAnLFxuICAnbWZhLmVucm9sbFNlY29uZENvZGVMYWJlbCc6ICdUaGUgbmV4dCBjb2RlIGl0IHNob3dzJyxcbiAgJ21mYS51c2VQYXNza2V5JzogJ1VzZSBhIHBhc3NrZXkgaW5zdGVhZCcsXG4gICdtZmEudXNlQmFja3VwQ29kZSc6ICdVc2UgYSByZWNvdmVyeSBjb2RlJyxcbiAgJ21mYS5zdWJtaXQnOiAnVmVyaWZ5JyxcblxuICAncmVzZXQudGl0bGUnOiAnUmVzZXQgeW91ciBwYXNzd29yZCcsXG4gICdyZXNldC5zdWJtaXQnOiAnU2VuZCByZXNldCBjb2RlJyxcbiAgJ3Jlc2V0Lm5ld1Bhc3N3b3JkTGFiZWwnOiAnTmV3IHBhc3N3b3JkJyxcblxuICAndXNlckJ1dHRvbi5tYW5hZ2VBY2NvdW50JzogJ01hbmFnZSBhY2NvdW50JyxcbiAgJ3VzZXJCdXR0b24uc2lnbk91dCc6ICdTaWduIG91dCcsXG4gICd1c2VyQnV0dG9uLnNpZ25PdXRBbGwnOiAnU2lnbiBvdXQgb2YgYWxsIGRldmljZXMnLFxuXG4gICd1c2VyUHJvZmlsZS50aXRsZSc6ICdBY2NvdW50JyxcbiAgJ3VzZXJQcm9maWxlLnByb2ZpbGVTZWN0aW9uJzogJ1Byb2ZpbGUnLFxuICAndXNlclByb2ZpbGUuZW1haWxzU2VjdGlvbic6ICdFbWFpbCBhZGRyZXNzZXMnLFxuICAndXNlclByb2ZpbGUuc2VjdXJpdHlTZWN0aW9uJzogJ1NlY3VyaXR5JyxcbiAgJ3VzZXJQcm9maWxlLmRldmljZXNTZWN0aW9uJzogJ0FjdGl2ZSBkZXZpY2VzJyxcbiAgJ3VzZXJQcm9maWxlLmRhbmdlclNlY3Rpb24nOiAnRGFuZ2VyIHpvbmUnLFxuICAndXNlclByb2ZpbGUuYWRkRW1haWwnOiAnQWRkIGFuIGVtYWlsIGFkZHJlc3MnLFxuICAndXNlclByb2ZpbGUubWFrZVByaW1hcnknOiAnTWFrZSBwcmltYXJ5JyxcbiAgJ3VzZXJQcm9maWxlLnVudmVyaWZpZWQnOiAnVW52ZXJpZmllZCcsXG4gICd1c2VyUHJvZmlsZS5yZXZva2VEZXZpY2UnOiAnU2lnbiBvdXQnLFxuICAndXNlclByb2ZpbGUuZGVsZXRlQWNjb3VudCc6ICdEZWxldGUgYWNjb3VudCcsXG5cbiAgJ29yZ2FuaXphdGlvbi5zd2l0Y2hlcic6ICdTd2l0Y2ggb3JnYW5pemF0aW9uJyxcbiAgJ29yZ2FuaXphdGlvbi5wZXJzb25hbCc6ICdQZXJzb25hbCBhY2NvdW50JyxcbiAgJ29yZ2FuaXphdGlvbi5tZW1iZXJzJzogJ01lbWJlcnMnLFxuICAnb3JnYW5pemF0aW9uLmludml0ZSc6ICdJbnZpdGUgbWVtYmVyJyxcbiAgJ29yZ2FuaXphdGlvbi5yb2xlTGFiZWwnOiAnUm9sZScsXG5cbiAgJ2Vycm9yLmdlbmVyaWMnOiAnU29tZXRoaW5nIHdlbnQgd3JvbmcuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgJ2Vycm9yLm5ldHdvcmsnOiAnV2UgY291bGQgbm90IHJlYWNoIHRoZSBzZXJ2ZXIuIENoZWNrIHlvdXIgY29ubmVjdGlvbi4nLFxuXG4gIC8vIFNlcnZlciBlcnJvcnMsIGJ5IHRoZSBzdGFibGUgYHJlYXNvbmAgdGhlIEZyb250ZW5kIEFQSSBzZW5kcy4gU2hvd24gaW5zdGVhZFxuICAvLyBvZiB0aGUgc2VydmVyJ3MgYG1lc3NhZ2VgIChzZWUgYGxvY2FsaXplZEVycm9yTWVzc2FnZWAgaW4gQGF0bGFzYXV0aC9qcykuXG4gICdlcnJvci5mb3JtX3Bhc3N3b3JkX2luY29ycmVjdCc6ICdUaG9zZSBjcmVkZW50aWFscyBhcmUgaW5jb3JyZWN0LicsXG4gICdlcnJvci5mb3JtX2NvZGVfaW5jb3JyZWN0JzogJ1RoYXQgY29kZSBpcyBpbmNvcnJlY3QuJyxcbiAgJ2Vycm9yLmZvcm1fY29kZV9hbHJlYWR5X3VzZWQnOiAnVGhhdCBjb2RlIGhhcyBhbHJlYWR5IGJlZW4gdXNlZC4gV2FpdCBmb3IgYSBuZXcgb25lLicsXG4gICdlcnJvci5mb3JtX2NvZGVfZXhwaXJlZCc6ICdUaGF0IGNvZGUgaGFzIGV4cGlyZWQuIFJlcXVlc3QgYSBuZXcgb25lLicsXG4gICdlcnJvci5mb3JtX2NvZGVfbWF4X2F0dGVtcHRzJzogJ1RvbyBtYW55IGluY29ycmVjdCBjb2Rlcy4gUmVxdWVzdCBhIG5ldyBjb2RlLicsXG4gICdlcnJvci5mb3JtX2xpbmtfaW52YWxpZCc6ICdUaGF0IHNpZ24taW4gbGluayBpcyBpbnZhbGlkIG9yIGhhcyBhbHJlYWR5IGJlZW4gdXNlZC4nLFxuICAnZXJyb3IuZm9ybV9pZGVudGlmaWVyX25vdF9mb3VuZCc6IFwiV2UgY291bGRuJ3QgZmluZCBhbiBhY2NvdW50IHdpdGggdGhvc2UgZGV0YWlscy5cIixcbiAgJ2Vycm9yLmZvcm1faWRlbnRpZmllcl9leGlzdHMnOiBcIlRoZXJlJ3MgYWxyZWFkeSBhbiBhY2NvdW50IGZvciB0aGlzIGVtYWlsLiBTaWduIGluIHdpdGgge21ldGhvZHN9LlwiLFxuICAnZXJyb3IuZm9ybV9wYXNzd29yZF9wd25lZCc6ICdUaGlzIHBhc3N3b3JkIGhhcyBhcHBlYXJlZCBpbiBhIGtub3duIGRhdGEgYnJlYWNoLiBQbGVhc2UgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nLFxuICAnZXJyb3IuZm9ybV9wYXNzd29yZF90b29fc2hvcnQnOiAnUGFzc3dvcmQgbXVzdCBiZSBhdCBsZWFzdCB7bWluX2xlbmd0aH0gY2hhcmFjdGVycy4nLFxuICAnZXJyb3IuZm9ybV9wYXNzd29yZF90b29fbG9uZyc6ICdQYXNzd29yZCBtdXN0IGJlIGF0IG1vc3Qge21heF9sZW5ndGh9IGNoYXJhY3RlcnMuJyxcbiAgJ2Vycm9yLmZvcm1fcGFzc3dvcmRfcmVxdWlyZXNfdXBwZXJjYXNlJzogJ1Bhc3N3b3JkIG11c3QgY29udGFpbiBhbiB1cHBlcmNhc2UgbGV0dGVyLicsXG4gICdlcnJvci5mb3JtX3Bhc3N3b3JkX3JlcXVpcmVzX2xvd2VyY2FzZSc6ICdQYXNzd29yZCBtdXN0IGNvbnRhaW4gYSBsb3dlcmNhc2UgbGV0dGVyLicsXG4gICdlcnJvci5mb3JtX3Bhc3N3b3JkX3JlcXVpcmVzX251bWJlcic6ICdQYXNzd29yZCBtdXN0IGNvbnRhaW4gYSBudW1iZXIuJyxcbiAgJ2Vycm9yLmZvcm1fcGFzc3dvcmRfcmVxdWlyZXNfc3ltYm9sJzogJ1Bhc3N3b3JkIG11c3QgY29udGFpbiBhIHN5bWJvbC4nLFxuICAnZXJyb3IuZm9ybV9wYXNzd29yZF9ub3RfYWxsb3dlZCc6ICdUaGF0IHBhc3N3b3JkIGlzIG5vdCBhbGxvd2VkLiBDaG9vc2UgYSBkaWZmZXJlbnQgb25lLicsXG4gICdlcnJvci5mb3JtX3Bhc3N3b3JkX2NvbnRhaW5zX2lkZW50aWZpZXInOiAnUGFzc3dvcmQgbXVzdCBub3QgY29udGFpbiB5b3VyIGVtYWlsIG9yIHVzZXJuYW1lLicsXG4gICdlcnJvci5mb3JtX3Bhc3N3b3JkX3NhbWVfYXNfY3VycmVudCc6ICdZb3VyIG5ldyBwYXNzd29yZCBtdXN0IGJlIGRpZmZlcmVudCBmcm9tIHlvdXIgY3VycmVudCBvbmUuJyxcbiAgJ2Vycm9yLmZvcm1fcGFzc3dvcmRfcmV1c2VkJzogJ1lvdXIgbmV3IHBhc3N3b3JkIG11c3Qgbm90IG1hdGNoIGFueSBvZiB5b3VyIGxhc3Qge2hpc3RvcnlfY291bnR9IHBhc3N3b3Jkcy4nLFxuICAnZXJyb3IucGFzc3dvcmRfZXhwaXJlZCc6ICdZb3VyIHBhc3N3b3JkIGhhcyBleHBpcmVkLiBSZXNldCBpdCB0byBjb250aW51ZS4nLFxuICAnZXJyb3IuZW1haWxfbm90X3ZlcmlmaWVkJzogJ1lvdXIgZW1haWwgYWRkcmVzcyBpcyBub3QgdmVyaWZpZWQgeWV0LiBWZXJpZnkgaXQgYmVmb3JlIHNpZ25pbmcgaW4gd2l0aCB5b3VyIHBhc3N3b3JkLicsXG4gICdlcnJvci5zaWduX2luX3Rva2VuX2ludmFsaWQnOiAnVGhhdCBzaWduLWluIHRva2VuIGlzIGludmFsaWQgb3IgaGFzIGV4cGlyZWQuJyxcbiAgJ2Vycm9yLnRvb19tYW55X2F0dGVtcHRzJzogJ1RvbyBtYW55IGZhaWxlZCBhdHRlbXB0cy4gVHJ5IGFnYWluIGxhdGVyLicsXG4gICdlcnJvci50b29fbWFueV9yZXF1ZXN0cyc6ICdUb28gbWFueSByZXF1ZXN0cy4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nLFxuICAnZXJyb3IuY2FwdGNoYV9yZXF1aXJlZCc6ICdQbGVhc2UgY29tcGxldGUgdGhlIHNlY3VyaXR5IGNoZWNrLCB0aGVuIHRyeSBhZ2Fpbi4nLFxuICAnZXJyb3IuY2FwdGNoYV9mYWlsZWQnOiBcIlRoZSBzZWN1cml0eSBjaGVjayBkaWRuJ3QgcGFzcy4gUGxlYXNlIHRyeSBhZ2Fpbi5cIixcbiAgJ2Vycm9yLmNhcHRjaGFfdW5hdmFpbGFibGUnOiAnVGhlIHNlY3VyaXR5IGNoZWNrIGlzIHVuYXZhaWxhYmxlIHJpZ2h0IG5vdy4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nLFxuICAnZXJyb3IuZW1haWxfZGVsaXZlcnlfdW5hdmFpbGFibGUnOiBcIlRoaXMgYXBwIGNhbid0IHNlbmQgZW1haWwgcmlnaHQgbm93LiBUcnkgYW5vdGhlciBzaWduLWluIG1ldGhvZCBvciBjb250YWN0IHRoZSBhcHAgb3duZXIuXCIsXG4gICdlcnJvci5zdHJhdGVneV9kaXNhYmxlZCc6ICdUaGlzIHNpZ24taW4gbWV0aG9kIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoaXMgYXBwLicsXG4gICdlcnJvci5zaWduX3VwX3Jlc3RyaWN0ZWQnOiAnU2lnbi11cCBvbiB0aGlzIGFwcCBpcyBieSBpbnZpdGF0aW9uIG9ubHkuJyxcbiAgJ2Vycm9yLndhaXRsaXN0ZWQnOiBcIllvdSdyZSBvbiB0aGUgd2FpdGxpc3QuIFdlJ2xsIGVtYWlsIHlvdSB3aGVuIGEgcGxhY2Ugb3BlbnMgdXAuXCIsXG4gICdlcnJvci5pZGVudGlmaWVyX25vdF9hbGxvd2VkJzogJ1RoaXMgZW1haWwgb3IgcGhvbmUgbnVtYmVyIGlzIG5vdCBhbGxvd2VkIG9uIHRoaXMgYXBwLicsXG4gICdlcnJvci5kaXNwb3NhYmxlX2VtYWlsX2Jsb2NrZWQnOiAnU2lnbi11cCB3aXRoIGEgZGlzcG9zYWJsZSBvciB0ZW1wb3JhcnkgZW1haWwgYWRkcmVzcyBpcyBub3QgYWxsb3dlZC4nLFxuICAnZXJyb3Iuc3NvX3JlcXVpcmVkJzogJ1RoaXMgb3JnYW5pemF0aW9uIHJlcXVpcmVzIHNpZ25pbmcgaW4gdGhyb3VnaCBzaW5nbGUgc2lnbi1vbi4nLFxuICAnZXJyb3Iuc2lnbl9pbnNfZGlzYWJsZWQnOiAnU2lnbi1pbnMgYXJlIHRlbXBvcmFyaWx5IGRpc2FibGVkLicsXG4gICdlcnJvci5zaWduX3Vwc19kaXNhYmxlZCc6ICdTaWduLXVwcyBhcmUgdGVtcG9yYXJpbHkgZGlzYWJsZWQuJyxcbiAgJ2Vycm9yLmhpZ2hfcmlza19ibG9ja2VkJzogJ1RoaXMgc2lnbi1pbiB3YXMgYmxvY2tlZCBiZWNhdXNlIGl0IGxvb2tlZCB1bnVzdWFsLicsXG4gICdlcnJvci5zbXNfcmVnaW9uX2Jsb2NrZWQnOiAnVGV4dCBtZXNzYWdlcyBhcmUgbm90IGF2YWlsYWJsZSBmb3IgdGhpcyBwaG9uZSBudW1iZXIuJyxcbn07XG5cbi8qKlxuICogTG9vayB1cCBhIGtleSBhbmQgaW50ZXJwb2xhdGUgYHtwbGFjZWhvbGRlcnN9YC5cbiAqXG4gKiBBbiB1bmtub3duIHBsYWNlaG9sZGVyIGlzIGxlZnQgdmlzaWJsZSBmb3IgdGhlIHNhbWUgcmVhc29uIGEgbWlzc2luZyBrZXkgaXM6XG4gKiBgQ29udGludWUgd2l0aCB7cHJvdmlkZXJ9YCBpbiB0aGUgVUkgaXMgYSBidWcgcmVwb3J0IHdhaXRpbmcgdG8gYmUgZmlsZWQsXG4gKiB3aGVyZWFzIGBDb250aW51ZSB3aXRoIGAgaXMgb25lIG5vYm9keSBub3RpY2VzIHVudGlsIGEgY3VzdG9tZXIgZG9lcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zbGF0ZShcbiAgY2F0YWxvZzogQ2F0YWxvZyxcbiAga2V5OiBzdHJpbmcsXG4gIHZhcmlhYmxlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9LFxuKTogc3RyaW5nIHtcbiAgY29uc3QgdGVtcGxhdGUgPSBjYXRhbG9nW2tleV0gPz8gRU5fVVNba2V5XSA/PyBrZXk7XG4gIHJldHVybiB0ZW1wbGF0ZS5yZXBsYWNlKC9cXHsoXFx3KylcXH0vZywgKG1hdGNoLCBuYW1lOiBzdHJpbmcpID0+IHZhcmlhYmxlc1tuYW1lXSA/PyBtYXRjaCk7XG59XG5cbi8qKiBNZXJnZSBhIGNvbW11bml0eSBsb2NhbGUgb3ZlciBlbi1VUyBzbyBhIHBhcnRpYWwgdHJhbnNsYXRpb24gc3RpbGwgcmVuZGVycy4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoRmFsbGJhY2sobG9jYWxlOiBDYXRhbG9nKTogQ2F0YWxvZyB7XG4gIHJldHVybiB7IC4uLkVOX1VTLCAuLi5sb2NhbGUgfTtcbn1cbiJdfQ==
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHO0FBSUgsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFZO0lBQzVCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLGlCQUFpQixFQUFFLDhCQUE4QjtJQUNqRCx3QkFBd0IsRUFBRSxlQUFlO0lBQ3pDLHNCQUFzQixFQUFFLFVBQVU7SUFDbEMsZUFBZSxFQUFFLFVBQVU7SUFDM0IsdUJBQXVCLEVBQUUsa0JBQWtCO0lBQzNDLGtCQUFrQixFQUFFLGFBQWE7SUFDakMsbUJBQW1CLEVBQUUsU0FBUztJQUM5QixrQkFBa0IsRUFBRSxJQUFJO0lBQ3hCLHFCQUFxQixFQUFFLDBCQUEwQjtJQUNqRCx1QkFBdUIsRUFBRSxtQkFBbUI7SUFDNUMscUJBQXFCLEVBQUUsaUJBQWlCO0lBQ3hDLG1CQUFtQixFQUFFLDRDQUE0QztJQUNqRSxtQkFBbUIsRUFBRSxhQUFhO0lBQ2xDLHNCQUFzQixFQUFFLHNDQUFzQztJQUM5RCxzQkFBc0IsRUFBRSwrREFBK0Q7SUFFdkYsY0FBYyxFQUFFLHFCQUFxQjtJQUNyQyxlQUFlLEVBQUUsVUFBVTtJQUMzQixvQkFBb0IsRUFBRSwwQkFBMEI7SUFDaEQsbUJBQW1CLEVBQUUsU0FBUztJQUM5QixtQkFBbUIsRUFBRSxlQUFlO0lBQ3BDLHNCQUFzQixFQUFFLFVBQVU7SUFDbEMsc0JBQXNCLEVBQUUsb0JBQW9CO0lBQzVDLDBCQUEwQixFQUFFLFNBQVM7SUFDckMscUJBQXFCLEVBQUUsZ0JBQWdCO0lBQ3ZDLHNCQUFzQixFQUFFLGdDQUFnQztJQUN4RCxjQUFjLEVBQUUsa0JBQWtCO0lBQ2xDLGdCQUFnQixFQUFFLGdCQUFnQjtJQUNsQyxZQUFZLEVBQUUsS0FBSztJQUNuQixrREFBa0Q7SUFDbEQseUJBQXlCLEVBQ3ZCLDJGQUEyRjtJQUU3RixnQkFBZ0IsRUFBRSww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QUEyRjtJQUMvSCx5QkFBeUIsRUFBRSxvREFBb0Q7SUFDL0UsMEJBQTBCLEVBQUUsNENBQTRDO0lBQ3hFLGtCQUFrQixFQUFFLGdFQUFnRTtJQUNwRiw4QkFBOEIsRUFBRSx3REFBd0Q7SUFDeEYsZ0NBQWdDLEVBQUUsc0VBQXNFO0lBQ3hHLG9CQUFvQixFQUFFLCtEQUErRDtJQUNyRix5QkFBeUIsRUFBRSxvQ0FBb0M7SUFDL0QseUJBQXlCLEVBQUUsb0NBQW9DO0lBQy9ELHlCQUF5QixFQUFFLHFEQUFxRDtJQUNoRiwwQkFBMEIsRUFBRSx3REFBd0Q7Q0FDckYsQ0FBQztBQUVGOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQ3ZCLE9BQWdCLEVBQ2hCLEdBQVcsRUFDWCxZQUFvQyxFQUFFO0lBRXRDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDO0lBQ25ELE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBWSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUM7QUFDM0YsQ0FBQztBQUVELGtGQUFrRjtBQUNsRixNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQWU7SUFDMUMsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7QUFDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogwqcxMC4zOiBcIkV2ZXJ5IHN0cmluZyBwYXNzZXMgdGhyb3VnaCBhbiBpMThuIGNhdGFsb2c7IGVuLVVTIHNoaXBzLCBjYXRhbG9nXG4gKiBmb3JtYXQgZG9jdW1lbnRlZCBmb3IgY29tbXVuaXR5IGxvY2FsZXMuXCJcbiAqXG4gKiBBIGZsYXQga2V5LXRvLXN0cmluZyBtYXAgcmF0aGVyIHRoYW4gbmVzdGVkIG9iamVjdHMsIGJlY2F1c2UgbmVzdGluZyBsb29rc1xuICogdGlkaWVyIGFuZCBtYWtlcyBhIG1pc3Npbmcga2V5IGEgcnVudGltZSBjcmFzaCBvbiBgdW5kZWZpbmVkLm9mLmEuY2hhaW5gXG4gKiByYXRoZXIgdGhhbiBhIHZpc2libGUgZmFsbGJhY2suXG4gKlxuICogQSBtaXNzaW5nIGtleSByZW5kZXJzIHRoZSBLRVksIG5vdCBhbiBlbXB0eSBzdHJpbmcuIEEgYmxhbmsgYnV0dG9uIGlzIGEgYnVnXG4gKiBub2JvZHkgY2FuIHJlcG9ydDsgYSBidXR0b24gcmVhZGluZyBgc2lnbkluLnN1Ym1pdGAgaXMgb25lIGFueW9uZSBjYW4uXG4gKi9cblxuZXhwb3J0IHR5cGUgQ2F0YWxvZyA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbmV4cG9ydCBjb25zdCBFTl9VUzogQ2F0YWxvZyA9IHtcbiAgJ3NpZ25Jbi50aXRsZSc6ICdTaWduIGluJyxcbiAgJ3NpZ25Jbi5zdWJ0aXRsZSc6ICd0byBjb250aW51ZSB0byB7YXBwbGljYXRpb259JyxcbiAgJ3NpZ25Jbi5pZGVudGlmaWVyTGFiZWwnOiAnRW1haWwgYWRkcmVzcycsXG4gICdzaWduSW4ucGFzc3dvcmRMYWJlbCc6ICdQYXNzd29yZCcsXG4gICdzaWduSW4uc3VibWl0JzogJ0NvbnRpbnVlJyxcbiAgJ3NpZ25Jbi5mb3Jnb3RQYXNzd29yZCc6ICdGb3Jnb3QgcGFzc3dvcmQ/JyxcbiAgJ3NpZ25Jbi5ub0FjY291bnQnOiAnTm8gYWNjb3VudD8nLFxuICAnc2lnbkluLnNpZ25VcExpbmsnOiAnU2lnbiB1cCcsXG4gICdzaWduSW4ub3JEaXZpZGVyJzogJ29yJyxcbiAgJ3NpZ25Jbi5zb2NpYWxCdXR0b24nOiAnQ29udGludWUgd2l0aCB7cHJvdmlkZXJ9JyxcbiAgJ3NpZ25Jbi5lbWFpbENvZGVMYWJlbCc6ICdWZXJpZmljYXRpb24gY29kZScsXG4gICdzaWduSW4udXNlRW1haWxDb2RlJzogJ0VtYWlsIG1lIGEgY29kZScsXG4gICdzaWduSW4uY29kZVNlbnRUbyc6ICdXZSBzZW50IGEgY29kZSB0byB7ZW1haWx9LiBFbnRlciBpdCBiZWxvdy4nLFxuICAnc2lnbkluLnJlc2VuZENvZGUnOiAnUmVzZW5kIGNvZGUnLFxuICAnc2lnbkluLm1hZ2ljTGlua1NlbnQnOiAnQ2hlY2sgeW91ciBlbWFpbCBmb3IgYSBzaWduLWluIGxpbmsuJyxcbiAgJ3NpZ25Jbi5jaGVja090aGVyVGFiJzogJ1lvdSBjYW4gY2xvc2UgdGhpcyB0YWIg4oCUIHlvdSBhcmUgc2lnbmVkIGluIHdoZXJlIHlvdSBzdGFydGVkLicsXG5cbiAgJ3NpZ25VcC50aXRsZSc6ICdDcmVhdGUgeW91ciBhY2NvdW50JyxcbiAgJ3NpZ25VcC5zdWJtaXQnOiAnQ29udGludWUnLFxuICAnc2lnblVwLmhhdmVBY2NvdW50JzogJ0FscmVhZHkgaGF2ZSBhbiBhY2NvdW50PycsXG4gICdzaWduVXAuc2lnbkluTGluayc6ICdTaWduIGluJyxcbiAgJ3NpZ25VcC5lbWFpbExhYmVsJzogJ0VtYWlsIGFkZHJlc3MnLFxuICAnc2lnblVwLnBhc3N3b3JkTGFiZWwnOiAnUGFzc3dvcmQnLFxuICAnc2lnblVwLm9wdGlvbmFsRmllbGQnOiAne2xhYmVsfSAob3B0aW9uYWwpJyxcbiAgJ3NpZ25VcC5zZWxlY3RQbGFjZWhvbGRlcic6ICdTZWxlY3TigKYnLFxuICAnc2lnblVwLmNvbnNlbnRBZ3JlZSc6ICdJIGFncmVlIHRvIHRoZScsXG4gICdzaWduVXAuY29uc2VudE5vdGljZSc6ICdCeSBjb250aW51aW5nIHlvdSBhZ3JlZSB0byB0aGUnLFxuICAnc2lnblVwLnRlcm1zJzogJ1Rlcm1zIG9mIFNlcnZpY2UnLFxuICAnc2lnblVwLnByaXZhY3knOiAnUHJpdmFjeSBQb2xpY3knLFxuICAnc2lnblVwLmFuZCc6ICdhbmQnLFxuICAvLyA9IEVNQUlMX1VOQVZBSUxBQkxFX01FU1NBR0UgZnJvbSBAYXRsYXNhdXRoL2pzLlxuICAnc2lnblVwLmVtYWlsVW5hdmFpbGFibGUnOlxuICAgIFwiVGhpcyBhcHAgY2FuJ3Qgc2VuZCBlbWFpbCByaWdodCBub3cuIFRyeSBhbm90aGVyIHNpZ24taW4gbWV0aG9kIG9yIGNvbnRhY3QgdGhlIGFwcCBvd25lci5cIixcblxuICAnY2FwdGNoYS5wcm9tcHQnOiAnQ29tcGxldGUgdGhlIHNlY3VyaXR5IGNoZWNrIHRvIGNvbnRpbnVlLicsXG4gICdjYXB0Y2hhLnJlcXVpcmVkJzogJ1BsZWFzZSBjb21wbGV0ZSB0aGUgc2VjdXJpdHkgY2hlY2ssIHRoZW4gdHJ5IGFnYWluLicsXG4gICdjYXB0Y2hhLmZhaWxlZCc6IFwiVGhlIHNlY3VyaXR5IGNoZWNrIGRpZG4ndCBwYXNzLiBQbGVhc2UgdHJ5IGFnYWluLlwiLFxuICAnY2FwdGNoYS5jaGVja2luZyc6ICdDaGVja2luZyB5b3VyIGJyb3dzZXLigKYnLFxuICAnY2FwdGNoYS52ZXJpZmllZCc6ICdTZWN1cml0eSBjaGVjayBjb21wbGV0ZS4nLFxuICAnY2FwdGNoYS5wdXp6bGVQcm9tcHQnOiBcIlNlbGVjdCBldmVyeSBwaWN0dXJlIHRoYXQgc2hvd3MgdGhlIHNhbWUgc2hhcGUgYXMgdGhpcyBvbmUuIENvbG91ciBhbmQgc2l6ZSBkb24ndCBtYXR0ZXIuXCIsXG4gICdjYXB0Y2hhLnB1enpsZUNvbmZpcm0nOiAnQ29uZmlybScsXG4gICdjYXB0Y2hhLnB1enpsZVRpbGUnOiAnUGljdHVyZSB7bn0nLFxuICAnY2FwdGNoYS5wdXp6bGVBbHRlcm5hdGl2ZSc6IFwiQ2FuJ3QgZG8gdGhlIHBpY3R1cmUgY2hlY2s/IFVzZSBhIGxvbmdlciBhdXRvbWF0aWMgY2hlY2sgaW5zdGVhZC5cIixcblxuICAnbWZhLnRpdGxlJzogJ1R3by1zdGVwIHZlcmlmaWNhdGlvbicsXG4gICdtZmEuc3VidGl0bGUnOiAnRW50ZXIgdGhlIGNvZGUgZnJvbSB5b3VyIGF1dGhlbnRpY2F0b3IgYXBwLicsXG4gICdtZmEuY29kZUxhYmVsJzogJ0NvZGUnLFxuICAnbWZhLmVucm9sbEZpcnN0Q29kZUxhYmVsJzogJ0NvZGUgZnJvbSB5b3VyIGF1dGhlbnRpY2F0b3IgYXBwJyxcbiAgJ21mYS5lbnJvbGxTZWNvbmRDb2RlTGFiZWwnOiAnVGhlIG5leHQgY29kZSBpdCBzaG93cycsXG4gICdtZmEudXNlUGFzc2tleSc6ICdVc2UgYSBwYXNza2V5IGluc3RlYWQnLFxuICAnbWZhLnVzZUJhY2t1cENvZGUnOiAnVXNlIGEgcmVjb3ZlcnkgY29kZScsXG4gICdtZmEuc3VibWl0JzogJ1ZlcmlmeScsXG5cbiAgJ3Jlc2V0LnRpdGxlJzogJ1Jlc2V0IHlvdXIgcGFzc3dvcmQnLFxuICAncmVzZXQuc3VibWl0JzogJ1NlbmQgcmVzZXQgY29kZScsXG4gICdyZXNldC5uZXdQYXNzd29yZExhYmVsJzogJ05ldyBwYXNzd29yZCcsXG5cbiAgJ3VzZXJCdXR0b24ubWFuYWdlQWNjb3VudCc6ICdNYW5hZ2UgYWNjb3VudCcsXG4gICd1c2VyQnV0dG9uLnNpZ25PdXQnOiAnU2lnbiBvdXQnLFxuICAndXNlckJ1dHRvbi5zaWduT3V0QWxsJzogJ1NpZ24gb3V0IG9mIGFsbCBkZXZpY2VzJyxcblxuICAndXNlclByb2ZpbGUudGl0bGUnOiAnQWNjb3VudCcsXG4gICd1c2VyUHJvZmlsZS5wcm9maWxlU2VjdGlvbic6ICdQcm9maWxlJyxcbiAgJ3VzZXJQcm9maWxlLmVtYWlsc1NlY3Rpb24nOiAnRW1haWwgYWRkcmVzc2VzJyxcbiAgJ3VzZXJQcm9maWxlLnNlY3VyaXR5U2VjdGlvbic6ICdTZWN1cml0eScsXG4gICd1c2VyUHJvZmlsZS5kZXZpY2VzU2VjdGlvbic6ICdBY3RpdmUgZGV2aWNlcycsXG4gICd1c2VyUHJvZmlsZS5kYW5nZXJTZWN0aW9uJzogJ0RhbmdlciB6b25lJyxcbiAgJ3VzZXJQcm9maWxlLmFkZEVtYWlsJzogJ0FkZCBhbiBlbWFpbCBhZGRyZXNzJyxcbiAgJ3VzZXJQcm9maWxlLm1ha2VQcmltYXJ5JzogJ01ha2UgcHJpbWFyeScsXG4gICd1c2VyUHJvZmlsZS51bnZlcmlmaWVkJzogJ1VudmVyaWZpZWQnLFxuICAndXNlclByb2ZpbGUudmVyaWZ5JzogJ1ZlcmlmeScsXG4gICd1c2VyUHJvZmlsZS52ZXJpZnlDb25maXJtJzogJ0NvbmZpcm0nLFxuICAndXNlclByb2ZpbGUudmVyaWZ5Q29kZVBsYWNlaG9sZGVyJzogJ0NvZGUgZnJvbSB0aGUgZW1haWwnLFxuICAndXNlclByb2ZpbGUudmVyaWZ5U2VuZEZhaWxlZCc6ICdXZSBjb3VsZCBub3Qgc2VuZCBhIGNvZGUgcmlnaHQgbm93LiBUcnkgYWdhaW4gaW4gYSBtaW51dGUuJyxcbiAgJ3VzZXJQcm9maWxlLnZlcmlmeUNvZGVSZWplY3RlZCc6ICdUaGF0IGNvZGUgd2FzIG5vdCBhY2NlcHRlZC4nLFxuICAndXNlclByb2ZpbGUucmV2b2tlRGV2aWNlJzogJ1NpZ24gb3V0JyxcbiAgJ3VzZXJQcm9maWxlLmRlbGV0ZUFjY291bnQnOiAnRGVsZXRlIGFjY291bnQnLFxuXG4gICdvcmdhbml6YXRpb24uc3dpdGNoZXInOiAnU3dpdGNoIG9yZ2FuaXphdGlvbicsXG4gICdvcmdhbml6YXRpb24ucGVyc29uYWwnOiAnUGVyc29uYWwgYWNjb3VudCcsXG4gICdvcmdhbml6YXRpb24ubWVtYmVycyc6ICdNZW1iZXJzJyxcbiAgJ29yZ2FuaXphdGlvbi5pbnZpdGUnOiAnSW52aXRlIG1lbWJlcicsXG4gICdvcmdhbml6YXRpb24ucm9sZUxhYmVsJzogJ1JvbGUnLFxuXG4gICdlcnJvci5nZW5lcmljJzogJ1NvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gICdlcnJvci5uZXR3b3JrJzogJ1dlIGNvdWxkIG5vdCByZWFjaCB0aGUgc2VydmVyLiBDaGVjayB5b3VyIGNvbm5lY3Rpb24uJyxcblxuICAvLyBTZXJ2ZXIgZXJyb3JzLCBieSB0aGUgc3RhYmxlIGByZWFzb25gIHRoZSBGcm9udGVuZCBBUEkgc2VuZHMuIFNob3duIGluc3RlYWRcbiAgLy8gb2YgdGhlIHNlcnZlcidzIGBtZXNzYWdlYCAoc2VlIGBsb2NhbGl6ZWRFcnJvck1lc3NhZ2VgIGluIEBhdGxhc2F1dGgvanMpLlxuICAnZXJyb3IuZm9ybV9wYXNzd29yZF9pbmNvcnJlY3QnOiAnVGhvc2UgY3JlZGVudGlhbHMgYXJlIGluY29ycmVjdC4nLFxuICAnZXJyb3IuZm9ybV9jb2RlX2luY29ycmVjdCc6ICdUaGF0IGNvZGUgaXMgaW5jb3JyZWN0LicsXG4gICdlcnJvci5mb3JtX2NvZGVfYWxyZWFkeV91c2VkJzogJ1RoYXQgY29kZSBoYXMgYWxyZWFkeSBiZWVuIHVzZWQuIFdhaXQgZm9yIGEgbmV3IG9uZS4nLFxuICAnZXJyb3IuZm9ybV9jb2RlX2V4cGlyZWQnOiAnVGhhdCBjb2RlIGhhcyBleHBpcmVkLiBSZXF1ZXN0IGEgbmV3IG9uZS4nLFxuICAnZXJyb3IuZm9ybV9jb2RlX21heF9hdHRlbXB0cyc6ICdUb28gbWFueSBpbmNvcnJlY3QgY29kZXMuIFJlcXVlc3QgYSBuZXcgY29kZS4nLFxuICAnZXJyb3IuZm9ybV9saW5rX2ludmFsaWQnOiAnVGhhdCBzaWduLWluIGxpbmsgaXMgaW52YWxpZCBvciBoYXMgYWxyZWFkeSBiZWVuIHVzZWQuJyxcbiAgJ2Vycm9yLmZvcm1faWRlbnRpZmllcl9ub3RfZm91bmQnOiBcIldlIGNvdWxkbid0IGZpbmQgYW4gYWNjb3VudCB3aXRoIHRob3NlIGRldGFpbHMuXCIsXG4gICdlcnJvci5mb3JtX2lkZW50aWZpZXJfZXhpc3RzJzogXCJUaGVyZSdzIGFscmVhZHkgYW4gYWNjb3VudCBmb3IgdGhpcyBlbWFpbC4gU2lnbiBpbiB3aXRoIHttZXRob2RzfS5cIixcbiAgJ2Vycm9yLmZvcm1fcGFzc3dvcmRfcHduZWQnOiAnVGhpcyBwYXNzd29yZCBoYXMgYXBwZWFyZWQgaW4gYSBrbm93biBkYXRhIGJyZWFjaC4gUGxlYXNlIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJyxcbiAgJ2Vycm9yLmZvcm1fcGFzc3dvcmRfdG9vX3Nob3J0JzogJ1Bhc3N3b3JkIG11c3QgYmUgYXQgbGVhc3Qge21pbl9sZW5ndGh9IGNoYXJhY3RlcnMuJyxcbiAgJ2Vycm9yLmZvcm1fcGFzc3dvcmRfdG9vX2xvbmcnOiAnUGFzc3dvcmQgbXVzdCBiZSBhdCBtb3N0IHttYXhfbGVuZ3RofSBjaGFyYWN0ZXJzLicsXG4gICdlcnJvci5mb3JtX3Bhc3N3b3JkX3JlcXVpcmVzX3VwcGVyY2FzZSc6ICdQYXNzd29yZCBtdXN0IGNvbnRhaW4gYW4gdXBwZXJjYXNlIGxldHRlci4nLFxuICAnZXJyb3IuZm9ybV9wYXNzd29yZF9yZXF1aXJlc19sb3dlcmNhc2UnOiAnUGFzc3dvcmQgbXVzdCBjb250YWluIGEgbG93ZXJjYXNlIGxldHRlci4nLFxuICAnZXJyb3IuZm9ybV9wYXNzd29yZF9yZXF1aXJlc19udW1iZXInOiAnUGFzc3dvcmQgbXVzdCBjb250YWluIGEgbnVtYmVyLicsXG4gICdlcnJvci5mb3JtX3Bhc3N3b3JkX3JlcXVpcmVzX3N5bWJvbCc6ICdQYXNzd29yZCBtdXN0IGNvbnRhaW4gYSBzeW1ib2wuJyxcbiAgJ2Vycm9yLmZvcm1fcGFzc3dvcmRfbm90X2FsbG93ZWQnOiAnVGhhdCBwYXNzd29yZCBpcyBub3QgYWxsb3dlZC4gQ2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nLFxuICAnZXJyb3IuZm9ybV9wYXNzd29yZF9jb250YWluc19pZGVudGlmaWVyJzogJ1Bhc3N3b3JkIG11c3Qgbm90IGNvbnRhaW4geW91ciBlbWFpbCBvciB1c2VybmFtZS4nLFxuICAnZXJyb3IuZm9ybV9wYXNzd29yZF9zYW1lX2FzX2N1cnJlbnQnOiAnWW91ciBuZXcgcGFzc3dvcmQgbXVzdCBiZSBkaWZmZXJlbnQgZnJvbSB5b3VyIGN1cnJlbnQgb25lLicsXG4gICdlcnJvci5mb3JtX3Bhc3N3b3JkX3JldXNlZCc6ICdZb3VyIG5ldyBwYXNzd29yZCBtdXN0IG5vdCBtYXRjaCBhbnkgb2YgeW91ciBsYXN0IHtoaXN0b3J5X2NvdW50fSBwYXNzd29yZHMuJyxcbiAgJ2Vycm9yLnBhc3N3b3JkX2V4cGlyZWQnOiAnWW91ciBwYXNzd29yZCBoYXMgZXhwaXJlZC4gUmVzZXQgaXQgdG8gY29udGludWUuJyxcbiAgJ2Vycm9yLmVtYWlsX25vdF92ZXJpZmllZCc6ICdZb3VyIGVtYWlsIGFkZHJlc3MgaXMgbm90IHZlcmlmaWVkIHlldC4gVmVyaWZ5IGl0IGJlZm9yZSBzaWduaW5nIGluIHdpdGggeW91ciBwYXNzd29yZC4nLFxuICAnZXJyb3Iuc2lnbl9pbl90b2tlbl9pbnZhbGlkJzogJ1RoYXQgc2lnbi1pbiB0b2tlbiBpcyBpbnZhbGlkIG9yIGhhcyBleHBpcmVkLicsXG4gICdlcnJvci50b29fbWFueV9hdHRlbXB0cyc6ICdUb28gbWFueSBmYWlsZWQgYXR0ZW1wdHMuIFRyeSBhZ2FpbiBsYXRlci4nLFxuICAnZXJyb3IudG9vX21hbnlfcmVxdWVzdHMnOiAnVG9vIG1hbnkgcmVxdWVzdHMuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJyxcbiAgJ2Vycm9yLmNhcHRjaGFfcmVxdWlyZWQnOiAnUGxlYXNlIGNvbXBsZXRlIHRoZSBzZWN1cml0eSBjaGVjaywgdGhlbiB0cnkgYWdhaW4uJyxcbiAgJ2Vycm9yLmNhcHRjaGFfZmFpbGVkJzogXCJUaGUgc2VjdXJpdHkgY2hlY2sgZGlkbid0IHBhc3MuIFBsZWFzZSB0cnkgYWdhaW4uXCIsXG4gICdlcnJvci5jYXB0Y2hhX3VuYXZhaWxhYmxlJzogJ1RoZSBzZWN1cml0eSBjaGVjayBpcyB1bmF2YWlsYWJsZSByaWdodCBub3cuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJyxcbiAgJ2Vycm9yLmVtYWlsX2RlbGl2ZXJ5X3VuYXZhaWxhYmxlJzogXCJUaGlzIGFwcCBjYW4ndCBzZW5kIGVtYWlsIHJpZ2h0IG5vdy4gVHJ5IGFub3RoZXIgc2lnbi1pbiBtZXRob2Qgb3IgY29udGFjdCB0aGUgYXBwIG93bmVyLlwiLFxuICAnZXJyb3Iuc3RyYXRlZ3lfZGlzYWJsZWQnOiAnVGhpcyBzaWduLWluIG1ldGhvZCBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGlzIGFwcC4nLFxuICAnZXJyb3Iuc2lnbl91cF9yZXN0cmljdGVkJzogJ1NpZ24tdXAgb24gdGhpcyBhcHAgaXMgYnkgaW52aXRhdGlvbiBvbmx5LicsXG4gICdlcnJvci53YWl0bGlzdGVkJzogXCJZb3UncmUgb24gdGhlIHdhaXRsaXN0LiBXZSdsbCBlbWFpbCB5b3Ugd2hlbiBhIHBsYWNlIG9wZW5zIHVwLlwiLFxuICAnZXJyb3IuaWRlbnRpZmllcl9ub3RfYWxsb3dlZCc6ICdUaGlzIGVtYWlsIG9yIHBob25lIG51bWJlciBpcyBub3QgYWxsb3dlZCBvbiB0aGlzIGFwcC4nLFxuICAnZXJyb3IuZGlzcG9zYWJsZV9lbWFpbF9ibG9ja2VkJzogJ1NpZ24tdXAgd2l0aCBhIGRpc3Bvc2FibGUgb3IgdGVtcG9yYXJ5IGVtYWlsIGFkZHJlc3MgaXMgbm90IGFsbG93ZWQuJyxcbiAgJ2Vycm9yLnNzb19yZXF1aXJlZCc6ICdUaGlzIG9yZ2FuaXphdGlvbiByZXF1aXJlcyBzaWduaW5nIGluIHRocm91Z2ggc2luZ2xlIHNpZ24tb24uJyxcbiAgJ2Vycm9yLnNpZ25faW5zX2Rpc2FibGVkJzogJ1NpZ24taW5zIGFyZSB0ZW1wb3JhcmlseSBkaXNhYmxlZC4nLFxuICAnZXJyb3Iuc2lnbl91cHNfZGlzYWJsZWQnOiAnU2lnbi11cHMgYXJlIHRlbXBvcmFyaWx5IGRpc2FibGVkLicsXG4gICdlcnJvci5oaWdoX3Jpc2tfYmxvY2tlZCc6ICdUaGlzIHNpZ24taW4gd2FzIGJsb2NrZWQgYmVjYXVzZSBpdCBsb29rZWQgdW51c3VhbC4nLFxuICAnZXJyb3Iuc21zX3JlZ2lvbl9ibG9ja2VkJzogJ1RleHQgbWVzc2FnZXMgYXJlIG5vdCBhdmFpbGFibGUgZm9yIHRoaXMgcGhvbmUgbnVtYmVyLicsXG59O1xuXG4vKipcbiAqIExvb2sgdXAgYSBrZXkgYW5kIGludGVycG9sYXRlIGB7cGxhY2Vob2xkZXJzfWAuXG4gKlxuICogQW4gdW5rbm93biBwbGFjZWhvbGRlciBpcyBsZWZ0IHZpc2libGUgZm9yIHRoZSBzYW1lIHJlYXNvbiBhIG1pc3Npbmcga2V5IGlzOlxuICogYENvbnRpbnVlIHdpdGgge3Byb3ZpZGVyfWAgaW4gdGhlIFVJIGlzIGEgYnVnIHJlcG9ydCB3YWl0aW5nIHRvIGJlIGZpbGVkLFxuICogd2hlcmVhcyBgQ29udGludWUgd2l0aCBgIGlzIG9uZSBub2JvZHkgbm90aWNlcyB1bnRpbCBhIGN1c3RvbWVyIGRvZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2xhdGUoXG4gIGNhdGFsb2c6IENhdGFsb2csXG4gIGtleTogc3RyaW5nLFxuICB2YXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fSxcbik6IHN0cmluZyB7XG4gIGNvbnN0IHRlbXBsYXRlID0gY2F0YWxvZ1trZXldID8/IEVOX1VTW2tleV0gPz8ga2V5O1xuICByZXR1cm4gdGVtcGxhdGUucmVwbGFjZSgvXFx7KFxcdyspXFx9L2csIChtYXRjaCwgbmFtZTogc3RyaW5nKSA9PiB2YXJpYWJsZXNbbmFtZV0gPz8gbWF0Y2gpO1xufVxuXG4vKiogTWVyZ2UgYSBjb21tdW5pdHkgbG9jYWxlIG92ZXIgZW4tVVMgc28gYSBwYXJ0aWFsIHRyYW5zbGF0aW9uIHN0aWxsIHJlbmRlcnMuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aEZhbGxiYWNrKGxvY2FsZTogQ2F0YWxvZyk6IENhdGFsb2cge1xuICByZXR1cm4geyAuLi5FTl9VUywgLi4ubG9jYWxlIH07XG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/** This package's version, sent as `X-Atlas-SDK` (kept in step with package.json by a test). */
|
|
2
|
-
export const ATLAS_ANGULAR_VERSION = '0.6.
|
|
2
|
+
export const ATLAS_ANGULAR_VERSION = '0.6.1';
|
|
3
3
|
export const ATLAS_ANGULAR_SDK = { name: '@atlasauth/angular', version: ATLAS_ANGULAR_VERSION };
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxnR0FBZ0c7QUFDaEcsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsT0FBTyxDQUFDO0FBQzdDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFpQixFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXRsYXNTZGtJbmZvIH0gZnJvbSAnQGF0bGFzYXV0aC9qcyc7XG5cbi8qKiBUaGlzIHBhY2thZ2UncyB2ZXJzaW9uLCBzZW50IGFzIGBYLUF0bGFzLVNES2AgKGtlcHQgaW4gc3RlcCB3aXRoIHBhY2thZ2UuanNvbiBieSBhIHRlc3QpLiAqL1xuZXhwb3J0IGNvbnN0IEFUTEFTX0FOR1VMQVJfVkVSU0lPTiA9ICcwLjYuMSc7XG5leHBvcnQgY29uc3QgQVRMQVNfQU5HVUxBUl9TREs6IEF0bGFzU2RrSW5mbyA9IHsgbmFtZTogJ0BhdGxhc2F1dGgvYW5ndWxhcicsIHZlcnNpb246IEFUTEFTX0FOR1VMQVJfVkVSU0lPTiB9O1xuIl19
|
|
@@ -219,6 +219,11 @@ const EN_US = {
|
|
|
219
219
|
'userProfile.addEmail': 'Add an email address',
|
|
220
220
|
'userProfile.makePrimary': 'Make primary',
|
|
221
221
|
'userProfile.unverified': 'Unverified',
|
|
222
|
+
'userProfile.verify': 'Verify',
|
|
223
|
+
'userProfile.verifyConfirm': 'Confirm',
|
|
224
|
+
'userProfile.verifyCodePlaceholder': 'Code from the email',
|
|
225
|
+
'userProfile.verifySendFailed': 'We could not send a code right now. Try again in a minute.',
|
|
226
|
+
'userProfile.verifyCodeRejected': 'That code was not accepted.',
|
|
222
227
|
'userProfile.revokeDevice': 'Sign out',
|
|
223
228
|
'userProfile.deleteAccount': 'Delete account',
|
|
224
229
|
'organization.switcher': 'Switch organization',
|
|
@@ -286,7 +291,7 @@ function withFallback(locale) {
|
|
|
286
291
|
}
|
|
287
292
|
|
|
288
293
|
/** This package's version, sent as `X-Atlas-SDK` (kept in step with package.json by a test). */
|
|
289
|
-
const ATLAS_ANGULAR_VERSION = '0.6.
|
|
294
|
+
const ATLAS_ANGULAR_VERSION = '0.6.1';
|
|
290
295
|
const ATLAS_ANGULAR_SDK = { name: '@atlasauth/angular', version: ATLAS_ANGULAR_VERSION };
|
|
291
296
|
|
|
292
297
|
/**
|
|
@@ -2303,6 +2308,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2303
2308
|
*/
|
|
2304
2309
|
class UserProfileComponent {
|
|
2305
2310
|
atlas = inject(AtlasService);
|
|
2311
|
+
// An unverified address (added and never confirmed, or the sign-up address on
|
|
2312
|
+
// an app that did not require verification) can be proven here: send a code,
|
|
2313
|
+
// then enter it.
|
|
2314
|
+
verifying = signal(null);
|
|
2315
|
+
code = signal('');
|
|
2316
|
+
busy = signal(false);
|
|
2317
|
+
verifyError = signal(null);
|
|
2318
|
+
client = this.atlas.createFapiClient();
|
|
2319
|
+
async sendCode(id) {
|
|
2320
|
+
this.verifyError.set(null);
|
|
2321
|
+
this.busy.set(true);
|
|
2322
|
+
const res = await this.client.post(`/v1/client/me/email_addresses/${id}/prepare_verification`);
|
|
2323
|
+
this.busy.set(false);
|
|
2324
|
+
if (!res.ok) {
|
|
2325
|
+
this.verifyError.set(this.t('userProfile.verifySendFailed'));
|
|
2326
|
+
return;
|
|
2327
|
+
}
|
|
2328
|
+
this.code.set('');
|
|
2329
|
+
this.verifying.set(id);
|
|
2330
|
+
}
|
|
2331
|
+
async confirmCode() {
|
|
2332
|
+
const id = this.verifying();
|
|
2333
|
+
if (!id)
|
|
2334
|
+
return;
|
|
2335
|
+
this.verifyError.set(null);
|
|
2336
|
+
this.busy.set(true);
|
|
2337
|
+
const res = await this.client.post(`/v1/client/me/email_addresses/${id}/attempt_verification`, {
|
|
2338
|
+
code: this.code(),
|
|
2339
|
+
});
|
|
2340
|
+
this.busy.set(false);
|
|
2341
|
+
if (!res.ok) {
|
|
2342
|
+
this.verifyError.set(this.t('userProfile.verifyCodeRejected'));
|
|
2343
|
+
return;
|
|
2344
|
+
}
|
|
2345
|
+
this.verifying.set(null);
|
|
2346
|
+
await this.atlas.reload();
|
|
2347
|
+
}
|
|
2306
2348
|
t(key) {
|
|
2307
2349
|
return translate(this.atlas.localization, key);
|
|
2308
2350
|
}
|
|
@@ -2323,10 +2365,42 @@ class UserProfileComponent {
|
|
|
2323
2365
|
{{ email.email_address }}
|
|
2324
2366
|
@if (!email.verified) {
|
|
2325
2367
|
<em> — {{ t('userProfile.unverified') }}</em>
|
|
2368
|
+
@if (verifying() === email.id) {
|
|
2369
|
+
<span data-atlas="email-verify">
|
|
2370
|
+
<input
|
|
2371
|
+
[class]="cls('formFieldInput', 'atlas-account-input')"
|
|
2372
|
+
inputmode="numeric"
|
|
2373
|
+
autocomplete="one-time-code"
|
|
2374
|
+
[placeholder]="t('userProfile.verifyCodePlaceholder')"
|
|
2375
|
+
[value]="code()"
|
|
2376
|
+
(input)="code.set($any($event.target).value)"
|
|
2377
|
+
/>
|
|
2378
|
+
<button
|
|
2379
|
+
[class]="cls('formButtonSecondary', 'atlas-button-secondary')"
|
|
2380
|
+
type="button"
|
|
2381
|
+
[disabled]="busy()"
|
|
2382
|
+
(click)="confirmCode()"
|
|
2383
|
+
>
|
|
2384
|
+
{{ t('userProfile.verifyConfirm') }}
|
|
2385
|
+
</button>
|
|
2386
|
+
</span>
|
|
2387
|
+
} @else {
|
|
2388
|
+
<button
|
|
2389
|
+
[class]="cls('formButtonSecondary', 'atlas-button-secondary')"
|
|
2390
|
+
type="button"
|
|
2391
|
+
[disabled]="busy()"
|
|
2392
|
+
(click)="sendCode(email.id)"
|
|
2393
|
+
>
|
|
2394
|
+
{{ t('userProfile.verify') }}
|
|
2395
|
+
</button>
|
|
2396
|
+
}
|
|
2326
2397
|
}
|
|
2327
2398
|
</li>
|
|
2328
2399
|
}
|
|
2329
2400
|
</ul>
|
|
2401
|
+
@if (verifyError(); as message) {
|
|
2402
|
+
<p role="alert">{{ message }}</p>
|
|
2403
|
+
}
|
|
2330
2404
|
</section>
|
|
2331
2405
|
|
|
2332
2406
|
<section>
|
|
@@ -2356,10 +2430,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2356
2430
|
{{ email.email_address }}
|
|
2357
2431
|
@if (!email.verified) {
|
|
2358
2432
|
<em> — {{ t('userProfile.unverified') }}</em>
|
|
2433
|
+
@if (verifying() === email.id) {
|
|
2434
|
+
<span data-atlas="email-verify">
|
|
2435
|
+
<input
|
|
2436
|
+
[class]="cls('formFieldInput', 'atlas-account-input')"
|
|
2437
|
+
inputmode="numeric"
|
|
2438
|
+
autocomplete="one-time-code"
|
|
2439
|
+
[placeholder]="t('userProfile.verifyCodePlaceholder')"
|
|
2440
|
+
[value]="code()"
|
|
2441
|
+
(input)="code.set($any($event.target).value)"
|
|
2442
|
+
/>
|
|
2443
|
+
<button
|
|
2444
|
+
[class]="cls('formButtonSecondary', 'atlas-button-secondary')"
|
|
2445
|
+
type="button"
|
|
2446
|
+
[disabled]="busy()"
|
|
2447
|
+
(click)="confirmCode()"
|
|
2448
|
+
>
|
|
2449
|
+
{{ t('userProfile.verifyConfirm') }}
|
|
2450
|
+
</button>
|
|
2451
|
+
</span>
|
|
2452
|
+
} @else {
|
|
2453
|
+
<button
|
|
2454
|
+
[class]="cls('formButtonSecondary', 'atlas-button-secondary')"
|
|
2455
|
+
type="button"
|
|
2456
|
+
[disabled]="busy()"
|
|
2457
|
+
(click)="sendCode(email.id)"
|
|
2458
|
+
>
|
|
2459
|
+
{{ t('userProfile.verify') }}
|
|
2460
|
+
</button>
|
|
2461
|
+
}
|
|
2359
2462
|
}
|
|
2360
2463
|
</li>
|
|
2361
2464
|
}
|
|
2362
2465
|
</ul>
|
|
2466
|
+
@if (verifyError(); as message) {
|
|
2467
|
+
<p role="alert">{{ message }}</p>
|
|
2468
|
+
}
|
|
2363
2469
|
</section>
|
|
2364
2470
|
|
|
2365
2471
|
<section>
|