@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,202 @@
1
+ const empty = () => ({
2
+ packageName: '',
3
+ repository: '',
4
+ workflow: '',
5
+ environment: '',
6
+ refPattern: '',
7
+ });
8
+ export function createTrustedPublishersController(services) {
9
+ let state = {
10
+ items: [],
11
+ next: null,
12
+ hasPrevious: false,
13
+ draft: empty(),
14
+ editing: null,
15
+ loading: false,
16
+ loadError: false,
17
+ busy: false,
18
+ stale: false,
19
+ editDisabled: false,
20
+ notice: null,
21
+ };
22
+ let epoch = 0;
23
+ let cursors = [undefined];
24
+ const listeners = new Set();
25
+ const set = (next) => {
26
+ state = { ...state, ...next };
27
+ for (const listener of listeners)
28
+ listener();
29
+ };
30
+ const failure = (result) => {
31
+ const conflict = result.code === 'conflict' || result.status === 412 || result.status === 428;
32
+ set({
33
+ stale: conflict,
34
+ notice: conflict
35
+ ? 'This publisher changed. Reload the latest settings and review your draft before saving.'
36
+ : result.code === 'github_credentials_required'
37
+ ? 'Configure a GitHub source for this repository with a GitHub App installation or token first.'
38
+ : result.code === 'ambiguous_trusted_publisher'
39
+ ? 'A publisher already uses this package, repository, workflow and environment.'
40
+ : result.code === 'name_not_claimed'
41
+ ? 'Claim this package on an active hosted npm source first.'
42
+ : 'The publisher could not be saved. Check your settings and try again.',
43
+ });
44
+ };
45
+ const controller = {
46
+ snapshot: () => state,
47
+ subscribe(listener) {
48
+ listeners.add(listener);
49
+ return () => {
50
+ listeners.delete(listener);
51
+ };
52
+ },
53
+ draft(draft) {
54
+ set({ draft });
55
+ },
56
+ edit(item) {
57
+ set({
58
+ draft: {
59
+ packageName: item.packageName,
60
+ repository: item.repository,
61
+ workflow: item.workflow,
62
+ environment: item.environment,
63
+ refPattern: item.refPattern ?? '',
64
+ },
65
+ editing: { id: item.id, revision: item.revision },
66
+ notice: null,
67
+ editDisabled: false,
68
+ });
69
+ },
70
+ cancel() {
71
+ set({ draft: empty(), editing: null, notice: null, editDisabled: false });
72
+ },
73
+ clear() {
74
+ epoch++;
75
+ cursors = [undefined];
76
+ set({
77
+ draft: empty(),
78
+ editing: null,
79
+ items: [],
80
+ next: null,
81
+ hasPrevious: false,
82
+ notice: null,
83
+ busy: false,
84
+ loading: false,
85
+ stale: false,
86
+ editDisabled: false,
87
+ loadError: false,
88
+ });
89
+ },
90
+ async load() {
91
+ if (state.busy)
92
+ return;
93
+ const version = ++epoch;
94
+ set({ loading: true, loadError: false });
95
+ const cursor = cursors[cursors.length - 1];
96
+ const result = await services.client.request('get', '/_pb/trusted-publishers', {
97
+ query: cursor === undefined ? {} : { cursor },
98
+ });
99
+ if (version !== epoch)
100
+ return;
101
+ if (!result.ok) {
102
+ set({ loading: false, loadError: true });
103
+ return;
104
+ }
105
+ let editing = state.editing;
106
+ let editDisabled = false;
107
+ if (editing !== null) {
108
+ const current = result.data.items.find((item) => item.id === editing.id && item.disabledAt === null);
109
+ editDisabled = current === undefined;
110
+ if (current !== undefined)
111
+ editing = { id: current.id, revision: current.revision };
112
+ }
113
+ set({
114
+ items: result.data.items,
115
+ next: result.data.next ?? null,
116
+ hasPrevious: cursors.length > 1,
117
+ loading: false,
118
+ stale: false,
119
+ editing,
120
+ editDisabled,
121
+ notice: editDisabled
122
+ ? 'This publisher was disabled or is no longer available. Cancel this edit to create a new publisher.'
123
+ : state.stale
124
+ ? 'Latest settings loaded. Review your draft before saving again.'
125
+ : state.notice,
126
+ });
127
+ },
128
+ async nextPage() {
129
+ if (state.busy ||
130
+ state.loading ||
131
+ state.stale ||
132
+ state.loadError ||
133
+ state.editing !== null ||
134
+ state.next === null)
135
+ return;
136
+ cursors.push(state.next);
137
+ await controller.load();
138
+ },
139
+ async previousPage() {
140
+ if (state.busy ||
141
+ state.loading ||
142
+ state.stale ||
143
+ state.loadError ||
144
+ state.editing !== null ||
145
+ cursors.length < 2)
146
+ return;
147
+ cursors.pop();
148
+ await controller.load();
149
+ },
150
+ async save() {
151
+ if (state.busy || state.loading || state.stale || state.loadError || state.editDisabled)
152
+ return;
153
+ const version = epoch;
154
+ set({ busy: true, notice: null });
155
+ const { draft, editing } = state;
156
+ const body = {
157
+ packageName: draft.packageName,
158
+ repository: draft.repository,
159
+ workflow: draft.workflow,
160
+ environment: draft.environment,
161
+ ...(draft.refPattern === '' ? {} : { refPattern: draft.refPattern }),
162
+ };
163
+ const result = editing === null
164
+ ? await services.client.request('post', '/_pb/trusted-publishers', { body })
165
+ : await services.client.request('put', '/_pb/trusted-publishers/{id}', {
166
+ params: { id: editing.id },
167
+ headers: { 'If-Match': `"r${editing.revision}"` },
168
+ body,
169
+ });
170
+ if (version !== epoch)
171
+ return;
172
+ set({ busy: false });
173
+ if (!result.ok) {
174
+ failure(result);
175
+ return;
176
+ }
177
+ set({ draft: empty(), editing: null, notice: 'Trusted publisher saved.' });
178
+ await controller.load();
179
+ },
180
+ async disable(item) {
181
+ if (state.busy || state.loading || state.stale || state.loadError)
182
+ return;
183
+ const version = epoch;
184
+ set({ busy: true, notice: null });
185
+ const result = await services.client.request('delete', '/_pb/trusted-publishers/{id}', {
186
+ params: { id: item.id },
187
+ headers: { 'If-Match': `"r${item.revision}"` },
188
+ });
189
+ if (version !== epoch)
190
+ return;
191
+ set({ busy: false });
192
+ if (!result.ok) {
193
+ failure(result);
194
+ return;
195
+ }
196
+ set({ notice: 'Publisher disabled. Its workload tokens have been revoked.' });
197
+ await controller.load();
198
+ },
199
+ };
200
+ return controller;
201
+ }
202
+ //# sourceMappingURL=trusted-publishers-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trusted-publishers-controller.js","sourceRoot":"","sources":["../../../src/pages/tokens/trusted-publishers-controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Controller } from './trusted-publishers-controller.js';
2
+ export declare function TrustedPublishers({ controller, permissions, }: {
3
+ controller: Controller;
4
+ permissions: readonly string[];
5
+ }): import("react").JSX.Element | null;
6
+ //# sourceMappingURL=trusted-publishers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trusted-publishers.d.ts","sourceRoot":"","sources":["../../../src/pages/tokens/trusted-publishers.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AASrE,wBAAgB,iBAAiB,CAAC,EAChC,UAAU,EACV,WAAW,GACZ,EAAE;IACD,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC,sCAuRA"}
@@ -0,0 +1,116 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { MAX_NPM_NAME_LENGTH } from '../../package-limits.js';
3
+ import { useEffect, useRef, useState, useSyncExternalStore } from 'react';
4
+ import { Button } from '../../components/ui/button.js';
5
+ import { Input } from '../../components/ui/input.js';
6
+ import { Label } from '../../components/ui/label.js';
7
+ import { DataTable } from '../../components/ui/table.js';
8
+ import { ConfirmAction } from '../../components/ui/confirm-action.js';
9
+ import { ListState } from '../../components/ui/list-state.js';
10
+ import { Time } from '../../components/ui/time.js';
11
+ const subscribeLocation = (listener) => {
12
+ window.addEventListener('hashchange', listener);
13
+ return () => window.removeEventListener('hashchange', listener);
14
+ };
15
+ const locationSnapshot = () => window.location.hash;
16
+ const serverLocationSnapshot = () => '';
17
+ export function TrustedPublishers({ controller, permissions, }) {
18
+ const state = useSyncExternalStore(controller.subscribe, controller.snapshot, controller.snapshot);
19
+ const hash = useSyncExternalStore(subscribeLocation, locationSnapshot, serverLocationSnapshot);
20
+ const targeted = new URLSearchParams(hash.split('?')[1] ?? '').get('section') === 'trusted-publishers';
21
+ const [expanded, setExpanded] = useState(targeted || state.editing !== null);
22
+ const [creating, setCreating] = useState(false);
23
+ const [returnFocus, setReturnFocus] = useState(false);
24
+ const addButton = useRef(null);
25
+ const opener = useRef(null);
26
+ const formOpen = creating || state.editing !== null;
27
+ const blocked = state.busy || state.loading || state.stale || state.loadError;
28
+ useEffect(() => {
29
+ if (targeted || state.editing !== null)
30
+ setExpanded(true);
31
+ }, [targeted, state.editing]);
32
+ useEffect(() => {
33
+ if (expanded && formOpen)
34
+ document.getElementById('publisher-packageName')?.focus();
35
+ }, [expanded, formOpen, state.editing?.id]);
36
+ useEffect(() => {
37
+ if (!returnFocus || formOpen || blocked)
38
+ return;
39
+ const target = opener.current?.isConnected ? opener.current : addButton.current;
40
+ target?.focus();
41
+ setReturnFocus(false);
42
+ }, [returnFocus, formOpen, blocked]);
43
+ const allowed = permissions.includes('org:service-principals:write');
44
+ const canWrite = allowed && permissions.includes('org:packages:publish');
45
+ useEffect(() => {
46
+ if (allowed)
47
+ void controller.load();
48
+ return () => controller.clear();
49
+ }, [controller, allowed]);
50
+ if (!allowed)
51
+ return null;
52
+ const submit = (event) => {
53
+ event.preventDefault();
54
+ void controller.save().then(() => {
55
+ if (controller.snapshot().notice !== 'Trusted publisher saved.')
56
+ return;
57
+ setCreating(false);
58
+ setReturnFocus(true);
59
+ });
60
+ };
61
+ return (_jsxs("details", { id: "trusted-publishers", className: "detail-group space-y-4", open: expanded, onToggle: (event) => setExpanded(event.currentTarget.open), children: [_jsx("summary", { className: "min-h-11 cursor-pointer font-semibold", children: "Trusted publishers" }), _jsx("p", { children: "Organization \u00B7 Let a GitHub Actions workflow publish one claimed npm package using short-lived credentials." }), _jsx("p", { children: "Configure an organization GitHub source for the repository with a GitHub App installation or token so its numeric identity can be verified." }), state.notice === null ? null : _jsx("p", { role: "status", children: state.notice }), canWrite && !formOpen ? (_jsx(Button, { ref: addButton, type: "button", className: "min-h-11", disabled: blocked, onClick: (event) => {
62
+ opener.current = event.currentTarget;
63
+ setCreating(true);
64
+ }, children: "Add trusted publisher" })) : null, _jsx(Button, { type: "button", variant: "outline", className: "min-h-11", disabled: state.busy || state.loading, onClick: () => void controller.load(), children: "Reload trusted publishers" }), state.loading ? (_jsx(ListState, { kind: "loading", title: "Loading trusted publishers\u2026" })) : state.loadError ? (_jsx(ListState, { kind: "error", title: "Trusted publishers could not be loaded." })) : state.items.length === 0 ? (_jsx(ListState, { kind: "empty", title: state.hasPrevious ? 'No trusted publishers on this page.' : 'No trusted publishers yet.' })) : (_jsx(DataTable, { label: "Organization trusted publishers", items: state.items, columns: [
65
+ {
66
+ key: 'package',
67
+ label: 'Package',
68
+ value: (item) => item.packageName,
69
+ render: (item) => _jsx("strong", { className: "break-all", children: item.packageName }),
70
+ },
71
+ {
72
+ key: 'workflow',
73
+ label: 'GitHub workflow',
74
+ value: (item) => item.repository,
75
+ render: (item) => (_jsxs("div", { className: "break-all", children: [_jsx("p", { children: item.repository }), _jsx("p", { children: item.workflow })] })),
76
+ },
77
+ {
78
+ key: 'binding',
79
+ label: 'Conditions',
80
+ value: (item) => item.environment,
81
+ render: (item) => (_jsxs(_Fragment, { children: [_jsxs("p", { children: ["Environment: ", item.environment || 'No environment'] }), _jsxs("p", { children: ["Ref: ", item.refPattern ?? 'Any ref'] }), _jsx("p", { children: item.disabledAt === null ? 'Enabled' : 'Disabled' })] })),
82
+ },
83
+ {
84
+ key: 'used',
85
+ label: 'Last used',
86
+ value: (item) => item.lastUsedAt ?? '',
87
+ render: (item) => item.lastUsedAt === null ? 'Never used' : _jsx(Time, { value: item.lastUsedAt }),
88
+ },
89
+ {
90
+ key: 'actions',
91
+ label: 'Actions',
92
+ value: () => '',
93
+ sortable: false,
94
+ render: (item) => !canWrite || item.disabledAt !== null ? null : (_jsxs("div", { className: "flex flex-wrap gap-2", children: [_jsx(Button, { type: "button", className: "min-h-11", variant: "outline", disabled: blocked, onClick: (event) => {
95
+ opener.current = event.currentTarget;
96
+ setCreating(false);
97
+ controller.edit(item);
98
+ }, children: "Edit publisher" }), _jsx(ConfirmAction, { action: "Disable publisher", target: `${item.packageName}: ${item.repository} / ${item.workflow}`, scope: "Organization", description: "This workflow will no longer be able to publish through this binding. Its workload tokens will be revoked immediately. The binding remains in the history and cannot be recreated.", disabled: blocked, onConfirm: () => void controller.disable(item) })] })),
99
+ },
100
+ ] })), _jsxs("p", { children: [state.items.length, " trusted publishers on this page"] }), _jsxs("div", { className: "flex gap-2", children: [_jsx(Button, { type: "button", className: "min-h-11", variant: "outline", disabled: blocked || formOpen || !state.hasPrevious, onClick: () => void controller.previousPage(), children: "Previous publishers" }), _jsx(Button, { type: "button", className: "min-h-11", variant: "outline", disabled: blocked || formOpen || state.next === null, onClick: () => void controller.nextPage(), children: "Next publishers" })] }), !canWrite ? (_jsx("p", { children: "Publishing and service identity management permissions are both required to manage publishers." })) : !formOpen ? null : (_jsxs("form", { onSubmit: submit, className: "grid max-w-5xl items-start gap-x-6 gap-y-4 lg:grid-cols-2", "aria-label": state.editing === null ? 'New trusted publisher' : 'Edit trusted publisher', children: [_jsx("h3", { className: "lg:col-span-2 font-semibold", children: state.editing === null ? 'New trusted publisher' : 'Edit trusted publisher' }), [
101
+ ['packageName', 'npm package', true],
102
+ ['repository', 'GitHub repository (owner/name)', true],
103
+ ['workflow', 'Workflow filename', true],
104
+ ['environment', 'Environment (optional)', false],
105
+ ['refPattern', 'Ref pattern (optional)', false],
106
+ ].map(([key, label, required]) => (_jsxs("div", { children: [_jsx(Label, { htmlFor: `publisher-${key}`, children: label }), _jsx(Input, { id: `publisher-${key}`, value: state.draft[key], required: required, maxLength: key === 'packageName' ? MAX_NPM_NAME_LENGTH : key === 'repository' ? 140 : 255, disabled: state.busy, "aria-describedby": key === 'refPattern'
107
+ ? 'publisher-ref-help'
108
+ : key === 'environment'
109
+ ? 'publisher-environment-help'
110
+ : undefined, onChange: (event) => controller.draft({ ...state.draft, [key]: event.target.value }) }), key === 'refPattern' ? (_jsx("p", { id: "publisher-ref-help", children: "Use a full ref such as refs/tags/v*. * crosses /, ? matches one character, and matching is case-sensitive. Leave blank to allow any ref." })) : key === 'environment' ? (_jsx("p", { id: "publisher-environment-help", children: "ASCII letters are matched without case. Leave blank for a workflow job without an environment. A named environment must match." })) : null] }, key))), _jsx("p", { className: "lg:col-span-2", children: "Saving creates or updates an organization service identity with permission to publish this package. Workflow identity is verified against GitHub's numeric repository and owner IDs." }), _jsxs("div", { className: "lg:col-span-2 flex flex-wrap gap-2", children: [_jsx(Button, { type: "submit", className: "min-h-11 w-full sm:w-auto", disabled: blocked || state.editDisabled, children: state.busy ? 'Saving publisher…' : 'Save trusted publisher' }), _jsx(Button, { type: "button", className: "min-h-11", variant: "outline", disabled: state.busy, onClick: () => {
111
+ controller.cancel();
112
+ setCreating(false);
113
+ setReturnFocus(true);
114
+ }, children: state.editing === null ? 'Cancel' : 'Cancel edit' })] })] }))] }));
115
+ }
116
+ //# sourceMappingURL=trusted-publishers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trusted-publishers.js","sourceRoot":"","sources":["../../../src/pages/tokens/trusted-publishers.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +1,20 @@
1
1
  import type { operations } from '../api-types.js';
