@atlasauth/vue 0.8.0 → 0.10.0
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 +23 -0
- package/dist/appearance.d.ts +1 -1
- package/dist/appearance.js.map +1 -1
- package/dist/components.d.ts +71 -4
- package/dist/components.js +759 -40
- package/dist/components.js.map +1 -1
- package/dist/composables.d.ts +22 -1
- package/dist/composables.js +41 -0
- package/dist/composables.js.map +1 -1
- package/dist/flow.d.ts +61 -1
- package/dist/flow.js +87 -2
- package/dist/flow.js.map +1 -1
- package/dist/i18n.js +58 -0
- package/dist/i18n.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/plugin.d.ts +9 -1
- package/dist/plugin.js +15 -1
- package/dist/plugin.js.map +1 -1
- package/dist/policies.d.ts +125 -0
- package/dist/policies.js +218 -0
- package/dist/policies.js.map +1 -0
- package/dist/types.d.ts +6 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# @atlasauth/vue changelog
|
|
2
2
|
|
|
3
|
+
## 0.10.0 — 2026-10-24
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- **Policy acceptance** in `<SignUp>` and `<SignIn>` (consent block with in-page viewer, clickwrap line, unskippable scroll dialog, the `needs_policy_acceptance` step), plus `<PolicyGate/>`, `<PolicyConsent/>`, `<PolicyClickwrap/>`, `<PolicyAcceptStep/>`, `usePolicies()`. New `policy.*` strings.
|
|
8
|
+
|
|
9
|
+
## 0.9.0 — 2026-10-23
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- `<OrganizationAuditLog/>` and `useOrganizationAuditLog()`: the active organization's audit trail for its admins, paged, with labels as props. Renders nothing for a member who may not read it. Appearance `elements` gain `list` and `listItem`.
|
|
14
|
+
- **Recovery codes after enrolment.** Setting up a second factor at sign-in now shows the account's one-time recovery codes before the sign-in finishes, as the hosted page does: copy them, download them as a .txt file, then "I've saved my codes" continues. Before, the sign-in completed straight away and the codes were never shown. The codes are kept in memory only, never on the attempt or in storage. New strings (`mfa.recoveryCodesTitle`, `mfa.recoveryCodesHelp`, `mfa.recoveryCodesCopy`, `mfa.recoveryCodesCopied`, `mfa.recoveryCodesDownload`, `mfa.recoveryCodesSaved`) are in the catalog and in every `@atlasauth/localizations` bundle.
|
|
15
|
+
- **MFA enrolment at sign-in works end to end.** When the app requires a second factor and the account has none, `<SignIn>` now fetches the authenticator setup and shows its QR code and the setup key, then asks for the code (one or two, as the app requires). Before, the step asked for codes without ever showing the setup.
|
|
16
|
+
- **Text-message enrolment** where the app offers texted codes and can send them: the user picks "Use text messages", enters a phone number, and confirms with the texted code. When both methods are offered the user chooses, and can switch.
|
|
17
|
+
- **"Text me a code instead"** at the second-factor step where the app offers texted codes, beside the existing "Email me a code instead".
|
|
18
|
+
- The new strings are in the catalog (`mfa.enrollChoose`, `mfa.enrollTotpOption`, `mfa.enrollSmsOption`, `mfa.enrollScan`, `mfa.enrollQrAlt`, `mfa.enrollSetupKey`, `mfa.enrollPreparing`, `mfa.phoneLabel`, `mfa.phoneHint`, `mfa.sendCode`, `mfa.codeTextedTo`, `mfa.smsCodeOption`) and in every `@atlasauth/localizations` bundle.
|
|
19
|
+
- "Email me a code instead" at the second factor showed its catalog key (`signIn.emailCodeOption`) unless a language bundle was passed; the English string is now in the default catalog.
|
|
20
|
+
- Texted codes are offered only where the server says the app can text (`account.mfa` on `/v1/appearance`). A server that does not say gets the authenticator app only.
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- Built on `@atlasauth/js` 0.16.0.
|
|
25
|
+
|
|
3
26
|
## 0.8.0
|
|
4
27
|
|
|
5
28
|
### Changed
|
package/dist/appearance.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ export interface DesignTokens {
|
|
|
31
31
|
spacingUnit?: string;
|
|
32
32
|
}
|
|
33
33
|
/** Every element a customer may target. Named for what it IS, not where it sits. */
|
|
34
|
-
export type ElementKey = 'root' | 'card' | 'headerTitle' | 'headerSubtitle' | 'formField' | 'formFieldLabel' | 'formFieldInput' | 'formFieldError' | 'formButtonPrimary' | 'formButtonSecondary' | 'socialButton' | 'dividerText' | 'footerAction' | 'avatar' | 'menu' | 'menuItem' | 'badge';
|
|
34
|
+
export type ElementKey = 'root' | 'card' | 'headerTitle' | 'headerSubtitle' | 'formField' | 'formFieldLabel' | 'formFieldInput' | 'formFieldError' | 'formButtonPrimary' | 'formButtonSecondary' | 'socialButton' | 'dividerText' | 'footerAction' | 'avatar' | 'menu' | 'menuItem' | 'list' | 'listItem' | 'badge';
|
|
35
35
|
export interface Appearance extends DesignAppearance {
|
|
36
36
|
/** A prebuilt token theme to start from (pre-design-system themes). */
|
|
37
37
|
baseTheme?: keyof typeof THEMES;
|
package/dist/appearance.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appearance.js","sourceRoot":"","sources":["../src/appearance.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;
|
|
1
|
+
{"version":3,"file":"appearance.js","sourceRoot":"","sources":["../src/appearance.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAyGH,sCASC;AAGD,oCAOC;AASD,4BAOC;AASD,wCASC;AAUD,4CAWC;AAjLD,uDAMmC;AAEnC,qDAA+D;AAAtD,6GAAA,kBAAkB,OAAA;AAmDd,QAAA,cAAc,GAA2B;IACpD,YAAY,EAAE,SAAS;IACvB,SAAS,EAAE,SAAS;IACpB,eAAe,EAAE,SAAS;IAC1B,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,KAAK;IACnB,UAAU,EAAE,iEAAiE;IAC7E,WAAW,EAAE,KAAK;CACnB,CAAC;AAEF;;;;;GAKG;AACU,QAAA,MAAM,GAAG;IACpB,OAAO,EAAE,sBAAc;IACvB,IAAI,EAAE;QACJ,GAAG,sBAAc;QACjB,SAAS,EAAE,SAAS;QACpB,eAAe,EAAE,SAAS;QAC1B,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,SAAS;KACxB;IACD,YAAY,EAAE;QACZ,GAAG,sBAAc;QACjB,YAAY,EAAE,SAAS;QACvB,SAAS,EAAE,SAAS;QACpB,eAAe,EAAE,SAAS;QAC1B,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,wCAAwC;KACrD;CACwD,CAAC;AAE5D;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,UAAuB;IACnD,MAAM,IAAI,GAAG,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,cAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,sBAAc,CAAC;IACnF,MAAM,SAAS,GAAG,UAAU,EAAE,SAAS,IAAI,EAAE,CAAC;IAE9C,MAAM,QAAQ,GAAG,EAAE,GAAG,sBAAc,EAAE,GAAG,IAAI,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,IAAI,KAAK,KAAK,SAAS;YAAE,QAAQ,CAAC,GAAyB,CAAC,GAAG,KAAK,CAAC;IACvE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,oEAAoE;AACpE,SAAgB,YAAY,CAAC,MAA8B;IACzD,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,0EAA0E;QAC1E,IAAI,CAAC,WAAW,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;IACjF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,QAAQ,CACtB,OAAmB,EACnB,UAAkC,EAClC,IAAY;IAEZ,MAAM,QAAQ,GAAG,UAAU,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAED,mFAAmF;AAEnF;;;;GAIG;AACH,SAAgB,cAAc,CAAC,UAAuB;IACpD,MAAM,GAAG,GAAiB,EAAE,CAAC;IAC7B,IAAI,UAAU,EAAE,SAAS,IAAI,UAAU,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,cAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;QACvE,IAAI,KAAK,KAAK,SAAS;YAAE,GAAG,CAAC,GAAyB,CAAC,GAAG,KAAK,CAAC;IAClE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAC9B,UAAkC,EAClC,cAAiD,EACjD,UAAuD,EAAE;IAEzD,OAAO,IAAA,gCAAsB,EAAC,UAAU,EAAE,cAAc,EAAE;QACxD,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC;QAClC,WAAW,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC1D,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC,CAAC;AACL,CAAC"}
|
package/dist/components.d.ts
CHANGED
|
@@ -63,8 +63,8 @@ export declare const Protect: import("vue").DefineComponent<import("vue").Extrac
|
|
|
63
63
|
default: undefined;
|
|
64
64
|
};
|
|
65
65
|
}>> & Readonly<{}>, {
|
|
66
|
-
permission: string;
|
|
67
66
|
role: string;
|
|
67
|
+
permission: string;
|
|
68
68
|
anyPermission: readonly string[];
|
|
69
69
|
allPermissions: readonly string[];
|
|
70
70
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -85,9 +85,9 @@ export declare const SignIn: import("vue").DefineComponent<import("vue").Extract
|
|
|
85
85
|
};
|
|
86
86
|
}>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
87
87
|
[key: string]: any;
|
|
88
|
-
}> | VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
88
|
+
}> | (VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
89
89
|
[key: string]: any;
|
|
90
|
-
}>[], {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
90
|
+
}> | null)[], {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
91
91
|
/** Where to send the user once the flow completes. */
|
|
92
92
|
afterUrl: {
|
|
93
93
|
type: StringConstructor;
|
|
@@ -131,6 +131,16 @@ export declare const SignUp: import("vue").DefineComponent<import("vue").Extract
|
|
|
131
131
|
export declare const UserButton: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
132
132
|
[key: string]: any;
|
|
133
133
|
}> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
134
|
+
/**
|
|
135
|
+
* A banner shown only while the active session is an impersonation, naming the
|
|
136
|
+
* user acted as, with "Return to admin" (or "End impersonation" when there is no
|
|
137
|
+
* session of the impersonator's to resume). Emits `ended` with the outcome.
|
|
138
|
+
*/
|
|
139
|
+
export declare const ImpersonationBanner: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
140
|
+
[key: string]: any;
|
|
141
|
+
}> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "ended"[], "ended", import("vue").PublicProps, Readonly<{}> & Readonly<{
|
|
142
|
+
onEnded?: ((...args: any[]) => any) | undefined;
|
|
143
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
134
144
|
export declare const OrganizationSwitcher: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
135
145
|
[key: string]: any;
|
|
136
146
|
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -139,4 +149,61 @@ export declare const UserProfile: import("vue").DefineComponent<{}, () => VNode<
|
|
|
139
149
|
}> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
140
150
|
export declare const OrganizationProfile: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
141
151
|
[key: string]: any;
|
|
142
|
-
}> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin,
|
|
152
|
+
}> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "exit"[], "exit", import("vue").PublicProps, Readonly<{}> & Readonly<{
|
|
153
|
+
onExit?: ((...args: any[]) => any) | undefined;
|
|
154
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
155
|
+
/** The labels `<OrganizationAuditLog/>` renders; every one is optional. */
|
|
156
|
+
export interface OrganizationAuditLogLabels {
|
|
157
|
+
title?: string;
|
|
158
|
+
empty?: string;
|
|
159
|
+
loadMore?: string;
|
|
160
|
+
actor?: string;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* `<OrganizationAuditLog/>` — the active organization's audit trail for its
|
|
164
|
+
* admins, next to `<OrganizationProfile/>`. Renders nothing for a member who may
|
|
165
|
+
* not read it (the server is the authority; the component just follows it).
|
|
166
|
+
* Labels are props so an app can localise them.
|
|
167
|
+
*/
|
|
168
|
+
export declare const OrganizationAuditLog: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
169
|
+
pageSize: {
|
|
170
|
+
type: NumberConstructor;
|
|
171
|
+
default: undefined;
|
|
172
|
+
};
|
|
173
|
+
action: {
|
|
174
|
+
type: StringConstructor;
|
|
175
|
+
default: undefined;
|
|
176
|
+
};
|
|
177
|
+
labels: {
|
|
178
|
+
type: PropType<OrganizationAuditLogLabels>;
|
|
179
|
+
default: () => {};
|
|
180
|
+
};
|
|
181
|
+
formatDate: {
|
|
182
|
+
type: PropType<(ms: number) => string>;
|
|
183
|
+
default: (ms: number) => string;
|
|
184
|
+
};
|
|
185
|
+
}>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
186
|
+
[key: string]: any;
|
|
187
|
+
}> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
188
|
+
pageSize: {
|
|
189
|
+
type: NumberConstructor;
|
|
190
|
+
default: undefined;
|
|
191
|
+
};
|
|
192
|
+
action: {
|
|
193
|
+
type: StringConstructor;
|
|
194
|
+
default: undefined;
|
|
195
|
+
};
|
|
196
|
+
labels: {
|
|
197
|
+
type: PropType<OrganizationAuditLogLabels>;
|
|
198
|
+
default: () => {};
|
|
199
|
+
};
|
|
200
|
+
formatDate: {
|
|
201
|
+
type: PropType<(ms: number) => string>;
|
|
202
|
+
default: (ms: number) => string;
|
|
203
|
+
};
|
|
204
|
+
}>> & Readonly<{}>, {
|
|
205
|
+
pageSize: number;
|
|
206
|
+
action: string;
|
|
207
|
+
labels: OrganizationAuditLogLabels;
|
|
208
|
+
formatDate: (ms: number) => string;
|
|
209
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|