@package-broker/ui 2.0.0-rc.2 → 2.0.0-rc.4

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 (194) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/api-types.d.ts +8148 -2725
  3. package/dist/api-types.d.ts.map +1 -1
  4. package/dist/api.d.ts +1 -1
  5. package/dist/api.d.ts.map +1 -1
  6. package/dist/api.js +10 -0
  7. package/dist/api.js.map +1 -1
  8. package/dist/app-path.d.ts +2 -0
  9. package/dist/app-path.d.ts.map +1 -0
  10. package/dist/app-path.js +2 -0
  11. package/dist/app-path.js.map +1 -0
  12. package/dist/app.d.ts +10 -14
  13. package/dist/app.d.ts.map +1 -1
  14. package/dist/app.js +37 -22
  15. package/dist/app.js.map +1 -1
  16. package/dist/assets/access.62e9484517a0.js +1 -0
  17. package/dist/assets/app.45b156168495.css +2 -0
  18. package/dist/assets/app.c064670cdc0d.js +9 -0
  19. package/dist/assets/audit.b7c40b9dc998.js +1 -0
  20. package/dist/assets/chunk.28a4d8aab337.js +1 -0
  21. package/dist/assets/chunk.3fcd6998795a.js +1 -0
  22. package/dist/assets/chunk.51497edc7697.js +4 -0
  23. package/dist/assets/chunk.56d473a1587d.js +1 -0
  24. package/dist/assets/chunk.675b635d9462.js +1 -0
  25. package/dist/assets/chunk.6ea6bdcaa465.js +1 -0
  26. package/dist/assets/chunk.741aec8d1ff9.js +1 -0
  27. package/dist/assets/chunk.815f9a91c741.js +1 -0
  28. package/dist/assets/chunk.8442124f6802.js +1 -0
  29. package/dist/assets/chunk.965b76812604.js +2 -0
  30. package/dist/assets/chunk.a6d755a9789f.js +1 -0
  31. package/dist/assets/chunk.d18497920e4d.js +1 -0
  32. package/dist/assets/chunk.d813fefb410d.js +1 -0
  33. package/dist/assets/chunk.e3b0c44298fc.js +0 -0
  34. package/dist/assets/chunk.f54ea1378c8c.js +1 -0
  35. package/dist/assets/chunk.fd375c54b526.js +1 -0
  36. package/dist/assets/import.e7a1e5834631.js +1 -0
  37. package/dist/assets/index.html +9 -2
  38. package/dist/assets/manifest.json +108 -8
  39. package/dist/assets/notifications.19225fe12044.js +1 -0
  40. package/dist/assets/npm-login.e059678af13d.js +1 -0
  41. package/dist/assets/packages.ab5ab25b1c75.js +2 -0
  42. package/dist/assets/projects.927fe18c785c.js +1 -0
  43. package/dist/assets/setup.8e977608d413.js +1 -0
  44. package/dist/assets/setup.html +3 -3
  45. package/dist/assets/sources.ae50f239f80f.js +1 -0
  46. package/dist/assets/tokens.6b86d8d97e07.js +4 -0
  47. package/dist/auth.d.ts +26 -3
  48. package/dist/auth.d.ts.map +1 -1
  49. package/dist/auth.js +133 -19
  50. package/dist/auth.js.map +1 -1
  51. package/dist/components/product-footer-content.d.ts +21 -0
  52. package/dist/components/product-footer-content.d.ts.map +1 -0
  53. package/dist/components/product-footer-content.js +30 -0
  54. package/dist/components/product-footer-content.js.map +1 -0
  55. package/dist/components/product-footer.d.ts +3 -0
  56. package/dist/components/product-footer.d.ts.map +1 -0
  57. package/dist/components/product-footer.js +6 -0
  58. package/dist/components/product-footer.js.map +1 -0
  59. package/dist/components/ui/status-badge.d.ts +5 -0
  60. package/dist/components/ui/status-badge.d.ts.map +1 -1
  61. package/dist/components/ui/status-badge.js +10 -0
  62. package/dist/components/ui/status-badge.js.map +1 -1
  63. package/dist/manifest.d.ts +32 -0
  64. package/dist/manifest.d.ts.map +1 -1
  65. package/dist/manifest.js +41 -0
  66. package/dist/manifest.js.map +1 -1
  67. package/dist/package-limits.d.ts +3 -0
  68. package/dist/package-limits.d.ts.map +1 -0
  69. package/dist/package-limits.js +3 -0
  70. package/dist/package-limits.js.map +1 -0
  71. package/dist/page-hash.d.ts +1 -1
  72. package/dist/page-hash.d.ts.map +1 -1
  73. package/dist/page-hash.js.map +1 -1
  74. package/dist/page-loader.d.ts +5 -0
  75. package/dist/page-loader.d.ts.map +1 -0
  76. package/dist/page-loader.js +39 -0
  77. package/dist/page-loader.js.map +1 -0
  78. package/dist/pages/access/grant-form.d.ts +48 -0
  79. package/dist/pages/access/grant-form.d.ts.map +1 -0
  80. package/dist/pages/access/grant-form.js +153 -0
  81. package/dist/pages/access/grant-form.js.map +1 -0
  82. package/dist/pages/access/permission-descriptions.d.ts +2 -0
  83. package/dist/pages/access/permission-descriptions.d.ts.map +1 -0
  84. package/dist/pages/access/permission-descriptions.js +36 -0
  85. package/dist/pages/access/permission-descriptions.js.map +1 -0
  86. package/dist/pages/access/role-catalogue.d.ts +22 -0
  87. package/dist/pages/access/role-catalogue.d.ts.map +1 -0
  88. package/dist/pages/access/role-catalogue.js +40 -0
  89. package/dist/pages/access/role-catalogue.js.map +1 -0
  90. package/dist/pages/access.d.ts +6 -0
  91. package/dist/pages/access.d.ts.map +1 -1
  92. package/dist/pages/access.js +66 -31
  93. package/dist/pages/access.js.map +1 -1
  94. package/dist/pages/audit.d.ts.map +1 -1
  95. package/dist/pages/notification-actions.d.ts +41 -0
  96. package/dist/pages/notification-actions.d.ts.map +1 -0
  97. package/dist/pages/notification-actions.js +187 -0
  98. package/dist/pages/notification-actions.js.map +1 -0
  99. package/dist/pages/notification-draft.d.ts +13 -0
  100. package/dist/pages/notification-draft.d.ts.map +1 -0
  101. package/dist/pages/notification-draft.js +75 -0
  102. package/dist/pages/notification-draft.js.map +1 -0
  103. package/dist/pages/notification-form.d.ts +35 -0
  104. package/dist/pages/notification-form.d.ts.map +1 -0
  105. package/dist/pages/notification-form.js +167 -0
  106. package/dist/pages/notification-form.js.map +1 -0
  107. package/dist/pages/notifications-controller.d.ts +41 -0
  108. package/dist/pages/notifications-controller.d.ts.map +1 -0
  109. package/dist/pages/notifications-controller.js +184 -0
  110. package/dist/pages/notifications-controller.js.map +1 -0
  111. package/dist/pages/notifications.d.ts +10 -0
  112. package/dist/pages/notifications.d.ts.map +1 -0
  113. package/dist/pages/notifications.js +301 -0
  114. package/dist/pages/notifications.js.map +1 -0
  115. package/dist/pages/npm-login.d.ts +2 -0
  116. package/dist/pages/npm-login.d.ts.map +1 -0
  117. package/dist/pages/npm-login.js +62 -0
  118. package/dist/pages/npm-login.js.map +1 -0
  119. package/dist/pages/packages/npm-workflow.d.ts +31 -0
  120. package/dist/pages/packages/npm-workflow.d.ts.map +1 -0
  121. package/dist/pages/packages/npm-workflow.js +381 -0
  122. package/dist/pages/packages/npm-workflow.js.map +1 -0
  123. package/dist/pages/packages/package-detail.d.ts +9 -0
  124. package/dist/pages/packages/package-detail.d.ts.map +1 -0
  125. package/dist/pages/packages/package-detail.js +242 -0
  126. package/dist/pages/packages/package-detail.js.map +1 -0
  127. package/dist/pages/packages/source-actions.d.ts +49 -0
  128. package/dist/pages/packages/source-actions.d.ts.map +1 -0
  129. package/dist/pages/packages/source-actions.js +319 -0
  130. package/dist/pages/packages/source-actions.js.map +1 -0
  131. package/dist/pages/packages.d.ts +15 -4
  132. package/dist/pages/packages.d.ts.map +1 -1
  133. package/dist/pages/packages.js +138 -20
  134. package/dist/pages/packages.js.map +1 -1
  135. package/dist/pages/projects/project-form-model.d.ts +25 -0
  136. package/dist/pages/projects/project-form-model.d.ts.map +1 -0
  137. package/dist/pages/projects/project-form-model.js +69 -0
  138. package/dist/pages/projects/project-form-model.js.map +1 -0
  139. package/dist/pages/projects/project-form.d.ts +14 -0
  140. package/dist/pages/projects/project-form.d.ts.map +1 -0
  141. package/dist/pages/projects/project-form.js +91 -0
  142. package/dist/pages/projects/project-form.js.map +1 -0
  143. package/dist/pages/projects.d.ts +3 -2
  144. package/dist/pages/projects.d.ts.map +1 -1
  145. package/dist/pages/projects.js +29 -38
  146. package/dist/pages/projects.js.map +1 -1
  147. package/dist/pages/sources/source-form.d.ts +5 -2
  148. package/dist/pages/sources/source-form.d.ts.map +1 -1
  149. package/dist/pages/sources/source-form.js +39 -27
  150. package/dist/pages/sources/source-form.js.map +1 -1
  151. package/dist/pages/sources/sync-copy.d.ts +5 -0
  152. package/dist/pages/sources/sync-copy.d.ts.map +1 -0
  153. package/dist/pages/sources/sync-copy.js +11 -0
  154. package/dist/pages/sources/sync-copy.js.map +1 -0
  155. package/dist/pages/sources.d.ts +11 -3
  156. package/dist/pages/sources.d.ts.map +1 -1
  157. package/dist/pages/sources.js +103 -25
  158. package/dist/pages/sources.js.map +1 -1
  159. package/dist/pages/tokens/client-config.d.ts +3 -0
  160. package/dist/pages/tokens/client-config.d.ts.map +1 -1
  161. package/dist/pages/tokens/client-config.js +12 -2
  162. package/dist/pages/tokens/client-config.js.map +1 -1
  163. package/dist/pages/tokens/issue-token-form.d.ts +27 -0
  164. package/dist/pages/tokens/issue-token-form.d.ts.map +1 -0
  165. package/dist/pages/tokens/issue-token-form.js +270 -0
  166. package/dist/pages/tokens/issue-token-form.js.map +1 -0
  167. package/dist/pages/tokens/principal-form.d.ts +8 -0
  168. package/dist/pages/tokens/principal-form.d.ts.map +1 -0
  169. package/dist/pages/tokens/principal-form.js +155 -0
  170. package/dist/pages/tokens/principal-form.js.map +1 -0
  171. package/dist/pages/tokens/trusted-publishers-controller.d.ts +42 -0
  172. package/dist/pages/tokens/trusted-publishers-controller.d.ts.map +1 -0
  173. package/dist/pages/tokens/trusted-publishers-controller.js +202 -0
  174. package/dist/pages/tokens/trusted-publishers-controller.js.map +1 -0
  175. package/dist/pages/tokens/trusted-publishers.d.ts +6 -0
  176. package/dist/pages/tokens/trusted-publishers.d.ts.map +1 -0
  177. package/dist/pages/tokens/trusted-publishers.js +116 -0
  178. package/dist/pages/tokens/trusted-publishers.js.map +1 -0
  179. package/dist/pages/tokens.d.ts +100 -6
  180. package/dist/pages/tokens.d.ts.map +1 -1
  181. package/dist/pages/tokens.js +324 -86
  182. package/dist/pages/tokens.js.map +1 -1
  183. package/dist/setup.d.ts +3 -2
  184. package/dist/setup.d.ts.map +1 -1
  185. package/dist/setup.js +70 -10
  186. package/dist/setup.js.map +1 -1
  187. package/dist/token-pending.d.ts +4 -0
  188. package/dist/token-pending.d.ts.map +1 -0
  189. package/dist/token-pending.js +12 -0
  190. package/dist/token-pending.js.map +1 -0
  191. package/package.json +3 -3
  192. package/dist/assets/app.b2abf3c46f6e.js +0 -15
  193. package/dist/assets/app.e8cea8b32d3a.css +0 -2
  194. package/dist/assets/setup.98343039898f.js +0 -1
