@pisti-paypiller/react 0.0.0-stage → 0.7.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.
Files changed (52) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +159 -2
  3. package/dist/api-keys.d.ts +8 -0
  4. package/dist/api-keys.d.ts.map +1 -0
  5. package/dist/api-keys.js +54 -0
  6. package/dist/api-keys.js.map +1 -0
  7. package/dist/async-state.d.ts +14 -0
  8. package/dist/async-state.d.ts.map +1 -0
  9. package/dist/async-state.js +81 -0
  10. package/dist/async-state.js.map +1 -0
  11. package/dist/auth.d.ts +23 -0
  12. package/dist/auth.d.ts.map +1 -0
  13. package/dist/auth.js +297 -0
  14. package/dist/auth.js.map +1 -0
  15. package/dist/client.d.ts +152 -0
  16. package/dist/client.d.ts.map +1 -0
  17. package/dist/client.js +633 -0
  18. package/dist/client.js.map +1 -0
  19. package/dist/context.d.ts +94 -0
  20. package/dist/context.d.ts.map +1 -0
  21. package/dist/context.js +145 -0
  22. package/dist/context.js.map +1 -0
  23. package/dist/index.d.ts +15 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +9 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/organizations.d.ts +16 -0
  28. package/dist/organizations.d.ts.map +1 -0
  29. package/dist/organizations.js +169 -0
  30. package/dist/organizations.js.map +1 -0
  31. package/dist/resources.d.ts +204 -0
  32. package/dist/resources.d.ts.map +1 -0
  33. package/dist/resources.js +129 -0
  34. package/dist/resources.js.map +1 -0
  35. package/dist/reverification.d.ts +5 -0
  36. package/dist/reverification.d.ts.map +1 -0
  37. package/dist/reverification.js +54 -0
  38. package/dist/reverification.js.map +1 -0
  39. package/dist/types.d.ts +118 -0
  40. package/dist/types.d.ts.map +1 -0
  41. package/dist/types.js +2 -0
  42. package/dist/types.js.map +1 -0
  43. package/dist/ui.d.ts +72 -0
  44. package/dist/ui.d.ts.map +1 -0
  45. package/dist/ui.js +125 -0
  46. package/dist/ui.js.map +1 -0
  47. package/dist/user-profile.d.ts +6 -0
  48. package/dist/user-profile.d.ts.map +1 -0
  49. package/dist/user-profile.js +219 -0
  50. package/dist/user-profile.js.map +1 -0
  51. package/package.json +48 -4
  52. package/styles.css +517 -0
