ryco-cli 0.1.5 → 0.1.6
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/README.md +50 -2
- package/dist/{AzureDevOpsSourceControlProvider-CdgNqZ5j.cjs → AzureDevOpsSourceControlProvider-6holYS_D.cjs} +2 -2
- package/dist/{AzureDevOpsSourceControlProvider-OsyDSESj.mjs → AzureDevOpsSourceControlProvider-CC2_COxP.mjs} +3 -3
- package/dist/{BitbucketSourceControlProvider-SQ3gKdFs.mjs → BitbucketSourceControlProvider-CYR_BD1d.mjs} +3 -3
- package/dist/{BitbucketSourceControlProvider-DBTH98i4.cjs → BitbucketSourceControlProvider-a0IsNFyG.cjs} +2 -2
- package/dist/{BunPTY-B_vjRZN4.mjs → BunPTY-BWhtEA50.mjs} +1 -1
- package/dist/{ClaudeDriver-D9yC2F0b.cjs → ClaudeDriver-C6tQNEWO.cjs} +12 -6
- package/dist/{ClaudeDriver-2dTtrsFD.mjs → ClaudeDriver-D3nsxwH9.mjs} +13 -7
- package/dist/{CodexDriver-CIDYevQX.mjs → CodexDriver-BILrJG8o.mjs} +14 -7
- package/dist/{CodexDriver-BC2B-qpT.cjs → CodexDriver-ms_YgFD7.cjs} +13 -6
- package/dist/{CodexTextGeneration-CjknB1Xl.mjs → CodexTextGeneration-BIKHl7E3.mjs} +4 -4
- package/dist/{CodexTextGeneration-DNeO-8GE.cjs → CodexTextGeneration-CHEgoANm.cjs} +3 -3
- package/dist/{CopilotDriver-BGChrP5c.cjs → CopilotDriver-B0--ZwIK.cjs} +14 -7
- package/dist/{CopilotDriver-NPhlLrk2.mjs → CopilotDriver-CmD3Ffyl.mjs} +15 -8
- package/dist/{CursorDriver-BcAVbT8D.mjs → CursorDriver-CbeaIbdb.mjs} +5 -5
- package/dist/{CursorDriver-CYxn4_c1.cjs → CursorDriver-DTVPXZ-R.cjs} +4 -4
- package/dist/{ForgejoSourceControlProvider-BjCE3730.mjs → ForgejoSourceControlProvider-DX6d9gvz.mjs} +3 -3
- package/dist/{ForgejoSourceControlProvider-D3wP2Cav.cjs → ForgejoSourceControlProvider-DwAog76b.cjs} +2 -2
- package/dist/{GitHubSourceControlProvider-DU_7IvMa.cjs → GitHubSourceControlProvider-9lJFzjsu.cjs} +2 -2
- package/dist/{GitHubSourceControlProvider-DByZ_cnw.mjs → GitHubSourceControlProvider-C-LGwho3.mjs} +3 -3
- package/dist/{GitLabSourceControlProvider-BdMCIjXb.mjs → GitLabSourceControlProvider-CkeT2aEx.mjs} +3 -3
- package/dist/{GitLabSourceControlProvider-BVJ5IqTS.cjs → GitLabSourceControlProvider-CvKA74lg.cjs} +2 -2
- package/dist/{Metrics-BCOc3Ml2.mjs → Metrics-6Xj17Se3.mjs} +94 -2
- package/dist/{Metrics-DNOriWhP.cjs → Metrics-CIW1QH7M.cjs} +128 -0
- package/dist/{NodePTY-_u3kQLvd.mjs → NodePTY-C_cR3Ayy.mjs} +1 -1
- package/dist/{OpenCodeDriver-DyR83FcY.cjs → OpenCodeDriver-CXUsnl5o.cjs} +13 -7
- package/dist/{OpenCodeDriver-fwqXoVyH.mjs → OpenCodeDriver-ClWtCk0j.mjs} +14 -8
- package/dist/{SourceControlProviderDiscoveryCatalog-DqQVhwYM.cjs → SourceControlProviderDiscoveryCatalog-_rg0mc1o.cjs} +98 -98
- package/dist/{SourceControlProviderDiscoveryCatalog-CQiMyDCC.mjs → SourceControlProviderDiscoveryCatalog-yMDer_Yh.mjs} +99 -99
- package/dist/bin.cjs +32298 -31164
- package/dist/bin.mjs +32447 -31314
- package/dist/client/assets/{AnimatedHeight-CYuVQOpY.js → AnimatedHeight-DgItDSis.js} +1 -1
- package/dist/client/assets/AppearanceSettings-BlsMFBvJ.js +1 -0
- package/dist/client/assets/BranchToolbar.logic-C_xHEt9C.js +1 -0
- package/dist/client/assets/ChatRightPanel-CThudBb1.js +188 -0
- package/dist/client/assets/ChatThreadRouteView-CV6ETYG5.js +1 -0
- package/dist/client/assets/CommandPaletteDialog-C_H7R8S5.js +1 -0
- package/dist/client/assets/CompositeRoot-DjnzUIwC.js +1 -0
- package/dist/client/assets/ConnectionsSettings-hArR4Oe3.js +1 -0
- package/dist/client/assets/DiagnosticsSettings-B340S_mq.js +1 -0
- package/dist/client/assets/DialogHandle-BJY7cHCV.js +1 -0
- package/dist/client/assets/{DialogRoot-DaMwpoP_.js → DialogRoot-Ej1FVk-_.js} +1 -1
- package/dist/client/assets/DialogTitle-H1yIMmA9.js +1 -0
- package/dist/client/assets/DialogTrigger-BHMq_K2G.js +1 -0
- package/dist/client/assets/DialogViewport-DvjAl76K.js +1 -0
- package/dist/client/assets/DraftChatThreadRouteView-pOkyeKPS.js +1 -0
- package/dist/client/assets/JetBrainsIcons-DTTF47I0.js +1 -0
- package/dist/client/assets/KeybindingsSettings-CW3RRi-7.js +7 -0
- package/dist/client/assets/McpServersSettings-dQ3BzOWY.js +6 -0
- package/dist/client/assets/NoActiveThreadState-DVHwrkCp.js +1 -0
- package/dist/client/assets/OpinionatedPluginsSettings-Cjj23Fs4.js +1 -0
- package/dist/client/assets/ProjectFavicon-TDP7HRfn.js +1 -0
- package/dist/client/assets/{ProviderUpdateLaunchNotification.logic-BFzNCo3I.js → ProviderUpdateLaunchNotification.logic-6TpFsmiI.js} +1 -1
- package/dist/client/assets/ProvidersSettingsPanel-D15EeWAq.js +1 -0
- package/dist/client/assets/{RedactedSensitiveText-UnZZJnFF.js → RedactedSensitiveText-BfoVjPsE.js} +1 -1
- package/dist/client/assets/RootAppShell-CWBPSA2w.js +12 -0
- package/dist/client/assets/SettingsDialog-oJCE5foT.js +2 -0
- package/dist/client/assets/SourceControlSettings-CPnlMxNm.js +1 -0
- package/dist/client/assets/ThreadStatusIndicators-B0leIJGD.js +1 -0
- package/dist/client/assets/{ThreadTerminalDrawer-BXoXAbsR.js → ThreadTerminalDrawer-COq2Fk17.js} +3 -3
- package/dist/client/assets/ThreadWorkspacePanel-qF9y6QT9.js +166 -0
- package/dist/client/assets/{alert-dialog-BJQbh5gX.js → alert-dialog-lMfKpG2t.js} +1 -1
- package/dist/client/assets/{chatThreadActions--n7v5mnB.js → chatThreadActions-PPyTj_x0.js} +1 -1
- package/dist/client/assets/{clamp-NYtK3f5s.js → clamp-JiD4IZ0Z.js} +1 -1
- package/dist/client/assets/clipboard-copy-CYBLSG2q.js +1 -0
- package/dist/client/assets/commandPaletteStore-uVfCD7zE.js +1 -0
- package/dist/client/assets/composerDraftStore-D12lUSfh.js +21 -0
- package/dist/client/assets/desktopUpdateAtoms-X6uM5SoD.js +2 -0
- package/dist/client/assets/{download-Bi4-cFbc.js → download-DLBlpp4h.js} +1 -1
- package/dist/client/assets/{draft-input-BGSRgOW7.js → draft-input-dLlVMl5P.js} +1 -1
- package/dist/client/assets/editorPreferences-BLeEBSD_.js +1 -0
- package/dist/client/assets/empty-DlLY-Hhj.js +1 -0
- package/dist/client/assets/{folder-open-DJmHEPv9.js → folder-open-DMjz0lpx.js} +1 -1
- package/dist/client/assets/{group-Dwm-OV-r.js → group-zDBPF7rR.js} +1 -1
- package/dist/client/assets/{index-BI5yFj9n.js → index-Dq8sT2lF.js} +2 -2
- package/dist/client/assets/{input-BfUa3JUD.js → input-B9-RWT56.js} +1 -1
- package/dist/client/assets/kbd-aeSsjiPI.js +1 -0
- package/dist/client/assets/{keybindings--G1bkIjA.js → keybindings-Dx4Nc1vY.js} +1 -1
- package/dist/client/assets/{keyboard-B87VTfPa.js → keyboard-DDTWQkr0.js} +1 -1
- package/dist/client/assets/keyedQuery-Ds4OGhX2.js +0 -0
- package/dist/client/assets/main-C57RhHZ_.css +2 -0
- package/dist/client/assets/main-DxfpmoKJ.js +9 -0
- package/dist/client/assets/palette-BQcz-ZYV.js +1 -0
- package/dist/client/assets/play-QloDGe4R.js +1 -0
- package/dist/client/assets/plus-4Oy56d-3.js +1 -0
- package/dist/client/assets/projectAtoms-DUEBb7Zz.js +1 -0
- package/dist/client/assets/providerDriverMeta-Dwi6Zqgd.js +1 -0
- package/dist/client/assets/providerIconUtils-uhWb4bdg.js +47 -0
- package/dist/client/assets/radio-group-DHyQlLeX.js +1 -0
- package/dist/client/assets/{refresh-cw-CRxaXR0E.js → refresh-cw-DkBMGllm.js} +1 -1
- package/dist/client/assets/{resolveAriaLabelledBy-D4fWpj84.js → resolveAriaLabelledBy-DDfIbj05.js} +1 -1
- package/dist/client/assets/rightPanelRouteSearch-DfuWVvXN.js +1 -0
- package/dist/client/assets/scale-BActunFu.js +1 -0
- package/dist/client/assets/scroll-area-D-YOUG02.js +1 -0
- package/dist/client/assets/separator-TInKeIDo.js +1 -0
- package/dist/client/assets/{server-tdx7WxLI.js → server-BtEG3NAw.js} +1 -1
- package/dist/client/assets/session-logic-DNf1aXq_.js +4 -0
- package/dist/client/assets/settingsDialogStore-BINi7pdD.js +1 -0
- package/dist/client/assets/settingsLayout-D22Mm0u3.js +1 -0
- package/dist/client/assets/shallow-Dmd-gez1.js +1 -0
- package/dist/client/assets/{sidebar-Bbdql7Af.js → sidebar-DHwNQmWp.js} +1 -1
- package/dist/client/assets/skeleton-DWaac_qp.js +1 -0
- package/dist/client/assets/storeSelectors-Cx1IYPA4.js +1 -0
- package/dist/client/assets/threadSelectionStore-C0ig4405.js +1 -0
- package/dist/client/assets/toast-DE7a4wkW.js +1 -0
- package/dist/client/assets/toggle-BIW4AyPY.js +1 -0
- package/dist/client/assets/{toggle-group-DdKXHoT3.js → toggle-group-CnLjaHSL.js} +1 -1
- package/dist/client/assets/tokenModePresentation-BSYdIvBm.js +1 -0
- package/dist/client/assets/{trash-2-CZQem-sz.js → trash-2-BI5xcbsm.js} +1 -1
- package/dist/client/assets/triangle-alert-DJef_Uvh.js +1 -0
- package/dist/client/assets/undo-2-DeZ2cMGS.js +1 -0
- package/dist/client/assets/useHandleNewThread-XB82O6SA.js +1 -0
- package/dist/client/assets/useLabelableId-DBAgv9qQ.js +1 -0
- package/dist/client/assets/useNavigate-B2tgshhW.js +1 -0
- package/dist/client/assets/useTheme-Dv42Z8uy.js +1 -0
- package/dist/client/assets/{vscode-icons-E8NUFd62.js → vscode-icons-DM9qFoEr.js} +1 -1
- package/dist/client/assets/{wrench-DEteICtk.js → wrench-je4QOyG-.js} +1 -1
- package/dist/client/assets/x-fI9snvD3.js +1 -0
- package/dist/client/index.html +1 -1
- package/dist/{collectUint8StreamText-DuFJyaQh.mjs → collectUint8StreamText-C2z5Y8tF.mjs} +220 -3
- package/dist/{collectUint8StreamText-DbCOJom3.cjs → collectUint8StreamText-TCG6xW_P.cjs} +220 -3
- package/dist/{makeManagedServerProvider-wFGZ2-vd.mjs → makeManagedServerProvider-BXO8QvzC.mjs} +2 -2
- package/dist/{makeManagedServerProvider-C3cQUDkZ.cjs → makeManagedServerProvider-DPFw9gV_.cjs} +1 -1
- package/package.json +1 -1
- package/dist/client/assets/AppearanceSettings-BBbC8CV5.js +0 -1
- package/dist/client/assets/BranchToolbar.logic-Di2EkKiO.js +0 -1
- package/dist/client/assets/ChatRightPanel-BJ_cVP66.js +0 -188
- package/dist/client/assets/ChatThreadRouteView-DmxD3m2U.js +0 -1
- package/dist/client/assets/CommandPaletteDialog-CAzz6bsT.js +0 -1
- package/dist/client/assets/CompositeRoot-BvXCwn2c.js +0 -1
- package/dist/client/assets/ConnectionsSettings-Cmxm0y2u.js +0 -1
- package/dist/client/assets/DialogHandle-CXNAm3QY.js +0 -1
- package/dist/client/assets/DialogTitle-KXmfgzP3.js +0 -1
- package/dist/client/assets/DialogTrigger-NHyQnW3X.js +0 -1
- package/dist/client/assets/DialogViewport-CL0WR9a5.js +0 -1
- package/dist/client/assets/DraftChatThreadRouteView-C_hqauF6.js +0 -1
- package/dist/client/assets/JetBrainsIcons-BcR8pCma.js +0 -1
- package/dist/client/assets/KeybindingsSettings-m2AteGOl.js +0 -7
- package/dist/client/assets/McpServersSettings-DndIDxgA.js +0 -6
- package/dist/client/assets/NoActiveThreadState-Bt-Wkv-C.js +0 -1
- package/dist/client/assets/OpinionatedPluginsSettings-oDtdE6qx.js +0 -1
- package/dist/client/assets/ProjectFavicon-j9IX_7-B.js +0 -1
- package/dist/client/assets/ProvidersSettingsPanel-CvlIBNVJ.js +0 -1
- package/dist/client/assets/QueryClientProvider-BZxRKpeb.js +0 -1
- package/dist/client/assets/RootAppShell-CyHZ_F5P.js +0 -12
- package/dist/client/assets/SettingsDialog-BYJ8AhQp.js +0 -2
- package/dist/client/assets/SourceControlSettings-7xU6VH6N.js +0 -1
- package/dist/client/assets/ThreadStatusIndicators-M9FWDEex.js +0 -1
- package/dist/client/assets/ThreadWorkspacePanel-D1J63TVD.js +0 -166
- package/dist/client/assets/codexUsageLimits-BJQiZCqn.js +0 -1
- package/dist/client/assets/commandPaletteStore-oFMPKPmp.js +0 -1
- package/dist/client/assets/composerDraftStore-xu3n5gdX.js +0 -21
- package/dist/client/assets/desktopUpdateReactQuery-YSCkifKp.js +0 -2
- package/dist/client/assets/empty-BTxheW4B.js +0 -1
- package/dist/client/assets/environmentApi-BFHi_M02.js +0 -1
- package/dist/client/assets/kbd-Dd57M8OY.js +0 -1
- package/dist/client/assets/main-BQf5U-fz.js +0 -9
- package/dist/client/assets/main-DrwkwNo9.css +0 -2
- package/dist/client/assets/mutation-DJZgOJRu.js +0 -1
- package/dist/client/assets/plus-B10j9MbZ.js +0 -1
- package/dist/client/assets/providerDriverMeta-B6xuq7ij.js +0 -1
- package/dist/client/assets/providerIconUtils-Ch6hejVW.js +0 -47
- package/dist/client/assets/rightPanelRouteSearch-CTMFCS6R.js +0 -1
- package/dist/client/assets/scroll-area-BgFq7GRd.js +0 -1
- package/dist/client/assets/separator-CB3Ctlvi.js +0 -1
- package/dist/client/assets/session-logic-CaiGe4hy.js +0 -4
- package/dist/client/assets/settingsDialogStore-9vo22xKp.js +0 -1
- package/dist/client/assets/settingsLayout-B5o13iGO.js +0 -1
- package/dist/client/assets/skeleton-C8OZcsPq.js +0 -1
- package/dist/client/assets/storeSelectors-DBRyhCGm.js +0 -1
- package/dist/client/assets/threadRoutes-CfldSp4X.js +0 -1
- package/dist/client/assets/threadSelectionStore-BggKwzmQ.js +0 -1
- package/dist/client/assets/toast-DE-WwLMa.js +0 -1
- package/dist/client/assets/toggle-BFMa0a0Y.js +0 -1
- package/dist/client/assets/useHandleNewThread-DOPZAFqE.js +0 -1
- package/dist/client/assets/useLabelableId-BzWaBebJ.js +0 -1
- package/dist/client/assets/useNavigate-B1qgM5mt.js +0 -1
- package/dist/client/assets/useTheme-C7Ji7x06.js +0 -1
- package/dist/client/assets/x-b9324xm-.js +0 -1
- package/dist/{NodeSqliteClient-BXy61fAd.mjs → NodeSqliteClient-A1TEgwj_.mjs} +1 -1
- package/dist/{NodeSqliteClient-homCO8-6.cjs → NodeSqliteClient-B5aDHbNc.cjs} +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
const require_collectUint8StreamText = require("./collectUint8StreamText-
|
|
3
|
+
const require_collectUint8StreamText = require("./collectUint8StreamText-TCG6xW_P.cjs");
|
|
4
4
|
let effect = require("effect");
|
|
5
5
|
let effect_unstable_process = require("effect/unstable/process");
|
|
6
6
|
//#region ../../packages/shared/src/schemaJson.ts
|
|
@@ -163,103 +163,6 @@ const make = effect.Effect.fn("makeVcsProcess")(function* () {
|
|
|
163
163
|
});
|
|
164
164
|
const layer = effect.Layer.effect(VcsProcess, make());
|
|
165
165
|
//#endregion
|
|
166
|
-
//#region src/sourceControl/SourceControlProvider.ts
|
|
167
|
-
function parseSourceControlOwnerRef(headSelector) {
|
|
168
|
-
const match = /^([^:/\s]+):(.+)$/u.exec(headSelector.trim());
|
|
169
|
-
const owner = match?.[1]?.trim();
|
|
170
|
-
const refName = match?.[2]?.trim();
|
|
171
|
-
return owner && refName ? {
|
|
172
|
-
owner,
|
|
173
|
-
refName
|
|
174
|
-
} : void 0;
|
|
175
|
-
}
|
|
176
|
-
function normalizeSourceBranch(headSelector) {
|
|
177
|
-
return parseSourceControlOwnerRef(headSelector)?.refName ?? headSelector.trim();
|
|
178
|
-
}
|
|
179
|
-
function sourceBranch(input) {
|
|
180
|
-
return input.source?.refName ?? normalizeSourceBranch(input.headSelector);
|
|
181
|
-
}
|
|
182
|
-
function sourceControlRefFromInput(input) {
|
|
183
|
-
return input.source ?? parseSourceControlOwnerRef(input.headSelector);
|
|
184
|
-
}
|
|
185
|
-
var SourceControlProvider = class extends effect.Context.Service()("ryco/source-control/SourceControlProvider") {};
|
|
186
|
-
//#endregion
|
|
187
|
-
//#region src/sourceControl/gitHubAuthStatus.ts
|
|
188
|
-
const GitHubAuthStatusAccountSchema = effect.Schema.Struct({
|
|
189
|
-
state: effect.Schema.String,
|
|
190
|
-
error: effect.Schema.optional(effect.Schema.String),
|
|
191
|
-
active: effect.Schema.Boolean,
|
|
192
|
-
host: effect.Schema.String,
|
|
193
|
-
login: effect.Schema.String
|
|
194
|
-
});
|
|
195
|
-
const GitHubAuthStatusSchema = effect.Schema.Struct({ hosts: effect.Schema.Record(effect.Schema.String, effect.Schema.Array(GitHubAuthStatusAccountSchema)) });
|
|
196
|
-
const decodeGitHubAuthStatusJson = effect.Schema.decodeUnknownOption(effect.Schema.fromJsonString(GitHubAuthStatusSchema));
|
|
197
|
-
function nonEmptyString(value) {
|
|
198
|
-
const trimmed = value.trim();
|
|
199
|
-
return trimmed.length > 0 ? trimmed : null;
|
|
200
|
-
}
|
|
201
|
-
function parseGitHubAuthStatus(text) {
|
|
202
|
-
return effect.Option.match(decodeGitHubAuthStatusJson(text), {
|
|
203
|
-
onNone: () => ({
|
|
204
|
-
parsed: false,
|
|
205
|
-
accounts: []
|
|
206
|
-
}),
|
|
207
|
-
onSome: (status) => ({
|
|
208
|
-
parsed: true,
|
|
209
|
-
accounts: Object.values(status.hosts).flatMap((accounts) => accounts.flatMap((account) => {
|
|
210
|
-
const host = nonEmptyString(account.host);
|
|
211
|
-
const login = nonEmptyString(account.login);
|
|
212
|
-
if (host === null || login === null) return [];
|
|
213
|
-
return [{
|
|
214
|
-
host: host.toLowerCase(),
|
|
215
|
-
account: login,
|
|
216
|
-
authenticated: account.state === "success",
|
|
217
|
-
active: account.active,
|
|
218
|
-
error: account.error?.trim() || null
|
|
219
|
-
}];
|
|
220
|
-
}))
|
|
221
|
-
})
|
|
222
|
-
});
|
|
223
|
-
}
|
|
224
|
-
function findAuthenticatedGitHubAccount(accounts) {
|
|
225
|
-
return accounts.find((account) => account.authenticated && account.active) ?? accounts.find((account) => account.authenticated);
|
|
226
|
-
}
|
|
227
|
-
//#endregion
|
|
228
|
-
//#region src/sourceControl/gitLabAuthStatus.ts
|
|
229
|
-
const HOST_LINE_PATTERN = /^(?:[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?|\[[a-f0-9:.]+\])(?::\d+)?$/iu;
|
|
230
|
-
const LOGGED_IN_PATTERN = /Logged in to .+? as\s+([^\s(]+)/iu;
|
|
231
|
-
function parseGitLabAuthStatusHosts(text) {
|
|
232
|
-
const hosts = [];
|
|
233
|
-
let currentHost = null;
|
|
234
|
-
let currentLines = [];
|
|
235
|
-
const flush = () => {
|
|
236
|
-
if (currentHost === null) return;
|
|
237
|
-
const account = LOGGED_IN_PATTERN.exec(currentLines.join("\n"))?.[1]?.trim() || null;
|
|
238
|
-
hosts.push({
|
|
239
|
-
host: currentHost,
|
|
240
|
-
account,
|
|
241
|
-
authenticated: account !== null
|
|
242
|
-
});
|
|
243
|
-
currentHost = null;
|
|
244
|
-
currentLines = [];
|
|
245
|
-
};
|
|
246
|
-
for (const rawLine of text.split(/\r?\n/)) {
|
|
247
|
-
const line = rawLine.trim();
|
|
248
|
-
if (line.length === 0) continue;
|
|
249
|
-
if (rawLine.length === rawLine.trimStart().length && HOST_LINE_PATTERN.test(line)) {
|
|
250
|
-
flush();
|
|
251
|
-
currentHost = line.toLowerCase();
|
|
252
|
-
continue;
|
|
253
|
-
}
|
|
254
|
-
if (currentHost !== null) currentLines.push(line);
|
|
255
|
-
}
|
|
256
|
-
flush();
|
|
257
|
-
return hosts;
|
|
258
|
-
}
|
|
259
|
-
function findAuthenticatedGitLabHost(hosts) {
|
|
260
|
-
return hosts.find((host) => host.authenticated);
|
|
261
|
-
}
|
|
262
|
-
//#endregion
|
|
263
166
|
//#region src/sourceControl/SourceControlProviderDiscovery.ts
|
|
264
167
|
function firstNonEmptyLine(text) {
|
|
265
168
|
const line = text.split(/\r?\n/).map((entry) => entry.trim()).find((entry) => entry.length > 0);
|
|
@@ -404,6 +307,103 @@ const refineUnknownRemoteProvider = effect.Effect.fn("refineUnknownRemoteProvide
|
|
|
404
307
|
} : context;
|
|
405
308
|
});
|
|
406
309
|
//#endregion
|
|
310
|
+
//#region src/sourceControl/SourceControlProvider.ts
|
|
311
|
+
function parseSourceControlOwnerRef(headSelector) {
|
|
312
|
+
const match = /^([^:/\s]+):(.+)$/u.exec(headSelector.trim());
|
|
313
|
+
const owner = match?.[1]?.trim();
|
|
314
|
+
const refName = match?.[2]?.trim();
|
|
315
|
+
return owner && refName ? {
|
|
316
|
+
owner,
|
|
317
|
+
refName
|
|
318
|
+
} : void 0;
|
|
319
|
+
}
|
|
320
|
+
function normalizeSourceBranch(headSelector) {
|
|
321
|
+
return parseSourceControlOwnerRef(headSelector)?.refName ?? headSelector.trim();
|
|
322
|
+
}
|
|
323
|
+
function sourceBranch(input) {
|
|
324
|
+
return input.source?.refName ?? normalizeSourceBranch(input.headSelector);
|
|
325
|
+
}
|
|
326
|
+
function sourceControlRefFromInput(input) {
|
|
327
|
+
return input.source ?? parseSourceControlOwnerRef(input.headSelector);
|
|
328
|
+
}
|
|
329
|
+
var SourceControlProvider = class extends effect.Context.Service()("ryco/source-control/SourceControlProvider") {};
|
|
330
|
+
//#endregion
|
|
331
|
+
//#region src/sourceControl/gitHubAuthStatus.ts
|
|
332
|
+
const GitHubAuthStatusAccountSchema = effect.Schema.Struct({
|
|
333
|
+
state: effect.Schema.String,
|
|
334
|
+
error: effect.Schema.optional(effect.Schema.String),
|
|
335
|
+
active: effect.Schema.Boolean,
|
|
336
|
+
host: effect.Schema.String,
|
|
337
|
+
login: effect.Schema.String
|
|
338
|
+
});
|
|
339
|
+
const GitHubAuthStatusSchema = effect.Schema.Struct({ hosts: effect.Schema.Record(effect.Schema.String, effect.Schema.Array(GitHubAuthStatusAccountSchema)) });
|
|
340
|
+
const decodeGitHubAuthStatusJson = effect.Schema.decodeUnknownOption(effect.Schema.fromJsonString(GitHubAuthStatusSchema));
|
|
341
|
+
function nonEmptyString(value) {
|
|
342
|
+
const trimmed = value.trim();
|
|
343
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
344
|
+
}
|
|
345
|
+
function parseGitHubAuthStatus(text) {
|
|
346
|
+
return effect.Option.match(decodeGitHubAuthStatusJson(text), {
|
|
347
|
+
onNone: () => ({
|
|
348
|
+
parsed: false,
|
|
349
|
+
accounts: []
|
|
350
|
+
}),
|
|
351
|
+
onSome: (status) => ({
|
|
352
|
+
parsed: true,
|
|
353
|
+
accounts: Object.values(status.hosts).flatMap((accounts) => accounts.flatMap((account) => {
|
|
354
|
+
const host = nonEmptyString(account.host);
|
|
355
|
+
const login = nonEmptyString(account.login);
|
|
356
|
+
if (host === null || login === null) return [];
|
|
357
|
+
return [{
|
|
358
|
+
host: host.toLowerCase(),
|
|
359
|
+
account: login,
|
|
360
|
+
authenticated: account.state === "success",
|
|
361
|
+
active: account.active,
|
|
362
|
+
error: account.error?.trim() || null
|
|
363
|
+
}];
|
|
364
|
+
}))
|
|
365
|
+
})
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
function findAuthenticatedGitHubAccount(accounts) {
|
|
369
|
+
return accounts.find((account) => account.authenticated && account.active) ?? accounts.find((account) => account.authenticated);
|
|
370
|
+
}
|
|
371
|
+
//#endregion
|
|
372
|
+
//#region src/sourceControl/gitLabAuthStatus.ts
|
|
373
|
+
const HOST_LINE_PATTERN = /^(?:[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?|\[[a-f0-9:.]+\])(?::\d+)?$/iu;
|
|
374
|
+
const LOGGED_IN_PATTERN = /Logged in to .+? as\s+([^\s(]+)/iu;
|
|
375
|
+
function parseGitLabAuthStatusHosts(text) {
|
|
376
|
+
const hosts = [];
|
|
377
|
+
let currentHost = null;
|
|
378
|
+
let currentLines = [];
|
|
379
|
+
const flush = () => {
|
|
380
|
+
if (currentHost === null) return;
|
|
381
|
+
const account = LOGGED_IN_PATTERN.exec(currentLines.join("\n"))?.[1]?.trim() || null;
|
|
382
|
+
hosts.push({
|
|
383
|
+
host: currentHost,
|
|
384
|
+
account,
|
|
385
|
+
authenticated: account !== null
|
|
386
|
+
});
|
|
387
|
+
currentHost = null;
|
|
388
|
+
currentLines = [];
|
|
389
|
+
};
|
|
390
|
+
for (const rawLine of text.split(/\r?\n/)) {
|
|
391
|
+
const line = rawLine.trim();
|
|
392
|
+
if (line.length === 0) continue;
|
|
393
|
+
if (rawLine.length === rawLine.trimStart().length && HOST_LINE_PATTERN.test(line)) {
|
|
394
|
+
flush();
|
|
395
|
+
currentHost = line.toLowerCase();
|
|
396
|
+
continue;
|
|
397
|
+
}
|
|
398
|
+
if (currentHost !== null) currentLines.push(line);
|
|
399
|
+
}
|
|
400
|
+
flush();
|
|
401
|
+
return hosts;
|
|
402
|
+
}
|
|
403
|
+
function findAuthenticatedGitLabHost(hosts) {
|
|
404
|
+
return hosts.find((host) => host.authenticated);
|
|
405
|
+
}
|
|
406
|
+
//#endregion
|
|
407
407
|
//#region src/sourceControl/SourceControlProviderDiscoveryCatalog.ts
|
|
408
408
|
function parseGitHubAuth(input) {
|
|
409
409
|
const output = combinedAuthOutput(input);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import { An as VcsProcessTimeoutError, Dn as VcsOutputDecodeError, On as VcsProcessExitError, kn as VcsProcessSpawnError, t as collectUint8StreamText } from "./collectUint8StreamText-
|
|
3
|
+
import { An as VcsProcessTimeoutError, Dn as VcsOutputDecodeError, On as VcsProcessExitError, kn as VcsProcessSpawnError, t as collectUint8StreamText } from "./collectUint8StreamText-C2z5Y8tF.mjs";
|
|
4
4
|
import { Cause, Context, Duration, Effect, Exit, Layer, Option, Result, Schema, SchemaGetter, SchemaIssue, SchemaTransformation, Sink, Stream } from "effect";
|
|
5
5
|
import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
|
|
6
6
|
//#region ../../packages/shared/src/schemaJson.ts
|
|
@@ -163,103 +163,6 @@ const make = Effect.fn("makeVcsProcess")(function* () {
|
|
|
163
163
|
});
|
|
164
164
|
const layer = Layer.effect(VcsProcess, make());
|
|
165
165
|
//#endregion
|
|
166
|
-
//#region src/sourceControl/SourceControlProvider.ts
|
|
167
|
-
function parseSourceControlOwnerRef(headSelector) {
|
|
168
|
-
const match = /^([^:/\s]+):(.+)$/u.exec(headSelector.trim());
|
|
169
|
-
const owner = match?.[1]?.trim();
|
|
170
|
-
const refName = match?.[2]?.trim();
|
|
171
|
-
return owner && refName ? {
|
|
172
|
-
owner,
|
|
173
|
-
refName
|
|
174
|
-
} : void 0;
|
|
175
|
-
}
|
|
176
|
-
function normalizeSourceBranch(headSelector) {
|
|
177
|
-
return parseSourceControlOwnerRef(headSelector)?.refName ?? headSelector.trim();
|
|
178
|
-
}
|
|
179
|
-
function sourceBranch(input) {
|
|
180
|
-
return input.source?.refName ?? normalizeSourceBranch(input.headSelector);
|
|
181
|
-
}
|
|
182
|
-
function sourceControlRefFromInput(input) {
|
|
183
|
-
return input.source ?? parseSourceControlOwnerRef(input.headSelector);
|
|
184
|
-
}
|
|
185
|
-
var SourceControlProvider = class extends Context.Service()("ryco/source-control/SourceControlProvider") {};
|
|
186
|
-
//#endregion
|
|
187
|
-
//#region src/sourceControl/gitHubAuthStatus.ts
|
|
188
|
-
const GitHubAuthStatusAccountSchema = Schema.Struct({
|
|
189
|
-
state: Schema.String,
|
|
190
|
-
error: Schema.optional(Schema.String),
|
|
191
|
-
active: Schema.Boolean,
|
|
192
|
-
host: Schema.String,
|
|
193
|
-
login: Schema.String
|
|
194
|
-
});
|
|
195
|
-
const GitHubAuthStatusSchema = Schema.Struct({ hosts: Schema.Record(Schema.String, Schema.Array(GitHubAuthStatusAccountSchema)) });
|
|
196
|
-
const decodeGitHubAuthStatusJson = Schema.decodeUnknownOption(Schema.fromJsonString(GitHubAuthStatusSchema));
|
|
197
|
-
function nonEmptyString(value) {
|
|
198
|
-
const trimmed = value.trim();
|
|
199
|
-
return trimmed.length > 0 ? trimmed : null;
|
|
200
|
-
}
|
|
201
|
-
function parseGitHubAuthStatus(text) {
|
|
202
|
-
return Option.match(decodeGitHubAuthStatusJson(text), {
|
|
203
|
-
onNone: () => ({
|
|
204
|
-
parsed: false,
|
|
205
|
-
accounts: []
|
|
206
|
-
}),
|
|
207
|
-
onSome: (status) => ({
|
|
208
|
-
parsed: true,
|
|
209
|
-
accounts: Object.values(status.hosts).flatMap((accounts) => accounts.flatMap((account) => {
|
|
210
|
-
const host = nonEmptyString(account.host);
|
|
211
|
-
const login = nonEmptyString(account.login);
|
|
212
|
-
if (host === null || login === null) return [];
|
|
213
|
-
return [{
|
|
214
|
-
host: host.toLowerCase(),
|
|
215
|
-
account: login,
|
|
216
|
-
authenticated: account.state === "success",
|
|
217
|
-
active: account.active,
|
|
218
|
-
error: account.error?.trim() || null
|
|
219
|
-
}];
|
|
220
|
-
}))
|
|
221
|
-
})
|
|
222
|
-
});
|
|
223
|
-
}
|
|
224
|
-
function findAuthenticatedGitHubAccount(accounts) {
|
|
225
|
-
return accounts.find((account) => account.authenticated && account.active) ?? accounts.find((account) => account.authenticated);
|
|
226
|
-
}
|
|
227
|
-
//#endregion
|
|
228
|
-
//#region src/sourceControl/gitLabAuthStatus.ts
|
|
229
|
-
const HOST_LINE_PATTERN = /^(?:[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?|\[[a-f0-9:.]+\])(?::\d+)?$/iu;
|
|
230
|
-
const LOGGED_IN_PATTERN = /Logged in to .+? as\s+([^\s(]+)/iu;
|
|
231
|
-
function parseGitLabAuthStatusHosts(text) {
|
|
232
|
-
const hosts = [];
|
|
233
|
-
let currentHost = null;
|
|
234
|
-
let currentLines = [];
|
|
235
|
-
const flush = () => {
|
|
236
|
-
if (currentHost === null) return;
|
|
237
|
-
const account = LOGGED_IN_PATTERN.exec(currentLines.join("\n"))?.[1]?.trim() || null;
|
|
238
|
-
hosts.push({
|
|
239
|
-
host: currentHost,
|
|
240
|
-
account,
|
|
241
|
-
authenticated: account !== null
|
|
242
|
-
});
|
|
243
|
-
currentHost = null;
|
|
244
|
-
currentLines = [];
|
|
245
|
-
};
|
|
246
|
-
for (const rawLine of text.split(/\r?\n/)) {
|
|
247
|
-
const line = rawLine.trim();
|
|
248
|
-
if (line.length === 0) continue;
|
|
249
|
-
if (rawLine.length === rawLine.trimStart().length && HOST_LINE_PATTERN.test(line)) {
|
|
250
|
-
flush();
|
|
251
|
-
currentHost = line.toLowerCase();
|
|
252
|
-
continue;
|
|
253
|
-
}
|
|
254
|
-
if (currentHost !== null) currentLines.push(line);
|
|
255
|
-
}
|
|
256
|
-
flush();
|
|
257
|
-
return hosts;
|
|
258
|
-
}
|
|
259
|
-
function findAuthenticatedGitLabHost(hosts) {
|
|
260
|
-
return hosts.find((host) => host.authenticated);
|
|
261
|
-
}
|
|
262
|
-
//#endregion
|
|
263
166
|
//#region src/sourceControl/SourceControlProviderDiscovery.ts
|
|
264
167
|
function firstNonEmptyLine(text) {
|
|
265
168
|
const line = text.split(/\r?\n/).map((entry) => entry.trim()).find((entry) => entry.length > 0);
|
|
@@ -404,6 +307,103 @@ const refineUnknownRemoteProvider = Effect.fn("refineUnknownRemoteProvider")(fun
|
|
|
404
307
|
} : context;
|
|
405
308
|
});
|
|
406
309
|
//#endregion
|
|
310
|
+
//#region src/sourceControl/SourceControlProvider.ts
|
|
311
|
+
function parseSourceControlOwnerRef(headSelector) {
|
|
312
|
+
const match = /^([^:/\s]+):(.+)$/u.exec(headSelector.trim());
|
|
313
|
+
const owner = match?.[1]?.trim();
|
|
314
|
+
const refName = match?.[2]?.trim();
|
|
315
|
+
return owner && refName ? {
|
|
316
|
+
owner,
|
|
317
|
+
refName
|
|
318
|
+
} : void 0;
|
|
319
|
+
}
|
|
320
|
+
function normalizeSourceBranch(headSelector) {
|
|
321
|
+
return parseSourceControlOwnerRef(headSelector)?.refName ?? headSelector.trim();
|
|
322
|
+
}
|
|
323
|
+
function sourceBranch(input) {
|
|
324
|
+
return input.source?.refName ?? normalizeSourceBranch(input.headSelector);
|
|
325
|
+
}
|
|
326
|
+
function sourceControlRefFromInput(input) {
|
|
327
|
+
return input.source ?? parseSourceControlOwnerRef(input.headSelector);
|
|
328
|
+
}
|
|
329
|
+
var SourceControlProvider = class extends Context.Service()("ryco/source-control/SourceControlProvider") {};
|
|
330
|
+
//#endregion
|
|
331
|
+
//#region src/sourceControl/gitHubAuthStatus.ts
|
|
332
|
+
const GitHubAuthStatusAccountSchema = Schema.Struct({
|
|
333
|
+
state: Schema.String,
|
|
334
|
+
error: Schema.optional(Schema.String),
|
|
335
|
+
active: Schema.Boolean,
|
|
336
|
+
host: Schema.String,
|
|
337
|
+
login: Schema.String
|
|
338
|
+
});
|
|
339
|
+
const GitHubAuthStatusSchema = Schema.Struct({ hosts: Schema.Record(Schema.String, Schema.Array(GitHubAuthStatusAccountSchema)) });
|
|
340
|
+
const decodeGitHubAuthStatusJson = Schema.decodeUnknownOption(Schema.fromJsonString(GitHubAuthStatusSchema));
|
|
341
|
+
function nonEmptyString(value) {
|
|
342
|
+
const trimmed = value.trim();
|
|
343
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
344
|
+
}
|
|
345
|
+
function parseGitHubAuthStatus(text) {
|
|
346
|
+
return Option.match(decodeGitHubAuthStatusJson(text), {
|
|
347
|
+
onNone: () => ({
|
|
348
|
+
parsed: false,
|
|
349
|
+
accounts: []
|
|
350
|
+
}),
|
|
351
|
+
onSome: (status) => ({
|
|
352
|
+
parsed: true,
|
|
353
|
+
accounts: Object.values(status.hosts).flatMap((accounts) => accounts.flatMap((account) => {
|
|
354
|
+
const host = nonEmptyString(account.host);
|
|
355
|
+
const login = nonEmptyString(account.login);
|
|
356
|
+
if (host === null || login === null) return [];
|
|
357
|
+
return [{
|
|
358
|
+
host: host.toLowerCase(),
|
|
359
|
+
account: login,
|
|
360
|
+
authenticated: account.state === "success",
|
|
361
|
+
active: account.active,
|
|
362
|
+
error: account.error?.trim() || null
|
|
363
|
+
}];
|
|
364
|
+
}))
|
|
365
|
+
})
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
function findAuthenticatedGitHubAccount(accounts) {
|
|
369
|
+
return accounts.find((account) => account.authenticated && account.active) ?? accounts.find((account) => account.authenticated);
|
|
370
|
+
}
|
|
371
|
+
//#endregion
|
|
372
|
+
//#region src/sourceControl/gitLabAuthStatus.ts
|
|
373
|
+
const HOST_LINE_PATTERN = /^(?:[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?|\[[a-f0-9:.]+\])(?::\d+)?$/iu;
|
|
374
|
+
const LOGGED_IN_PATTERN = /Logged in to .+? as\s+([^\s(]+)/iu;
|
|
375
|
+
function parseGitLabAuthStatusHosts(text) {
|
|
376
|
+
const hosts = [];
|
|
377
|
+
let currentHost = null;
|
|
378
|
+
let currentLines = [];
|
|
379
|
+
const flush = () => {
|
|
380
|
+
if (currentHost === null) return;
|
|
381
|
+
const account = LOGGED_IN_PATTERN.exec(currentLines.join("\n"))?.[1]?.trim() || null;
|
|
382
|
+
hosts.push({
|
|
383
|
+
host: currentHost,
|
|
384
|
+
account,
|
|
385
|
+
authenticated: account !== null
|
|
386
|
+
});
|
|
387
|
+
currentHost = null;
|
|
388
|
+
currentLines = [];
|
|
389
|
+
};
|
|
390
|
+
for (const rawLine of text.split(/\r?\n/)) {
|
|
391
|
+
const line = rawLine.trim();
|
|
392
|
+
if (line.length === 0) continue;
|
|
393
|
+
if (rawLine.length === rawLine.trimStart().length && HOST_LINE_PATTERN.test(line)) {
|
|
394
|
+
flush();
|
|
395
|
+
currentHost = line.toLowerCase();
|
|
396
|
+
continue;
|
|
397
|
+
}
|
|
398
|
+
if (currentHost !== null) currentLines.push(line);
|
|
399
|
+
}
|
|
400
|
+
flush();
|
|
401
|
+
return hosts;
|
|
402
|
+
}
|
|
403
|
+
function findAuthenticatedGitLabHost(hosts) {
|
|
404
|
+
return hosts.find((host) => host.authenticated);
|
|
405
|
+
}
|
|
406
|
+
//#endregion
|
|
407
407
|
//#region src/sourceControl/SourceControlProviderDiscoveryCatalog.ts
|
|
408
408
|
function parseGitHubAuth(input) {
|
|
409
409
|
const output = combinedAuthOutput(input);
|
|
@@ -566,4 +566,4 @@ function makeForgejoDiscovery(forgejo) {
|
|
|
566
566
|
};
|
|
567
567
|
}
|
|
568
568
|
//#endregion
|
|
569
|
-
export { formatSchemaError as _, makeForgejoDiscovery as a,
|
|
569
|
+
export { formatSchemaError as _, makeForgejoDiscovery as a, sourceBranch as c, firstNonEmptyLine as d, probeSourceControlProvider as f, decodeJsonResult as g, layer as h, makeBitbucketDiscovery as i, sourceControlRefFromInput as l, VcsProcess as m, githubDiscovery as n, SourceControlProvider as o, refineUnknownRemoteProvider as p, gitlabDiscovery as r, parseSourceControlOwnerRef as s, azureDevOpsDiscovery as t, detailFromCause as u, fromLenientJson as v };
|