@atlasauth/vue 0.7.0 → 0.9.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 CHANGED
@@ -1,5 +1,34 @@
1
1
  # @atlasauth/vue changelog
2
2
 
3
+ ## 0.9.0 — 2026-10-23
4
+
5
+ ### Added
6
+
7
+ - `<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`.
8
+ - **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.
9
+ - **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.
10
+ - **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.
11
+ - **"Text me a code instead"** at the second-factor step where the app offers texted codes, beside the existing "Email me a code instead".
12
+ - 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.
13
+ - "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.
14
+ - 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.
15
+
16
+ ### Changed
17
+
18
+ - Built on `@atlasauth/js` 0.16.0.
19
+
20
+ ## 0.8.0
21
+
22
+ ### Changed
23
+
24
+ - `@atlasauth/js` 0.15.0: referral capture for any referral program and any consent manager (pass a custom program's reader page-wide with `configureReferralCapture({ referralSource })`).
25
+
26
+ ### Fixed
27
+
28
+ - Development instances: sign-in from `localhost` keeps working where the browser blocks the instance's cookie as third-party (Chrome, Safari). On a `pk_test_` key the SDK keeps the session's refresh token in `localStorage` and sends it as `x-refresh-token`; production keys never do.
29
+ - After a sign-in completes, the panel says "You're signed in" only once this browser holds the session, and says plainly when the browser didn't keep it, instead of "you are signed in where you started". That message is now shown only for a sign-in completed on another device.
30
+ - `<SignIn>` shows "No account? Sign up" on every step (`signUpUrl`; default the hosted sign-up page with the visitor's referral, `null` hides it), so a newcomer on a password-only instance always has a way to create an account.
31
+
3
32
  ## 0.7.0
4
33
  - **Referral attribution.** The prebuilt forms send the referral the visitor arrived with on sign-in and sign-up (through `@atlasauth/js` 0.13.0) when the instance has referrals on, and show the captcha for a referred sign-up when the instance requires it. New `createAtlas` options: `referral?: false` and `referralConsent?`.
5
34
 
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"appearance.js","sourceRoot":"","sources":["../src/appearance.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAuGH,sCASC;AAGD,oCAOC;AASD,4BAOC;AASD,wCASC;AAUD,4CAWC;AA/KD,uDAMmC;AAEnC,qDAA+D;AAAtD,6GAAA,kBAAkB,OAAA;AAiDd,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"}
1
+ {"version":3,"file":"appearance.js","sourceRoot":"","sources":["../src/appearance.ts"],"names":[],"mappings":"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"}
@@ -74,16 +74,37 @@ export declare const SignIn: import("vue").DefineComponent<import("vue").Extract
74
74
  type: StringConstructor;
75
75
  default: undefined;
76
76
  };
77
+ /**
78
+ * Where "No account? Sign up" goes. Default: the instance's hosted sign-up
79
+ * page (carrying the visitor's referral). `null` hides it. Always shown, never
80
+ * only after a failed sign-in, so it says nothing about whether an email has an account.
81
+ */
82
+ signUpUrl: {
83
+ type: PropType<string | null | undefined>;
84
+ default: undefined;
85
+ };
77
86
  }>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
78
87
  [key: string]: any;
79
- }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
88
+ }> | (VNode<import("vue").RendererNode, import("vue").RendererElement, {
89
+ [key: string]: any;
90
+ }> | null)[], {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
80
91
  /** Where to send the user once the flow completes. */
81
92
  afterUrl: {
82
93
  type: StringConstructor;
83
94
  default: undefined;
84
95
  };
96
+ /**
97
+ * Where "No account? Sign up" goes. Default: the instance's hosted sign-up
98
+ * page (carrying the visitor's referral). `null` hides it. Always shown, never
99
+ * only after a failed sign-in, so it says nothing about whether an email has an account.
100
+ */
101
+ signUpUrl: {
102
+ type: PropType<string | null | undefined>;
103
+ default: undefined;
104
+ };
85
105
  }>> & Readonly<{}>, {
86
106
  afterUrl: string;
107
+ signUpUrl: string | null | undefined;
87
108
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
88
109
  /**
89
110
  * §10.2 `<SignUp/>` — creates an account. The first step is the create-account
@@ -110,6 +131,16 @@ export declare const SignUp: import("vue").DefineComponent<import("vue").Extract
110
131
  export declare const UserButton: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
111
132
  [key: string]: any;
112
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>;
113
144
  export declare const OrganizationSwitcher: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
114
145
  [key: string]: any;
115
146
  }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -118,4 +149,61 @@ export declare const UserProfile: import("vue").DefineComponent<{}, () => VNode<
118
149
  }> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
119
150
  export declare const OrganizationProfile: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
120
151
  [key: string]: any;
121
- }> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
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>;