@package-broker/ui 0.19.7 → 2.0.0-rc.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/LICENSE +661 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/api-types.d.ts +9987 -0
- package/dist/api-types.d.ts.map +1 -0
- package/dist/api-types.js +6 -0
- package/dist/api-types.js.map +1 -0
- package/dist/api.d.ts +88 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +179 -0
- package/dist/api.js.map +1 -0
- package/dist/app.d.ts +76 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +239 -0
- package/dist/app.js.map +1 -0
- package/dist/assets/app.0348e5888f99.js +15 -0
- package/dist/assets/app.e8cea8b32d3a.css +2 -0
- package/dist/assets/index.html +13 -0
- package/dist/assets/manifest.json +26 -0
- package/dist/assets/setup.98343039898f.js +1 -0
- package/dist/assets/setup.html +14 -0
- package/dist/auth.d.ts +170 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +551 -0
- package/dist/auth.js.map +1 -0
- package/dist/components/ui/alert.d.ts +10 -0
- package/dist/components/ui/alert.d.ts.map +1 -0
- package/dist/components/ui/alert.js +22 -0
- package/dist/components/ui/alert.js.map +1 -0
- package/dist/components/ui/badge.d.ts +8 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/badge.js +18 -0
- package/dist/components/ui/badge.js.map +1 -0
- package/dist/components/ui/button.d.ts +13 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +27 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/card.d.ts +10 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/card.js +21 -0
- package/dist/components/ui/card.js.map +1 -0
- package/dist/components/ui/confirm-action.d.ts +12 -0
- package/dist/components/ui/confirm-action.d.ts.map +1 -0
- package/dist/components/ui/confirm-action.js +19 -0
- package/dist/components/ui/confirm-action.js.map +1 -0
- package/dist/components/ui/dialog.d.ts +17 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/dialog.js +180 -0
- package/dist/components/ui/dialog.js.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +8 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.js +71 -0
- package/dist/components/ui/dropdown-menu.js.map +1 -0
- package/dist/components/ui/id-text.d.ts +11 -0
- package/dist/components/ui/id-text.d.ts.map +1 -0
- package/dist/components/ui/id-text.js +23 -0
- package/dist/components/ui/id-text.js.map +1 -0
- package/dist/components/ui/input.d.ts +5 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/input.js +6 -0
- package/dist/components/ui/input.js.map +1 -0
- package/dist/components/ui/label.d.ts +4 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/label.js +7 -0
- package/dist/components/ui/label.js.map +1 -0
- package/dist/components/ui/list-state.d.ts +7 -0
- package/dist/components/ui/list-state.d.ts.map +1 -0
- package/dist/components/ui/list-state.js +5 -0
- package/dist/components/ui/list-state.js.map +1 -0
- package/dist/components/ui/overlay-host.d.ts +6 -0
- package/dist/components/ui/overlay-host.d.ts.map +1 -0
- package/dist/components/ui/overlay-host.js +36 -0
- package/dist/components/ui/overlay-host.js.map +1 -0
- package/dist/components/ui/row-actions.d.ts +17 -0
- package/dist/components/ui/row-actions.d.ts.map +1 -0
- package/dist/components/ui/row-actions.js +21 -0
- package/dist/components/ui/row-actions.js.map +1 -0
- package/dist/components/ui/select.d.ts +3 -0
- package/dist/components/ui/select.d.ts.map +1 -0
- package/dist/components/ui/select.js +6 -0
- package/dist/components/ui/select.js.map +1 -0
- package/dist/components/ui/status-badge.d.ts +28 -0
- package/dist/components/ui/status-badge.d.ts.map +1 -0
- package/dist/components/ui/status-badge.js +50 -0
- package/dist/components/ui/status-badge.js.map +1 -0
- package/dist/components/ui/table.d.ts +27 -0
- package/dist/components/ui/table.d.ts.map +1 -0
- package/dist/components/ui/table.js +81 -0
- package/dist/components/ui/table.js.map +1 -0
- package/dist/components/ui/tabs.d.ts +7 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/tabs.js +14 -0
- package/dist/components/ui/tabs.js.map +1 -0
- package/dist/components/ui/textarea.d.ts +3 -0
- package/dist/components/ui/textarea.d.ts.map +1 -0
- package/dist/components/ui/textarea.js +14 -0
- package/dist/components/ui/textarea.js.map +1 -0
- package/dist/components/ui/time.d.ts +5 -0
- package/dist/components/ui/time.d.ts.map +1 -0
- package/dist/components/ui/time.js +14 -0
- package/dist/components/ui/time.js.map +1 -0
- package/dist/components/ui/toolbar.d.ts +20 -0
- package/dist/components/ui/toolbar.d.ts.map +1 -0
- package/dist/components/ui/toolbar.js +42 -0
- package/dist/components/ui/toolbar.js.map +1 -0
- package/dist/components/vulnerability-status.d.ts +8 -0
- package/dist/components/vulnerability-status.d.ts.map +1 -0
- package/dist/components/vulnerability-status.js +49 -0
- package/dist/components/vulnerability-status.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/use-merged-refs.d.ts +3 -0
- package/dist/lib/use-merged-refs.d.ts.map +1 -0
- package/dist/lib/use-merged-refs.js +22 -0
- package/dist/lib/use-merged-refs.js.map +1 -0
- package/dist/lib/utils.d.ts +4 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +11 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +9 -0
- package/dist/main.js.map +1 -0
- package/dist/manifest.d.ts +8 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +21 -0
- package/dist/manifest.js.map +1 -0
- package/dist/page-hash.d.ts +23 -0
- package/dist/page-hash.d.ts.map +1 -0
- package/dist/page-hash.js +45 -0
- package/dist/page-hash.js.map +1 -0
- package/dist/pages/access.d.ts +69 -0
- package/dist/pages/access.d.ts.map +1 -0
- package/dist/pages/access.js +391 -0
- package/dist/pages/access.js.map +1 -0
- package/dist/pages/audit.d.ts +63 -0
- package/dist/pages/audit.d.ts.map +1 -0
- package/dist/pages/audit.js +182 -0
- package/dist/pages/audit.js.map +1 -0
- package/dist/pages/import.d.ts +41 -0
- package/dist/pages/import.d.ts.map +1 -0
- package/dist/pages/import.js +274 -0
- package/dist/pages/import.js.map +1 -0
- package/dist/pages/management.d.ts +47 -0
- package/dist/pages/management.d.ts.map +1 -0
- package/dist/pages/management.js +141 -0
- package/dist/pages/management.js.map +1 -0
- package/dist/pages/packages.d.ts +74 -0
- package/dist/pages/packages.d.ts.map +1 -0
- package/dist/pages/packages.js +505 -0
- package/dist/pages/packages.js.map +1 -0
- package/dist/pages/projects.d.ts +58 -0
- package/dist/pages/projects.d.ts.map +1 -0
- package/dist/pages/projects.js +357 -0
- package/dist/pages/projects.js.map +1 -0
- package/dist/pages/sources/add-package-dialog.d.ts +10 -0
- package/dist/pages/sources/add-package-dialog.d.ts.map +1 -0
- package/dist/pages/sources/add-package-dialog.js +19 -0
- package/dist/pages/sources/add-package-dialog.js.map +1 -0
- package/dist/pages/sources/proxy-message.d.ts +2 -0
- package/dist/pages/sources/proxy-message.d.ts.map +1 -0
- package/dist/pages/sources/proxy-message.js +2 -0
- package/dist/pages/sources/proxy-message.js.map +1 -0
- package/dist/pages/sources/source-form.d.ts +29 -0
- package/dist/pages/sources/source-form.d.ts.map +1 -0
- package/dist/pages/sources/source-form.js +463 -0
- package/dist/pages/sources/source-form.js.map +1 -0
- package/dist/pages/sources/sync-poll.d.ts +20 -0
- package/dist/pages/sources/sync-poll.d.ts.map +1 -0
- package/dist/pages/sources/sync-poll.js +71 -0
- package/dist/pages/sources/sync-poll.js.map +1 -0
- package/dist/pages/sources.d.ts +325 -0
- package/dist/pages/sources.d.ts.map +1 -0
- package/dist/pages/sources.js +1132 -0
- package/dist/pages/sources.js.map +1 -0
- package/dist/pages/tokens/client-config.d.ts +5 -0
- package/dist/pages/tokens/client-config.d.ts.map +1 -0
- package/dist/pages/tokens/client-config.js +9 -0
- package/dist/pages/tokens/client-config.js.map +1 -0
- package/dist/pages/tokens.d.ts +127 -0
- package/dist/pages/tokens.d.ts.map +1 -0
- package/dist/pages/tokens.js +744 -0
- package/dist/pages/tokens.js.map +1 -0
- package/dist/pending.d.ts +33 -0
- package/dist/pending.d.ts.map +1 -0
- package/dist/pending.js +156 -0
- package/dist/pending.js.map +1 -0
- package/dist/qr.d.ts +14 -0
- package/dist/qr.d.ts.map +1 -0
- package/dist/qr.js +322 -0
- package/dist/qr.js.map +1 -0
- package/dist/setup.d.ts +49 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +390 -0
- package/dist/setup.js.map +1 -0
- package/dist/test-fixtures/api-types.d.ts +228 -0
- package/dist/test-fixtures/api-types.d.ts.map +1 -0
- package/dist/test-fixtures/api-types.js +6 -0
- package/dist/test-fixtures/api-types.js.map +1 -0
- package/package.json +37 -40
- package/public/index.html +11 -0
- package/README.md +0 -11
- package/dist/assets/main-3NLwl1eV.js +0 -111
- package/dist/assets/main-CsTEYyDl.css +0 -1
- package/dist/config.js +0 -3
- package/dist/index.html +0 -22
package/dist/auth.js
ADDED
|
@@ -0,0 +1,551 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useContext, useEffect, useMemo, useState, useSyncExternalStore, } from 'react';
|
|
3
|
+
import { loadPending, savePending, } from './pending.js';
|
|
4
|
+
import { encodeQr } from './qr.js';
|
|
5
|
+
import { buildListFilterHash } from './page-hash.js';
|
|
6
|
+
import { Alert, AlertDescription } from './components/ui/alert.js';
|
|
7
|
+
import { Button } from './components/ui/button.js';
|
|
8
|
+
import { Card, CardContent, CardDescription, CardHeader } from './components/ui/card.js';
|
|
9
|
+
import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from './components/ui/dialog.js';
|
|
10
|
+
import { CopyButton, IdText } from './components/ui/id-text.js';
|
|
11
|
+
import { Input } from './components/ui/input.js';
|
|
12
|
+
import { Label } from './components/ui/label.js';
|
|
13
|
+
function createStore(initial) {
|
|
14
|
+
let state = initial;
|
|
15
|
+
const listeners = new Set();
|
|
16
|
+
return {
|
|
17
|
+
get: () => state,
|
|
18
|
+
set(next) {
|
|
19
|
+
state = { ...state, ...next };
|
|
20
|
+
for (const listener of [...listeners])
|
|
21
|
+
listener();
|
|
22
|
+
},
|
|
23
|
+
subscribe(listener) {
|
|
24
|
+
listeners.add(listener);
|
|
25
|
+
return () => {
|
|
26
|
+
listeners.delete(listener);
|
|
27
|
+
};
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function useStore(store) {
|
|
32
|
+
return useSyncExternalStore(store.subscribe, store.snapshot, store.snapshot);
|
|
33
|
+
}
|
|
34
|
+
export function isNavigableLocation(location) {
|
|
35
|
+
if (location.startsWith('/')) {
|
|
36
|
+
if (location.startsWith('//') ||
|
|
37
|
+
location.includes('\\') ||
|
|
38
|
+
[...location].some((character) => character.charCodeAt(0) <= 32 || character.charCodeAt(0) === 127))
|
|
39
|
+
return false;
|
|
40
|
+
const base = 'https://broker.invalid';
|
|
41
|
+
return new URL(location, base).origin === base;
|
|
42
|
+
}
|
|
43
|
+
try {
|
|
44
|
+
const { protocol } = new URL(location);
|
|
45
|
+
return protocol === 'https:' || protocol === 'http:';
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export function safePageHash(hash) {
|
|
52
|
+
const match = /^#\/(projects|access|sources|packages|tokens|audit|import|login)(?:\?([\s\S]*))?$/.exec(hash);
|
|
53
|
+
if (match === null || match[0] !== hash)
|
|
54
|
+
return '#/projects';
|
|
55
|
+
const query = new URLSearchParams(match[2]);
|
|
56
|
+
return buildListFilterHash((match[1] === 'login' ? 'projects' : match[1]), {
|
|
57
|
+
project: query.get('project'),
|
|
58
|
+
status: query.get('status'),
|
|
59
|
+
source: query.get('source'),
|
|
60
|
+
projectId: query.get('projectId'),
|
|
61
|
+
q: query.get('q'),
|
|
62
|
+
after: query.get('after'),
|
|
63
|
+
package: query.get('package'),
|
|
64
|
+
versionAfter: query.get('versionAfter'),
|
|
65
|
+
cursor: query.get('cursor'),
|
|
66
|
+
run: query.get('run'),
|
|
67
|
+
actor: query.get('actor'),
|
|
68
|
+
action: query.get('action'),
|
|
69
|
+
filterProject: query.get('filterProject'),
|
|
70
|
+
limit: query.get('limit'),
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
export function reauthReturnHash(hash) {
|
|
74
|
+
const query = new URLSearchParams(hash.split('?')[1] ?? '');
|
|
75
|
+
return safePageHash(`#${query.get('return') ?? '/projects'}`);
|
|
76
|
+
}
|
|
77
|
+
export async function startSso(client, provider, purpose, navigate, hash) {
|
|
78
|
+
const returnHash = purpose === 'login'
|
|
79
|
+
? safePageHash(hash ?? '')
|
|
80
|
+
: `#/reauth?return=${encodeURIComponent(reauthReturnHash(hash ?? '').slice(1))}&sso=complete`;
|
|
81
|
+
const init = {
|
|
82
|
+
params: { provider },
|
|
83
|
+
body: { purpose, ...(hash === undefined ? {} : { returnTo: `/_pb/ui${returnHash}` }) },
|
|
84
|
+
headers: { Accept: 'application/json' },
|
|
85
|
+
};
|
|
86
|
+
const result = await client.request('post', '/_pb/auth/sso/{provider}/start', init);
|
|
87
|
+
if (!result.ok)
|
|
88
|
+
return 'failed';
|
|
89
|
+
const data = result.data;
|
|
90
|
+
const location = data?.location;
|
|
91
|
+
if (typeof location !== 'string' || !isNavigableLocation(location))
|
|
92
|
+
return 'refused';
|
|
93
|
+
navigate(location);
|
|
94
|
+
return 'navigated';
|
|
95
|
+
}
|
|
96
|
+
export function createLoginController(deps) {
|
|
97
|
+
const store = createStore({ status: 'idle', error: null });
|
|
98
|
+
return {
|
|
99
|
+
snapshot: store.get,
|
|
100
|
+
subscribe: store.subscribe,
|
|
101
|
+
async submit(input) {
|
|
102
|
+
if (store.get().status === 'busy')
|
|
103
|
+
return;
|
|
104
|
+
store.set({ status: 'busy', error: null });
|
|
105
|
+
const result = await deps.client.request('post', '/_pb/auth/local/login', {
|
|
106
|
+
body: { email: input.email, password: input.password, code: input.code },
|
|
107
|
+
});
|
|
108
|
+
if (result.ok) {
|
|
109
|
+
store.set({ status: 'signed-in', error: null });
|
|
110
|
+
deps.onSignedIn();
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
store.set({ status: 'error', error: result.status === 0 ? 'unavailable' : 'invalid' });
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
export function createReauthFlow(deps) {
|
|
118
|
+
const replayListeners = new Set();
|
|
119
|
+
const store = createStore({
|
|
120
|
+
dialog: 'closed',
|
|
121
|
+
action: null,
|
|
122
|
+
busy: false,
|
|
123
|
+
outcome: null,
|
|
124
|
+
});
|
|
125
|
+
return {
|
|
126
|
+
snapshot: store.get,
|
|
127
|
+
subscribe: store.subscribe,
|
|
128
|
+
subscribeReplay(listener) {
|
|
129
|
+
replayListeners.add(listener);
|
|
130
|
+
return () => {
|
|
131
|
+
replayListeners.delete(listener);
|
|
132
|
+
};
|
|
133
|
+
},
|
|
134
|
+
requireReauth(request, options, returnHash) {
|
|
135
|
+
const saved = savePending(deps.storage, {
|
|
136
|
+
method: request.method,
|
|
137
|
+
path: request.path,
|
|
138
|
+
...(request.idempotencyKey === undefined ? {} : { idempotencyKey: request.idempotencyKey }),
|
|
139
|
+
...(request.body === undefined ? {} : { body: request.body }),
|
|
140
|
+
...(request.headers === undefined ? {} : { headers: request.headers }),
|
|
141
|
+
...(options.display === undefined ? {} : { display: options.display }),
|
|
142
|
+
credential: options.credential,
|
|
143
|
+
secretFields: options.secretFields,
|
|
144
|
+
});
|
|
145
|
+
if (!saved.ok) {
|
|
146
|
+
store.set({ dialog: 'closed', action: null, outcome: 'save-failed' });
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
store.set({ dialog: 'closed', action: null, outcome: null });
|
|
150
|
+
deps.navigate(`#/reauth?return=${encodeURIComponent(safePageHash(returnHash).slice(1))}`);
|
|
151
|
+
},
|
|
152
|
+
restore() {
|
|
153
|
+
const loaded = loadPending(deps.storage, deps.now());
|
|
154
|
+
if (loaded.ok && loaded.action !== null) {
|
|
155
|
+
store.set(loaded.action.requiresCredential
|
|
156
|
+
? { dialog: 'closed', action: null, outcome: 'credential-required' }
|
|
157
|
+
: { dialog: 'confirm', action: loaded.action, outcome: null });
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
clear() {
|
|
161
|
+
loadPending(deps.storage, deps.now());
|
|
162
|
+
store.set({ dialog: 'closed', action: null, busy: false, outcome: null });
|
|
163
|
+
},
|
|
164
|
+
decline() {
|
|
165
|
+
store.set({ dialog: 'closed', action: null, outcome: null });
|
|
166
|
+
},
|
|
167
|
+
async confirm() {
|
|
168
|
+
const { action, busy } = store.get();
|
|
169
|
+
if (action === null || action.requiresCredential || busy)
|
|
170
|
+
return;
|
|
171
|
+
store.set({ busy: true, action: null });
|
|
172
|
+
const init = {
|
|
173
|
+
...(action.idempotencyKey === undefined ? {} : { idempotencyKey: action.idempotencyKey }),
|
|
174
|
+
...(action.body === undefined ? {} : { body: action.body }),
|
|
175
|
+
...(action.headers === undefined ? {} : { headers: action.headers }),
|
|
176
|
+
};
|
|
177
|
+
const replay = deps.client.request;
|
|
178
|
+
let outcome;
|
|
179
|
+
try {
|
|
180
|
+
const result = await replay(action.method.toLowerCase(), action.path, init);
|
|
181
|
+
outcome = {
|
|
182
|
+
path: action.path,
|
|
183
|
+
ok: result.ok,
|
|
184
|
+
status: result.status,
|
|
185
|
+
...(!result.ok ? { code: result.code } : {}),
|
|
186
|
+
...(result.ok &&
|
|
187
|
+
result.status === 201 &&
|
|
188
|
+
action.method === 'POST' &&
|
|
189
|
+
/^\/_pb\/(?:projects\/[^/]+\/)?sources$/.test(action.path) &&
|
|
190
|
+
result.data !== null &&
|
|
191
|
+
typeof result.data === 'object' &&
|
|
192
|
+
'id' in result.data &&
|
|
193
|
+
typeof result.data.id === 'string' &&
|
|
194
|
+
/^[0-7][0-9A-HJKMNP-TV-Z]{25}$/.test(result.data.id)
|
|
195
|
+
? { createdSourceId: result.data.id }
|
|
196
|
+
: {}),
|
|
197
|
+
};
|
|
198
|
+
store.set({ dialog: 'closed', busy: false, outcome: result.ok ? 'replayed' : 'failed' });
|
|
199
|
+
}
|
|
200
|
+
catch {
|
|
201
|
+
outcome = { path: action.path, ok: false, status: 0 };
|
|
202
|
+
store.set({ dialog: 'closed', busy: false, outcome: 'failed' });
|
|
203
|
+
}
|
|
204
|
+
for (const listener of replayListeners)
|
|
205
|
+
listener(outcome);
|
|
206
|
+
},
|
|
207
|
+
async submitLocal(input) {
|
|
208
|
+
const result = await deps.client.request('post', '/_pb/auth/local/reauth', {
|
|
209
|
+
body: { password: input.password, code: input.code },
|
|
210
|
+
});
|
|
211
|
+
return result.ok ? 'done' : 'refused';
|
|
212
|
+
},
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
export const SETUP_NOTICE_TEXT = {
|
|
216
|
+
bad_token_shape: 'That does not look like a setup token. Paste the whole token as it was issued.',
|
|
217
|
+
token_refused: 'This setup token was not accepted. It may be wrong, expired or already used.',
|
|
218
|
+
origin_refused: 'The broker refused this request because it came from a different address.',
|
|
219
|
+
rate_limited: 'Too many attempts. Wait a few minutes and try again.',
|
|
220
|
+
unavailable: 'The broker could not be reached or answered unexpectedly. Try again in a moment.',
|
|
221
|
+
password_mismatch: 'The password and its confirmation do not match.',
|
|
222
|
+
missing_fields: 'Enter a password and the six digit code from your authenticator.',
|
|
223
|
+
finish_refused: 'Setup was not completed. Check the password requirements and the six digit code, then try again.',
|
|
224
|
+
};
|
|
225
|
+
const SETUP_TOKEN_LENGTH = 43;
|
|
226
|
+
const MAX_FIELD_LENGTH = 1024;
|
|
227
|
+
function drawable(uri) {
|
|
228
|
+
try {
|
|
229
|
+
return encodeQr(uri);
|
|
230
|
+
}
|
|
231
|
+
catch {
|
|
232
|
+
return null;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
function startNotice(status) {
|
|
236
|
+
if (status === 400 || status === 401)
|
|
237
|
+
return 'token_refused';
|
|
238
|
+
if (status === 403)
|
|
239
|
+
return 'origin_refused';
|
|
240
|
+
if (status === 429)
|
|
241
|
+
return 'rate_limited';
|
|
242
|
+
return 'unavailable';
|
|
243
|
+
}
|
|
244
|
+
export function createSetupController(deps) {
|
|
245
|
+
const store = createStore({
|
|
246
|
+
stage: 'token',
|
|
247
|
+
busy: false,
|
|
248
|
+
notice: null,
|
|
249
|
+
enrollment: null,
|
|
250
|
+
});
|
|
251
|
+
let token = null;
|
|
252
|
+
return {
|
|
253
|
+
snapshot: store.get,
|
|
254
|
+
subscribe: store.subscribe,
|
|
255
|
+
async submitToken(input) {
|
|
256
|
+
const state = store.get();
|
|
257
|
+
if (state.busy || state.stage !== 'token')
|
|
258
|
+
return;
|
|
259
|
+
const candidate = input.trim();
|
|
260
|
+
if (candidate.length !== SETUP_TOKEN_LENGTH || !/^[A-Za-z0-9_-]+$/.test(candidate)) {
|
|
261
|
+
store.set({ notice: 'bad_token_shape' });
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
store.set({ busy: true, notice: null });
|
|
265
|
+
const result = await deps.client.request('post', '/_pb/auth/local/setup/start', {
|
|
266
|
+
body: { token: candidate },
|
|
267
|
+
});
|
|
268
|
+
if (!result.ok) {
|
|
269
|
+
store.set({ busy: false, notice: startNotice(result.status) });
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
const data = result.data;
|
|
273
|
+
if (typeof data?.provisioningUri !== 'string' ||
|
|
274
|
+
typeof data.secret !== 'string' ||
|
|
275
|
+
data.secret === '') {
|
|
276
|
+
store.set({ busy: false, notice: 'unavailable' });
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
token = candidate;
|
|
280
|
+
store.set({
|
|
281
|
+
busy: false,
|
|
282
|
+
stage: 'enroll',
|
|
283
|
+
notice: null,
|
|
284
|
+
enrollment: { secret: data.secret, qr: drawable(data.provisioningUri) },
|
|
285
|
+
});
|
|
286
|
+
},
|
|
287
|
+
async finish(input) {
|
|
288
|
+
const state = store.get();
|
|
289
|
+
if (state.busy || state.stage !== 'enroll' || token === null)
|
|
290
|
+
return;
|
|
291
|
+
const digits = input.code.replace(/\s+/g, '');
|
|
292
|
+
if (input.password === '' || digits === '') {
|
|
293
|
+
store.set({ notice: 'missing_fields' });
|
|
294
|
+
return;
|
|
295
|
+
}
|
|
296
|
+
if (input.password.length > MAX_FIELD_LENGTH ||
|
|
297
|
+
digits.length > MAX_FIELD_LENGTH ||
|
|
298
|
+
input.password !== input.confirmation) {
|
|
299
|
+
store.set({ notice: 'password_mismatch' });
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
store.set({ busy: true, notice: null });
|
|
303
|
+
const result = await deps.client.request('post', '/_pb/auth/local/setup/finish', {
|
|
304
|
+
body: { token, password: input.password, code: digits },
|
|
305
|
+
});
|
|
306
|
+
if (result.ok) {
|
|
307
|
+
token = null;
|
|
308
|
+
store.set({ busy: false, stage: 'done', enrollment: null });
|
|
309
|
+
deps.onSignedIn?.();
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
if (result.status === 0 || result.status >= 500) {
|
|
313
|
+
token = null;
|
|
314
|
+
store.set({ busy: false, stage: 'uncertain', enrollment: null });
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
store.set({
|
|
318
|
+
busy: false,
|
|
319
|
+
notice: result.status === 403
|
|
320
|
+
? 'origin_refused'
|
|
321
|
+
: result.status === 429
|
|
322
|
+
? 'rate_limited'
|
|
323
|
+
: 'finish_refused',
|
|
324
|
+
});
|
|
325
|
+
},
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
export const ServicesContext = createContext(null);
|
|
329
|
+
export function useServices() {
|
|
330
|
+
const services = useContext(ServicesContext);
|
|
331
|
+
if (services === null)
|
|
332
|
+
throw new Error('ServicesContext is missing');
|
|
333
|
+
return services;
|
|
334
|
+
}
|
|
335
|
+
function values(event) {
|
|
336
|
+
event.preventDefault();
|
|
337
|
+
const form = event.currentTarget;
|
|
338
|
+
const data = {};
|
|
339
|
+
for (const [name, value] of new FormData(form))
|
|
340
|
+
if (typeof value === 'string')
|
|
341
|
+
data[name] = value;
|
|
342
|
+
form.reset();
|
|
343
|
+
return data;
|
|
344
|
+
}
|
|
345
|
+
function TextField(props) {
|
|
346
|
+
return (_jsxs("div", { className: "grid gap-1.5", children: [_jsx(Label, { htmlFor: props.id, children: props.label }), _jsx(Input, { id: props.id, name: props.id, type: props.type ?? 'text', required: true, autoComplete: props.autoComplete ?? 'off', ...(props.inputMode ? { inputMode: props.inputMode } : {}), ...(props.hint ? { 'aria-describedby': `${props.id}-hint` } : {}) }), props.hint ? (_jsx("p", { id: `${props.id}-hint`, className: "text-xs text-neutral-600", children: props.hint })) : null] }));
|
|
347
|
+
}
|
|
348
|
+
const SSO_TEXT = {
|
|
349
|
+
refused: 'The sign-in provider returned an address the broker will not open.',
|
|
350
|
+
failed: 'Single sign-on could not be started. Try again in a moment.',
|
|
351
|
+
};
|
|
352
|
+
function SsoButtons(props) {
|
|
353
|
+
if (props.providers.length === 0)
|
|
354
|
+
return null;
|
|
355
|
+
return (_jsx("div", { className: "grid gap-2", children: props.providers.map((provider) => (_jsxs(Button, { type: "button", variant: "outline", disabled: props.busy, onClick: () => props.onSso(provider.id), children: [props.verb, " ", provider.displayName] }, provider.id))) }));
|
|
356
|
+
}
|
|
357
|
+
export function LoginView(props) {
|
|
358
|
+
const busy = props.state.status === 'busy';
|
|
359
|
+
return (_jsxs(Card, { className: "mx-auto mt-12 max-w-md", children: [_jsxs(CardHeader, { children: [_jsx("h1", { id: "page-heading", tabIndex: -1, className: "font-semibold leading-none tracking-tight", children: "Sign in" }), _jsx(CardDescription, { children: "Package Broker" })] }), _jsxs(CardContent, { className: "grid gap-4", children: [props.state.error === null ? null : (_jsx(Alert, { variant: "destructive", children: _jsx(AlertDescription, { children: props.state.error === 'unavailable'
|
|
360
|
+
? 'The broker could not be reached. Try again in a moment.'
|
|
361
|
+
: 'Sign-in failed. Check your details and try again.' }) })), props.ssoError ? (_jsx(Alert, { variant: "destructive", children: _jsx(AlertDescription, { children: SSO_TEXT[props.ssoError] }) })) : null, props.local ? (_jsxs("form", { className: "grid gap-4", onSubmit: (event) => {
|
|
362
|
+
event.preventDefault();
|
|
363
|
+
if (busy)
|
|
364
|
+
return;
|
|
365
|
+
const data = values(event);
|
|
366
|
+
props.onSubmit({
|
|
367
|
+
email: data['email'] ?? '',
|
|
368
|
+
password: data['password'] ?? '',
|
|
369
|
+
code: (data['code'] ?? '').replace(/\s+/g, ''),
|
|
370
|
+
});
|
|
371
|
+
}, children: [_jsx(TextField, { id: "email", label: "E-mail", type: "email", autoComplete: "username" }), _jsx(TextField, { id: "password", label: "Password", type: "password", autoComplete: "current-password" }), _jsx(TextField, { id: "code", label: "Authenticator code", autoComplete: "one-time-code", inputMode: "numeric" }), _jsx(Button, { type: "submit", disabled: busy, children: busy ? 'Signing in…' : 'Sign in' })] })) : null, _jsx(SsoButtons, { providers: props.providers, busy: busy, onSso: props.onSso, verb: "Sign in with" })] })] }));
|
|
372
|
+
}
|
|
373
|
+
export function ReauthView(props) {
|
|
374
|
+
return (_jsxs(Card, { className: "mx-auto mt-12 max-w-md", children: [_jsxs(CardHeader, { children: [_jsx("h1", { id: "page-heading", tabIndex: -1, className: "font-semibold leading-none tracking-tight", children: "Confirm it is you" }), _jsx(CardDescription, { children: "This action needs a fresh sign-in." })] }), _jsxs(CardContent, { className: "grid gap-4", children: [props.error ? (_jsx(Alert, { variant: "destructive", children: _jsx(AlertDescription, { children: "Confirmation failed. Check your details and try again." }) })) : null, props.local ? (_jsxs("form", { className: "grid gap-4", onSubmit: (event) => {
|
|
375
|
+
event.preventDefault();
|
|
376
|
+
if (props.busy)
|
|
377
|
+
return;
|
|
378
|
+
const data = values(event);
|
|
379
|
+
props.onSubmit({
|
|
380
|
+
password: data['password'] ?? '',
|
|
381
|
+
code: (data['code'] ?? '').replace(/\s+/g, ''),
|
|
382
|
+
});
|
|
383
|
+
}, children: [_jsx(TextField, { id: "password", label: "Password", type: "password", autoComplete: "current-password" }), _jsx(TextField, { id: "code", label: "Authenticator code", autoComplete: "one-time-code", inputMode: "numeric" }), _jsx(Button, { type: "submit", disabled: props.busy, children: "Confirm" })] })) : null, _jsx(SsoButtons, { providers: props.providers.filter((provider) => provider.supportsReauth), busy: props.busy, onSso: props.onSso, verb: "Confirm with" })] })] }));
|
|
384
|
+
}
|
|
385
|
+
export function ReauthConfirmDialog(props) {
|
|
386
|
+
return (_jsx(Dialog, { open: props.open, onOpenChange: (open) => {
|
|
387
|
+
if (!open)
|
|
388
|
+
props.onDecline();
|
|
389
|
+
}, children: _jsx(DialogContent, { children: _jsx(ReauthConfirmContent, { ...props }) }) }));
|
|
390
|
+
}
|
|
391
|
+
function restoredProjectSlug(action) {
|
|
392
|
+
return action?.path.match(/^\/_pb\/projects\/([^/]+)\/restore$/)?.[1];
|
|
393
|
+
}
|
|
394
|
+
export function pendingActionDescription(action) {
|
|
395
|
+
if (restoredProjectSlug(action)) {
|
|
396
|
+
return {
|
|
397
|
+
label: 'Restore project',
|
|
398
|
+
effect: 'Restore this archived project.',
|
|
399
|
+
destructive: false,
|
|
400
|
+
};
|
|
401
|
+
}
|
|
402
|
+
const match = action?.path.match(/\/(quarantine|tombstone|release|approve|apply|cancel|rollback)$/);
|
|
403
|
+
const verb = match?.[1];
|
|
404
|
+
const labels = {
|
|
405
|
+
quarantine: 'Quarantine version',
|
|
406
|
+
tombstone: 'Tombstone version',
|
|
407
|
+
release: 'Release version',
|
|
408
|
+
approve: 'Approve import run',
|
|
409
|
+
apply: 'Apply import run',
|
|
410
|
+
cancel: 'Cancel import run',
|
|
411
|
+
rollback: 'Roll back import run',
|
|
412
|
+
};
|
|
413
|
+
const effects = {
|
|
414
|
+
quarantine: 'Clients cannot resolve this version until it is released. Only this version is affected.',
|
|
415
|
+
tombstone: 'Clients can no longer install this version. Only this version is affected. This cannot be undone.',
|
|
416
|
+
release: 'Clients can resolve this version again. Only this version is affected.',
|
|
417
|
+
approve: 'Approve the reviewed plan hash for this run.',
|
|
418
|
+
apply: 'Apply the approved import plan.',
|
|
419
|
+
cancel: 'Cancel this planned import run.',
|
|
420
|
+
rollback: 'Restore retained before-images where rollback is possible.',
|
|
421
|
+
};
|
|
422
|
+
return {
|
|
423
|
+
label: verb ? (labels[verb] ?? 'Send held action') : 'Send held action',
|
|
424
|
+
effect: verb
|
|
425
|
+
? (effects[verb] ?? 'Send the request you started before confirming your identity.')
|
|
426
|
+
: 'Send the request you started before confirming your identity.',
|
|
427
|
+
destructive: ['tombstone', 'cancel', 'rollback'].includes(verb ?? ''),
|
|
428
|
+
};
|
|
429
|
+
}
|
|
430
|
+
export function ReauthConfirmContent(props) {
|
|
431
|
+
const description = pendingActionDescription(props.action);
|
|
432
|
+
const display = props.action?.display;
|
|
433
|
+
const projectSlug = restoredProjectSlug(props.action);
|
|
434
|
+
const packageIds = props.action?.path.match(/\/packages\/([^/]+)\/versions\/([^/]+)/);
|
|
435
|
+
const runId = props.action?.path.match(/\/import-runs\/([^/]+)/)?.[1];
|
|
436
|
+
const request = props.action ? `${props.action.method} ${props.action.path}` : '';
|
|
437
|
+
return (_jsxs(_Fragment, { children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: "Send the held action now?" }), _jsx(DialogDescription, { children: "You confirmed your identity. The action below was held while you signed in and has not been sent yet." })] }), _jsxs("dl", { className: "detail-list", children: [_jsx("dt", { children: "Action" }), _jsx("dd", { className: "font-medium", children: description.label }), projectSlug ? (_jsxs(_Fragment, { children: [_jsx("dt", { children: "Project" }), _jsx("dd", { children: projectSlug })] })) : null, display ? (_jsxs(_Fragment, { children: [_jsx("dt", { children: "Package" }), _jsx("dd", { children: display.packageName }), _jsx("dt", { children: "Version" }), _jsx("dd", { className: "font-mono", children: display.version })] })) : packageIds ? (_jsxs(_Fragment, { children: [_jsx("dt", { children: "Package ID" }), _jsx("dd", { children: _jsx(IdText, { value: packageIds[1], label: "package ID" }) }), _jsx("dt", { children: "Version ID" }), _jsx("dd", { children: _jsx(IdText, { value: packageIds[2], label: "version ID" }) })] })) : null, runId ? (_jsxs(_Fragment, { children: [_jsx("dt", { children: "Run" }), _jsx("dd", { children: _jsx(IdText, { value: runId, label: "run ID" }) })] })) : null, _jsx("dt", { children: "Scope" }), _jsx("dd", { children: display?.scope ??
|
|
438
|
+
(props.action?.path.startsWith('/_pb/projects/') ? 'Project' : 'Organization') }), _jsx("dt", { children: "Effect" }), _jsx("dd", { children: description.effect })] }), request ? (_jsxs("details", { children: [_jsx("summary", { className: "cursor-pointer text-sm text-blue-700", children: "Request details" }), _jsxs("div", { className: "mt-2 flex min-w-0 items-start gap-2 rounded-md border border-neutral-200 bg-neutral-50 p-3", children: [_jsx("code", { className: "min-w-0 break-all text-xs", children: request }), _jsx(CopyButton, { value: request, label: "Copy request" })] })] })) : null, _jsxs(DialogFooter, { children: [_jsx(Button, { type: "button", variant: "outline", onClick: props.onDecline, children: "Discard" }), _jsx(Button, { type: "button", variant: description.destructive ? 'destructive' : 'default', onClick: props.onConfirm, children: description.label })] })] }));
|
|
439
|
+
}
|
|
440
|
+
const QR_QUIET_ZONE = 4;
|
|
441
|
+
function QrImage({ matrix }) {
|
|
442
|
+
const size = matrix.size + QR_QUIET_ZONE * 2;
|
|
443
|
+
const cells = [];
|
|
444
|
+
matrix.modules.forEach((row, y) => {
|
|
445
|
+
row.forEach((dark, x) => {
|
|
446
|
+
if (dark)
|
|
447
|
+
cells.push(`M${x + QR_QUIET_ZONE} ${y + QR_QUIET_ZONE}h1v1h-1z`);
|
|
448
|
+
});
|
|
449
|
+
});
|
|
450
|
+
return (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: `0 0 ${size} ${size}`, width: "192", height: "192", role: "img", "aria-label": "Authenticator QR code", shapeRendering: "crispEdges", children: [_jsx("rect", { width: size, height: size, fill: "#ffffff" }), _jsx("path", { d: cells.join(''), fill: "#000000" })] }));
|
|
451
|
+
}
|
|
452
|
+
export function SetupView(props) {
|
|
453
|
+
const { state } = props;
|
|
454
|
+
return (_jsxs(Card, { className: "mx-auto mt-12 max-w-md", children: [_jsx(CardHeader, { children: _jsx("h1", { id: "page-heading", tabIndex: -1, className: "font-semibold leading-none tracking-tight", children: "First-run setup" }) }), _jsxs(CardContent, { className: "grid gap-4", children: [state.notice === null ? null : (_jsx(Alert, { variant: "destructive", children: _jsx(AlertDescription, { children: SETUP_NOTICE_TEXT[state.notice] }) })), state.stage === 'token' ? (_jsxs("form", { className: "grid gap-4", onSubmit: (event) => {
|
|
455
|
+
event.preventDefault();
|
|
456
|
+
if (state.busy)
|
|
457
|
+
return;
|
|
458
|
+
props.onToken(values(event)['token'] ?? '');
|
|
459
|
+
}, children: [_jsx(TextField, { id: "token", label: "Setup token", hint: "Paste the token the broker printed at start." }), _jsx(Button, { type: "submit", disabled: state.busy, children: "Continue" })] })) : null, state.stage === 'enroll' && state.enrollment ? (_jsxs("form", { className: "grid gap-4", onSubmit: (event) => {
|
|
460
|
+
event.preventDefault();
|
|
461
|
+
if (state.busy)
|
|
462
|
+
return;
|
|
463
|
+
const data = values(event);
|
|
464
|
+
props.onFinish({
|
|
465
|
+
password: data['password'] ?? '',
|
|
466
|
+
confirmation: data['confirmation'] ?? '',
|
|
467
|
+
code: data['code'] ?? '',
|
|
468
|
+
});
|
|
469
|
+
}, children: [state.enrollment.qr ? _jsx(QrImage, { matrix: state.enrollment.qr }) : null, _jsxs("p", { className: "text-sm", children: ["Setup key: ", _jsx("code", { className: "break-all", children: state.enrollment.secret })] }), _jsx(TextField, { id: "password", label: "Password", type: "password", autoComplete: "new-password" }), _jsx(TextField, { id: "confirmation", label: "Confirm password", type: "password", autoComplete: "new-password" }), _jsx(TextField, { id: "code", label: "Authenticator code", autoComplete: "one-time-code", inputMode: "numeric" }), _jsx(Button, { type: "submit", disabled: state.busy, children: "Finish setup" })] })) : null, state.stage === 'done' ? _jsx("p", { children: "Setup is complete. You can now sign in." }) : null, state.stage === 'uncertain' ? (_jsx("p", { children: "The broker did not confirm the result. Try signing in; if that fails, ask for a fresh setup token." })) : null] })] }));
|
|
470
|
+
}
|
|
471
|
+
export function useProviders(client) {
|
|
472
|
+
const [state, setState] = useState({
|
|
473
|
+
providers: [],
|
|
474
|
+
local: true,
|
|
475
|
+
});
|
|
476
|
+
useEffect(() => {
|
|
477
|
+
let live = true;
|
|
478
|
+
void client.request('get', '/_pb/auth/providers').then((result) => {
|
|
479
|
+
if (live && result.ok && result.data) {
|
|
480
|
+
setState({ providers: result.data.providers, local: result.data.local });
|
|
481
|
+
}
|
|
482
|
+
});
|
|
483
|
+
return () => {
|
|
484
|
+
live = false;
|
|
485
|
+
};
|
|
486
|
+
}, [client]);
|
|
487
|
+
return state;
|
|
488
|
+
}
|
|
489
|
+
const assignLocation = (location) => {
|
|
490
|
+
window.location.assign(location);
|
|
491
|
+
};
|
|
492
|
+
export function LoginScreen(props) {
|
|
493
|
+
const { client, onSignedIn } = props;
|
|
494
|
+
const controller = useMemo(() => createLoginController({ client, onSignedIn }), [client, onSignedIn]);
|
|
495
|
+
const state = useStore(controller);
|
|
496
|
+
const { providers, local } = useProviders(client);
|
|
497
|
+
const [ssoError, setSsoError] = useState(null);
|
|
498
|
+
return (_jsx(LoginView, { state: state, providers: providers, local: local, ssoError: ssoError, onSubmit: (input) => void controller.submit(input), onSso: (provider) => {
|
|
499
|
+
setSsoError(null);
|
|
500
|
+
void startSso(client, provider, 'login', assignLocation, window.location.hash).then((outcome) => {
|
|
501
|
+
if (outcome !== 'navigated')
|
|
502
|
+
setSsoError(outcome);
|
|
503
|
+
});
|
|
504
|
+
} }));
|
|
505
|
+
}
|
|
506
|
+
export function SetupScreen(props) {
|
|
507
|
+
const { client, onSignedIn } = props;
|
|
508
|
+
const controller = useMemo(() => createSetupController({ client, onSignedIn }), [client, onSignedIn]);
|
|
509
|
+
const state = useStore(controller);
|
|
510
|
+
return (_jsx(SetupView, { state: state, onToken: (token) => void controller.submitToken(token), onFinish: (input) => void controller.finish(input) }));
|
|
511
|
+
}
|
|
512
|
+
export function ReauthScreen(props) {
|
|
513
|
+
const { client, flow, onDone } = props;
|
|
514
|
+
const { providers, local } = useProviders(client);
|
|
515
|
+
const [error, setError] = useState(false);
|
|
516
|
+
const [busy, setBusy] = useState(false);
|
|
517
|
+
return (_jsx(ReauthView, { providers: providers, local: local, error: error, busy: busy, onSubmit: (input) => {
|
|
518
|
+
setBusy(true);
|
|
519
|
+
setError(false);
|
|
520
|
+
void flow.submitLocal(input).then((outcome) => {
|
|
521
|
+
setBusy(false);
|
|
522
|
+
if (outcome === 'done') {
|
|
523
|
+
flow.restore();
|
|
524
|
+
onDone();
|
|
525
|
+
}
|
|
526
|
+
else {
|
|
527
|
+
setError(true);
|
|
528
|
+
}
|
|
529
|
+
});
|
|
530
|
+
}, onSso: (provider) => {
|
|
531
|
+
setError(false);
|
|
532
|
+
void startSso(client, provider, 'reauth', assignLocation, window.location.hash).then((outcome) => {
|
|
533
|
+
if (outcome !== 'navigated')
|
|
534
|
+
setError(true);
|
|
535
|
+
});
|
|
536
|
+
} }));
|
|
537
|
+
}
|
|
538
|
+
export function ReauthConfirm(props) {
|
|
539
|
+
const state = useStore(props.flow);
|
|
540
|
+
if (state.outcome === 'save-failed' ||
|
|
541
|
+
state.outcome === 'failed' ||
|
|
542
|
+
state.outcome === 'credential-required') {
|
|
543
|
+
return (_jsxs(Alert, { variant: "destructive", className: "mx-auto my-4 max-w-lg", children: [_jsx(AlertDescription, { children: state.outcome === 'credential-required'
|
|
544
|
+
? 'Enter the credential again to complete your action.'
|
|
545
|
+
: state.outcome === 'save-failed'
|
|
546
|
+
? 'Your action could not be saved. Try the action again after dismissing this message.'
|
|
547
|
+
: 'Your action could not be completed. Review the current data and try the action again.' }), _jsx(Button, { type: "button", variant: "outline", onClick: () => props.flow.decline(), children: "Dismiss" })] }));
|
|
548
|
+
}
|
|
549
|
+
return (_jsx(ReauthConfirmDialog, { open: state.dialog === 'confirm', action: state.action, onConfirm: () => void props.flow.confirm(), onDecline: () => props.flow.decline() }));
|
|
550
|
+
}
|
|
551
|
+
//# sourceMappingURL=auth.js.map
|
package/dist/auth.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
2
|
+
import type { HTMLAttributes } from 'react';
|
|
3
|
+
declare const alertVariants: (props?: ({
|
|
4
|
+
variant?: "default" | "destructive" | null | undefined;
|
|
5
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
|
+
export declare function Alert({ className, variant, ...props }: HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>): import("react").JSX.Element;
|
|
7
|
+
export declare function AlertTitle({ className, ...props }: HTMLAttributes<HTMLHeadingElement>): import("react").JSX.Element;
|
|
8
|
+
export declare function AlertDescription({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=alert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../src/components/ui/alert.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,QAAA,MAAM,aAAa;;8EAQjB,CAAC;AAEH,wBAAgB,KAAK,CAAC,EACpB,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,+BAErE;AAED,wBAAgB,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,kBAAkB,CAAC,+BAErF;AAED,wBAAgB,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,cAAc,CAAC,+BAEvF"}
|