@tigrisdata/cli 2.6.0 → 2.6.1
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/s3-client.js +1 -1
- package/dist/auth/storage.js +1 -1
- package/dist/chunk-4BZ377KV.js +1 -0
- package/dist/chunk-4LGKN5DA.js +1 -0
- package/dist/chunk-A3TXP5Y2.js +2 -0
- package/dist/chunk-DYTBLGO7.js +1 -0
- package/dist/chunk-HGIJOGCZ.js +6 -0
- package/dist/chunk-I3FOSZPG.js +1 -0
- package/dist/chunk-IACJQZUD.js +4 -0
- package/dist/chunk-IY46B353.js +12 -0
- package/dist/chunk-JRALYIRA.js +1 -0
- package/dist/chunk-NYAHHQ3A.js +1 -0
- package/dist/chunk-PKWQDQLT.js +1 -0
- package/dist/chunk-TQWT7ROJ.js +1 -0
- package/dist/chunk-WE6NZ2ZK.js +1 -0
- package/dist/cli.js +1 -12
- package/dist/constants.js +1 -1
- package/dist/index.js +1 -12
- package/dist/lib/access-keys/assign.js +2 -3
- package/dist/lib/access-keys/create.js +2 -3
- package/dist/lib/access-keys/delete.js +2 -3
- package/dist/lib/access-keys/get.js +2 -3
- package/dist/lib/access-keys/list.js +2 -8
- package/dist/lib/buckets/create.js +1 -2
- package/dist/lib/buckets/delete.js +1 -2
- package/dist/lib/buckets/get.js +1 -7
- package/dist/lib/buckets/list.js +1 -7
- package/dist/lib/buckets/set.js +1 -2
- package/dist/lib/configure/index.js +1 -2
- package/dist/lib/cp.js +1 -1
- package/dist/lib/credentials/test.js +1 -2
- package/dist/lib/forks/create.js +1 -2
- package/dist/lib/forks/list.js +1 -7
- package/dist/lib/login/credentials.js +1 -2
- package/dist/lib/login/oauth.js +1 -5
- package/dist/lib/login/select.js +1 -5
- package/dist/lib/logout.js +1 -2
- package/dist/lib/ls.js +1 -6
- package/dist/lib/mk.js +1 -1
- package/dist/lib/mv.js +1 -1
- package/dist/lib/objects/delete.js +1 -2
- package/dist/lib/objects/get.js +1 -2
- package/dist/lib/objects/list.js +1 -7
- package/dist/lib/objects/put.js +1 -7
- package/dist/lib/organizations/create.js +2 -3
- package/dist/lib/organizations/list.js +2 -8
- package/dist/lib/organizations/select.js +4 -5
- package/dist/lib/rm.js +1 -1
- package/dist/lib/snapshots/list.js +1 -7
- package/dist/lib/snapshots/take.js +1 -2
- package/dist/lib/touch.js +1 -1
- package/dist/lib/whoami.js +2 -3
- package/dist/utils/format.js +1 -6
- package/dist/utils/messages.js +1 -2
- package/dist/utils/options.js +1 -1
- package/dist/utils/path.js +1 -1
- package/dist/utils/specs.js +1 -1
- package/package.json +3 -2
package/dist/auth/client.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{a,b}from"../chunk-WE6NZ2ZK.js";import"../chunk-NYAHHQ3A.js";import"../chunk-PKWQDQLT.js";import"../chunk-4BZ377KV.js";export{a as TigrisAuthClient,b as getAuthClient};
|
package/dist/auth/config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{a,b,c}from"../chunk-NYAHHQ3A.js";import"../chunk-4BZ377KV.js";export{b as TIGRIS_CLAIMS_NAMESPACE,a as getAuth0Config,c as getTigrisConfig};
|
package/dist/auth/s3-client.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a,b,c,d}from"../chunk-TQWT7ROJ.js";import"../chunk-WE6NZ2ZK.js";import"../chunk-NYAHHQ3A.js";import"../chunk-PKWQDQLT.js";import"../chunk-4BZ377KV.js";export{a as getLoginMethod,c as getS3Client,b as getStorageConfig,d as isAuthenticated};
|
package/dist/auth/storage.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t}from"../chunk-PKWQDQLT.js";import"../chunk-4BZ377KV.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",e="https://iam.storageapi.dev";export{t as a,e as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{readFileSync as p}from"fs";import{join as a,dirname as c}from"path";import{fileURLToPath as m}from"url";import*as o from"yaml";var l=m(import.meta.url),u=c(l),s=null,f=a(u,"specs.yaml");function d(){if(!s){let n=p(f,"utf8");s=o.parse(n,{schema:"core"})}return s}function g(n,e){let r=d().commands.find(t=>t.name===n);return r?e&&r.operations?r.operations.find(t=>t.name===e)||null:r:null}function C(n,e,i){let r=g(n,i);return!r||!r.arguments?null:r.arguments.find(t=>t.name===e)||null}function h(n){return n.options?Array.isArray(n.options)&&typeof n.options[0]=="string"?n.options.map(e=>({name:e,message:e.charAt(0).toUpperCase()+e.slice(1),value:e})):Array.isArray(n.options)&&typeof n.options[0]=="object"?n.options.map(e=>({name:e.value,message:e.description?`${e.name} - ${e.description}`:e.name,value:e.value})):null:null}export{d as a,g as b,C as c,h as d};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as u}from"./chunk-4LGKN5DA.js";var a={success:"\u2714",failure:"\u2716",hint:"\u2192"};function r(){return process.stdout.isTTY===!0}function t(n){let s=u(n.command,n.operation);if(s)return s.messages}function o(n,s){let e=n;return e=e.replace(/\\n/g,`
|
|
2
|
+
`),s&&(e=e.replace(/\{\{(\w+)\}\}/g,(i,c)=>{let g=s[c];return g!==void 0?String(g):`{{${c}}}`})),e}function l(n,s){if(!r())return;let e=t(n);e?.onStart&&console.log(o(e.onStart,s))}function f(n,s){if(!r())return;let e=t(n);e?.onSuccess&&console.log(`${a.success} ${o(e.onSuccess,s)}`)}function m(n,s,e){let i=t(n);i?.onFailure&&console.error(`${a.failure} ${o(i.onFailure,e)}`),s&&console.error(` ${s}`)}function d(n,s){if(!r())return;let e=t(n);e?.onEmpty&&console.log(o(e.onEmpty,s))}function M(n,s){if(!r())return;let e=t(n);e?.onAlreadyDone&&console.log(o(e.onAlreadyDone,s))}function x(n,s){if(!r())return;let e=t(n);e?.hint&&console.log(`${a.hint} ${o(e.hint,s)}`)}function C(n,s){return{command:n,operation:s}}export{l as a,f as b,m as c,d,M as e,x as f,C as g};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as u,b as o,c as m,g}from"./chunk-A3TXP5Y2.js";import{m as i,o as d,r as y}from"./chunk-PKWQDQLT.js";import{a as n}from"./chunk-4BZ377KV.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,6 @@
|
|
|
1
|
+
function k(n){if(n===0)return"0 B";let e=["B","KB","MB","GB","TB"],t=Math.floor(Math.log(n)/Math.log(1024));return`${(n/Math.pow(1024,t)).toFixed(t>0?1:0)} ${e[t]}`}function l(n){return JSON.stringify(n,null,2)}function m(n){return String(n).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function w(n,e=" "){return Object.entries(n).map(([t,r])=>`${e}<${t}>${m(r)}</${t}>`).join(`
|
|
2
|
+
`)}function T(n,e,t){let r=[`<${e}>`];return n.forEach(i=>{r.push(` <${t}>`),r.push(w(i," ")),r.push(` </${t}>`)}),r.push(`</${e}>`),r.join(`
|
|
3
|
+
`)}function f(n){if(n==null)return"";if(n instanceof Date)return h(n);if(typeof n=="string"){let e=new Date(n);if(!isNaN(e.getTime())&&n.includes("T"))return h(e)}return String(n)}function h(n){return new Intl.DateTimeFormat(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}).format(n)}function x(n,e){return e.map(t=>{if(t.width)return t.width;let r=t.header.length,i=n.reduce((a,u)=>{let s=f(u[t.key]);return Math.max(a,s.length)},0);return Math.max(r,i)})}function j(n,e){let t=[],r=x(n,e),i="\u250C"+r.map(o=>"\u2500".repeat(o+2)).join("\u252C")+"\u2510",a="\u251C"+r.map(o=>"\u2500".repeat(o+2)).join("\u253C")+"\u2524",u="\u2514"+r.map(o=>"\u2500".repeat(o+2)).join("\u2534")+"\u2518";t.push(`
|
|
4
|
+
`+i);let s="\u2502 "+e.map((o,c)=>o.header.padEnd(r[c])).join(" \u2502 ")+" \u2502";return t.push(s),t.push(a),n.forEach(o=>{let c=e.map((g,d)=>{let p=f(o[g.key]);return g.align==="right"?p.padStart(r[d]):p.padEnd(r[d])});t.push("\u2502 "+c.join(" \u2502 ")+" \u2502")}),t.push(u+`
|
|
5
|
+
`),t.join(`
|
|
6
|
+
`)}function $(n,e,t,r,i){switch(e){case"json":return l(n);case"xml":return T(n,t,r);default:return j(n,i)}}export{k as a,l as b,w as c,T as d,j as e,$ as f};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{list as g}from"@tigrisdata/storage";function a(i){let t=i.split("/");return{bucket:t[0],path:t.slice(1).join("/")}}async function p(i,t,s){let{data:e}=await g({prefix:`${t}/`,limit:1,config:{...s,bucket:i}});return!!(e?.items&&e.items.length>0)}function f(i,t){return{source:a(i),destination:a(t)}}async function d(i,t,s){let e=[],n;do{let{data:r,error:o}=await g({prefix:t,paginationToken:n,config:{...s,bucket:i}});if(o)return{items:e,error:o};r?.items&&e.push(...r.items),n=r?.hasMore?r.paginationToken:void 0}while(n);return{items:e}}export{a,p as b,f as c,d};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{a as s,b as e,c,e as g,f as l,g as u}from"./chunk-A3TXP5Y2.js";import{b as a}from"./chunk-WE6NZ2ZK.js";import{f as r}from"./chunk-PKWQDQLT.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};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import{a as b}from"./chunk-4LGKN5DA.js";import{Command as E}from"commander";import{existsSync as k}from"fs";import{join as f,dirname as q}from"path";import{fileURLToPath as R}from"url";var w="2.6.1";process.on("unhandledRejection",e=>{(e===""||e===void 0)&&(console.error(`
|
|
2
|
+
Operation cancelled`),process.exit(1)),console.error(`
|
|
3
|
+
Error:`,e instanceof Error?e.message:e),process.exit(1)});process.on("uncaughtException",e=>{console.error(`
|
|
4
|
+
Error:`,e.message),process.exit(1)});var P=R(import.meta.url),d=q(P),l=b();function y(e,t){return(t?[f(d,"lib",e,`${t}.js`),f(d,"lib",e,t,"index.js")]:[f(d,"lib",`${e}.js`),f(d,"lib",e,"index.js")]).some(s=>k(s))}function C(e){let t;e.type==="positional"?t=` ${e.name}`:(t=` --${e.name}`,e.alias&&e.alias.length===1&&(t+=`, -${e.alias}`));let n=26,s=t.length>=n?t+" ":t.padEnd(n),i=e.description;return e.options&&(Array.isArray(e.options)&&typeof e.options[0]=="string"?i+=` (options: ${e.options.join(", ")})`:i+=` (options: ${e.options.map(o=>o.value).join(", ")})`),e.default&&(i+=` [default: ${e.default}]`),e.required&&(i+=" [required]"),e["required-when"]&&(i+=` [required when: ${e["required-when"]}]`),e.multiple&&(i+=" [multiple values: comma-separated]"),e.type==="positional"&&(i+=" [positional argument]"),e.examples&&e.examples.length>0&&(i+=` (examples: ${e.examples.join(", ")})`),`${s}${i}`}function v(e){if(console.log(`
|
|
5
|
+
${l.name} ${e.name} - ${e.description}
|
|
6
|
+
`),e.operations&&e.operations.length>0){let t=e.operations.filter(n=>y(e.name,n.name));t.length>0&&(console.log("Operations:"),t.forEach(n=>{let s=` ${n.name}`;if(n.alias){let o=Array.isArray(n.alias)?n.alias:[n.alias];s+=` (${o.join(", ")})`}let i=s.padEnd(24);console.log(`${i}${n.description}`)}),console.log())}e.arguments&&e.arguments.length>0&&(console.log("Arguments:"),e.arguments.forEach(t=>{console.log(C(t))}),console.log()),console.log(`Use "${l.name} ${e.name} <operation> help" for more information about an operation.`)}function D(e,t){console.log(`
|
|
7
|
+
${l.name} ${e.name} ${t.name} - ${t.description}
|
|
8
|
+
`),t.arguments&&t.arguments.length>0&&(console.log("Arguments:"),t.arguments.forEach(n=>{console.log(C(n))}),console.log())}function V(e){return y(e.name)?!0:e.operations?e.operations.some(t=>y(e.name,t.name)):!1}function x(){console.log(`Tigris CLI Version: ${w}
|
|
9
|
+
`),console.log(`Usage: tigris [command] [options]
|
|
10
|
+
`),console.log("Commands:"),l.commands.filter(V).forEach(t=>{let n=` ${t.name}`;t.alias&&(n+=` (${t.alias})`);let s=n.padEnd(24);console.log(`${s}${t.description}`)}),console.log(`
|
|
11
|
+
Use "${l.name} <command> help" for more information about a command.`)}function m(e,t=[]){t.forEach(n=>{if(n.type==="positional"){let s=n.required?`<${n.name}>`:`[${n.name}]`;e.argument(s,n.description)}else{let i=n.alias&&n.alias.length===1?`-${n.alias}, --${n.name}`:`--${n.name}`;n.type==="flag"||(n.type==="boolean"?i+=" [value]":n.options?i+=" <value>":i+=n.required||n["required-when"]?" <value>":" [value]"),e.option(i,n.description,n.default)}})}function g(e,t){for(let n of e){if(n["required-when"]){let[s,i]=n["required-when"].split("="),o=h(t,s,e),r=h(t,n.name,e);if(o===i&&!r)return console.error(`--${n.name} is required when --${s} is ${i}`),!1}if(n.required&&!h(t,n.name,e))return console.error(`--${n.name} is required`),!1}return!0}function h(e,t,n){if(n){let i=n.find(o=>o.name===t);if(i&&i.alias){let o=i.alias.charAt(0).toUpperCase()+i.alias.slice(1);if(e[o]!==void 0)return e[o]}}let s=[t,t.replace(/-/g,""),t.replace(/-/g,"").toLowerCase(),t.charAt(0).toUpperCase(),U(t)];for(let i of s)if(e[i]!==void 0)return e[i]}function U(e){return e.replace(/-([a-z])/g,(t,n)=>n.toUpperCase())}async function T(e,t){let n=t?[`./lib/${e}/${t}.js`,`./lib/${e}/${t}/index.js`]:[`./lib/${e}.js`,`./lib/${e}/index.js`];for(let i of n){let o=await import(i).catch(()=>null);if(o)return{module:o,error:null}}return{module:null,error:`Command not found: ${t?`${e} ${t}`:e}`}}async function $(e,t,n=[],s={},i){if(i){let A=i.replace(/\\n/g,`
|
|
12
|
+
`);console.log(A)}let{module:o,error:r}=await T(e,t);(r||!o)&&(console.error(r),process.exit(1));let a=t||e,p=o.default||o[a];typeof p!="function"&&(console.error(`Command not implemented: ${a}`),process.exit(1)),await p({...s,_positional:n})}var u=new E;u.name(l.name).description(l.description).version(l.version);function c(e,t,n){let s;"optsWithGlobals"in n&&typeof n.optsWithGlobals=="function"?s=n.optsWithGlobals():"opts"in n&&typeof n.opts=="function"?s=n.opts():s=n;let i={...s};return e.filter(r=>r.type==="positional").forEach((r,a)=>{t[a]!==void 0&&(r.multiple?i[r.name]=t[a].split(",").map(p=>p.trim()):i[r.name]=t[a])}),e.forEach(r=>{r.multiple&&r.type!=="positional"&&i[r.name]&&typeof i[r.name]=="string"&&(i[r.name]=i[r.name].split(",").map(a=>a.trim()))}),i}l.commands.forEach(e=>{let t=u.command(e.name).description(e.description);if(e.alias&&t.alias(e.alias),e.operations&&e.operations.length>0)if(e.operations.forEach(n=>{let s=t.command(n.name).description(n.description);n.alias&&(Array.isArray(n.alias)?n.alias:[n.alias]).forEach(o=>s.alias(o)),m(s,n.arguments),s.action(async(...i)=>{let o=i.pop(),r=i;n.arguments&&!g(n.arguments,c(n.arguments,r,o))||await $(e.name,n.name,r,c(n.arguments||[],r,o),n.message)}),s.command("help").description("Show help for this operation").action(()=>{D(e,n)})}),e.default){let n=e.operations?.find(s=>s.name===e.default);if(n){m(t,e.arguments),m(t,n.arguments);let s=[...e.arguments||[],...n.arguments||[]];t.action(async(...i)=>{let o=i.pop(),r=i;s.length>0&&!g(s,c(s,r,o))||await $(e.name,n.name,r,c(s,r,o),e.message||n.message)})}}else t.action(()=>{v(e)});else m(t,e.arguments),t.action(async(...n)=>{let s=n.pop(),i=n;e.arguments&&!g(e.arguments,c(e.arguments,i,s))||await $(e.name,void 0,i,c(e.arguments||[],i,s),e.message)});t.command("help").description("Show help for this command").action(()=>{v(e)})});u.command("help").description("Show general help").action(()=>{x()});u.action(()=>{x()});u.parse();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function t(n,r,o){for(let e of r)if(n[e]!==void 0)return n[e];return o}function f(n){if(n!==void 0)return typeof n=="boolean"?n:n==="true"}export{t as a,f as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as n,b as i}from"./chunk-4BZ377KV.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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as l}from"./chunk-4BZ377KV.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{b as f}from"./chunk-WE6NZ2ZK.js";import{a as A,c as w}from"./chunk-NYAHHQ3A.js";import{g as d,h as g,i as l,j as p,l as o,s as h}from"./chunk-PKWQDQLT.js";import{a as u}from"./chunk-4BZ377KV.js";import{S3Client as a}from"@aws-sdk/client-s3";import{fromIni as C}from"@aws-sdk/credential-providers";var r=w(),T=A();async function y(){return h()}async function O(){if(l()){let e=process.env.AWS_PROFILE||"default",s=await p(e),i=await C({profile:e})();return{accessKeyId:i.accessKeyId,secretAccessKey:i.secretAccessKey,endpoint:s.endpoint||r.endpoint||u,iamEndpoint:s.iamEndpoint||r.iamEndpoint}}let c=await y();if(c==="oauth"){let s=await f().getAccessToken();if(!d())throw new Error('No organization selected. Please run "tigris orgs select" first.');return{sessionToken:s,accessKeyId:"",secretAccessKey:"",endpoint:r.endpoint,organizationId:d()??void 0,iamEndpoint:r.iamEndpoint,authDomain:T.domain}}if(c==="credentials"){let e=o();if(e)return{accessKeyId:e.accessKeyId,secretAccessKey:e.secretAccessKey,endpoint:e.endpoint}}let t=g();if(t)return{accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,endpoint:t.endpoint};let n=o();if(n)return{accessKeyId:n.accessKeyId,secretAccessKey:n.secretAccessKey,endpoint:n.endpoint};throw new Error('Not authenticated. Please run "tigris login" or "tigris configure" first.')}async function v(){if(l()){let e=process.env.AWS_PROFILE||"default",s=await p(e);return new a({region:"auto",endpoint:s.endpoint||r.endpoint||u,credentials:C({profile:e})})}let c=await y();if(c==="oauth"){let s=await f().getAccessToken(),i=d();if(!i)throw new Error('No organization selected. Please run "tigris orgs select" first.');let K=new a({region:"auto",endpoint:r.endpoint,credentials:{sessionToken:s,accessKeyId:"",secretAccessKey:""}});return K.middlewareStack.add(I=>async m=>{let E=m.request;return E.headers["x-Tigris-Namespace"]=i,await I(m)},{name:"x-Tigris-Namespace-Middleware",step:"build",override:!0}),K}if(c==="credentials"){let e=o();if(e)return new a({region:"auto",endpoint:e.endpoint,credentials:{accessKeyId:e.accessKeyId,secretAccessKey:e.secretAccessKey}})}let t=g();if(t)return new a({region:"auto",endpoint:t.endpoint,credentials:{accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey}});let n=o();if(n)return new a({region:"auto",endpoint:n.endpoint,credentials:{accessKeyId:n.accessKeyId,secretAccessKey:n.secretAccessKey}});throw new Error('Not authenticated. Please run "tigris login" or "tigris configure" first.')}async function z(){return l()||await y()!==null||g()!==null||o()!==null}export{y as a,O as b,v as c,z as d};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as g,b as k}from"./chunk-NYAHHQ3A.js";import{a as c,b as s,c as l,d as p,e as u,r as h}from"./chunk-PKWQDQLT.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=g(),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),h("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))[k];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;p(n)}catch{}}async getOrganizations(){return await this.getAccessToken(),u()}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/cli.js
CHANGED
|
@@ -1,13 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import
|
|
3
|
-
Operation cancelled`),process.exit(1)),console.error(`
|
|
4
|
-
Error:`,e instanceof Error?e.message:e),process.exit(1)});process.on("uncaughtException",e=>{console.error(`
|
|
5
|
-
Error:`,e.message),process.exit(1)});var D=P(import.meta.url),p=R(D),V=u(p,"specs.yaml"),M=k(V,"utf8"),l=C.parse(M);function y(e,t){return(t?[u(p,"lib",e,`${t}.js`),u(p,"lib",e,t,"index.js")]:[u(p,"lib",`${e}.js`),u(p,"lib",e,"index.js")]).some(i=>q(i))}function v(e){let t;e.type==="positional"?t=` ${e.name}`:(t=` --${e.name}`,e.alias&&e.alias.length===1&&(t+=`, -${e.alias}`));let n=26,i=t.length>=n?t+" ":t.padEnd(n),s=e.description;return e.options&&(Array.isArray(e.options)&&typeof e.options[0]=="string"?s+=` (options: ${e.options.join(", ")})`:s+=` (options: ${e.options.map(o=>o.value).join(", ")})`),e.default&&(s+=` [default: ${e.default}]`),e.required&&(s+=" [required]"),e["required-when"]&&(s+=` [required when: ${e["required-when"]}]`),e.multiple&&(s+=" [multiple values: comma-separated]"),e.type==="positional"&&(s+=" [positional argument]"),e.examples&&e.examples.length>0&&(s+=` (examples: ${e.examples.join(", ")})`),`${i}${s}`}function w(e){if(console.log(`
|
|
6
|
-
${l.name} ${e.name} - ${e.description}
|
|
7
|
-
`),e.operations&&e.operations.length>0){let t=e.operations.filter(n=>y(e.name,n.name));t.length>0&&(console.log("Operations:"),t.forEach(n=>{let i=` ${n.name}`;if(n.alias){let o=Array.isArray(n.alias)?n.alias:[n.alias];i+=` (${o.join(", ")})`}let s=i.padEnd(24);console.log(`${s}${n.description}`)}),console.log())}e.arguments&&e.arguments.length>0&&(console.log("Arguments:"),e.arguments.forEach(t=>{console.log(v(t))}),console.log()),console.log(`Use "${l.name} ${e.name} <operation> help" for more information about an operation.`)}function U(e,t){console.log(`
|
|
8
|
-
${l.name} ${e.name} ${t.name} - ${t.description}
|
|
9
|
-
`),t.arguments&&t.arguments.length>0&&(console.log("Arguments:"),t.arguments.forEach(n=>{console.log(v(n))}),console.log())}function T(e){return y(e.name)?!0:e.operations?e.operations.some(t=>y(e.name,t.name)):!1}function A(){console.log(`Tigris CLI Version: ${b}
|
|
10
|
-
`),console.log(`Usage: tigris [command] [options]
|
|
11
|
-
`),console.log("Commands:"),l.commands.filter(T).forEach(t=>{let n=` ${t.name}`;t.alias&&(n+=` (${t.alias})`);let i=n.padEnd(24);console.log(`${i}${t.description}`)}),console.log(`
|
|
12
|
-
Use "${l.name} <command> help" for more information about a command.`)}function m(e,t=[]){t.forEach(n=>{if(n.type==="positional"){let i=n.required?`<${n.name}>`:`[${n.name}]`;e.argument(i,n.description)}else{let s=n.alias&&n.alias.length===1?`-${n.alias}, --${n.name}`:`--${n.name}`;n.type==="flag"||(n.type==="boolean"?s+=" [value]":n.options?s+=" <value>":s+=n.required||n["required-when"]?" <value>":" [value]"),e.option(s,n.description,n.default)}})}function g(e,t){for(let n of e){if(n["required-when"]){let[i,s]=n["required-when"].split("="),o=h(t,i,e),r=h(t,n.name,e);if(o===s&&!r)return console.error(`--${n.name} is required when --${i} is ${s}`),!1}if(n.required&&!h(t,n.name,e))return console.error(`--${n.name} is required`),!1}return!0}function h(e,t,n){if(n){let s=n.find(o=>o.name===t);if(s&&s.alias){let o=s.alias.charAt(0).toUpperCase()+s.alias.slice(1);if(e[o]!==void 0)return e[o]}}let i=[t,t.replace(/-/g,""),t.replace(/-/g,"").toLowerCase(),t.charAt(0).toUpperCase(),_(t)];for(let s of i)if(e[s]!==void 0)return e[s]}function _(e){return e.replace(/-([a-z])/g,(t,n)=>n.toUpperCase())}async function H(e,t){let n=t?[`./lib/${e}/${t}.js`,`./lib/${e}/${t}/index.js`]:[`./lib/${e}.js`,`./lib/${e}/index.js`];for(let s of n){let o=await import(s).catch(()=>null);if(o)return{module:o,error:null}}return{module:null,error:`Command not found: ${t?`${e} ${t}`:e}`}}async function $(e,t,n=[],i={},s){if(s){let x=s.replace(/\\n/g,`
|
|
13
|
-
`);console.log(x)}let{module:o,error:r}=await H(e,t);(r||!o)&&(console.error(r),process.exit(1));let a=t||e,d=o.default||o[a];typeof d!="function"&&(console.error(`Command not implemented: ${a}`),process.exit(1)),await d({...i,_positional:n})}var f=new E;f.name(l.name).description(l.description).version(l.version);function c(e,t,n){let i;"optsWithGlobals"in n&&typeof n.optsWithGlobals=="function"?i=n.optsWithGlobals():"opts"in n&&typeof n.opts=="function"?i=n.opts():i=n;let s={...i};return e.filter(r=>r.type==="positional").forEach((r,a)=>{t[a]!==void 0&&(r.multiple?s[r.name]=t[a].split(",").map(d=>d.trim()):s[r.name]=t[a])}),e.forEach(r=>{r.multiple&&r.type!=="positional"&&s[r.name]&&typeof s[r.name]=="string"&&(s[r.name]=s[r.name].split(",").map(a=>a.trim()))}),s}l.commands.forEach(e=>{let t=f.command(e.name).description(e.description);if(e.alias&&t.alias(e.alias),e.operations&&e.operations.length>0)if(e.operations.forEach(n=>{let i=t.command(n.name).description(n.description);n.alias&&(Array.isArray(n.alias)?n.alias:[n.alias]).forEach(o=>i.alias(o)),m(i,n.arguments),i.action(async(...s)=>{let o=s.pop(),r=s;n.arguments&&!g(n.arguments,c(n.arguments,r,o))||await $(e.name,n.name,r,c(n.arguments||[],r,o),n.message)}),i.command("help").description("Show help for this operation").action(()=>{U(e,n)})}),e.default){let n=e.operations?.find(i=>i.name===e.default);if(n){m(t,e.arguments),m(t,n.arguments);let i=[...e.arguments||[],...n.arguments||[]];t.action(async(...s)=>{let o=s.pop(),r=s;i.length>0&&!g(i,c(i,r,o))||await $(e.name,n.name,r,c(i,r,o),e.message||n.message)})}}else t.action(()=>{w(e)});else m(t,e.arguments),t.action(async(...n)=>{let i=n.pop(),s=n;e.arguments&&!g(e.arguments,c(e.arguments,s,i))||await $(e.name,void 0,s,c(e.arguments||[],s,i),e.message)});t.command("help").description("Show help for this command").action(()=>{w(e)})});f.command("help").description("Show general help").action(()=>{A()});f.action(()=>{A()});f.parse();
|
|
2
|
+
import"./chunk-IY46B353.js";import"./chunk-4LGKN5DA.js";
|
package/dist/constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{a,b}from"./chunk-4BZ377KV.js";export{b as DEFAULT_IAM_ENDPOINT,a as DEFAULT_STORAGE_ENDPOINT};
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
Operation cancelled`),process.exit(1)),console.error(`
|
|
3
|
-
Error:`,e instanceof Error?e.message:e),process.exit(1)});process.on("uncaughtException",e=>{console.error(`
|
|
4
|
-
Error:`,e.message),process.exit(1)});var D=P(import.meta.url),u=R(D),V=p(u,"specs.yaml"),M=k(V,"utf8"),l=C.parse(M);function y(e,t){return(t?[p(u,"lib",e,`${t}.js`),p(u,"lib",e,t,"index.js")]:[p(u,"lib",`${e}.js`),p(u,"lib",e,"index.js")]).some(i=>q(i))}function v(e){let t;e.type==="positional"?t=` ${e.name}`:(t=` --${e.name}`,e.alias&&e.alias.length===1&&(t+=`, -${e.alias}`));let n=26,i=t.length>=n?t+" ":t.padEnd(n),s=e.description;return e.options&&(Array.isArray(e.options)&&typeof e.options[0]=="string"?s+=` (options: ${e.options.join(", ")})`:s+=` (options: ${e.options.map(o=>o.value).join(", ")})`),e.default&&(s+=` [default: ${e.default}]`),e.required&&(s+=" [required]"),e["required-when"]&&(s+=` [required when: ${e["required-when"]}]`),e.multiple&&(s+=" [multiple values: comma-separated]"),e.type==="positional"&&(s+=" [positional argument]"),e.examples&&e.examples.length>0&&(s+=` (examples: ${e.examples.join(", ")})`),`${i}${s}`}function w(e){if(console.log(`
|
|
5
|
-
${l.name} ${e.name} - ${e.description}
|
|
6
|
-
`),e.operations&&e.operations.length>0){let t=e.operations.filter(n=>y(e.name,n.name));t.length>0&&(console.log("Operations:"),t.forEach(n=>{let i=` ${n.name}`;if(n.alias){let o=Array.isArray(n.alias)?n.alias:[n.alias];i+=` (${o.join(", ")})`}let s=i.padEnd(24);console.log(`${s}${n.description}`)}),console.log())}e.arguments&&e.arguments.length>0&&(console.log("Arguments:"),e.arguments.forEach(t=>{console.log(v(t))}),console.log()),console.log(`Use "${l.name} ${e.name} <operation> help" for more information about an operation.`)}function U(e,t){console.log(`
|
|
7
|
-
${l.name} ${e.name} ${t.name} - ${t.description}
|
|
8
|
-
`),t.arguments&&t.arguments.length>0&&(console.log("Arguments:"),t.arguments.forEach(n=>{console.log(v(n))}),console.log())}function T(e){return y(e.name)?!0:e.operations?e.operations.some(t=>y(e.name,t.name)):!1}function A(){console.log(`Tigris CLI Version: ${b}
|
|
9
|
-
`),console.log(`Usage: tigris [command] [options]
|
|
10
|
-
`),console.log("Commands:"),l.commands.filter(T).forEach(t=>{let n=` ${t.name}`;t.alias&&(n+=` (${t.alias})`);let i=n.padEnd(24);console.log(`${i}${t.description}`)}),console.log(`
|
|
11
|
-
Use "${l.name} <command> help" for more information about a command.`)}function m(e,t=[]){t.forEach(n=>{if(n.type==="positional"){let i=n.required?`<${n.name}>`:`[${n.name}]`;e.argument(i,n.description)}else{let s=n.alias&&n.alias.length===1?`-${n.alias}, --${n.name}`:`--${n.name}`;n.type==="flag"||(n.type==="boolean"?s+=" [value]":n.options?s+=" <value>":s+=n.required||n["required-when"]?" <value>":" [value]"),e.option(s,n.description,n.default)}})}function g(e,t){for(let n of e){if(n["required-when"]){let[i,s]=n["required-when"].split("="),o=h(t,i,e),r=h(t,n.name,e);if(o===s&&!r)return console.error(`--${n.name} is required when --${i} is ${s}`),!1}if(n.required&&!h(t,n.name,e))return console.error(`--${n.name} is required`),!1}return!0}function h(e,t,n){if(n){let s=n.find(o=>o.name===t);if(s&&s.alias){let o=s.alias.charAt(0).toUpperCase()+s.alias.slice(1);if(e[o]!==void 0)return e[o]}}let i=[t,t.replace(/-/g,""),t.replace(/-/g,"").toLowerCase(),t.charAt(0).toUpperCase(),_(t)];for(let s of i)if(e[s]!==void 0)return e[s]}function _(e){return e.replace(/-([a-z])/g,(t,n)=>n.toUpperCase())}async function H(e,t){let n=t?[`./lib/${e}/${t}.js`,`./lib/${e}/${t}/index.js`]:[`./lib/${e}.js`,`./lib/${e}/index.js`];for(let s of n){let o=await import(s).catch(()=>null);if(o)return{module:o,error:null}}return{module:null,error:`Command not found: ${t?`${e} ${t}`:e}`}}async function $(e,t,n=[],i={},s){if(s){let x=s.replace(/\\n/g,`
|
|
12
|
-
`);console.log(x)}let{module:o,error:r}=await H(e,t);(r||!o)&&(console.error(r),process.exit(1));let a=t||e,d=o.default||o[a];typeof d!="function"&&(console.error(`Command not implemented: ${a}`),process.exit(1)),await d({...i,_positional:n})}var f=new E;f.name(l.name).description(l.description).version(l.version);function c(e,t,n){let i;"optsWithGlobals"in n&&typeof n.optsWithGlobals=="function"?i=n.optsWithGlobals():"opts"in n&&typeof n.opts=="function"?i=n.opts():i=n;let s={...i};return e.filter(r=>r.type==="positional").forEach((r,a)=>{t[a]!==void 0&&(r.multiple?s[r.name]=t[a].split(",").map(d=>d.trim()):s[r.name]=t[a])}),e.forEach(r=>{r.multiple&&r.type!=="positional"&&s[r.name]&&typeof s[r.name]=="string"&&(s[r.name]=s[r.name].split(",").map(a=>a.trim()))}),s}l.commands.forEach(e=>{let t=f.command(e.name).description(e.description);if(e.alias&&t.alias(e.alias),e.operations&&e.operations.length>0)if(e.operations.forEach(n=>{let i=t.command(n.name).description(n.description);n.alias&&(Array.isArray(n.alias)?n.alias:[n.alias]).forEach(o=>i.alias(o)),m(i,n.arguments),i.action(async(...s)=>{let o=s.pop(),r=s;n.arguments&&!g(n.arguments,c(n.arguments,r,o))||await $(e.name,n.name,r,c(n.arguments||[],r,o),n.message)}),i.command("help").description("Show help for this operation").action(()=>{U(e,n)})}),e.default){let n=e.operations?.find(i=>i.name===e.default);if(n){m(t,e.arguments),m(t,n.arguments);let i=[...e.arguments||[],...n.arguments||[]];t.action(async(...s)=>{let o=s.pop(),r=s;i.length>0&&!g(i,c(i,r,o))||await $(e.name,n.name,r,c(i,r,o),e.message||n.message)})}}else t.action(()=>{w(e)});else m(t,e.arguments),t.action(async(...n)=>{let i=n.pop(),s=n;e.arguments&&!g(e.arguments,c(e.arguments,s,i))||await $(e.name,void 0,s,c(e.arguments||[],s,i),e.message)});t.command("help").description("Show help for this command").action(()=>{w(e)})});f.command("help").description("Show general help").action(()=>{A()});f.action(()=>{A()});f.parse();
|
|
1
|
+
import"./chunk-IY46B353.js";import"./chunk-4LGKN5DA.js";
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Run "tigris login oauth" first.`),process.exit(1));let r=x();await r.isAuthenticated()||(d(a,'Not authenticated. Run "tigris login oauth" first.'),process.exit(1));let X=await r.getAccessToken(),Z=k(),ee=T(),M={sessionToken:X,organizationId:Z??void 0,iamEndpoint:ee.iamEndpoint};if(o){let{error:l}=await Ce(e,{config:M});l&&(d(a,l.message),process.exit(1)),N(a);return}let m;if(t)m=[{bucket:"*",role:"NamespaceAdmin"}];else{i.length===0&&(d(a,"At least one bucket name is required (or use --admin or --revoke-roles)"),process.exit(1)),s.length===0&&(d(a,"At least one role is required (or use --admin or --revoke-roles)"),process.exit(1));for(let l of s)J.includes(l)||(d(a,`Invalid role "${l}". Valid roles are: ${J.join(", ")}`),process.exit(1));s.length===1?m=i.map(l=>({bucket:l,role:s[0]})):s.length===i.length?m=i.map((l,ne)=>({bucket:l,role:s[ne]})):(d(a,`Number of roles (${s.length}) must be 1 or match number of buckets (${i.length})`),process.exit(1))}let{error:D}=await ye(e,m,{config:M});D&&(d(a,D.message),process.exit(1)),N(a)}export{Te as default};
|
|
1
|
+
import{a as R,b as l,c as t,g as b}from"../../chunk-A3TXP5Y2.js";import"../../chunk-4LGKN5DA.js";import{a as A}from"../../chunk-TQWT7ROJ.js";import{b as k}from"../../chunk-WE6NZ2ZK.js";import{c as h}from"../../chunk-NYAHHQ3A.js";import{a as n}from"../../chunk-JRALYIRA.js";import{g as p}from"../../chunk-PKWQDQLT.js";import"../../chunk-4BZ377KV.js";import{assignBucketRoles as C,revokeAllBucketRoles as N}from"@tigrisdata/iam";var e=b("access-keys","assign"),x=["Editor","ReadOnly","NamespaceAdmin"];function y(o){return o?Array.isArray(o)?o:[o]:[]}async function E(o){R(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 A()!=="oauth"&&(t(e,`Bucket roles can only be managed when logged in via OAuth.
|
|
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=p(),w=h(),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,3 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Run "tigris login oauth" first.`),process.exit(1));let o=k();await o.isAuthenticated()||(p(d,'Not authenticated. Run "tigris login oauth" first.'),process.exit(1));let s=await o.getAccessToken(),r=w(),a=h(),{data:C,error:P}=await de(e,{config:{sessionToken:s,organizationId:r??void 0,iamEndpoint:a.iamEndpoint}});P&&(p(d,P.message),process.exit(1)),console.log(` Name: ${C.name}`),console.log(` Access Key ID: ${C.id}`),console.log(` Secret Access Key: ${C.secret}`),console.log(""),console.log(" Save these credentials securely. The secret will not be shown again."),V(d)}export{le as default};
|
|
1
|
+
import{a as m,b as d,c as t,g as u}from"../../chunk-A3TXP5Y2.js";import"../../chunk-4LGKN5DA.js";import{a as l}from"../../chunk-TQWT7ROJ.js";import{b as g}from"../../chunk-WE6NZ2ZK.js";import{c as a}from"../../chunk-NYAHHQ3A.js";import{a as c}from"../../chunk-JRALYIRA.js";import{g as r}from"../../chunk-PKWQDQLT.js";import"../../chunk-4BZ377KV.js";import{createAccessKey as y}from"@tigrisdata/iam";var e=u("access-keys","create");async function w(f){m(e);let i=c(f,["name"]);i||(t(e,"Access key name is required"),process.exit(1)),await l()!=="oauth"&&(t(e,`Access keys can only be created when logged in via OAuth.
|
|
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 p=await n.getAccessToken(),h=r(),A=a(),{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."),d(e)}export{w as default};
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Run "tigris login oauth" first.`),process.exit(1));let o=E();await o.isAuthenticated()||(p(d,'Not authenticated. Run "tigris login oauth" first.'),process.exit(1));let s=await o.getAccessToken(),r=_(),a=h(),{error:O}=await ce(e,{config:{sessionToken:s,organizationId:r??void 0,iamEndpoint:a.iamEndpoint}});O&&(p(d,O.message),process.exit(1)),Y(d)}export{de as default};
|
|
1
|
+
import{a as d,b as m,c as e,g as f}from"../../chunk-A3TXP5Y2.js";import"../../chunk-4LGKN5DA.js";import{a as g}from"../../chunk-TQWT7ROJ.js";import{b as a}from"../../chunk-WE6NZ2ZK.js";import{c}from"../../chunk-NYAHHQ3A.js";import{a as s}from"../../chunk-JRALYIRA.js";import{g as r}from"../../chunk-PKWQDQLT.js";import"../../chunk-4BZ377KV.js";import{removeAccessKey as A}from"@tigrisdata/iam";var t=f("access-keys","delete");async function k(u){d(t);let i=s(u,["id"]);i||(e(t,"Access key ID is required"),process.exit(1)),await g()!=="oauth"&&(e(t,`Access keys can only be deleted when logged in via OAuth.
|
|
2
|
+
Run "tigris login oauth" first.`),process.exit(1));let o=a();await o.isAuthenticated()||(e(t,'Not authenticated. Run "tigris login oauth" first.'),process.exit(1));let p=await o.getAccessToken(),h=r(),l=c(),{error:n}=await A(i,{config:{sessionToken:p,organizationId:h??void 0,iamEndpoint:l.iamEndpoint}});n&&(e(t,n.message),process.exit(1)),m(t)}export{k as default};
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Run "tigris login oauth" first.`),process.exit(1));let o=k();await o.isAuthenticated()||(f(l,'Not authenticated. Run "tigris login oauth" first.'),process.exit(1));let s=await o.getAccessToken(),r=w(),a=C(),{data:c,error:P}=await le(e,{config:{sessionToken:s,organizationId:r??void 0,iamEndpoint:a.iamEndpoint}});if(P&&(f(l,P.message),process.exit(1)),console.log(` Name: ${c.name}`),console.log(` ID: ${c.id}`),console.log(` Status: ${c.status}`),console.log(` Created: ${c.createdAt}`),console.log(` Organization: ${c.organizationId}`),c.roles&&c.roles.length>0){console.log(" Roles:");for(let N of c.roles)console.log(` - ${N.bucket}: ${N.role}`)}else console.log(" Roles: None");q(l)}export{ge as default};
|
|
1
|
+
import{a as f,b as u,c as t,g as m}from"../../chunk-A3TXP5Y2.js";import"../../chunk-4LGKN5DA.js";import{a as d}from"../../chunk-TQWT7ROJ.js";import{b as l}from"../../chunk-WE6NZ2ZK.js";import{c as g}from"../../chunk-NYAHHQ3A.js";import{a as c}from"../../chunk-JRALYIRA.js";import{g as a}from"../../chunk-PKWQDQLT.js";import"../../chunk-4BZ377KV.js";import{getAccessKey as $}from"@tigrisdata/iam";var e=m("access-keys","get");async function w(p){f(e);let i=c(p,["id"]);i||(t(e,"Access key ID is required"),process.exit(1)),await d()!=="oauth"&&(t(e,`Access keys can only be retrieved when logged in via OAuth.
|
|
2
|
+
Run "tigris login oauth" first.`),process.exit(1));let n=l();await n.isAuthenticated()||(t(e,'Not authenticated. Run "tigris login oauth" first.'),process.exit(1));let h=await n.getAccessToken(),A=a(),k=g(),{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");u(e)}export{w as default};
|
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
`)}function b(n){if(n==null)return"";if(n instanceof Date)return K(n);if(typeof n=="string"){let e=new Date(n);if(!isNaN(e.getTime())&&n.includes("T"))return K(e)}return String(n)}function K(n){return new Intl.DateTimeFormat(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}).format(n)}function ie(n,e){return e.map(t=>{if(t.width)return t.width;let i=t.header.length,o=n.reduce((r,s)=>{let a=b(s[t.key]);return Math.max(r,a.length)},0);return Math.max(i,o)})}function oe(n,e){let t=[],i=ie(n,e),o="\u250C"+i.map(c=>"\u2500".repeat(c+2)).join("\u252C")+"\u2510",r="\u251C"+i.map(c=>"\u2500".repeat(c+2)).join("\u253C")+"\u2524",s="\u2514"+i.map(c=>"\u2500".repeat(c+2)).join("\u2534")+"\u2518";t.push(`
|
|
4
|
-
`+o);let a="\u2502 "+e.map((c,u)=>c.header.padEnd(i[u])).join(" \u2502 ")+" \u2502";return t.push(a),t.push(r),n.forEach(c=>{let u=e.map((g,D)=>{let R=b(c[g.key]);return g.align==="right"?R.padStart(i[D]):R.padEnd(i[D])});t.push("\u2502 "+u.join(" \u2502 ")+" \u2502")}),t.push(s+`
|
|
5
|
-
`),t.join(`
|
|
6
|
-
`)}function z(n,e,t,i,o){switch(e){case"json":return ee(n);case"xml":return te(n,t,i);default:return oe(n,o)}}import{S3Client as We}from"@aws-sdk/client-s3";import{fromIni as Ye}from"@aws-sdk/credential-providers";import{homedir as re}from"os";import{join as L}from"path";import{readFileSync as se,writeFileSync as ae,existsSync as F,mkdirSync as ce}from"fs";import{loadSharedConfigFiles as ve}from"@smithy/shared-ini-file-loader";import{chmod as de}from"fs/promises";var p="https://t3.storage.dev",_="https://iam.storageapi.dev";var I=L(re(),".tigris"),m=L(I,"config.json");function ge(){F(I)||ce(I,{recursive:!0,mode:448})}function d(){if(F(m))try{let n=se(m,"utf8");return JSON.parse(n)}catch{return{}}return{}}async function h(n){ge(),ae(m,JSON.stringify(n,null,2),{mode:384});try{await de(m,384)}catch{}}async function E(n){let e=d();e.tokens=n,await h(e)}async function f(){return d().tokens||null}async function k(){let n=d();delete n.tokens,await h(n)}async function G(n){let e=d();e.organizations=n,await h(e)}function j(){return d().organizations||[]}function x(){return d().selectedOrganization||null}async function $(n){let e=d();e.loginMethod=n,await h(e)}function U(){return d().loginMethod||null}import C from"axios";import le from"open";function y(){let n=process.env.TIGRIS_ENV==="development",e=process.env.AUTH0_DOMAIN||n?"auth-dev.tigris.dev":"auth.tigris.dev",t=process.env.AUTH0_CLIENT_ID||n?"JdJVYIyw0O1uHi5L5OJH903qaWBgd3gF":"DMejqeM3CQ4IqTjEcd3oA9eEiT40hn8D",i=process.env.AUTH0_AUDIENCE||n?"https://tigris-api-dev":"https://tigris-os-api";return{domain:e,clientId:t,audience:i}}var W=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||p,iamEndpoint:process.env.TIGRIS_IAM_ENDPOINT||_}:{endpoint:process.env.AWS_ENDPOINT_URL_S3||p,iamEndpoint:process.env.AWS_ENDPOINT_URL_IAM||_}}var O=class{config;baseUrl;constructor(){this.config=y(),this.baseUrl=`https://${this.config.domain}`}async login(e){let i=(await C.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?.(i.user_code,i.verification_uri),await this.sleep(2e3);try{await le(i.verification_uri_complete)}catch{}e?.onWaiting?.();let o=await this.pollForToken(i.device_code,i.interval||5);await E(o),$("oauth"),await this.extractAndStoreOrganizations(o.idToken)}async pollForToken(e,t){let o=0;for(;o<60;){o++;try{let s=(await C.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,a=Date.now()+(s.expires_in||3600)*1e3;return{accessToken:s.access_token,refreshToken:s.refresh_token,idToken:s.id_token,expiresAt:a}}catch(r){if(C.isAxiosError(r)&&r.response){let s=r.response.data?.error;if(s==="authorization_pending"){await this.sleep(t*1e3);continue}if(s==="slow_down"){t+=5,await this.sleep(t*1e3);continue}throw new Error(r.response.data?.error_description||"Authentication failed")}throw r}}throw new Error("Authentication timed out. Please try again.")}async getAccessToken(){let e=await f();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 f(),!t)throw new Error('No refresh token available. Please run "tigris login" to re-authenticate.');try{let o=(await C.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,r={accessToken:o.access_token,refreshToken:o.refresh_token||t.refreshToken,idToken:o.id_token||t.idToken,expiresAt:Date.now()+(o.expires_in||3600)*1e3};return await E(r),r}catch{throw await k(),new Error('Token refresh failed. Please run "tigris login" to re-authenticate.')}}async getIdTokenClaims(){let e=await f();if(!e||!e.idToken)throw new Error('Not authenticated. Please run "tigris login" to authenticate.');try{let t=e.idToken.split(".")[1],i=Buffer.from(t,"base64").toString("utf8");return JSON.parse(i)}catch{throw new Error("Failed to decode ID token")}}async extractAndStoreOrganizations(e){if(e)try{let t=e.split(".")[1],i=Buffer.from(t,"base64").toString("utf8"),r=JSON.parse(i)[W];if(!r)return;let s=r?.ns?.map(a=>typeof a=="object"&&a!==null?{id:a.id,name:a.name,displayName:a.name}:{id:a,name:a,displayName:a})||[];if(s.length===0)return;G(s)}catch{}}async getOrganizations(){return await this.getAccessToken(),j()}async logout(){await k()}async isAuthenticated(){return await f()!==null}sleep(e){return new Promise(t=>setTimeout(t,e))}},v=null;function P(){return v||(v=new O),v}var Xe=T(),Qe=y();async function V(){return U()}import{listAccessKeys as Ae}from"@tigrisdata/iam";import{readFileSync as ue,existsSync as pe}from"fs";import{join as Y,dirname as fe}from"path";import{fileURLToPath as me}from"url";import*as J from"yaml";var he=me(import.meta.url),ye=fe(he),N=null;function Te(){let n=ye;for(let e=0;e<5;e++){let t=Y(n,"specs.yaml");if(pe(t))return t;n=Y(n,"..")}throw new Error("Could not find specs.yaml")}function Ce(){if(!N){let n=Te(),e=ue(n,"utf8");N=J.parse(e)}return N}function H(n,e){let i=Ce().commands.find(o=>o.name===n);return i?e&&i.operations?i.operations.find(o=>o.name===e)||null:i:null}var q={success:"\u2714",failure:"\u2716",hint:"\u2192"};function M(){return process.stdout.isTTY===!0}function A(n){let e=H(n.command,n.operation);if(e)return e.messages}function S(n,e){let t=n;return t=t.replace(/\\n/g,`
|
|
7
|
-
`),e&&(t=t.replace(/\{\{(\w+)\}\}/g,(i,o)=>{let r=e[o];return r!==void 0?String(r):`{{${o}}}`})),t}function B(n,e){if(!M())return;let t=A(n);t?.onStart&&console.log(S(t.onStart,e))}function X(n,e){if(!M())return;let t=A(n);t?.onSuccess&&console.log(`${q.success} ${S(t.onSuccess,e)}`)}function w(n,e,t){let i=A(n);i?.onFailure&&console.error(`${q.failure} ${S(i.onFailure,t)}`),e&&console.error(` ${e}`)}function Q(n,e){if(!M())return;let t=A(n);t?.onEmpty&&console.log(S(t.onEmpty,e))}function Z(n,e){return{command:n,operation:e}}var l=Z("access-keys","list");async function Se(){B(l),await V()!=="oauth"&&(w(l,`Access keys can only be listed when logged in via OAuth.
|
|
8
|
-
Run "tigris login oauth" first.`),process.exit(1));let e=P();await e.isAuthenticated()||(w(l,'Not authenticated. Run "tigris login oauth" first.'),process.exit(1));let i=await e.getAccessToken(),o=x(),r=T(),{data:s,error:a}=await Ae({config:{sessionToken:i,organizationId:o??void 0,iamEndpoint:r.iamEndpoint}});if(a&&(w(l,a.message),process.exit(1)),!s.accessKeys||s.accessKeys.length===0){Q(l);return}let c=s.accessKeys.map(g=>({name:g.name,id:g.id,status:g.status,created:g.createdAt})),u=z(c,"table","keys","key",[{key:"name",header:"Name"},{key:"id",header:"ID"},{key:"status",header:"Status"},{key:"created",header:"Created"}]);console.log(u),X(l,{count:c.length})}export{Se as default};
|
|
1
|
+
import{a as m,b as l,c as s,d as p,g as f}from"../../chunk-A3TXP5Y2.js";import"../../chunk-4LGKN5DA.js";import{a as g}from"../../chunk-TQWT7ROJ.js";import{b as d}from"../../chunk-WE6NZ2ZK.js";import{c as r}from"../../chunk-NYAHHQ3A.js";import{f as u}from"../../chunk-HGIJOGCZ.js";import{g as c}from"../../chunk-PKWQDQLT.js";import"../../chunk-4BZ377KV.js";import{listAccessKeys as w}from"@tigrisdata/iam";var t=f("access-keys","list");async function x(){m(t),await g()!=="oauth"&&(s(t,`Access keys can only be listed when logged in via OAuth.
|
|
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=c(),k=r(),{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){p(t);return}let a=i.accessKeys.map(e=>({name:e.name,id:e.id,status:e.status,created:e.createdAt})),A=u(a,"table","keys","key",[{key:"name",header:"Name"},{key:"id",header:"ID"},{key:"status",header:"Status"},{key:"created",header:"Created"}]);console.log(A),l(t,{count:a.length})}export{x as default};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
`),e&&(t=t.replace(/\{\{(\w+)\}\}/g,(i,s)=>{let o=e[s];return o!==void 0?String(o):`{{${s}}}`})),t}function ie(n,e){if(!te())return;let t=L(n);t?.onStart&&console.log(z(t.onStart,e))}function se(n,e){if(!te())return;let t=L(n);t?.onSuccess&&console.log(`${ne.success} ${z(t.onSuccess,e)}`)}function G(n,e,t){let i=L(n);i?.onFailure&&console.error(`${ne.failure} ${z(i.onFailure,t)}`),e&&console.error(` ${e}`)}function oe(n,e){return{command:n,operation:e}}var{prompt:ve}=we,v=oe("buckets","create");async function xe(n){ie(v);let e=!f(n,["name"]),t=f(n,["name"]),i=e?void 0:f(n,["access","a","A"]),s=e?void 0:f(n,["enable-snapshots","s","S"]),o=e?void 0:f(n,["default-tier","t","T"]),c=e?void 0:f(n,["consistency","c","C"]),r=e?void 0:f(n,["region","r","R"]),u=[];if((!t||e)&&u.push({type:"input",name:"name",message:"Bucket name:",required:!0}),!i||e){let a=h("buckets","access","create"),l=y(a),d=l?.findIndex(m=>m.value===a?.default);u.push({type:"select",name:"access",message:"Access level:",choices:l||[],initial:d!==void 0&&d>=0?d:0})}if(!o||e){let a=h("buckets","default-tier","create"),l=y(a),d=l?.findIndex(m=>m.value===a?.default);u.push({type:"select",name:"defaultTier",message:"Default storage tier:",choices:l||[],initial:d!==void 0&&d>=0?d:0})}if(!c||e){let a=h("buckets","consistency","create"),l=y(a),d=l?.findIndex(m=>m.value===a?.default);u.push({type:"select",name:"consistency",message:"Consistency level:",choices:l||[],initial:d!==void 0&&d>=0?d:0})}if(!r||e){let a=h("buckets","region","create"),l=y(a),d=l?.findIndex(m=>m.value===a?.default);u.push({type:"select",name:"region",message:"Region:",choices:l||[],initial:d!==void 0&&d>=0?d:0})}if((s===void 0||e)&&u.push({type:"confirm",name:"enableSnapshots",message:"Enable snapshots?",initial:!0}),u.length>0){let a=await ve(u);t=t||a.name,i=i||a.access,s=s!==void 0?s:a.enableSnapshots,o=o||a.defaultTier,c=c||a.consistency,r=r!==void 0?r:a.region}t||(G(v,"Bucket name is required"),process.exit(1));let{error:F}=await Ee(t,{defaultTier:o??"STANDARD",consistency:c==="strict"?"strict":"default",enableSnapshot:s===!0,region:r!=="global"&&r!==void 0?r.split(","):void 0,config:await ee()});F&&(G(v,F.message),process.exit(1)),se(v,{name:t})}export{xe as default};
|
|
1
|
+
import{a as x,b as k,c as b,g as A}from"../../chunk-A3TXP5Y2.js";import{c as d,d as f}from"../../chunk-4LGKN5DA.js";import{b as S}from"../../chunk-TQWT7ROJ.js";import"../../chunk-WE6NZ2ZK.js";import"../../chunk-NYAHHQ3A.js";import{a as c}from"../../chunk-JRALYIRA.js";import"../../chunk-PKWQDQLT.js";import"../../chunk-4BZ377KV.js";import I from"enquirer";import{createBucket as v}from"@tigrisdata/storage";var{prompt:T}=I,p=A("buckets","create");async function C(a){x(p);let t=!c(a,["name"]),u=c(a,["name"]),h=t?void 0:c(a,["access","a","A"]),l=t?void 0:c(a,["enable-snapshots","s","S"]),g=t?void 0:c(a,["default-tier","t","T"]),m=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}),!h||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(!g||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(!m||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,h=h||e.access,l=l!==void 0?l:e.enableSnapshots,g=g||e.defaultTier,m=m||e.consistency,r=r!==void 0?r:e.region}u||(b(p,"Bucket name is required"),process.exit(1));let{error:y}=await v(u,{defaultTier:g??"STANDARD",consistency:m==="strict"?"strict":"default",enableSnapshot:l===!0,region:r!=="global"&&r!==void 0?r.split(","):void 0,config:await S()});y&&(b(p,y.message),process.exit(1)),k(p,{name:u})}export{C as default};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
`),e&&(t=t.replace(/\{\{(\w+)\}\}/g,(o,i)=>{let r=e[i];return r!==void 0?String(r):`{{${i}}}`})),t}function H(n,e){if(!B())return;let t=x(n);t?.onStart&&console.log(O(t.onStart,e))}function J(n,e){if(!B())return;let t=x(n);t?.onSuccess&&console.log(`${q.success} ${O(t.onSuccess,e)}`)}function P(n,e,t){let o=x(n);o?.onFailure&&console.error(`${q.failure} ${O(o.onFailure,t)}`),e&&console.error(` ${e}`)}function Q(n,e){return{command:n,operation:e}}var h=Q("buckets","delete");async function ye(n){H(h);let e=N(n,["name"]);e||(P(h,"Bucket name is required"),process.exit(1));let t=Array.isArray(e)?e:[e],o=await j();for(let i of t){let{error:r}=await Ce(i,{config:o});r&&(P(h,r.message,{name:i}),process.exit(1)),J(h,{name:i})}}export{ye as default};
|
|
1
|
+
import{a as c,b as a,c as o,g as m}from"../../chunk-A3TXP5Y2.js";import"../../chunk-4LGKN5DA.js";import{b as s}from"../../chunk-TQWT7ROJ.js";import"../../chunk-WE6NZ2ZK.js";import"../../chunk-NYAHHQ3A.js";import{a as i}from"../../chunk-JRALYIRA.js";import"../../chunk-PKWQDQLT.js";import"../../chunk-4BZ377KV.js";import{removeBucket as g}from"@tigrisdata/storage";var e=m("buckets","delete");async function k(f){c(e);let t=i(f,["name"]);t||(o(e,"Bucket name is required"),process.exit(1));let p=Array.isArray(t)?t:[t],u=await s();for(let r of p){let{error:n}=await g(r,{config:u});n&&(o(e,n.message,{name:r}),process.exit(1)),a(e,{name:r})}}export{k as default};
|
package/dist/lib/buckets/get.js
CHANGED
|
@@ -1,7 +1 @@
|
|
|
1
|
-
|
|
2
|
-
`)}function ce(n,e,t){let o=[`<${e}>`];return n.forEach(r=>{o.push(` <${t}>`),o.push(ae(r," ")),o.push(` </${t}>`)}),o.push(`</${e}>`),o.join(`
|
|
3
|
-
`)}function z(n){if(n==null)return"";if(n instanceof Date)return L(n);if(typeof n=="string"){let e=new Date(n);if(!isNaN(e.getTime())&&n.includes("T"))return L(e)}return String(n)}function L(n){return new Intl.DateTimeFormat(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}).format(n)}function de(n,e){return e.map(t=>{if(t.width)return t.width;let o=t.header.length,r=n.reduce((i,s)=>{let a=z(s[t.key]);return Math.max(i,a.length)},0);return Math.max(o,r)})}function ue(n,e){let t=[],o=de(n,e),r="\u250C"+o.map(c=>"\u2500".repeat(c+2)).join("\u252C")+"\u2510",i="\u251C"+o.map(c=>"\u2500".repeat(c+2)).join("\u253C")+"\u2524",s="\u2514"+o.map(c=>"\u2500".repeat(c+2)).join("\u2534")+"\u2518";t.push(`
|
|
4
|
-
`+r);let a="\u2502 "+e.map((c,S)=>c.header.padEnd(o[S])).join(" \u2502 ")+" \u2502";return t.push(a),t.push(i),n.forEach(c=>{let S=e.map((M,R)=>{let b=z(c[M.key]);return M.align==="right"?b.padStart(o[R]):b.padEnd(o[R])});t.push("\u2502 "+S.join(" \u2502 ")+" \u2502")}),t.push(s+`
|
|
5
|
-
`),t.join(`
|
|
6
|
-
`)}function F(n,e,t,o,r){switch(e){case"json":return se(n);case"xml":return ce(n,t,o);default:return ue(n,r)}}import{S3Client as Je}from"@aws-sdk/client-s3";import{fromIni as Te}from"@aws-sdk/credential-providers";import{homedir as G}from"os";import{join as p}from"path";import{readFileSync as pe,writeFileSync as le,existsSync as g,mkdirSync as ge}from"fs";import{loadSharedConfigFiles as fe}from"@smithy/shared-ini-file-loader";import{chmod as me}from"fs/promises";var u="https://t3.storage.dev",w="https://iam.storageapi.dev";var A=p(G(),".tigris"),f=p(A,"config.json");function he(){g(A)||ge(A,{recursive:!0,mode:448})}function d(){if(g(f))try{let n=pe(f,"utf8");return JSON.parse(n)}catch{return{}}return{}}async function m(n){he(),le(f,JSON.stringify(n,null,2),{mode:384});try{await me(f,384)}catch{}}async function _(n){let e=d();e.tokens=n,await m(e)}async function l(){return d().tokens||null}async function I(){let n=d();delete n.tokens,await m(n)}async function j(n){let e=d();e.organizations=n,await m(e)}function $(){return d().organizations||[]}function k(){return d().selectedOrganization||null}function U(){if(process.env.TIGRIS_STORAGE_ACCESS_KEY_ID||process.env.TIGRIS_STORAGE_SECRET_ACCESS_KEY){let o=process.env.TIGRIS_STORAGE_ACCESS_KEY_ID,r=process.env.TIGRIS_STORAGE_SECRET_ACCESS_KEY;if(!o||!r)return null;let i=process.env.TIGRIS_STORAGE_ENDPOINT||u;return{accessKeyId:o,secretAccessKey:r,endpoint:i}}let n=process.env.AWS_ACCESS_KEY_ID,e=process.env.AWS_SECRET_ACCESS_KEY;if(!n||!e)return null;let t=process.env.AWS_ENDPOINT_URL_S3||u;return{accessKeyId:n,secretAccessKey:e,endpoint:t}}function B(){if(!process.env.AWS_PROFILE)return!1;let n=p(G(),".aws");return g(p(n,"credentials"))||g(p(n,"config"))}async function W(n){try{let{configFile:e}=await fe(),t=e[n];return t?{endpoint:t.endpoint_url_s3||t.endpoint_url,iamEndpoint:t.endpoint_url_iam,region:t.region}:{}}catch{return{}}}function x(){let n=d();return n.temporaryCredentials||n.credentials||null}async function V(n){let e=d();e.loginMethod=n,await m(e)}function Y(){return d().loginMethod||null}import y from"axios";import ye from"open";function h(){let n=process.env.TIGRIS_ENV==="development",e=process.env.AUTH0_DOMAIN||n?"auth-dev.tigris.dev":"auth.tigris.dev",t=process.env.AUTH0_CLIENT_ID||n?"JdJVYIyw0O1uHi5L5OJH903qaWBgd3gF":"DMejqeM3CQ4IqTjEcd3oA9eEiT40hn8D",o=process.env.AUTH0_AUDIENCE||n?"https://tigris-api-dev":"https://tigris-os-api";return{domain:e,clientId:t,audience:o}}var H=process.env.TIGRIS_CLAIMS_NAMESPACE||"https://tigris";function J(){return process.env.TIGRIS_STORAGE_ENDPOINT||process.env.TIGRIS_IAM_ENDPOINT?{endpoint:process.env.TIGRIS_STORAGE_ENDPOINT||u,iamEndpoint:process.env.TIGRIS_IAM_ENDPOINT||w}:{endpoint:process.env.AWS_ENDPOINT_URL_S3||u,iamEndpoint:process.env.AWS_ENDPOINT_URL_IAM||w}}var v=class{config;baseUrl;constructor(){this.config=h(),this.baseUrl=`https://${this.config.domain}`}async login(e){let o=(await y.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 ye(o.verification_uri_complete)}catch{}e?.onWaiting?.();let r=await this.pollForToken(o.device_code,o.interval||5);await _(r),V("oauth"),await this.extractAndStoreOrganizations(r.idToken)}async pollForToken(e,t){let r=0;for(;r<60;){r++;try{let s=(await y.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,a=Date.now()+(s.expires_in||3600)*1e3;return{accessToken:s.access_token,refreshToken:s.refresh_token,idToken:s.id_token,expiresAt:a}}catch(i){if(y.isAxiosError(i)&&i.response){let s=i.response.data?.error;if(s==="authorization_pending"){await this.sleep(t*1e3);continue}if(s==="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 l();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 l(),!t)throw new Error('No refresh token available. Please run "tigris login" to re-authenticate.');try{let r=(await y.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:r.access_token,refreshToken:r.refresh_token||t.refreshToken,idToken:r.id_token||t.idToken,expiresAt:Date.now()+(r.expires_in||3600)*1e3};return await _(i),i}catch{throw await I(),new Error('Token refresh failed. Please run "tigris login" to re-authenticate.')}}async getIdTokenClaims(){let e=await l();if(!e||!e.idToken)throw new Error('Not authenticated. Please run "tigris login" to authenticate.');try{let t=e.idToken.split(".")[1],o=Buffer.from(t,"base64").toString("utf8");return JSON.parse(o)}catch{throw new Error("Failed to decode ID token")}}async extractAndStoreOrganizations(e){if(e)try{let t=e.split(".")[1],o=Buffer.from(t,"base64").toString("utf8"),i=JSON.parse(o)[H];if(!i)return;let s=i?.ns?.map(a=>typeof a=="object"&&a!==null?{id:a.id,name:a.name,displayName:a.name}:{id:a,name:a,displayName:a})||[];if(s.length===0)return;j(s)}catch{}}async getOrganizations(){return await this.getAccessToken(),$()}async logout(){await I()}async isAuthenticated(){return await l()!==null}sleep(e){return new Promise(t=>setTimeout(t,e))}},E=null;function q(){return E||(E=new v),E}var T=J(),Ce=h();async function Se(){return Y()}async function X(){if(B()){let o=process.env.AWS_PROFILE||"default",r=await W(o),i=await Te({profile:o})();return{accessKeyId:i.accessKeyId,secretAccessKey:i.secretAccessKey,endpoint:r.endpoint||T.endpoint||u,iamEndpoint:r.iamEndpoint||T.iamEndpoint}}let n=await Se();if(n==="oauth"){let r=await q().getAccessToken();if(!k())throw new Error('No organization selected. Please run "tigris orgs select" first.');return{sessionToken:r,accessKeyId:"",secretAccessKey:"",endpoint:T.endpoint,organizationId:k()??void 0,iamEndpoint:T.iamEndpoint,authDomain:Ce.domain}}if(n==="credentials"){let o=x();if(o)return{accessKeyId:o.accessKeyId,secretAccessKey:o.secretAccessKey,endpoint:o.endpoint}}let e=U();if(e)return{accessKeyId:e.accessKeyId,secretAccessKey:e.secretAccessKey,endpoint:e.endpoint};let t=x();if(t)return{accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,endpoint:t.endpoint};throw new Error('Not authenticated. Please run "tigris login" or "tigris configure" first.')}import{getBucketInfo as Oe}from"@tigrisdata/storage";import{readFileSync as we,existsSync as Ae}from"fs";import{join as Q,dirname as _e}from"path";import{fileURLToPath as Ie}from"url";import*as Z from"yaml";var ke=Ie(import.meta.url),xe=_e(ke),O=null;function Ee(){let n=xe;for(let e=0;e<5;e++){let t=Q(n,"specs.yaml");if(Ae(t))return t;n=Q(n,"..")}throw new Error("Could not find specs.yaml")}function ve(){if(!O){let n=Ee(),e=we(n,"utf8");O=Z.parse(e)}return O}function ee(n,e){let o=ve().commands.find(r=>r.name===n);return o?e&&o.operations?o.operations.find(r=>r.name===e)||null:o:null}var ne={success:"\u2714",failure:"\u2716",hint:"\u2192"};function te(){return process.stdout.isTTY===!0}function P(n){let e=ee(n.command,n.operation);if(e)return e.messages}function N(n,e){let t=n;return t=t.replace(/\\n/g,`
|
|
7
|
-
`),e&&(t=t.replace(/\{\{(\w+)\}\}/g,(o,r)=>{let i=e[r];return i!==void 0?String(i):`{{${r}}}`})),t}function oe(n,e){if(!te())return;let t=P(n);t?.onStart&&console.log(N(t.onStart,e))}function re(n,e){if(!te())return;let t=P(n);t?.onSuccess&&console.log(`${ne.success} ${N(t.onSuccess,e)}`)}function D(n,e,t){let o=P(n);o?.onFailure&&console.error(`${ne.failure} ${N(o.onFailure,t)}`),e&&console.error(` ${e}`)}function ie(n,e){return{command:n,operation:e}}var C=ie("buckets","get");async function Pe(n){oe(C);let e=K(n,["name"]);e||(D(C,"Bucket name is required"),process.exit(1));let{data:t,error:o}=await Oe(e,{config:await X()});o&&(D(C,o.message),process.exit(1));let r=[{property:"Name",value:e},{property:"Snapshots Enabled",value:t.isSnapshotEnabled?"Yes":"No"},{property:"Has Forks",value:t.hasForks?"Yes":"No"},...t.sourceBucketName?[{property:"Source Bucket",value:t.sourceBucketName}]:[],...t.sourceBucketSnapshot?[{property:"Source Snapshot",value:t.sourceBucketSnapshot}]:[]],i=F(r,"table","bucket","property",[{key:"property",header:"Property"},{key:"value",header:"Value"}]);console.log(i),re(C)}export{Pe as default};
|
|
1
|
+
import{a as u,b as c,c as r,g as i}from"../../chunk-A3TXP5Y2.js";import"../../chunk-4LGKN5DA.js";import{b as p}from"../../chunk-TQWT7ROJ.js";import"../../chunk-WE6NZ2ZK.js";import"../../chunk-NYAHHQ3A.js";import{f as n}from"../../chunk-HGIJOGCZ.js";import{a as s}from"../../chunk-JRALYIRA.js";import"../../chunk-PKWQDQLT.js";import"../../chunk-4BZ377KV.js";import{getBucketInfo as l}from"@tigrisdata/storage";var t=i("buckets","get");async function g(m){u(t);let o=s(m,["name"]);o||(r(t,"Bucket name is required"),process.exit(1));let{data:e,error:a}=await l(o,{config:await p()});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=n(f,"table","bucket","property",[{key:"property",header:"Property"},{key:"value",header:"Value"}]);console.log(k),c(t)}export{g as default};
|