@@ -0,0 +1,319 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { buildListFilterHash } from '../../page-hash.js';
3
+ import { mirrorOutcome, sourceSyncResponse, SYNC_REQUESTED } from '../sources/sync-copy.js';
4
+ import { useEffect, useMemo, useRef, useState, useSyncExternalStore } from 'react';
5
+ import { SOURCE_TYPE_LABELS } from '../sources/source-form.js';
6
+ import { Button } from '../../components/ui/button.js';
7
+ import { Input } from '../../components/ui/input.js';
8
+ import { Label } from '../../components/ui/label.js';
9
+ import { Select } from '../../components/ui/select.js';
10
+ import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, } from '../../components/ui/dialog.js';
11
+ export function sourceHealth(source) {
12
+ if (source.status === 'paused')
13
+ return 'Paused · Enable this source to sync.';
14
+ if (source.lastError)
15
+ return 'Last check failed';
16
+ return source.lastSuccessAt ? 'Last check succeeded' : 'Not checked yet';
17
+ }
18
+ export function mirrorSource(source) {
19
+ return (['packagist_proxy', 'npmjs_proxy', 'npm_registry'].includes(source.type) &&
20
+ 'attached' in source &&
21
+ source.attached);
22
+ }
23
+ export function canSync(source, organization, project, projectId) {
24
+ return source.projectId === null
25
+ ? organization.includes('org:sources:write')
26
+ : source.projectId === projectId && project.includes('project:sources:write');
27
+ }
28
+ export function syncScope(source) {
29
+ if (['packagist_proxy', 'npmjs_proxy', 'npm_registry'].includes(source.type))
30
+ return 'Checks packages already held from this source when their metadata is due for refresh. This does not download the whole registry.';
31
+ return source.type === 'vcs'
32
+ ? 'Syncs the Composer package from this configured Git repository.'
33
+ : "Syncs packages selected in this source's settings.";
34
+ }
35
+ export function createSourceActions(services, scope) {
36
+ const { client } = services;
37
+ let state = {
38
+ loading: true,
39
+ busy: false,
40
+ organization: [],
41
+ permissions: [],
42
+ projects: [],
43
+ project: null,
44
+ sources: [],
45
+ error: null,
46
+ notice: null,
47
+ requested: [],
48
+ available: null,
49
+ };
50
+ const listeners = new Set();
51
+ const set = (patch) => {
52
+ state = { ...state, ...patch };
53
+ listeners.forEach((fn) => fn());
54
+ };
55
+ let generation = 0;
56
+ async function selectProject(slug) {
57
+ const current = ++generation;
58
+ set({
59
+ loading: true,
60
+ busy: false,
61
+ project: null,
62
+ permissions: [],
63
+ sources: [],
64
+ error: null,
65
+ notice: null,
66
+ available: null,
67
+ });
68
+ if (slug === null) {
69
+ const sources = [];
70
+ let after;
71
+ do {
72
+ const result = await client.request('get', '/_pb/sources', {
73
+ query: { ownership: 'organization', limit: '100', ...(after ? { after } : {}) },
74
+ });
75
+ if (current !== generation)
76
+ return;
77
+ if (!result.ok) {
78
+ set({ loading: false, error: 'Sources could not be loaded. Try again.' });
79
+ return;
80
+ }
81
+ sources.push(...result.data.items);
82
+ after = result.data.next ?? undefined;
83
+ } while (after);
84
+ set({ loading: false, sources });
85
+ return;
86
+ }
87
+ const [project, permissions] = await Promise.all([
88
+ client.request('get', '/_pb/projects/{project}', { params: { project: slug } }),
89
+ client.request('get', '/_pb/projects/{project}/permissions', { params: { project: slug } }),
90
+ ]);
91
+ if (current !== generation)
92
+ return;
93
+ if (!project.ok || project.data.status !== 'active' || !permissions.ok) {
94
+ set({
95
+ loading: false,
96
+ error: 'Project access could not be loaded. Choose an active project.',
97
+ });
98
+ return;
99
+ }
100
+ const sources = [];
101
+ let after;
102
+ do {
103
+ const result = await client.request('get', '/_pb/projects/{project}/sources', {
104
+ params: { project: slug },
105
+ query: { limit: '100', ...(after ? { after } : {}) },
106
+ });
107
+ if (current !== generation)
108
+ return;
109
+ if (!result.ok) {
110
+ set({ loading: false, error: 'Sources could not be loaded. Try again.' });
111
+ return;
112
+ }
113
+ sources.push(...result.data.items.filter((source) => source.attached));
114
+ after = result.data.next ?? undefined;
115
+ } while (after);
116
+ set({ loading: false, project: project.data, permissions: permissions.data.project, sources });
117
+ }
118
+ return {
119
+ snapshot: () => state,
120
+ subscribe: (fn) => {
121
+ listeners.add(fn);
122
+ return () => {
123
+ listeners.delete(fn);
124
+ };
125
+ },
126
+ selectProject,
127
+ clearFeedback() {
128
+ set({ notice: null, error: null, available: null });
129
+ },
130
+ async load() {
131
+ const permissions = await client.request('get', '/_pb/me/permissions');
132
+ set({ organization: permissions.ok ? permissions.data.organization : [] });
133
+ if (scope === null) {
134
+ const projects = [];
135
+ let after;
136
+ do {
137
+ const result = await client.request('get', '/_pb/projects', {
138
+ query: { status: 'active', limit: '100', ...(after ? { after } : {}) },
139
+ });
140
+ if (!result.ok)
141
+ break;
142
+ const allowed = await Promise.all(result.data.items
143
+ .filter((p) => p.status === 'active')
144
+ .map(async (p) => {
145
+ const access = await client.request('get', '/_pb/projects/{project}/permissions', {
146
+ params: { project: p.slug },
147
+ });
148
+ return access.ok && access.data.project.includes('project:sources:write')
149
+ ? p
150
+ : null;
151
+ }));
152
+ projects.push(...allowed.filter((p) => p !== null));
153
+ after = result.data.next ?? undefined;
154
+ } while (after);
155
+ set({ projects });
156
+ }
157
+ await selectProject(scope);
158
+ },
159
+ async submit(mode, sourceId, name) {
160
+ const source = state.sources.find((s) => s.id === sourceId);
161
+ if (!source || state.busy || state.loading || source.status === 'paused')
162
+ return;
163
+ if (mode === 'mirror' &&
164
+ (!state.project ||
165
+ !state.permissions.includes('project:sources:write') ||
166
+ !mirrorSource(source)))
167
+ return;
168
+ if (mode === 'sync' &&
169
+ (!canSync(source, state.organization, state.permissions, state.project?.id ?? null) ||
170
+ state.requested.includes(source.id)))
171
+ return;
172
+ name = name.trim();
173
+ if (mode === 'mirror' && (!name || name.length > 428)) {
174
+ set({ error: 'Enter a package name of 1 to 428 characters.' });
175
+ return;
176
+ }
177
+ const current = generation;
178
+ set({ busy: true, error: null, notice: null, available: null });
179
+ const response = mode === 'mirror'
180
+ ? await client.request('post', '/_pb/projects/{project}/sources/{source}/packages', {
181
+ params: { project: state.project.slug, source: source.id },
182
+ body: { name },
183
+ })
184
+ : source.projectId === null
185
+ ? await client.request('post', '/_pb/sources/{source}/sync', {
186
+ params: { source: source.id },
187
+ })
188
+ : await client.request('post', '/_pb/projects/{project}/sources/{source}/sync', {
189
+ params: { project: state.project.slug, source: source.id },
190
+ });
191
+ if (current !== generation)
192
+ return;
193
+ const result = mode === 'sync' ? sourceSyncResponse(response) : response;
194
+ if (result.ok)
195
+ set({
196
+ busy: false,
197
+ notice: mode === 'mirror' ? mirrorOutcome(result.status, name, source.name) : SYNC_REQUESTED,
198
+ available: mode === 'mirror' && result.status === 200 ? { name, source: source.id } : null,
199
+ requested: mode === 'sync' ? [...state.requested, source.id] : state.requested,
200
+ });
201
+ else
202
+ set({
203
+ busy: false,
204
+ error: result.status === 403
205
+ ? 'You no longer have permission to sync this source. Your selection has been kept.'
206
+ : result.code === 'source_paused'
207
+ ? 'This source is paused. Enable it before syncing.'
208
+ : result.code === 'package_not_found'
209
+ ? `No packages match ‘${name}’ in ${source.name}. Check the name or choose another source.`
210
+ : result.status === 400
211
+ ? 'Enter a valid package name for this source.'
212
+ : "Sync couldn't be queued. Try again shortly.",
213
+ });
214
+ },
215
+ };
216
+ }
217
+ export function AddChoices({ ecosystem, mirror, setup, imported, onMirror, sourceLink, }) {
218
+ return (_jsxs("div", { className: "grid gap-4 lg:grid-cols-2", children: [_jsxs("div", { className: "rounded border p-4", children: [_jsx("h3", { className: "font-semibold", children: "From a mirror" }), _jsx("p", { children: ecosystem === 'npm'
219
+ ? 'Find packages in a connected npm registry.'
220
+ : 'Find packages in Packagist or another connected Composer repository.' }), mirror ? (_jsx(Button, { className: "mt-2 min-h-11", onClick: onMirror, children: "From a mirror" })) : (_jsx("p", { children: "A project source manager can add packages from a mirror." }))] }), ecosystem === 'composer' ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "rounded border p-4", children: [_jsx("h3", { className: "font-semibold", children: "From a connected GitHub organization" }), _jsx("p", { children: "Choose repositories your GitHub connection can access." }), _jsx("p", { children: "Organization picker \u00B7 Coming soon" }), setup ? (_jsx("a", { className: "inline-flex min-h-11 items-center underline", href: `${sourceLink}&provider=github`, children: "Set up a GitHub repository source" })) : (_jsx("p", { children: "Ask an organization source manager to connect GitHub." }))] }), _jsxs("div", { className: "rounded border p-4", children: [_jsx("h3", { className: "font-semibold", children: "By repository URL" }), _jsx("p", { children: "Add a Composer package from a Git repository." }), setup ? (_jsx("a", { className: "inline-flex min-h-11 items-center underline", href: sourceLink, children: "By repository URL" })) : (_jsx("p", { children: "A source manager can add a Git repository." }))] })] })) : null, _jsxs("div", { className: "rounded border p-4", children: [_jsx("h3", { className: "font-semibold", children: "Import configuration" }), _jsx("p", { children: "Bring source and package selections from a Satis configuration using the CLI." }), _jsx("code", { className: "break-all", children: "pb import satis plan" }), imported ? (_jsx("a", { href: "#/import", className: "flex min-h-11 items-center underline", children: "Import review" })) : (_jsx("p", { children: "An organization import manager can review imports." }))] }), _jsxs("div", { className: "lg:col-span-2", children: [_jsx("h3", { className: "font-semibold", children: "Upload a private package" }), _jsx("p", { children: "Publish a package archive for this project." }), _jsx("p", { children: "Coming soon \u00B7 Upload and publishing belong to #947." })] })] }));
221
+ }
222
+ export function PackageSourceControls({ services, project, onSourcesChanged, }) {
223
+ const model = useMemo(() => createSourceActions(services, project), [services, project]);
224
+ const state = useSyncExternalStore(model.subscribe, model.snapshot, model.snapshot);
225
+ const sourceSignature = state.loading
226
+ ? null
227
+ : JSON.stringify(state.sources.map((source) => [source.id, source.name]));
228
+ useEffect(() => {
229
+ if (sourceSignature !== null)
230
+ onSourcesChanged?.(state.project?.slug ?? project, sourceSignature);
231
+ }, [sourceSignature, onSourcesChanged, state.project?.slug, project]);
232
+ const [mode, setMode] = useState(null);
233
+ const [ecosystem, setEcosystem] = useState('composer');
234
+ const [sourceId, setSource] = useState('');
235
+ const [sourceError, setSourceError] = useState(false);
236
+ const [name, setName] = useState('');
237
+ const result = useRef(null);
238
+ useEffect(() => {
239
+ void model.load();
240
+ }, [model]);
241
+ useEffect(() => {
242
+ if (state.notice || state.error)
243
+ result.current?.focus();
244
+ }, [state.notice, state.error]);
245
+ const source = state.sources.find((s) => s.id === sourceId);
246
+ const manager = state.permissions.includes('project:sources:write');
247
+ const orgManager = state.organization.includes('org:sources:write');
248
+ const setup = project === null ? orgManager : manager;
249
+ const sources = state.sources.filter((s) => mode !== 'mirror' || (s.ecosystem === ecosystem && mirrorSource(s)));
250
+ const authorized = source &&
251
+ (mode === 'mirror'
252
+ ? manager && !!state.project
253
+ : canSync(source, state.organization, state.permissions, state.project?.id ?? null));
254
+ const link = `#/sources?create=vcs${project ? `&project=${encodeURIComponent(project)}` : ''}`;
255
+ function open(next) {
256
+ setSource('');
257
+ setSourceError(false);
258
+ setName('');
259
+ model.clearFeedback();
260
+ setMode(next);
261
+ }
262
+ return (_jsxs(_Fragment, { children: [_jsx("p", { className: "my-3 text-neutral-600", children: project
263
+ ? `Packages available to ${state.project?.name ?? project}.`
264
+ : 'Packages available across your organization.' }), _jsxs("div", { className: "flex flex-wrap gap-3", children: [_jsx(Button, { className: "min-h-11", onClick: () => open('choices'), children: "Add package" }), _jsx(Button, { className: "min-h-11", variant: "outline", onClick: () => open('sync'), children: "Sync from source" })] }), mode ? (_jsx(Dialog, { open: true, onOpenChange: (open) => {
265
+ if (!open)
266
+ setMode(null);
267
+ }, children: _jsxs(DialogContent, { variant: "source", className: "lg:max-w-5xl", children: [_jsxs(DialogHeader, { className: "shrink-0 p-6 pr-16", children: [_jsx(DialogTitle, { children: mode === 'sync' ? 'Sync from source' : 'Add package' }), _jsx(DialogDescription, { children: mode === 'sync'
268
+ ? 'Check a source for package updates.'
269
+ : state.project
270
+ ? `Add packages to ${state.project.name}.`
271
+ : 'Choose how to add packages to a project.' })] }), _jsxs("div", { className: "min-h-0 overflow-y-auto px-6 pb-6", children: [state.loading ? _jsx("p", { role: "status", children: "Loading sources\u2026" }) : null, mode === 'choices' ? (_jsxs(_Fragment, { children: [_jsx(Label, { htmlFor: "choice-ecosystem", children: "Ecosystem" }), _jsxs(Select, { className: "mb-4 min-h-11", id: "choice-ecosystem", value: ecosystem, onChange: (e) => setEcosystem(e.target.value), children: [_jsx("option", { value: "composer", children: "Composer" }), _jsx("option", { value: "npm", children: "npm" })] }), _jsx(AddChoices, { ecosystem: ecosystem, mirror: project === null ? state.projects.length > 0 : manager, setup: setup, imported: state.organization.includes('org:import:write'), sourceLink: link, onMirror: () => setMode('mirror') })] })) : (_jsxs("form", { id: "source-action-form", className: "grid gap-4 lg:grid-cols-2", onSubmit: (e) => {
272
+ e.preventDefault();
273
+ if (source)
274
+ void model.submit(mode, source.id, name);
275
+ }, children: [project === null ? (_jsxs("div", { children: [_jsx(Label, { htmlFor: "destination-project", children: "Project" }), _jsxs(Select, { id: "destination-project", className: "min-h-11", disabled: state.busy, value: state.project?.slug ?? '', onChange: (e) => {
276
+ setSource('');
277
+ setSourceError(false);
278
+ void model.selectProject(e.target.value || null);
279
+ }, children: [_jsx("option", { value: "", children: mode === 'sync' ? 'Organization sources' : 'Choose a project' }), state.projects.map((p) => (_jsx("option", { value: p.slug, children: p.name }, p.id)))] })] })) : null, mode === 'mirror' ? (_jsxs("div", { children: [_jsx(Label, { htmlFor: "mirror-ecosystem", children: "Ecosystem" }), _jsxs(Select, { id: "mirror-ecosystem", className: "min-h-11", value: ecosystem, disabled: state.busy, onChange: (e) => {
280
+ setEcosystem(e.target.value);
281
+ setSource('');
282
+ setSourceError(false);
283
+ }, children: [_jsx("option", { value: "composer", children: "Composer" }), _jsx("option", { value: "npm", children: "npm" })] })] })) : null, _jsxs("div", { children: [_jsx(Label, { htmlFor: "package-source", children: "Source" }), _jsxs(Select, { id: "package-source", className: "min-h-11", required: true, "aria-invalid": sourceError || undefined, "aria-describedby": sourceError ? 'package-source-error' : undefined, onInvalid: () => setSourceError(true), disabled: state.loading || state.busy, value: sourceId, onChange: (e) => {
284
+ setSource(e.target.value);
285
+ setSourceError(false);
286
+ model.clearFeedback();
287
+ }, children: [_jsx("option", { value: "", children: "Choose a source" }), sources.map((s) => (_jsxs("option", { value: s.id, children: [s.name, " \u00B7 ", SOURCE_TYPE_LABELS[s.type], " \u00B7 ", sourceHealth(s)] }, s.id)))] }), sourceError ? (_jsx("p", { id: "package-source-error", role: "alert", children: "Choose a source." })) : null] }), mode === 'mirror' ? (_jsxs("div", { children: [_jsx(Label, { htmlFor: "mirror-package", children: "Find a package" }), _jsx(Input, { id: "mirror-package", className: "min-h-11", required: true, maxLength: 428, disabled: state.busy, value: name, onChange: (e) => {
288
+ setName(e.target.value);
289
+ model.clearFeedback();
290
+ }, "aria-describedby": "mirror-help" }), _jsx("p", { id: "mirror-help", children: "This source does not support search. Enter the full package name." })] })) : null, _jsxs("div", { className: "space-y-3 lg:col-span-2", children: [!sources.length && !state.loading ? (_jsx("p", { children: state.project
291
+ ? `No sources available for ${state.project.name}. Attach a source before adding packages.`
292
+ : mode === 'mirror'
293
+ ? 'Choose a destination project before adding packages.'
294
+ : 'No sources available.' })) : null, !sources.length && setup && !state.loading ? (_jsx("a", { className: "inline-flex min-h-11 items-center underline", href: `#/sources${state.project ? `?project=${encodeURIComponent(state.project.slug)}` : ''}`, children: "Manage sources" })) : null, source ? (_jsxs(_Fragment, { children: [_jsx("p", { children: source.projectId === null
295
+ ? 'Shared organization source'
296
+ : `Only ${state.project?.name ?? project}` }), _jsx("p", { children: sourceHealth(source) }), source.status === 'paused' ? (_jsx("p", { children: "This source is paused. Enable it before syncing." })) : null, mode === 'sync' && state.requested.includes(source.id) && !state.notice ? (_jsx("p", { role: "status", children: SYNC_REQUESTED })) : null, mode === 'sync' ? (_jsxs(_Fragment, { children: [_jsx("h3", { className: "font-semibold", children: mirrorSource(source) ||
297
+ ['packagist_proxy', 'npmjs_proxy'].includes(source.type)
298
+ ? 'Check cached packages for updates'
299
+ : 'All configured packages' }), _jsx("p", { children: syncScope(source) }), source.type === 'composer_repository' &&
300
+ source.config &&
301
+ 'selection' in source.config ? (_jsxs("p", { className: "break-words", children: ["Configured selection:", ' ', [
302
+ ...(source.config.selection?.packages ?? []),
303
+ ...(source.config.selection?.patterns ?? []),
304
+ ].join(', ') || 'No packages selected.'] })) : null, source.projectId === null ? (_jsx("p", { children: "This source is shared. Updated metadata can be used by other attached projects." })) : null, !authorized ? (_jsx("p", { children: source.projectId === null
305
+ ? 'An organization source manager can sync this source.'
306
+ : 'A project source manager can sync this source.' })) : null] })) : (_jsxs(_Fragment, { children: [_jsx("p", { children: "Checks this source and queues the package if it is not already available." }), _jsx("p", { children: "This syncs the selected packages. Dependencies are fetched through your project's sources when requested." })] }))] })) : null] })] })), state.notice || state.error ? (_jsxs("div", { ref: result, tabIndex: -1, className: "mt-4 break-words", role: state.error ? 'alert' : 'status', "aria-live": "polite", children: [_jsx("h3", { className: "font-semibold", children: state.error ? 'Request could not be completed' : 'Request outcome' }), _jsx("p", { children: state.error ?? state.notice }), state.available ? (_jsx("a", { className: "inline-flex min-h-11 items-center underline", href: buildListFilterHash('packages', {
307
+ project: state.project?.slug ?? null,
308
+ q: state.available.name,
309
+ source: state.available.source,
310
+ }), children: "View" })) : null, state.notice ? (_jsx("a", { className: "inline-flex min-h-11 items-center underline", href: `#/sources${state.project ? `?project=${encodeURIComponent(state.project.slug)}` : ''}`, children: "View sources" })) : null] })) : null] }), _jsx(DialogFooter, { className: "shrink-0 border-t bg-white p-4 pb-[max(1rem,env(safe-area-inset-bottom))]", children: mode !== 'choices' && authorized && source?.status !== 'paused' ? (_jsx(Button, { className: "min-h-11", form: "source-action-form", type: "submit", disabled: state.busy ||
311
+ state.loading ||
312
+ !!state.notice ||
313
+ (mode === 'sync' && state.requested.includes(source.id)), children: state.busy
314
+ ? 'Requesting…'
315
+ : mode === 'mirror'
316
+ ? 'Add package'
317
+ : 'Request source sync' })) : null })] }) })) : null] }));
318
+ }
319
+ //# sourceMappingURL=source-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-actions.js","sourceRoot":"","sources":["../../../src/pages/packages/source-actions.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { operations } from '../api-types.js';
2
2
  import { type ShellServices, type ReplayResult } from '../auth.js';
