@package-broker/dist 2.0.0-rc.4 → 2.0.0-rc.5
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/node/assets/{access.62e9484517a0.js → access.def9a17dc4a8.js} +1 -1
- package/node/assets/app.ec678c27ec0a.css +2 -0
- package/node/assets/{app.c064670cdc0d.js → app.fba0d059b40b.js} +2 -2
- package/node/assets/{audit.b7c40b9dc998.js → audit.453367b59daf.js} +1 -1
- package/node/assets/{chunk.56d473a1587d.js → chunk.2c3648a5bad1.js} +1 -1
- package/node/assets/{chunk.a6d755a9789f.js → chunk.304a2b5d1663.js} +1 -1
- package/node/assets/{chunk.741aec8d1ff9.js → chunk.3f077ff17cea.js} +1 -1
- package/node/assets/{chunk.d18497920e4d.js → chunk.4721d4544d48.js} +1 -1
- package/node/assets/{chunk.6ea6bdcaa465.js → chunk.4acf8fa7653f.js} +1 -1
- package/node/assets/{chunk.28a4d8aab337.js → chunk.53134c7df4e5.js} +1 -1
- package/node/assets/{chunk.965b76812604.js → chunk.56e058d97e0f.js} +1 -1
- package/node/assets/{chunk.3fcd6998795a.js → chunk.75e1357175af.js} +1 -1
- package/node/assets/chunk.837eb41f53ef.js +1 -0
- package/node/assets/{chunk.f54ea1378c8c.js → chunk.ab1a14143dc6.js} +1 -1
- package/node/assets/{chunk.d813fefb410d.js → chunk.dc41ee9219cf.js} +1 -1
- package/node/assets/{chunk.8442124f6802.js → chunk.f0fd799728ef.js} +1 -1
- package/node/assets/chunk.fac952720b72.js +4 -0
- package/node/assets/{import.e7a1e5834631.js → import.4275bbce08ac.js} +1 -1
- package/node/assets/index.html +7 -7
- package/node/assets/manifest.json +30 -30
- package/node/assets/{notifications.19225fe12044.js → notifications.bd7d4c3f9882.js} +1 -1
- package/node/assets/{npm-login.e059678af13d.js → npm-login.d8b60e11fe87.js} +1 -1
- package/node/assets/packages.bdd474bcfc11.js +2 -0
- package/node/assets/{projects.927fe18c785c.js → projects.44006a838c67.js} +1 -1
- package/node/assets/{setup.8e977608d413.js → setup.7bc86366227c.js} +1 -1
- package/node/assets/setup.html +2 -2
- package/node/assets/sources.d95aabfbec73.js +1 -0
- package/node/assets/{tokens.6b86d8d97e07.js → tokens.4ee13a722abb.js} +1 -1
- package/node/assets.json +2 -2
- package/node/build-info.json +4 -4
- package/node/generated/manifest.json +8 -2
- package/node/migrations/core/0010_source_discovery_rules.sql +48 -0
- package/node/server.js +5214 -3989
- package/package.json +1 -1
- package/prebuilt.json +37 -36
- package/node/assets/app.45b156168495.css +0 -2
- package/node/assets/chunk.51497edc7697.js +0 -4
- package/node/assets/chunk.fd375c54b526.js +0 -1
- package/node/assets/packages.ab5ab25b1c75.js +0 -2
- package/node/assets/sources.ae50f239f80f.js +0 -1
package/package.json
CHANGED
package/prebuilt.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"package": "@package-broker/dist",
|
|
4
|
-
"version": "2.0.0-rc.
|
|
4
|
+
"version": "2.0.0-rc.5",
|
|
5
5
|
"target": "node",
|
|
6
6
|
"payload": "node",
|
|
7
|
-
"gitSha": "
|
|
7
|
+
"gitSha": "f7c38a7bc4dd6f9625fa2e899b4abacbebdf2252",
|
|
8
8
|
"lockfileSha256": "5349d3f893242687c7b1bf65b975654f1ed2808d8aa876f232ce00d285c57fe2",
|
|
9
9
|
"toolchain": {
|
|
10
10
|
"node": "v24.22.0",
|
|
@@ -13,44 +13,44 @@
|
|
|
13
13
|
"arch": "x64"
|
|
14
14
|
},
|
|
15
15
|
"plugins": {
|
|
16
|
-
"@package-broker/plugin-sso-oidc": "0.1.0-rc.
|
|
17
|
-
"@package-broker/plugin-github": "0.1.0-rc.
|
|
16
|
+
"@package-broker/plugin-sso-oidc": "0.1.0-rc.5",
|
|
17
|
+
"@package-broker/plugin-github": "0.1.0-rc.5"
|
|
18
18
|
},
|
|
19
19
|
"files": {
|
|
20
|
-
"assets.json": "sha256:
|
|
21
|
-
"assets/access.
|
|
22
|
-
"assets/app.
|
|
23
|
-
"assets/app.
|
|
24
|
-
"assets/audit.
|
|
25
|
-
"assets/chunk.
|
|
26
|
-
"assets/chunk.
|
|
27
|
-
"assets/chunk.
|
|
28
|
-
"assets/chunk.
|
|
20
|
+
"assets.json": "sha256:1c5c3c2cb98789646defd99410c385e4ca3233874b1776759fd64c22d941a655",
|
|
21
|
+
"assets/access.def9a17dc4a8.js": "sha256:def9a17dc4a8ad25f5862cdc10314ac14af3eb0eec4c379614cf8832047c938a",
|
|
22
|
+
"assets/app.ec678c27ec0a.css": "sha256:ec678c27ec0a66621f8785f06b3d2cea7414d643dabbffe81fc90d3986ffb717",
|
|
23
|
+
"assets/app.fba0d059b40b.js": "sha256:fba0d059b40b6210dde5d5b139a49a928d7fcb816937054064133fc77fcfcf24",
|
|
24
|
+
"assets/audit.453367b59daf.js": "sha256:453367b59daf1ad90cd9d1efc8020ef50b779416f65810005b206760e3582000",
|
|
25
|
+
"assets/chunk.2c3648a5bad1.js": "sha256:2c3648a5bad16523c653351180bfdd8db3e786b86ce711547c27dd4cc8eeae62",
|
|
26
|
+
"assets/chunk.304a2b5d1663.js": "sha256:304a2b5d1663940bce962a569983f56d7bdb8d40f87543dba12b9987486c2d84",
|
|
27
|
+
"assets/chunk.3f077ff17cea.js": "sha256:3f077ff17cea0f047b5ed12be42751afd3a1c6ceed2b570dd5fa554f8666300e",
|
|
28
|
+
"assets/chunk.4721d4544d48.js": "sha256:4721d4544d48ca40b8e2e0457158bea8b2d203256b452e06a30ae6a27a3f75b0",
|
|
29
|
+
"assets/chunk.4acf8fa7653f.js": "sha256:4acf8fa7653fb1ef89887efe9a126f135d7930b34653a2cae126af50d7f42483",
|
|
30
|
+
"assets/chunk.53134c7df4e5.js": "sha256:53134c7df4e5929909951b96740ef486ceb6b59166666f867ccb90abb8ff03ae",
|
|
31
|
+
"assets/chunk.56e058d97e0f.js": "sha256:56e058d97e0fe4d8a9f05ceebdba6a695e1bace2c3eab22e8ff83231b9a89b41",
|
|
29
32
|
"assets/chunk.675b635d9462.js": "sha256:675b635d94621b2318dd423a6e56fca28a16231fbcc8f994a7bba5d7702a4626",
|
|
30
|
-
"assets/chunk.
|
|
31
|
-
"assets/chunk.741aec8d1ff9.js": "sha256:741aec8d1ff9c4ad31931937569e7888cc6c8934d68dcc2ac6467e1d454853b9",
|
|
33
|
+
"assets/chunk.75e1357175af.js": "sha256:75e1357175afbcaf22019e950d42ef480eb07812e7325a570632bb5037ed4e49",
|
|
32
34
|
"assets/chunk.815f9a91c741.js": "sha256:815f9a91c74127bf0e144073570e5d3dcb53103241d4a2eeded20c549522113b",
|
|
33
|
-
"assets/chunk.
|
|
34
|
-
"assets/chunk.
|
|
35
|
-
"assets/chunk.
|
|
36
|
-
"assets/chunk.d18497920e4d.js": "sha256:d18497920e4d6b19701df38f99e2e159d0a5b7f141b8146ec4a2b71e48a96850",
|
|
37
|
-
"assets/chunk.d813fefb410d.js": "sha256:d813fefb410dfa56413ca1a8d04ecf8c038c4e5195733355b0cf9de16dcf91b8",
|
|
35
|
+
"assets/chunk.837eb41f53ef.js": "sha256:837eb41f53ef18cb18a769062db475dc368c4d30fbfb3d8404482b3f9a982564",
|
|
36
|
+
"assets/chunk.ab1a14143dc6.js": "sha256:ab1a14143dc6ed0d11ab179807c7782d983e482cb8ff92047380eae8ef20c7fe",
|
|
37
|
+
"assets/chunk.dc41ee9219cf.js": "sha256:dc41ee9219cfa651d9359216be0341c1596618330d6ebb730e2f3af89c481539",
|
|
38
38
|
"assets/chunk.e3b0c44298fc.js": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
39
|
-
"assets/chunk.
|
|
40
|
-
"assets/chunk.
|
|
41
|
-
"assets/import.
|
|
42
|
-
"assets/index.html": "sha256:
|
|
43
|
-
"assets/manifest.json": "sha256:
|
|
44
|
-
"assets/notifications.
|
|
45
|
-
"assets/npm-login.
|
|
46
|
-
"assets/packages.
|
|
47
|
-
"assets/projects.
|
|
48
|
-
"assets/setup.
|
|
49
|
-
"assets/setup.html": "sha256:
|
|
50
|
-
"assets/sources.
|
|
51
|
-
"assets/tokens.
|
|
52
|
-
"build-info.json": "sha256:
|
|
53
|
-
"generated/manifest.json": "sha256:
|
|
39
|
+
"assets/chunk.f0fd799728ef.js": "sha256:f0fd799728ef84a4d094b18c389420db2ba65be6401323b0791d955299d03a3c",
|
|
40
|
+
"assets/chunk.fac952720b72.js": "sha256:fac952720b7268b5c732e00cadc087aebced97b5ed010114db4226229ca19654",
|
|
41
|
+
"assets/import.4275bbce08ac.js": "sha256:4275bbce08ac7157810bc5666d9053cfae6e821258e5e0656971fd323e5178f0",
|
|
42
|
+
"assets/index.html": "sha256:49bd08febf87252a9365321142056a923f0ed1a268c9407bdb368cb8e0b09c10",
|
|
43
|
+
"assets/manifest.json": "sha256:a5e3b02bf80d643ed42b7ef25351d01a380f248645cb21f6393d1f832ebda80e",
|
|
44
|
+
"assets/notifications.bd7d4c3f9882.js": "sha256:bd7d4c3f9882ad02885ea81682a7a876f4483e9f5ed250080dd5a03c3d102ff2",
|
|
45
|
+
"assets/npm-login.d8b60e11fe87.js": "sha256:d8b60e11fe87dad23a59b345f2f2d4ae3a74c962aa580dbd30ec3a85ea46bfc2",
|
|
46
|
+
"assets/packages.bdd474bcfc11.js": "sha256:bdd474bcfc11eadfa496c51b35cf73bd5d9ec08202cc04ac214f6addd2ee7f2e",
|
|
47
|
+
"assets/projects.44006a838c67.js": "sha256:44006a838c67bad377d61a5b6aea2431c8beb6d9372de578479b2d9d7603c2fe",
|
|
48
|
+
"assets/setup.7bc86366227c.js": "sha256:7bc86366227ccb72833667ed7beb64d621cbef9b33cdd1c38a10155967a1ea30",
|
|
49
|
+
"assets/setup.html": "sha256:24b494ce35321a9f039eeb6e1cf912550451777556f28478004612642be492f8",
|
|
50
|
+
"assets/sources.d95aabfbec73.js": "sha256:d95aabfbec738516e1fff2302816a480fcac02cf7e55e324c0fcd729a9570f6a",
|
|
51
|
+
"assets/tokens.4ee13a722abb.js": "sha256:4ee13a722abb9266061483757956f7a6569d2b5a7ca8ea49b01290b4b6f39a60",
|
|
52
|
+
"build-info.json": "sha256:7aba0387be2c143555f0ca6381435f27cfaf23f789e2630eea0735dfb5bc907e",
|
|
53
|
+
"generated/manifest.json": "sha256:e92c66aee9db94fdeeb5b582db1fd2be16410b6227298a31107bfee4913adbfc",
|
|
54
54
|
"migrations/core/0001_init.sql": "sha256:a1005fb24893ffe9174ae1f1642b3f1270d853476183a47ce2b5e4d32471e2fb",
|
|
55
55
|
"migrations/core/0002_npm_publish.sql": "sha256:1beaf4be82bc086b014d5999d85e37b2ead8b04acc5db98d6720d08d5d5368cb",
|
|
56
56
|
"migrations/core/0003_npm_identity.sql": "sha256:1b7ee8616cdbf062cea7fd10458b8df9739cb19323ce765f2f2b3068552288fa",
|
|
@@ -60,7 +60,8 @@
|
|
|
60
60
|
"migrations/core/0007_npm_vcs_build_outcomes.sql": "sha256:f8434d0e092809b35c472a2f1ba1b317836415694e909f929df3e6559f2e7891",
|
|
61
61
|
"migrations/core/0008_registry_policy.sql": "sha256:9ba4c9df12b3b17decaea7a7c3ed41222dbb6ffba0af1b53a054e3a6b48d72cc",
|
|
62
62
|
"migrations/core/0009_npm_notifications.sql": "sha256:454ba1748f98b35909db6003b73cad587de21ffb34e37d1991d62a8373ae4f09",
|
|
63
|
-
"
|
|
63
|
+
"migrations/core/0010_source_discovery_rules.sql": "sha256:c2043eb38305217fa85e35a361f1165e568e46d440e4e1efebf4ee64b85af6cf",
|
|
64
|
+
"server.js": "sha256:85d4e5fe4f6e966c6730ad648c38f3447b59d4022f542b5b9945c935ce0690fa"
|
|
64
65
|
},
|
|
65
66
|
"artifactSha256": null
|
|
66
67
|
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
2
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-900:oklch(41.4% .112 45.904);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-800:oklch(43.2% .095 166.913);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-700:oklch(37.3% .034 259.733);--color-neutral-50:oklch(98.5% 0 none);--color-neutral-100:oklch(97% 0 none);--color-neutral-200:oklch(92.2% 0 none);--color-neutral-300:oklch(87% 0 none);--color-neutral-500:oklch(55.6% 0 none);--color-neutral-600:oklch(43.9% 0 none);--color-neutral-700:oklch(37.1% 0 none);--color-neutral-900:oklch(20.5% 0 none);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-5xl:64rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--leading-snug:1.375;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}body{color:#171717;background:#fafafa;font-size:14px}:focus-visible{outline-offset:2px;outline:2px solid #155dfc}h1{letter-spacing:-.01em}}@layer components;@layer utilities{.\@container{container-type:inline-size}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.top-4{top:calc(var(--spacing) * 4)}.right-4{right:calc(var(--spacing) * 4)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-4{margin:calc(var(--spacing) * 4)}.m-auto{margin:auto}.mx-auto{margin-inline:auto}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-4{margin-block:calc(var(--spacing) * 4)}.my-6{margin-block:calc(var(--spacing) * 6)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mr-auto{margin-right:auto}.mb-1{margin-bottom:var(--spacing)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.h-4{height:calc(var(--spacing) * 4)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-auto{height:auto}.h-dvh{height:100dvh}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[90dvh\]{max-height:90dvh}.max-h-none{max-height:none}.min-h-0{min-height:0}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-screen{min-height:100vh}.w-4{width:calc(var(--spacing) * 4)}.w-11{width:calc(var(--spacing) * 11)}.w-36{width:calc(var(--spacing) * 36)}.w-\[calc\(100\%_-_2rem\)\]{width:calc(100% - 2rem)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0}.min-w-32{min-width:calc(var(--spacing) * 32)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0{gap:0}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}.self-end{align-self:flex-end}.justify-self-start{justify-self:flex-start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-amber-300{border-color:var(--color-amber-300)}.border-blue-200{border-color:var(--color-blue-200)}.border-emerald-200{border-color:var(--color-emerald-200)}.border-gray-400{border-color:var(--color-gray-400)}.border-neutral-200{border-color:var(--color-neutral-200)}.border-neutral-300{border-color:var(--color-neutral-300)}.border-red-200{border-color:var(--color-red-200)}.border-red-300{border-color:var(--color-red-300)}.border-transparent{border-color:#0000}.bg-amber-50{background-color:var(--color-amber-50)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-700{background-color:var(--color-blue-700)}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-neutral-50{background-color:var(--color-neutral-50)}.bg-neutral-100{background-color:var(--color-neutral-100)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-700{background-color:var(--color-red-700)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:0}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.pt-0{padding-top:0}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-16{padding-right:calc(var(--spacing) * 16)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-\[max\(1rem\,env\(safe-area-inset-bottom\)\)\]{padding-bottom:max(1rem, env(safe-area-inset-bottom))}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-900{color:var(--color-amber-900)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-emerald-800{color:var(--color-emerald-800)}.text-gray-700{color:var(--color-gray-700)}.text-neutral-500{color:var(--color-neutral-500)}.text-neutral-600{color:var(--color-neutral-600)}.text-neutral-700{color:var(--color-neutral-700)}.text-neutral-900{color:var(--color-neutral-900)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-red-900{color:var(--color-red-900)}.text-white{color:var(--color-white)}.lowercase{text-transform:lowercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.accent-blue-700{accent-color:var(--color-blue-700)}.opacity-70{opacity:.7}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.\[image-rendering\:pixelated\]{image-rendering:pixelated}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.placeholder\:text-neutral-500::placeholder{color:var(--color-neutral-500)}.backdrop\:bg-black\/50::backdrop{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.backdrop\:bg-black\/50::backdrop{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.open\:flex:is([open],:popover-open,:open){display:flex}@media (hover:hover){.hover\:bg-blue-800:hover{background-color:var(--color-blue-800)}.hover\:bg-neutral-50:hover{background-color:var(--color-neutral-50)}.hover\:bg-neutral-100:hover{background-color:var(--color-neutral-100)}.hover\:bg-neutral-200:hover{background-color:var(--color-neutral-200)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-800:hover{background-color:var(--color-red-800)}.hover\:text-red-800:hover{color:var(--color-red-800)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-blue-600:focus{--tw-ring-color:var(--color-blue-600)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-blue-600:focus-visible{--tw-ring-color:var(--color-blue-600)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.has-checked\:border-blue-700:has(:checked){border-color:var(--color-blue-700)}.has-checked\:bg-blue-50:has(:checked){background-color:var(--color-blue-50)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[highlighted\]\:bg-neutral-100[data-highlighted]{background-color:var(--color-neutral-100)}.data-\[state\=active\]\:bg-white[data-state=active]{background-color:var(--color-white)}.data-\[state\=active\]\:text-neutral-900[data-state=active]{color:var(--color-neutral-900)}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media (min-width:40rem){.sm\:h-auto{height:auto}.sm\:max-h-\[90dvh\]{max-height:90dvh}.sm\:min-h-8{min-height:calc(var(--spacing) * 8)}.sm\:w-\[calc\(100\%_-_2rem\)\]{width:calc(100% - 2rem)}.sm\:w-auto{width:auto}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:grid-cols-\[1fr_2fr_auto\]{grid-template-columns:1fr 2fr auto}.sm\:flex-row{flex-direction:row}.sm\:rounded-lg{border-radius:var(--radius-lg)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:py-1{padding-block:var(--spacing)}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (min-width:48rem){.md\:hidden{display:none}}@media (min-width:64rem){.lg\:not-sr-only{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:hidden{display:none}.lg\:w-48{width:calc(var(--spacing) * 48)}.lg\:w-auto{width:auto}.lg\:max-w-5xl{max-width:var(--container-5xl)}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.\[\&_button\]\:min-h-11 button{min-height:calc(var(--spacing) * 11)}.\[\&_button\]\:min-w-11 button{min-width:calc(var(--spacing) * 11)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}}.shell-header{background:#fff;border-bottom:1px solid #e5e5e5;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.shell-brand{white-space:nowrap;font-size:15px}.shell-nav{border-top:1px solid #e5e5e5;order:10;width:100%;padding-top:8px;display:none}.shell-nav.is-open{display:grid}.shell-nav-group{margin:0;padding:0;list-style:none}.shell-nav-divider{border:0;border-top:1px solid #e5e5e5;margin:8px 0}.shell-nav a{padding:10px 12px}@media (min-width:1024px){.shell-header{flex-wrap:nowrap}.shell-nav,.shell-nav.is-open{border:0;flex-wrap:wrap;flex:1;order:0;width:auto;min-width:0;padding:0;display:flex}.shell-nav-group{flex-wrap:wrap;align-items:center;display:flex}.shell-nav-administration{margin-left:auto}.shell-nav-divider{display:none}.shell-nav a{padding:6px 10px}}@media (max-width:420px){.shell-brand{white-space:normal;max-width:62px;line-height:1.2}}.list-card{background:#fff;border:1px solid #e5e5e5;border-radius:6px;min-width:0;overflow:hidden}.column-options{color:#525252;border-bottom:1px solid #e5e5e5;padding:10px 16px}.column-options summary{cursor:pointer}.card-sort{border-bottom:1px solid #e5e5e5;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 16px;display:none}.card-sort select,.column-options select{background:#fff;border:1px solid #d4d4d4;border-radius:4px;min-width:0;max-width:100%;padding:4px}.table-container{width:100%;min-width:0;container:broker-table/inline-size}.table-scroll{background-color:#0000;background-image:linear-gradient(90deg,#fff 30%,#0000),linear-gradient(270deg,#fff 30%,#0000),linear-gradient(90deg,#d4d4d4,#0000),linear-gradient(270deg,#d4d4d4,#0000);background-position:0,100%,0,100%;background-repeat:no-repeat;background-size:32px 100%,32px 100%,12px 100%,12px 100%;background-attachment:local,local,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;max-width:100%;overflow-x:auto}.table-hint{color:#525252;border-bottom:1px solid #e5e5e5;padding:6px 12px;font-size:12px}.responsive-table{border-collapse:separate;border-spacing:0}.responsive-table th{white-space:nowrap}.responsive-table th:first-child,.responsive-table td:first-child{z-index:1;background:#fff;position:sticky;left:0;box-shadow:1px 0 #e5e5e5}.responsive-table td{overflow-wrap:anywhere}.responsive-table tr[aria-selected=true] td{background:#eff6ff}.responsive-table button{white-space:normal;overflow-wrap:anywhere;max-width:100%}@container broker-table (max-width:1140px){.responsive-table .priority-3:not([data-visibility=visible]){display:none}}@container broker-table (max-width:960px){.responsive-table .priority-2:not([data-visibility=visible]){display:none}}@container broker-table (max-width:640px){.card-sort{display:flex}.table-hint{display:none}.responsive-table thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.responsive-table,.responsive-table tbody{width:100%;display:block}.responsive-table tbody tr{padding:10px 16px;display:block}.responsive-table td,.responsive-table td.priority-2:not([data-visibility=visible]),.responsive-table td.priority-3:not([data-visibility=visible]){border:0;justify-content:space-between;align-items:baseline;gap:12px;padding:4px 0;display:flex}.responsive-table td:before{content:attr(data-label);color:#525252;flex:0 0 34%;font-size:12px}.responsive-table .cell-value{text-align:right;flex:1;min-width:0}.responsive-table td:first-child{box-shadow:none;padding-bottom:8px;position:static}.responsive-table td:first-child:before{display:none}.responsive-table td:first-child .cell-value{text-align:left}}.filter-toolbar form{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.filter-toolbar form>div{flex:160px;gap:6px;min-width:0;display:grid}.filter-chip{background:#fff;border:1px solid #d4d4d4;border-radius:999px;align-items:center;gap:4px;max-width:100%;padding-left:10px;font-size:12px;display:inline-flex}@media (max-width:767px){.filter-toolbar{background:#fff;border:1px solid #e5e5e5;border-radius:6px}.filter-toolbar form{margin:0;padding:0 12px 12px}.filter-toolbar form>div{flex-basis:100%}.filter-toolbar input,.filter-toolbar select{font-size:16px}}.list-state{text-align:center;color:#525252;border:1px dashed #d4d4d4;border-radius:8px;justify-items:center;gap:8px;margin:16px 0;padding:36px 16px;display:grid}.list-state strong{color:#171717;font-weight:500}.list-state-error{background:#fef2f2;border-style:solid;border-color:#ffc9c9}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px;display:grid}.detail-group{background:#fff;border:1px solid #e5e5e5;border-radius:6px;min-width:0;padding:16px}.detail-group h3{color:#525252;text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px;font-size:12px;font-weight:600}.detail-list{grid-template-columns:max-content minmax(0,1fr);gap:8px 20px;display:grid}.detail-list dt{color:#525252}.detail-list dd{overflow-wrap:anywhere;min-width:0}@media (max-width:480px){.detail-list{grid-template-columns:minmax(0,1fr);gap:2px}.detail-list dd{margin-bottom:8px}}[data-overlay-host]{z-index:50;position:relative}.menu-positioner{z-index:50}.menu-popup{max-width:var(--available-width);max-height:var(--available-height);overscroll-behavior:contain;overflow:auto}.product-footer{color:#525252;text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 16px;padding:16px;font-size:12px;line-height:16px;display:flex}.product-footer a{text-underline-offset:2px;align-items:center;min-height:44px;text-decoration:underline;display:inline-flex}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{a as Be}from"./chunk.675b635d9462.js";import{b as We}from"./chunk.28a4d8aab337.js";import{a as Xe,b as Je}from"./chunk.56d473a1587d.js";import{b as Ye}from"./chunk.8442124f6802.js";import{a as he}from"./chunk.a6d755a9789f.js";import{a as Ke,b as Ne,c as Q}from"./chunk.965b76812604.js";import{a as ue}from"./chunk.d813fefb410d.js";import{a as ie}from"./chunk.741aec8d1ff9.js";import{A as fe,B as X,C as J,D as U,E as $,F as H,K as Ge,c as B,d as Ve,g as ae,j as Ue,p as _,q as xe,r as _e,s as Ee,t as Pe,x as K,y as Y,z as W}from"./chunk.fd375c54b526.js";var Ae="Sync requested. Waiting for a worker. Sync continues in the background.";function Re(t,e,l){return t===200?`${e} is already available from ${l}.`:`${e}: ${Ae}`}function De(t){return t.status===202?{ok:!0,status:202,data:void 0}:t}var Qe="For proxy sources, packages appear when a client first requests them.";function mt(t,e){return t.sync?.generation!==e.sync?.generation||t.status!==e.status||t.lastPolledAt!==e.lastPolledAt||t.lastSuccessAt!==e.lastSuccessAt||t.lastError!==e.lastError}function Le(t,e){return e.sync&&(e.sync.listing||e.sync.queued+e.sync.running+(e.sync.retrying??0)>0)?"pending":mt(t,e)}function Ze(t,e=typeof document>"u"?void 0:document){let l=Date.now()+6e5,s=!1,a=0,m=!1,o=2e3,h,w=setTimeout(()=>b(),6e5),b=()=>{s=!0,clearTimeout(h),clearTimeout(w),e?.removeEventListener("visibilitychange",S)},S=()=>{e?.hidden&&b()},i=()=>{if(s||e?.hidden||Date.now()>=l||!m&&a>=15){b();return}h=setTimeout(()=>{if(s||e?.hidden||Date.now()>=l){b();return}a++,t().then(g=>{g==="pending"?(a=0,m=!0,o=Math.min(o*2,3e4)):(m=!1,o=2e3),g===!0?b():i()},b)},o)};return e?.addEventListener("visibilitychange",S),i(),b}var R=B(ae(),1);function et({source:t,busy:e,fieldError:l,alert:s,onSubmit:a,onClose:m}){return(0,R.jsx)(K,{open:!0,onOpenChange:o=>{!o&&!e&&m()},children:(0,R.jsxs)(Y,{onCancel:o=>{e&&o.preventDefault()},children:[(0,R.jsxs)(W,{children:[(0,R.jsx)(X,{children:"Add package"}),(0,R.jsxs)(J,{children:["Request a package from ",t.name," for this project."]})]}),(0,R.jsxs)("form",{className:"grid gap-3",onSubmit:o=>{o.preventDefault(),e||a(new FormData(o.currentTarget).get("name")?.toString()??"")},children:[(0,R.jsx)(H,{htmlFor:"add-package-name",children:"Package name"}),(0,R.jsx)($,{id:"add-package-name",name:"name",required:!0,maxLength:428,placeholder:t.ecosystem==="composer"?"vendor/package":"@scope/package",disabled:e,"aria-invalid":l?!0:void 0,"aria-describedby":l?"add-package-error":void 0}),l?(0,R.jsx)("p",{id:"add-package-error",role:"alert",children:l}):null,s?(0,R.jsx)("p",{role:"alert",children:s}):null,(0,R.jsxs)(fe,{children:[(0,R.jsx)(_,{type:"button",variant:"outline",disabled:e,onClick:m,children:"Cancel"}),(0,R.jsx)(_,{type:"submit",disabled:e,children:e?"Requesting\u2026":"Add package"})]})]})]})})}var D=B(Ve(),1);var q=B(Ve(),1);var u=B(ae(),1),tt={github:"GitHub",git:"Git over HTTP(S)",ssh:"Git over SSH"},ft=["github"];function ht(t){return Object.keys(tt).filter(e=>t.includes(e)).map(e=>[e,tt[e]])}var rt={composer:["packagist_proxy","composer_repository","vcs"],npm:["npmjs_proxy","npm_registry","hosted","vcs"]},Ie={packagist_proxy:"https://repo.packagist.org",npmjs_proxy:"https://registry.npmjs.org"},z={packagist_proxy:"Packagist proxy",composer_repository:"Composer repository",vcs:"Git repository",npmjs_proxy:"npmjs proxy",npm_registry:"Private npm registry",hosted:"Hosted repository"},bt={packagist_proxy:"Fetch public Composer packages on demand.",composer_repository:"Import selected packages from Satis, Private Packagist, or another Composer repository.",vcs:"Import a Composer or npm package from the root of a GitHub or Git repository.",npmjs_proxy:"Fetch public npm packages on demand.",npm_registry:"Fetch packages in selected scopes from another npm registry.",hosted:"Reserve private npm package names and publish packages to this broker."},Z={requirePublishApproval:"Require publish approval",name:"Source name",ecosystem:"Ecosystem",type:"Source type",url:"Repository URL",userAgent:"User-Agent override",pollIntervalSeconds:"Sync interval (seconds)",removalPolicy:"When a package disappears upstream",defaultVisibleToNewProjects:"Visible to new projects",retentionDaysOverride:"Archive retention (days)","config/provider":"Repository provider","config/repository":"GitHub repository","config/installationId":"GitHub App installation ID",githubAuthentication:"GitHub authentication","config/packageName":"Package name (optional)","config/refs/branches":"Branches to import","config/refs/tags":"Import tags","config/selection/packages":"Package names (one per line)","config/selection/patterns":"Package patterns (one per line)","config/selection/expandPatterns":"Expand patterns","config/distHosts":"Additional archive hosts","config/mirrorsFallback":"Try repository mirrors if an archive download fails","config/scopes":"Package scopes (one per line)","config/githubToken":"Use GitHub token"},oe={requirePublishApproval:"Choose whether new publishes require approval.",name:"Enter a source name.",ecosystem:"Choose an ecosystem.",type:"Choose a source type.",url:"Enter a valid HTTP or HTTPS URL without credentials, a query, or a fragment.",userAgent:"Enter a valid User-Agent header without line breaks.",pollIntervalSeconds:"Enter a whole number of seconds greater than 0.",removalPolicy:"Choose what happens when a package disappears upstream.",defaultVisibleToNewProjects:"Choose whether this source is visible to new projects.",retentionDaysOverride:"Enter a whole number of days that does not shorten organization retention.","config/provider":"Choose a repository provider this broker supports.","config/repository":"Enter a valid repository for the selected provider: owner/repository for GitHub, or a clone URL for Git.","config/installationId":"Enter a positive whole-number installation ID.",githubAuthentication:"Choose GitHub App or Personal access token.","config/packageName":"Enter a package name matching the source ecosystem.","config/refs/branches":"Enter valid branch names, one per line, without duplicates.","config/refs/tags":"Choose whether to import tags.","config/selection/packages":"Enter valid Composer package names, one per line, without duplicates.","config/selection/patterns":"Enter valid package patterns, such as acme/*, without duplicates.","config/selection/expandPatterns":"Choose whether to expand patterns.","config/distHosts":"Enter hostnames only, one per line, without schemes, paths, or duplicates.","config/mirrorsFallback":"Choose whether to try repository mirrors.","config/scopes":"Enter at least one scope, such as @acme, one per line without duplicates.","config/githubToken":"Save a bearer credential before enabling the GitHub token option."},je={requirePublishApproval:"New versions wait for approval before installation. Versions already held remain held when this setting is turned off.",pollIntervalSeconds:"How often to check for upstream changes. 300 seconds = 5 minutes.",retentionDaysOverride:"Leave blank to use the organization setting. An override can only lengthen retention.","config/distHosts":"One hostname per line. Archive downloads may come from these hosts; the source credential is also sent to them.","config/selection/packages":"Packages matching either list are selected. Empty lists select no packages.","config/scopes":"One scope per line, including @. Only these scopes use this registry. Register @scope/* for each scope before enabling the source.","config/packageName":"Leave blank to use the root manifest name (composer.json or package.json). For npm, this must match the name in package.json.","config/refs/branches":"One branch name per line. Leave blank to import no branches.","config/installationId":"Enter the numeric installation ID for the account that owns this repository."},yt={userAgent:"Use broker default",retentionDaysOverride:"Use organization default","config/selection/packages":"acme/payments","config/selection/patterns":"acme/*","config/scopes":"@acme","config/distHosts":"downloads.example.com","config/packageName":"acme/payments","config/refs/branches":"main","config/installationId":"12345678"};function it(t){let e={};for(let l of t){let s=l.path.replace(/^\/body\//,"").replace(/^\//,""),a=Object.keys(Z).find(m=>s===m||s.startsWith(`${m}/`));a&&(e[a]=oe[a]??"Review this setting.")}return e}function vt(t,e,l,s=null,a=s?ye(s):null){let m={},o=b=>String(t.get(b)??"").trim(),h=(b,S)=>{let i=Number(o(b));(!o(b)||!Number.isSafeInteger(i)||i<S)&&(m[b]=oe[b]??"Review this setting.")};!l&&!o("name")&&(m.name=oe.name),(e==="composer_repository"||e==="npm_registry")&&(!l||o("url")!==String(a?.get("url")??""))&&!o("url")&&(m.url=oe.url),h("pollIntervalSeconds",1),o("retentionDaysOverride")&&h("retentionDaysOverride",0);let w=!a||Object.keys(Z).some(b=>(b.startsWith("config/")||e==="vcs"&&b==="githubAuthentication")&&String(t.get(b)??"")!==String(a.get(b)??""));return ot(s,t)&&(w||t.has("replaceConfig"))&&(t.has("config/provider")||t.has("config/scopes")||t.has("config/selection/packages")||!l)&&(e==="composer_repository"&&!o("config/selection/packages")&&!o("config/selection/patterns")&&(m["config/selection/packages"]="Add at least one package name or pattern"),e==="npm_registry"&&!o("config/scopes")&&(m["config/scopes"]=oe["config/scopes"]),e==="vcs"&&!o("config/repository")&&(m["config/repository"]=oe["config/repository"]),e==="vcs"&&o("config/provider")==="github"&&o("githubAuthentication")!=="token"&&h("config/installationId",1)),m}function Te(t,e){let l=Number(t);if(!t.trim()||!Number.isSafeInteger(l)||l<e)throw new Error("Enter valid whole numbers for the numeric fields.");return l}function nt(t,e,l,s=!0){let a=w=>String(t.get(w)??""),m=w=>t.has(w),o=w=>a(w).split(/\r?\n/).map(b=>b.trim()).filter(Boolean),h={pollIntervalSeconds:Te(a("pollIntervalSeconds"),1),removalPolicy:a("removalPolicy")};if(e==="hosted"&&(h.requirePublishApproval=m("requirePublishApproval")),h.defaultVisibleToNewProjects=m("defaultVisibleToNewProjects"),h.retentionDaysOverride=a("retentionDaysOverride").trim()===""?null:Te(a("retentionDaysOverride"),0),h.userAgent=a("userAgent")||null,e!=="vcs"&&(h.url=a("url")||null),s&&(!l||t.has("config/provider")||t.has("config/scopes")||t.has("config/selection/packages")||e==="packagist_proxy"||e==="npmjs_proxy"))switch(e){case"vcs":h.config={provider:a("config/provider"),repository:a("config/repository"),...a("config/provider")==="github"&&a("githubAuthentication")!=="token"?{installationId:Te(a("config/installationId"),1)}:{},...a("config/packageName")?{packageName:a("config/packageName")}:{},refs:{branches:o("config/refs/branches"),tags:m("config/refs/tags")}};break;case"composer_repository":h.config={selection:{packages:o("config/selection/packages"),patterns:o("config/selection/patterns"),expandPatterns:m("config/selection/expandPatterns")},distHosts:o("config/distHosts"),mirrorsFallback:m("config/mirrorsFallback")};break;case"npm_registry":h.config={scopes:o("config/scopes"),distHosts:o("config/distHosts")};break;case"packagist_proxy":h.config={githubToken:l&&m("config/githubToken")};break;case"hosted":case"npmjs_proxy":h.config={};break}return h}function ot(t,e){return t===null||t.config!==void 0&&t.configComplete!==!1||e.has("replaceConfig")}function kt(t,e,l,s,a=s?ye(s):null){let m=nt(t,l,s!==null,ot(s,t));if(!s)return{name:String(t.get("name")??""),ecosystem:e,type:l,...m};let o=nt(a??ye(s),l,!0,s.config!==void 0&&s.configComplete!==!1);return Object.fromEntries(Object.entries(m).filter(([h,w])=>JSON.stringify(w)!==JSON.stringify(o[h])))}function be(t,e){let l=t?.config;for(let s of e.split("/")){if(typeof l!="object"||l===null)return;l=l[s]}return l}function ye(t){let e=new FormData;for(let l of Object.keys(Z)){let s=l.startsWith("config/")?be(t,l.slice(7)):t[l];typeof s=="boolean"?s&&e.set(l,"on"):Array.isArray(s)?e.set(l,s.join(`
|
|
2
|
-
`)):s!=null&&e.set(l,String(s))}return(t.type==="packagist_proxy"||t.type==="npmjs_proxy")&&e.set("url",Ie[t.type]),e.set("pollIntervalSeconds",String(t.pollIntervalSeconds)),e.set("removalPolicy",t.removalPolicy),e.set("githubAuthentication",t.githubAuthentication??(be(t,"installationId")?"app":"token")),e}function Oe(t){return[...new Set(t.split(/\r?\n/).map(e=>e.trim()).filter(e=>/^@[a-z0-9][a-z0-9._~-]*$/.test(e)))].map(e=>`${e}/*`)}function at(t,e){if(!t)return;let l=Array.from(t.elements).find(a=>(a.getAttribute("name")??"")in e);if(!l)return;let s=l.closest("details");s&&(s.open=!0),l.focus()}function st({source:t,busy:e,errors:l,alert:s,onSubmit:a,onClose:m,vcsProviders:o=ft,initialType:h,initialProvider:w,organization:b=!0}){let[S,i]=(0,q.useState)(t?.ecosystem??(h==="hosted"?"npm":"composer")),[g,L]=(0,q.useState)(t?.type??h??"packagist_proxy"),E=ht(o),C=E[0]?.[0]??"github",[T,ee]=(0,q.useState)(be(t,"provider")??w??C),te=E.some(([p])=>p===T),V=g==="vcs"&&(E.length===0||!te);(0,q.useEffect)(()=>{!t&&!te&&E.length>0&&ee(C)},[t,te,E.length,C]);let[I,n]=(0,q.useState)(t?.githubAuthentication??(t?be(t,"installationId")?"app":"token":"app")),[d,c]=(0,q.useState)(""),f=t?ye(t):null,y=t!==null&&(t.configComplete===!1||t.config===void 0),[v,N]=(0,q.useState)(!1),[re,M]=(0,q.useState)({}),F=(0,q.useRef)(null),P={...l,...re},j=t!==null,x=g==="packagist_proxy"||g==="npmjs_proxy",ge=!V&&(!y||v);(0,q.useEffect)(()=>{at(F.current,l)},[l]);function ne(p){return[je[p]&&`source-${p}-help`,P[p]&&`source-${p}-error`].filter(Boolean).join(" ")||void 0}function Se(p){return(0,u.jsxs)(u.Fragment,{children:[je[p]?(0,u.jsx)("p",{id:`source-${p}-help`,className:"text-sm text-neutral-600",children:je[p]}):null,P[p]?(0,u.jsx)("p",{id:`source-${p}-error`,className:"text-sm text-red-700",children:P[p]}):null]})}function le(p,k,A=Z[p]){return(0,u.jsxs)("div",{className:"grid gap-1",children:[(0,u.jsx)(H,{htmlFor:`source-${p}`,children:A}),k,Se(p)]},p)}function O(p,k={}){let A={id:`source-${p}`,name:p,required:k.required,defaultValue:k.value??f?.get(p)?.toString(),onChange:p==="config/scopes"?ce=>c(ce.currentTarget.value):void 0,placeholder:k.placeholder??yt[p],"aria-invalid":!!P[p],"aria-describedby":ne(p)};return le(p,k.multiline?(0,u.jsx)(Je,{...A,rows:3,className:"w-full rounded-md border border-neutral-300 bg-white px-3 py-2 text-base sm:text-sm"}):(0,u.jsx)($,{...A,className:"h-11 text-base sm:text-sm",type:k.number?"number":"text",inputMode:k.number?"numeric":void 0,min:k.minimum,max:k.number?Number.MAX_SAFE_INTEGER:void 0,step:k.number?1:void 0,maxLength:p==="url"?2048:void 0}),`${k.label??Z[p]}${k.required?" (required)":""}`)}function G(p,k=Z[p],A,ce){return(0,u.jsxs)("div",{className:"grid gap-1",children:[(0,u.jsxs)(H,{className:"flex min-h-11 items-center gap-2",htmlFor:`source-${p}`,children:[(0,u.jsx)("input",{type:"checkbox",id:`source-${p}`,name:p,defaultChecked:t?f?.has(p):ce,onChange:A?Ce=>A(Ce.currentTarget.checked):void 0,"aria-invalid":!!P[p],"aria-describedby":ne(p)}),k]}),Se(p)]},p)}function we(p,k,A,ce,Ce=!1){return(0,u.jsxs)("fieldset",{className:"grid gap-1","aria-describedby":ne(p),"aria-invalid":!!P[p],children:[(0,u.jsx)("legend",{className:"text-sm font-medium",children:Z[p]}),(0,u.jsx)("div",{className:Ce?"flex gap-4":"grid gap-1",children:A.map(([me,gt,ze])=>(0,u.jsxs)("label",{className:"flex min-h-11 cursor-pointer items-center gap-2 py-1",children:[(0,u.jsx)("input",{type:"radio",name:p,value:me,checked:k===me,onChange:()=>ce(me),"aria-invalid":!!P[p],"aria-describedby":ne(p)}),(0,u.jsxs)("span",{children:[(0,u.jsx)("span",{className:"text-sm font-medium",children:gt}),ze?(0,u.jsx)("span",{className:"block text-sm text-neutral-600",children:ze}):null]})]},me))}),Se(p)]})}let pt={packagist_proxy:"Packagist",npmjs_proxy:"npmjs",composer_repository:"Acme Composer",npm_registry:"Acme npm",vcs:"Acme payments",hosted:""}[g];return(0,u.jsx)(K,{open:!0,onOpenChange:p=>{!p&&!e&&m()},children:(0,u.jsxs)(Y,{variant:"source",onCancel:p=>{e&&p.preventDefault()},children:[(0,u.jsxs)(W,{className:"shrink-0 p-6 pr-16",children:[(0,u.jsx)(X,{children:j?"Edit source":"Add source"}),(0,u.jsx)(J,{children:j?`${t.name} \xB7 ${S==="composer"?"Composer":"npm"} \xB7 ${z[g]}. Name, ecosystem and source type cannot be changed.`:"Add an upstream source for this organization or project."})]}),(0,u.jsxs)("form",{noValidate:!0,ref:F,className:"flex min-h-0 min-w-0 flex-1 flex-col",onSubmit:p=>{if(p.preventDefault(),e)return;let k=new FormData(p.currentTarget),A=vt(k,g,j,t,f);if(M(A),Object.keys(A).length){at(F.current,A);return}a(kt(k,S,g,t,f))},onInvalidCapture:p=>{let A=p.target.closest("details");A&&(A.open=!0)},children:[(0,u.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 pb-6",children:[s||Object.keys(P).length?(0,u.jsx)("p",{role:"alert",className:"mb-4 text-sm text-red-700",children:Object.keys(P).length?"Review the highlighted fields.":s}):null,t?(0,u.jsxs)("dl",{className:"detail-list mb-4","aria-label":"Source identity",children:[(0,u.jsx)("dt",{children:"Source ID"}),(0,u.jsx)("dd",{children:(0,u.jsx)(U,{value:t.id,label:"source ID"})}),(0,u.jsx)("dt",{children:"Source URL"}),(0,u.jsx)("dd",{className:"break-all",children:de(t.url)??"No displayable URL"}),(0,u.jsx)("dt",{children:"Credential"}),(0,u.jsx)("dd",{children:t.hasCredential?"credential set \xB7 write-only":"No credential set"}),"attached"in t?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("dt",{children:"Attached to this project"}),(0,u.jsx)("dd",{children:t.attached?"Yes":"No"})]}):null]}):null,(0,u.jsxs)("fieldset",{disabled:e,className:"grid min-w-0 gap-4",children:[j?(0,u.jsx)(u.Fragment,{children:V?(0,u.jsx)("p",{className:"text-sm",children:`Source type: ${z[g]}. This broker cannot change its repository settings.`}):null}):(0,u.jsxs)(u.Fragment,{children:[we("ecosystem",S,[["composer","Composer"],["npm","npm"]],p=>{let k=p;i(k),L(rt[k][0]),c(""),M({})},!0),we("type",g,rt[S].filter(p=>(p!=="vcs"||E.length>0)&&(p!=="hosted"||b)).map(p=>[p,z[p],bt[p]]),p=>{L(p),c(""),ee(C),n("app"),M({})}),O("name",{required:!0,placeholder:pt})]}),x?(0,u.jsxs)("p",{className:"break-words text-sm",children:["Upstream URL: ",Ie[g]]}):null,x?(0,u.jsx)("input",{type:"hidden",name:"url",value:Ie[g]}):null,!x&&g!=="vcs"&&g!=="hosted"?(0,u.jsx)("div",{children:O("url",{required:!j||t.url!==null,value:t?.url??"",label:g==="npm_registry"?"Registry URL":"Repository URL",placeholder:g==="npm_registry"?"https://npm.example.com":"https://composer.example.com"})},`network:${g}`):null,y&&!V?(0,u.jsxs)("div",{className:"grid gap-1",children:[(0,u.jsx)("p",{className:"text-sm text-neutral-600",children:"Some saved settings cannot be displayed. Replace the configuration only if you intend to overwrite all saved type-specific settings."}),G("replaceConfig","Replace type-specific configuration",N)]}):null,ge?(0,u.jsxs)("div",{className:"grid gap-4",children:[g==="vcs"?(0,u.jsxs)(u.Fragment,{children:[le("config/provider",(0,u.jsx)(ie,{id:"source-config/provider",name:"config/provider",value:T,className:"h-11 text-base sm:text-sm","aria-invalid":!!P["config/provider"],"aria-describedby":ne("config/provider"),onChange:p=>ee(p.currentTarget.value),children:E.map(([p,k])=>(0,u.jsx)("option",{value:p,children:k},p))})),(0,u.jsxs)("div",{children:[O("config/repository",{required:!0,label:T==="github"?"GitHub repository":T==="git"?"Git repository URL":"SSH repository",placeholder:T==="github"?"acme/payments":T==="git"?"https://git.example.com/acme/payments.git":"git@git.example.com:acme/payments.git"}),T==="github"?(0,u.jsx)("p",{className:"mt-1 text-sm text-neutral-600",children:"Use owner/repository for GitHub, such as acme/payments."}):null]},T),T==="github"?(0,u.jsxs)(u.Fragment,{children:[j?(0,u.jsxs)(u.Fragment,{children:[le("githubAuthentication",(0,u.jsx)($,{id:"source-githubAuthentication",name:"githubAuthenticationDisplay",className:"h-11 text-base sm:text-sm",value:I==="app"?"GitHub App":"Personal access token",readOnly:!0})),(0,u.jsx)("input",{type:"hidden",name:"githubAuthentication",value:I})]}):we("githubAuthentication",I,[["app","GitHub App","Use an app installation with access to this repository."],["token","Personal access token","Add your token after creating the source."]],p=>n(p)),I==="app"?O("config/installationId",{required:!0,number:!0,minimum:1}):null]}):null]}):null,g==="composer_repository"?(0,u.jsxs)(u.Fragment,{children:[O("config/selection/packages",{multiline:!0}),O("config/selection/patterns",{multiline:!0})]}):null,g==="npm_registry"?(0,u.jsxs)(u.Fragment,{children:[O("config/scopes",{multiline:!0}),j?null:le("registeredPatterns",(0,u.jsx)("textarea",{id:"source-registeredPatterns",name:"registeredPatterns",rows:3,readOnly:!0,value:Oe(d).join(`
|
|
3
|
-
`)}),"Names to register after adding this source")]}):null]},`primary:${g}`):null,g==="hosted"?(0,u.jsx)("p",{className:"text-sm text-neutral-600",children:"npm publishing is available. Register package names, then enable this source. A claim immediately stops the npmjs proxy from serving that name, even while this source is paused. Use an exact lowercase npm name or @scope/*. A scope claim hides public packages in that scope that are not yet cached."}):null,!j&&g!=="hosted"?(0,u.jsx)("p",{className:"text-sm text-neutral-600",children:x?"No credentials are needed to add this proxy.":g==="vcs"&&T==="github"?I==="app"?"After adding this source, save the GitHub App credentials.":"After adding this source, save your GitHub personal access token as a bearer credential.":g==="vcs"&&T==="ssh"?"After adding this source, save an SSH private key and known hosts.":"After adding this source, save its credentials to finish setup."}):null,g==="hosted"&&S==="npm"?G("requirePublishApproval"):null,(0,u.jsxs)("details",{className:"min-w-0",children:[(0,u.jsx)("summary",{className:"min-h-11 cursor-pointer py-3 text-sm font-medium",children:"Advanced settings"}),(0,u.jsxs)("div",{className:"grid gap-4 pt-2",children:[(0,u.jsx)("p",{className:"text-sm text-neutral-600",children:"Optional sync, visibility, retention, and connection settings."}),ge?(0,u.jsxs)("div",{className:"grid gap-4",children:[g==="composer_repository"||g==="npm_registry"?O("config/distHosts",{multiline:!0}):null,g==="composer_repository"?(0,u.jsxs)(u.Fragment,{children:[G("config/mirrorsFallback"),j?G("config/selection/expandPatterns"):null]}):null,g==="vcs"?(0,u.jsxs)(u.Fragment,{children:[O("config/packageName",{placeholder:S==="npm"?"@acme/payments":"acme/payments"}),O("config/refs/branches",{multiline:!0}),G("config/refs/tags",void 0,void 0,!0)]}):null,g==="packagist_proxy"&&j?G("config/githubToken"):null]},`advanced:${g}`):null,g==="packagist_proxy"&&j?(0,u.jsx)("p",{className:"text-sm text-neutral-600",children:"To enable Use GitHub token, save a bearer credential with your GitHub token, then select Use GitHub token and save the source."}):null,O("pollIntervalSeconds",{number:!0,minimum:1,value:t?.pollIntervalSeconds??300}),le("removalPolicy",(0,u.jsxs)(ie,{id:"source-removalPolicy",name:"removalPolicy",className:"h-11 text-base sm:text-sm","aria-invalid":!!P.removalPolicy,"aria-describedby":ne("removalPolicy"),defaultValue:t?.removalPolicy??"flag",children:[(0,u.jsx)("option",{value:"flag",children:"Keep available and mark removed"}),(0,u.jsx)("option",{value:"exclude",children:"Exclude from package resolution"})]})),G("defaultVisibleToNewProjects"),O("retentionDaysOverride",{number:!0,minimum:0}),O("userAgent")]})]})]})]}),(0,u.jsxs)(fe,{className:"shrink-0 border-t border-neutral-200 bg-white px-6 pt-4 pb-[max(1rem,env(safe-area-inset-bottom))]",children:[(0,u.jsx)(_,{className:"min-h-11",type:"button",variant:"outline",disabled:e,onClick:m,children:"Cancel"}),(0,u.jsx)(_,{type:"submit",className:"min-h-11",disabled:e,children:j?"Save source":"Add source"})]})]})]})})}var r=B(ae(),1),$e={http_basic:["username","password"],bearer:["token"],header:["name","value"],query:["param","value"],github_app:["appId","privateKeyPem","webhookSecret"],npm_token:["token"],ssh_key:["privateKeyPem","knownHosts"]},dt=Object.keys($e);function Fe(t,{scope:e,github:l,vcsProviders:s}){switch(t){case"packagist_proxy":return["bearer"];case"npmjs_proxy":case"hosted":return[];case"composer_repository":return["http_basic","bearer","header","query","npm_token"];case"npm_registry":return["npm_token","http_basic","bearer","header"];case"vcs":return l?e==="organization"?["bearer","github_app"]:["bearer"]:["bearer","http_basic","header","npm_token",...s?.includes("ssh")?["ssh_key"]:[]]}}function He(t,e){return{scope:t.projectId===null?"organization":"project",github:t.githubAuthentication!==void 0,vcsProviders:e}}function ve(t){return["packagist_proxy","npmjs_proxy","npm_registry"].includes(t.type)&&"attached"in t&&t.attached===!0}function St(t){if(t.type==="composer_repository")return"http_basic";if(t.type==="npm_registry")return"npm_token";if(t.type==="vcs"){let e=t.config;if(e?.provider==="ssh")return"ssh_key";if(e?.provider==="github"&&e.installationId!==void 0)return"github_app"}return"bearer"}function se(t){return["packagist_proxy","npmjs_proxy"].includes(t.type)}var ke="An organization admin must enable this source.",Me="Register package names, then enable the source.";function wt(t,e){let l=t?.config;return t?.type!=="npm_registry"||!Array.isArray(l?.scopes)?[]:Oe(l.scopes.join(`
|
|
4
|
-
`)).filter(s=>!e.includes(s))}function de(t){if(t===null)return null;try{let e=new URL(t);return["https:","http:","ssh:","git:"].includes(e.protocol)?(e.username="",e.password="",e.search="",e.hash="",e.toString()):null}catch{return null}}function Ct(t,e,l=()=>new Date().toISOString()){let{client:s}=t,a={ownership:"organization",editor:null,fieldErrors:{},formError:null,available:[],availableNext:null,availableLoading:!1,availableError:!1,items:[],next:null,loading:!0,listError:!1,settingsVersion:0,vcsProviders:void 0,busy:!1,error:null,notice:null,createdSource:null,credentialSource:null,credentialVersion:0,credentialKind:"bearer",credentialKinds:dt,packageSource:null,packageFieldError:null,packageAlert:null,savedCredential:null,names:null,preview:null,order:[],etag:null,canEnableProjectSource:!1,canWriteSources:!1,enableDenied:[],enableConflicts:[]},m=new Set,o=n=>{a={...a,...n};for(let d of m)d()},h,w=()=>{},b=0,S=0,i=0,g=0,L=0;function E(n,d=!1){return n.ok?!1:(n.code==="reauth_required"?(t.requireReauth(d?{method:n.request.method,path:n.request.path}:n.request,{credential:d,secretFields:[]}),o({enableDenied:[],error:d?"Reauthenticate, then enter the credential again.":"Reauthentication is required."})):n.code==="claim_overlap"?o({error:"Another source already claims this package name or scope."}):n.code==="name_public"?o({error:"This name is already available from a public registry."}):n.code==="name_public_unverified"?o({error:"The public registry could not be checked. Try registering the name again later."}):o({error:"The request could not be saved or loaded. Refresh and try again."}),!0)}async function C(n=!1){if(n&&(a.loading||a.next===null))return;let d=++S,c=n?a.next:null,f=a.etag;++L,o({loading:!0,listError:!1,error:null,etag:null,preview:null,order:[],enableDenied:[],enableConflicts:[],notice:null});let y={limit:"100",...c===null?{}:{after:c}},[v,N]=await Promise.all([e!==null||a.ownership!=="organization"?h??=s.request("get","/_pb/me/permissions").then(x=>(x.ok||(h=void 0),x)):null,e===null?s.request("get","/_pb/sources",{query:{...y,...a.ownership==="organization"?{}:{ownership:a.ownership}}}):s.request("get","/_pb/projects/{project}/sources",{params:{project:e},query:y})]);if(d!==S)return;let re=!N.ok&&N.code==="reauth_required";if(v&&!v.ok&&!re&&(v.status!==403||v.code==="reauth_required")&&E(v),E(N)||!N.ok){o({loading:!1,listError:!0});return}o({canEnableProjectSource:v?.ok===!0&&v.data.organization.includes("org:sources:write")});let M=Be(N,"etag")??null;if(e!==null&&n&&M!==f){await C();return}let F=N.data.items.map(x=>({...x,url:de(x.url)})),P=n?[...a.items,...F]:F,j=P.flatMap(x=>"attached"in x&&x.attached===!0&&"precedence"in x&&typeof x.precedence=="number"?[{id:x.id,precedence:x.precedence}]:[]);o({items:P,settingsVersion:a.settingsVersion+1,next:N.data.next,vcsProviders:N.data.vcsProviders,loading:!1,etag:M,order:j.sort((x,ge)=>x.precedence-ge.precedence).map(({id:x})=>x)})}async function T(n=!1){if(e===null||n&&(a.availableLoading||a.availableNext===null))return;let d=++i,c=n?a.availableNext:null;o({availableLoading:!0,availableError:!1});let f=await s.request("get","/_pb/sources",{query:{limit:"100",...c===null?{}:{after:c}}});if(d!==i)return;if(!f.ok){o({available:[],availableNext:null,availableLoading:!1,availableError:!0});return}let y=f.data.items.map(v=>({...v,attached:!1,url:de(v.url)}));o({available:n?[...a.available,...y]:y,availableNext:f.data.next,availableLoading:!1})}async function ee(n){for(;!a.items.some(d=>d.id===n)&&a.next!==null&&!a.listError;)await C(!0);return a.items.find(d=>d.id===n)}async function te(n,d){let c=await ee(n);if(c&&o({createdSource:n,notice:`Next steps for ${c.name}`}),c&&!se(c)&&c.type!=="hosted"){let f=Fe(c.type,He(c,a.vcsProviders)),y=d?St(d):c.githubAuthentication==="app"?"github_app":f[0];o({credentialSource:n,credentialVersion:a.credentialVersion+1,credentialKinds:f,credentialKind:y!==void 0&&f.includes(y)?y:f[0]})}}async function V(n,d=!1){let c=a.names;if(d||o({credentialSource:null,error:null}),d&&(c?.source!==n||c.next===null))return;let f=++g,y=d?c?.next:null,v=await s.request("get","/_pb/sources/{source}/names",{params:{source:n},query:{limit:"100",...y==null?{}:{after:y}}});f!==g||E(v)||!v.ok||o({names:{...v.data,source:n,items:d?[...c.items,...v.data.items]:v.data.items}})}async function I(n,d,c=()=>!1){if(!a.busy){o({busy:!0,error:null,notice:null});try{let f=await n();!c(f)&&!E(f)&&await d()}finally{o({busy:!1})}}}return{project:e,dispose(){++b,w()},snapshot:()=>a,enableNeedsAdmin(n){return n.projectId!==null&&(!a.canEnableProjectSource||a.enableDenied.includes(n.id))},subscribe(n){return m.add(n),()=>{m.delete(n)}},load:C,async setOwnership(n){e!==null||a.busy||(o({ownership:n,items:[],next:null}),await C())},loadAvailable:T,names:V,openEditor(n=null){a.busy||n&&e!==null&&n.projectId===null||o({editor:n??"create",fieldErrors:{},formError:null,error:null,credentialSource:null,savedCredential:null})},closeEditor(){a.busy||o({editor:null,fieldErrors:{},formError:null})},async saveSource(n){if(a.busy||a.editor===null)return;let d=a.editor;if(d!=="create"&&Object.keys(n).length===0){o({editor:null,fieldErrors:{},formError:null});return}o({busy:!0,error:null,formError:null,fieldErrors:{}});try{let c=d==="create"?e===null?await s.request("post","/_pb/sources",{body:n}):await s.request("post","/_pb/projects/{project}/sources",{params:{project:e},body:n}):e===null?await s.request("patch","/_pb/sources/{source}",{params:{source:d.id},headers:{"If-Match":`"r${d.revision}"`},body:n}):await s.request("patch","/_pb/projects/{project}/sources/{source}",{params:{project:e,source:d.id},headers:{"If-Match":`"r${d.revision}"`},body:n});if(!c.ok){E(c),c.status===412&&o({error:"This source changed while you were editing. Reload the latest settings before saving."}),o({fieldErrors:it(c.details),formError:a.error});return}o({editor:null,fieldErrors:{},formError:null,...d==="create"&&e===null&&a.ownership==="project"?{ownership:"organization"}:{}}),await C(),d==="create"&&c.data&&"id"in c.data&&await te(c.data.id,n)}finally{o({busy:!1})}},attachment(n,d){return e===null?Promise.resolve():I(()=>d?s.request("put","/_pb/projects/{project}/sources/{source}/attachment",{params:{project:e,source:n},body:{}}):s.request("delete","/_pb/projects/{project}/sources/{source}/attachment",{params:{project:e,source:n}}),()=>C())},async replayed(n){let d=e===null?"/_pb/sources":`/_pb/projects/${encodeURIComponent(e)}/sources`,c=/^\/_pb\/sources\/[^/]+\/names(?:\/[^/]+)?$/.test(n.path),f=/^\/_pb\/sources\/([^/]+)\/enable$/.exec(n.path);if(n.path!==d&&!n.path.startsWith(`${d}/`)&&!c&&!f)return;let y=a.names?.source;o({enableDenied:[],enableConflicts:[]}),n.ok&&o({editor:null,fieldErrors:{},formError:null,...n.createdSourceId&&e===null&&a.ownership==="project"?{ownership:"organization"}:{}}),await C(),f&&!n.ok&&(n.status===403&&n.code==="forbidden"&&a.items.some(v=>v.id===f[1]&&v.projectId!==null)?o({enableDenied:[f[1]],notice:ke}):n.status===409&&n.code==="conflict"?o({enableConflicts:[f[1]],notice:Me}):o({error:"The request could not be saved or loaded. Refresh and try again."})),n.ok&&n.createdSourceId&&await te(n.createdSourceId),y!==void 0&&await V(y)},moveSource(n,d){if(a.loading||a.busy||a.next!==null)return;let c=[...a.order],f=c.indexOf(n),y=f+d;f<0||y<0||y>=c.length||([c[f],c[y]]=[c[y],c[f]],o({order:c}))},async saveOrder(){if(e===null||a.loading||a.busy||a.next!==null||a.etag===null)return;let n=a.etag,d=[...a.order];o({busy:!0,error:null,preview:null}),++L;try{let c=await s.request("put","/_pb/projects/{project}/sources/order",{params:{project:e},headers:{"If-Match":n},body:{sourceIds:d}});!c.ok&&c.status===412?(await C(),o({error:"Source ordering changed. Review the reloaded list before saving again."})):E(c)||await C()}finally{o({busy:!1})}},closeCredential(){a.busy||o({credentialSource:null})},closeNames(){a.busy||(++g,o({names:null}))},chooseCredential(n){if(a.busy)return;let d=a.items.find(f=>f.id===n),c=d?Fe(d.type,He(d,a.vcsProviders)):["bearer"];c.length!==0&&(++g,o({credentialSource:n,names:null,savedCredential:null,credentialVersion:a.credentialVersion+1,credentialKind:d?.githubAuthentication==="app"&&c.includes("github_app")?"github_app":c[0],credentialKinds:c,error:null}))},openPackage(n){a.busy||e===null||!ve(n)||n.status==="paused"||o({packageSource:n,packageFieldError:null,packageAlert:null,notice:null})},closePackage(){a.busy||o({packageSource:null,packageFieldError:null,packageAlert:null})},async addPackage(n){let d=a.packageSource;if(!(a.busy||e===null||!d||!ve(d))){if(n=n.trim(),!n||n.length>428){o({packageFieldError:"Enter a package name of 1 to 428 characters."});return}o({busy:!0,packageFieldError:null,packageAlert:null,notice:null});try{let c=await s.request("post","/_pb/projects/{project}/sources/{source}/packages",{params:{project:e,source:d.id},body:{name:n}});c.ok?o({packageSource:null,notice:c.status===202?Re(202,c.data.name,d.name):Re(200,c.data.name,d.name)}):c.status===400&&c.code==="invalid_request"?o({packageFieldError:"Enter a valid package name for this source."}):c.code==="package_not_found"?o({packageAlert:"Not found upstream. Check the package name or use another source."}):c.status===400?o({packageFieldError:"This source does not support that package. Check the name or use another source."}):c.code==="forbidden"?o({packageAlert:"You do not have permission to add packages to this project."}):c.status===502?o({packageAlert:"The upstream registry refused or failed the request. Check the source credential or try again later."}):c.status===404?o({packageAlert:"The package or attached source could not be found. Check the name and refresh sources."}):c.status===503?o({packageAlert:"Package requests are temporarily unavailable. Try again shortly."}):c.status===409?o({packageAlert:"This source is paused. Enable it before adding a package."}):(E(c),o({packageAlert:a.error,error:null}))}finally{o({busy:!1})}}},async credential(n,d,c){if(!a.busy){o({busy:!0,error:null,credentialSource:n,credentialVersion:a.credentialVersion+1,savedCredential:null});try{let f=e===null?await s.request("put","/_pb/sources/{source}/credential",{params:{source:n},body:{kind:d,material:c}}):await s.request("put","/_pb/projects/{project}/sources/{source}/credential",{params:{project:e,source:n},body:{kind:d,material:c}});E(f,!0)||o({savedCredential:{source:n,at:l()},notice:"Credential set.",items:a.items.map(y=>y.id===n?{...y,hasCredential:!0}:y)})}finally{o({busy:!1})}}},edit(n,d,c){if(!Number.isSafeInteger(d)||d<=0)return o({error:"Polling interval must be a positive whole number."}),Promise.resolve();let f=a.items.find(N=>N.id===n)?.revision;if(f===void 0)return o({error:"Reload sources before saving."}),Promise.resolve();let y={"If-Match":`"r${f}"`},v={pollIntervalSeconds:d,removalPolicy:c};return I(()=>e===null?s.request("patch","/_pb/sources/{source}",{params:{source:n},body:v,headers:y}):s.request("patch","/_pb/projects/{project}/sources/{source}",{params:{project:e,source:n},body:v,headers:y}),()=>C())},async loadMutationPermissions(){let n=e===null?await s.request("get","/_pb/me/permissions"):await s.request("get","/_pb/projects/{project}/permissions",{params:{project:e}});o({canWriteSources:n.ok&&("organization"in n.data?n.data.organization.includes("org:sources:write"):n.data.project.includes("project:sources:write"))})},syncNow(n){if(a.busy||n.status==="paused"||e!==null&&n.projectId===null)return Promise.resolve();w();let d=++b;return I(()=>e===null?s.request("post","/_pb/sources/{source}/sync",{params:{source:n.id}}).then(De):s.request("post","/_pb/projects/{project}/sources/{source}/sync",{params:{project:e,source:n.id}}).then(De),async()=>{if(d!==b)return;let c=async()=>{let y=S,v=a.ownership,N=null;do{let re={limit:"100",...N===null?{}:{after:N}},M=e===null?await s.request("get","/_pb/sources",{query:{...re,...v==="organization"?{}:{ownership:v}}}):await s.request("get","/_pb/projects/{project}/sources",{params:{project:e},query:re});if(d!==b||y!==S||!M.ok)return!0;let F=M.data.items.find(P=>P.id===n.id);if(F)return o({items:a.items.map(P=>P.id===n.id?{...F,url:de(F.url)}:P)}),Le(n,F);N=M.data.next}while(N!==null);return!0},f;if(a.loading&&a.items.length===0){await C();let y=await ee(n.id);f=a.listError||!y||Le(n,y)}else f=await c();d===b&&(o({notice:Ae}),f!==!0&&d===b&&(w=Ze(c)))})},async togglePause(n){if(e!==null&&n.projectId===null)return;if(n.status==="paused"&&!se(n)){if(a.busy||n.projectId!==null&&(!a.canEnableProjectSource||a.enableDenied.includes(n.id)))return;o({enableConflicts:a.enableConflicts.filter(c=>c!==n.id)}),await I(()=>s.request("post","/_pb/sources/{source}/enable",{params:{source:n.id}}),()=>C(),c=>n.projectId!==null&&!c.ok&&c.status===403&&c.code==="forbidden"?(o({enableDenied:[...new Set([...a.enableDenied,n.id])],notice:ke}),!0):!c.ok&&c.status===409&&c.code==="conflict"?(o({enableConflicts:[...new Set([...a.enableConflicts,n.id])],notice:Me}),!0):!1);return}let d=n.status==="paused"?"resume":"pause";return I(()=>e===null?s.request("post",`/_pb/sources/{source}/${d}`,{params:{source:n.id}}):s.request("post",`/_pb/projects/{project}/sources/{source}/${d}`,{params:{project:e,source:n.id}}),()=>C())},addName(n,d){let c=a.items.find(f=>f.id===n)?.ecosystem==="npm"?214:50;return d.length===0||d.length>c||!/^[a-z0-9._~@!/*-]+$/.test(d)?(o({error:`Enter a registered pattern of 1 to ${c} supported characters.`}),Promise.resolve()):I(()=>s.request("post","/_pb/sources/{source}/names",{params:{source:n},body:{pattern:d}}),()=>V(n))},removeName(n,d){return I(()=>s.request("delete","/_pb/sources/{source}/names/{name}",{params:{source:n,name:d}}),async()=>{await V(n),await C()})},async resolve(n){let d=++L;if(o({preview:null,error:null}),e===null||n.length===0||n.length>214){o({error:`Choose a project and enter a package name of 1 to ${214} characters.`});return}let c=await s.request("get","/_pb/projects/{project}/resolve",{params:{project:e},query:{name:n}});d===L&&!E(c)&&c.ok&&o({preview:c.data})}}}function xt(t,e,l){let s=l.elements.namedItem("kind")?.value,a=dt.includes(s)?$e[s]:null,m=a===null?null:JSON.stringify(Object.fromEntries(a.map(o=>[o,l.elements.namedItem(o)?.value??""])));return l.reset(),m===null?Promise.resolve():t.credential(e,s,m)}function _t({kind:t,busy:e}){return(0,r.jsx)(r.Fragment,{children:$e[t].map(l=>(0,r.jsxs)("div",{children:[(0,r.jsx)(H,{htmlFor:`credential-${l}`,children:l}),(0,r.jsx)($,{id:`credential-${l}`,name:l,type:"password",autoComplete:"off",defaultValue:"",maxLength:16384,required:!0,disabled:e})]},l))})}function Et({model:t,source:e,busy:l,initialKind:s,kinds:a}){let[m,o]=(0,D.useState)(s);return(0,r.jsxs)("form",{className:"grid gap-3",autoComplete:"off",onSubmit:h=>{h.preventDefault(),!l&&xt(t,e,h.currentTarget)},children:[(0,r.jsx)(H,{htmlFor:"credential-kind",children:"Credential kind"}),(0,r.jsx)(ie,{id:"credential-kind",name:"kind",value:m,disabled:l,onChange:h=>o(h.currentTarget.value),children:a.map(h=>(0,r.jsx)("option",{value:h,children:h},h))}),(0,r.jsx)(_t,{kind:m,busy:l},m),(0,r.jsx)(_,{type:"submit",className:"w-fit",disabled:l,children:"Save credential"})]})}function lt(t,e){return new FormData(t).get(e)?.toString()??""}var qe={network:"Network failure",timeout:"Sync timed out",http_error:"HTTP error",unauthorized:"Authorization failed",rate_limited:"Rate limited",not_found:"Not found",invalid_response:"Invalid response",tag_limit_exceeded:"Tag limit exceeded",mass_absence:"Mass package absence",too_large:"Response too large",policy_denied:"Policy denied",credential_unavailable:"Credential unavailable",internal:"Internal error",name_mismatch:"Package name differs from configuration",version_mismatch:"Manifest version differs from tag",invalid_manifest:"Invalid package manifest",unsupported_files_pattern:"Unsupported package file pattern",invalid_packlist:"Package files could not be packed",invalid_tarball:"Invalid repository archive",archive_changed:"Repository archive changed during packing"};function Pt({source:t}){let e=t.lastError!==null&&Object.hasOwn(qe,t.lastError)?qe[t.lastError]:null;return(0,r.jsxs)("div",{className:"grid gap-1 text-sm",children:[(0,r.jsxs)("p",{children:["Last listing: ",(0,r.jsx)(ue,{value:t.lastSuccessAt,fallback:"Never"})]}),(0,r.jsxs)("p",{children:["Last listing error:"," ",t.lastError===null?"None":(0,r.jsxs)(r.Fragment,{children:[e&&`${e} \xB7 `,(0,r.jsx)("code",{children:t.lastError})]})]}),t.sync&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("p",{children:["Latest sync: ",t.sync.queued," queued \xB7 ",t.sync.running," running \xB7"," ",t.sync.retrying," retrying \xB7 ",t.sync.failed," failed \xB7 ",t.sync.completed," ","completed"]}),t.sync.errors.slice(0,3).map(({code:l,count:s})=>(0,r.jsxs)("p",{children:[qe[l]," \xB7 ",(0,r.jsx)("code",{children:l}),": ",s]},l))]}),se(t)?(0,r.jsx)("p",{children:Qe}):null,(0,r.jsxs)("p",{children:["Next poll: ",(0,r.jsx)(ue,{value:t.nextPollAt,fallback:"None"})]})]})}function Nt({source:t,model:e,busy:l}){let[s,a]=(0,D.useState)(null);(0,D.useEffect)(()=>{s&&(s.id!==t.id||s.status!==t.status)&&a(null)},[s,t.id,t.status]);let m=e.project===null?t.projectId===null:t.projectId!==null,o=e.project===null&&t.projectId!==null,h=(m||o)&&t.status==="paused"&&!se(t)&&e.enableNeedsAdmin(t),w=e.snapshot().enableConflicts.includes(t.id),b=`source-actions-note-${t.id}`,S=!m&&!o?"Manage this organization source in organization scope.":[h&&ke,w&&Me].filter(Boolean).join(" "),i=m?[{id:"edit",label:"Edit",disabled:l,onSelect:()=>e.openEditor(t)},...e.snapshot().canWriteSources&&t.type!=="hosted"?[{id:"sync",label:"Sync now",disabled:l||t.status==="paused",...t.status==="paused"?{describedBy:`sync-paused-${t.id}`}:{},onSelect:()=>{e.syncNow(t)}}]:[]]:[],g=[];return m||o?(o&&(t.status!=="paused"||se(t))||g.push(t.status==="paused"?{id:"enable",label:"Enable",disabled:l||h,...h||w?{describedBy:b}:{},onSelect:()=>{e.togglePause(t)}}:{id:"pause",label:"Pause source\u2026",disabled:l,onSelect:()=>a(t)}),m&&Fe(t.type,He(t,e.snapshot().vcsProviders)).length>0&&g.push({id:"credential",label:t.type==="packagist_proxy"?"Add GitHub token (optional)":"Set credential",disabled:l,onSelect:()=>e.chooseCredential(t.id)})):g.push({id:"manage",label:"Manage source",disabled:!0,describedBy:b,onSelect:()=>{}}),e.project!==null&&e.snapshot().canWriteSources&&ve(t)&&g.push({id:"add-package",label:"Add package",disabled:l||t.status==="paused",...t.status==="paused"?{describedBy:`add-package-paused-${t.id}`}:{},onSelect:()=>e.openPackage(t)}),g.push({id:"names",label:"Registered names",disabled:l,onSelect:()=>{e.names(t.id)}}),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(Xe,{entityLabel:t.name,actions:i,overflow:g}),m&&t.status==="paused"?(0,r.jsx)("p",{id:`sync-paused-${t.id}`,children:"Enable before syncing."}):null,e.project!==null&&ve(t)&&t.status==="paused"?(0,r.jsx)("p",{id:`add-package-paused-${t.id}`,children:"Enable before adding a package."}):null,S?(0,r.jsx)("p",{id:b,children:S}):null,(0,r.jsx)(he,{action:"Pause",target:`${t.name} (${t.id})`,scope:e.project===null?"Organization":`Project: ${e.project}`,description:"Pausing this source stops it from resolving packages in this scope. You can enable it again later.",disabled:l,open:s?.id===t.id&&s.status===t.status&&t.status!=="paused",onOpenChange:L=>{L||a(null)},hideTrigger:!0,onConfirm:()=>{e.togglePause(t)}})]})}function At(t,e){return t.filter(l=>l.name.toLowerCase().includes(e.q.toLowerCase())&&(!e.type||l.type===e.type)&&(!e.scope||(e.scope==="organization"?l.projectId===null:l.projectId!==null)))}function Rt({model:t}){let e=(0,D.useSyncExternalStore)(t.subscribe,t.snapshot,t.snapshot),[l,s]=(0,D.useState)({q:"",type:"",scope:""}),a=!!(l.q||l.type||l.scope),m=e.items.find(i=>i.id===e.createdSource),o=(0,D.useMemo)(()=>{let i=e.names;return i===null?[]:wt(e.items.find(g=>g.id===i.source),i.items.map(g=>g.pattern))},[e.items,e.names]),h=!e.loading&&!e.listError&&e.next===null,w=e.items.find(i=>i.id===e.credentialSource)?.type==="packagist_proxy",b=[...e.items,...h?e.available.filter(i=>!e.items.some(g=>g.id===i.id)):[]],S=At(b,l).sort((i,g)=>{let L=E=>{let C=e.order.indexOf(E);return C<0?1/0:C};return L(i.id)-L(g.id)});return(0,r.jsxs)("section",{"aria-labelledby":"page-heading",className:"grid gap-6",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,r.jsx)("h1",{tabIndex:-1,id:"page-heading",className:"text-xl font-semibold",children:"Sources"}),(0,r.jsx)(_,{type:"button",disabled:e.busy,onClick:()=>t.openEditor(),children:"Add source"})]}),e.editor!==null?(0,r.jsx)(st,{organization:t.project===null,source:e.editor==="create"?null:e.editor,busy:e.busy,errors:e.fieldErrors,alert:e.formError,onSubmit:i=>{e.editor==="create"&&s({q:"",type:"",scope:""}),t.saveSource(i)},onClose:()=>t.closeEditor(),vcsProviders:e.vcsProviders,initialType:typeof window<"u"&&new URLSearchParams(window.location.hash.split("?")[1]).get("create")==="vcs"?"vcs":void 0,initialProvider:typeof window<"u"&&new URLSearchParams(window.location.hash.split("?")[1]).get("provider")==="github"?"github":void 0}):null,(0,r.jsx)("p",{className:"text-neutral-600",children:"Upstream registries and private repositories. Attached sources are tried in precedence order."}),t.project===null?(0,r.jsxs)(H,{children:["Ownership",(0,r.jsxs)(ie,{value:e.ownership,disabled:e.busy,onChange:i=>{t.setOwnership(i.target.value)},children:[(0,r.jsx)("option",{value:"organization",children:"Organization"}),(0,r.jsx)("option",{value:"project",children:"Project-owned"}),(0,r.jsx)("option",{value:"all",children:"All"})]})]}):null,(0,r.jsx)(We,{values:{...l,scope:l.scope==="organization"?"Organization":l.scope==="project"?"Project":"",type:z[l.type]??""},fields:[{key:"q",label:"Name (loaded sources)"},{key:"type",label:"Type",options:[...new Set(b.map(i=>z[i.type]))].sort()},...t.project===null?[]:[{key:"scope",label:"Source scope",options:["Organization","Project"]}]],onChange:i=>s({q:i.q??"",scope:t.project===null?"":i.scope==="Organization"?"organization":i.scope==="Project"?"project":"",type:Object.keys(z).find(g=>z[g]===i.type)??""})}),(0,r.jsx)("p",{role:"status","aria-live":"polite",children:e.notice}),m?.status==="paused"&&!se(m)?(0,r.jsxs)("p",{children:["Next steps for ",m.name,":"," ",t.enableNeedsAdmin(m)?ke:e.names?.source===m.id&&e.names.items.length>0?"Enable the source.":"Register names, then Enable the source."]}):null,e.error&&!e.listError?(0,r.jsx)(Q,{kind:"error",title:e.error}):null,e.listError?(0,r.jsxs)(Q,{kind:"error",title:"Sources could not be loaded.",children:[e.error?(0,r.jsx)("p",{children:e.error}):null,(0,r.jsx)(_,{type:"button",className:"w-fit",disabled:e.loading||e.busy,onClick:()=>{t.load()},children:"Retry sources"})]}):null,!e.listError&&!e.availableError?(0,r.jsx)(_,{type:"button",className:"w-fit",variant:"outline",disabled:e.loading||e.busy,onClick:()=>{t.load(),t.loadAvailable()},children:"Refresh sources"}):null,t.project!==null&&!h&&e.available.length>0?(0,r.jsx)("p",{className:"text-sm text-neutral-600",children:"Load all project sources before attaching organization sources."}):null,e.availableLoading?(0,r.jsx)(Q,{kind:"loading",title:"Loading organization sources\u2026"}):null,e.availableError?(0,r.jsx)(Q,{kind:"error",title:"Organization sources could not be loaded.",children:(0,r.jsx)(_,{type:"button",className:"w-fit",disabled:e.availableLoading||e.busy,onClick:()=>{t.loadAvailable()},children:"Retry organization sources"})}):null,e.loading?(0,r.jsx)(Q,{kind:"loading",title:"Loading sources\u2026"}):!e.listError&&S.length===0?(0,r.jsx)(Q,{kind:a?"filtered-empty":"empty",title:a?"No sources match these filters.":"No sources."}):null,!e.loading&&!e.listError&&S.length?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("p",{className:"text-sm text-neutral-600",children:[S.length," sources loaded",a?" matching filters":""]}),(0,r.jsx)(Ke,{label:"Sources in precedence order",items:S,columns:[{key:"name",label:"Source",value:i=>i.name,render:i=>(0,r.jsxs)("div",{className:"grid gap-1",children:[(0,r.jsx)("strong",{children:i.name}),"projectName"in i&&i.projectName!==null?(0,r.jsx)("span",{children:`Project: ${i.projectName}`}):null,(0,r.jsxs)("span",{className:"text-xs text-neutral-600",children:[i.ecosystem==="composer"?"Composer":"npm"," \xB7"," ",z[i.type]]}),(0,r.jsx)(Ye,{status:i.status})]})},{key:"precedence",label:"Precedence",value:i=>e.order.indexOf(i.id)<0?"\u2014":e.order.indexOf(i.id)+1,render:i=>{let g=e.order.indexOf(i.id);return g<0?"\u2014":(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-1",children:[(0,r.jsx)("strong",{children:g+1}),(0,r.jsx)(_,{type:"button",size:"sm",variant:"ghost","aria-label":`Move up ${i.name}`,disabled:e.busy||e.next!==null||g===0,onClick:()=>t.moveSource(i.id,-1),children:"Move up"}),(0,r.jsx)(_,{type:"button",size:"sm",variant:"ghost","aria-label":`Move down ${i.name}`,disabled:e.busy||e.next!==null||g===e.order.length-1,onClick:()=>t.moveSource(i.id,1),children:"Move down"})]})}},{key:"scope",label:"Attached to",value:i=>i.projectId===null?"Organization source":"Project source",render:i=>(0,r.jsxs)("div",{className:"grid gap-1",children:[(0,r.jsx)("span",{children:i.projectId===null?"Organization source":"Project source"}),t.project===null&&"attachedProjectCount"in i?(0,r.jsx)(Ne,{variant:"secondary",children:`Attached to ${i.attachedProjectCount} projects`}):null,"attached"in i?(0,r.jsx)("span",{className:"text-xs text-neutral-600",children:i.attached?"Attached to this project":"Not attached to this project"}):null]})},{key:"credential",label:"Credentials",value:i=>i.hasCredential?"Set \xB7 write-only":"None",render:i=>i.hasCredential?(0,r.jsx)(Ne,{variant:"outline",children:"Set \xB7 write-only"}):"None"},{key:"sync",label:"Sync status",value:i=>i.lastSuccessAt??"",render:i=>(0,r.jsx)(Pt,{source:i})},{key:"id",label:"Source ID",value:i=>i.id,priority:3,render:i=>(0,r.jsx)(U,{value:i.id,label:"source ID"})},{key:"actions",label:"Actions",value:()=>"",sortable:!1,render:i=>(0,r.jsxs)("div",{className:"flex flex-wrap items-start gap-2",children:[t.project!==null&&"attached"in i?i.attached?(0,r.jsx)(he,{action:"Detach",target:`${i.name} (${i.id})`,scope:`Project: ${t.project}`,description:"Detaching this source stops this project from resolving packages through it. You can attach it again later.",disabled:e.busy,onConfirm:()=>{t.attachment(i.id,!1)}}):(0,r.jsx)(_,{type:"button",size:"sm",variant:"outline",disabled:e.busy,onClick:()=>{t.attachment(i.id,!0)},children:"Attach"}):null,(0,r.jsx)(Nt,{source:i,model:t,busy:e.busy})]})}]})]}):null,e.next!==null?(0,r.jsx)(_,{type:"button",className:"w-fit",disabled:e.loading||e.busy,onClick:()=>{t.load(!0)},children:"Load more sources"}):null,e.availableNext!==null?(0,r.jsx)(_,{type:"button",className:"w-fit",disabled:e.availableLoading||e.busy,onClick:()=>{t.loadAvailable(!0)},children:"Load more organization sources"}):null,e.packageSource!==null?(0,r.jsx)(et,{source:e.packageSource,busy:e.busy,fieldError:e.packageFieldError,alert:e.packageAlert,onSubmit:i=>{t.addPackage(i)},onClose:()=>t.closePackage()},e.packageSource.id):null,e.credentialSource!==null?(0,r.jsx)(K,{open:!0,onOpenChange:i=>{i||t.closeCredential()},children:(0,r.jsxs)(Y,{variant:"source",onCancel:i=>{e.busy&&i.preventDefault()},children:[(0,r.jsxs)(W,{className:"shrink-0 p-6 pr-16",children:[(0,r.jsx)(X,{children:w?"Add GitHub token (optional)":"Set credential"}),(0,r.jsxs)(J,{children:["Credentials are write-only. Save a new credential to rotate a secret.",w?" This optional bearer token is used only for GitHub archive downloads and their rate limits. Enable Use GitHub token in Edit after saving it.":""]})]}),(0,r.jsxs)("div",{className:"grid min-h-0 gap-3 overflow-y-auto px-6 pb-6",children:[(0,r.jsx)(U,{value:e.credentialSource,label:"source ID"}),(0,r.jsx)(Et,{model:t,source:e.credentialSource,initialKind:e.credentialKind,kinds:e.credentialKinds,busy:e.busy},e.credentialVersion),e.error?(0,r.jsx)("p",{role:"alert",children:e.error}):null,e.savedCredential?.source===e.credentialSource?(0,r.jsxs)("p",{children:["credential set \xB7 ",(0,r.jsx)(ue,{value:e.savedCredential.at})]}):null]})]})}):null,e.savedCredential&&e.credentialSource===null?(0,r.jsxs)("p",{children:["credential set \xB7 ",e.savedCredential.source," \xB7"," ",(0,r.jsx)(ue,{value:e.savedCredential.at})]}):null,e.names?(0,r.jsx)(K,{open:!0,onOpenChange:i=>{i||t.closeNames()},children:(0,r.jsxs)(Y,{variant:"source",onCancel:i=>{e.busy&&i.preventDefault()},children:[(0,r.jsxs)(W,{className:"shrink-0 p-6 pr-16",children:[(0,r.jsx)(X,{children:"Registered names"}),(0,r.jsx)(J,{children:"Manage the package patterns registered for this source. For npm, use an exact lowercase name or @scope/*. A scope claim hides public packages in that scope that are not yet cached."})]}),(0,r.jsxs)("div",{className:"grid min-h-0 gap-3 overflow-y-auto px-6 pb-6",children:[e.error?(0,r.jsx)("p",{role:"alert",children:e.error}):null,(0,r.jsx)(U,{value:e.names.source,label:"source ID"}),(0,r.jsx)("ul",{children:e.names.items.map(i=>(0,r.jsxs)("li",{className:"flex items-center gap-3",children:[(0,r.jsx)("span",{children:i.pattern}),(0,r.jsx)(he,{action:`Remove ${i.pattern}`,target:i.pattern,scope:t.project===null?"Organization":`Project: ${t.project}`,description:"Removing this registered pattern can stop the source from resolving matching packages. Add the pattern again to restore it.",disabled:e.busy,onConfirm:()=>{t.removeName(i.sourceId,i.id)}})]},i.id))}),e.names.next!==null?(0,r.jsx)(_,{type:"button",disabled:e.busy,onClick:()=>{t.names(e.names.source,!0)},children:"Load more names"}):null,(0,r.jsxs)("form",{className:"grid gap-3",onSubmit:i=>{if(i.preventDefault(),e.busy)return;let g=i.currentTarget,L=lt(g,"pattern");t.addName(e.names.source,L)},children:[(0,r.jsx)(H,{htmlFor:"registered-pattern",children:"Registered pattern"}),(0,r.jsx)($,{id:"registered-pattern",name:"pattern",maxLength:e.items.find(i=>i.id===e.names?.source)?.ecosystem==="npm"?214:50,required:!0,defaultValue:o[0]??""},`${e.names.source}:${e.names.items.map(i=>i.pattern).join(",")}`),o.map(i=>(0,r.jsxs)("p",{className:"text-sm",children:["Register ",i," before enabling this source."]},i)),(0,r.jsx)(_,{type:"submit",className:"w-fit",disabled:e.busy,children:"Add name"})]})]})]})}):null,t.project!==null&&!e.listError&&e.items.some(i=>"attached"in i&&i.attached)?(0,r.jsxs)(xe,{children:[(0,r.jsx)(_e,{children:(0,r.jsx)(Ee,{children:"Source order"})}),(0,r.jsxs)(Pe,{className:"grid gap-3",children:[(0,r.jsx)("p",{children:"Earlier sources take precedence. Only attached sources are ordered."}),e.next!==null?(0,r.jsx)("p",{children:"Load all sources before changing their order."}):null,(0,r.jsx)(_,{type:"button",className:"w-fit",disabled:e.loading||e.busy||e.next!==null||e.etag===null,onClick:()=>{t.saveOrder()},children:"Save source order"})]})]}):null,t.project!==null?(0,r.jsxs)(xe,{children:[(0,r.jsx)(_e,{children:(0,r.jsx)(Ee,{children:"Who wins"})}),(0,r.jsxs)(Pe,{className:"grid gap-3",children:[(0,r.jsxs)("form",{className:"grid gap-3",onSubmit:i=>{i.preventDefault(),!e.busy&&t.resolve(lt(i.currentTarget,"name"))},children:[(0,r.jsx)(H,{htmlFor:"resolve-name",children:"Package name"}),(0,r.jsx)($,{id:"resolve-name",name:"name",maxLength:214,required:!0}),(0,r.jsx)(_,{type:"submit",className:"w-fit",disabled:e.busy,children:"Preview"})]}),e.preview?(0,r.jsxs)("div",{"aria-live":"polite",children:[(0,r.jsx)("p",{children:e.preview.name}),(0,r.jsxs)("p",{children:["Winning source: ",(0,r.jsx)(U,{value:e.preview.winner,label:"winning source ID"})]}),(0,r.jsx)("ol",{children:e.preview.candidates.map(i=>(0,r.jsxs)("li",{children:[i.sourceName," \xB7"," ",(0,r.jsx)(U,{value:i.sourceId,label:"candidate source ID"})," \xB7"," ",i.eligible?"Eligible":"Ineligible"]},i.sourceId))})]}):null]})]}):null]})}function ct(){if(typeof window>"u")return null;let t=new URLSearchParams(window.location.hash.split("?")[1]??"").get("project");return new URLSearchParams(Ue("sources",{project:t}).split("?")[1]??"").get("project")}function yr(){let t=Ge(),[e,l]=(0,D.useState)(ct);(0,D.useEffect)(()=>{let a=()=>l(ct());return window.addEventListener("hashchange",a),()=>window.removeEventListener("hashchange",a)},[]);let s=(0,D.useMemo)(()=>Ct(t,e),[t,e]);return(0,D.useEffect)(()=>(s.load(),s.loadAvailable(),s.loadMutationPermissions().then(()=>{s.snapshot().canWriteSources&&new URLSearchParams(window.location.hash.split("?")[1]).get("create")==="vcs"&&s.openEditor()}),()=>s.dispose()),[s]),(0,D.useEffect)(()=>t.subscribeReplay?.(a=>{s.replayed(a)}),[t,s]),(0,r.jsx)(Rt,{model:s},e??"organization")}export{Ae as a,Re as b,De as c,Qe as d,z as e,Fe as f,St as g,wt as h,de as i,Ct as j,xt as k,_t as l,qe as m,Nt as n,At as o,Rt as p,yr as q};
|