@tigrisdata/cli 2.9.0 → 2.10.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/dist/auth/client.js +1 -1
- package/dist/auth/config.js +1 -1
- package/dist/auth/fly.js +1 -0
- package/dist/auth/s3-client.js +1 -1
- package/dist/auth/storage.js +1 -1
- package/dist/chunk-2XAO2OYD.js +1 -0
- package/dist/{chunk-UUITLEOI.js → chunk-DOUR5YEY.js} +1 -1
- package/dist/chunk-E4MLGABW.js +1 -0
- package/dist/{chunk-45XYUGOE.js → chunk-F2VBJEK7.js} +1 -1
- package/dist/chunk-GZ7JBHFT.js +1 -0
- package/dist/chunk-KH63ANUX.js +1 -0
- package/dist/{chunk-CVQCUDQS.js → chunk-N7F2D3XT.js} +1 -1
- package/dist/chunk-SJCYBKF2.js +8 -0
- package/dist/chunk-TNOMT3EP.js +4 -0
- package/dist/{chunk-N3NPQW3I.js → chunk-USCKVLDO.js} +1 -1
- package/dist/cli.js +1 -1
- package/dist/constants.js +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/access-keys/assign.js +1 -1
- package/dist/lib/access-keys/create.js +1 -1
- package/dist/lib/access-keys/delete.js +1 -1
- package/dist/lib/access-keys/get.js +1 -1
- package/dist/lib/access-keys/list.js +1 -1
- package/dist/lib/buckets/create.js +1 -1
- package/dist/lib/buckets/delete.js +1 -1
- package/dist/lib/buckets/get.js +1 -1
- package/dist/lib/buckets/list.js +1 -1
- package/dist/lib/buckets/set.js +1 -1
- package/dist/lib/configure/index.js +1 -1
- package/dist/lib/cp.js +1 -1
- package/dist/lib/credentials/test.js +1 -1
- package/dist/lib/forks/create.js +1 -1
- package/dist/lib/forks/list.js +1 -1
- package/dist/lib/iam/policies/create.js +1 -1
- package/dist/lib/iam/policies/delete.js +1 -1
- package/dist/lib/iam/policies/edit.js +1 -1
- package/dist/lib/iam/policies/get.js +1 -1
- package/dist/lib/iam/policies/list.js +1 -1
- package/dist/lib/iam/users/invite.js +5 -0
- package/dist/lib/iam/users/list.js +9 -0
- package/dist/lib/iam/users/remove.js +5 -0
- package/dist/lib/iam/users/revoke-invitation.js +5 -0
- package/dist/lib/iam/users/update-role.js +5 -0
- package/dist/lib/login/credentials.js +1 -1
- package/dist/lib/login/oauth.js +1 -1
- package/dist/lib/login/select.js +1 -1
- package/dist/lib/logout.js +1 -1
- package/dist/lib/ls.js +1 -1
- package/dist/lib/mk.js +1 -1
- package/dist/lib/mv.js +1 -1
- package/dist/lib/objects/delete.js +1 -1
- package/dist/lib/objects/get.js +1 -1
- package/dist/lib/objects/list.js +1 -1
- package/dist/lib/objects/put.js +1 -1
- package/dist/lib/objects/set.js +1 -1
- package/dist/lib/organizations/create.js +5 -2
- package/dist/lib/organizations/list.js +2 -2
- package/dist/lib/organizations/select.js +1 -1
- package/dist/lib/rm.js +1 -1
- package/dist/lib/snapshots/list.js +1 -1
- package/dist/lib/snapshots/take.js +1 -1
- package/dist/lib/stat.js +1 -1
- package/dist/lib/touch.js +1 -1
- package/dist/lib/whoami.js +1 -1
- package/dist/specs.yaml +115 -2
- package/dist/utils/update-check.js +1 -1
- package/package.json +24 -24
- package/dist/chunk-7F4WI32C.js +0 -1
- package/dist/chunk-BP52O7NB.js +0 -1
- package/dist/chunk-NJKXT74Y.js +0 -1
- package/dist/chunk-WU7FCMUU.js +0 -4
- package/dist/chunk-ZUDPATIH.js +0 -8
package/dist/auth/client.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"../chunk-
|
|
1
|
+
import{a,b}from"../chunk-E4MLGABW.js";import"../chunk-DOUR5YEY.js";import"../chunk-KH63ANUX.js";import"../chunk-2XAO2OYD.js";export{a as TigrisAuthClient,b as getAuthClient};
|
package/dist/auth/config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c}from"../chunk-
|
|
1
|
+
import{a,b,c}from"../chunk-KH63ANUX.js";import"../chunk-2XAO2OYD.js";export{b as TIGRIS_CLAIMS_NAMESPACE,a as getAuth0Config,c as getTigrisConfig};
|
package/dist/auth/fly.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a,b}from"../chunk-GZ7JBHFT.js";import"../chunk-KH63ANUX.js";import"../chunk-2XAO2OYD.js";export{b as fetchOrganizationsFromUserInfo,a as isFlyUser};
|
package/dist/auth/s3-client.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d}from"../chunk-
|
|
1
|
+
import{a,b,c,d}from"../chunk-USCKVLDO.js";import"../chunk-E4MLGABW.js";import"../chunk-DOUR5YEY.js";import"../chunk-KH63ANUX.js";import"../chunk-2XAO2OYD.js";export{a as getLoginMethod,c as getS3Client,b as getStorageConfig,d as isAuthenticated};
|
package/dist/auth/storage.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t}from"../chunk-
|
|
1
|
+
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t}from"../chunk-DOUR5YEY.js";import"../chunk-2XAO2OYD.js";export{t as clearAllData,q as clearCredentials,p as clearTemporaryCredentials,c as clearTokens,j as getAwsProfileConfig,k as getCredentials,h as getEnvCredentials,s as getLoginMethod,e as getOrganizations,m as getSavedCredentials,g as getSelectedOrganization,l as getStoredCredentials,b as getTokens,i as hasAwsProfile,n as storeCredentials,r as storeLoginMethod,d as storeOrganizations,f as storeSelectedOrganization,o as storeTemporaryCredentials,a as storeTokens};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var t="https://t3.storage.dev",s="https://iam.storageapi.dev",o="https://mgmt.storageapi.dev",e="https://registry.npmjs.org/@tigrisdata/cli/latest",T=864e5,_=216e5;export{t as a,s as b,o as c,e as d,T as e,_ as f};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as l}from"./chunk-
|
|
1
|
+
import{a as l}from"./chunk-2XAO2OYD.js";import{homedir as d,platform as C}from"os";import{join as r}from"path";import{readFileSync as m,writeFileSync as S,existsSync as c,mkdirSync as y,chmodSync as _}from"fs";import{execFileSync as E}from"child_process";import{loadSharedConfigFiles as I}from"@smithy/shared-ini-file-loader";var s=r(d(),".tigris"),a=r(s,"config.json");function u(n,e){if(C()==="win32")try{let i=process.env.USERNAME;i&&E("icacls",[n,"/inheritance:r","/grant:r",`${i}:F`],{stdio:"ignore"})}catch{console.warn(`Warning: Could not set restrictive permissions on ${n}. It may be accessible to other users.`)}else try{_(n,e)}catch{console.warn(`Warning: Could not set restrictive permissions on ${n}. It may be accessible to other users.`)}}function T(){c(s)||(y(s,{recursive:!0,mode:448}),u(s,448))}function o(){if(c(a))try{let n=m(a,"utf8");return JSON.parse(n)}catch{return{}}return{}}async function t(n){T(),S(a,JSON.stringify(n,null,2),{mode:384}),u(a,384)}async function h(n){let e=o();e.tokens=n,await t(e)}async function z(){return o().tokens||null}async function G(){let n=o();delete n.tokens,await t(n)}async function k(n){let e=o();e.organizations=n,await t(e)}function K(){return o().organizations||[]}async function D(n){let e=o();e.selectedOrganization=n,await t(e)}function F(){return o().selectedOrganization||null}function v(){if(process.env.TIGRIS_STORAGE_ACCESS_KEY_ID||process.env.TIGRIS_STORAGE_SECRET_ACCESS_KEY){let f=process.env.TIGRIS_STORAGE_ACCESS_KEY_ID,g=process.env.TIGRIS_STORAGE_SECRET_ACCESS_KEY;if(!f||!g)return null;let p=process.env.TIGRIS_STORAGE_ENDPOINT||l;return{accessKeyId:f,secretAccessKey:g,endpoint:p}}let n=process.env.AWS_ACCESS_KEY_ID,e=process.env.AWS_SECRET_ACCESS_KEY;if(!n||!e)return null;let i=process.env.AWS_ENDPOINT_URL_S3||l;return{accessKeyId:n,secretAccessKey:e,endpoint:i}}function N(){if(!process.env.AWS_PROFILE)return!1;let n=r(d(),".aws");return c(r(n,"credentials"))||c(r(n,"config"))}async function b(n){try{let{configFile:e}=await I(),i=e[n];return i?{endpoint:i.endpoint_url_s3||i.endpoint_url,iamEndpoint:i.endpoint_url_iam,region:i.region}:{}}catch{return{}}}function L(){let n=o();return v()||n.temporaryCredentials||n.credentials||null}function M(){let n=o();return n.temporaryCredentials||n.credentials||null}function W(){return o().credentials||null}async function Y(n){let e=o();e.credentials=n,await t(e)}async function j(n){let e=o();e.temporaryCredentials=n,await t(e)}async function U(){let n=o();delete n.temporaryCredentials,await t(n)}async function $(){let n=o();delete n.credentials,await t(n)}async function J(n){let e=o();e.loginMethod=n,await t(e)}function q(){return o().loginMethod||null}async function B(){let e=o().credentials;await t({credentials:e})}export{h as a,z as b,G as c,k as d,K as e,D as f,F as g,v as h,N as i,b as j,L as k,M as l,W as m,Y as n,j as o,U as p,$ as q,J as r,q as s,B as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as c,b as s,c as l,d as h,e as g,r as k}from"./chunk-DOUR5YEY.js";import{a as p,b as u}from"./chunk-KH63ANUX.js";import a from"axios";import w from"open";import{createRemoteJWKSet as T,jwtVerify as y}from"jose";var f=class{config;baseUrl;jwks=null;constructor(){this.config=p(),this.baseUrl=`https://${this.config.domain}`}getJWKS(){return this.jwks||(this.jwks=T(new URL(`${this.baseUrl}/.well-known/jwks.json`))),this.jwks}async verifyIdToken(e){let{payload:i}=await y(e,this.getJWKS(),{issuer:`${this.baseUrl}/`,audience:this.config.clientId});return i}async login(e){let o=(await a.post(`${this.baseUrl}/oauth/device/code`,{client_id:this.config.clientId,audience:this.config.audience,scope:"openid profile email offline_access"},{headers:{"Content-Type":"application/x-www-form-urlencoded"}})).data;e?.onDeviceCode?.(o.user_code,o.verification_uri),await this.sleep(2e3);try{await w(o.verification_uri_complete)}catch{}e?.onWaiting?.();let n=await this.pollForToken(o.device_code,o.interval||5);await c(n),k("oauth"),await this.extractAndStoreOrganizations(n.idToken)}async pollForToken(e,i){let n=0;for(;n<60;){n++;try{let r=(await a.post(`${this.baseUrl}/oauth/token`,{client_id:this.config.clientId,device_code:e,grant_type:"urn:ietf:params:oauth:grant-type:device_code"},{headers:{"Content-Type":"application/x-www-form-urlencoded"}})).data;if(!r.id_token)throw new Error("No ID token found. Please try again.");if((await this.verifyIdToken(r.id_token)).email_verified===!1)throw console.log("Email not verified. Please verify your email and try again."),new Error("Email not verified. Please verify your email and try again.");let m=Date.now()+(r.expires_in||3600)*1e3;return{accessToken:r.access_token,refreshToken:r.refresh_token,idToken:r.id_token,expiresAt:m}}catch(t){if(a.isAxiosError(t)&&t.response){let r=t.response.data?.error;if(r==="authorization_pending"){await this.sleep(i*1e3);continue}if(r==="slow_down"){i+=5,await this.sleep(i*1e3);continue}throw new Error(t.response.data?.error_description||"Authentication failed",{cause:t})}throw t}}throw new Error("Authentication timed out. Please try again.")}async getAccessToken(){let e=await s();if(!e)throw new Error('Not authenticated. Please run "tigris login" to authenticate.');let i=300*1e3;return Date.now()+i>=e.expiresAt&&(e=await this.refreshAccessToken(e)),e.accessToken}async refreshAccessToken(e){let i;if(e?.refreshToken?i=e:i=await s(),!i)throw new Error('No refresh token available. Please run "tigris login" to re-authenticate.');try{let n=(await a.post(`${this.baseUrl}/oauth/token`,{client_id:this.config.clientId,grant_type:"refresh_token",refresh_token:i.refreshToken,scope:"openid profile email offline_access"},{headers:{"Content-Type":"application/x-www-form-urlencoded"}})).data,t={accessToken:n.access_token,refreshToken:n.refresh_token||i.refreshToken,idToken:n.id_token||i.idToken,expiresAt:Date.now()+(n.expires_in||3600)*1e3};return await c(t),t}catch{throw await l(),new Error('Token refresh failed. Please run "tigris login" to re-authenticate.')}}async getIdTokenClaims(){let e=await s();if(!e||!e.idToken)throw new Error('Not authenticated. Please run "tigris login" to authenticate.');try{return await this.verifyIdToken(e.idToken)}catch{throw new Error('ID token verification failed. Please run "tigris login" to re-authenticate.')}}async extractAndStoreOrganizations(e){if(e)try{let o=(await this.verifyIdToken(e))[u];if(!o)return;let n=o?.ns?.map(t=>typeof t=="object"&&t!==null?{id:t.id,name:t.name,displayName:t.name}:{id:t,name:t,displayName:t})||[];if(n.length===0)return;h(n)}catch{}}async getOrganizations(){return await this.getAccessToken(),g()}async logout(){await l()}async isAuthenticated(){return await s()!==null}sleep(e){return new Promise(i=>setTimeout(i,e))}},d=null;function S(){return d||(d=new f),d}export{f as a,S as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as u,b as o,c as m,g}from"./chunk-SYGTCM6P.js";import{m as i,o as d,r as y}from"./chunk-
|
|
1
|
+
import{a as u,b as o,c as m,g}from"./chunk-SYGTCM6P.js";import{m as i,o as d,r as y}from"./chunk-DOUR5YEY.js";import{a as n}from"./chunk-2XAO2OYD.js";import p from"enquirer";var{prompt:S}=p,t=g("login","credentials");async function l(e){u(t);let s=e["access-key"]||e.accessKey||e.key||e.Key||e.accesskey,c=e["access-secret"]||e.accessSecret||e.secret||e.Secret||e.accesssecret;if(!s||!c){let r=[];s||r.push({type:"input",name:"accessKey",message:"Access Key ID:",required:!0}),c||r.push({type:"password",name:"accessSecret",message:"Secret Access Key:",required:!0});let a=await S(r);s=s||a.accessKey,c=c||a.accessSecret}(!s||!c)&&(m(t,"Access key and secret are required"),process.exit(1));let f=i()?.endpoint||n;await d({accessKeyId:s,secretAccessKey:c,endpoint:f}),await y("credentials"),o(t)}export{l as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as o,b as e}from"./chunk-KH63ANUX.js";import a from"axios";function p(n){return!!n?.startsWith("flyio_")}async function u(n){try{let{domain:i}=o(),t=(await a.get(`https://${i}/userinfo`,{headers:{Authorization:`Bearer ${n}`}})).data[e]?.ns;return Array.isArray(t)?t.map(r=>({id:r.id,name:r.name,displayName:r.name})):null}catch{return null}}export{p as a,u as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e,b as i,c as t}from"./chunk-2XAO2OYD.js";function T(){let n=process.env.TIGRIS_ENV==="development",s=n?"auth-dev.tigris.dev":process.env.AUTH0_DOMAIN??"auth.tigris.dev",o=n?"JdJVYIyw0O1uHi5L5OJH903qaWBgd3gF":process.env.AUTH0_CLIENT_ID??"DMejqeM3CQ4IqTjEcd3oA9eEiT40hn8D",r=n?"https://tigris-api-dev":process.env.AUTH0_AUDIENCE??"https://tigris-os-api";return{domain:s,clientId:o,audience:r}}var p=process.env.TIGRIS_CLAIMS_NAMESPACE||"https://tigris";function _(){return process.env.TIGRIS_STORAGE_ENDPOINT||process.env.TIGRIS_IAM_ENDPOINT?{endpoint:process.env.TIGRIS_STORAGE_ENDPOINT||e,iamEndpoint:process.env.TIGRIS_IAM_ENDPOINT||i,mgmtEndpoint:process.env.TIGRIS_MGMT_ENDPOINT||t}:{endpoint:process.env.AWS_ENDPOINT_URL_S3||e,iamEndpoint:process.env.AWS_ENDPOINT_URL_IAM||i,mgmtEndpoint:process.env.AWS_ENDPOINT_URL_MGMT||t}}export{T as a,p as b,_ as c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as s,c as l}from"./chunk-
|
|
1
|
+
import{a as s,c as l}from"./chunk-SJCYBKF2.js";import{b as m}from"./chunk-BETAO4PB.js";import{a as t,k as i}from"./chunk-4V35SYMM.js";import{existsSync as c}from"fs";import{join as a,dirname as u}from"path";import{fileURLToPath as f}from"url";t();var j=f(import.meta.url),d=u(j),h=m(),y=o=>{if(o.length===0)return!1;let e=a(d,"lib",...o)+".js";if(c(e))return!0;let r=a(d,"lib",...o,"index.js");return!!c(r)},b=async o=>{let e=[`./lib/${o.join("/")}.js`,`./lib/${o.join("/")}/index.js`];for(let p of e){let n=await import(p).catch(()=>null);if(n)return{module:n,error:null}}return{module:null,error:`Command not found: ${o.join(" ")}`}},x=i({specs:h,version:s,loadModule:b,hasImplementation:y});x.parse();l();
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import{d as m,e as d,f}from"./chunk-2XAO2OYD.js";import{readFileSync as T,writeFileSync as I,mkdirSync as N}from"fs";import{join as g}from"path";import{homedir as h}from"os";import k from"https";var u="2.10.0";var b=g(h(),".tigris","update-check.json");function y(){try{let e=T(b,"utf-8"),s=JSON.parse(e);return typeof s.latestVersion=="string"&&typeof s.lastChecked=="number"?s:null}catch{return null}}function v(e){try{N(g(h(),".tigris"),{recursive:!0}),I(b,JSON.stringify(e),"utf-8")}catch{}}function j(e,s){let a=o=>{let r=o.startsWith("v")?o.slice(1):o,c=null,l=r.indexOf("-");l!==-1&&(c=r.slice(l+1),r=r.slice(0,l));let p=r.split(".");if(p.length!==3)return null;let n=p.map(Number);return n.some(isNaN)?null:{major:n[0],minor:n[1],patch:n[2],prerelease:c}},t=a(e),i=a(s);return!t||!i?!1:i.major>t.major?!0:i.major<t.major?!1:i.minor>t.minor?!0:i.minor<t.minor?!1:i.patch>t.patch?!0:i.patch<t.patch?!1:t.prerelease&&!i.prerelease?!0:(!t.prerelease&&i.prerelease,!1)}function x(){try{let e=k.get(m,{timeout:5e3},s=>{let a="";s.on("data",t=>{a+=t}),s.on("end",()=>{try{let t=JSON.parse(a);if(typeof t.version=="string"){let i=y();v({...i,latestVersion:t.version,lastChecked:Date.now()})}}catch{}})});e.on("error",()=>{}),e.on("timeout",()=>{e.destroy()}),e.end(),e.on("socket",s=>{s.unref()})}catch{}}function V(){if(process.env.TIGRIS_NO_UPDATE_CHECK==="1"||!process.stdout.isTTY)return;let e=y(),s=Number(process.env.TIGRIS_UPDATE_NOTIFY_INTERVAL_MS)||216e5;if(e&&j(u,e.latestVersion)&&(!e.lastNotified||Date.now()-e.lastNotified>s)){let t=globalThis.__TIGRIS_BINARY===!0,i=process.platform==="win32",o=`Update available: ${u} \u2192 ${e.latestVersion}`,r;t?i?r="Run `irm https://raw.githubusercontent.com/tigrisdata/cli/main/scripts/install.ps1 | iex`":r="Run `curl -fsSL https://raw.githubusercontent.com/tigrisdata/cli/main/scripts/install.sh | sh`":r="Run `npm install -g @tigrisdata/cli` to upgrade.";let c=Math.max(o.length,r.length)+4,l="\u250C"+"\u2500".repeat(c-2)+"\u2510",p="\u2514"+"\u2500".repeat(c-2)+"\u2518",n=_=>"\u2502 "+_.padEnd(c-4)+" \u2502";console.log(`
|
|
2
|
+
${l}
|
|
3
|
+
${n("")}
|
|
4
|
+
${n(o)}
|
|
5
|
+
${n(r)}
|
|
6
|
+
${n("")}
|
|
7
|
+
${p}
|
|
8
|
+
`),v({...e,lastNotified:Date.now()})}let a=Number(process.env.TIGRIS_UPDATE_CHECK_INTERVAL_MS)||864e5;(!e||Date.now()-e.lastChecked>a)&&x()}export{u as a,j as b,V as c};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{a as s,b as e,c,e as g,f as l,g as u}from"./chunk-SYGTCM6P.js";import{b as a}from"./chunk-E4MLGABW.js";import{f as r}from"./chunk-DOUR5YEY.js";var t=u("login","oauth");async function f(){s(t);try{let i=a();if(await i.isAuthenticated()){g(t);return}await i.login({onDeviceCode:(o,p)=>{console.log(`
|
|
2
|
+
Your confirmation code: ${o}
|
|
3
|
+
`),console.log(`If browser doesn't open, visit: ${p}`)},onWaiting:()=>console.log(`
|
|
4
|
+
Waiting for authentication...`)});let n=await i.getOrganizations();if(n.length>0){let o=n[0];await r(o.id),e(t,{org:o.displayName||o.name}),n.length>1&&l(t,{count:n.length})}else e(t,{org:"none"})}catch{c(t),process.exit(1)}}var A=f;export{f as a,A as b};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as f}from"./chunk-
|
|
1
|
+
import{b as f}from"./chunk-E4MLGABW.js";import{g as u,h as d,i as l,j as p,l as r,s as h}from"./chunk-DOUR5YEY.js";import{a as w,c as A}from"./chunk-KH63ANUX.js";import{a as g}from"./chunk-2XAO2OYD.js";import{S3Client as a}from"@aws-sdk/client-s3";import{fromIni as I}from"@aws-sdk/credential-providers";var c=A(),S=w(),C=!1;async function T(){if(C||!process.stdin.isTTY)return!1;C=!0,console.log(`Not authenticated. Starting login...
|
|
2
2
|
`);let{default:o}=await import("./lib/login/select.js");return await o({}),console.log(),!0}async function y(){return h()}async function k(){if(l()){let e=process.env.AWS_PROFILE||"default",s=await p(e),i=await I({profile:e})();return{accessKeyId:i.accessKeyId,secretAccessKey:i.secretAccessKey,endpoint:s.endpoint||c.endpoint||g,iamEndpoint:s.iamEndpoint||c.iamEndpoint}}let o=await y();if(o==="oauth"){let s=await f().getAccessToken(),i=u();if(!i)throw new Error('No organization selected. Please run "tigris orgs select" first.');return{sessionToken:s,accessKeyId:"",secretAccessKey:"",endpoint:c.endpoint,organizationId:i,iamEndpoint:c.iamEndpoint,authDomain:S.domain}}if(o==="credentials"){let e=r();if(e)return{accessKeyId:e.accessKeyId,secretAccessKey:e.secretAccessKey,endpoint:e.endpoint}}let t=d();if(t)return{accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,endpoint:t.endpoint};let n=r();if(n)return{accessKeyId:n.accessKeyId,secretAccessKey:n.secretAccessKey,endpoint:n.endpoint};if(await T())return k();throw new Error('Not authenticated. Please run "tigris login" or "tigris configure" first.')}async function L(){if(l()){let e=process.env.AWS_PROFILE||"default",s=await p(e);return new a({region:"auto",endpoint:s.endpoint||c.endpoint||g,credentials:I({profile:e})})}let o=await y();if(o==="oauth"){let s=await f().getAccessToken(),i=u();if(!i)throw new Error('No organization selected. Please run "tigris orgs select" first.');let m=new a({region:"auto",endpoint:c.endpoint,credentials:{sessionToken:s,accessKeyId:"",secretAccessKey:""}});return m.middlewareStack.add(E=>async K=>{let P=K.request;return P.headers["x-Tigris-Namespace"]=i,await E(K)},{name:"x-Tigris-Namespace-Middleware",step:"build",override:!0}),m}if(o==="credentials"){let e=r();if(e)return new a({region:"auto",endpoint:e.endpoint,credentials:{accessKeyId:e.accessKeyId,secretAccessKey:e.secretAccessKey}})}let t=d();if(t)return new a({region:"auto",endpoint:t.endpoint,credentials:{accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey}});let n=r();if(n)return new a({region:"auto",endpoint:n.endpoint,credentials:{accessKeyId:n.accessKeyId,secretAccessKey:n.secretAccessKey}});if(await T())return L();throw new Error('Not authenticated. Please run "tigris login" or "tigris configure" first.')}async function b(){return l()||await y()!==null||d()!==null||r()!==null}export{y as a,k as b,L as c,b as d};
|
package/dist/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import"./chunk-
|
|
2
|
+
import"./chunk-N7F2D3XT.js";import"./chunk-SJCYBKF2.js";import"./chunk-BETAO4PB.js";import"./chunk-4V35SYMM.js";import"./chunk-2XAO2OYD.js";
|
package/dist/constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e}from"./chunk-
|
|
1
|
+
import{a,b,c,d,e,f}from"./chunk-2XAO2OYD.js";export{b as DEFAULT_IAM_ENDPOINT,c as DEFAULT_MGMT_ENDPOINT,a as DEFAULT_STORAGE_ENDPOINT,d as NPM_REGISTRY_URL,e as UPDATE_CHECK_INTERVAL_MS,f as UPDATE_NOTIFY_INTERVAL_MS};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./chunk-
|
|
1
|
+
import"./chunk-N7F2D3XT.js";import"./chunk-SJCYBKF2.js";import"./chunk-BETAO4PB.js";import"./chunk-4V35SYMM.js";import"./chunk-2XAO2OYD.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as A,b as l,c as t,g as R}from"../../chunk-SYGTCM6P.js";import{a as n}from"../../chunk-JRALYIRA.js";import"../../chunk-
|
|
1
|
+
import{a as A,b as l,c as t,g as R}from"../../chunk-SYGTCM6P.js";import{a as n}from"../../chunk-JRALYIRA.js";import{a as b}from"../../chunk-USCKVLDO.js";import"../../chunk-BETAO4PB.js";import{b as k}from"../../chunk-E4MLGABW.js";import{g as h}from"../../chunk-DOUR5YEY.js";import{c as p}from"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import{assignBucketRoles as C,revokeAllBucketRoles as N}from"@tigrisdata/iam";var e=R("access-keys","assign"),x=["Editor","ReadOnly","NamespaceAdmin"];function y(o){return o?Array.isArray(o)?o:[o]:[]}async function E(o){A(e);let c=n(o,["id"]),g=n(o,["admin"]),d=n(o,["revokeRoles","revoke-roles"]),r=y(n(o,["bucket","b"])),s=y(n(o,["role","r"]));c||(t(e,"Access key ID is required"),process.exit(1)),g&&d&&(t(e,"Cannot use --admin and --revoke-roles together"),process.exit(1)),await b()!=="oauth"&&(t(e,`Bucket roles can only be managed when logged in via OAuth.
|
|
2
2
|
Run "tigris login oauth" first.`),process.exit(1));let m=k();await m.isAuthenticated()||(t(e,'Not authenticated. Run "tigris login oauth" first.'),process.exit(1));let T=await m.getAccessToken(),v=h(),w=p(),u={sessionToken:T,organizationId:v??void 0,iamEndpoint:w.iamEndpoint};if(d){let{error:i}=await N(c,{config:u});i&&(t(e,i.message),process.exit(1)),l(e);return}let a;if(g)a=[{bucket:"*",role:"NamespaceAdmin"}];else{r.length===0&&(t(e,"At least one bucket name is required (or use --admin or --revoke-roles)"),process.exit(1)),s.length===0&&(t(e,"At least one role is required (or use --admin or --revoke-roles)"),process.exit(1));for(let i of s)x.includes(i)||(t(e,`Invalid role "${i}". Valid roles are: ${x.join(", ")}`),process.exit(1));s.length===1?a=r.map(i=>({bucket:i,role:s[0]})):s.length===r.length?a=r.map((i,O)=>({bucket:i,role:s[O]})):(t(e,`Number of roles (${s.length}) must be 1 or match number of buckets (${r.length})`),process.exit(1))}let{error:f}=await C(c,a,{config:u});f&&(t(e,f.message),process.exit(1)),l(e)}export{E as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as g,b as l,c as t,g as m}from"../../chunk-SYGTCM6P.js";import{a as u}from"../../chunk-JRALYIRA.js";import"../../chunk-
|
|
1
|
+
import{a as g,b as l,c as t,g as m}from"../../chunk-SYGTCM6P.js";import{a as u}from"../../chunk-JRALYIRA.js";import{a as d}from"../../chunk-USCKVLDO.js";import"../../chunk-BETAO4PB.js";import{b as a}from"../../chunk-E4MLGABW.js";import{g as r}from"../../chunk-DOUR5YEY.js";import{c}from"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import{createAccessKey as y}from"@tigrisdata/iam";var e=m("access-keys","create");async function w(f){g(e);let i=u(f,["name"]);i||(t(e,"Access key name is required"),process.exit(1)),await d()!=="oauth"&&(t(e,`Access keys can only be created when logged in via OAuth.
|
|
2
2
|
Run "tigris login oauth" first.`),process.exit(1));let n=a();await n.isAuthenticated()||(t(e,'Not authenticated. Run "tigris login oauth" first.'),process.exit(1));let p=await n.getAccessToken(),h=r(),A=c(),{data:o,error:s}=await y(i,{config:{sessionToken:p,organizationId:h??void 0,iamEndpoint:A.iamEndpoint}});s&&(t(e,s.message),process.exit(1)),console.log(` Name: ${o.name}`),console.log(` Access Key ID: ${o.id}`),console.log(` Secret Access Key: ${o.secret}`),console.log(""),console.log(" Save these credentials securely. The secret will not be shown again."),l(e)}export{w as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a,b as g,c as e,g as d}from"../../chunk-SYGTCM6P.js";import{a as f}from"../../chunk-JRALYIRA.js";import"../../chunk-
|
|
1
|
+
import{a,b as g,c as e,g as d}from"../../chunk-SYGTCM6P.js";import{a as f}from"../../chunk-JRALYIRA.js";import{a as m}from"../../chunk-USCKVLDO.js";import"../../chunk-BETAO4PB.js";import{b as c}from"../../chunk-E4MLGABW.js";import{g as r}from"../../chunk-DOUR5YEY.js";import{c as s}from"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import{removeAccessKey as A}from"@tigrisdata/iam";var t=d("access-keys","delete");async function k(u){a(t);let i=f(u,["id"]);i||(e(t,"Access key ID is required"),process.exit(1)),await m()!=="oauth"&&(e(t,`Access keys can only be deleted when logged in via OAuth.
|
|
2
2
|
Run "tigris login oauth" first.`),process.exit(1));let o=c();await o.isAuthenticated()||(e(t,'Not authenticated. Run "tigris login oauth" first.'),process.exit(1));let p=await o.getAccessToken(),h=r(),l=s(),{error:n}=await A(i,{config:{sessionToken:p,organizationId:h??void 0,iamEndpoint:l.iamEndpoint}});n&&(e(t,n.message),process.exit(1)),g(t)}export{k as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as l,b as d,c as t,g as f}from"../../chunk-SYGTCM6P.js";import{a as m}from"../../chunk-JRALYIRA.js";import"../../chunk-
|
|
1
|
+
import{a as l,b as d,c as t,g as f}from"../../chunk-SYGTCM6P.js";import{a as m}from"../../chunk-JRALYIRA.js";import{a as u}from"../../chunk-USCKVLDO.js";import"../../chunk-BETAO4PB.js";import{b as g}from"../../chunk-E4MLGABW.js";import{g as a}from"../../chunk-DOUR5YEY.js";import{c}from"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import{getAccessKey as $}from"@tigrisdata/iam";var e=f("access-keys","get");async function w(p){l(e);let i=m(p,["id"]);i||(t(e,"Access key ID is required"),process.exit(1)),await u()!=="oauth"&&(t(e,`Access keys can only be retrieved when logged in via OAuth.
|
|
2
2
|
Run "tigris login oauth" first.`),process.exit(1));let n=g();await n.isAuthenticated()||(t(e,'Not authenticated. Run "tigris login oauth" first.'),process.exit(1));let h=await n.getAccessToken(),A=a(),k=c(),{data:o,error:s}=await $(i,{config:{sessionToken:h,organizationId:A??void 0,iamEndpoint:k.iamEndpoint}});if(s&&(t(e,s.message),process.exit(1)),console.log(` Name: ${o.name}`),console.log(` ID: ${o.id}`),console.log(` Status: ${o.status}`),console.log(` Created: ${o.createdAt}`),console.log(` Organization: ${o.organizationId}`),o.roles&&o.roles.length>0){console.log(" Roles:");for(let r of o.roles)console.log(` - ${r.bucket}: ${r.role}`)}else console.log(" Roles: None");d(e)}export{w as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as g,b as u,c as s,d as m,g as l}from"../../chunk-SYGTCM6P.js";import{f}from"../../chunk-CQCBYE3X.js";import"../../chunk-
|
|
1
|
+
import{a as g,b as u,c as s,d as m,g as l}from"../../chunk-SYGTCM6P.js";import{f}from"../../chunk-CQCBYE3X.js";import{a as p}from"../../chunk-USCKVLDO.js";import"../../chunk-BETAO4PB.js";import{b as d}from"../../chunk-E4MLGABW.js";import{g as r}from"../../chunk-DOUR5YEY.js";import{c}from"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import{listAccessKeys as w}from"@tigrisdata/iam";var t=l("access-keys","list");async function x(){g(t),await p()!=="oauth"&&(s(t,`Access keys can only be listed when logged in via OAuth.
|
|
2
2
|
Run "tigris login oauth" first.`),process.exit(1));let o=d();await o.isAuthenticated()||(s(t,'Not authenticated. Run "tigris login oauth" first.'),process.exit(1));let h=await o.getAccessToken(),y=r(),k=c(),{data:i,error:n}=await w({config:{sessionToken:h,organizationId:y??void 0,iamEndpoint:k.iamEndpoint}});if(n&&(s(t,n.message),process.exit(1)),!i.accessKeys||i.accessKeys.length===0){m(t);return}let a=i.accessKeys.map(e=>({name:e.name,id:e.id,status:e.status,created:e.createdAt})),A=f(a,"table","keys","key",[{key:"name",header:"Name"},{key:"id",header:"ID"},{key:"status",header:"Status"},{key:"created",header:"Created"}]);console.log(A),u(t,{count:a.length})}export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as S,b as x,c as b,g as k}from"../../chunk-SYGTCM6P.js";import{a as c}from"../../chunk-JRALYIRA.js";import{
|
|
1
|
+
import{a as S,b as x,c as b,g as k}from"../../chunk-SYGTCM6P.js";import{a as c}from"../../chunk-JRALYIRA.js";import{b as v}from"../../chunk-USCKVLDO.js";import{d,e as f}from"../../chunk-BETAO4PB.js";import"../../chunk-E4MLGABW.js";import"../../chunk-DOUR5YEY.js";import"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import A from"enquirer";import{createBucket as I}from"@tigrisdata/storage";var{prompt:T}=A,h=k("buckets","create");async function C(a){S(h);let t=!c(a,["name"]),u=c(a,["name"]),g=t?void 0:c(a,["access","a","A"]),l=t?void 0:c(a,["enable-snapshots","s","S"]),m=t?void 0:c(a,["default-tier","t","T"]),p=t?void 0:c(a,["consistency","c","C"]),r=t?void 0:c(a,["region","r","R"]),i=[];if((!u||t)&&i.push({type:"input",name:"name",message:"Bucket name:",required:!0}),!g||t){let e=d("buckets","access","create"),s=f(e),n=s?.findIndex(o=>o.value===e?.default);i.push({type:"select",name:"access",message:"Access level:",choices:s||[],initial:n!==void 0&&n>=0?n:0})}if(!m||t){let e=d("buckets","default-tier","create"),s=f(e),n=s?.findIndex(o=>o.value===e?.default);i.push({type:"select",name:"defaultTier",message:"Default storage tier:",choices:s||[],initial:n!==void 0&&n>=0?n:0})}if(!p||t){let e=d("buckets","consistency","create"),s=f(e),n=s?.findIndex(o=>o.value===e?.default);i.push({type:"select",name:"consistency",message:"Consistency level:",choices:s||[],initial:n!==void 0&&n>=0?n:0})}if(!r||t){let e=d("buckets","region","create"),s=f(e),n=s?.findIndex(o=>o.value===e?.default);i.push({type:"select",name:"region",message:"Region:",choices:s||[],initial:n!==void 0&&n>=0?n:0})}if((l===void 0||t)&&i.push({type:"confirm",name:"enableSnapshots",message:"Enable snapshots?",initial:!0}),i.length>0){let e=await T(i);u=u||e.name,g=g||e.access,l=l!==void 0?l:e.enableSnapshots,m=m||e.defaultTier,p=p||e.consistency,r=r!==void 0?r:e.region}u||(b(h,"Bucket name is required"),process.exit(1));let{error:y}=await I(u,{defaultTier:m??"STANDARD",consistency:p==="strict"?"strict":"default",enableSnapshot:l===!0,access:g,region:r!=="global"&&r!==void 0?r.split(","):void 0,config:await v()});y&&(b(h,y.message),process.exit(1)),x(h,{name:u})}export{C as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as i,b as s,c as o,g as c}from"../../chunk-SYGTCM6P.js";import{a as m}from"../../chunk-JRALYIRA.js";import"../../chunk-
|
|
1
|
+
import{a as i,b as s,c as o,g as c}from"../../chunk-SYGTCM6P.js";import{a as m}from"../../chunk-JRALYIRA.js";import{b as a}from"../../chunk-USCKVLDO.js";import"../../chunk-BETAO4PB.js";import"../../chunk-E4MLGABW.js";import"../../chunk-DOUR5YEY.js";import"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import{removeBucket as g}from"@tigrisdata/storage";var e=c("buckets","delete");async function k(f){i(e);let t=m(f,["name"]);t||(o(e,"Bucket name is required"),process.exit(1));let p=Array.isArray(t)?t:[t],u=await a();for(let r of p){let{error:n}=await g(r,{config:u});n&&(o(e,n.message,{name:r}),process.exit(1)),s(e,{name:r})}}export{k as default};
|
package/dist/lib/buckets/get.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as s,b as p,c as r,g as n}from"../../chunk-SYGTCM6P.js";import{f as i}from"../../chunk-CQCBYE3X.js";import{a as c}from"../../chunk-JRALYIRA.js";import"../../chunk-
|
|
1
|
+
import{a as s,b as p,c as r,g as n}from"../../chunk-SYGTCM6P.js";import{f as i}from"../../chunk-CQCBYE3X.js";import{a as c}from"../../chunk-JRALYIRA.js";import{b as u}from"../../chunk-USCKVLDO.js";import"../../chunk-BETAO4PB.js";import"../../chunk-E4MLGABW.js";import"../../chunk-DOUR5YEY.js";import"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import{getBucketInfo as l}from"@tigrisdata/storage";var t=n("buckets","get");async function g(m){s(t);let o=c(m,["name"]);o||(r(t,"Bucket name is required"),process.exit(1));let{data:e,error:a}=await l(o,{config:await u()});a&&(r(t,a.message),process.exit(1));let f=[{property:"Name",value:o},{property:"Snapshots Enabled",value:e.isSnapshotEnabled?"Yes":"No"},{property:"Has Forks",value:e.hasForks?"Yes":"No"},...e.sourceBucketName?[{property:"Source Bucket",value:e.sourceBucketName}]:[],...e.sourceBucketSnapshot?[{property:"Source Snapshot",value:e.sourceBucketSnapshot}]:[]],k=i(f,"table","bucket","property",[{key:"property",header:"Property"},{key:"value",header:"Value"}]);console.log(k),p(t)}export{g as default};
|
package/dist/lib/buckets/list.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as c,b as i,c as r,d as m,g as u}from"../../chunk-SYGTCM6P.js";import{f as g}from"../../chunk-CQCBYE3X.js";import{a as f}from"../../chunk-JRALYIRA.js";import"../../chunk-
|
|
1
|
+
import{a as c,b as i,c as r,d as m,g as u}from"../../chunk-SYGTCM6P.js";import{f as g}from"../../chunk-CQCBYE3X.js";import{a as f}from"../../chunk-JRALYIRA.js";import{b as p}from"../../chunk-USCKVLDO.js";import"../../chunk-BETAO4PB.js";import"../../chunk-E4MLGABW.js";import"../../chunk-DOUR5YEY.js";import"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import{listBuckets as d}from"@tigrisdata/storage";var t=u("buckets","list");async function b(k){c(t);try{let e=f(k,["format","F"],"table"),{data:o,error:n}=await d({config:await p()});if(n&&(r(t,n.message),process.exit(1)),!o.buckets||o.buckets.length===0){m(t);return}let s=o.buckets.map(a=>({name:a.name,created:a.creationDate})),l=g(s,e,"buckets","bucket",[{key:"name",header:"Name"},{key:"created",header:"Created"}]);console.log(l),i(t,{count:s.length})}catch(e){e instanceof Error?r(t,e.message):r(t,"An unknown error occurred"),process.exit(1)}}export{b as default};
|
package/dist/lib/buckets/set.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as O,b as y,c,g as w}from"../../chunk-SYGTCM6P.js";import{a as e,b as r}from"../../chunk-JRALYIRA.js";import"../../chunk-
|
|
1
|
+
import{a as O,b as y,c,g as w}from"../../chunk-SYGTCM6P.js";import{a as e,b as r}from"../../chunk-JRALYIRA.js";import{b as k}from"../../chunk-USCKVLDO.js";import"../../chunk-BETAO4PB.js";import"../../chunk-E4MLGABW.js";import{g as D}from"../../chunk-DOUR5YEY.js";import"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import{updateBucket as x}from"@tigrisdata/storage";var o=w("buckets","set");async function B(n){O(o);let s=e(n,["name"]),a=e(n,["access"]),i=e(n,["region"]),d=e(n,["allow-object-acl","allowObjectAcl"]),l=e(n,["disable-directory-listing","disableDirectoryListing"]),f=e(n,["cache-control","cacheControl"]),u=e(n,["custom-domain","customDomain"]),g=e(n,["enable-delete-protection","enableDeleteProtection"]);s||(c(o,"Bucket name is required"),process.exit(1)),a===void 0&&i===void 0&&d===void 0&&l===void 0&&f===void 0&&u===void 0&&g===void 0&&(c(o,"At least one setting is required"),process.exit(1));let m=await k(),t={};a!==void 0&&(t.access=a),i!==void 0&&(t.regions=Array.isArray(i)?i:[i]),d!==void 0&&(t.allowObjectAcl=r(d)),l!==void 0&&(t.disableDirectoryListing=r(l)),f!==void 0&&(t.cacheControl=f),u!==void 0&&(t.customDomain=u),g!==void 0&&(t.enableDeleteProtection=r(g));let p=D(),A={...m,...p&&!m.organizationId?{organizationId:p}:{}},{error:b}=await x(s,{...t,config:A});b&&(c(o,b.message),process.exit(1)),y(o,{name:s})}export{B as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as g,b as p,c as n,g as m}from"../../chunk-SYGTCM6P.js";import"../../chunk-BETAO4PB.js";import{n as u,r as y}from"../../chunk-
|
|
1
|
+
import{a as g,b as p,c as n,g as m}from"../../chunk-SYGTCM6P.js";import"../../chunk-BETAO4PB.js";import{n as u,r as y}from"../../chunk-DOUR5YEY.js";import{a as d}from"../../chunk-2XAO2OYD.js";import f from"enquirer";var{prompt:l}=f,i=m("configure");async function o(e){g(i);let s=e["access-key"]||e.accessKey||e.key||e.Key||e.accesskey,c=e["access-secret"]||e.accessSecret||e.secret||e.Secret||e.accesssecret,r=e.endpoint||e.e||e.E||e.Endpoint;if(!s||!c||!r){let t=[];s||t.push({type:"input",name:"accessKey",message:"Tigris Access Key ID:",required:!0}),c||t.push({type:"password",name:"accessSecret",message:"Tigris Secret Access Key:",required:!0}),r||t.push({type:"input",name:"endpoint",message:"Tigris Endpoint:",required:!0,initial:d});let a=await l(t);s=s||a.accessKey,c=c||a.accessSecret,r=r||a.endpoint}(!s||!c||!r)&&(n(i,"All credentials are required"),process.exit(1));try{await u({accessKeyId:s,secretAccessKey:c,endpoint:r}),await y("credentials"),p(i)}catch{n(i,"Failed to save credentials"),process.exit(1)}}export{o as default};
|
package/dist/lib/cp.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as $}from"../chunk-CQCBYE3X.js";import{a as v}from"../chunk-JRALYIRA.js";import{a as D,b as W,d as S,g as R,h as C,i as T}from"../chunk-LCWHZUZZ.js";import{b as M}from"../chunk-
|
|
1
|
+
import{a as $}from"../chunk-CQCBYE3X.js";import{a as v}from"../chunk-JRALYIRA.js";import{a as D,b as W,d as S,g as R,h as C,i as T}from"../chunk-LCWHZUZZ.js";import{b as M}from"../chunk-USCKVLDO.js";import"../chunk-E4MLGABW.js";import"../chunk-DOUR5YEY.js";import"../chunk-KH63ANUX.js";import"../chunk-2XAO2OYD.js";import{createReadStream as Q,createWriteStream as V,statSync as z,readdirSync as N,mkdirSync as X,existsSync as O}from"fs";import{resolve as B,dirname as E,basename as j,join as x,relative as L}from"path";import{homedir as Y}from"os";import{Readable as q}from"stream";import{pipeline as Z}from"stream/promises";import{get as G,put as A,list as _,head as H}from"@tigrisdata/storage";function P(r,e){let t=D(r),a=D(e);return!t&&!a&&(console.error("At least one path must be a remote Tigris path (t3:// or tigris://)"),process.exit(1)),t&&a?"remote-to-remote":t?"remote-to-local":"local-to-remote"}function J(r){return r==="~"||r.startsWith("~/")?B(Y(),r.slice(2)):B(r)}function ee(r){return N(r,{recursive:!0,withFileTypes:!0}).filter(t=>t.isFile()).map(t=>{let a=t.parentPath??t.path;return x(a,t.name)})}function te(r,e){let t=E(r),a=j(r),p=R(a);return O(t)?e?N(t,{recursive:!0,withFileTypes:!0}).filter(o=>o.isFile()&&p.test(o.name)).map(o=>{let n=o.parentPath??o.path;return x(n,o.name)}):N(t,{withFileTypes:!0}).filter(n=>n.isFile()&&p.test(n.name)).map(n=>x(t,n.name)):[]}async function U(r,e,t,a,p=!1){let u;try{u=z(r).size}catch{return{error:`File not found: ${r}`}}let o=Q(r),n=q.toWeb(o),i=u!==void 0&&u>100*1024*1024,{error:l}=await A(t,n,{multipart:i,onUploadProgress:p?({loaded:c})=>{if(u!==void 0&&u>0){let s=Math.round(c/u*100);process.stdout.write(`\rUploading: ${$(c)} / ${$(u)} (${s}%)`)}else process.stdout.write(`\rUploading: ${$(c)}`)}:void 0,config:{...a,bucket:e}});return p&&process.stdout.write("\r"+" ".repeat(60)+"\r"),l?{error:l.message}:{}}async function K(r,e,t,a,p=!1){let u;if(p){let{data:s}=await H(e,{config:{...a,bucket:r}});u=s?.size}let{data:o,error:n}=await G(e,"stream",{config:{...a,bucket:r}});if(n)return{error:n.message};let i=E(t);O(i)||X(i,{recursive:!0});let l=V(t),c=q.fromWeb(o);if(p&&u!==void 0&&u>0){let s=0;c.on("data",h=>{s+=h.length;let m=Math.round(s/u*100);process.stdout.write(`\rDownloading: ${$(s)} / ${$(u)} (${m}%)`)})}return await Z(c,l),p&&process.stdout.write("\r"+" ".repeat(60)+"\r"),{}}async function I(r,e,t,a,p,u=!1){if(t.endsWith("/")){let{error:s}=await A(p,"",{config:{...r,bucket:a}});return s?{error:s.message}:{}}let o;if(u){let{data:s}=await H(t,{config:{...r,bucket:e}});o=s?.size}let{data:n,error:i}=await G(t,"stream",{config:{...r,bucket:e}});if(i)return{error:i.message};let l=o!==void 0&&o>100*1024*1024,{error:c}=await A(p,n,{multipart:l,onUploadProgress:u?({loaded:s})=>{if(o!==void 0&&o>0){let h=Math.round(s/o*100);process.stdout.write(`\rCopying: ${$(s)} / ${$(o)} (${h}%)`)}else process.stdout.write(`\rCopying: ${$(s)}`)}:void 0,config:{...r,bucket:a}});return u&&process.stdout.write("\r"+" ".repeat(60)+"\r"),c?{error:c.message}:{}}async function oe(r,e,t,a){let p=J(r);if(r.includes("*")){let n=te(p,a);if(n.length===0){console.log("No files matching pattern");return}let i=E(p),l=0;for(let c of n){let s=L(i,c),h=e.path?`${e.path.replace(/\/$/,"")}/${s}`:s,m=await U(c,e.bucket,h,t);m.error?console.error(`Failed to upload ${c}: ${m.error}`):(console.log(`Uploaded ${c} -> t3://${e.bucket}/${h}`),l++)}console.log(`Uploaded ${l} file(s)`);return}let o;try{o=z(p)}catch{console.error(`Source not found: ${r}`),process.exit(1)}if(o.isDirectory()){a||(console.error(`${r} is a directory (not copied). Use -r to copy recursively.`),process.exit(1));let n=ee(p);if(n.length===0){console.log("No files to upload");return}let i=r.endsWith("/")?"":j(p),l=0;for(let c of n){let s=L(p,c),m=[e.path?.replace(/\/$/,""),i,s].filter(Boolean).join("/"),b=await U(c,e.bucket,m,t);b.error?console.error(`Failed to upload ${c}: ${b.error}`):(console.log(`Uploaded ${c} -> t3://${e.bucket}/${m}`),l++)}console.log(`Uploaded ${l} file(s)`)}else{let n=j(p),i;e.path?r.endsWith("/")||e.path.endsWith("/")?i=`${e.path.replace(/\/$/,"")}/${n}`:await S(e.bucket,e.path,t)?i=`${e.path}/${n}`:i=e.path:i=n;let l=await U(p,e.bucket,i,t,!0);l.error&&(console.error(l.error),process.exit(1)),console.log(`Uploaded ${r} -> t3://${e.bucket}/${i}`)}}async function re(r,e,t,a,p){let u=r.endsWith("/");!e.path&&!u&&(console.error("Cannot copy a bucket. Provide a path within the bucket."),process.exit(1));let o=J(t),n=e.path.includes("*"),i=e.path.endsWith("/")||!e.path&&u;if(!n&&!i&&(i=await S(e.bucket,e.path,a)),i&&!n&&!p&&(console.error("Source is a remote folder (not copied). Use -r to copy recursively."),process.exit(1)),n||i){let l=n?C(e.path):e.path?e.path.endsWith("/")?e.path:`${e.path}/`:"",c=!n&&e.path&&!e.path.endsWith("/")?e.path.split("/").filter(Boolean).pop()??"":"",{items:s,error:h}=await T(e.bucket,l||void 0,a);h&&(console.error(h.message),process.exit(1));let m=s.filter(d=>!d.name.endsWith("/"));if(n){let d=e.path.split("/").pop(),g=R(d);m=m.filter(w=>{let f=l?w.name.slice(l.length):w.name;return!p&&f.includes("/")?!1:g.test(f.split("/").pop())})}if(m.length===0){console.log("No objects to download");return}let b=0;for(let d of m){let g=l?d.name.slice(l.length):d.name,w=c?x(o,c,g):x(o,g),f=await K(e.bucket,d.name,w,a);f.error?console.error(`Failed to download ${d.name}: ${f.error}`):(console.log(`Downloaded t3://${e.bucket}/${d.name} -> ${w}`),b++)}console.log(`Downloaded ${b} file(s)`)}else{let l=e.path.split("/").pop(),c,s=!1;try{s=z(o).isDirectory()}catch{}s||t.endsWith("/")?c=x(o,l):c=o;let h=await K(e.bucket,e.path,c,a,!0);h.error&&(console.error(h.error),process.exit(1)),console.log(`Downloaded t3://${e.bucket}/${e.path} -> ${c}`)}}async function ie(r,e,t,a,p){let u=r.endsWith("/");!e.path&&!u&&(console.error("Cannot copy a bucket. Provide a path within the bucket."),process.exit(1));let o=r.includes("*"),n=e.path.endsWith("/")||!e.path&&u;if(!o&&!n&&e.path&&(n=await S(e.bucket,e.path,a)),n&&!o&&!p&&(console.error("Source is a remote folder (not copied). Use -r to copy recursively."),process.exit(1)),o||n){let i=o?C(e.path):e.path?e.path.endsWith("/")?e.path:`${e.path}/`:"",l=!o&&e.path&&!e.path.endsWith("/")?e.path.split("/").filter(Boolean).pop()??"":"",s=[t.path?.replace(/\/$/,"")||"",l].filter(Boolean).join("/"),h=s?`${s}/`:"";e.bucket===t.bucket&&i===h&&(console.error("Source and destination are the same"),process.exit(1));let{items:m,error:b}=await T(e.bucket,i||void 0,a);b&&(console.error(b.message),process.exit(1));let d=m.filter(f=>f.name!==i);if(o){let f=e.path.split("/").pop(),y=R(f);d=d.filter(k=>{let F=i?k.name.slice(i.length):k.name;return!p&&F.includes("/")?!1:y.test(F.split("/").pop())})}let g=0;for(let f of d){let y=i?f.name.slice(i.length):f.name,k=s?`${s}/${y}`:y,F=await I(a,e.bucket,f.name,t.bucket,k);F.error?console.error(`Failed to copy ${f.name}: ${F.error}`):(console.log(`Copied t3://${e.bucket}/${f.name} -> t3://${t.bucket}/${k}`),g++)}let w=!1;if(s&&i){let{data:f}=await _({prefix:i,limit:1,config:{...a,bucket:e.bucket}});if(f?.items?.some(y=>y.name===i)){let y=`${s}/`,k=await I(a,e.bucket,i,t.bucket,y);k.error?console.error(`Failed to copy folder marker: ${k.error}`):w=!0}}if(g===0&&w&&(g=1),g===0){console.log("No objects to copy");return}console.log(`Copied ${g} object(s)`)}else{let i=e.path.split("/").pop(),l;t.path?t.path.endsWith("/")?l=`${t.path}${i}`:await S(t.bucket,t.path,a)?l=`${t.path}/${i}`:l=t.path:l=i,e.bucket===t.bucket&&e.path===l&&(console.error("Source and destination are the same"),process.exit(1));let c=await I(a,e.bucket,e.path,t.bucket,l,!0);c.error&&(console.error(c.error),process.exit(1)),console.log(`Copied t3://${e.bucket}/${e.path} -> t3://${t.bucket}/${l}`)}}async function ne(r){let e=v(r,["src"]),t=v(r,["dest"]);(!e||!t)&&(console.error("Both src and dest arguments are required"),process.exit(1));let a=!!v(r,["recursive","r"]),p=P(e,t),u=await M();switch(p){case"local-to-remote":{let o=W(t);o.bucket||(console.error("Invalid destination path"),process.exit(1)),await oe(e,o,u,a);break}case"remote-to-local":{let o=W(e);o.bucket||(console.error("Invalid source path"),process.exit(1)),await re(e,o,t,u,a);break}case"remote-to-remote":{let o=W(e),n=W(t);o.bucket||(console.error("Invalid source path"),process.exit(1)),n.bucket||(console.error("Invalid destination path"),process.exit(1)),await ie(e,o,n,u,a);break}}process.exit(0)}export{ne as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as f,b as g,c as n,g as u}from"../../chunk-SYGTCM6P.js";import{a as d}from"../../chunk-JRALYIRA.js";import"../../chunk-
|
|
1
|
+
import{a as f,b as g,c as n,g as u}from"../../chunk-SYGTCM6P.js";import{a as d}from"../../chunk-JRALYIRA.js";import{b as l}from"../../chunk-USCKVLDO.js";import"../../chunk-BETAO4PB.js";import"../../chunk-E4MLGABW.js";import{g as a}from"../../chunk-DOUR5YEY.js";import"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import{listBuckets as m,getBucketInfo as p}from"@tigrisdata/storage";var e=u("credentials","test");async function b(k){f(e);let t=d(k,["bucket","b"]),o=await l();!o.accessKeyId&&!o.sessionToken&&(n(e,'No credentials found. Run "tigris configure" or "tigris login" first.'),process.exit(1));let c=a(),r={...o,...c&&!o.organizationId?{organizationId:c}:{}};if(t){let{data:i,error:s}=await p(t,{config:r});s&&(n(e,`Current credentials don't have access to bucket "${t}"`),process.exit(1)),console.log(` Bucket: ${t}`),console.log(" Access verified."),i.sourceBucketName&&console.log(` Fork of: ${i.sourceBucketName}`)}else{let{data:i,error:s}=await m({config:r});s&&(n(e,"Current credentials don't have sufficient access"),process.exit(1)),console.log(` Access verified. Found ${i.buckets.length} bucket(s).`)}g(e)}export{b as default};
|
package/dist/lib/forks/create.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as c,b as a,c as r,g as m}from"../../chunk-SYGTCM6P.js";import{a as t}from"../../chunk-JRALYIRA.js";import"../../chunk-
|
|
1
|
+
import{a as c,b as a,c as r,g as m}from"../../chunk-SYGTCM6P.js";import{a as t}from"../../chunk-JRALYIRA.js";import{b as f}from"../../chunk-USCKVLDO.js";import"../../chunk-BETAO4PB.js";import"../../chunk-E4MLGABW.js";import"../../chunk-DOUR5YEY.js";import"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import{createBucket as p}from"@tigrisdata/storage";var e=m("forks","create");async function g(o){c(e);let s=t(o,["name"]),n=t(o,["fork-name","forkName"]),u=t(o,["snapshot","s","S"]);s||(r(e,"Source bucket name is required"),process.exit(1)),n||(r(e,"Fork name is required"),process.exit(1));let{error:i}=await p(n,{sourceBucketName:s,sourceBucketSnapshot:u,config:await f()});i&&(r(e,i.message),process.exit(1)),a(e,{name:s,forkName:n})}export{g as default};
|
package/dist/lib/forks/list.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as u,b as p,c as n,d as s,g}from"../../chunk-SYGTCM6P.js";import{f as d}from"../../chunk-CQCBYE3X.js";import{a as i}from"../../chunk-JRALYIRA.js";import"../../chunk-
|
|
1
|
+
import{a as u,b as p,c as n,d as s,g}from"../../chunk-SYGTCM6P.js";import{f as d}from"../../chunk-CQCBYE3X.js";import{a as i}from"../../chunk-JRALYIRA.js";import{b as k}from"../../chunk-USCKVLDO.js";import"../../chunk-BETAO4PB.js";import"../../chunk-E4MLGABW.js";import"../../chunk-DOUR5YEY.js";import"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import{listBuckets as S,getBucketInfo as l}from"@tigrisdata/storage";var t=g("forks","list");async function B(c){u(t);let e=i(c,["name"]),h=i(c,["format","f","F"],"table");e||(n(t,"Source bucket name is required"),process.exit(1));let a=await k(),{data:b,error:f}=await l(e,{config:a});if(f&&(n(t,f.message),process.exit(1)),!b.hasForks){s(t);return}let{data:w,error:m}=await S({config:a});m&&(n(t,m.message),process.exit(1));let r=[];for(let o of w.buckets){if(o.name===e)continue;let{data:y}=await l(o.name,{config:a});y?.sourceBucketName===e&&r.push({name:o.name,created:o.creationDate})}if(r.length===0){s(t);return}let x=d(r,h,"forks","fork",[{key:"name",header:"Name"},{key:"created",header:"Created"}]);console.log(x),p(t,{count:r.length})}export{B as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as x,b as P}from"../../../chunk-Y7MJZRR4.js";import{a as p,b as f,c as e,g as h}from"../../../chunk-SYGTCM6P.js";import{a as n}from"../../../chunk-JRALYIRA.js";import"../../../chunk-
|
|
1
|
+
import{a as x,b as P}from"../../../chunk-Y7MJZRR4.js";import{a as p,b as f,c as e,g as h}from"../../../chunk-SYGTCM6P.js";import{a as n}from"../../../chunk-JRALYIRA.js";import{a as y}from"../../../chunk-USCKVLDO.js";import"../../../chunk-BETAO4PB.js";import{b as g}from"../../../chunk-E4MLGABW.js";import{g as u}from"../../../chunk-DOUR5YEY.js";import{c as l}from"../../../chunk-KH63ANUX.js";import"../../../chunk-2XAO2OYD.js";import{existsSync as T,readFileSync as C}from"fs";import{addPolicy as k}from"@tigrisdata/iam";var t=h("iam policies","create");async function N(s){p(t);let r=n(s,["name"]),i=n(s,["document","d"]),w=n(s,["description"])??"";r||(e(t,"Policy name is required"),process.exit(1)),/^[a-zA-Z0-9=,.@_-]+$/.test(r)||(e(t,"Invalid policy name. Only alphanumeric characters and =,.@_- are allowed."),process.exit(1)),await y()!=="oauth"&&(e(t,`Policies can only be created when logged in via OAuth.
|
|
2
2
|
Run "tigris login oauth" first.`),process.exit(1));let c=g();await c.isAuthenticated()||(e(t,'Not authenticated. Run "tigris login oauth" first.'),process.exit(1));let A=await c.getAccessToken(),v=u(),S=l(),O={sessionToken:A,organizationId:v??void 0,iamEndpoint:S.iamEndpoint},o;i?T(i)?o=C(i,"utf-8"):o=i:process.stdin.isTTY?(e(t,"Policy document is required. Provide via --document or pipe to stdin."),process.exit(1)):o=await x();let a;try{a=P(o)}catch{e(t,"Invalid JSON in policy document"),process.exit(1)}let{data:d,error:m}=await k(r,{document:a,description:w,config:O});m&&(e(t,m.message),process.exit(1)),f(t,{name:d.name}),console.log(`Resource: ${d.resource}`)}export{N as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as p,b as d,c as t,d as f,g as u}from"../../../chunk-SYGTCM6P.js";import{a as w}from"../../../chunk-JRALYIRA.js";import"../../../chunk-
|
|
1
|
+
import{a as p,b as d,c as t,d as f,g as u}from"../../../chunk-SYGTCM6P.js";import{a as w}from"../../../chunk-JRALYIRA.js";import{a as h}from"../../../chunk-USCKVLDO.js";import"../../../chunk-BETAO4PB.js";import{b as m}from"../../../chunk-E4MLGABW.js";import{g}from"../../../chunk-DOUR5YEY.js";import{c as l}from"../../../chunk-KH63ANUX.js";import"../../../chunk-2XAO2OYD.js";import E from"enquirer";import{deletePolicy as S,listPolicies as T}from"@tigrisdata/iam";var{prompt:O}=E,e=u("iam policies","delete");async function M(x){p(e);let i=w(x,["resource"]);await h()!=="oauth"&&(t(e,`Policies can only be deleted when logged in via OAuth.
|
|
2
2
|
Run "tigris login oauth" first.`),process.exit(1));let s=m();await s.isAuthenticated()||(t(e,'Not authenticated. Run "tigris login oauth" first.'),process.exit(1));let y=await s.getAccessToken(),A=g(),C=l(),r={sessionToken:y,organizationId:A??void 0,iamEndpoint:C.iamEndpoint};if(!i){let{data:o,error:a}=await T({config:r});if(a&&(t(e,a.message),process.exit(1)),!o.policies||o.policies.length===0){f(e);return}let{selected:k}=await O({type:"select",name:"selected",message:"Select a policy to delete:",choices:o.policies.map(n=>({name:n.resource,message:`${n.name} (${n.resource})`}))});i=k}let{error:c}=await S(i,{config:r});c&&(t(e,c.message),process.exit(1)),d(e,{resource:i})}export{M as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as O,b as p}from"../../../chunk-Y7MJZRR4.js";import{a as S,b as A,c as t,d as P,g as T}from"../../../chunk-SYGTCM6P.js";import{a as r}from"../../../chunk-JRALYIRA.js";import"../../../chunk-
|
|
1
|
+
import{a as O,b as p}from"../../../chunk-Y7MJZRR4.js";import{a as S,b as A,c as t,d as P,g as T}from"../../../chunk-SYGTCM6P.js";import{a as r}from"../../../chunk-JRALYIRA.js";import{a as E}from"../../../chunk-USCKVLDO.js";import"../../../chunk-BETAO4PB.js";import{b as w}from"../../../chunk-E4MLGABW.js";import{g as x}from"../../../chunk-DOUR5YEY.js";import{c as y}from"../../../chunk-KH63ANUX.js";import"../../../chunk-2XAO2OYD.js";import{existsSync as N,readFileSync as R}from"fs";import q from"enquirer";import{editPolicy as M,getPolicy as z,listPolicies as F}from"@tigrisdata/iam";var{prompt:I}=q,e=T("iam policies","edit");async function Y(c){S(e);let o=r(c,["resource"]),n=r(c,["document","d"]),a=r(c,["description"]);await E()!=="oauth"&&(t(e,`Policies can only be edited when logged in via OAuth.
|
|
2
2
|
Run "tigris login oauth" first.`),process.exit(1));let g=w();await g.isAuthenticated()||(t(e,'Not authenticated. Run "tigris login oauth" first.'),process.exit(1));let C=await g.getAccessToken(),D=x(),k=y(),d={sessionToken:C,organizationId:D??void 0,iamEndpoint:k.iamEndpoint};if(!o){process.stdin.isTTY||(t(e,"Policy ARN is required when piping document via stdin."),process.exit(1));let{data:i,error:h}=await F({config:d});if(h&&(t(e,h.message),process.exit(1)),!i.policies||i.policies.length===0){P(e);return}let{selected:J}=await I({type:"select",name:"selected",message:"Select a policy to edit:",choices:i.policies.map(m=>({name:m.resource,message:`${m.name} (${m.resource})`}))});o=J}let s;if(n){let i;N(n)?i=R(n,"utf-8"):i=n;try{s=p(i)}catch{t(e,"Invalid JSON in policy document"),process.exit(1)}}else if(!process.stdin.isTTY&&!a){let i=await O();try{s=p(i)}catch{t(e,"Invalid JSON in policy document"),process.exit(1)}}!s&&!a&&(t(e,"Either --document or --description is required."),process.exit(1));let{data:l,error:u}=await z(o,{config:d});u&&(t(e,u.message),process.exit(1));let{data:v,error:f}=await M(o,{document:s??l.document,description:a??l.description,config:d});f&&(t(e,f.message),process.exit(1)),A(e,{resource:v.resource})}export{Y as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as y,b as r,c as i,d as v,g as A}from"../../../chunk-SYGTCM6P.js";import{f as O}from"../../../chunk-CQCBYE3X.js";import{a as c}from"../../../chunk-JRALYIRA.js";import"../../../chunk-
|
|
1
|
+
import{a as y,b as r,c as i,d as v,g as A}from"../../../chunk-SYGTCM6P.js";import{f as O}from"../../../chunk-CQCBYE3X.js";import{a as c}from"../../../chunk-JRALYIRA.js";import{a as S}from"../../../chunk-USCKVLDO.js";import"../../../chunk-BETAO4PB.js";import{b as h}from"../../../chunk-E4MLGABW.js";import{g as p}from"../../../chunk-DOUR5YEY.js";import{c as m}from"../../../chunk-KH63ANUX.js";import"../../../chunk-2XAO2OYD.js";import E from"enquirer";import{getPolicy as P,listPolicies as R}from"@tigrisdata/iam";var{prompt:I}=E,o=A("iam policies","get");async function T(a){y(o);let n=c(a,["resource"]),l=c(a,["format","f","F"],"table");await S()!=="oauth"&&(i(o,`Policies can only be retrieved when logged in via OAuth.
|
|
2
2
|
Run "tigris login oauth" first.`),process.exit(1));let u=h();await u.isAuthenticated()||(i(o,'Not authenticated. Run "tigris login oauth" first.'),process.exit(1));let w=await u.getAccessToken(),C=p(),$=m(),f={sessionToken:w,organizationId:C??void 0,iamEndpoint:$.iamEndpoint};if(!n){let{data:t,error:d}=await R({config:f});if(d&&(i(o,d.message),process.exit(1)),!t.policies||t.policies.length===0){v(o);return}let{selected:D}=await I({type:"select",name:"selected",message:"Select a policy:",choices:t.policies.map(s=>({name:s.resource,message:`${s.name} (${s.resource})`}))});n=D}let{data:e,error:g}=await P(n,{config:f});if(g&&(i(o,g.message),process.exit(1)),l==="json"){console.log(JSON.stringify(e,null,2)),r(o);return}let k=[{field:"Name",value:e.name},{field:"ID",value:e.id},{field:"Resource",value:e.resource},{field:"Description",value:e.description||"-"},{field:"Path",value:e.path},{field:"Version",value:e.defaultVersionId},{field:"Attachments",value:String(e.attachmentCount)},{field:"Created",value:e.createDate.toISOString()},{field:"Updated",value:e.updateDate.toISOString()}],x=O(k,l,"policy","field",[{key:"field",header:"Field"},{key:"value",header:"Value"}]);if(console.log(x),e.users&&e.users.length>0){console.log("Attached Users:");for(let t of e.users)console.log(` - ${t}`);console.log()}console.log("Policy Document:"),console.log(` Version: ${e.document.version}`),console.log(" Statements:");for(let t of e.document.statements)console.log(` - Effect: ${t.effect}`),console.log(` Action: ${Array.isArray(t.action)?t.action.join(", "):t.action}`),console.log(` Resource: ${Array.isArray(t.resource)?t.resource.join(", "):t.resource}`);r(o)}export{T as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as m,b as p,c as i,d as u,g}from"../../../chunk-SYGTCM6P.js";import{f as l}from"../../../chunk-CQCBYE3X.js";import{a as f}from"../../../chunk-JRALYIRA.js";import"../../../chunk-
|
|
1
|
+
import{a as m,b as p,c as i,d as u,g}from"../../../chunk-SYGTCM6P.js";import{f as l}from"../../../chunk-CQCBYE3X.js";import{a as f}from"../../../chunk-JRALYIRA.js";import{a as h}from"../../../chunk-USCKVLDO.js";import"../../../chunk-BETAO4PB.js";import{b as d}from"../../../chunk-E4MLGABW.js";import{g as c}from"../../../chunk-DOUR5YEY.js";import{c as s}from"../../../chunk-KH63ANUX.js";import"../../../chunk-2XAO2OYD.js";import{listPolicies as O}from"@tigrisdata/iam";var e=g("iam policies","list");async function D(k){m(e);let A=f(k,["format","f","F"],"table");await h()!=="oauth"&&(i(e,`Policies can only be listed when logged in via OAuth.
|
|
2
2
|
Run "tigris login oauth" first.`),process.exit(1));let n=d();await n.isAuthenticated()||(i(e,'Not authenticated. Run "tigris login oauth" first.'),process.exit(1));let w=await n.getAccessToken(),C=c(),x=s(),{data:o,error:r}=await O({config:{sessionToken:w,organizationId:C??void 0,iamEndpoint:x.iamEndpoint}});if(r&&(i(e,r.message),process.exit(1)),!o.policies||o.policies.length===0){u(e);return}let a=o.policies.map(t=>({name:t.name,id:t.id,resource:t.resource,description:t.description||"-",attachments:t.attachmentCount,created:t.createDate,updated:t.updateDate})),y=l(a,A,"policies","policy",[{key:"id",header:"ID"},{key:"resource",header:"Resource"},{key:"name",header:"Name"},{key:"description",header:"Description"},{key:"attachments",header:"Attachments"},{key:"created",header:"Created"},{key:"updated",header:"Updated"}]);console.log(y),p(e,{count:a.length})}export{D as default};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{a as h,b as y,c as t,g as v}from"../../../chunk-SYGTCM6P.js";import{a as s}from"../../../chunk-JRALYIRA.js";import{a as R}from"../../../chunk-USCKVLDO.js";import"../../../chunk-BETAO4PB.js";import{b as f}from"../../../chunk-E4MLGABW.js";import{g as u}from"../../../chunk-DOUR5YEY.js";import{a as p}from"../../../chunk-GZ7JBHFT.js";import{c as d}from"../../../chunk-KH63ANUX.js";import"../../../chunk-2XAO2OYD.js";import{inviteUser as E}from"@tigrisdata/iam";var i=v("iam users","invite");async function O(r){h(i),await R()!=="oauth"&&(t(i,`Users can only be invited when logged in via OAuth.
|
|
2
|
+
Run "tigris login oauth" first.`),process.exit(1));let a=u();if(p(a??void 0)){console.log(`User management is not available for Fly.io organizations.
|
|
3
|
+
Your users are managed through Fly.io.
|
|
4
|
+
|
|
5
|
+
Visit https://fly.io to manage your organization members.`);return}let e=s(r,["email"]),o=s(r,["role","r"])??"member",n=Array.isArray(e)?e:e?[e]:[];n.length===0&&(t(i,"Email address is required"),process.exit(1));let m=["admin","member"];m.includes(o)||(t(i,`Invalid role "${o}". Must be one of: ${m.join(", ")}`),process.exit(1));let A=o,c=f();await c.isAuthenticated()||(t(i,'Not authenticated. Run "tigris login oauth" first.'),process.exit(1));let b=await c.getAccessToken(),l=d(),x=n.map(w=>({email:w,role:A})),{error:g}=await E(x,{config:{sessionToken:b,organizationId:a??void 0,iamEndpoint:l.iamEndpoint,mgmtEndpoint:l.mgmtEndpoint}});g&&(t(i,g.message),process.exit(1)),y(i,{email:n.join(", ")})}export{O as default};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import{a as y,b as k,c as i,d as b,g as C}from"../../../chunk-SYGTCM6P.js";import{b as T,d as s,e as a}from"../../../chunk-CQCBYE3X.js";import{a as w}from"../../../chunk-JRALYIRA.js";import{a as U}from"../../../chunk-USCKVLDO.js";import"../../../chunk-BETAO4PB.js";import{b as h}from"../../../chunk-E4MLGABW.js";import{g as f}from"../../../chunk-DOUR5YEY.js";import{a as p}from"../../../chunk-GZ7JBHFT.js";import{c as u}from"../../../chunk-KH63ANUX.js";import"../../../chunk-2XAO2OYD.js";import{listUsers as A}from"@tigrisdata/iam";var n=C("iam users","list");async function O(v){y(n);let r=w(v,["format","f","F"],"table");await U()!=="oauth"&&(i(n,`Users can only be listed when logged in via OAuth.
|
|
2
|
+
Run "tigris login oauth" first.`),process.exit(1));let l=f();if(p(l??void 0)){console.log(`User management is not available for Fly.io organizations.
|
|
3
|
+
Your users are managed through Fly.io.
|
|
4
|
+
|
|
5
|
+
Visit https://fly.io to manage your organization members.`);return}let m=h();await m.isAuthenticated()||(i(n,'Not authenticated. Run "tigris login oauth" first.'),process.exit(1));let E=await m.getAccessToken(),g=u(),{data:c,error:d}=await A({config:{sessionToken:E,organizationId:l??void 0,iamEndpoint:g.iamEndpoint,mgmtEndpoint:g.mgmtEndpoint}});d&&(i(n,d.message),process.exit(1));let t=c.users.map(e=>({email:e.email,name:e.userName||"-",role:e.isOrgOwner?"owner":e.role,userId:e.userId})),o=c.invitations.map(e=>({id:e.id,email:e.email,role:e.role,status:e.status,validUntil:e.validUntil.toLocaleDateString()}));if(t.length===0&&o.length===0){b(n);return}let I=[{key:"email",header:"Email"},{key:"name",header:"Name"},{key:"role",header:"Role"},{key:"userId",header:"User ID"}],x=[{key:"id",header:"ID"},{key:"email",header:"Email"},{key:"role",header:"Role"},{key:"status",header:"Status"},{key:"validUntil",header:"Valid Until"}];if(r==="json")console.log(T({users:t,invitations:o}));else if(r==="xml"){let e=["<organization>"];e.push(" "+s(t,"users","user").replace(/\n/g,`
|
|
6
|
+
`)),e.push(" "+s(o,"invitations","invitation").replace(/\n/g,`
|
|
7
|
+
`)),e.push("</organization>"),console.log(e.join(`
|
|
8
|
+
`))}else t.length>0&&(console.log(`
|
|
9
|
+
Members`),console.log(a(t,I))),o.length>0&&(console.log("Pending Invitations"),console.log(a(o,x)));let z=t.length+o.length;k(n,{count:z})}export{O as default};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{a as h,b as y,c as t,d as w,g as v}from"../../../chunk-SYGTCM6P.js";import{a as O}from"../../../chunk-JRALYIRA.js";import{a as A}from"../../../chunk-USCKVLDO.js";import"../../../chunk-BETAO4PB.js";import{b as f}from"../../../chunk-E4MLGABW.js";import{g as p}from"../../../chunk-DOUR5YEY.js";import{a as d}from"../../../chunk-GZ7JBHFT.js";import{c as u}from"../../../chunk-KH63ANUX.js";import"../../../chunk-2XAO2OYD.js";import C from"enquirer";import{removeUser as k,listUsers as z}from"@tigrisdata/iam";var{prompt:F}=C,e=v("iam users","remove");async function S(U){h(e);let o=O(U,["resource"]);await A()!=="oauth"&&(t(e,`Users can only be removed when logged in via OAuth.
|
|
2
|
+
Run "tigris login oauth" first.`),process.exit(1));let n=p();if(d(n??void 0)){console.log(`User management is not available for Fly.io organizations.
|
|
3
|
+
Your users are managed through Fly.io.
|
|
4
|
+
|
|
5
|
+
Visit https://fly.io to manage your organization members.`);return}let s=f();await s.isAuthenticated()||(t(e,'Not authenticated. Run "tigris login oauth" first.'),process.exit(1));let x=await s.getAccessToken(),a=u(),m={sessionToken:x,organizationId:n??void 0,iamEndpoint:a.iamEndpoint,mgmtEndpoint:a.mgmtEndpoint},r=Array.isArray(o)?o:o?[o]:[];if(r.length===0){let{data:g,error:l}=await z({config:m});if(l&&(t(e,l.message),process.exit(1)),g.users.length===0){w(e);return}let{selected:E}=await F({type:"multiselect",name:"selected",message:"Select user(s) to remove (space to select, enter to confirm):",choices:g.users.map(i=>({name:i.userId,message:`${i.email} (${i.isOrgOwner?"owner":i.role})`}))});r=E}let{error:c}=await k(r,{config:m});c&&(t(e,c.message),process.exit(1)),y(e)}export{S as default};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{a as h,b as v,c as e,d as y,g as k}from"../../../chunk-SYGTCM6P.js";import{a as A}from"../../../chunk-JRALYIRA.js";import{a as w}from"../../../chunk-USCKVLDO.js";import"../../../chunk-BETAO4PB.js";import{b as f}from"../../../chunk-E4MLGABW.js";import{g as p}from"../../../chunk-DOUR5YEY.js";import{a as d}from"../../../chunk-GZ7JBHFT.js";import{c as u}from"../../../chunk-KH63ANUX.js";import"../../../chunk-2XAO2OYD.js";import I from"enquirer";import{revokeInvitation as z,listUsers as F}from"@tigrisdata/iam";var{prompt:O}=I,t=k("iam users","revoke-invitation");async function S(x){h(t);let i=A(x,["resource"]);await w()!=="oauth"&&(e(t,`Invitations can only be revoked when logged in via OAuth.
|
|
2
|
+
Run "tigris login oauth" first.`),process.exit(1));let r=p();if(d(r??void 0)){console.log(`User management is not available for Fly.io organizations.
|
|
3
|
+
Your users are managed through Fly.io.
|
|
4
|
+
|
|
5
|
+
Visit https://fly.io to manage your organization members.`);return}let s=f();await s.isAuthenticated()||(e(t,'Not authenticated. Run "tigris login oauth" first.'),process.exit(1));let E=await s.getAccessToken(),a=u(),c={sessionToken:E,organizationId:r??void 0,iamEndpoint:a.iamEndpoint,mgmtEndpoint:a.mgmtEndpoint},n=Array.isArray(i)?i:i?[i]:[];if(n.length===0){let{data:m,error:l}=await F({config:c});if(l&&(e(t,l.message),process.exit(1)),m.invitations.length===0){y(t);return}let{selected:C}=await O({type:"multiselect",name:"selected",message:"Select invitation(s) to revoke (space to select, enter to confirm):",choices:m.invitations.map(o=>({name:o.id,message:`${o.email} (${o.role} - ${o.status})`}))});n=C}let{error:g}=await z(n,{config:c});g&&(e(t,g.message),process.exit(1)),v(t)}export{S as default};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{a as b,b as x,c as t,d as O,g as U}from"../../../chunk-SYGTCM6P.js";import{a as c}from"../../../chunk-JRALYIRA.js";import{a as v}from"../../../chunk-USCKVLDO.js";import"../../../chunk-BETAO4PB.js";import{b as w}from"../../../chunk-E4MLGABW.js";import{g as R}from"../../../chunk-DOUR5YEY.js";import{a as A}from"../../../chunk-GZ7JBHFT.js";import{c as y}from"../../../chunk-KH63ANUX.js";import"../../../chunk-2XAO2OYD.js";import k from"enquirer";import{updateUserRole as F,listUsers as M}from"@tigrisdata/iam";var{prompt:z}=k,e=U("iam users","update-role");async function S(m){b(e),await v()!=="oauth"&&(t(e,`User roles can only be updated when logged in via OAuth.
|
|
2
|
+
Run "tigris login oauth" first.`),process.exit(1));let g=R();if(A(g??void 0)){console.log(`User management is not available for Fly.io organizations.
|
|
3
|
+
Your users are managed through Fly.io.
|
|
4
|
+
|
|
5
|
+
Visit https://fly.io to manage your organization members.`);return}let u=["admin","member"],s=c(m,["role","r"]);s||(t(e,"Role is required. Use --role admin or --role member"),process.exit(1));let o=Array.isArray(s)?s:[s];for(let r of o)u.includes(r)||(t(e,`Invalid role "${r}". Must be one of: ${u.join(", ")}`),process.exit(1));let n=c(m,["resource"]),i=Array.isArray(n)?n:n?[n]:[],p=w();await p.isAuthenticated()||(t(e,'Not authenticated. Run "tigris login oauth" first.'),process.exit(1));let E=await p.getAccessToken(),d=y(),f={sessionToken:E,organizationId:g??void 0,iamEndpoint:d.iamEndpoint,mgmtEndpoint:d.mgmtEndpoint};if(i.length===0){let{data:r,error:a}=await M({config:f});if(a&&(t(e,a.message),process.exit(1)),r.users.length===0){O(e);return}let{selected:C}=await z({type:"multiselect",name:"selected",message:"Select user(s) to update (space to select, enter to confirm):",choices:r.users.map(l=>({name:l.userId,message:`${l.email} (${l.isOrgOwner?"owner":l.role})`}))});i=C}o.length>1&&o.length!==i.length&&(t(e,`Number of roles (${o.length}) must match number of users (${i.length}), or provide a single role for all users`),process.exit(1));let $=i.map((r,a)=>({userId:r,role:o.length===1?o[0]:o[a]})),{error:h}=await F($,{config:f});h&&(t(e,h.message),process.exit(1)),x(e)}export{S as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../chunk-
|
|
1
|
+
import{a}from"../../chunk-F2VBJEK7.js";import"../../chunk-SYGTCM6P.js";import"../../chunk-BETAO4PB.js";import"../../chunk-DOUR5YEY.js";import"../../chunk-2XAO2OYD.js";export{a as default};
|
package/dist/lib/login/oauth.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"../../chunk-
|
|
1
|
+
import{a,b}from"../../chunk-TNOMT3EP.js";import"../../chunk-SYGTCM6P.js";import"../../chunk-BETAO4PB.js";import"../../chunk-E4MLGABW.js";import"../../chunk-DOUR5YEY.js";import"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";export{b as default,a as oauth};
|
package/dist/lib/login/select.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as c}from"../../chunk-F2VBJEK7.js";import{a as s}from"../../chunk-TNOMT3EP.js";import"../../chunk-SYGTCM6P.js";import"../../chunk-BETAO4PB.js";import"../../chunk-E4MLGABW.js";import"../../chunk-DOUR5YEY.js";import"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import m from"enquirer";var{prompt:h}=m;async function n(e){let a=e["access-key"]||e.accessKey||e.key||e.Key||e.accesskey,r=e["access-secret"]||e.accessSecret||e.secret||e.Secret||e.accesssecret;if(a||r){await c(e);return}let{method:t}=await h({type:"select",name:"method",message:"Choose login method:",choices:[{name:"user",message:"As a user (OAuth2 flow)"},{name:"machine",message:"As a machine (Access Key & Secret)"}]});t==="user"?await s():await c(e)}export{n as default};
|
package/dist/lib/logout.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as i,b as a,c as r,g as s}from"../chunk-SYGTCM6P.js";import"../chunk-BETAO4PB.js";import{t as e}from"../chunk-
|
|
1
|
+
import{a as i,b as a,c as r,g as s}from"../chunk-SYGTCM6P.js";import"../chunk-BETAO4PB.js";import{t as e}from"../chunk-DOUR5YEY.js";import"../chunk-2XAO2OYD.js";var t=s("logout");async function c(){i(t);try{await e(),a(t)}catch(o){o instanceof Error?r(t,o.message):r(t),process.exit(1)}}export{c as default};
|
package/dist/lib/ls.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as k,f as c}from"../chunk-CQCBYE3X.js";import{a as u}from"../chunk-JRALYIRA.js";import{f as p}from"../chunk-LCWHZUZZ.js";import{b as i}from"../chunk-
|
|
1
|
+
import{a as k,f as c}from"../chunk-CQCBYE3X.js";import{a as u}from"../chunk-JRALYIRA.js";import{f as p}from"../chunk-LCWHZUZZ.js";import{b as i}from"../chunk-USCKVLDO.js";import"../chunk-E4MLGABW.js";import"../chunk-DOUR5YEY.js";import"../chunk-KH63ANUX.js";import"../chunk-2XAO2OYD.js";import{list as w,listBuckets as z}from"@tigrisdata/storage";async function S(g){let d=u(g,["path"]);if(!d){let e=await i(),{data:t,error:o}=await z({config:e});o&&(console.error(o.message),process.exit(1));let s=(t.buckets||[]).map(l=>({name:l.name,created:l.creationDate})),a=c(s,"table","buckets","bucket",[{key:"name",header:"Name"},{key:"created",header:"Created"}]);console.log(a);return}let{bucket:f,path:r}=p(d);f||(console.error("Invalid path"),process.exit(1));let h=await i(),n=r?r.endsWith("/")?r:`${r}/`:void 0,{data:y,error:m}=await w({prefix:n,config:{...h,bucket:f}});m&&(console.error(m.message),process.exit(1));let b=(y.items||[]).map(e=>{let t=n?e.name.slice(n.length):e.name,o=t.indexOf("/"),s=o===-1?t:t.slice(0,o+1),a=s.endsWith("/");return{key:s,size:a?"-":k(e.size),modified:e.lastModified}}).filter((e,t,o)=>e.key!==""&&o.findIndex(s=>s.key===e.key)===t),x=c(b,"table","objects","object",[{key:"key",header:"Key"},{key:"size",header:"Size"},{key:"modified",header:"Modified"}]);console.log(x)}export{S as default};
|
package/dist/lib/mk.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../chunk-JRALYIRA.js";import{f as n}from"../chunk-LCWHZUZZ.js";import{b as c}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-JRALYIRA.js";import{f as n}from"../chunk-LCWHZUZZ.js";import{b as c}from"../chunk-USCKVLDO.js";import"../chunk-E4MLGABW.js";import"../chunk-DOUR5YEY.js";import"../chunk-KH63ANUX.js";import"../chunk-2XAO2OYD.js";import{createBucket as f,put as g}from"@tigrisdata/storage";async function l(p){let t=a(p,["path"]);t||(console.error("path argument is required"),process.exit(1));let{bucket:e,path:r}=n(t);e||(console.error("Invalid path"),process.exit(1));let s=await c();if(r){let o=r.endsWith("/")?r:`${r}/`,{error:i}=await g(o,"",{config:{...s,bucket:e}});i&&(console.error(i.message),process.exit(1)),console.log(`Folder '${e}/${o}' created`),process.exit(0)}else{let{error:o}=await f(e,{config:s});o&&(console.error(o.message),process.exit(1)),console.log(`Bucket '${e}' created`),process.exit(0)}}export{l as default};
|
package/dist/lib/mv.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as x}from"../chunk-CQCBYE3X.js";import{a as v}from"../chunk-JRALYIRA.js";import{a as F,b as y,d as S,g as C,h as I,i as j}from"../chunk-LCWHZUZZ.js";import{b as A}from"../chunk-
|
|
1
|
+
import{a as x}from"../chunk-CQCBYE3X.js";import{a as v}from"../chunk-JRALYIRA.js";import{a as F,b as y,d as S,g as C,h as I,i as j}from"../chunk-LCWHZUZZ.js";import{b as A}from"../chunk-USCKVLDO.js";import"../chunk-E4MLGABW.js";import"../chunk-DOUR5YEY.js";import"../chunk-KH63ANUX.js";import"../chunk-2XAO2OYD.js";import*as N from"readline";import{get as B,put as T,remove as E,list as L,head as G}from"@tigrisdata/storage";async function D(i){let n=N.createInterface({input:process.stdin,output:process.stdout});return new Promise(a=>{n.question(`${i} (y/N): `,d=>{n.close(),a(d.toLowerCase()==="y")})})}async function H(i){let n=v(i,["src"]),a=v(i,["dest"]),d=v(i,["force","f","F"]),h=!!v(i,["recursive","r"]);(!n||!a)&&(console.error("both src and dest arguments are required"),process.exit(1)),(!F(n)||!F(a))&&(console.error("Both src and dest must be remote Tigris paths (t3:// or tigris://)"),process.exit(1));let e=y(n),t=y(a);e.bucket||(console.error("Invalid source path"),process.exit(1)),t.bucket||(console.error("Invalid destination path"),process.exit(1));let $=n.endsWith("/");!e.path&&!$&&(console.error("Cannot move a bucket. Provide a path within the bucket."),process.exit(1));let c=await A(),l=e.path.includes("*"),p=e.path.endsWith("/")||!e.path&&$;if(!l&&!p&&e.path&&(p=await S(e.bucket,e.path,c)),p&&!l&&!h&&(console.error("Source is a remote folder (not moved). Use -r to move recursively."),process.exit(1)),l||p){let r=l?I(e.path):e.path?e.path.endsWith("/")?e.path:`${e.path}/`:"",o=!l&&e.path&&!e.path.endsWith("/")?e.path.split("/").filter(Boolean).pop()??"":"",f=[t.path?.replace(/\/$/,"")||"",o].filter(Boolean).join("/"),z=f?`${f}/`:"";e.bucket===t.bucket&&r===z&&(console.error("Source and destination are the same"),process.exit(1));let{items:q,error:R}=await j(e.bucket,r||void 0,c);R&&(console.error(R.message),process.exit(1));let b=q.filter(s=>s.name!==r);if(l){let s=e.path.split("/").pop(),m=C(s);b=b.filter(g=>{let k=r?g.name.slice(r.length):g.name;return!h&&k.includes("/")?!1:m.test(k.split("/").pop())})}let{data:O}=await L({prefix:r,limit:1,config:{...c,bucket:e.bucket}}),P=r?O?.items?.some(s=>s.name===r):!1;if(b.length===0&&!P){console.log("No objects to move");return}let U=b.length+(P?1:0);if(!d&&!await D(`Are you sure you want to move ${U} object(s)?`)){console.log("Aborted");return}let w=0;for(let s of b){let m=r?s.name.slice(r.length):s.name,g=f?`${f}/${m}`:m,k=await W(c,e.bucket,s.name,t.bucket,g);k.error?console.error(`Failed to move ${s.name}: ${k.error}`):(console.log(`Moved t3://${e.bucket}/${s.name} -> t3://${t.bucket}/${g}`),w++)}let M=!1;if(P)if(f){let s=`${f}/`,m=await W(c,e.bucket,r,t.bucket,s);m.error?console.error(`Failed to move folder marker: ${m.error}`):M=!0}else{let{error:s}=await E(r,{config:{...c,bucket:e.bucket}});s?console.error(`Failed to remove source folder marker: ${s.message}`):M=!0}w===0&&M&&(w=1),console.log(`Moved ${w} object(s)`)}else{let r=e.path.split("/").pop(),o;if(t.path?t.path.endsWith("/")?o=`${t.path}${r}`:await S(t.bucket,t.path,c)?o=`${t.path}/${r}`:o=t.path:o=r,e.bucket===t.bucket&&e.path===o&&(console.error("Source and destination are the same"),process.exit(1)),!d&&!await D(`Are you sure you want to move 't3://${e.bucket}/${e.path}'?`)){console.log("Aborted");return}let u=await W(c,e.bucket,e.path,t.bucket,o,!0);u.error&&(console.error(u.error),process.exit(1)),console.log(`Moved t3://${e.bucket}/${e.path} -> t3://${t.bucket}/${o}`)}process.exit(0)}async function W(i,n,a,d,h,e=!1){if(a.endsWith("/")){let{error:o}=await T(h,"",{config:{...i,bucket:d}});if(o)return{error:o.message};let{error:u}=await E(a,{config:{...i,bucket:n}});return u?{error:`Copied but failed to delete source: ${u.message}`}:{}}let t;if(e){let{data:o}=await G(a,{config:{...i,bucket:n}});t=o?.size}let{data:$,error:c}=await B(a,"stream",{config:{...i,bucket:n}});if(c)return{error:c.message};let l=t!==void 0&&t>100*1024*1024,{error:p}=await T(h,$,{multipart:l,onUploadProgress:e?({loaded:o})=>{if(t!==void 0&&t>0){let u=Math.round(o/t*100);process.stdout.write(`\rMoving: ${x(o)} / ${x(t)} (${u}%)`)}else process.stdout.write(`\rMoving: ${x(o)}`)}:void 0,config:{...i,bucket:d}});if(e&&process.stdout.write("\r"+" ".repeat(60)+"\r"),p)return{error:p.message};let{error:r}=await E(a,{config:{...i,bucket:n}});return r?{error:`Copied but failed to delete source: ${r.message}`}:{}}export{H as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as f,b as a,c as r,g}from"../../chunk-SYGTCM6P.js";import{a as i}from"../../chunk-JRALYIRA.js";import"../../chunk-
|
|
1
|
+
import{a as f,b as a,c as r,g}from"../../chunk-SYGTCM6P.js";import{a as i}from"../../chunk-JRALYIRA.js";import{b as m}from"../../chunk-USCKVLDO.js";import"../../chunk-BETAO4PB.js";import"../../chunk-E4MLGABW.js";import"../../chunk-DOUR5YEY.js";import"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import{remove as k}from"@tigrisdata/storage";var e=g("objects","delete");async function y(s){f(e);let n=i(s,["bucket"]),t=i(s,["key"]);n||(r(e,"Bucket name is required"),process.exit(1)),t||(r(e,"Object key is required"),process.exit(1));let p=await m(),u=Array.isArray(t)?t:[t];for(let o of u){let{error:c}=await k(o,{config:{...p,bucket:n}});c&&(r(e,c.message,{key:o}),process.exit(1)),a(e,{key:o})}}export{y as default};
|
package/dist/lib/objects/get.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as p,b as n,c,g as f}from"../../chunk-SYGTCM6P.js";import{a as m}from"../../chunk-JRALYIRA.js";import"../../chunk-
|
|
1
|
+
import{a as p,b as n,c,g as f}from"../../chunk-SYGTCM6P.js";import{a as m}from"../../chunk-JRALYIRA.js";import{b as l}from"../../chunk-USCKVLDO.js";import"../../chunk-BETAO4PB.js";import"../../chunk-E4MLGABW.js";import"../../chunk-DOUR5YEY.js";import"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import{createWriteStream as j,writeFileSync as k}from"fs";import{Readable as d}from"stream";import{pipeline as u}from"stream/promises";import{extname as w}from"path";import{get as h}from"@tigrisdata/storage";var e=f("objects","get"),S=new Set([".js",".ts",".jsx",".tsx",".mjs",".cjs",".py",".rb",".php",".java",".go",".rs",".c",".cpp",".h",".hpp",".cs",".swift",".kt",".scala",".clj",".ex",".exs",".erl",".sh",".bash",".zsh",".fish",".ps1",".bat",".cmd",".sql",".graphql",".gql",".json",".yaml",".yml",".toml",".ini",".cfg",".conf",".xml",".plist",".env",".properties",".html",".htm",".css",".scss",".sass",".less",".styl",".md",".markdown",".mdx",".rst",".txt",".text",".csv",".tsv",".log",".ejs",".hbs",".pug",".jade",".njk",".twig",".liquid",".svg",".gitignore",".dockerignore",".editorconfig"]);function y(r,o){let t=w(o||r).toLowerCase();return S.has(t)?"string":"stream"}async function q(r){p(e);let o=m(r,["bucket"]),s=m(r,["key"]),t=m(r,["output","o","O"]),x=m(r,["mode","m","M"]);o||(c(e,"Bucket name is required"),process.exit(1)),s||(c(e,"Object key is required"),process.exit(1));let g=await l();if((x||y(s,t))==="stream"){let{data:i,error:a}=await h(s,"stream",{config:{...g,bucket:o}});if(a&&(c(e,a.message),process.exit(1)),t){let b=j(t);await u(d.fromWeb(i),b),n(e,{key:s,output:t})}else await u(d.fromWeb(i),process.stdout),n(e)}else{let{data:i,error:a}=await h(s,"string",{config:{...g,bucket:o}});a&&(c(e,a.message),process.exit(1)),t?(k(t,i),n(e,{key:s,output:t})):(console.log(i),n(e))}}export{q as default};
|
package/dist/lib/objects/list.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b as m,c as s,d as p,g as d}from"../../chunk-SYGTCM6P.js";import{a as g,f as l}from"../../chunk-CQCBYE3X.js";import{a as e}from"../../chunk-JRALYIRA.js";import"../../chunk-
|
|
1
|
+
import{a,b as m,c as s,d as p,g as d}from"../../chunk-SYGTCM6P.js";import{a as g,f as l}from"../../chunk-CQCBYE3X.js";import{a as e}from"../../chunk-JRALYIRA.js";import{b as u}from"../../chunk-USCKVLDO.js";import"../../chunk-BETAO4PB.js";import"../../chunk-E4MLGABW.js";import"../../chunk-DOUR5YEY.js";import"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import{list as h}from"@tigrisdata/storage";var t=d("objects","list");async function j(i){a(t);let n=e(i,["bucket"]),k=e(i,["prefix","p","P"]),b=e(i,["format","f","F"],"table");n||(s(t,"Bucket name is required"),process.exit(1));let y=await u(),{data:o,error:c}=await h({prefix:k||void 0,config:{...y,bucket:n}});if(c&&(s(t,c.message),process.exit(1)),!o.items||o.items.length===0){p(t);return}let f=o.items.map(r=>({key:r.name,size:g(r.size),modified:r.lastModified})),x=l(f,b,"objects","object",[{key:"key",header:"Key"},{key:"size",header:"Size"},{key:"modified",header:"Modified"}]);console.log(x),m(t,{count:f.length})}export{j as default};
|
package/dist/lib/objects/put.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as l,b as g,c as o,g as b}from"../../chunk-SYGTCM6P.js";import{a as n,f as S}from"../../chunk-CQCBYE3X.js";import{a as t}from"../../chunk-JRALYIRA.js";import"../../chunk-
|
|
1
|
+
import{a as l,b as g,c as o,g as b}from"../../chunk-SYGTCM6P.js";import{a as n,f as S}from"../../chunk-CQCBYE3X.js";import{a as t}from"../../chunk-JRALYIRA.js";import{b as y}from"../../chunk-USCKVLDO.js";import"../../chunk-BETAO4PB.js";import"../../chunk-E4MLGABW.js";import"../../chunk-DOUR5YEY.js";import"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import{createReadStream as F,statSync as O}from"fs";import{Readable as h}from"stream";import{put as q}from"@tigrisdata/storage";var r=b("objects","put");async function v(s){l(r);let p=t(s,["bucket"]),d=t(s,["key"]),i=t(s,["file"]),k=t(s,["access","a","A"],"private"),T=t(s,["content-type","contentType","t","T"]),x=t(s,["format","f","F"],"table");p||(o(r,"Bucket name is required"),process.exit(1)),d||(o(r,"Object key is required"),process.exit(1));let z=!process.stdin.isTTY;!i&&!z&&(o(r,"File path is required (or pipe data via stdin)"),process.exit(1));let f,e;if(i){try{e=O(i).size}catch{o(r,`File not found: ${i}`),process.exit(1)}let c=F(i);f=h.toWeb(c)}else f=h.toWeb(process.stdin);let w=await y(),R=!i||e!==void 0&&e>100*1024*1024,{data:a,error:u}=await q(d,f,{access:k==="public"?"public":"private",contentType:T,multipart:R,onUploadProgress:({loaded:c,percentage:m})=>{e!==void 0&&e>0?process.stdout.write(`\rUploading: ${n(c)} / ${n(e)} (${m}%)`):process.stdout.write(`\rUploading: ${n(c)}`)},config:{...w,bucket:p}});process.stdout.write("\r"+" ".repeat(60)+"\r"),u&&(o(r,u.message),process.exit(1));let j=[{path:a.path,size:n(a.size??e??0),contentType:a.contentType||"-",modified:a.modified}],$=S(j,x,"objects","object",[{key:"path",header:"Path"},{key:"size",header:"Size"},{key:"contentType",header:"Content-Type"},{key:"modified",header:"Modified"}]);console.log($),g(r,{key:d,bucket:p})}export{v as default};
|
package/dist/lib/objects/set.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as p,b as u,c as t,g as f}from"../../chunk-SYGTCM6P.js";import{a as c}from"../../chunk-JRALYIRA.js";import"../../chunk-
|
|
1
|
+
import{a as p,b as u,c as t,g as f}from"../../chunk-SYGTCM6P.js";import{a as c}from"../../chunk-JRALYIRA.js";import{b as g}from"../../chunk-USCKVLDO.js";import"../../chunk-BETAO4PB.js";import"../../chunk-E4MLGABW.js";import"../../chunk-DOUR5YEY.js";import"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import{updateObject as b}from"@tigrisdata/storage";var e=f("objects","set");async function k(s){p(e);let i=c(s,["bucket"]),r=c(s,["key"]),n=c(s,["access","a","A"]),o=c(s,["new-key","n","newKey"]);i||(t(e,"Bucket name is required"),process.exit(1)),r||(t(e,"Object key is required"),process.exit(1)),n||(t(e,"Access level is required (--access public|private)"),process.exit(1));let m=await g(),{error:a}=await b(r,{access:n==="public"?"public":"private",...o&&{key:o},config:{...m,bucket:i}});a&&(t(e,a.message),process.exit(1)),u(e,{key:r,bucket:i})}export{k as default};
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import{a,b as
|
|
1
|
+
import{a as g,b as c,c as t,f as l,g as u}from"../../chunk-SYGTCM6P.js";import{a as f}from"../../chunk-JRALYIRA.js";import{b as m}from"../../chunk-USCKVLDO.js";import"../../chunk-BETAO4PB.js";import"../../chunk-E4MLGABW.js";import{g as e,k as r,s as a}from"../../chunk-DOUR5YEY.js";import{a as s}from"../../chunk-GZ7JBHFT.js";import"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import{createOrganization as O}from"@tigrisdata/iam";var i=u("organizations","create");async function w(d){if(g(i),a()!=="oauth"){r()?console.log(`You are using access key credentials, which belong to a single organization.
|
|
2
2
|
Organization creation is only available with OAuth login.
|
|
3
3
|
|
|
4
|
-
Run "tigris login" to login with your Tigris account.`):console.log('Not authenticated. Please run "tigris login" to login with your Tigris account.');return}let
|
|
4
|
+
Run "tigris login" to login with your Tigris account.`):console.log('Not authenticated. Please run "tigris login" to login with your Tigris account.');return}let p=e();if(s(p??void 0)){console.log(`Organization creation is not available for Fly.io users.
|
|
5
|
+
Your organizations are managed through Fly.io.
|
|
6
|
+
|
|
7
|
+
Visit https://fly.io to manage your organizations.`);return}let o=f(d,["name","N"]);o||(t(i,"Organization name is required"),process.exit(1));let h=await m(),{data:y,error:n}=await O(o,{config:h});n&&(t(i,n.message),process.exit(1));let z=y.id;c(i,{name:o,id:z}),l(i,{name:o})}export{w as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as O,b as r,c as k,d as S,g as C}from"../../chunk-SYGTCM6P.js";import{f as I}from"../../chunk-CQCBYE3X.js";import{a as F}from"../../chunk-JRALYIRA.js";import{b as x}from"../../chunk-USCKVLDO.js";import"../../chunk-BETAO4PB.js";import{b as z}from"../../chunk-E4MLGABW.js";import{f as u,g as f,k as p,s as h}from"../../chunk-DOUR5YEY.js";import{a as w,b as y}from"../../chunk-GZ7JBHFT.js";import"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import{listOrganizations as b}from"@tigrisdata/iam";import E from"enquirer";var i=C("organizations","list");async function N(T){if(O(i),h()!=="oauth"){p()?console.log(`You are using access key credentials, which belong to a single organization.
|
|
2
2
|
Organization listing and selection is only available with OAuth login.
|
|
3
3
|
|
|
4
|
-
Run "tigris login" to login with your Tigris account.`):console.log('Not authenticated. Please run "tigris login" to login with your Tigris account.');return}let
|
|
4
|
+
Run "tigris login" to login with your Tigris account.`):console.log('Not authenticated. Please run "tigris login" to login with your Tigris account.');return}let c=F(T,["format","f","F"],"select"),A=await z().getAccessToken(),a=await y(A),M=a?.some(t=>w(t.id))??!1,n;if(M&&a)n=a.map(t=>({id:t.id,name:t.name,slug:t.name}));else{let t=await x(),{data:l,error:s}=await b({config:t});s&&(k(i,s.message),process.exit(1)),n=l?.organizations??[]}if(n.length===0){S(i);return}let o=f();if(c==="select"){let t=n.map(e=>({name:e.id,message:`${e.name} (${e.id})`,hint:e.id===o?"currently selected":void 0})),m=(await E.prompt({type:"select",name:"organization",message:"Select an organization:",choices:t.map(e=>e.message),initial:o?n.findIndex(e=>e.id===o):0})).organization.match(/\(([^)]+)\)$/),d=m?m[1]:n[0].id;await u(d);let $=n.find(e=>e.id===d);r(i,{name:$?.name});return}let g=n.map(t=>({id:t.id,name:t.name,slug:t.slug,selected:t.id===o?"*":""})),U=I(g,c,"organizations","organization",[{key:"selected",header:" ",width:1},{key:"id",header:"ID"},{key:"name",header:"Name"},{key:"slug",header:"Slug"}]);console.log(U),r(i,{count:g.length})}export{N as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as m,b as u,c as t,g as d}from"../../chunk-SYGTCM6P.js";import{a as p}from"../../chunk-JRALYIRA.js";import"../../chunk-
|
|
1
|
+
import{a as m,b as u,c as t,g as d}from"../../chunk-SYGTCM6P.js";import{a as p}from"../../chunk-JRALYIRA.js";import{b as f}from"../../chunk-USCKVLDO.js";import"../../chunk-BETAO4PB.js";import"../../chunk-E4MLGABW.js";import{f as g,k as c,s as l}from"../../chunk-DOUR5YEY.js";import"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import{listOrganizations as O}from"@tigrisdata/iam";var i=d("organizations","select");async function x(h){if(m(i),l()!=="oauth"){c()?console.log(`You are using access key credentials, which belong to a single organization.
|
|
2
2
|
Organization selection is only available with OAuth login.
|
|
3
3
|
|
|
4
4
|
Run "tigris login" to login with your Tigris account.`):console.log('Not authenticated. Please run "tigris login" to login with your Tigris account.');return}let n=p(h,["name","N"]);n||(t(i,"Organization name or ID is required"),process.exit(1));let z=await f(),{data:w,error:a}=await O({config:z});a&&(t(i,a.message),process.exit(1));let r=w?.organizations??[],e=r.find(o=>o.id===n||o.name===n);if(!e){let o=r.map(s=>` - ${s.name} (${s.id})`).join(`
|
package/dist/lib/rm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as g}from"../chunk-JRALYIRA.js";import{a as A,b as F,d as I,g as S,h as W,i as j}from"../chunk-LCWHZUZZ.js";import{b as P}from"../chunk-
|
|
1
|
+
import{a as g}from"../chunk-JRALYIRA.js";import{a as A,b as F,d as I,g as S,h as W,i as j}from"../chunk-LCWHZUZZ.js";import{b as P}from"../chunk-USCKVLDO.js";import"../chunk-E4MLGABW.js";import"../chunk-DOUR5YEY.js";import"../chunk-KH63ANUX.js";import"../chunk-2XAO2OYD.js";import*as E from"readline";import{remove as w,removeBucket as T,list as q}from"@tigrisdata/storage";async function $(l){let s=E.createInterface({input:process.stdin,output:process.stdout});return new Promise(m=>{s.question(`${l} (y/N): `,d=>{s.close(),m(d.toLowerCase()==="y")})})}async function C(l){let s=g(l,["path"]),m=g(l,["force","f","F"]),d=!!g(l,["recursive","r"]);s||(console.error("path argument is required"),process.exit(1)),A(s)||(console.error("Path must be a remote Tigris path (t3:// or tigris://)"),process.exit(1));let{bucket:e,path:o}=F(s);e||(console.error("Invalid path"),process.exit(1));let i=await P(),b=s.endsWith("/");if(!o&&!b){if(!m&&!await $(`Are you sure you want to delete bucket '${e}'?`)){console.log("Aborted");return}let{error:t}=await T(e,{config:i});t&&(console.error(t.message),process.exit(1)),console.log(`Removed bucket '${e}'`);return}let n=o.includes("*"),u=o.endsWith("/")||!o&&b;if(!n&&!u&&(u=await I(e,o,i)),u&&!n&&!d&&(console.error("Source is a remote folder (not removed). Use -r to remove recursively."),process.exit(1)),n||u){let t=n?W(o):o?o.endsWith("/")?o:`${o}/`:"",{items:p,error:x}=await j(e,t||void 0,i);x&&(console.error(x.message),process.exit(1));let f=p;if(n){let r=o.split("/").pop(),a=S(r);f=f.filter(R=>{let k=t?R.name.slice(t.length):R.name;return!d&&k.includes("/")?!1:a.test(k.split("/").pop())})}let c=t,M=f.some(r=>r.name===c),v=!1;if(!M&&!n){let{data:r}=await q({prefix:c,limit:1,config:{...i,bucket:e}});v=r?.items?.some(a=>a.name===c)||!1}let y=f.length+(v?1:0);if(y===0){console.log("No objects to remove");return}if(!m&&!await $(`Are you sure you want to delete ${y} object(s)?`)){console.log("Aborted");return}let h=0;for(let r of f){let{error:a}=await w(r.name,{config:{...i,bucket:e}});a?console.error(`Failed to remove ${r.name}: ${a.message}`):(console.log(`Removed t3://${e}/${r.name}`),h++)}if(v){let{error:r}=await w(c,{config:{...i,bucket:e}});r?console.error(`Failed to remove ${c}: ${r.message}`):(console.log(`Removed t3://${e}/${c}`),h++)}console.log(`Removed ${h} object(s)`)}else{if(!m&&!await $(`Are you sure you want to delete 't3://${e}/${o}'?`)){console.log("Aborted");return}let{error:t}=await w(o,{config:{...i,bucket:e}});t&&(console.error(t.message),process.exit(1)),console.log(`Removed t3://${e}/${o}`)}process.exit(0)}export{C as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as c,b as p,c as o,d as f,g as u}from"../../chunk-SYGTCM6P.js";import{f as d}from"../../chunk-CQCBYE3X.js";import{a as n}from"../../chunk-JRALYIRA.js";import"../../chunk-
|
|
1
|
+
import{a as c,b as p,c as o,d as f,g as u}from"../../chunk-SYGTCM6P.js";import{f as d}from"../../chunk-CQCBYE3X.js";import{a as n}from"../../chunk-JRALYIRA.js";import{b as g}from"../../chunk-USCKVLDO.js";import"../../chunk-BETAO4PB.js";import"../../chunk-E4MLGABW.js";import"../../chunk-DOUR5YEY.js";import"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import{listBucketSnapshots as y}from"@tigrisdata/storage";var t=u("snapshots","list");async function x(s){c(t);let a=n(s,["name"]),l=n(s,["format","f","F"],"table");a||(o(t,"Bucket name is required"),process.exit(1));let h=await g(),{data:e,error:i}=await y(a,{config:h});if(i&&(o(t,i.message),process.exit(1)),!e||e.length===0){f(t);return}let m=e.map(r=>({name:r.name||"",version:r.version||"",created:r.creationDate})),k=d(m,l,"snapshots","snapshot",[{key:"name",header:"Name"},{key:"version",header:"Version"},{key:"created",header:"Created"}]);console.log(k),p(t,{count:m.length})}export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as m,b as p,c as n,g as c}from"../../chunk-SYGTCM6P.js";import{a as e}from"../../chunk-JRALYIRA.js";import"../../chunk-
|
|
1
|
+
import{a as m,b as p,c as n,g as c}from"../../chunk-SYGTCM6P.js";import{a as e}from"../../chunk-JRALYIRA.js";import{b as f}from"../../chunk-USCKVLDO.js";import"../../chunk-BETAO4PB.js";import"../../chunk-E4MLGABW.js";import"../../chunk-DOUR5YEY.js";import"../../chunk-KH63ANUX.js";import"../../chunk-2XAO2OYD.js";import{createBucketSnapshot as h}from"@tigrisdata/storage";var t=c("snapshots","take");async function u(o){m(t);let s=e(o,["name"]),a=e(o,["snapshot-name","snapshotName"]);s||(n(t,"Bucket name is required"),process.exit(1));let g=await f(),{data:r,error:i}=await h(s,{name:a,config:g});i&&(n(t,i.message),process.exit(1)),p(t,{name:s,snapshotName:a||r?.snapshotVersion,version:r?.snapshotVersion})}export{u as default};
|
package/dist/lib/stat.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as v,b as c,c as s,g as b}from"../chunk-SYGTCM6P.js";import{a as l,f as u}from"../chunk-CQCBYE3X.js";import{f as k}from"../chunk-LCWHZUZZ.js";import"../chunk-
|
|
1
|
+
import{a as v,b as c,c as s,g as b}from"../chunk-SYGTCM6P.js";import{a as l,f as u}from"../chunk-CQCBYE3X.js";import{f as k}from"../chunk-LCWHZUZZ.js";import{b as S}from"../chunk-USCKVLDO.js";import"../chunk-BETAO4PB.js";import"../chunk-E4MLGABW.js";import"../chunk-DOUR5YEY.js";import"../chunk-KH63ANUX.js";import"../chunk-2XAO2OYD.js";import{getStats as j,getBucketInfo as y,head as I}from"@tigrisdata/storage";var e=b("stat");async function x(f){v(e);let d=f.path||f._positional?.[0],m=f.format||"table",p=await S();if(!d){let{data:t,error:a}=await j({config:p});a&&(s(e,a.message),process.exit(1));let r=[{metric:"Active Buckets",value:String(t.stats.activeBuckets)},{metric:"Total Objects",value:String(t.stats.totalObjects)},{metric:"Total Unique Objects",value:String(t.stats.totalUniqueObjects)},{metric:"Total Storage",value:l(t.stats.totalStorageBytes)}],g=u(r,m,"stats","stat",[{key:"metric",header:"Metric"},{key:"value",header:"Value"}]);console.log(g),c(e),process.exit(0)}let{bucket:i,path:n}=k(d);if(i||(s(e,"Invalid path"),process.exit(1)),!n||n==="/"){let{data:t,error:a}=await y(i,{config:p});a&&(s(e,a.message),process.exit(1));let r=[{metric:"Number of Objects",value:t.sizeInfo.numberOfObjects?.toString()??"N/A"},{metric:"Total Size",value:t.sizeInfo.size!==void 0?l(t.sizeInfo.size):"N/A"},{metric:"All Versions Count",value:t.sizeInfo.numberOfObjectsAllVersions?.toString()??"N/A"},{metric:"Snapshots Enabled",value:t.isSnapshotEnabled?"Yes":"No"},{metric:"Default Tier",value:t.settings.defaultTier},{metric:"Allow Object ACL",value:t.settings.allowObjectAcl?"Yes":"No"},{metric:"Has Forks",value:t.forkInfo?.hasChildren?"Yes":"No"}];t.forkInfo?.parents?.length&&(r.push({metric:"Forked From",value:t.forkInfo.parents[0].bucketName}),r.push({metric:"Fork Snapshot",value:t.forkInfo.parents[0].snapshot}));let g=u(r,m,"bucket-info","info",[{key:"metric",header:"Metric"},{key:"value",header:"Value"}]);console.log(g),c(e,{bucket:i}),process.exit(0)}let{data:o,error:h}=await I(n,{config:{...p,bucket:i}});h&&(s(e,h.message),process.exit(1)),o||(s(e,"Object not found"),process.exit(1));let O=[{metric:"Path",value:o.path},{metric:"Size",value:l(o.size)},{metric:"Content-Type",value:o.contentType||"N/A"},{metric:"Content-Disposition",value:o.contentDisposition||"N/A"},{metric:"Modified",value:o.modified.toISOString()}],A=u(O,m,"object-info","info",[{key:"metric",header:"Metric"},{key:"value",header:"Value"}]);console.log(A),c(e,{bucket:i,path:n}),process.exit(0)}export{x as default};
|
package/dist/lib/touch.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as n}from"../chunk-JRALYIRA.js";import{f as i}from"../chunk-LCWHZUZZ.js";import{b as s}from"../chunk-
|
|
1
|
+
import{a as n}from"../chunk-JRALYIRA.js";import{f as i}from"../chunk-LCWHZUZZ.js";import{b as s}from"../chunk-USCKVLDO.js";import"../chunk-E4MLGABW.js";import"../chunk-DOUR5YEY.js";import"../chunk-KH63ANUX.js";import"../chunk-2XAO2OYD.js";import{put as p}from"@tigrisdata/storage";async function f(c){let r=n(c,["path"]);r||(console.error("path argument is required"),process.exit(1));let{bucket:o,path:e}=i(r);o||(console.error("Invalid path"),process.exit(1)),e||(console.error("Object key is required (use mk to create buckets)"),process.exit(1));let a=await s(),{error:t}=await p(e,"",{config:{...a,bucket:o}});t&&(console.error(t.message),process.exit(1)),console.log(`Created '${o}/${e}'`),process.exit(0)}export{f as default};
|
package/dist/lib/whoami.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c,e as h,g as O}from"../chunk-SYGTCM6P.js";import"../chunk-
|
|
1
|
+
import{c,e as h,g as O}from"../chunk-SYGTCM6P.js";import{b as $}from"../chunk-USCKVLDO.js";import"../chunk-BETAO4PB.js";import{b as z}from"../chunk-E4MLGABW.js";import{g as f,k as p,s as A}from"../chunk-DOUR5YEY.js";import"../chunk-KH63ANUX.js";import"../chunk-2XAO2OYD.js";import{listOrganizations as C}from"@tigrisdata/iam";var s=O("whoami");async function y(){try{let i=A(),d=p(),l,u;if(i==="oauth"){let n=z();if(!await n.isAuthenticated()){h(s);return}let a=await n.getIdTokenClaims();l=a.email,u=a.sub}else if(d)l=void 0,u=d.accessKeyId;else{h(s);return}let e=[];if(e.push(""),e.push("User Information:"),e.push(` Email: ${l||"N/A"}`),e.push(` User ID: ${u||"N/A"}`),i==="oauth"){let n=await $(),o=f(),{data:a,error:g}=await C({config:n});g&&(c(s,g.message),process.exit(1));let r=a?.organizations??[];if(r.length>0){if(e.push(""),e.push(`Organizations (${r.length}):`),r.forEach(t=>{let w=t.id===o?">":" ";e.push(` ${w} ${t.name} (${t.id})`)}),o){let t=r.find(m=>m.id===o);t&&(e.push(""),e.push(`Active: ${t.name}`))}}else e.push(""),e.push("Organizations: None")}else e.push(""),e.push("Login method: Access Key Credentials"),e.push(" (Organization listing requires OAuth login: tigris login)");e.push(""),console.log(e.join(`
|
|
2
2
|
`))}catch(i){i instanceof Error?c(s,i.message):c(s),process.exit(1)}}export{y as default};
|
package/dist/specs.yaml
CHANGED
|
@@ -1017,11 +1017,12 @@ commands:
|
|
|
1017
1017
|
# IAM - Identity and Access Management
|
|
1018
1018
|
#########################
|
|
1019
1019
|
- name: iam
|
|
1020
|
-
description: Identity and Access Management - manage policies,
|
|
1020
|
+
description: Identity and Access Management - manage policies, users, and permissions
|
|
1021
1021
|
examples:
|
|
1022
1022
|
- "tigris iam policies list"
|
|
1023
|
-
- "tigris iam policies get arn:aws:iam::org_id:policy/my-policy"
|
|
1024
1023
|
- "tigris iam policies create my-policy --document policy.json"
|
|
1024
|
+
- "tigris iam users list"
|
|
1025
|
+
- "tigris iam users invite user@example.com --role member"
|
|
1025
1026
|
commands:
|
|
1026
1027
|
- name: policies
|
|
1027
1028
|
description: Manage IAM policies. Policies define permissions for access keys
|
|
@@ -1137,3 +1138,115 @@ commands:
|
|
|
1137
1138
|
required: false
|
|
1138
1139
|
examples:
|
|
1139
1140
|
- arn:aws:iam::org_id:policy/my-policy
|
|
1141
|
+
|
|
1142
|
+
- name: users
|
|
1143
|
+
description: Manage organization users and invitations
|
|
1144
|
+
alias: u
|
|
1145
|
+
examples:
|
|
1146
|
+
- "tigris iam users list"
|
|
1147
|
+
- "tigris iam users invite user@example.com --role member"
|
|
1148
|
+
- "tigris iam users remove user@example.com"
|
|
1149
|
+
commands:
|
|
1150
|
+
- name: list
|
|
1151
|
+
description: List all users and pending invitations in the organization
|
|
1152
|
+
alias: l
|
|
1153
|
+
examples:
|
|
1154
|
+
- "tigris iam users list"
|
|
1155
|
+
- "tigris iam users list --format json"
|
|
1156
|
+
messages:
|
|
1157
|
+
onStart: ''
|
|
1158
|
+
onSuccess: ''
|
|
1159
|
+
onFailure: 'Failed to list users'
|
|
1160
|
+
onEmpty: 'No users found in this organization'
|
|
1161
|
+
arguments:
|
|
1162
|
+
- name: format
|
|
1163
|
+
description: Output format
|
|
1164
|
+
alias: f
|
|
1165
|
+
options: [json, table, xml]
|
|
1166
|
+
default: table
|
|
1167
|
+
- name: invite
|
|
1168
|
+
description: Invite users to the organization by email
|
|
1169
|
+
alias: i
|
|
1170
|
+
examples:
|
|
1171
|
+
- "tigris iam users invite user@example.com"
|
|
1172
|
+
- "tigris iam users invite user@example.com --role admin"
|
|
1173
|
+
- "tigris iam users invite user1@example.com,user2@example.com"
|
|
1174
|
+
messages:
|
|
1175
|
+
onStart: 'Sending invitation...'
|
|
1176
|
+
onSuccess: "Invitation sent to '{{email}}'"
|
|
1177
|
+
onFailure: 'Failed to send invitation'
|
|
1178
|
+
arguments:
|
|
1179
|
+
- name: email
|
|
1180
|
+
description: Email address(es) to invite (comma-separated for multiple)
|
|
1181
|
+
type: positional
|
|
1182
|
+
required: true
|
|
1183
|
+
multiple: true
|
|
1184
|
+
examples:
|
|
1185
|
+
- user@example.com
|
|
1186
|
+
- user1@example.com,user2@example.com
|
|
1187
|
+
- name: role
|
|
1188
|
+
description: Role to assign to the invited user(s)
|
|
1189
|
+
alias: r
|
|
1190
|
+
options: [admin, member]
|
|
1191
|
+
default: member
|
|
1192
|
+
- name: revoke-invitation
|
|
1193
|
+
description: Revoke pending invitations. If no invitation ID provided, shows interactive selection
|
|
1194
|
+
alias: ri
|
|
1195
|
+
examples:
|
|
1196
|
+
- "tigris iam users revoke-invitation"
|
|
1197
|
+
- "tigris iam users revoke-invitation invitation_id"
|
|
1198
|
+
- "tigris iam users revoke-invitation id1,id2,id3"
|
|
1199
|
+
messages:
|
|
1200
|
+
onStart: 'Revoking invitation...'
|
|
1201
|
+
onSuccess: "Invitation(s) revoked"
|
|
1202
|
+
onFailure: 'Failed to revoke invitation'
|
|
1203
|
+
onEmpty: 'No pending invitations found'
|
|
1204
|
+
arguments:
|
|
1205
|
+
- name: resource
|
|
1206
|
+
description: Invitation ID(s) (comma-separated for multiple). If omitted, shows interactive selection
|
|
1207
|
+
type: positional
|
|
1208
|
+
required: false
|
|
1209
|
+
multiple: true
|
|
1210
|
+
- name: update-role
|
|
1211
|
+
description: Update user roles in the organization. If no user ID provided, shows interactive selection
|
|
1212
|
+
alias: ur
|
|
1213
|
+
examples:
|
|
1214
|
+
- "tigris iam users update-role --role admin"
|
|
1215
|
+
- "tigris iam users update-role user_id --role member"
|
|
1216
|
+
- "tigris iam users update-role id1,id2 --role admin"
|
|
1217
|
+
- "tigris iam users update-role id1,id2 --role admin,member"
|
|
1218
|
+
messages:
|
|
1219
|
+
onStart: 'Updating user role...'
|
|
1220
|
+
onSuccess: "Role updated"
|
|
1221
|
+
onFailure: 'Failed to update user role'
|
|
1222
|
+
onEmpty: 'No users found in this organization'
|
|
1223
|
+
arguments:
|
|
1224
|
+
- name: resource
|
|
1225
|
+
description: User ID(s) (comma-separated for multiple). If omitted, shows interactive selection
|
|
1226
|
+
type: positional
|
|
1227
|
+
required: false
|
|
1228
|
+
multiple: true
|
|
1229
|
+
- name: role
|
|
1230
|
+
description: Role(s) to assign (comma-separated). Each role pairs with the corresponding user ID. If one role is given, it applies to all users
|
|
1231
|
+
alias: r
|
|
1232
|
+
required: true
|
|
1233
|
+
options: [admin, member]
|
|
1234
|
+
multiple: true
|
|
1235
|
+
- name: remove
|
|
1236
|
+
description: Remove users from the organization. If no user ID provided, shows interactive selection
|
|
1237
|
+
alias: rm
|
|
1238
|
+
examples:
|
|
1239
|
+
- "tigris iam users remove"
|
|
1240
|
+
- "tigris iam users remove user@example.com"
|
|
1241
|
+
- "tigris iam users remove user@example.com,user@example.net"
|
|
1242
|
+
messages:
|
|
1243
|
+
onStart: 'Removing user...'
|
|
1244
|
+
onSuccess: "User(s) removed"
|
|
1245
|
+
onFailure: 'Failed to remove user'
|
|
1246
|
+
onEmpty: 'No users found in this organization'
|
|
1247
|
+
arguments:
|
|
1248
|
+
- name: resource
|
|
1249
|
+
description: User ID(s) (comma-separated for multiple). If omitted, shows interactive selection
|
|
1250
|
+
type: positional
|
|
1251
|
+
required: false
|
|
1252
|
+
multiple: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as a,c as b}from"../chunk-
|
|
1
|
+
import{b as a,c as b}from"../chunk-SJCYBKF2.js";import"../chunk-2XAO2OYD.js";export{b as checkForUpdates,a as isNewerVersion};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tigrisdata/cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.10.0",
|
|
4
4
|
"description": "Command line interface for Tigris object storage",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"build": "tsup",
|
|
25
25
|
"dev": "export $(grep -v '^#' .env | xargs) && tsup --watch",
|
|
26
26
|
"cli": "node dist/cli.js",
|
|
27
|
-
"lint": "eslint src
|
|
28
|
-
"lint:fix": "eslint src --
|
|
27
|
+
"lint": "eslint src",
|
|
28
|
+
"lint:fix": "eslint src --fix",
|
|
29
29
|
"format": "prettier --write \"src/**/*.ts\"",
|
|
30
30
|
"format:check": "prettier --check \"src/**/*.ts\"",
|
|
31
31
|
"test": "vitest run",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"postinstall": "node postinstall.cjs",
|
|
38
38
|
"generate:registry": "tsx scripts/generate-registry.ts",
|
|
39
39
|
"build:binary": "npm run generate:registry && tsx scripts/build-binaries.ts",
|
|
40
|
-
"build:binary:current": "bun build src/cli-binary.ts --compile --outfile=bin/tigris",
|
|
40
|
+
"build:binary:current": "npm run generate:registry && bun build src/cli-binary.ts --compile --outfile=bin/tigris",
|
|
41
41
|
"prepublishOnly": "npm run build",
|
|
42
42
|
"clean": "rm -rf dist",
|
|
43
43
|
"semantic-release": "semantic-release",
|
|
@@ -82,35 +82,35 @@
|
|
|
82
82
|
]
|
|
83
83
|
},
|
|
84
84
|
"dependencies": {
|
|
85
|
-
"@aws-sdk/client-s3": "^3.
|
|
86
|
-
"@aws-sdk/credential-providers": "^3.
|
|
85
|
+
"@aws-sdk/client-s3": "^3.994.0",
|
|
86
|
+
"@aws-sdk/credential-providers": "^3.994.0",
|
|
87
87
|
"@smithy/shared-ini-file-loader": "^4.4.3",
|
|
88
|
-
"@tigrisdata/iam": "^1.
|
|
88
|
+
"@tigrisdata/iam": "^1.3.0",
|
|
89
89
|
"@tigrisdata/storage": "^2.13.0",
|
|
90
|
-
"axios": "^1.
|
|
91
|
-
"commander": "^
|
|
90
|
+
"axios": "^1.13.5",
|
|
91
|
+
"commander": "^14.0.3",
|
|
92
92
|
"enquirer": "^2.4.1",
|
|
93
93
|
"jose": "^6.1.3",
|
|
94
|
-
"open": "^
|
|
95
|
-
"yaml": "^2.
|
|
94
|
+
"open": "^11.0.0",
|
|
95
|
+
"yaml": "^2.8.2"
|
|
96
96
|
},
|
|
97
97
|
"devDependencies": {
|
|
98
|
-
"@commitlint/cli": "^20.2
|
|
99
|
-
"@commitlint/config-conventional": "^20.2
|
|
98
|
+
"@commitlint/cli": "^20.4.2",
|
|
99
|
+
"@commitlint/config-conventional": "^20.4.2",
|
|
100
|
+
"@eslint/js": "^10.0.1",
|
|
100
101
|
"@semantic-release/changelog": "^6.0.3",
|
|
101
102
|
"@semantic-release/git": "^10.0.1",
|
|
102
|
-
"@types/node": "^
|
|
103
|
-
"
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
"
|
|
107
|
-
"
|
|
108
|
-
"prettier": "^3.0.0",
|
|
109
|
-
"publint": "^0.2.0",
|
|
103
|
+
"@types/node": "^22.19.11",
|
|
104
|
+
"dotenv": "^17.3.1",
|
|
105
|
+
"eslint": "^10.0.0",
|
|
106
|
+
"husky": "^9.1.7",
|
|
107
|
+
"prettier": "^3.8.1",
|
|
108
|
+
"publint": "^0.3.17",
|
|
110
109
|
"semantic-release": "^25.0.3",
|
|
111
|
-
"tsup": "^8.
|
|
110
|
+
"tsup": "^8.5.1",
|
|
112
111
|
"tsx": "^4.21.0",
|
|
113
|
-
"typescript": "^5.
|
|
114
|
-
"
|
|
112
|
+
"typescript": "^5.9.3",
|
|
113
|
+
"typescript-eslint": "^8.56.0",
|
|
114
|
+
"vitest": "^4.0.18"
|
|
115
115
|
}
|
|
116
116
|
}
|
package/dist/chunk-7F4WI32C.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as n,b as i}from"./chunk-BP52O7NB.js";function I(){let e=process.env.TIGRIS_ENV==="development",t=e?"auth-dev.tigris.dev":process.env.AUTH0_DOMAIN??"auth.tigris.dev",s=e?"JdJVYIyw0O1uHi5L5OJH903qaWBgd3gF":process.env.AUTH0_CLIENT_ID??"DMejqeM3CQ4IqTjEcd3oA9eEiT40hn8D",o=e?"https://tigris-api-dev":process.env.AUTH0_AUDIENCE??"https://tigris-os-api";return{domain:t,clientId:s,audience:o}}var p=process.env.TIGRIS_CLAIMS_NAMESPACE||"https://tigris";function T(){return process.env.TIGRIS_STORAGE_ENDPOINT||process.env.TIGRIS_IAM_ENDPOINT?{endpoint:process.env.TIGRIS_STORAGE_ENDPOINT||n,iamEndpoint:process.env.TIGRIS_IAM_ENDPOINT||i}:{endpoint:process.env.AWS_ENDPOINT_URL_S3||n,iamEndpoint:process.env.AWS_ENDPOINT_URL_IAM||i}}export{I as a,p as b,T as c};
|
package/dist/chunk-BP52O7NB.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var t="https://t3.storage.dev",s="https://iam.storageapi.dev",o="https://registry.npmjs.org/@tigrisdata/cli/latest",_=864e5,e=216e5;export{t as a,s as b,o as c,_ as d,e};
|
package/dist/chunk-NJKXT74Y.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as c,b as s,c as l,d as h,e as g,r as k}from"./chunk-UUITLEOI.js";import{a as p,b as u}from"./chunk-7F4WI32C.js";import a from"axios";import w from"open";import{createRemoteJWKSet as T,jwtVerify as y}from"jose";var f=class{config;baseUrl;jwks=null;constructor(){this.config=p(),this.baseUrl=`https://${this.config.domain}`}getJWKS(){return this.jwks||(this.jwks=T(new URL(`${this.baseUrl}/.well-known/jwks.json`))),this.jwks}async verifyIdToken(e){let{payload:t}=await y(e,this.getJWKS(),{issuer:`${this.baseUrl}/`,audience:this.config.clientId});return t}async login(e){let o=(await a.post(`${this.baseUrl}/oauth/device/code`,{client_id:this.config.clientId,audience:this.config.audience,scope:"openid profile email offline_access"},{headers:{"Content-Type":"application/x-www-form-urlencoded"}})).data;e?.onDeviceCode?.(o.user_code,o.verification_uri),await this.sleep(2e3);try{await w(o.verification_uri_complete)}catch{}e?.onWaiting?.();let n=await this.pollForToken(o.device_code,o.interval||5);await c(n),k("oauth"),await this.extractAndStoreOrganizations(n.idToken)}async pollForToken(e,t){let n=0;for(;n<60;){n++;try{let r=(await a.post(`${this.baseUrl}/oauth/token`,{client_id:this.config.clientId,device_code:e,grant_type:"urn:ietf:params:oauth:grant-type:device_code"},{headers:{"Content-Type":"application/x-www-form-urlencoded"}})).data;if(!r.id_token)throw new Error("No ID token found. Please try again.");if((await this.verifyIdToken(r.id_token)).email_verified===!1)throw console.log("Email not verified. Please verify your email and try again."),new Error("Email not verified. Please verify your email and try again.");let m=Date.now()+(r.expires_in||3600)*1e3;return{accessToken:r.access_token,refreshToken:r.refresh_token,idToken:r.id_token,expiresAt:m}}catch(i){if(a.isAxiosError(i)&&i.response){let r=i.response.data?.error;if(r==="authorization_pending"){await this.sleep(t*1e3);continue}if(r==="slow_down"){t+=5,await this.sleep(t*1e3);continue}throw new Error(i.response.data?.error_description||"Authentication failed")}throw i}}throw new Error("Authentication timed out. Please try again.")}async getAccessToken(){let e=await s();if(!e)throw new Error('Not authenticated. Please run "tigris login" to authenticate.');let t=300*1e3;return Date.now()+t>=e.expiresAt&&(e=await this.refreshAccessToken(e)),e.accessToken}async refreshAccessToken(e){let t=null;if(e?.refreshToken?t=e:t=await s(),!t)throw new Error('No refresh token available. Please run "tigris login" to re-authenticate.');try{let n=(await a.post(`${this.baseUrl}/oauth/token`,{client_id:this.config.clientId,grant_type:"refresh_token",refresh_token:t.refreshToken,scope:"openid profile email offline_access"},{headers:{"Content-Type":"application/x-www-form-urlencoded"}})).data,i={accessToken:n.access_token,refreshToken:n.refresh_token||t.refreshToken,idToken:n.id_token||t.idToken,expiresAt:Date.now()+(n.expires_in||3600)*1e3};return await c(i),i}catch{throw await l(),new Error('Token refresh failed. Please run "tigris login" to re-authenticate.')}}async getIdTokenClaims(){let e=await s();if(!e||!e.idToken)throw new Error('Not authenticated. Please run "tigris login" to authenticate.');try{return await this.verifyIdToken(e.idToken)}catch{throw new Error('ID token verification failed. Please run "tigris login" to re-authenticate.')}}async extractAndStoreOrganizations(e){if(e)try{let o=(await this.verifyIdToken(e))[u];if(!o)return;let n=o?.ns?.map(i=>typeof i=="object"&&i!==null?{id:i.id,name:i.name,displayName:i.name}:{id:i,name:i,displayName:i})||[];if(n.length===0)return;h(n)}catch{}}async getOrganizations(){return await this.getAccessToken(),g()}async logout(){await l()}async isAuthenticated(){return await s()!==null}sleep(e){return new Promise(t=>setTimeout(t,e))}},d=null;function S(){return d||(d=new f),d}export{f as a,S as b};
|
package/dist/chunk-WU7FCMUU.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{a as s,b as e,c,e as g,f as l,g as u}from"./chunk-SYGTCM6P.js";import{b as a}from"./chunk-NJKXT74Y.js";import{f as r}from"./chunk-UUITLEOI.js";var t=u("login","oauth");async function f(){s(t);try{let n=a();if(await n.isAuthenticated()){g(t);return}await n.login({onDeviceCode:(o,p)=>{console.log(`
|
|
2
|
-
Your confirmation code: ${o}
|
|
3
|
-
`),console.log(`If browser doesn't open, visit: ${p}`)},onWaiting:()=>console.log(`
|
|
4
|
-
Waiting for authentication...`)});let i=await n.getOrganizations();if(i.length>0){let o=i[0];await r(o.id),e(t,{org:o.displayName||o.name}),i.length>1&&l(t,{count:i.length})}else e(t,{org:"none"})}catch{c(t),process.exit(1)}}var A=f;export{f as a,A as b};
|
package/dist/chunk-ZUDPATIH.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{c as m,d,e as f}from"./chunk-BP52O7NB.js";import{readFileSync as T,writeFileSync as I,mkdirSync as N}from"fs";import{join as g}from"path";import{homedir as h}from"os";import x from"https";var u="2.9.0";var b=g(h(),".tigris","update-check.json");function y(){try{let e=T(b,"utf-8"),s=JSON.parse(e);return typeof s.latestVersion=="string"&&typeof s.lastChecked=="number"?s:null}catch{return null}}function v(e){try{N(g(h(),".tigris"),{recursive:!0}),I(b,JSON.stringify(e),"utf-8")}catch{}}function k(e,s){let a=o=>{let r=o.startsWith("v")?o.slice(1):o,c=null,l=r.indexOf("-");l!==-1&&(c=r.slice(l+1),r=r.slice(0,l));let p=r.split(".");if(p.length!==3)return null;let n=p.map(Number);return n.some(isNaN)?null:{major:n[0],minor:n[1],patch:n[2],prerelease:c}},t=a(e),i=a(s);return!t||!i?!1:i.major>t.major?!0:i.major<t.major?!1:i.minor>t.minor?!0:i.minor<t.minor?!1:i.patch>t.patch?!0:i.patch<t.patch?!1:t.prerelease&&!i.prerelease?!0:(!t.prerelease&&i.prerelease,!1)}function j(){try{let e=x.get(m,{timeout:5e3},s=>{let a="";s.on("data",t=>{a+=t}),s.on("end",()=>{try{let t=JSON.parse(a);if(typeof t.version=="string"){let i=y();v({...i,latestVersion:t.version,lastChecked:Date.now()})}}catch{}})});e.on("error",()=>{}),e.on("timeout",()=>{e.destroy()}),e.end(),e.on("socket",s=>{s.unref()})}catch{}}function V(){if(process.env.TIGRIS_NO_UPDATE_CHECK==="1"||!process.stdout.isTTY)return;let e=y(),s=Number(process.env.TIGRIS_UPDATE_NOTIFY_INTERVAL_MS)||216e5;if(e&&k(u,e.latestVersion)&&(!e.lastNotified||Date.now()-e.lastNotified>s)){let t=globalThis.__TIGRIS_BINARY===!0,i=process.platform==="win32",o=`Update available: ${u} \u2192 ${e.latestVersion}`,r;t?i?r="Run `irm https://raw.githubusercontent.com/tigrisdata/cli/main/scripts/install.ps1 | iex`":r="Run `curl -fsSL https://raw.githubusercontent.com/tigrisdata/cli/main/scripts/install.sh | sh`":r="Run `npm install -g @tigrisdata/cli` to upgrade.";let c=Math.max(o.length,r.length)+4,l="\u250C"+"\u2500".repeat(c-2)+"\u2510",p="\u2514"+"\u2500".repeat(c-2)+"\u2518",n=_=>"\u2502 "+_.padEnd(c-4)+" \u2502";console.log(`
|
|
2
|
-
${l}
|
|
3
|
-
${n("")}
|
|
4
|
-
${n(o)}
|
|
5
|
-
${n(r)}
|
|
6
|
-
${n("")}
|
|
7
|
-
${p}
|
|
8
|
-
`),v({...e,lastNotified:Date.now()})}let a=Number(process.env.TIGRIS_UPDATE_CHECK_INTERVAL_MS)||864e5;(!e||Date.now()-e.lastChecked>a)&&j()}export{u as a,k as b,V as c};
|