@@ -0,0 +1,204 @@
1
+ export interface CursorPage<T> {
2
+ items: T[];
3
+ nextCursor: string | null;
4
+ hasMore: boolean;
5
+ }
6
+ export interface DirectoryQuery {
7
+ limit?: number;
8
+ cursor?: string;
9
+ search?: string;
10
+ }
11
+ export interface Page<T> {
12
+ items: T[];
13
+ page: number;
14
+ pageSize: number;
15
+ totalCount: number;
16
+ }
17
+ export interface Profile {
18
+ id: string;
19
+ firstName: string;
20
+ lastName: string;
21
+ imageUrl: string | null;
22
+ updatedAt: string;
23
+ publicMetadata: Record<string, unknown>;
24
+ unsafeMetadata: Record<string, unknown>;
25
+ }
26
+ export interface AccountSession {
27
+ id: string;
28
+ createdAt: string;
29
+ lastSeenAt: string;
30
+ expiresAt: string;
31
+ revokedAt: string | null;
32
+ current: boolean;
33
+ device: string;
34
+ ipAddress: string | null;
35
+ status: "active" | "expired" | "revoked";
36
+ idleExpiresAt: string;
37
+ }
38
+ export interface UserApiKey {
39
+ id: string;
40
+ name: string;
41
+ description: string | null;
42
+ keyPrefix: string;
43
+ scopes: string[];
44
+ expired: boolean;
45
+ expiresAt: string | null;
46
+ lastUsedAt: string | null;
47
+ createdAt: string;
48
+ }
49
+ export interface SecurityState {
50
+ hasPassword: boolean;
51
+ passwordEnabled: boolean;
52
+ authenticatorEnabled: boolean;
53
+ authenticatorRequired: boolean;
54
+ recoveryCodesRemaining: number;
55
+ recentAuthenticationExpiresAt: string;
56
+ }
57
+ export interface Passkey {
58
+ id: string;
59
+ name: string;
60
+ rpId: string;
61
+ createdAt: string;
62
+ lastUsedAt: string | null;
63
+ }
64
+ export interface ConnectedAccount {
65
+ id: string;
66
+ providerId: string;
67
+ provider: string;
68
+ displayName: string;
69
+ email: string | null;
70
+ createdAt: string;
71
+ }
72
+ export interface SecurityProof {
73
+ password?: string;
74
+ code?: string;
75
+ requestId?: string;
76
+ emailCode?: string;
77
+ }
78
+ export interface VerificationRequest {
79
+ requestId: string;
80
+ message: string;
81
+ }
82
+ export interface AuthenticatorEnrollment {
83
+ enrollmentId: string;
84
+ setupKey: string;
85
+ authenticatorUri: string;
86
+ expiresAt: string;
87
+ }
88
+ export interface Organization {
89
+ id: string;
90
+ instanceId: string;
91
+ name: string;
92
+ slug: string;
93
+ imageUrl: string | null;
94
+ maxMemberships: number | null;
95
+ publicMetadata: Record<string, unknown>;
96
+ createdAt: string;
97
+ updatedAt: string;
98
+ }
99
+ /** Public metadata is read-only here: only your backend sets it, because your app may trust it. */
100
+ export interface OrganizationInput {
101
+ name: string;
102
+ slug: string;
103
+ imageUrl?: string | null;
104
+ expectedUpdatedAt?: string;
105
+ }
106
+ export interface OrganizationMember {
107
+ userId: string;
108
+ email: string;
109
+ roleId: string;
110
+ roleKey: string;
111
+ createdAt: string;
112
+ }
113
+ export interface OrganizationInvitation {
114
+ id: string;
115
+ email: string;
116
+ roleId: string;
117
+ status: string;
118
+ expiresAt: string;
119
+ createdAt: string;
120
+ }
121
+ export interface OrganizationRole {
122
+ id: string;
123
+ key: string;
124
+ name: string;
125
+ permissions: string[];
126
+ }
127
+ export type ResourceRequest = <T>(method: string, path: string, body?: unknown) => Promise<T>;
128
+ export declare class AccountResource {
129
+ private readonly request;
130
+ constructor(request: ResourceRequest);
131
+ get: () => Promise<Profile>;
132
+ update: (input: Pick<Profile, "firstName" | "lastName"> & {
133
+ imageUrl?: string | null;
134
+ unsafeMetadata: Record<string, unknown>;
135
+ expectedUpdatedAt: string;
136
+ }) => Promise<void>;
137
+ security: () => Promise<SecurityState>;
138
+ passkeys: () => Promise<Passkey[]>;
139
+ connections: () => Promise<ConnectedAccount[]>;
140
+ disconnect: (id: string) => Promise<void>;
141
+ removePasskey: (id: string) => Promise<void>;
142
+ requestReauthentication: () => Promise<VerificationRequest>;
143
+ reauthenticate: (proof: SecurityProof) => Promise<void>;
144
+ sessions: (page?: number, pageSize?: number) => Promise<Page<AccountSession>>;
145
+ revokeSession: (id: string) => Promise<void>;
146
+ revokeAllSessions: () => Promise<void>;
147
+ changePassword: (currentPassword: string, password: string, code?: string) => Promise<void>;
148
+ setPassword: (password: string, proof?: SecurityProof) => Promise<void>;
149
+ requestEmailChange: (identifier: string) => Promise<VerificationRequest>;
150
+ completeEmailChange: (requestId: string, code: string) => Promise<void>;
151
+ requestDeactivation: () => Promise<VerificationRequest>;
152
+ deactivate: (requestId: string, code: string) => Promise<void>;
153
+ enrollAuthenticator: (proof: SecurityProof) => Promise<AuthenticatorEnrollment>;
154
+ confirmAuthenticator: (enrollmentId: string, code: string) => Promise<{
155
+ recoveryCodes: string[];
156
+ }>;
157
+ removeAuthenticator: (proof: SecurityProof) => Promise<void>;
158
+ regenerateRecoveryCodes: (proof: SecurityProof) => Promise<{
159
+ recoveryCodes: string[];
160
+ }>;
161
+ apiKeys: () => Promise<UserApiKey[]>;
162
+ /** Creates an API key. It needs a recent sign-in, starts with no scopes or claims (your backend grants those) and
163
+ * stops working when the user's credentials change. The secret is returned only once. */
164
+ createApiKey: (input: {
165
+ name: string;
166
+ description?: string;
167
+ secondsUntilExpiration?: number;
168
+ }) => Promise<{
169
+ apiKey: UserApiKey;
170
+ secret: string;
171
+ }>;
172
+ revokeApiKey: (id: string, revocationReason?: string) => Promise<void>;
173
+ }
174
+ export declare class OrganizationResource {
175
+ private readonly request;
176
+ private readonly beginOperation;
177
+ constructor(request: ResourceRequest, beginOperation?: () => () => void);
178
+ listPage: (query?: DirectoryQuery) => Promise<CursorPage<Organization>>;
179
+ list: () => Promise<Organization[]>;
180
+ create: (input: OrganizationInput) => Promise<{
181
+ id: string;
182
+ }>;
183
+ setActive: (id: string | null) => Promise<void>;
184
+ update: (id: string, input: OrganizationInput & {
185
+ expectedUpdatedAt: string;
186
+ }) => Promise<void>;
187
+ membersPage: (id: string, query?: DirectoryQuery) => Promise<CursorPage<OrganizationMember>>;
188
+ members: (id: string) => Promise<OrganizationMember[]>;
189
+ invitationsPage: (id: string, query?: DirectoryQuery) => Promise<CursorPage<OrganizationInvitation>>;
190
+ invitations: (id: string) => Promise<OrganizationInvitation[]>;
191
+ roles: (id: string) => Promise<OrganizationRole[]>;
192
+ invite: (id: string, email: string, roleId: string) => Promise<{
193
+ id: string;
194
+ expiresAt: string;
195
+ }>;
196
+ acceptInvitation: (token: string) => Promise<void>;
197
+ revokeInvitation: (id: string, invitationId: string) => Promise<void>;
198
+ setMemberRole: (id: string, userId: string, roleId: string) => Promise<void>;
199
+ removeMember: (id: string, userId: string) => Promise<void>;
200
+ leave: (id: string) => Promise<void>;
201
+ /** Deletes the organization. Only an owner can; every membership and pending invitation ends with it. */
202
+ delete: (id: string) => Promise<void>;
203
+ }
204
+ //# sourceMappingURL=resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ function directoryQuery(query = {}) {
2
+ const parameters = new URLSearchParams({
3
+ paged: "true",
4
+ limit: String(query.limit ?? 50),
5
+ });
6
+ if (query.cursor)
7
+ parameters.set("cursor", query.cursor);
8
+ if (query.search)
9
+ parameters.set("search", query.search);
10
+ return parameters.toString();
11
+ }
12
+ async function readDirectory(load, checkIdentity) {
13
+ const items = [];
14
+ let cursor;
15
+ const seen = new Set();
16
+ do {
17
+ checkIdentity();
18
+ const page = await load({ limit: 100, ...(cursor ? { cursor } : {}) });
19
+ checkIdentity();
20
+ items.push(...page.items);
21
+ if (!page.hasMore)
22
+ return items;
23
+ if (!page.nextCursor || seen.has(page.nextCursor))
24
+ throw new Error("The directory returned an invalid continuation.");
25
+ cursor = page.nextCursor;
26
+ seen.add(cursor);
27
+ } while (cursor);
28
+ return items;
29
+ }
30
+ const integerId = (value) => {
31
+ if (!/^[1-9]\d{0,9}$/.test(value) || Number(value) > 2_147_483_647)
32
+ throw new Error("Provide a valid resource ID.");
33
+ return value;
34
+ };
35
+ const publicId = (value) => {
36
+ if (!/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/i.test(value))
37
+ throw new Error("Provide a valid user ID.");
38
+ return value;
39
+ };
40
+ export class AccountResource {
41
+ request;
42
+ constructor(request) {
43
+ this.request = request;
44
+ }
45
+ get = () => this.request("GET", "/v1/account/profile");
46
+ update = (input) => this.request("PUT", "/v1/account/profile", input);
47
+ security = () => this.request("GET", "/v1/account/security");
48
+ passkeys = () => this.request("GET", "/v1/account/security/passkeys");
49
+ connections = () => this.request("GET", "/v1/account/security/connections");
50
+ disconnect = (id) => this.request("DELETE", `/v1/account/security/connections/${integerId(id)}`);
51
+ removePasskey = (id) => this.request("DELETE", `/v1/account/security/passkeys/${integerId(id)}`);
52
+ requestReauthentication = () => this.request("POST", "/v1/account/security/reauthenticate/request");
53
+ reauthenticate = (proof) => this.request("POST", "/v1/account/security/reauthenticate", proof);
54
+ sessions = (page = 1, pageSize = 25) => this.request("GET", `/v1/account/sessions?page=${page}&pageSize=${pageSize}`);
55
+ revokeSession = (id) => {
56
+ if (!/^[1-9]\d{0,18}$/.test(id))
57
+ throw new Error("Provide a valid session ID.");
58
+ return this.request("POST", `/v1/account/sessions/${id}/revoke`);
59
+ };
60
+ revokeAllSessions = () => this.request("POST", "/v1/account/sessions/revoke-all");
61
+ changePassword = (currentPassword, password, code) => this.request("POST", "/v1/account/password", {
62
+ currentPassword,
63
+ password,
64
+ ...(code ? { code } : {}),
65
+ });
66
+ setPassword = (password, proof = {}) => this.request("POST", "/v1/account/password", {
67
+ password,
68
+ ...(proof.password ? { currentPassword: proof.password } : {}),
69
+ ...(proof.code ? { code: proof.code } : {}),
70
+ ...(proof.requestId ? { requestId: proof.requestId } : {}),
71
+ ...(proof.emailCode ? { emailCode: proof.emailCode } : {}),
72
+ });
73
+ requestEmailChange = (identifier) => this.request("POST", "/v1/account/email/request", { identifier });
74
+ completeEmailChange = (requestId, code) => this.request("POST", "/v1/account/email/complete", { requestId, code });
75
+ requestDeactivation = () => this.request("POST", "/v1/account/deletion/request");
76
+ deactivate = (requestId, code) => this.request("POST", "/v1/account/deletion/complete", {
77
+ requestId,
78
+ code,
79
+ });
80
+ enrollAuthenticator = (proof) => this.request("POST", "/v1/account/security/authenticator/enroll", proof);
81
+ confirmAuthenticator = (enrollmentId, code) => this.request("POST", "/v1/account/security/authenticator/confirm", {
82
+ enrollmentId,
83
+ code,
84
+ });
85
+ removeAuthenticator = (proof) => this.request("POST", "/v1/account/security/authenticator/remove", proof);
86
+ regenerateRecoveryCodes = (proof) => this.request("POST", "/v1/account/security/recovery-codes", proof);
87
+ apiKeys = () => this.request("GET", "/v1/account/api-keys");
88
+ /** Creates an API key. It needs a recent sign-in, starts with no scopes or claims (your backend grants those) and
89
+ * stops working when the user's credentials change. The secret is returned only once. */
90
+ createApiKey = (input) => this.request("POST", "/v1/account/api-keys", input);
91
+ revokeApiKey = (id, revocationReason) => {
92
+ if (!/^[1-9]\d{0,18}$/.test(id))
93
+ throw new Error("Provide a valid API key ID.");
94
+ return this.request("POST", `/v1/account/api-keys/${id}/revoke`, {
95
+ revocationReason: revocationReason ?? null,
96
+ });
97
+ };
98
+ }
99
+ export class OrganizationResource {
100
+ request;
101
+ beginOperation;
102
+ constructor(request, beginOperation = () => () => { }) {
103
+ this.request = request;
104
+ this.beginOperation = beginOperation;
105
+ }
106
+ listPage = (query = {}) => this.request("GET", "/v1/account/organizations?" + directoryQuery(query));
107
+ list = () => readDirectory((query) => this.listPage(query), this.beginOperation());
108
+ create = (input) => this.request("POST", "/v1/account/organizations", input);
109
+ setActive = (id) => this.request("PUT", "/v1/account/organizations/active", {
110
+ organizationId: id === null ? null : Number(integerId(id)),
111
+ });
112
+ update = (id, input) => this.request("PUT", `/v1/account/organizations/${integerId(id)}`, input);
113
+ membersPage = (id, query = {}) => this.request("GET", `/v1/account/organizations/${integerId(id)}/memberships?${directoryQuery(query)}`);
114
+ members = (id) => readDirectory((query) => this.membersPage(id, query), this.beginOperation());
115
+ invitationsPage = (id, query = {}) => this.request("GET", `/v1/account/organizations/${integerId(id)}/invitations?${directoryQuery(query)}`);
116
+ invitations = (id) => readDirectory((query) => this.invitationsPage(id, query), this.beginOperation());
117
+ roles = (id) => this.request("GET", `/v1/account/organizations/${integerId(id)}/roles`);
118
+ invite = (id, email, roleId) => this.request("POST", `/v1/account/organizations/${integerId(id)}/invitations`, { email, roleId: Number(integerId(roleId)) });
119
+ acceptInvitation = (token) => this.request("POST", "/v1/account/organizations/accept-invitation", {
120
+ token,
121
+ });
122
+ revokeInvitation = (id, invitationId) => this.request("DELETE", `/v1/account/organizations/${integerId(id)}/invitations/${integerId(invitationId)}`);
123
+ setMemberRole = (id, userId, roleId) => this.request("PUT", `/v1/account/organizations/${integerId(id)}/memberships/${publicId(userId)}`, { roleId: Number(integerId(roleId)) });
124
+ removeMember = (id, userId) => this.request("DELETE", `/v1/account/organizations/${integerId(id)}/memberships/${publicId(userId)}`);
125
+ leave = (id) => this.request("POST", `/v1/account/organizations/${integerId(id)}/leave`);
126
+ /** Deletes the organization. Only an owner can; every membership and pending invitation ends with it. */
127
+ delete = (id) => this.request("DELETE", `/v1/account/organizations/${integerId(id)}`);
128
+ }
129
+ //# sourceMappingURL=resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAUA,SAAS,cAAc,CAAC,KAAK,GAAmB,EAAE;IAC9C,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC;QACnC,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;KACnC,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,MAAM;QAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACzD,IAAI,KAAK,CAAC,MAAM;QAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACzD,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC;AACjC,CAAC;AACD,KAAK,UAAU,aAAa,CACxB,IAAuD,EACvD,aAAyB;IAEzB,MAAM,KAAK,GAAQ,EAAE,CAAC;IACtB,IAAI,MAA0B,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,GAAG,CAAC;QACA,aAAa,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACvE,aAAa,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACvE,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC,QAAQ,MAAM,EAAE;IACjB,OAAO,KAAK,CAAC;AACjB,CAAC;AA2HD,MAAM,SAAS,GAAG,CAAC,KAAa,EAAU,EAAE;IACxC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,aAAa;QAC9D,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AACF,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE;IACvC,IACI,CAAC,iEAAiE,CAAC,IAAI,CACnE,KAAK,CACR;QAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,OAAO,eAAe;IACK,OAAO;IAApC,YAA6B,OAAwB;uBAAxB,OAAO;IAAoB,CAAC;IACzD,GAAG,GAAG,GAAqB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;IACzE,MAAM,GAAG,CACL,KAIC,EACY,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC;IACtE,QAAQ,GAAG,GAA2B,EAAE,CACpC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;IAChD,QAAQ,GAAG,GAAuB,EAAE,CAChC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,+BAA+B,CAAC,CAAC;IACzD,WAAW,GAAG,GAAgC,EAAE,CAC5C,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,kCAAkC,CAAC,CAAC;IAC5D,UAAU,GAAG,CAAC,EAAU,EAAiB,EAAE,CACvC,IAAI,CAAC,OAAO,CACR,QAAQ,EACR,oCAAoC,SAAS,CAAC,EAAE,CAAC,EAAE,CACtD,CAAC;IACN,aAAa,GAAG,CAAC,EAAU,EAAiB,EAAE,CAC1C,IAAI,CAAC,OAAO,CACR,QAAQ,EACR,iCAAiC,SAAS,CAAC,EAAE,CAAC,EAAE,CACnD,CAAC;IACN,uBAAuB,GAAG,GAAiC,EAAE,CACzD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,6CAA6C,CAAC,CAAC;IACxE,cAAc,GAAG,CAAC,KAAoB,EAAiB,EAAE,CACrD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,qCAAqC,EAAE,KAAK,CAAC,CAAC;IACvE,QAAQ,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,QAAQ,GAAG,EAAE,EAAiC,EAAE,CAClE,IAAI,CAAC,OAAO,CACR,KAAK,EACL,6BAA6B,IAAI,aAAa,QAAQ,EAAE,CAC3D,CAAC;IACN,aAAa,GAAG,CAAC,EAAU,EAAiB,EAAE;QAC1C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,wBAAwB,EAAE,SAAS,CAAC,CAAC;IACrE,CAAC,CAAC;IACF,iBAAiB,GAAG,GAAkB,EAAE,CACpC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;IAC5D,cAAc,GAAG,CACb,eAAuB,EACvB,QAAgB,EAChB,IAAa,EACA,EAAE,CACf,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,sBAAsB,EAAE;QACzC,eAAe;QACf,QAAQ;QACR,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5B,CAAC,CAAC;IACP,WAAW,GAAG,CACV,QAAgB,EAChB,KAAK,GAAkB,EAAE,EACZ,EAAE,CACf,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,sBAAsB,EAAE;QACzC,QAAQ;QACR,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7D,CAAC,CAAC;IACP,kBAAkB,GAAG,CAAC,UAAkB,EAAgC,EAAE,CACtE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,2BAA2B,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACtE,mBAAmB,GAAG,CAAC,SAAiB,EAAE,IAAY,EAAiB,EAAE,CACrE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,4BAA4B,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5E,mBAAmB,GAAG,GAAiC,EAAE,CACrD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;IACzD,UAAU,GAAG,CAAC,SAAiB,EAAE,IAAY,EAAiB,EAAE,CAC5D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,+BAA+B,EAAE;QAClD,SAAS;QACT,IAAI;KACP,CAAC,CAAC;IACP,mBAAmB,GAAG,CAClB,KAAoB,EACY,EAAE,CAClC,IAAI,CAAC,OAAO,CACR,MAAM,EACN,2CAA2C,EAC3C,KAAK,CACR,CAAC;IACN,oBAAoB,GAAG,CACnB,YAAoB,EACpB,IAAY,EACwB,EAAE,CACtC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,4CAA4C,EAAE;QAC/D,YAAY;QACZ,IAAI;KACP,CAAC,CAAC;IACP,mBAAmB,GAAG,CAAC,KAAoB,EAAiB,EAAE,CAC1D,IAAI,CAAC,OAAO,CACR,MAAM,EACN,2CAA2C,EAC3C,KAAK,CACR,CAAC;IACN,uBAAuB,GAAG,CACtB,KAAoB,EACgB,EAAE,CACtC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,qCAAqC,EAAE,KAAK,CAAC,CAAC;IACvE,OAAO,GAAG,GAA0B,EAAE,CAClC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;IAChD;6FACyF;IACzF,YAAY,GAAG,CAAC,KAIf,EAAmD,EAAE,CAClD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAC;IACxD,YAAY,GAAG,CAAC,EAAU,EAAE,gBAAyB,EAAiB,EAAE;QACpE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,wBAAwB,EAAE,SAAS,EAAE;YAC7D,gBAAgB,EAAE,gBAAgB,IAAI,IAAI;SAC7C,CAAC,CAAC;IACP,CAAC,CAAC;CACL;AAED,MAAM,OAAO,oBAAoB;IAER,OAAO;IACP,cAAc;IAFnC,YACqB,OAAwB,EACxB,cAAc,GAAqB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC;uBADjD,OAAO;8BACP,cAAc;IAChC,CAAC;IACJ,QAAQ,GAAG,CACP,KAAK,GAAmB,EAAE,EACO,EAAE,CACnC,IAAI,CAAC,OAAO,CACR,KAAK,EACL,4BAA4B,GAAG,cAAc,CAAC,KAAK,CAAC,CACvD,CAAC;IACN,IAAI,GAAG,GAA4B,EAAE,CACjC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IAC1E,MAAM,GAAG,CAAC,KAAwB,EAA2B,EAAE,CAC3D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,2BAA2B,EAAE,KAAK,CAAC,CAAC;IAC7D,SAAS,GAAG,CAAC,EAAiB,EAAiB,EAAE,CAC7C,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,kCAAkC,EAAE;QACpD,cAAc,EAAE,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;KAC7D,CAAC,CAAC;IACP,MAAM,GAAG,CACL,EAAU,EACV,KAAwD,EAC3C,EAAE,CACf,IAAI,CAAC,OAAO,CACR,KAAK,EACL,6BAA6B,SAAS,CAAC,EAAE,CAAC,EAAE,EAC5C,KAAK,CACR,CAAC;IACN,WAAW,GAAG,CACV,EAAU,EACV,KAAK,GAAmB,EAAE,EACa,EAAE,CACzC,IAAI,CAAC,OAAO,CACR,KAAK,EACL,6BAA6B,SAAS,CAAC,EAAE,CAAC,gBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,CACpF,CAAC;IACN,OAAO,GAAG,CAAC,EAAU,EAAiC,EAAE,CACpD,aAAa,CACT,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,EACtC,IAAI,CAAC,cAAc,EAAE,CACxB,CAAC;IACN,eAAe,GAAG,CACd,EAAU,EACV,KAAK,GAAmB,EAAE,EACiB,EAAE,CAC7C,IAAI,CAAC,OAAO,CACR,KAAK,EACL,6BAA6B,SAAS,CAAC,EAAE,CAAC,gBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,CACpF,CAAC;IACN,WAAW,GAAG,CAAC,EAAU,EAAqC,EAAE,CAC5D,aAAa,CACT,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,KAAK,CAAC,EAC1C,IAAI,CAAC,cAAc,EAAE,CACxB,CAAC;IACN,KAAK,GAAG,CAAC,EAAU,EAA+B,EAAE,CAChD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,6BAA6B,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC5E,MAAM,GAAG,CACL,EAAU,EACV,KAAa,EACb,MAAc,EAC4B,EAAE,CAC5C,IAAI,CAAC,OAAO,CACR,MAAM,EACN,6BAA6B,SAAS,CAAC,EAAE,CAAC,cAAc,EACxD,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAC/C,CAAC;IACN,gBAAgB,GAAG,CAAC,KAAa,EAAiB,EAAE,CAChD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,6CAA6C,EAAE;QAChE,KAAK;KACR,CAAC,CAAC;IACP,gBAAgB,GAAG,CAAC,EAAU,EAAE,YAAoB,EAAiB,EAAE,CACnE,IAAI,CAAC,OAAO,CACR,QAAQ,EACR,6BAA6B,SAAS,CAAC,EAAE,CAAC,gBAAgB,SAAS,CAAC,YAAY,CAAC,EAAE,CACtF,CAAC;IACN,aAAa,GAAG,CACZ,EAAU,EACV,MAAc,EACd,MAAc,EACD,EAAE,CACf,IAAI,CAAC,OAAO,CACR,KAAK,EACL,6BAA6B,SAAS,CAAC,EAAE,CAAC,gBAAgB,QAAQ,CAAC,MAAM,CAAC,EAAE,EAC5E,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CACxC,CAAC;IACN,YAAY,GAAG,CAAC,EAAU,EAAE,MAAc,EAAiB,EAAE,CACzD,IAAI,CAAC,OAAO,CACR,QAAQ,EACR,6BAA6B,SAAS,CAAC,EAAE,CAAC,gBAAgB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAC/E,CAAC;IACN,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CAClC,IAAI,CAAC,OAAO,CACR,MAAM,EACN,6BAA6B,SAAS,CAAC,EAAE,CAAC,QAAQ,CACrD,CAAC;IACN,yGAAyG;IACzG,MAAM,GAAG,CAAC,EAAU,EAAiB,EAAE,CACnC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,6BAA6B,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CAC5E"}
@@ -0,0 +1,5 @@
1
+ import type { PistiClient } from "./client.js";
2
+ export declare function ReverificationDialog({ client }: {
3
+ client: PistiClient;
4
+ }): import("react").JSX.Element;
5
+ //# sourceMappingURL=reverification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reverification.d.ts","sourceRoot":"","sources":["../src/reverification.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,wBAAgB,oBAAoB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,+BAqJvE"}
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useId, useRef, useState, useSyncExternalStore, } from "react";
3
+ import { useAction } from "./async-state.js";
4
+ export function ReverificationDialog({ client }) {
5
+ const required = useSyncExternalStore(client.subscribeReverification, client.getReverificationSnapshot, client.getServerReverificationSnapshot);
6
+ const dialog = useRef(null);
7
+ const form = useRef(null);
8
+ const id = useId();
9
+ const action = useAction();
10
+ const [requestId, setRequestId] = useState(null);
11
+ useEffect(() => {
12
+ const element = dialog.current;
13
+ if (!element)
14
+ return;
15
+ if (required && !element.open) {
16
+ action.reset();
17
+ element.showModal();
18
+ }
19
+ if (!required && element.open) {
20
+ element.close();
21
+ form.current?.reset();
22
+ setRequestId(null);
23
+ }
24
+ }, [required, action.reset]);
25
+ const submit = (event) => {
26
+ event.preventDefault();
27
+ const element = event.currentTarget;
28
+ const fields = new FormData(element);
29
+ const code = String(fields.get("factor") ?? "");
30
+ void action.run(async () => {
31
+ await client.completeReverification({
32
+ ...(requestId
33
+ ? {
34
+ requestId,
35
+ emailCode: String(fields.get("emailCode") ?? ""),
36
+ }
37
+ : { password: String(fields.get("password") ?? "") }),
38
+ ...(code ? { code } : {}),
39
+ });
40
+ element.reset();
41
+ });
42
+ };
43
+ return (_jsxs("dialog", { ref: dialog, className: "pisti-ui pisti-reverification", "aria-labelledby": id + "-title", onCancel: () => client.cancelReverification(), onClose: () => {
44
+ if (client.getReverificationSnapshot())
45
+ client.cancelReverification();
46
+ }, children: [_jsx("h2", { id: id + "-title", children: "Verify your identity" }), _jsx("p", { className: "pisti-muted", children: "Confirm it's you before continuing with this action." }), _jsx("form", { ref: form, className: "pisti-form", onSubmit: submit, children: _jsxs("fieldset", { disabled: action.isPending, children: [requestId ? (_jsxs("label", { htmlFor: id + "-email", children: ["Email verification code", _jsx("input", { id: id + "-email", name: "emailCode", inputMode: "numeric", pattern: "[0-9]{6}", maxLength: 6, autoComplete: "one-time-code", required: true })] })) : (_jsxs("label", { htmlFor: id + "-password", children: ["Current password", _jsx("input", { id: id + "-password", name: "password", type: "password", maxLength: 128, autoComplete: "current-password", required: true })] })), _jsx("button", { type: "button", className: "pisti-secondary", onClick: () => void action.run(async () => {
47
+ setRequestId((await client.account.requestReauthentication()).requestId);
48
+ }), children: requestId
49
+ ? "Send another email code"
50
+ : "Use an email code instead" }), _jsxs("label", { htmlFor: id + "-factor", children: ["Authenticator or recovery code", _jsx("input", { id: id + "-factor", name: "factor", maxLength: 64, autoComplete: "one-time-code" })] }), _jsx("p", { className: "pisti-muted", children: "Required if you have enrolled an authenticator." }), action.error && (_jsx("p", { className: "pisti-notice pisti-error", role: "alert", children: action.error.message })), _jsxs("div", { className: "pisti-actions", children: [_jsx("button", { type: "submit", children: action.isPending
51
+ ? "Verifying…"
52
+ : "Verify and continue" }), _jsx("button", { type: "button", className: "pisti-secondary", onClick: () => client.cancelReverification(), children: "Cancel" })] })] }) }), _jsx("button", { type: "button", className: "pisti-secondary", disabled: action.isPending, onClick: () => void action.run(() => client.reauthenticate()), children: "Use a passkey or another method" }), _jsx("p", { className: "pisti-muted", children: "Using another sign-in method returns you to the application, where you can retry your action." })] }));
53
+ }
54
+ //# sourceMappingURL=reverification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reverification.js","sourceRoot":"","sources":["../src/reverification.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ export interface EmailAddress {
2
+ emailAddress: string;
3
+ }
4
+ export interface PistiUser {
5
+ id: string;
6
+ firstName: string;
7
+ lastName: string;
8
+ fullName: string | null;
9
+ primaryEmailAddress: EmailAddress | null;
10
+ imageUrl: string | null;
11
+ hasImage: boolean;
12
+ issuer: string;
13
+ authenticatedAt: number | null;
14
+ mfaAuthenticatedAt: number | null;
15
+ instanceId: string;
16
+ organizationId: string | null;
17
+ organizationSlug: string | null;
18
+ organizationRole: string | null;
19
+ organizationPermissions: readonly string[];
20
+ }
21
+ export interface RedirectOptions {
22
+ /** Always go here afterwards, ignoring `redirect_url`. */
23
+ forceRedirectUrl?: string | undefined;
24
+ /** Go here afterwards when there is no `redirect_url`. */
25
+ fallbackRedirectUrl?: string | undefined;
26
+ }
27
+ /**
28
+ * Navigation settings, named like Clerk's. Each also reads a `VITE_PISTI_*` environment variable,
29
+ * for example `VITE_PISTI_SIGN_IN_URL`, and falls back to Domains & paths in the console.
30
+ */
31
+ export interface PistiNavigationOptions {
32
+ /** Your sign-in page, for example "/sign-in". Without one, sign-in opens in a modal. */
33
+ signInUrl?: string | undefined;
34
+ /** Your sign-up page. */
35
+ signUpUrl?: string | undefined;
36
+ /** After sign-in when there is no `redirect_url`. Defaults to "/". */
37
+ signInFallbackRedirectUrl?: string | undefined;
38
+ /** After sign-up when there is no `redirect_url`. Defaults to "/". */
39
+ signUpFallbackRedirectUrl?: string | undefined;
40
+ /** Always go here after sign-in. */
41
+ signInForceRedirectUrl?: string | undefined;
42
+ /** Always go here after sign-up. */
43
+ signUpForceRedirectUrl?: string | undefined;
44
+ /** After sign-out. Defaults to "/". */
45
+ afterSignOutUrl?: string | undefined;
46
+ /** Other origins a `redirect_url` may point to. Same-origin URLs are always allowed. */
47
+ allowedRedirectOrigins?: Array<string | RegExp> | undefined;
48
+ /** Your router's push navigation, so redirects don't reload the page. */
49
+ routerPush?: ((to: string) => unknown) | undefined;
50
+ /** Your router's replace navigation. Defaults to routerPush. */
51
+ routerReplace?: ((to: string) => unknown) | undefined;
52
+ }
53
+ export interface PistiClientOptions extends PistiNavigationOptions {
54
+ /** Defaults to the `VITE_PISTI_PUBLISHABLE_KEY` (or `PISTI_PUBLISHABLE_KEY`) environment variable. */
55
+ publishableKey?: string | undefined;
56
+ }
57
+ export type PistiModal = "sign-in" | "sign-up" | "user-profile" | null;
58
+ export interface AuthSnapshot {
59
+ status: "loading" | "signedIn" | "signedOut" | "error";
60
+ isLoaded: boolean;
61
+ isSignedIn: boolean;
62
+ user: PistiUser | null;
63
+ sessionId: string | null;
64
+ /** Claims of the latest session token. */
65
+ sessionClaims: Readonly<Record<string, unknown>> | null;
66
+ error: Error | null;
67
+ }
68
+ export interface EnvironmentConfig {
69
+ applicationName: string;
70
+ environment: "development" | "staging" | "production";
71
+ signIn: {
72
+ password: boolean;
73
+ emailCode: boolean;
74
+ };
75
+ signUp: {
76
+ enabled: boolean;
77
+ password: boolean;
78
+ };
79
+ requireMfa: boolean;
80
+ paths: {
81
+ signInUrl: string | null;
82
+ signUpUrl: string | null;
83
+ afterSignInUrl: string | null;
84
+ afterSignUpUrl: string | null;
85
+ afterSignOutUrl: string | null;
86
+ };
87
+ }
88
+ export type SignInResult = {
89
+ status: "complete";
90
+ recoveryCodes?: string[] | null;
91
+ } | {
92
+ status: "needs_second_factor";
93
+ attemptId: string;
94
+ enrollmentRequired: boolean;
95
+ };
96
+ export interface SecondFactorDetails {
97
+ enrollmentRequired: boolean;
98
+ setupKey: string | null;
99
+ authenticatorUri: string | null;
100
+ expiresAt: string;
101
+ /** After a password sign-in, adding an authenticator also needs the code Pisti emailed to the user. */
102
+ emailCodeRequired: boolean;
103
+ }
104
+ export interface SignUpInput {
105
+ requestId: string;
106
+ code: string;
107
+ firstName?: string;
108
+ lastName?: string;
109
+ password?: string;
110
+ }
111
+ export interface GetTokenOptions {
112
+ skipCache?: boolean;
113
+ }
114
+ export interface PermissionCheck {
115
+ permission?: string;
116
+ role?: string;
117
+ }
118
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IACzB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,mBAAmB,EAAE,YAAY,GAAG,IAAI,CAAC;IACzC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,uBAAuB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AAED,MAAM,WAAW,eAAe;IAC5B,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,0DAA0D;IAC1D,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5C;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACnC,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,sEAAsE;IACtE,yBAAyB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,sEAAsE;IACtE,yBAAyB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,oCAAoC;IACpC,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,oCAAoC;IACpC,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,uCAAuC;IACvC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,wFAAwF;IACxF,sBAAsB,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,SAAS,CAAC;IAC5D,yEAAyE;IACzE,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IACnD,gEAAgE;IAChE,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;CACzD;AAED,MAAM,WAAW,kBAAmB,SAAQ,sBAAsB;IAC9D,sGAAsG;IACtG,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,cAAc,GAAG,IAAI,CAAC;AAEvE,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;IACvD,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,0CAA0C;IAC1C,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IACxD,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,aAAa,GAAG,SAAS,GAAG,YAAY,CAAC;IACtD,MAAM,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAClD,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IAChD,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE;QACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;KAClC,CAAC;CACL;AAED,MAAM,MAAM,YAAY,GAClB;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;CAAE,GACvD;IACI,MAAM,EAAE,qBAAqB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;CAC/B,CAAC;AAER,MAAM,WAAW,mBAAmB;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,uGAAuG;IACvG,iBAAiB,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/dist/ui.d.ts ADDED
@@ -0,0 +1,72 @@
1
+ import { type ButtonHTMLAttributes, type ReactNode } from "react";
2
+ import { useAction } from "./async-state.js";
3
+ export { useAction, useResource } from "./async-state.js";
4
+ export declare function ErrorNotice({ error, retry, }: {
5
+ error: Error | null;
6
+ retry?: () => void;
7
+ }): import("react").JSX.Element | null;
8
+ export declare function ActionNotice({ action, }: {
9
+ action: ReturnType<typeof useAction>;
10
+ }): import("react").JSX.Element;
11
+ export declare function Loading(): import("react").JSX.Element;
12
+ export type ShowWhen = "signed-in" | "signed-out" | {
13
+ permission: string;
14
+ } | {
15
+ role: string;
16
+ } | ((has: (check: {
17
+ permission?: string;
18
+ role?: string;
19
+ }) => boolean) => boolean);
20
+ /**
21
+ * Renders its children when the condition holds, like Clerk's `<Show>`. It only hides UI; check
22
+ * access on your server too.
23
+ *
24
+ * ```tsx
25
+ * <Show when="signed-in"><UserButton /></Show>
26
+ * <Show when={{ permission: "invoices:write" }} fallback={<p>No access</p>}>…</Show>
27
+ * ```
28
+ */
29
+ export declare function Show({ when, fallback, children }: {
30
+ when: ShowWhen;
31
+ fallback?: ReactNode;
32
+ children: ReactNode;
33
+ }): ReactNode;
34
+ type TriggerProps = {
35
+ children?: ReactNode;
36
+ };
37
+ type AuthButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, "onClick" | "children"> & TriggerProps & {
38
+ /** "redirect" (the default when you have a sign-in page) or "modal". */
39
+ mode?: "modal" | "redirect";
40
+ forceRedirectUrl?: string;
41
+ fallbackRedirectUrl?: string;
42
+ };
43
+ /** Opens sign-in, like Clerk's `<SignInButton>`. Pass your own button as the child to style it. */
44
+ export declare function SignInButton({ mode, forceRedirectUrl, fallbackRedirectUrl, children, ...props }: AuthButtonProps): import("react").JSX.Element;
45
+ /** Opens sign-up, like Clerk's `<SignUpButton>`. */
46
+ export declare function SignUpButton({ mode, forceRedirectUrl, fallbackRedirectUrl, children, ...props }: AuthButtonProps): import("react").JSX.Element;
47
+ /** Sends visitors to sign-in as soon as it renders. Use it inside `<Show when="signed-out">`. */
48
+ export declare function RedirectToSignIn(): null;
49
+ /** Sends visitors to sign-up as soon as it renders. */
50
+ export declare function RedirectToSignUp(): null;
51
+ /** Renders its children once Pisti knows whether someone is signed in, like `<ClerkLoaded>`. */
52
+ export declare function PistiLoaded({ children }: {
53
+ children: ReactNode;
54
+ }): ReactNode;
55
+ /** Renders its children until Pisti knows whether someone is signed in, like `<ClerkLoading>`. */
56
+ export declare function PistiLoading({ children }: {
57
+ children: ReactNode;
58
+ }): ReactNode;
59
+ /** Signs out, then goes to `redirectUrl` or the provider's `afterSignOutUrl`, like Clerk's `<SignOutButton>`. */
60
+ export declare function SignOutButton({ children, redirectUrl, ...props }: Omit<ButtonHTMLAttributes<HTMLButtonElement>, "onClick" | "children"> & TriggerProps & {
61
+ redirectUrl?: string;
62
+ }): import("react").JSX.Element;
63
+ /** An avatar with the account menu, like Clerk's `<UserButton>`. */
64
+ export declare function UserButton({ userProfileMode, userProfileUrl, showName, className, }: {
65
+ /** "modal" opens <UserProfile /> in a dialog; "navigation" goes to `userProfileUrl`. */
66
+ userProfileMode?: "modal" | "navigation";
67
+ userProfileUrl?: string;
68
+ /** Shows the user's name next to the avatar. */
69
+ showName?: boolean;
70
+ className?: string;
71
+ }): import("react").JSX.Element | null;
72
+ //# sourceMappingURL=ui.d.ts.map