2
2
  import { type ShellServices } from '../auth.js';
3
3
  import { type PendingStorage } from '../pending.js';
4
+ import { tokenClientConfig } from './tokens/client-config.js';
4
5
  type Token = operations['listMyTokens']['responses'][200]['content']['application/json']['items'][number];
5
6
  type Lifetime = operations['listMyTokens']['responses'][200]['content']['application/json']['lifetime'];
6
7
  type Principal = operations['listServicePrincipals']['responses'][200]['content']['application/json']['items'][number];
8
+ export interface IssueProject {
9
+ id: string;
10
+ slug: string;
11
+ name: string;
12
+ cap: 'read' | 'write' | 'full' | null;
13
+ permissions: string[] | null;
14
+ policyState?: 'idle' | 'loading' | 'loaded' | 'error';
15
+ }
7
16
  type Target = 'personal' | 'project' | 'organization';
8
- interface Draft {
17
+ export interface Draft {
9
18
  name: string;
10
19
  scope: 'read' | 'write' | 'full';
11
20
  lifetimeDays: number;
@@ -21,17 +30,30 @@ interface Issue {
21
30
  key: string;
22
31
  rotate?: string;
23
32
  replace?: string;
33
+ refresh?: boolean;
34
+ listTarget?: Target;
35
+ listProject?: string | null;
24
36
  }
25
- interface State {
37
+ export interface State {
26
38
  target: Target;
27
39
  project: string | null;
40
+ issuanceProject: string | null;
28
41
  items: Token[];
29
42
  next: string | null;
30
43
  principals: Principal[];
31
44
  principalsNext: string | null;
32
45
  principalsRestricted: boolean;
46
+ principalsLoading: boolean;
47
+ principalsError: boolean;
48
+ organizationPermissions: string[];
49
+ issuanceDraft: Issue | null;
50
+ issuancePrincipal: string | null;
51
+ issuanceNonce: number;
33
52
  names: Record<string, string>;
34
53
  projectSlugs: Record<string, string>;
54
+ projects: IssueProject[];
55
+ projectsError: boolean;
56
+ result: Issue | null;
35
57
  lifetime: Lifetime | null;
36
58
  userId: string | null;
37
59
  secret: string | null;
@@ -54,6 +76,7 @@ interface Deps {
54
76
  now: () => number;
55
77
  clearAfterCopy?: boolean;
56
78
  }
79
+ export declare const dayLabel: (days: number) => string;
57
80
  export declare function lifetimeChoices(policy: {
58
81
  maxDays: number;
59
82
  defaultDays: number;
@@ -61,9 +84,64 @@ export declare function lifetimeChoices(policy: {
61
84
  export declare function tokensReducer(state: State, action: {
62
85
  type: 'navigate';
63
86
  }): State;
64
- export declare function clearPendingTokenIssue(storage: PendingStorage): void;
87
+ export declare function inResultScope(result: Issue | null, project: IssueProject): boolean;
88
+ export declare function hasSetupAccess(state: State, project: IssueProject): boolean;
65
89
  export declare function createTokensController(services: ShellServices, deps: Deps): {
90
+ trustedPublishers: {
91
+ snapshot: () => import("./tokens/trusted-publishers-controller.js").State;
92
+ subscribe(listener: () => void): () => void;
93
+ draft(draft: {
94
+ packageName: string;
95
+ repository: string;
96
+ workflow: string;
97
+ environment: string;
98
+ refPattern: string;
99
+ }): void;
100
+ edit(item: Pick<{
101
+ createdAt: string;
102
+ createdByName: string;
103
+ createdByUserId: string;
104
+ disabledAt: string | null;
105
+ environment: string;
106
+ id: string;
107
+ lastUsedAt: string | null;
108
+ packageName: string;
109
+ refPattern: string | null;
110
+ repository: string;
111
+ repositoryId: string;
112
+ repositoryOwnerId: string;
113
+ revision: number;
114
+ servicePrincipalId: string;
115
+ servicePrincipalName: string;
116
+ workflow: string;
117
+ }, "id" | "revision" | "packageName" | "repository" | "workflow" | "environment" | "refPattern">): void;
118
+ cancel(): void;
119
+ clear(): void;
120
+ load(): Promise<void>;
121
+ nextPage(): Promise<void>;
122
+ previousPage(): Promise<void>;
123
+ save(): Promise<void>;
124
+ disable(item: Pick<{
125
+ createdAt: string;
126
+ createdByName: string;
127
+ createdByUserId: string;
128
+ disabledAt: string | null;
129
+ environment: string;
130
+ id: string;
131
+ lastUsedAt: string | null;
132
+ packageName: string;
133
+ refPattern: string | null;
134
+ repository: string;
135
+ repositoryId: string;
136
+ repositoryOwnerId: string;
137
+ revision: number;
138
+ servicePrincipalId: string;
139
+ servicePrincipalName: string;
140
+ workflow: string;
141
+ }, "id" | "revision">): Promise<void>;
142
+ };
66
143
  snapshot: () => State;
144
+ announce(notice: string): void;
67
145
  subscribe(listener: () => void): () => void;
68
146
  navigate(): void;
69
147
  dispose(): void;
@@ -73,22 +151,38 @@ export declare function createTokensController(services: ShellServices, deps: De
73
151
  selectTarget(target: Target, project: string | null): Promise<void>;
74
152
  decline(): void;
75
153
  confirm(): Promise<void>;
154
+ issueFor(target: Target, project: string | null, draft: Draft): Promise<void>;
155
+ configureProject(slug: string): void;
76
156
  issue(draft: Draft): Promise<void>;
77
157
  renew(token: Token): void;
158
+ invalidProjects(): void;
78
159
  registryOrigin: () => string;
79
160
  clientConfig(): {
80
161
  composer: string;
162
+ composerAuth: string;
81
163
  npm: string;
164
+ ciComposer: string;
165
+ ciNpm: string;
82
166
  } | null;
83
- copy(kind?: "composer" | "npm"): Promise<void>;
167
+ copy(kind?: keyof ReturnType<typeof tokenClientConfig>): Promise<void>;
84
168
  load(target?: Target, project?: string | null, after?: string): Promise<void>;
85
169
  loadPrincipals(after?: string): Promise<void>;
170
+ loadProjectPolicies(ids: string[], retry?: boolean): void;
171
+ choosePrincipal(id: string, project: string | null, organization?: boolean): void;
86
172
  identity(): Promise<void>;
87
173
  revoke(id: string, own?: boolean): Promise<void>;
88
- createPrincipal(name: string, project: string, permissions: string[]): Promise<void>;
174
+ createPrincipal(name: string, project: string, permissions: string[]): Promise<{
175
+ createdByUserId: string;
176
+ id: string;
177
+ name: string;
178
+ permissions: string[];
179
+ projectId: string | null;
180
+ revision: number;
181
+ status: "active" | "suspended";
182
+ } | undefined>;
89
183
  suspendPrincipal(principal: Principal): Promise<void>;
90
184
  };
91
- type Controller = ReturnType<typeof createTokensController>;
185
+ export type Controller = ReturnType<typeof createTokensController>;
92
186
  export interface TokenFilters {
93
187
  q: string;
94
188
  scope: string;
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/pages/tokens.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/pages/tokens.tsx"],"names":[],"mappings":"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"}