@voiden/runner 2.3.0-beta.18 → 2.3.0-beta.19
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/CHANGELOG.md +13 -0
- package/bundled-runners/simple-assertions-runner.js +1 -1
- package/bundled-runners/versions.json +4 -4
- package/bundled-runners/voiden-scripting-runner.js +13 -13
- package/dist/plugins/loader.d.ts.map +1 -1
- package/dist/plugins/loader.js +10 -3
- package/dist/plugins/loader.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,19 @@
|
|
|
3
3
|
All notable changes to `@voiden/runner` are documented here. This package is
|
|
4
4
|
versioned and released independently of the Voiden desktop app.
|
|
5
5
|
|
|
6
|
+
## v2.3.0-beta.19 - 2026-09-10
|
|
7
|
+
|
|
8
|
+
### Fixed
|
|
9
|
+
- A plugin's runner failing to load (a thrown error during its dynamic `import()` or `onload()`,
|
|
10
|
+
as opposed to simply being disabled or never installed) was silently swallowed unless the caller
|
|
11
|
+
passed `verbose: true` — no error surfaced anywhere, including to `install_plugin`'s own response,
|
|
12
|
+
which only showed `active: false` with no indication why. Root-caused against a real case
|
|
13
|
+
(`voiden-scripting`'s standalone-downloaded bundle crashing on an unresolvable `@voiden/sdk`
|
|
14
|
+
import — fixed in that plugin's own `v1.1.8`) that was effectively invisible without manually
|
|
15
|
+
re-running with `--verbose`. This failure is now always logged to stderr, matching the existing
|
|
16
|
+
"plugin not installed" message a few lines above it, which was never gated behind `--verbose`
|
|
17
|
+
either.
|
|
18
|
+
|
|
6
19
|
## v2.3.0-beta.18 - 2026-09-10
|
|
7
20
|
|
|
8
21
|
### Added
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var y=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var A=(r,e)=>()=>(r&&(e=r(r=0)),e);var w=(r,e)=>{for(var t in e)y(r,t,{get:e[t],enumerable:!0})},
|
|
1
|
+
"use strict";var y=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var A=(r,e)=>()=>(r&&(e=r(r=0)),e);var w=(r,e)=>{for(var t in e)y(r,t,{get:e[t],enumerable:!0})},W=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of R(e))!T.call(r,s)&&s!==t&&y(r,s,{get:()=>e[s],enumerable:!(n=C(e,s))||n.enumerable});return r};var D=r=>W(y({},"__esModule",{value:!0}),r);function v(r,e){let t=r.trim();if(t==="status"||t==="statusCode")return e.response.status;if(t==="statusText")return e.response.statusText;if(t==="responseTime"||t==="duration")return e.response.timing?.duration||0;if(t.startsWith("requestHeader.")||t.startsWith("requestHeaders.")){let s=t.split(".")[1];return e.request?.headers.find(i=>i.key.toLowerCase()===s.toLowerCase())?.value}if(t.startsWith("header.")||t.startsWith("headers.")){let n=t.split("."),s=n[1];if(s.toLowerCase()==="set-cookie"){let i=(0,x.parseCookies)(e.response.headers);if(n.length===2)return i;let c=n.slice(2).join(".");return l(i,c)}return e.response.headers.find(i=>i.key.toLowerCase()===s.toLowerCase())?.value}if(t==="body"||t==="response.body")return e.response.body;if(t.startsWith("body.")||t.startsWith("body[")||t.startsWith("response.body.")||t.startsWith("response.body[")){let n=t.replace(/^(response\.)?body\.?/,"");return l(e.response.body,n)}if(t.startsWith("response.")){let n=t.replace(/^response\./,"");return l(e.response,n)}return l(e.response.body,t)}function l(r,e){if(!r)return;let t=e.split(/\.|\[/).map(s=>s.replace(/\]$/,"").replace(/^(["'])(.*)\1$/,"$2")).filter(Boolean),n=r;for(let s of t){if(n==null)return;/^\d+$/.test(s)?n=n[parseInt(s,10)]:n=n[s]}return n}function E(r,e){try{if(r.enabled===!1)return{assertion:r,passed:!0,actualValue:null,error:"Skipped (disabled)"};let t=F(r.field),n=t.field,s=t.operator||r.operator||"equals",o=r.expectedValue,i=v(n,e),c=L(s,i,o);return{assertion:r,passed:c,actualValue:i}}catch(t){return{assertion:r,passed:!1,actualValue:null,error:t.message||String(t)}}}function F(r){let e=["equals","eq","==","===","not-equals","ne","!=","!==","contains","includes","not-contains","not-includes","starts-with","startswith","ends-with","endswith","matches","regex","exists","is-defined","not-exists","is-null","is-undefined","greater-than","gt",">","less-than","lt","<","greater-equal","gte",">=","less-equal","lte","<=","is-empty","empty","not-empty","is-truthy","truthy","is-falsy","falsy","type-is","typeof"],t=r.trim().split(/\s+/);if(t.length>=2){let n=t[t.length-1].toLowerCase();if(e.includes(n))return{field:t.slice(0,-1).join(" "),operator:n}}return{field:r.trim(),operator:null}}function L(r,e,t){switch(r.toLowerCase().trim()){case"equals":case"eq":case"==":case"===":return e==null?!1:String(e)===t;case"not-equals":case"ne":case"!=":case"!==":return e==null?!1:String(e)!==t;case"contains":case"includes":return e==null?!1:String(e).includes(t);case"not-contains":case"not-includes":return e==null?!1:!String(e).includes(t);case"starts-with":case"startswith":return e==null?!1:String(e).startsWith(t);case"ends-with":case"endswith":return e==null?!1:String(e).endsWith(t);case"matches":case"regex":if(e==null)return!1;try{return new RegExp(t).test(String(e))}catch{return!1}case"exists":case"is-defined":return e!=null;case"not-exists":case"is-null":case"is-undefined":return e==null;case"greater-than":case"gt":case">":{let s=Number(e),o=Number(t);return!isNaN(s)&&!isNaN(o)&&s>o}case"less-than":case"lt":case"<":{let s=Number(e),o=Number(t);return!isNaN(s)&&!isNaN(o)&&s<o}case"greater-equal":case"gte":case">=":{let s=Number(e),o=Number(t);return!isNaN(s)&&!isNaN(o)&&s>=o}case"less-equal":case"lte":case"<=":{let s=Number(e),o=Number(t);return!isNaN(s)&&!isNaN(o)&&s<=o}case"is-empty":case"empty":return e==null?!1:Array.isArray(e)?e.length===0:typeof e=="string"?e==="":typeof e=="object"?Object.keys(e).length===0:!1;case"not-empty":return e==null?!1:Array.isArray(e)?e.length>0:typeof e=="string"?e!=="":typeof e=="object"?Object.keys(e).length>0:!0;case"is-truthy":case"truthy":return!!e;case"is-falsy":case"falsy":return!e;case"type-is":case"typeof":return typeof e===t.toLowerCase();default:throw new Error(`Unknown operator: ${r}`)}}function S(r,e){return r.map(t=>E(t,e))}var x,q=A(()=>{"use strict";x=require("@voiden/sdk/shared")});var N={};w(N,{postProcessAssertionsHook:()=>H});function O(r){let e=[];if(!r||!r.content)return e;function t(n){if(n.type==="assertions-table"){let s=$(n);e.push(...s)}n.content&&Array.isArray(n.content)&&n.content.forEach(s=>t(s))}return t(r),e}function $(r){let e=[];try{if(r.attrs&&Array.isArray(r.attrs.rows)){let s=r.attrs.rows;for(let o of s)!o.description&&!o.field&&!o.operator&&!o.expectedValue||o.enabled!==!1&&e.push({description:o.description||"",field:o.field||"",operator:o.operator||"equals",expectedValue:o.expectedValue||"",enabled:!0});return e}let t=Array.isArray(r.content)?r.content.find(s=>s.type==="table"||s.type==="assertions-table"):null;if(!t)return e;let n=t.rows||t.content||[];for(let s=0;s<n.length;s++){let o=n[s];if(Array.isArray(o.row)){if(o.attrs?.disabled===!0)continue;let[a,m,g,b]=o.row;if(!a&&!m&&!g&&!b)continue;e.push({description:String(a||"").trim(),field:String(m||"").trim(),operator:String(g||"equals").trim()||"equals",expectedValue:String(b||"").trim(),enabled:!0});continue}if(o.type!=="tableRow"||o.attrs&&o.attrs.disabled===!0)continue;let i=o.content||[];if(i.length<4)continue;let c=f(i[0]).trim(),p=f(i[1]).trim(),d=f(i[2]).trim(),u=f(i[3]).trim();!c&&!p&&!d&&!u||!(!(i.length>=5)||j(i[4]))||e.push({description:c,field:p,operator:d||"equals",expectedValue:u,enabled:!0})}}catch(t){console.error("Error extracting assertions from table:",t)}return e}function f(r){return r?r.type==="text"?r.text||"":r.content&&Array.isArray(r.content)?r.content.map(e=>f(e)).join(""):"":""}function j(r){if(!r||!r.content)return!0;let e=r.content.find(t=>t.type==="checkbox");return e&&e.attrs?e.attrs.checked!==!1:!0}async function H(r){let{requestState:e,responseState:t,metadata:n}=r;try{let s=e?.metadata?.editorDocument||n?.requestDocument||n?.editorDocument;if(!s)return;let o=O(s);if(o.length===0)return;let i=(typeof window<"u"?window:void 0)?.electron?.env?.replaceVariables;if(i)for(let a of o)a.expectedValue&&a.expectedValue.includes("{{")&&(a.expectedValue=await i(a.expectedValue)),a.field&&a.field.includes("{{")&&(a.field=await i(a.field));let c=t.body;if(typeof c=="string"&&c.trim())try{c=JSON.parse(c)}catch{}let p={response:{status:t.status,statusText:t.statusText,headers:t.headers||[],body:c,contentType:t.contentType,timing:t.timing},request:{headers:t.requestMeta?.headers||[]}},d=S(o,p),u=d.filter(a=>a.passed).length,h=d.filter(a=>!a.passed).length;t.metadata||(t.metadata={}),t.metadata.assertionResults={results:d,totalAssertions:o.length,passedAssertions:u,failedAssertions:h}}catch(s){console.error("[Simple Assertions] Error in post-process assertions hook:",s)}}var k=A(()=>{"use strict";q()});var B={};w(B,{default:()=>z});module.exports=D(B);var P=r=>({onload(){r.pipeline.registerHook("pre-processing",async e=>{e.editor&&(e.requestState.metadata||(e.requestState.metadata={}),e.requestState.metadata.editorDocument=e.editor.getJSON())},5),r.pipeline.registerHook("post-processing",async e=>{let{postProcessAssertionsHook:t}=await Promise.resolve().then(()=>(k(),N));await t(e)},15),r.pipeline.registerHook("post-processing",async e=>{let t=e.responseState?.metadata?.assertionResults;if(t?.results?.length){e.responseState.metadata||(e.responseState.metadata={}),Array.isArray(e.responseState.metadata.reportEntries)||(e.responseState.metadata.reportEntries=[]);for(let n of t.results){let s=n.assertion?.description?.trim()||`${n.assertion?.field??""} ${n.assertion?.operator??""} ${n.assertion?.expectedValue??""}`.trim();e.responseState.metadata.reportEntries.push({type:"assertion",message:s||"Assertion",passed:n.passed,actual:n.actualValue,expected:n.assertion?.expectedValue,operator:n.assertion?.operator})}}},50)}}),z=P;
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"simple-assertions": "1.1.0",
|
|
3
3
|
"voiden-advanced-auth": "2.0.8",
|
|
4
4
|
"voiden-faker": "1.1.1",
|
|
5
|
-
"voiden-graphql": "1.0.
|
|
6
|
-
"voiden-mcp-client": "0.1.
|
|
7
|
-
"voiden-mcp-tool": "0.1.
|
|
5
|
+
"voiden-graphql": "1.0.8",
|
|
6
|
+
"voiden-mcp-client": "0.1.2",
|
|
7
|
+
"voiden-mcp-tool": "0.1.2",
|
|
8
8
|
"voiden-rest-api": "1.4.13",
|
|
9
|
-
"voiden-scripting": "1.1.
|
|
9
|
+
"voiden-scripting": "1.1.8",
|
|
10
10
|
"voiden-sockets-grpcs": "1.1.7"
|
|
11
11
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
`)||"# (no env vars)",b=Object.entries(
|
|
3
|
-
`)||"# (no variables)",
|
|
4
|
-
`)}var
|
|
1
|
+
"use strict";var D=Object.defineProperty;var le=Object.getOwnPropertyDescriptor;var ce=Object.getOwnPropertyNames;var ue=Object.prototype.hasOwnProperty;var F=(e,t)=>()=>(e&&(t=e(e=0)),t);var C=(e,t)=>{for(var r in t)D(e,r,{get:t[r],enumerable:!0})},de=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ce(t))!ue.call(e,s)&&s!==r&&D(e,s,{get:()=>t[s],enumerable:!(n=le(t,s))||n.enumerable});return e};var _e=e=>de(D({},"__esModule",{value:!0}),e);function N(e){return"'"+String(e).replace(/'/g,"'\\''")+"'"}function Q(e){let{request:t,response:r,envVars:n,variables:s,logFile:i,varFile:o,assertFile:l,cancelFile:d,reqFile:c,respFile:f,userScriptFile:u}=e,S=Object.entries(n).map(([g,_])=>`_VD_ENV_${g.replace(/[^A-Za-z0-9_]/g,"_")}=${N(String(_))}`).join(`
|
|
2
|
+
`)||"# (no env vars)",b=Object.entries(s).map(([g,_])=>`_VD_VAR_${g.replace(/[^A-Za-z0-9_]/g,"_")}=${N(String(_))}`).join(`
|
|
3
|
+
`)||"# (no variables)",m=!!r,a=N;return["#!/bin/bash","set +e",`_VD_LOG_FILE=${a(i)}`,`_VD_VAR_FILE=${a(o)}`,`_VD_ASSERT_FILE=${a(l)}`,`_VD_CANCEL_FILE=${a(d)}`,`_VD_REQUEST_FILE=${a(c)}`,`_VD_RESPONSE_FILE=${a(f)}`,`_VD_USERSCRIPT_FILE=${a(u)}`,'touch "$_VD_LOG_FILE" "$_VD_VAR_FILE" "$_VD_ASSERT_FILE" "$_VD_REQUEST_FILE" "$_VD_RESPONSE_FILE"','_vd_b64() { printf "%s" "$1" | base64 | tr -d "\\n"; }',"voiden_log() {",' local _level="log"',' case "$1" in log|info|debug|warn|warning|error) _level="$1"; shift;; esac',' [ "$_level" = "warning" ] && _level="warn"',' printf "%s\\t%s\\n" "$(_vd_b64 "$_level")" "$(_vd_b64 "$*")" >> "$_VD_LOG_FILE"',"}",'voiden_env_get() { local _k="_VD_ENV_${1//[^A-Za-z0-9_]/_}"; printf "%s" "${!_k}"; }','voiden_variables_get() { local _k="_VD_VAR_${1//[^A-Za-z0-9_]/_}"; printf "%s" "${!_k}"; }',"voiden_variables_set() {",' local _key="$1" _val="$2"',' local _k="_VD_VAR_${_key//[^A-Za-z0-9_]/_}"',' export "${_k}=${_val}"',' printf "%s\\t%s\\n" "$(_vd_b64 "$_key")" "$(_vd_b64 "$_val")" >> "$_VD_VAR_FILE"',"}",'voiden_cancel() { touch "$_VD_CANCEL_FILE"; }',"","# voiden.* dot-notation aliases (same API as JS / Python)",'voiden.log() { voiden_log "$@"; }','voiden.env.get() { voiden_env_get "$@"; }','voiden.variables.get() { voiden_variables_get "$@"; }','voiden.variables.set() { voiden_variables_set "$@"; }','voiden.assert() { voiden_assert "$@"; }',"voiden.cancel() { voiden_cancel; }","# request getters / setters","# Supports both call styles:",'# voiden.request.url "https://new.com" (bash style)','# voiden.request.url = "https://new.com" (JS-like style \u2014 = is treated as separator)','_vd_val() { [ "$1" = "=" ] && printf "%s" "$2" || printf "%s" "$1"; }','voiden.request.url() { [ $# -gt 0 ] && export VOIDEN_REQUEST_URL="$(_vd_val "$@")" || printf "%s" "$VOIDEN_REQUEST_URL"; }','voiden.request.method() { [ $# -gt 0 ] && export VOIDEN_REQUEST_METHOD="$(_vd_val "$@")" || printf "%s" "$VOIDEN_REQUEST_METHOD"; }','voiden.request.body() { [ $# -gt 0 ] && export VOIDEN_REQUEST_BODY="$(_vd_val "$@")" || printf "%s" "$VOIDEN_REQUEST_BODY"; }',"# shared entry builder \u2014 stores result in $_VD_KV_ENTRY","_vd_build_kv_entry() {",` local _Q='"' _k _v`,' _k="${1//$_Q/\\\\$_Q}"',' _v="${2//$_Q/\\\\$_Q}"',` printf -v _VD_KV_ENTRY '{"key":"%s","value":"%s","enabled":true}' "$_k" "$_v"`,"}","# _vd_set_kv: replace the array with a single entry","_vd_set_kv() {",' local _var="$1"',' _vd_build_kv_entry "$2" "$3"',` printf -v "$_var" '[%s]' "$_VD_KV_ENTRY"`,' export "$_var"',"}","# _vd_push_kv: append an entry to the existing array","_vd_push_kv() {",' local _var="$1" _cur',' _vd_build_kv_entry "$2" "$3"',' _cur="${!_var}"',' if [ -z "$_cur" ] || [ "$_cur" = "[]" ]; then',` printf -v "$_var" '[%s]' "$_VD_KV_ENTRY"`," else",` printf -v "$_var" '%s,%s]' "\${_cur%]}" "$_VD_KV_ENTRY"`," fi",' export "$_var"',"}","# collection setters: 2 args = set as single {key,value}; 1 arg = raw JSON; 0 args = getter",'voiden.request.headers() { if [ $# -ge 2 ]; then _vd_set_kv VOIDEN_REQUEST_HEADERS "$1" "$2"; elif [ $# -gt 0 ]; then export VOIDEN_REQUEST_HEADERS="$(_vd_val "$@")"; else printf "%s" "$VOIDEN_REQUEST_HEADERS"; fi; }','voiden.request.queryParams() { if [ $# -ge 2 ]; then _vd_set_kv VOIDEN_REQUEST_QUERY_PARAMS "$1" "$2"; elif [ $# -gt 0 ]; then export VOIDEN_REQUEST_QUERY_PARAMS="$(_vd_val "$@")"; else printf "%s" "$VOIDEN_REQUEST_QUERY_PARAMS"; fi; }','voiden.request.pathParams() { if [ $# -ge 2 ]; then _vd_set_kv VOIDEN_REQUEST_PATH_PARAMS "$1" "$2"; elif [ $# -gt 0 ]; then export VOIDEN_REQUEST_PATH_PARAMS="$(_vd_val "$@")"; else printf "%s" "$VOIDEN_REQUEST_PATH_PARAMS"; fi; }','voiden.request.headers.push() { _vd_push_kv VOIDEN_REQUEST_HEADERS "$1" "$2"; }','voiden.request.queryParams.push() { _vd_push_kv VOIDEN_REQUEST_QUERY_PARAMS "$1" "$2"; }','voiden.request.pathParams.push() { _vd_push_kv VOIDEN_REQUEST_PATH_PARAMS "$1" "$2"; }',"# response getters and writable setters (status, statusText, body)",'voiden.response.status() { [ $# -gt 0 ] && export VOIDEN_RESPONSE_STATUS="$(_vd_val "$@")" || printf "%s" "$VOIDEN_RESPONSE_STATUS"; }','voiden.response.statusText() { [ $# -gt 0 ] && export VOIDEN_RESPONSE_STATUS_TEXT="$(_vd_val "$@")" || printf "%s" "$VOIDEN_RESPONSE_STATUS_TEXT"; }','voiden.response.body() { [ $# -gt 0 ] && export VOIDEN_RESPONSE_BODY="$(_vd_val "$@")" || printf "%s" "$VOIDEN_RESPONSE_BODY"; }',"# response read-only fields",'voiden.response.headers() { printf "%s" "$VOIDEN_RESPONSE_HEADERS"; }','voiden.response.time() { printf "%s" "$VOIDEN_RESPONSE_TIME"; }','voiden.response.size() { printf "%s" "$VOIDEN_RESPONSE_SIZE"; }',"","voiden_assert() {",' local _actual="$1" _op="$2" _expected="$3" _msg="${4:-}" _passed="false"',' case "$_op" in',' "=="|eq|equal) [ "$_actual" = "$_expected" ] && _passed="true" ;;',' "===") [ "$_actual" = "$_expected" ] && _passed="true" ;;',' "!="|neq|notequal) [ "$_actual" != "$_expected" ] && _passed="true" ;;',' "!==") [ "$_actual" != "$_expected" ] && _passed="true" ;;',' contains|includes) case "$_actual" in *"$_expected"*) _passed="true";; esac ;;',' matches|regex) printf "%s" "$_actual" | grep -qE "$_expected" 2>/dev/null && _passed="true"; true ;;',' truthy) [ -n "$_actual" ] && _passed="true" ;;',' falsy) [ -z "$_actual" ] && _passed="true" ;;',' ">"|greater|greaterthan) (( _actual > _expected )) 2>/dev/null && _passed="true"; true ;;',' ">="|gte) (( _actual >= _expected )) 2>/dev/null && _passed="true"; true ;;',' "<"|less|lessthan) (( _actual < _expected )) 2>/dev/null && _passed="true"; true ;;',' "<="|lte) (( _actual <= _expected )) 2>/dev/null && _passed="true"; true ;;'," esac",' printf "%s\\t%s\\t%s\\t%s\\t%s\\n" "$(_vd_b64 "$_passed")" "$(_vd_b64 "$_actual")" "$(_vd_b64 "$_op")" "$(_vd_b64 "$_expected")" "$(_vd_b64 "$_msg")" >> "$_VD_ASSERT_FILE"',"}","","# Pre-loaded env vars",S,"","# Pre-loaded variables",b,"",`export VOIDEN_REQUEST_URL=${a(t?.url??"")}`,`export VOIDEN_REQUEST_METHOD=${a(t?.method??"GET")}`,`export VOIDEN_REQUEST_BODY=${a(t?.body!=null?typeof t.body=="object"?JSON.stringify(t.body):String(t.body):"")}`,`export VOIDEN_REQUEST_HEADERS=${a(JSON.stringify(t?.headers??[]))}`,`export VOIDEN_REQUEST_QUERY_PARAMS=${a(JSON.stringify(t?.queryParams??[]))}`,`export VOIDEN_REQUEST_PATH_PARAMS=${a(JSON.stringify(t?.pathParams??[]))}`,`export VOIDEN_RESPONSE_STATUS=${a(m?String(r?.status??""):"")}`,`export VOIDEN_RESPONSE_STATUS_TEXT=${a(m?String(r?.statusText??""):"")}`,`export VOIDEN_RESPONSE_BODY=${a(m&&r?.body!=null?typeof r.body=="object"?JSON.stringify(r.body):String(r.body):"")}`,`export VOIDEN_RESPONSE_HEADERS=${a(m?JSON.stringify(r?.headers??{}):"{}")}`,`export VOIDEN_RESPONSE_TIME=${a(m?String(r?.time??0):"0")}`,`export VOIDEN_RESPONSE_SIZE=${a(m?String(r?.size??0):"0")}`,"","# --- User Script (sourced from separate file; errors are caught) ---",'. "$_VD_USERSCRIPT_FILE" || true',"# --- End User Script ---","",'printf "%s\\t%s\\n" "$(_vd_b64 "url")" "$(_vd_b64 "$VOIDEN_REQUEST_URL")" >> "$_VD_REQUEST_FILE"','printf "%s\\t%s\\n" "$(_vd_b64 "method")" "$(_vd_b64 "$VOIDEN_REQUEST_METHOD")" >> "$_VD_REQUEST_FILE"','printf "%s\\t%s\\n" "$(_vd_b64 "body")" "$(_vd_b64 "$VOIDEN_REQUEST_BODY")" >> "$_VD_REQUEST_FILE"','printf "%s\\t%s\\n" "$(_vd_b64 "headers")" "$(_vd_b64 "$VOIDEN_REQUEST_HEADERS")" >> "$_VD_REQUEST_FILE"','printf "%s\\t%s\\n" "$(_vd_b64 "queryParams")" "$(_vd_b64 "$VOIDEN_REQUEST_QUERY_PARAMS")" >> "$_VD_REQUEST_FILE"','printf "%s\\t%s\\n" "$(_vd_b64 "pathParams")" "$(_vd_b64 "$VOIDEN_REQUEST_PATH_PARAMS")" >> "$_VD_REQUEST_FILE"',"# Write modified response fields (only when a response exists)",`[ -n ${a(m?"1":"")} ] && {`,'printf "%s\\t%s\\n" "$(_vd_b64 "status")" "$(_vd_b64 "$VOIDEN_RESPONSE_STATUS")" >> "$_VD_RESPONSE_FILE"','printf "%s\\t%s\\n" "$(_vd_b64 "statusText")" "$(_vd_b64 "$VOIDEN_RESPONSE_STATUS_TEXT")" >> "$_VD_RESPONSE_FILE"','printf "%s\\t%s\\n" "$(_vd_b64 "body")" "$(_vd_b64 "$VOIDEN_RESPONSE_BODY")" >> "$_VD_RESPONSE_FILE"',"}","true"].join(`
|
|
4
|
+
`)}var U,j,z,H=F(()=>{"use strict";U=`
|
|
5
5
|
const AsyncFunction = Object.getPrototypeOf(async function () {}).constructor;
|
|
6
6
|
|
|
7
7
|
let requestState = null;
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
};
|
|
122
|
-
`,
|
|
122
|
+
`,j=`
|
|
123
123
|
'use strict';
|
|
124
124
|
var Worker = require('worker_threads').Worker;
|
|
125
125
|
var _chunks = [];
|
|
@@ -162,7 +162,7 @@ process.stdin.on('end', function() {
|
|
|
162
162
|
|
|
163
163
|
_worker.postMessage({ type: 'start', script: _input.scriptBody, request: _input.request || {}, response: _input.response || null, envData: _envData, variablesData: _variablesData });
|
|
164
164
|
});
|
|
165
|
-
`,
|
|
165
|
+
`,z=`
|
|
166
166
|
import sys, json
|
|
167
167
|
import traceback
|
|
168
168
|
|
|
@@ -388,10 +388,10 @@ def main():
|
|
|
388
388
|
sys.exit(0 if result.get("success") else 1)
|
|
389
389
|
|
|
390
390
|
main()
|
|
391
|
-
`});var
|
|
392
|
-
`).pop()??"";try{let
|
|
393
|
-
`).filter(Boolean).map(
|
|
394
|
-
`).filter(Boolean).map(
|
|
395
|
-
`).filter(Boolean).forEach(
|
|
396
|
-
`).filter(Boolean).forEach(
|
|
397
|
-
`));let
|
|
391
|
+
`});var A={};C(A,{executeHeadlessScript:()=>Ve,getPythonBin:()=>B,isNodeAvailable:()=>ye,loadHeadlessVariables:()=>me});async function pe(){if(process.platform==="win32")return null;if(P!==void 0)return P;let e=process.env.SHELL||"/bin/zsh",t="__VOIDEN_PATH__",r="echo "+t+"${PATH}"+t,n=await new Promise(s=>{(0,R.execFile)(e,["-ilc",r],{timeout:5e3},(i,o)=>{if(i){s(null);return}let l=new RegExp(`${t}(.*)${t}`,"s").exec(o);s(l?l[1].trim():null)})});return P=n,n}async function fe(){let e=await pe();return e?`${e}${y.delimiter}${M}`:M}function ge(e,t){let r=process.platform==="win32"?"where":"which";return new Promise(n=>{(0,R.execFile)(r,[e],{timeout:3e3,env:{...process.env,PATH:t}},(s,i)=>{n(s||!i.trim()?null:i.trim().split(/\r?\n/)[0])})})}async function w(){return q===void 0&&(q=await fe()),q}async function B(){if(k!==void 0)return k;let e=await w();for(let t of["python3","python"]){let r=await ge(t,e);if(r)return k=r,r}for(let t of process.platform==="win32"?[]:["/usr/local/bin/python3","/opt/homebrew/bin/python3","/usr/bin/python3"])try{return await(0,J.access)(t,p.constants.X_OK),k=t,t}catch{continue}return k=null,null}function ye(){try{return require("worker_threads"),!0}catch{return!1}}function me(){let e=(0,y.join)((0,x.homedir)(),".voiden",".process.env.json");if(!(0,p.existsSync)(e))return{};try{return JSON.parse((0,p.readFileSync)(e,"utf-8"))}catch{return{}}}function Y(e,t,r,n){return new Promise(s=>{let i=(0,R.spawn)(e,t,{stdio:["pipe","pipe","pipe"],env:n?{...process.env,PATH:n}:process.env}),o="",l="",d=!1;i.stdout.on("data",u=>{o+=u.toString()}),i.stderr.on("data",u=>{l+=u.toString()});let c=setTimeout(()=>{i.kill("SIGKILL"),f({stdout:"",stderr:`Timed out after ${V}ms`,code:-1})},V),f=u=>{d||(d=!0,clearTimeout(c),s(u))};i.on("error",u=>{f({stdout:"",stderr:`Failed to run "${e}": ${u.message}`,code:-1})}),i.on("close",u=>f({stdout:o,stderr:l,code:u}));try{i.stdin.write(r,"utf-8"),i.stdin.end()}catch{}})}function W(e,t,r){let n=e.trim().split(`
|
|
392
|
+
`).pop()??"";try{let s=JSON.parse(n);return{success:!!s.success,logs:Array.isArray(s.logs)?s.logs:[],assertions:Array.isArray(s.assertions)?s.assertions:[],cancelled:!!s.cancelled,error:s.error,exitCode:r??0,modifiedRequest:s.modifiedRequest,modifiedResponse:s.modifiedResponse}}catch{let s=t.trim()||`Script output could not be parsed: ${n.slice(0,300)}`;return{success:!1,logs:[],error:s,cancelled:!1,exitCode:r??1}}}async function ve(e,t,r,n,s){let i=Object.getPrototypeOf(async function(){}).constructor,o=[],l=[],d=!1,c={...s},f={},u=a=>({"==":"==","===":"===",eq:"==",equal:"==","!=":"!=","!==":"!==",neq:"!=",notequal:"!=",">":">",">=":">=","<":"<","<=":"<=",greater:">",greaterthan:">",gte:">=",less:"<",lessthan:"<",lte:"<=",contains:"contains",includes:"contains",matches:"matches",regex:"matches",truthy:"truthy",falsy:"falsy"})[a.trim().toLowerCase().replace(/\s+/g,"")]??null,S=(a,g,_)=>{try{switch(g){case"==":return a==_;case"===":return a===_;case"!=":return a!=_;case"!==":return a!==_;case">":return a>_;case">=":return a>=_;case"<":return a<_;case"<=":return a<=_;case"contains":return typeof a=="string"?a.includes(String(_)):Array.isArray(a)&&a.includes(_);case"matches":return new RegExp(String(_)).test(String(a));case"truthy":return!!a;case"falsy":return!a;default:return!!a}}catch{return!1}},b=a=>{try{return JSON.stringify(a)}catch{return String(a)}},m={request:t,response:r,env:{get:a=>n[a]},variables:{get:a=>c[a],set:(a,g)=>{c[a]=g,f[a]=g}},log:(a,...g)=>{let E=typeof a=="string"&&["log","info","debug","warn","warning","error"].includes(a.toLowerCase()),v=E?a==="warning"?"warn":a:"log";o.push({level:v,args:E?g:[a,...g]})},assert:(a,g,_,E)=>{let v=u(g);if(!v){l.push({passed:!1,message:E??"",reason:`Unsupported operator: ${g}`,actualValue:a,operator:g,expectedValue:_});return}l.push({passed:S(a,v,_),message:E??"",condition:`${b(a)} ${v} ${b(_)}`,actualValue:a,operator:v,expectedValue:_})},cancel:()=>{d=!0}};try{return await new i("voiden","vd",e)(m,m),{success:!0,logs:o,assertions:l,cancelled:d,exitCode:0,modifiedRequest:m.request,modifiedResponse:m.response,modifiedVariables:f}}catch(a){return{success:!1,logs:o,assertions:l,error:String(a?.stack||a?.message||a),cancelled:d,exitCode:1,modifiedVariables:f}}}async function Se(e,t,r,n,s){let i=JSON.stringify({scriptBody:e,workerSource:U,request:t??{},response:r??null,envVars:n,variables:s}),o=await w(),{stdout:l,stderr:d,code:c}=await Y("node",["-e",j],i,o);return W(l,d,c)}async function Ee(e,t,r,n,s){let i=await B();if(!i)return{success:!1,logs:[],error:"python3 not found. Checked your login shell's PATH (sourcing .zshrc/.bash_profile/etc.), Homebrew, volta/fnm/pyenv, and common install locations \u2014 install Python 3 or make sure it's reachable from a terminal.",cancelled:!1,exitCode:-1};let o=JSON.stringify({scriptBody:e,request:t??{},response:r??null,envVars:n,variables:s}),l=await w(),{stdout:d,stderr:c,code:f}=await Y(i,["-c",z],o,l);return W(d,c,f)}async function be(e,t,r,n,s){let i=`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,o=(0,y.join)((0,x.tmpdir)(),`voiden-runner-${i}`);(0,p.mkdirSync)(o,{recursive:!0});let l=(0,y.join)(o,"log.tsv"),d=(0,y.join)(o,"vars.tsv"),c=(0,y.join)(o,"assertions.tsv"),f=(0,y.join)(o,"cancel"),u=(0,y.join)(o,"request.tsv"),S=(0,y.join)(o,"response.tsv"),b=(0,y.join)(o,"user.sh"),m=(0,y.join)(o,"wrapper.sh");(0,p.writeFileSync)(b,e,"utf-8");for(let E of[l,d,c,u,S])(0,p.writeFileSync)(E,"","utf-8");let a=Q({request:t??{},response:r??null,envVars:n,variables:s,logFile:l,varFile:d,assertFile:c,cancelFile:f,reqFile:u,respFile:S,userScriptFile:b});(0,p.writeFileSync)(m,a,"utf-8");let g=await w();return new Promise(E=>{let v=(0,R.spawn)("bash",[m],{stdio:["ignore","pipe","pipe"],env:{...process.env,PATH:g}}),L=!1,T=$=>{L||(L=!0,clearTimeout(re),_(),E($))},re=setTimeout(()=>{v.kill("SIGKILL"),T({success:!1,logs:[],error:`Shell script timed out after ${V}ms`,cancelled:!1,exitCode:-1})},V);v.on("error",$=>{T({success:!1,logs:[],error:`Failed to run bash: ${$.message}`,cancelled:!1,exitCode:-1})}),v.on("close",$=>{let se=he(l),ne=$e(c),ae=Re(u,t),oe=ke(S,r),ie=(0,p.existsSync)(f);T({success:$===0,logs:se,assertions:ne,cancelled:ie,exitCode:$??0,modifiedRequest:ae,modifiedResponse:oe})})});function _(){try{(0,p.rmSync)(o,{recursive:!0,force:!0})}catch{}}}function h(e){return Buffer.from(e??"","base64").toString("utf-8")}function he(e){return(0,p.existsSync)(e)?(0,p.readFileSync)(e,"utf-8").split(`
|
|
393
|
+
`).filter(Boolean).map(t=>{let[r,n]=t.split(" ");return{level:h(r)||"log",args:[h(n)]}}):[]}function $e(e){return(0,p.existsSync)(e)?(0,p.readFileSync)(e,"utf-8").split(`
|
|
394
|
+
`).filter(Boolean).map(t=>{let r=t.split(" ").map(h),[n,s,i,o,l]=r;return{passed:n==="true",actualValue:s,operator:i,expectedValue:o,message:l??""}}):[]}function Re(e,t){if(!(0,p.existsSync)(e))return t;let r={...t};return(0,p.readFileSync)(e,"utf-8").split(`
|
|
395
|
+
`).filter(Boolean).forEach(n=>{let[s,i]=n.split(" "),o=h(s),l=h(i);if(o)if(["headers","queryParams","pathParams"].includes(o))try{r[o]=JSON.parse(l)}catch{r[o]=l}else r[o]=l}),r}function ke(e,t){if(!(0,p.existsSync)(e)||!t)return t;let r={...t};return(0,p.readFileSync)(e,"utf-8").split(`
|
|
396
|
+
`).filter(Boolean).forEach(n=>{let[s,i]=n.split(" "),o=h(s),l=h(i);if(o)if(o==="status")r[o]=parseInt(l,10)||0;else if(o==="body")try{r[o]=JSON.parse(l)}catch{r[o]=l}else r[o]=l}),r}async function Ve(e,t,r,n,s={},i={},o=!1){return t==="python"?Ee(e,r,n,s,i):t==="shell"?be(e,r,n,s,i):o?Se(e,r,n,s,i):ve(e,r,n,s,i)}var R,p,J,y,x,V,M,P,k,q,I=F(()=>{"use strict";R=require("child_process"),p=require("fs"),J=require("fs/promises"),y=require("path"),x=require("os");H();V=1e4,M=[process.env.PATH||"","/usr/local/bin","/opt/homebrew/bin","/usr/bin",(0,y.join)(process.env.HOME||"~",".volta/bin"),(0,y.join)(process.env.HOME||"~",".fnm/current/bin"),(0,y.join)(process.env.HOME||"~",".local/bin"),(0,y.join)(process.env.HOME||"~",".pyenv/shims")].join(y.delimiter)});var Ie={};C(Ie,{default:()=>Ae});module.exports=_e(Ie);var O=require("fs"),ee=require("path"),te=require("os");function xe(e){let t=e.indexOf("=");return t===-1?[e,!0]:[e.substring(0,t).trim(),e.substring(t+1).trim()]}function we(e){let t=e.split(";").map(o=>o.trim());if(t.length===0)return null;let r=t[0].indexOf("="),n=t[0].substring(0,r).trim(),s=t[0].substring(r+1).trim();if(!n)return null;let i={value:s};for(let o=1;o<t.length;o++){let[l,d]=xe(t[o]);i[l]=d}return{name:n,attributes:i}}function Oe(e){if(!e||!Array.isArray(e))return{};let t={};return e.filter(r=>r.key.toLowerCase()==="set-cookie").map(r=>we(r.value)).filter(r=>r!==null).forEach(r=>{t[r.name]=r.attributes}),t}function G(e,t){if(!e?.content)return null;let r=null,n=s=>{s.type===t&&s.attrs?.body&&(r={body:s.attrs.body,language:s.attrs.language??"javascript"}),s.content?.forEach?.(i=>n(i))};return n(e),r}function K(e,t){return t==="python"?e.replace(/#.*$/gm,"").trim():e.replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").trim()}function Z(){let e=(0,ee.join)((0,te.homedir)(),".voiden",".process.env.json");if(!(0,O.existsSync)(e))return{};try{return JSON.parse((0,O.readFileSync)(e,"utf-8"))}catch{return{}}}function X(e){let t=r=>Array.isArray(r)?r:r&&typeof r=="object"?Object.entries(r).map(([n,s])=>({key:n,value:String(s),enabled:!0})):[];return{url:e.url??"",method:e.method??"GET",headers:t(e.headers),body:e.body,queryParams:t(e.queryParams),pathParams:t(e.pathParams)}}function Te(e){let t=e.headers??[],r={},n=[];t.forEach(i=>{i.key.toLowerCase()==="set-cookie"?n.push(i.value):r[i.key]=i.value}),n.length>0&&(r["set-cookie"]=n.join(`
|
|
397
|
+
`));let s=Oe(t);return{status:e.status,statusText:e.statusText,headers:r,cookies:s,body:e.body,time:e.durationMs??0,size:e.size??0}}function De(e,t){t.url=e.url,t.method=e.method;let r=n=>Array.isArray(n)?n:n&&typeof n=="object"?Object.entries(n).map(([s,i])=>({key:s,value:String(i),enabled:!0})):[];if(t.headers=r(e.headers),t.queryParams=r(e.queryParams),t.pathParams=r(e.pathParams),e.body!=null&&typeof e.body=="object")try{t.body=JSON.stringify(e.body)}catch{t.body=String(e.body)}else t.body=e.body}function Ne(e,t){e.status!==void 0&&(t.status=e.status),e.statusText!==void 0&&(t.statusText=e.statusText),e.body!==void 0&&(t.body=e.body)}function Pe(e,t,r){Array.isArray(e.reportEntries)||(e.reportEntries=[]);let n=e.reportEntries;for(let s of t.assertions??[])n.push({type:"assertion",message:s.message||s.condition||"Script assertion",passed:s.passed,actual:s.actualValue,expected:s.expectedValue,operator:s.operator});for(let s of r){let i=Array.isArray(s.args)?s.args.map(o=>typeof o=="object"?JSON.stringify(o):String(o)).join(" "):String(s.args??"");i&&n.push({type:"log",message:i,level:s.level??"log"})}t.error&&n.push({type:"log",message:`Script error: ${t.error}`,level:"error"})}var qe=e=>({onload(){let t=null,r={};e.pipeline.registerHook("pre-processing",n=>{if(!n.editor)return;n.requestState.metadata||(n.requestState.metadata={});let s=n.editor.getJSON();n.requestState.metadata.editorDocument=s,t=s,r=n.editor.__cliEnv??{},n.requestState.metadata._cliVarsRef=n.editor.__cliVars??{}},5),e.pipeline.registerHook("pre-send",async n=>{if(!t)return;let s=G(t,"pre_script");if(!s||!K(s.body,s.language))return;let{executeHeadlessScript:i}=await Promise.resolve().then(()=>(I(),A)),o=n.requestState.metadata?._cliVarsRef??{},l={...Z(),...o},d=X(n.requestState),c=await i(s.body,s.language,d,null,r,l);if(c.success&&c.modifiedRequest&&De(c.modifiedRequest,n.requestState),c.modifiedVariables&&Object.assign(o,c.modifiedVariables),n.requestState.metadata||(n.requestState.metadata={}),n.requestState.metadata.preScriptLogs=c.logs??[],n.requestState.metadata.preScriptAssertions=c.assertions??[],c.error&&(n.requestState.metadata.preScriptError=c.error),c.cancelled)throw n.requestState.metadata.scriptCancelled=!0,new Error("Request cancelled by pre-request script")},15),e.pipeline.registerHook("post-processing",async n=>{n.responseState.metadata||(n.responseState.metadata={});let s=n.responseState.metadata;if(!t)return;let i=G(t,"post_script");if(!i||!K(i.body,i.language))return;let{executeHeadlessScript:o}=await Promise.resolve().then(()=>(I(),A)),l=n.requestState?.metadata?._cliVarsRef??{},d={...Z(),...l},c=X(n.requestState),f=Te(n.responseState),u=await o(i.body,i.language,c,f,r,d);u.success&&u.modifiedResponse&&Ne(u.modifiedResponse,n.responseState),u.modifiedVariables&&Object.assign(l,u.modifiedVariables),s.postScriptLogs=u.logs??[],s.postScriptAssertions=u.assertions??[],u.error&&(s.postScriptError=u.error),t=null},25),e.pipeline.registerHook("post-processing",n=>{let s=n.responseState;if(!s)return;s.metadata||(s.metadata={});let i=n.requestState?.metadata?.preScriptLogs??[],o=n.requestState?.metadata?.preScriptAssertions??[],l=s.metadata.postScriptLogs??[],d=s.metadata.postScriptAssertions??[],c=n.requestState?.metadata?.preScriptError,f=s.metadata.postScriptError,u={assertions:[...o,...d],error:f??c},S=[...i,...l];Pe(s.metadata,u,S)},60)}}),Ae=qe;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/plugins/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAyCH;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CA8B/I;AAcD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKzD;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/plugins/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAyCH;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CA8B/I;AAcD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKzD;AA8DD,wBAAsB,kBAAkB,CACtC,OAAO,UAAQ,EACf,WAAW,GAAE,WAAW,CAAC,MAAM,CAAa,GAC3C,OAAO,CAAC,MAAM,EAAE,CAAC,CAwEnB"}
|
package/dist/plugins/loader.js
CHANGED
|
@@ -142,9 +142,16 @@ async function loadPlugin(pluginPath, pluginName, verbose) {
|
|
|
142
142
|
return true;
|
|
143
143
|
}
|
|
144
144
|
catch (err) {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
145
|
+
// Always surfaced, not gated behind --verbose (matching the "not
|
|
146
|
+
// installed" message above) — a plugin that's enabled and has a runner
|
|
147
|
+
// present but still fails to actually load is a real, unexpected
|
|
148
|
+
// problem (e.g. a bundled runner.js with an unresolvable external
|
|
149
|
+
// dependency — see voiden-scripting's own history), not a normal,
|
|
150
|
+
// silent "nothing to do here" case. Without this, the failure was
|
|
151
|
+
// invisible everywhere: install_plugin's own response only shows
|
|
152
|
+
// `active: false`, with no indication of why, unless the caller happens
|
|
153
|
+
// to be running with --verbose already.
|
|
154
|
+
console.warn(` [plugins] Failed to load "${pluginName}": ${err?.message ?? String(err)}`);
|
|
148
155
|
return false;
|
|
149
156
|
}
|
|
150
157
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/plugins/loader.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/plugins/loader.ts"],"names":[],"mappings":"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"}
|