3
- export type PackageItem = operations['listPackages']['responses'][200]['content']['application/json']['items'][number];
3
+ export type PackageItem = Omit<operations['listPackages']['responses'][200]['content']['application/json']['items'][number], 'visibleToNewProjects' | 'newProjectAccessMode' | 'revision'>;
4
4
  export type VersionItem = operations['listPackageVersions']['responses'][200]['content']['application/json']['items'][number];
5
5
  type PackageStatus = PackageItem['status'];
6
6
  type Action = 'quarantine' | 'tombstone' | 'release';
@@ -45,10 +45,10 @@ export declare function createPackagesController(services: ShellServices): {
45
45
  open: (id: string, after?: string) => Promise<void>;
46
46
  navigate: (query: PackageQuery, id?: string, after?: string) => Promise<void>;
47
47
  refresh: (notice?: string | null) => Promise<void>;
48
- act: (versionId: string, action: Action, confirmed?: boolean) => Promise<void>;
48
+ act: (versionId: string, action: Action, confirmed?: boolean, reason?: string) => Promise<void>;
49
49
  close: () => void;
50
50
  cancelTombstone: () => void;
51
- confirmTombstone(): Promise<void>;
51
+ confirmTombstone(reason: string): Promise<void>;
52
52
  dispose(): void;
53
53
  };
54
54
  export declare function PackageVersions(props: {
@@ -65,10 +65,21 @@ export declare function PackagesView(props: {
65
65
  onNext: () => void;
66
66
  onVersionNext: () => void;
67
67
  onRefresh: () => void;
68
- onConfirm: () => void;
68
+ onConfirm: (reason: string) => void;
69
69
  onCancel: () => void;
70
70
  onBack?: () => void;
71
71
  }): import("react").JSX.Element;
72
+ type FilterChoice = {
73
+ id: string;
74
+ name: string;
75
+ };
76
+ type FilterChoices = {
77
+ sources: FilterChoice[];
78
+ projects: FilterChoice[];
79
+ };
80
+ export declare function createPackageFilterChoicesLoader(services: ShellServices): ((project: string | null) => Promise<FilterChoices>) & {
81
+ invalidate: () => void;
82
+ };
72
83
  export declare function PackagesPage(): import("react").JSX.Element;
73
84
  export {};
74
85
  //# sourceMappingURL=packages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"packages.d.ts","sourceRoot":"","sources":["../../src/pages/packages.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"packages.d.ts","sourceRoot":"","sources":["../../src/pages/packages.tsx"],"names":[],"mappings":"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"}