@stackone/cli 1.28.0 → 1.30.0
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 +2 -0
- package/dist/{agentApiKey-CYYGF62G.cjs → agentApiKey-BDp7EFMI.cjs} +1 -1
- package/dist/agentApiKey-BhO6uR40.cjs +1 -0
- package/dist/agentApiKey-BoYyBKnD.mjs +1 -0
- package/dist/{agentApiKey-B_MAvZD5.mjs → agentApiKey-CWXxJgCO.mjs} +1 -1
- package/dist/agentConfig-BWQWMYKQ.mjs +1 -0
- package/dist/agentConfig-KBkYYmMr.cjs +1 -0
- package/dist/cli.cjs +1 -1
- package/dist/cli.mjs +1 -1
- package/dist/{cliCore-BZmiirUQ.cjs → cliCore-BQ1zytet.cjs} +44 -45
- package/dist/cliCore-BXk8GoDJ.mjs +169 -0
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/setupMigration-BAPr-YQq.cjs +1 -0
- package/dist/{setupMigration-BpD5tEih.mjs → setupMigration-C1ShGzOu.mjs} +1 -1
- package/dist/setupMigration-D_zUtD_W.mjs +1 -0
- package/dist/{setupMigration-3K7JjngB.cjs → setupMigration-rqPZ8MV6.cjs} +1 -1
- package/dist/{trustedFolders-IXmvFiFL.mjs → trustedFolders-6UfkywNe.mjs} +1 -1
- package/dist/{trustedFolders-gZoHNEqP.cjs → trustedFolders-C3hB4Qg3.cjs} +1 -1
- package/package.json +7 -7
- package/dist/agentApiKey-C7xT70Mb.cjs +0 -1
- package/dist/agentApiKey-CB8aRrYh.mjs +0 -1
- package/dist/agentConfig-B611vXt-.cjs +0 -1
- package/dist/agentConfig-BYVhMKrd.mjs +0 -1
- package/dist/cliCore-CiTDoQaU.mjs +0 -170
- package/dist/setupMigration-BGBr1Cnb.mjs +0 -1
- package/dist/setupMigration-BcC5gAr5.cjs +0 -1
- /package/dist/{fileNames-CsjGtN4o.mjs → fileNames-DzZBY06N.mjs} +0 -0
package/README.md
CHANGED
|
@@ -81,6 +81,7 @@ stackone push --api-key <your-api-key> --api-url <api-url> path/to/connector.s1.
|
|
|
81
81
|
- `-p, --profile <label>` - Configuration profile to use
|
|
82
82
|
- `--api-key <api-key>` - API key to use for authentication (alternative to using a profile)
|
|
83
83
|
- `--api-url <api-url>` - API URL to use (defaults to `https://api.stackone.com` if not specified)
|
|
84
|
+
- `--force` - Force push the connector, bypassing version conflict checks
|
|
84
85
|
|
|
85
86
|
**Note:** You must provide either `--profile` or `--api-key`. If using `--api-key`, the `--api-url` option is optional and will default to the production API URL.
|
|
86
87
|
|
|
@@ -90,6 +91,7 @@ stackone push --api-key <your-api-key> --api-url <api-url> path/to/connector.s1.
|
|
|
90
91
|
- **Profile validation**: Ensures the specified profile exists before uploading (when using `--profile`)
|
|
91
92
|
- **File validation**: Checks that the file exists and is a valid connector before attempting upload
|
|
92
93
|
- **Batch upload**: Supports uploading multiple connectors from a directory
|
|
94
|
+
- **Force push**: Use `--force` to bypass version conflict checks and overwrite an existing connector version
|
|
93
95
|
|
|
94
96
|
### `pull`
|
|
95
97
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./agentConfig-
|
|
1
|
+
const e=require(`./agentConfig-KBkYYmMr.cjs`);var t=class extends Error{constructor(e){let t=new Date(e),n=Number.isNaN(t.getTime())?`Your StackOne credentials are invalid or corrupted. Please run 'stackone agent setup' to re-authenticate.`:`Your StackOne credentials expired on ${t.toLocaleDateString()} at ${t.toLocaleTimeString()}. Please run 'stackone agent setup' to re-authenticate.`;super(n),this.name=`CredentialExpiredError`}},n=class extends Error{constructor(){super(`STACKONE_AGENT_TOKEN not found. Authentication required to use the agent.`),this.name=`CredentialMissingError`}};function r(){let r=e.d();if(r&&r.apiKey){let n=e.i(r);if(n.status===`expired`)throw new t(n.expiresAt);if(n.status===`valid`||n.status===`expiring_soon`)return r.apiKey}let i=process.env.STACKONE_AGENT_TOKEN;if(!i)throw new n;return i}function i(){return e.i(e.d())}Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return t}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require(`./agentConfig-KBkYYmMr.cjs`);const e=require(`./agentApiKey-BDp7EFMI.cjs`);exports.CredentialExpiredError=e.t,exports.CredentialMissingError=e.n,exports.getAgentApiKey=e.r,exports.getAgentCredentialStatus=e.i;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./agentConfig-BWQWMYKQ.mjs";import{i as e,n as t,r as n,t as r}from"./agentApiKey-CWXxJgCO.mjs";export{r as CredentialExpiredError,t as CredentialMissingError,n as getAgentApiKey,e as getAgentCredentialStatus};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as e,i as t}from"./agentConfig-
|
|
1
|
+
import{d as e,i as t}from"./agentConfig-BWQWMYKQ.mjs";var n=class extends Error{constructor(e){let t=new Date(e),n=Number.isNaN(t.getTime())?`Your StackOne credentials are invalid or corrupted. Please run 'stackone agent setup' to re-authenticate.`:`Your StackOne credentials expired on ${t.toLocaleDateString()} at ${t.toLocaleTimeString()}. Please run 'stackone agent setup' to re-authenticate.`;super(n),this.name=`CredentialExpiredError`}},r=class extends Error{constructor(){super(`STACKONE_AGENT_TOKEN not found. Authentication required to use the agent.`),this.name=`CredentialMissingError`}};function i(){let i=e();if(i&&i.apiKey){let e=t(i);if(e.status===`expired`)throw new n(e.expiresAt);if(e.status===`valid`||e.status===`expiring_soon`)return i.apiKey}let a=process.env.STACKONE_AGENT_TOKEN;if(!a)throw new r;return a}function a(){return t(e())}export{a as i,r as n,i as r,n as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e,t}from"./fileNames-DzZBY06N.mjs";import n from"chalk";import{chmodSync as r,existsSync as i,readFileSync as a,writeFileSync as o}from"node:fs";import{homedir as s}from"node:os";import{join as c}from"node:path";import{chmodSync as l,existsSync as u,lstatSync as d,mkdirSync as f,readFileSync as p,rmSync as m,writeFileSync as h}from"fs";import{homedir as g}from"os";import{join as _}from"path";import{createConsola as v}from"consola";import{color as y,colorize as b}from"json-colorizer";const x=v({level:4,formatOptions:{columns:80,colors:!0,compact:!1,date:!1}}),S=e=>{x.log(b(e,{indent:2,colors:{Whitespace:y.gray,Brace:y.gray,Bracket:y.gray,Colon:y.gray,Comma:y.gray,StringKey:y.white,StringLiteral:y.yellow,NumberLiteral:y.green,BooleanLiteral:y.cyan,NullLiteral:y.white}}))},C=(e=[],t)=>{e.length!==0&&(x.log(`${e.length} error${e.length>1?`s`:``} found:`),e.forEach(e=>{let n=`line`in e?e.line:void 0,r=t&&n?`L${n}: `:``;x.log(`- ${r}${e.message}`)}))},w=async(e,t=`Request failed`)=>{x.error(`${t}: ${e.status} - ${e.statusText}`);let n=await e.text();if(!n)return;let r;try{r=JSON.parse(n)}catch{}r?S(r):x.log(n)},T=e=>n.cyan(e),E=e=>n.yellow(e),D=e=>n.red(e),O=()=>{process.stdout.write(`\x1Bc`)};var k=class{static{this.configDir=_(g(),`.stackone`)}static ensureConfigDir(){if(u(this.configDir)){if(!d(this.configDir).isDirectory()){let t=null;try{x.info(`.stackone exists as a file, checking for migration to config directory...`),t=p(this.configDir,`utf8`)}catch{}if(m(this.configDir,{force:!0}),f(this.configDir,{recursive:!0}),t)try{JSON.parse(t),h(_(this.configDir,e),t,`utf8`),x.success(`Migrated existing .stackone file content to config.json`)}catch{x.warn(`Note: Existing .stackone file was not valid JSON, skipping migration`)}else x.warn(`Note: Existing .stackone file was not valid JSON, skipping migration`)}}else f(this.configDir,{recursive:!0})}static getConfigDir(){return this.configDir}static writeConfigFile(e,t,n){this.ensureConfigDir();let r=_(this.configDir,e);h(r,t,`utf8`),n?.mode!==void 0&&l(r,n.mode)}static readConfigFile(e){this.ensureConfigDir();let t=_(this.configDir,e);if(!u(t))return null;try{return p(t,`utf8`)}catch{return null}}static deleteConfigFile(e){let t=_(this.configDir,e);u(t)&&m(t,{force:!0})}};const A=process.env.STACKONE_AGENT_SERVER_URL||`https://mcp-internal-falcon.stackonehq.workers.dev/mcp`;async function j(e){k.writeConfigFile(t,JSON.stringify(e,null,2),{mode:384})}async function M(){let e=k.readConfigFile(t);if(!e)return null;try{return JSON.parse(e)}catch{return null}}function N(){let e=k.readConfigFile(t);if(!e)return null;try{return JSON.parse(e)}catch{return null}}async function P(){k.deleteConfigFile(t)}function F(){return A}function I(){return`stackone-agent-global`}function L(){return`stackone-agent-local`}function R(e){let t=new Date(e).getTime();return Number.isNaN(t)?!0:t<=Date.now()}function z(e){return!!e?.apiKey&&!R(e.expiresAt)}function B(e){if(!e?.apiKey||!e?.expiresAt)return{status:`missing`};let t=e.expiresAt,n=new Date(t).getTime();if(Number.isNaN(n))return{status:`expired`,expiresAt:t};let r=n-Date.now();return r<=0?{status:`expired`,expiresAt:t}:r<1440*60*1e3?{status:`expiring_soon`,expiresAt:t,timeRemaining:{hours:Math.floor(r/(3600*1e3)),minutes:Math.floor(r%(3600*1e3)/(60*1e3))}}:{status:`valid`,expiresAt:t,timeRemaining:{days:Math.floor(r/(1440*60*1e3)),hours:Math.floor(r%(1440*60*1e3)/(3600*1e3))}}}const V=e=>({type:`http`,url:F(),headers:{Authorization:`Bearer ${e}`}}),H=e=>{if(!i(e))return null;try{return JSON.parse(a(e,`utf-8`))}catch{return null}},U=(e,t)=>{o(e,`${JSON.stringify(t,null,2)}\n`),r(e,384)},W=(e,t,n)=>{let r=H(e)??{};r.mcpServers||={},r.mcpServers[t]=V(n),U(e,r)},G=(e,t)=>{let n=H(e);return n?.mcpServers?.[t]?(delete n.mcpServers[t],U(e,n),!0):!1},K=()=>c(s(),`.claude.json`),q=e=>c(e,`.mcp.json`);export{T as C,D as S,E as T,k as _,K as a,S as b,L as c,N as d,H as f,U as g,W as h,B as i,z as l,j as m,P as n,q as o,G as p,F as r,I as s,V as t,M as u,O as v,x as w,w as x,C as y};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));const c=require(`./fileNames-Booqk8P6.cjs`);let l=require(`chalk`);l=s(l);let u=require(`node:fs`),d=require(`node:os`),f=require(`node:path`),p=require(`fs`),m=require(`os`),h=require(`path`),g=require(`consola`),_=require(`json-colorizer`);const v=(0,g.createConsola)({level:4,formatOptions:{columns:80,colors:!0,compact:!1,date:!1}}),y=e=>{v.log((0,_.colorize)(e,{indent:2,colors:{Whitespace:_.color.gray,Brace:_.color.gray,Bracket:_.color.gray,Colon:_.color.gray,Comma:_.color.gray,StringKey:_.color.white,StringLiteral:_.color.yellow,NumberLiteral:_.color.green,BooleanLiteral:_.color.cyan,NullLiteral:_.color.white}}))},b=(e=[],t)=>{e.length!==0&&(v.log(`${e.length} error${e.length>1?`s`:``} found:`),e.forEach(e=>{let n=`line`in e?e.line:void 0,r=t&&n?`L${n}: `:``;v.log(`- ${r}${e.message}`)}))},x=async(e,t=`Request failed`)=>{v.error(`${t}: ${e.status} - ${e.statusText}`);let n=await e.text();if(!n)return;let r;try{r=JSON.parse(n)}catch{}r?y(r):v.log(n)},S=e=>l.default.cyan(e),C=e=>l.default.yellow(e),w=e=>l.default.red(e),T=()=>{process.stdout.write(`\x1Bc`)};var E=class{static{this.configDir=(0,h.join)((0,m.homedir)(),`.stackone`)}static ensureConfigDir(){if((0,p.existsSync)(this.configDir)){if(!(0,p.lstatSync)(this.configDir).isDirectory()){let e=null;try{v.info(`.stackone exists as a file, checking for migration to config directory...`),e=(0,p.readFileSync)(this.configDir,`utf8`)}catch{}if((0,p.rmSync)(this.configDir,{force:!0}),(0,p.mkdirSync)(this.configDir,{recursive:!0}),e)try{JSON.parse(e),(0,p.writeFileSync)((0,h.join)(this.configDir,c.n),e,`utf8`),v.success(`Migrated existing .stackone file content to config.json`)}catch{v.warn(`Note: Existing .stackone file was not valid JSON, skipping migration`)}else v.warn(`Note: Existing .stackone file was not valid JSON, skipping migration`)}}else (0,p.mkdirSync)(this.configDir,{recursive:!0})}static getConfigDir(){return this.configDir}static writeConfigFile(e,t,n){this.ensureConfigDir();let r=(0,h.join)(this.configDir,e);(0,p.writeFileSync)(r,t,`utf8`),n?.mode!==void 0&&(0,p.chmodSync)(r,n.mode)}static readConfigFile(e){this.ensureConfigDir();let t=(0,h.join)(this.configDir,e);if(!(0,p.existsSync)(t))return null;try{return(0,p.readFileSync)(t,`utf8`)}catch{return null}}static deleteConfigFile(e){let t=(0,h.join)(this.configDir,e);(0,p.existsSync)(t)&&(0,p.rmSync)(t,{force:!0})}};const D=`stackone-agent-global`,O=`stackone-agent-local`,k=process.env.STACKONE_AGENT_SERVER_URL||`https://mcp-internal-falcon.stackonehq.workers.dev/mcp`;async function A(e){E.writeConfigFile(c.t,JSON.stringify(e,null,2),{mode:384})}async function j(){let e=E.readConfigFile(c.t);if(!e)return null;try{return JSON.parse(e)}catch{return null}}function M(){let e=E.readConfigFile(c.t);if(!e)return null;try{return JSON.parse(e)}catch{return null}}async function N(){E.deleteConfigFile(c.t)}function P(){return k}function F(){return`stackone-agent-global`}function I(){return`stackone-agent-local`}function L(e){let t=new Date(e).getTime();return Number.isNaN(t)?!0:t<=Date.now()}function R(e){return!!e?.apiKey&&!L(e.expiresAt)}function z(e){if(!e?.apiKey||!e?.expiresAt)return{status:`missing`};let t=e.expiresAt,n=new Date(t).getTime();if(Number.isNaN(n))return{status:`expired`,expiresAt:t};let r=n-Date.now();return r<=0?{status:`expired`,expiresAt:t}:r<1440*60*1e3?{status:`expiring_soon`,expiresAt:t,timeRemaining:{hours:Math.floor(r/(3600*1e3)),minutes:Math.floor(r%(3600*1e3)/(60*1e3))}}:{status:`valid`,expiresAt:t,timeRemaining:{days:Math.floor(r/(1440*60*1e3)),hours:Math.floor(r%(1440*60*1e3)/(3600*1e3))}}}const B=e=>({type:`http`,url:P(),headers:{Authorization:`Bearer ${e}`}}),V=e=>{if(!(0,u.existsSync)(e))return null;try{return JSON.parse((0,u.readFileSync)(e,`utf-8`))}catch{return null}},H=(e,t)=>{(0,u.writeFileSync)(e,`${JSON.stringify(t,null,2)}\n`),(0,u.chmodSync)(e,384)},U=(e,t,n)=>{let r=V(e)??{};r.mcpServers||={},r.mcpServers[t]=B(n),H(e,r)},W=(e,t)=>{let n=V(e);return n?.mcpServers?.[t]?(delete n.mcpServers[t],H(e,n),!0):!1},G=()=>(0,f.join)((0,d.homedir)(),`.claude.json`),K=e=>(0,f.join)(e,`.mcp.json`);Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return b}});
|
package/dist/cli.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const e=require(`./agentConfig-
|
|
2
|
+
const e=require(`./agentConfig-KBkYYmMr.cjs`),t=require(`./cliCore-BQ1zytet.cjs`);require(`./setupMigration-rqPZ8MV6.cjs`),require(`./agentApiKey-BDp7EFMI.cjs`);let n=require(`dotenv`);process.env.DOTENV_CONFIG_QUIET=`true`,(0,n.config)(),new t.t().run();
|
package/dist/cli.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import
|
|
2
|
+
import{t as e}from"./cliCore-BXk8GoDJ.mjs";import"./agentConfig-BWQWMYKQ.mjs";import"./setupMigration-C1ShGzOu.mjs";import"./agentApiKey-CWXxJgCO.mjs";import{config as t}from"dotenv";process.env.DOTENV_CONFIG_QUIET=`true`,t(),new e().run();export{};
|