@phosart/devtool 0.2.47 → 0.2.49
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/build/client/editor/_app/immutable/assets/0.fmfPq7Hd.css +1 -0
- package/build/client/editor/_app/immutable/assets/0.fmfPq7Hd.css.br +0 -0
- package/build/client/editor/_app/immutable/assets/0.fmfPq7Hd.css.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/0jtg-ij-.js +5 -0
- package/build/client/editor/_app/immutable/chunks/0jtg-ij-.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/0jtg-ij-.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/{DWDV1D8A.js → 6tvYKAmn.js} +1 -1
- package/build/client/editor/_app/immutable/chunks/6tvYKAmn.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/6tvYKAmn.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/{CowqNTAq.js → BMYR3irC.js} +1 -1
- package/build/client/editor/_app/immutable/chunks/BMYR3irC.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/BMYR3irC.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/{Q5YDOAQM.js → Blj0iJy8.js} +1 -1
- package/build/client/editor/_app/immutable/chunks/Blj0iJy8.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/Blj0iJy8.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/{CS_b2PAg.js → Bz-7VDAx.js} +1 -1
- package/build/client/editor/_app/immutable/chunks/Bz-7VDAx.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/Bz-7VDAx.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/{JU9Jl1QW.js → CNYSskFd.js} +1 -1
- package/build/client/editor/_app/immutable/chunks/CNYSskFd.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/CNYSskFd.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/{DIpemLGn.js → CP5mNAdX.js} +1 -1
- package/build/client/editor/_app/immutable/chunks/CP5mNAdX.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/CP5mNAdX.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/{Ch_LU2va.js → CmxWSaN-.js} +1 -1
- package/build/client/editor/_app/immutable/chunks/CmxWSaN-.js.br +2 -0
- package/build/client/editor/_app/immutable/chunks/CmxWSaN-.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/{DpWCaFCG.js → CnTWKphq.js} +2 -2
- package/build/client/editor/_app/immutable/chunks/CnTWKphq.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/CnTWKphq.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/{BfqZkptm.js → ComYhuff.js} +1 -1
- package/build/client/editor/_app/immutable/chunks/ComYhuff.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/ComYhuff.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/{BjxZcgsG.js → D66aDP45.js} +1 -1
- package/build/client/editor/_app/immutable/chunks/D66aDP45.js.br +2 -0
- package/build/client/editor/_app/immutable/chunks/D66aDP45.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/{DQ75mkue.js → DtHgKoi8.js} +1 -1
- package/build/client/editor/_app/immutable/chunks/DtHgKoi8.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/DtHgKoi8.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/{zM7jDqxu.js → Dy1eX3jv.js} +1 -1
- package/build/client/editor/_app/immutable/chunks/Dy1eX3jv.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/Dy1eX3jv.js.gz +0 -0
- package/build/client/editor/_app/immutable/entry/{app.DPY3PNea.js → app.BJ28OVx_.js} +2 -2
- package/build/client/editor/_app/immutable/entry/app.BJ28OVx_.js.br +0 -0
- package/build/client/editor/_app/immutable/entry/app.BJ28OVx_.js.gz +0 -0
- package/build/client/editor/_app/immutable/entry/start.GO7iGqti.js +1 -0
- package/build/client/editor/_app/immutable/entry/start.GO7iGqti.js.br +2 -0
- package/build/client/editor/_app/immutable/entry/start.GO7iGqti.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/0.CgqsGq0P.js +1 -0
- package/build/client/editor/_app/immutable/nodes/0.CgqsGq0P.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/0.CgqsGq0P.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/{1.BEM-zhE1.js → 1.CrqnT5Ju.js} +1 -1
- package/build/client/editor/_app/immutable/nodes/1.CrqnT5Ju.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/1.CrqnT5Ju.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/{2.CzfJppQf.js → 2.jvJn7-Rv.js} +1 -1
- package/build/client/editor/_app/immutable/nodes/2.jvJn7-Rv.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/2.jvJn7-Rv.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/{3.4dnkdNVC.js → 3.Ddtox1TF.js} +1 -1
- package/build/client/editor/_app/immutable/nodes/3.Ddtox1TF.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/3.Ddtox1TF.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/{4.B2sknkBA.js → 4.BQxGGUcP.js} +1 -1
- package/build/client/editor/_app/immutable/nodes/4.BQxGGUcP.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/4.BQxGGUcP.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/{5.BzmOvLAN.js → 5.DdCEpUwc.js} +1 -1
- package/build/client/editor/_app/immutable/nodes/5.DdCEpUwc.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/5.DdCEpUwc.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/6.CuWU3NCd.js +1 -0
- package/build/client/editor/_app/immutable/nodes/6.CuWU3NCd.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/6.CuWU3NCd.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/{7.CsCUsC1_.js → 7.BaPAEX0H.js} +1 -1
- package/build/client/editor/_app/immutable/nodes/7.BaPAEX0H.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/7.BaPAEX0H.js.gz +0 -0
- package/build/client/editor/_app/version.json +1 -1
- package/build/client/editor/_app/version.json.br +0 -0
- package/build/client/editor/_app/version.json.gz +0 -0
- package/build/server/chunks/{0-qetgGbzB.js → 0-BtI1HKxw.js} +4 -4
- package/build/server/chunks/0-BtI1HKxw.js.map +1 -0
- package/build/server/chunks/{1-A_JUDZLe.js → 1-qfZ2DijM.js} +2 -2
- package/build/server/chunks/{1-A_JUDZLe.js.map → 1-qfZ2DijM.js.map} +1 -1
- package/build/server/chunks/{2-DB9DrAxO.js → 2-MER7Zxku.js} +2 -2
- package/build/server/chunks/{2-DB9DrAxO.js.map → 2-MER7Zxku.js.map} +1 -1
- package/build/server/chunks/{3-D0sadzHz.js → 3-CB-gwlph.js} +2 -2
- package/build/server/chunks/{3-D0sadzHz.js.map → 3-CB-gwlph.js.map} +1 -1
- package/build/server/chunks/{4-BtKxhyAx.js → 4-CCCkzrmi.js} +2 -2
- package/build/server/chunks/{4-BtKxhyAx.js.map → 4-CCCkzrmi.js.map} +1 -1
- package/build/server/chunks/{5-CF-CcrxH.js → 5-D1P4KAH4.js} +2 -2
- package/build/server/chunks/{5-CF-CcrxH.js.map → 5-D1P4KAH4.js.map} +1 -1
- package/build/server/chunks/{6-DVnpAIm1.js → 6-B3Tm_G6b.js} +3 -3
- package/build/server/chunks/6-B3Tm_G6b.js.map +1 -0
- package/build/server/chunks/{7-1xehfTau.js → 7-BOYK6Oeb.js} +2 -2
- package/build/server/chunks/7-BOYK6Oeb.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-x1JCI-Ud.js → _layout.svelte-BHetA6tT.js} +37 -5
- package/build/server/chunks/_layout.svelte-BHetA6tT.js.map +1 -0
- package/build/server/chunks/{_page.svelte-B-Qq1yLz.js → _page.svelte-CgErp_F_.js} +3 -5
- package/build/server/chunks/_page.svelte-CgErp_F_.js.map +1 -0
- package/build/server/chunks/_server.ts-DaG2SqbQ.js.map +1 -1
- package/build/server/chunks/_server.ts-LdnFfvoN.js +144 -0
- package/build/server/chunks/_server.ts-LdnFfvoN.js.map +1 -0
- package/build/server/chunks/_server.ts-OYdhWjAm.js.map +1 -1
- package/build/server/index.js +1 -1
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +20 -13
- package/build/server/manifest.js.map +1 -1
- package/package.json +1 -1
- package/build/client/editor/_app/immutable/assets/0.Bd8J-lYu.css +0 -1
- package/build/client/editor/_app/immutable/assets/0.Bd8J-lYu.css.br +0 -0
- package/build/client/editor/_app/immutable/assets/0.Bd8J-lYu.css.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/BfqZkptm.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/BfqZkptm.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/BjxZcgsG.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/BjxZcgsG.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/CS_b2PAg.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/CS_b2PAg.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/Ch_LU2va.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/Ch_LU2va.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/CowqNTAq.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/CowqNTAq.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/DIpemLGn.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/DIpemLGn.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/DQ75mkue.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/DQ75mkue.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/DQfcrQAO.js +0 -1
- package/build/client/editor/_app/immutable/chunks/DQfcrQAO.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/DQfcrQAO.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/DWDV1D8A.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/DWDV1D8A.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/DpWCaFCG.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/DpWCaFCG.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/DwRqxf16.js +0 -5
- package/build/client/editor/_app/immutable/chunks/DwRqxf16.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/DwRqxf16.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/JU9Jl1QW.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/JU9Jl1QW.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/Q5YDOAQM.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/Q5YDOAQM.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/zM7jDqxu.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/zM7jDqxu.js.gz +0 -0
- package/build/client/editor/_app/immutable/entry/app.DPY3PNea.js.br +0 -0
- package/build/client/editor/_app/immutable/entry/app.DPY3PNea.js.gz +0 -0
- package/build/client/editor/_app/immutable/entry/start.Bks0OdY0.js +0 -1
- package/build/client/editor/_app/immutable/entry/start.Bks0OdY0.js.br +0 -2
- package/build/client/editor/_app/immutable/entry/start.Bks0OdY0.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/0.B6JpQ4sE.js +0 -1
- package/build/client/editor/_app/immutable/nodes/0.B6JpQ4sE.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/0.B6JpQ4sE.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/1.BEM-zhE1.js.br +0 -3
- package/build/client/editor/_app/immutable/nodes/1.BEM-zhE1.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/2.CzfJppQf.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/2.CzfJppQf.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/3.4dnkdNVC.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/3.4dnkdNVC.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/4.B2sknkBA.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/4.B2sknkBA.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/5.BzmOvLAN.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/5.BzmOvLAN.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/6.XqE8vw-h.js +0 -1
- package/build/client/editor/_app/immutable/nodes/6.XqE8vw-h.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/6.XqE8vw-h.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/7.CsCUsC1_.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/7.CsCUsC1_.js.gz +0 -0
- package/build/server/chunks/0-qetgGbzB.js.map +0 -1
- package/build/server/chunks/6-DVnpAIm1.js.map +0 -1
- package/build/server/chunks/7-1xehfTau.js.map +0 -1
- package/build/server/chunks/_layout.svelte-x1JCI-Ud.js.map +0 -1
- package/build/server/chunks/_page.svelte-B-Qq1yLz.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-OYdhWjAm.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/git/login/flow/request_access_token/_server.ts.js"],"sourcesContent":["import { r as requestToken } from \"../../../../../../../chunks/github.js\";\nimport { error, json } from \"@sveltejs/kit\";\nimport fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport os from \"node:os\";\nimport { spawn } from \"node:child_process\";\nconst winscript = '# win-secret.ps1\\n# Reads stdin: COMMAND\\\\nHANDLE\\\\n[VALUE_B64]\\\\n\\n# Writes stdout: STATUS\\\\nPAYLOAD\\\\n\\n\\n$ErrorActionPreference = \"Stop\"\\n\\nfunction Out-TwoLines([string]$status, [string]$payload) {\\n Write-Output $status\\n Write-Output $payload\\n}\\n\\ntry {\\n $lines = @()\\n while ($null -ne ($l = [Console]::In.ReadLine())) { $lines += $l }\\n\\n if ($lines.Count -lt 2) { Out-TwoLines \"ERROR\" \"invalid input\"; exit 0 }\\n\\n $cmd = $lines[0].Trim()\\n $handle = $lines[1].Trim()\\n\\n if ($handle -notmatch \\'^[A-Za-z0-9._-]{1,128}$\\') {\\n Out-TwoLines \"ERROR\" \"invalid handle\"\\n exit 0\\n }\\n\\n $baseDir = Join-Path $env:LOCALAPPDATA \"phosart-devtool\\\\secrets\"\\n [IO.Directory]::CreateDirectory($baseDir) | Out-Null\\n $path = Join-Path $baseDir \"$handle.bin\"\\n\\n Add-Type -AssemblyName System.Security\\n\\n function Protect([byte[]]$plain) {\\n return [Security.Cryptography.ProtectedData]::Protect(\\n $plain, $null, [Security.Cryptography.DataProtectionScope]::CurrentUser\\n )\\n }\\n\\n function Unprotect([byte[]]$cipher) {\\n return [Security.Cryptography.ProtectedData]::Unprotect(\\n $cipher, $null, [Security.Cryptography.DataProtectionScope]::CurrentUser\\n )\\n }\\n\\n function ReadExistingB64OrNull() {\\n if (-not (Test-Path -LiteralPath $path)) { return $null }\\n $cipher = [IO.File]::ReadAllBytes($path)\\n $plain = Unprotect $cipher\\n return [Convert]::ToBase64String($plain)\\n }\\n\\n if ($cmd -eq \"READ\") {\\n $cur = ReadExistingB64OrNull\\n if ($null -eq $cur) { Out-TwoLines \"MISSING\" \"null\" } else { Out-TwoLines \"OK\" $cur }\\n exit 0\\n }\\n\\n if ($cmd -eq \"WRITE\") {\\n if ($lines.Count -lt 3) { Out-TwoLines \"ERROR\" \"missing value\"; exit 0 }\\n $valueB64 = $lines[2].Trim()\\n $newPlain = [Convert]::FromBase64String($valueB64)\\n\\n $old = ReadExistingB64OrNull\\n\\n $cipher = Protect $newPlain\\n [IO.File]::WriteAllBytes($path, $cipher)\\n\\n if ($null -eq $old) { Out-TwoLines \"OK\" \"null\" } else { Out-TwoLines \"OK\" $old }\\n exit 0\\n }\\n\\n if ($cmd -eq \"DELETE\") {\\n $old = ReadExistingB64OrNull\\n if (Test-Path -LiteralPath $path) { Remove-Item -LiteralPath $path -Force }\\n if ($null -eq $old) { Out-TwoLines \"MISSING\" \"null\" } else { Out-TwoLines \"OK\" $old }\\n exit 0\\n }\\n\\n Out-TwoLines \"ERROR\" \"unknown command\"\\n} catch {\\n Out-TwoLines \"ERROR\" ($_.Exception.Message.Replace(\"`r\",\"\").Replace(\"`n\",\" \"))\\n}\\n';\nconst macscript = '#!/usr/bin/env bash\\n# mac-secret.sh\\n\\nset -euo pipefail\\n\\nread -r CMD || true\\nread -r HANDLE || true\\nVALUE_B64=\"\"\\nif [[ \"${CMD:-}\" == \"WRITE\" ]]; then\\n read -r VALUE_B64 || VALUE_B64=\"\"\\nfi\\n\\nSERVICE=\"com.phosart.devtool.secrets\"\\n\\ntwo_lines() { printf \"%s\\\\n%s\\\\n\" \"$1\" \"$2\"; }\\n\\nvalid_handle() {\\n [[ \"$HANDLE\" =~ ^[A-Za-z0-9._-]{1,128}$ ]]\\n}\\n\\nif ! valid_handle; then\\n two_lines \"ERROR\" \"invalid handle\"\\n exit 0\\nfi\\n\\nread_existing() {\\n # Prints existing secret to stdout, or returns nonzero if not found.\\n security find-generic-password -a \"$HANDLE\" -s \"$SERVICE\" -w 2>/dev/null\\n}\\n\\ncase \"${CMD:-}\" in\\n READ)\\n if out=\"$(read_existing)\"; then\\n two_lines \"OK\" \"$out\"\\n else\\n two_lines \"MISSING\" \"null\"\\n fi\\n ;;\\n\\n WRITE)\\n old=\"null\"\\n if out=\"$(read_existing)\"; then old=\"$out\"; fi\\n\\n # Add or update\\n security add-generic-password -a \"$HANDLE\" -s \"$SERVICE\" -w \"$VALUE_B64\" -U >/dev/null 2>&1\\n\\n two_lines \"OK\" \"$old\"\\n ;;\\n\\n DELETE)\\n if out=\"$(read_existing)\"; then\\n security delete-generic-password -a \"$HANDLE\" -s \"$SERVICE\" >/dev/null 2>&1 || true\\n two_lines \"OK\" \"$out\"\\n else\\n two_lines \"MISSING\" \"null\"\\n fi\\n ;;\\n\\n *)\\n two_lines \"ERROR\" \"unknown command\"\\n ;;\\nesac\\n';\nconst linuxscript = '#!/usr/bin/env bash\\n\\nset -euo pipefail\\n\\nread -r CMD || true\\nread -r HANDLE || true\\nVALUE_B64=\"\"\\nif [[ \"${CMD:-}\" == \"WRITE\" ]]; then\\n read -r VALUE_B64 || VALUE_B64=\"\"\\nfi\\n\\nSERVICE=\"com.phosart.devtool.secrets\"\\n\\ntwo_lines() { printf \"%s\\\\n%s\\\\n\" \"$1\" \"$2\"; }\\n\\nvalid_handle() {\\n [[ \"$HANDLE\" =~ ^[A-Za-z0-9._-]{1,128}$ ]]\\n}\\n\\nif ! valid_handle; then\\n two_lines \"ERROR\" \"invalid handle\"\\n exit 0\\nfi\\n\\nif ! command -v secret-tool >/dev/null 2>&1; then\\n two_lines \"NOT_SUPPORTED\" \"null\"\\n exit 0\\nfi\\n\\nread_existing() {\\n # secret-tool lookup returns 0 with value, or 1 if not found.\\n secret-tool lookup service \"$SERVICE\" account \"$HANDLE\" 2>/dev/null\\n}\\n\\ncase \"${CMD:-}\" in\\n READ)\\n if out=\"$(read_existing)\"; then\\n two_lines \"OK\" \"$out\"\\n else\\n two_lines \"MISSING\" \"null\"\\n fi\\n ;;\\n\\n WRITE)\\n old=\"null\"\\n if out=\"$(read_existing)\"; then old=\"$out\"; fi\\n\\n # store (replace)\\n printf \"%s\" \"$VALUE_B64\" | secret-tool store --label=\"YourApp secret $HANDLE\" service \"$SERVICE\" account \"$HANDLE\" >/dev/null\\n\\n two_lines \"OK\" \"$old\"\\n ;;\\n\\n DELETE)\\n if out=\"$(read_existing)\"; then\\n secret-tool clear service \"$SERVICE\" account \"$HANDLE\" >/dev/null || true\\n two_lines \"OK\" \"$out\"\\n else\\n two_lines \"MISSING\" \"null\"\\n fi\\n ;;\\n\\n *)\\n two_lines \"ERROR\" \"unknown command\"\\n ;;\\nesac\\n';\nlet cachedpath = null;\nasync function scriptpath() {\n if (cachedpath) {\n return cachedpath;\n }\n const platform = os.platform();\n const tmp = await fs.mkdtemp(path.join(os.tmpdir(), \"phosart-devtool\"));\n const toCache = path.resolve(path.join(tmp, `script.${platform === \"win32\" ? \"ps1\" : \"sh\"}`));\n let script = linuxscript;\n if (platform === \"darwin\") {\n script = macscript;\n } else if (platform === \"win32\") {\n script = winscript;\n }\n try {\n await fs.stat(toCache);\n return toCache;\n } catch {\n }\n await fs.writeFile(toCache, script, { encoding: \"utf-8\" });\n await fs.chmod(toCache, 493);\n cachedpath = toCache;\n return cachedpath;\n}\nfunction b64FromBytes(bytes) {\n return Buffer.from(bytes).toString(\"base64\");\n}\nfunction bytesFromB64(b64) {\n return Buffer.from(b64, \"base64\");\n}\nfunction runHelper(helperPath, input, shell = false) {\n return new Promise((resolve) => {\n const child = spawn(helperPath, [], {\n stdio: \"pipe\",\n shell,\n windowsHide: true\n });\n let out = \"\";\n let err = \"\";\n child.stdout.setEncoding(\"utf8\");\n child.stderr.setEncoding(\"utf8\");\n child.stdout.on(\"data\", (d) => out += d);\n child.stderr.on(\"data\", (d) => err += d);\n child.on(\"close\", () => {\n const lines = out.replace(/\\r/g, \"\").split(\"\\n\").filter((l) => l.length > 0);\n const status = lines[0] ?? \"ERROR\";\n const payload = lines[1] ?? \"null\";\n if (status === \"OK\")\n return resolve({ status: \"OK\", value: payload === \"null\" ? null : payload });\n if (status === \"MISSING\") return resolve({ status: \"MISSING\", value: null });\n if (status === \"NOT_SUPPORTED\") return resolve({ status: \"NOT_SUPPORTED\", value: null });\n return resolve({\n status: \"ERROR\",\n value: payload !== \"null\" ? payload : err.trim() || \"unknown error\"\n });\n });\n child.stdin.end(input);\n });\n}\nclass SecretStore {\n #ephemeral = /* @__PURE__ */ new Map();\n async helperCall(cmd, handle, valueB64) {\n const path2 = await scriptpath();\n const p = os.platform();\n if (p === \"win32\") {\n const ps = \"powershell.exe\";\n const args = `-NoProfile -ExecutionPolicy Bypass -File \"${path2}\"`;\n return runHelper(\n `${ps} ${args}`,\n [cmd, handle, ...cmd === \"WRITE\" ? [valueB64 ?? \"\"] : []].join(\"\\n\") + \"\\n\",\n true\n );\n }\n if (p === \"darwin\") {\n return runHelper(\n path2,\n [cmd, handle, ...cmd === \"WRITE\" ? [valueB64 ?? \"\"] : []].join(\"\\n\") + \"\\n\"\n );\n }\n return runHelper(\n path2,\n [cmd, handle, ...cmd === \"WRITE\" ? [valueB64 ?? \"\"] : []].join(\"\\n\") + \"\\n\"\n );\n }\n async read(handle) {\n const res = await this.helperCall(\"READ\", handle);\n if (res.status === \"OK\") return res.value ? bytesFromB64(res.value) : new Uint8Array();\n if (res.status === \"MISSING\") return null;\n if (res.status === \"NOT_SUPPORTED\") {\n const v = this.#ephemeral.get(handle);\n return v ? bytesFromB64(v) : null;\n }\n throw new Error(`secret read failed: ${res.value}`);\n }\n async write(handle, value) {\n const valueB64 = b64FromBytes(value);\n const res = await this.helperCall(\"WRITE\", handle, valueB64);\n if (res.status === \"OK\") {\n this.#ephemeral.set(handle, valueB64);\n return res.value ? bytesFromB64(res.value) : null;\n }\n if (res.status === \"NOT_SUPPORTED\") {\n const old = this.#ephemeral.get(handle) ?? null;\n this.#ephemeral.set(handle, valueB64);\n return old ? bytesFromB64(old) : null;\n }\n throw new Error(`secret write failed: ${res.status === \"ERROR\" ? res.value : \"unknown\"}`);\n }\n async delete(handle) {\n const res = await this.helperCall(\"DELETE\", handle);\n if (res.status === \"OK\") {\n this.#ephemeral.delete(handle);\n return res.value ? bytesFromB64(res.value) : null;\n }\n if (res.status === \"MISSING\") {\n this.#ephemeral.delete(handle);\n return null;\n }\n if (res.status === \"NOT_SUPPORTED\") {\n const old = this.#ephemeral.get(handle) ?? null;\n this.#ephemeral.delete(handle);\n return old ? bytesFromB64(old) : null;\n }\n throw new Error(`secret delete failed: ${res.value}`);\n }\n}\nconst secrets = new SecretStore();\nconst POST = async ({ request }) => {\n const state = await request.json();\n if (state.stage !== \"has_code\") {\n return error(400, \"wrong state\");\n }\n const resp = await requestToken(state.device_code);\n if (resp.access_token) {\n secrets.write(\"gha_token\", Buffer.from(resp.access_token, \"utf-8\"));\n return json({ stage: \"completed\" });\n }\n state.last_attempt = resp.error;\n return json(state);\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;;AAMA,MAAM,SAAS,GAAG,w3EAAw3E;AAC14E,MAAM,SAAS,GAAG,mxCAAmxC;AACryC,MAAM,WAAW,GAAG,u3CAAu3C;AAC34C,IAAI,UAAU,GAAG,IAAI;AACrB,eAAe,UAAU,GAAG;AAC5B,EAAE,IAAI,UAAU,EAAE;AAClB,IAAI,OAAO,UAAU;AACrB,EAAE;AACF,EAAE,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE;AAChC,EAAE,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC;AACzE,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/F,EAAE,IAAI,MAAM,GAAG,WAAW;AAC1B,EAAE,IAAI,QAAQ,KAAK,QAAQ,EAAE;AAC7B,IAAI,MAAM,GAAG,SAAS;AACtB,EAAE,CAAC,MAAM,IAAI,QAAQ,KAAK,OAAO,EAAE;AACnC,IAAI,MAAM,GAAG,SAAS;AACtB,EAAE;AACF,EAAE,IAAI;AACN,IAAI,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;AAC1B,IAAI,OAAO,OAAO;AAClB,EAAE,CAAC,CAAC,MAAM;AACV,EAAE;AACF,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC5D,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC;AAC9B,EAAE,UAAU,GAAG,OAAO;AACtB,EAAE,OAAO,UAAU;AACnB;AACA,SAAS,YAAY,CAAC,KAAK,EAAE;AAC7B,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC9C;AACA,SAAS,YAAY,CAAC,GAAG,EAAE;AAC3B,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;AACnC;AACA,SAAS,SAAS,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE;AACrD,EAAE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AAClC,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE;AACxC,MAAM,KAAK,EAAE,MAAM;AACnB,MAAM,KAAK;AACX,MAAM,WAAW,EAAE;AACnB,KAAK,CAAC;AACN,IAAI,IAAI,GAAG,GAAG,EAAE;AAChB,IAAI,IAAI,GAAG,GAAG,EAAE;AAChB,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;AAC5C,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;AAC5C,IAAI,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM;AAC5B,MAAM,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAClF,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO;AACxC,MAAM,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM;AACxC,MAAM,IAAI,MAAM,KAAK,IAAI;AACzB,QAAQ,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,IAAI,GAAG,OAAO,EAAE,CAAC;AACpF,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAClF,MAAM,IAAI,MAAM,KAAK,eAAe,EAAE,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC9F,MAAM,OAAO,OAAO,CAAC;AACrB,QAAQ,MAAM,EAAE,OAAO;AACvB,QAAQ,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI;AAC5D,OAAO,CAAC;AACR,IAAI,CAAC,CAAC;AACN,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1B,EAAE,CAAC,CAAC;AACJ;AACA,MAAM,WAAW,CAAC;AAClB,EAAE,UAAU,mBAAmB,IAAI,GAAG,EAAE;AACxC,EAAE,MAAM,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC1C,IAAI,MAAM,KAAK,GAAG,MAAM,UAAU,EAAE;AACpC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;AAC3B,IAAI,IAAI,CAAC,KAAK,OAAO,EAAE;AACvB,MAAM,MAAM,EAAE,GAAG,gBAAgB;AACjC,MAAM,MAAM,IAAI,GAAG,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC,CAAC;AACxE,MAAM,OAAO,SAAS;AACtB,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,KAAK,OAAO,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI;AACnF,QAAQ;AACR,OAAO;AACP,IAAI;AACJ,IAAI,IAAI,CAAC,KAAK,QAAQ,EAAE;AACxB,MAAM,OAAO,SAAS;AACtB,QAAQ,KAAK;AACb,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,KAAK,OAAO,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;AAC/E,OAAO;AACP,IAAI;AACJ,IAAI,OAAO,SAAS;AACpB,MAAM,KAAK;AACX,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,KAAK,OAAO,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;AAC7E,KAAK;AACL,EAAE;AACF,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE;AACrB,IAAI,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC;AACrD,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,OAAO,GAAG,CAAC,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,UAAU,EAAE;AAC1F,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,OAAO,IAAI;AAC7C,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,eAAe,EAAE;AACxC,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;AAC3C,MAAM,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;AACvC,IAAI;AACJ,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,oBAAoB,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACvD,EAAE;AACF,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE;AAC7B,IAAI,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC;AACxC,IAAI,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;AAChE,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE;AAC7B,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC3C,MAAM,OAAO,GAAG,CAAC,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI;AACvD,IAAI;AACJ,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,eAAe,EAAE;AACxC,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI;AACrD,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC3C,MAAM,OAAO,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI;AAC3C,IAAI;AACJ,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,qBAAqB,EAAE,GAAG,CAAC,MAAM,KAAK,OAAO,GAAG,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC;AAC7F,EAAE;AACF,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE;AACvB,IAAI,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC;AACvD,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE;AAC7B,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;AACpC,MAAM,OAAO,GAAG,CAAC,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI;AACvD,IAAI;AACJ,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE;AAClC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;AACpC,MAAM,OAAO,IAAI;AACjB,IAAI;AACJ,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,eAAe,EAAE;AACxC,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI;AACrD,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;AACpC,MAAM,OAAO,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI;AAC3C,IAAI;AACJ,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACzD,EAAE;AACF;AACA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE;AAC5B,MAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK;AACpC,EAAE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACpC,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU,EAAE;AAClC,IAAI,OAAO,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC;AACpC,EAAE;AACF,EAAE,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC;AACpD,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;AACzB,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AACvE,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AACvC,EAAE;AACF,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK;AACjC,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC;AACpB;;;;"}
|
|
1
|
+
{"version":3,"file":"_server.ts-OYdhWjAm.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/git/hub/login/request_access_token/_server.ts.js"],"sourcesContent":["import { r as requestToken } from \"../../../../../../../chunks/github.js\";\nimport { error, json } from \"@sveltejs/kit\";\nimport fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport os from \"node:os\";\nimport { spawn } from \"node:child_process\";\nconst winscript = '# win-secret.ps1\\n# Reads stdin: COMMAND\\\\nHANDLE\\\\n[VALUE_B64]\\\\n\\n# Writes stdout: STATUS\\\\nPAYLOAD\\\\n\\n\\n$ErrorActionPreference = \"Stop\"\\n\\nfunction Out-TwoLines([string]$status, [string]$payload) {\\n Write-Output $status\\n Write-Output $payload\\n}\\n\\ntry {\\n $lines = @()\\n while ($null -ne ($l = [Console]::In.ReadLine())) { $lines += $l }\\n\\n if ($lines.Count -lt 2) { Out-TwoLines \"ERROR\" \"invalid input\"; exit 0 }\\n\\n $cmd = $lines[0].Trim()\\n $handle = $lines[1].Trim()\\n\\n if ($handle -notmatch \\'^[A-Za-z0-9._-]{1,128}$\\') {\\n Out-TwoLines \"ERROR\" \"invalid handle\"\\n exit 0\\n }\\n\\n $baseDir = Join-Path $env:LOCALAPPDATA \"phosart-devtool\\\\secrets\"\\n [IO.Directory]::CreateDirectory($baseDir) | Out-Null\\n $path = Join-Path $baseDir \"$handle.bin\"\\n\\n Add-Type -AssemblyName System.Security\\n\\n function Protect([byte[]]$plain) {\\n return [Security.Cryptography.ProtectedData]::Protect(\\n $plain, $null, [Security.Cryptography.DataProtectionScope]::CurrentUser\\n )\\n }\\n\\n function Unprotect([byte[]]$cipher) {\\n return [Security.Cryptography.ProtectedData]::Unprotect(\\n $cipher, $null, [Security.Cryptography.DataProtectionScope]::CurrentUser\\n )\\n }\\n\\n function ReadExistingB64OrNull() {\\n if (-not (Test-Path -LiteralPath $path)) { return $null }\\n $cipher = [IO.File]::ReadAllBytes($path)\\n $plain = Unprotect $cipher\\n return [Convert]::ToBase64String($plain)\\n }\\n\\n if ($cmd -eq \"READ\") {\\n $cur = ReadExistingB64OrNull\\n if ($null -eq $cur) { Out-TwoLines \"MISSING\" \"null\" } else { Out-TwoLines \"OK\" $cur }\\n exit 0\\n }\\n\\n if ($cmd -eq \"WRITE\") {\\n if ($lines.Count -lt 3) { Out-TwoLines \"ERROR\" \"missing value\"; exit 0 }\\n $valueB64 = $lines[2].Trim()\\n $newPlain = [Convert]::FromBase64String($valueB64)\\n\\n $old = ReadExistingB64OrNull\\n\\n $cipher = Protect $newPlain\\n [IO.File]::WriteAllBytes($path, $cipher)\\n\\n if ($null -eq $old) { Out-TwoLines \"OK\" \"null\" } else { Out-TwoLines \"OK\" $old }\\n exit 0\\n }\\n\\n if ($cmd -eq \"DELETE\") {\\n $old = ReadExistingB64OrNull\\n if (Test-Path -LiteralPath $path) { Remove-Item -LiteralPath $path -Force }\\n if ($null -eq $old) { Out-TwoLines \"MISSING\" \"null\" } else { Out-TwoLines \"OK\" $old }\\n exit 0\\n }\\n\\n Out-TwoLines \"ERROR\" \"unknown command\"\\n} catch {\\n Out-TwoLines \"ERROR\" ($_.Exception.Message.Replace(\"`r\",\"\").Replace(\"`n\",\" \"))\\n}\\n';\nconst macscript = '#!/usr/bin/env bash\\n# mac-secret.sh\\n\\nset -euo pipefail\\n\\nread -r CMD || true\\nread -r HANDLE || true\\nVALUE_B64=\"\"\\nif [[ \"${CMD:-}\" == \"WRITE\" ]]; then\\n read -r VALUE_B64 || VALUE_B64=\"\"\\nfi\\n\\nSERVICE=\"com.phosart.devtool.secrets\"\\n\\ntwo_lines() { printf \"%s\\\\n%s\\\\n\" \"$1\" \"$2\"; }\\n\\nvalid_handle() {\\n [[ \"$HANDLE\" =~ ^[A-Za-z0-9._-]{1,128}$ ]]\\n}\\n\\nif ! valid_handle; then\\n two_lines \"ERROR\" \"invalid handle\"\\n exit 0\\nfi\\n\\nread_existing() {\\n # Prints existing secret to stdout, or returns nonzero if not found.\\n security find-generic-password -a \"$HANDLE\" -s \"$SERVICE\" -w 2>/dev/null\\n}\\n\\ncase \"${CMD:-}\" in\\n READ)\\n if out=\"$(read_existing)\"; then\\n two_lines \"OK\" \"$out\"\\n else\\n two_lines \"MISSING\" \"null\"\\n fi\\n ;;\\n\\n WRITE)\\n old=\"null\"\\n if out=\"$(read_existing)\"; then old=\"$out\"; fi\\n\\n # Add or update\\n security add-generic-password -a \"$HANDLE\" -s \"$SERVICE\" -w \"$VALUE_B64\" -U >/dev/null 2>&1\\n\\n two_lines \"OK\" \"$old\"\\n ;;\\n\\n DELETE)\\n if out=\"$(read_existing)\"; then\\n security delete-generic-password -a \"$HANDLE\" -s \"$SERVICE\" >/dev/null 2>&1 || true\\n two_lines \"OK\" \"$out\"\\n else\\n two_lines \"MISSING\" \"null\"\\n fi\\n ;;\\n\\n *)\\n two_lines \"ERROR\" \"unknown command\"\\n ;;\\nesac\\n';\nconst linuxscript = '#!/usr/bin/env bash\\n\\nset -euo pipefail\\n\\nread -r CMD || true\\nread -r HANDLE || true\\nVALUE_B64=\"\"\\nif [[ \"${CMD:-}\" == \"WRITE\" ]]; then\\n read -r VALUE_B64 || VALUE_B64=\"\"\\nfi\\n\\nSERVICE=\"com.phosart.devtool.secrets\"\\n\\ntwo_lines() { printf \"%s\\\\n%s\\\\n\" \"$1\" \"$2\"; }\\n\\nvalid_handle() {\\n [[ \"$HANDLE\" =~ ^[A-Za-z0-9._-]{1,128}$ ]]\\n}\\n\\nif ! valid_handle; then\\n two_lines \"ERROR\" \"invalid handle\"\\n exit 0\\nfi\\n\\nif ! command -v secret-tool >/dev/null 2>&1; then\\n two_lines \"NOT_SUPPORTED\" \"null\"\\n exit 0\\nfi\\n\\nread_existing() {\\n # secret-tool lookup returns 0 with value, or 1 if not found.\\n secret-tool lookup service \"$SERVICE\" account \"$HANDLE\" 2>/dev/null\\n}\\n\\ncase \"${CMD:-}\" in\\n READ)\\n if out=\"$(read_existing)\"; then\\n two_lines \"OK\" \"$out\"\\n else\\n two_lines \"MISSING\" \"null\"\\n fi\\n ;;\\n\\n WRITE)\\n old=\"null\"\\n if out=\"$(read_existing)\"; then old=\"$out\"; fi\\n\\n # store (replace)\\n printf \"%s\" \"$VALUE_B64\" | secret-tool store --label=\"YourApp secret $HANDLE\" service \"$SERVICE\" account \"$HANDLE\" >/dev/null\\n\\n two_lines \"OK\" \"$old\"\\n ;;\\n\\n DELETE)\\n if out=\"$(read_existing)\"; then\\n secret-tool clear service \"$SERVICE\" account \"$HANDLE\" >/dev/null || true\\n two_lines \"OK\" \"$out\"\\n else\\n two_lines \"MISSING\" \"null\"\\n fi\\n ;;\\n\\n *)\\n two_lines \"ERROR\" \"unknown command\"\\n ;;\\nesac\\n';\nlet cachedpath = null;\nasync function scriptpath() {\n if (cachedpath) {\n return cachedpath;\n }\n const platform = os.platform();\n const tmp = await fs.mkdtemp(path.join(os.tmpdir(), \"phosart-devtool\"));\n const toCache = path.resolve(path.join(tmp, `script.${platform === \"win32\" ? \"ps1\" : \"sh\"}`));\n let script = linuxscript;\n if (platform === \"darwin\") {\n script = macscript;\n } else if (platform === \"win32\") {\n script = winscript;\n }\n try {\n await fs.stat(toCache);\n return toCache;\n } catch {\n }\n await fs.writeFile(toCache, script, { encoding: \"utf-8\" });\n await fs.chmod(toCache, 493);\n cachedpath = toCache;\n return cachedpath;\n}\nfunction b64FromBytes(bytes) {\n return Buffer.from(bytes).toString(\"base64\");\n}\nfunction bytesFromB64(b64) {\n return Buffer.from(b64, \"base64\");\n}\nfunction runHelper(helperPath, input, shell = false) {\n return new Promise((resolve) => {\n const child = spawn(helperPath, [], {\n stdio: \"pipe\",\n shell,\n windowsHide: true\n });\n let out = \"\";\n let err = \"\";\n child.stdout.setEncoding(\"utf8\");\n child.stderr.setEncoding(\"utf8\");\n child.stdout.on(\"data\", (d) => out += d);\n child.stderr.on(\"data\", (d) => err += d);\n child.on(\"close\", () => {\n const lines = out.replace(/\\r/g, \"\").split(\"\\n\").filter((l) => l.length > 0);\n const status = lines[0] ?? \"ERROR\";\n const payload = lines[1] ?? \"null\";\n if (status === \"OK\")\n return resolve({ status: \"OK\", value: payload === \"null\" ? null : payload });\n if (status === \"MISSING\") return resolve({ status: \"MISSING\", value: null });\n if (status === \"NOT_SUPPORTED\") return resolve({ status: \"NOT_SUPPORTED\", value: null });\n return resolve({\n status: \"ERROR\",\n value: payload !== \"null\" ? payload : err.trim() || \"unknown error\"\n });\n });\n child.stdin.end(input);\n });\n}\nclass SecretStore {\n #ephemeral = /* @__PURE__ */ new Map();\n async helperCall(cmd, handle, valueB64) {\n const path2 = await scriptpath();\n const p = os.platform();\n if (p === \"win32\") {\n const ps = \"powershell.exe\";\n const args = `-NoProfile -ExecutionPolicy Bypass -File \"${path2}\"`;\n return runHelper(\n `${ps} ${args}`,\n [cmd, handle, ...cmd === \"WRITE\" ? [valueB64 ?? \"\"] : []].join(\"\\n\") + \"\\n\",\n true\n );\n }\n if (p === \"darwin\") {\n return runHelper(\n path2,\n [cmd, handle, ...cmd === \"WRITE\" ? [valueB64 ?? \"\"] : []].join(\"\\n\") + \"\\n\"\n );\n }\n return runHelper(\n path2,\n [cmd, handle, ...cmd === \"WRITE\" ? [valueB64 ?? \"\"] : []].join(\"\\n\") + \"\\n\"\n );\n }\n async read(handle) {\n const res = await this.helperCall(\"READ\", handle);\n if (res.status === \"OK\") return res.value ? bytesFromB64(res.value) : new Uint8Array();\n if (res.status === \"MISSING\") return null;\n if (res.status === \"NOT_SUPPORTED\") {\n const v = this.#ephemeral.get(handle);\n return v ? bytesFromB64(v) : null;\n }\n throw new Error(`secret read failed: ${res.value}`);\n }\n async write(handle, value) {\n const valueB64 = b64FromBytes(value);\n const res = await this.helperCall(\"WRITE\", handle, valueB64);\n if (res.status === \"OK\") {\n this.#ephemeral.set(handle, valueB64);\n return res.value ? bytesFromB64(res.value) : null;\n }\n if (res.status === \"NOT_SUPPORTED\") {\n const old = this.#ephemeral.get(handle) ?? null;\n this.#ephemeral.set(handle, valueB64);\n return old ? bytesFromB64(old) : null;\n }\n throw new Error(`secret write failed: ${res.status === \"ERROR\" ? res.value : \"unknown\"}`);\n }\n async delete(handle) {\n const res = await this.helperCall(\"DELETE\", handle);\n if (res.status === \"OK\") {\n this.#ephemeral.delete(handle);\n return res.value ? bytesFromB64(res.value) : null;\n }\n if (res.status === \"MISSING\") {\n this.#ephemeral.delete(handle);\n return null;\n }\n if (res.status === \"NOT_SUPPORTED\") {\n const old = this.#ephemeral.get(handle) ?? null;\n this.#ephemeral.delete(handle);\n return old ? bytesFromB64(old) : null;\n }\n throw new Error(`secret delete failed: ${res.value}`);\n }\n}\nconst secrets = new SecretStore();\nconst POST = async ({ request }) => {\n const state = await request.json();\n if (state.stage !== \"has_code\") {\n return error(400, \"wrong state\");\n }\n const resp = await requestToken(state.device_code);\n if (resp.access_token) {\n secrets.write(\"gha_token\", Buffer.from(resp.access_token, \"utf-8\"));\n return json({ stage: \"completed\" });\n }\n state.last_attempt = resp.error;\n return json(state);\n};\nexport {\n POST\n};\n"],"names":[],"mappings":"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"}
|
package/build/server/index.js
CHANGED
|
@@ -3430,7 +3430,7 @@ const options = {
|
|
|
3430
3430
|
<div class="error">
|
|
3431
3431
|
<span class="status">` + status + '</span>\n <div class="message">\n <h1>' + message + "</h1>\n </div>\n </div>\n </body>\n</html>\n"
|
|
3432
3432
|
},
|
|
3433
|
-
version_hash: "
|
|
3433
|
+
version_hash: "v96szj"
|
|
3434
3434
|
};
|
|
3435
3435
|
async function get_hooks() {
|
|
3436
3436
|
let handle;
|