@dittowords/cli 5.0.0-beta.0 → 5.0.0-beta.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.
Files changed (2) hide show
  1. package/bin/ditto.js +5 -5
  2. package/package.json +1 -1
package/bin/ditto.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="bdb63dd4-a68b-5307-bd33-3a9f5e74fdd6")}catch(e){}}();
4
- var bn=Object.create;var Zt=Object.defineProperty;var Fn=Object.getOwnPropertyDescriptor;var On=Object.getOwnPropertyNames;var Pn=Object.getPrototypeOf,kn=Object.prototype.hasOwnProperty;var Ne=t=>{throw TypeError(t)};var n=(t,e)=>Zt(t,"name",{value:e,configurable:!0});var An=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of On(e))!kn.call(t,s)&&s!==o&&Zt(t,s,{get:()=>e[s],enumerable:!(r=Fn(e,s))||r.enumerable});return t};var m=(t,e,o)=>(o=t!=null?bn(Pn(t)):{},An(e||!t||!t.__esModule?Zt(o,"default",{value:t,enumerable:!0}):o,t));var _e=(t,e,o)=>e.has(t)||Ne("Cannot "+o);var E=(t,e,o)=>(_e(t,e,"read from private field"),o?o.call(t):e.get(t)),V=(t,e,o)=>e.has(t)?Ne("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,o),R=(t,e,o,r)=>(_e(t,e,"write to private field"),r?r.call(t,o):e.set(t,o),o);var dn=m(require("@sentry/node"));var tt="5.0.0-beta.0";var G=require("commander");var to=m(require("boxen")),Mt=m(require("chalk"));var Ke=m(require("ora"));var Ge=m(require("axios"));var L=m(require("fs")),Le=m(require("path")),Je=m(require("url")),ot=m(require("js-yaml")),Ve=m(require("@sentry/node"));var Me=require("os"),et=m(require("path")),u=new class{get API_HOST(){return process.env.DITTO_API_HOST||"https://api.dittowords.com"}get CONFIG_FILE(){return process.env.DITTO_CONFIG_FILE||et.default.join((0,Me.homedir)(),".config","ditto")}get PROJECT_CONFIG_FILE(){return et.default.normalize(et.default.join("ditto","config.yml"))}get TEXT_DIR(){return process.env.DITTO_TEXT_DIR||"ditto"}get TEXT_FILE(){return et.default.normalize(et.default.join(this.TEXT_DIR,"text.json"))}};function Re(t){if(typeof t!="object")return{};let e={};for(let o in t){let r=o,s=t[r];e[r]=typeof s=="object"||Array.isArray(s)?JSON.stringify(s):s}return e}n(Re,"createSentryContext");var En={sources:{components:!0},variants:!0,format:"flat"},Ye=ot.default.dump(En);function gt(t,e){let o=Le.default.dirname(t);L.default.existsSync(o)||L.default.mkdirSync(o),L.default.existsSync(t)||L.default.writeFileSync(t,e||"","utf-8")}n(gt,"createFileIfMissing");function Nn(t){return typeof t=="object"}n(Nn,"jsonIsConfigYAML");function _n(t){return!!t&&typeof t=="object"&&Object.values(t).every(e=>e.every&&e.every(o=>typeof o=="object"&&Object.keys(o).includes("token")))}n(_n,"jsonIsGlobalYAML");function Kt(t=u.PROJECT_CONFIG_FILE,e={}){gt(t,Ye);let o=L.default.readFileSync(t,"utf8"),r=ot.default.load(o);return Nn(r)?r:e}n(Kt,"readProjectConfigData");function yt(t=u.CONFIG_FILE,e={}){gt(t);let o=L.default.readFileSync(t,"utf8"),r=ot.default.load(o);return _n(r)?r:e}n(yt,"readGlobalConfigData");function Mn(t,e){gt(t,Ye);let o=Kt(t),r={...o,...e,sources:{...o.sources,...e.sources}},s=ot.default.dump(r);L.default.writeFileSync(t,s,"utf8")}n(Mn,"writeProjectConfigData");function Qt(t,e){gt(t);let o=yt(t),r=ot.default.dump({...o,...e});L.default.writeFileSync(t,r,"utf8")}n(Qt,"writeGlobalConfigData");function Et(t){return t.includes("://")?Je.default.parse(t).hostname||"":t}n(Et,"justTheHost");function Rn(t,e){let o=yt(t),r=Et(e);o[r]=[],o[r][0]={token:""},Qt(t,o)}n(Rn,"deleteToken");function $n(t,e,o){let r=yt(t),s=Et(e);r[s]=[],r[s][0]={token:o},Qt(t,r)}n($n,"saveToken");function Be(){return process.env.DITTO_API_KEY}n(Be,"getTokenFromEnv");function Ln(t,e){let o=Be();if(o)return o;let s=yt(t)[Et(e)];if(!s)return;let{length:i}=s;return s[i-1].token}n(Ln,"getToken");var $e=/-(\d+$)/;function Jn(t,e){let o=e;if(t.has(o))for(;t.has(o);){let[r,s]=o.match($e)||[];s&&!isNaN(parseInt(s))?o=`${o.replace($e,"")}-${parseInt(s)+1}`:o=`${o}-1`}return o}n(Jn,"dedupeProjectName");function Vn(t){let{sources:e,variants:o,format:r,status:s,richText:i,iosLocales:c,projects:a,components:l,disableJsDriver:g}=Kt(t),f=e?.projects||[],d=new Set,S=[],h=!1;(f||[]).forEach(P=>{if(P.id&&P.name){if(P.id==="ditto_component_library"){h=!0;return}P.fileName=Jn(d,P.name),d.add(P.fileName),S.push(P)}});let C=!!e?.components,N=typeof e?.components=="object"?e.components.root:void 0,F=typeof e?.components=="object"?e.components.folders:void 0,I={hasSourceData:!!S.length||C,validProjects:S,shouldFetchComponentLibrary:C,variants:o||!1,format:r,status:s,richText:i,hasTopLevelProjectsField:!!a,hasTopLevelComponentsField:!!l,hasComponentLibraryInProjects:h,componentRoot:N,componentFolders:F,localeByVariantApiId:c?c.reduce((P,K)=>({...P,...K}),{}):void 0,disableJsDriver:g};return Ve.setContext("config",Re(I)),I}n(Vn,"parseSourceInformation");var w={createFileIfMissing:gt,readProjectConfigData:Kt,readGlobalConfigData:yt,writeGlobalConfigData:Qt,writeProjectConfigData:Mn,justTheHost:Et,saveToken:$n,deleteToken:Rn,getToken:Ln,getTokenFromEnv:Be,parseSourceInformation:Vn};function j(t){return Ge.default.create({baseURL:u.API_HOST,headers:{Authorization:`token ${t||w.getToken(u.CONFIG_FILE,u.API_HOST)}`,"x-ditto-cli":!0}})}n(j,"createApiClient");var Y=m(require("chalk"));var Yn=n(t=>Y.default.magenta(t),"errorText"),Bn=n(t=>Y.default.yellow(t),"warnText"),Gn=n(t=>Y.default.blueBright(t),"info"),Un=n(t=>Y.default.green(t),"success"),Wn=n(t=>Y.default.blueBright.underline(t),"url"),qn=n(t=>Y.default.grey(t),"subtle"),zn=n(t=>Y.default.white(t),"write"),Hn=n(()=>console.log(`
3
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="4fa6a938-f8ef-56a0-9e03-daab22de6e0a")}catch(e){}}();
4
+ var bn=Object.create;var Zt=Object.defineProperty;var Fn=Object.getOwnPropertyDescriptor;var On=Object.getOwnPropertyNames;var Pn=Object.getPrototypeOf,kn=Object.prototype.hasOwnProperty;var Ne=t=>{throw TypeError(t)};var n=(t,e)=>Zt(t,"name",{value:e,configurable:!0});var An=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of On(e))!kn.call(t,s)&&s!==o&&Zt(t,s,{get:()=>e[s],enumerable:!(r=Fn(e,s))||r.enumerable});return t};var m=(t,e,o)=>(o=t!=null?bn(Pn(t)):{},An(e||!t||!t.__esModule?Zt(o,"default",{value:t,enumerable:!0}):o,t));var _e=(t,e,o)=>e.has(t)||Ne("Cannot "+o);var E=(t,e,o)=>(_e(t,e,"read from private field"),o?o.call(t):e.get(t)),V=(t,e,o)=>e.has(t)?Ne("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,o),R=(t,e,o,r)=>(_e(t,e,"write to private field"),r?r.call(t,o):e.set(t,o),o);var dn=m(require("@sentry/node"));var tt="5.0.0-beta.1";var G=require("commander");var to=m(require("boxen")),Mt=m(require("chalk"));var Ke=m(require("ora"));var Ge=m(require("axios"));var L=m(require("fs")),Le=m(require("path")),Je=m(require("url")),ot=m(require("js-yaml")),Ve=m(require("@sentry/node"));var Me=require("os"),et=m(require("path")),u=new class{get API_HOST(){return process.env.DITTO_API_HOST||"https://api.dittowords.com"}get CONFIG_FILE(){return process.env.DITTO_CONFIG_FILE||et.default.join((0,Me.homedir)(),".config","ditto")}get PROJECT_CONFIG_FILE(){return et.default.normalize(et.default.join("ditto","config.yml"))}get TEXT_DIR(){return process.env.DITTO_TEXT_DIR||"ditto"}get TEXT_FILE(){return et.default.normalize(et.default.join(this.TEXT_DIR,"text.json"))}};function Re(t){if(typeof t!="object")return{};let e={};for(let o in t){let r=o,s=t[r];e[r]=typeof s=="object"||Array.isArray(s)?JSON.stringify(s):s}return e}n(Re,"createSentryContext");var En={sources:{components:!0},variants:!0,format:"flat"},Ye=ot.default.dump(En);function gt(t,e){let o=Le.default.dirname(t);L.default.existsSync(o)||L.default.mkdirSync(o),L.default.existsSync(t)||L.default.writeFileSync(t,e||"","utf-8")}n(gt,"createFileIfMissing");function Nn(t){return typeof t=="object"}n(Nn,"jsonIsConfigYAML");function _n(t){return!!t&&typeof t=="object"&&Object.values(t).every(e=>e.every&&e.every(o=>typeof o=="object"&&Object.keys(o).includes("token")))}n(_n,"jsonIsGlobalYAML");function Kt(t=u.PROJECT_CONFIG_FILE,e={}){gt(t,Ye);let o=L.default.readFileSync(t,"utf8"),r=ot.default.load(o);return Nn(r)?r:e}n(Kt,"readProjectConfigData");function yt(t=u.CONFIG_FILE,e={}){gt(t);let o=L.default.readFileSync(t,"utf8"),r=ot.default.load(o);return _n(r)?r:e}n(yt,"readGlobalConfigData");function Mn(t,e){gt(t,Ye);let o=Kt(t),r={...o,...e,sources:{...o.sources,...e.sources}},s=ot.default.dump(r);L.default.writeFileSync(t,s,"utf8")}n(Mn,"writeProjectConfigData");function Qt(t,e){gt(t);let o=yt(t),r=ot.default.dump({...o,...e});L.default.writeFileSync(t,r,"utf8")}n(Qt,"writeGlobalConfigData");function Et(t){return t.includes("://")?Je.default.parse(t).hostname||"":t}n(Et,"justTheHost");function Rn(t,e){let o=yt(t),r=Et(e);o[r]=[],o[r][0]={token:""},Qt(t,o)}n(Rn,"deleteToken");function $n(t,e,o){let r=yt(t),s=Et(e);r[s]=[],r[s][0]={token:o},Qt(t,r)}n($n,"saveToken");function Be(){return process.env.DITTO_API_KEY}n(Be,"getTokenFromEnv");function Ln(t,e){let o=Be();if(o)return o;let s=yt(t)[Et(e)];if(!s)return;let{length:i}=s;return s[i-1].token}n(Ln,"getToken");var $e=/-(\d+$)/;function Jn(t,e){let o=e;if(t.has(o))for(;t.has(o);){let[r,s]=o.match($e)||[];s&&!isNaN(parseInt(s))?o=`${o.replace($e,"")}-${parseInt(s)+1}`:o=`${o}-1`}return o}n(Jn,"dedupeProjectName");function Vn(t){let{sources:e,variants:o,format:r,status:s,richText:i,iosLocales:c,projects:a,components:l,disableJsDriver:g}=Kt(t),f=e?.projects||[],d=new Set,S=[],h=!1;(f||[]).forEach(P=>{if(P.id&&P.name){if(P.id==="ditto_component_library"){h=!0;return}P.fileName=Jn(d,P.name),d.add(P.fileName),S.push(P)}});let C=!!e?.components,N=typeof e?.components=="object"?e.components.root:void 0,F=typeof e?.components=="object"?e.components.folders:void 0,I={hasSourceData:!!S.length||C,validProjects:S,shouldFetchComponentLibrary:C,variants:o||!1,format:r,status:s,richText:i,hasTopLevelProjectsField:!!a,hasTopLevelComponentsField:!!l,hasComponentLibraryInProjects:h,componentRoot:N,componentFolders:F,localeByVariantApiId:c?c.reduce((P,K)=>({...P,...K}),{}):void 0,disableJsDriver:g};return Ve.setContext("config",Re(I)),I}n(Vn,"parseSourceInformation");var w={createFileIfMissing:gt,readProjectConfigData:Kt,readGlobalConfigData:yt,writeGlobalConfigData:Qt,writeProjectConfigData:Mn,justTheHost:Et,saveToken:$n,deleteToken:Rn,getToken:Ln,getTokenFromEnv:Be,parseSourceInformation:Vn};function j(t){return Ge.default.create({baseURL:u.API_HOST,headers:{Authorization:`token ${t||w.getToken(u.CONFIG_FILE,u.API_HOST)}`,"x-ditto-cli":!0}})}n(j,"createApiClient");var Y=m(require("chalk"));var Yn=n(t=>Y.default.magenta(t),"errorText"),Bn=n(t=>Y.default.yellow(t),"warnText"),Gn=n(t=>Y.default.blueBright(t),"info"),Un=n(t=>Y.default.green(t),"success"),Wn=n(t=>Y.default.blueBright.underline(t),"url"),qn=n(t=>Y.default.grey(t),"subtle"),zn=n(t=>Y.default.white(t),"write"),Hn=n(()=>console.log(`
5
5
  `),"nl"),p={errorText:Yn,warnText:Bn,info:Gn,success:Un,url:Wn,subtle:qn,write:zn,nl:Hn};var We=m(require("fs")),qe=m(require("@sentry/node")),ze=m(require("chalk")),He=require("enquirer");var Ue=m(require("@sentry/node"));async function b(t,e=2){t&&console.log(`
6
6
  ${t}
7
7
  `),await Ue.flush(),process.exit(e)}n(b,"quit");var Xe=require("axios");var te=n((t,e=u.API_HOST)=>{if(w.getTokenFromEnv())return!1;let o=t||u.CONFIG_FILE;if(!We.default.existsSync(o))return!0;let r=w.readGlobalConfigData(o);return!r[w.justTheHost(e)]||r[w.justTheHost(e)][0].token===""},"needsToken");async function Xn(t){let e=j(t),o="/token-check",r;try{r=await e.get(o)}catch(s){if(!(s instanceof Xe.AxiosError))return{success:!1,output:[p.warnText("Sorry! We're having trouble reaching the Ditto API.")]};if(s.code==="ENOTFOUND")return{success:!1,output:[p.errorText(`Can't connect to API: ${p.url(u.API_HOST)}`)]};if(s.response?.status===401||s.response?.status===404)return{success:!1,output:[p.errorText("This API key isn't valid. Please try another.")]}}return typeof r=="string"?{success:!1,output:[r]}:r?.status===200?{success:!0}:{success:!1,output:[p.errorText("This API key isn't valid. Please try another.")]}}n(Xn,"verifyTokenUsingTokenCheck");async function Zn(t){let e=await Xn(t);return e.success?!0:e.output.join(`
@@ -107,9 +107,9 @@ ${t}
107
107
  Error ID: ${T.info(o)}`;return await lt(T.errorText("Something went wrong. Please contact support or try again later.")+r),""}}n(Oe,"collectAndSaveToken");async function ws(){let t=T.url("https://app.dittowords.com/account/devtools"),e=T.bold(T.info("API Keys")),o=`To get started, you'll need your Ditto API key. You can find this at: ${t} under "${e}".`;return T.writeLine(o),(await Is()).token}n(ws,"collectToken");async function Is(){return await(0,cn.prompt)({type:"input",name:"token",message:"What is your API key?",validate:n(async e=>{console.log("token",e);let o=await qt(e);return o.success?!0:o.output?.join(`
108
108
  `)||"Invalid API key"},"validate")})}n(Is,"promptForApiToken");function ln(t){return t.includes("://")?sn.default.parse(t).hostname||"":t}n(ln,"getURLHostname");async function nn(t){return(await qt(t)).success?t:await Oe()}n(nn,"validateToken");var Cs=[{name:"pull",description:"Sync copy from Ditto into the current working directory"}],vs=n(()=>{ut.program.name("ditto-cli"),Cs.forEach(t=>{let e=ut.program.command(t.name).description(t.description).action(o=>un(t.name,o));t.flags&&Object.entries(t.flags).forEach(([o,{description:r,processor:s}])=>{s?e.option(o,r,s):e.option(o,r)})})},"setupCommands"),js=n(()=>{ut.program.option("-l, --legacy","Run in legacy mode"),ut.program.version(tt,"-v, --version","Output the current version")},"setupOptions"),un=n(async(t,e)=>{try{let o=await pn();switch(x.setApiToken(o),await Wo(),t){case"none":case"pull":return await tn();default:{await lt(`Invalid command: ${t}. Exiting Ditto CLI...`);return}}}catch(o){let r=mn.captureException(o),s=`
109
109
 
110
- Error ID: ${T.info(r)}`;return process.env.IS_LOCAL==="true"&&console.error(T.info(`Development stack trace:
111
- `),o),await lt(T.errorText("Something went wrong. Please contact support or try again later.")+s)}},"executeCommand"),bs=n(async()=>{if(vs(),js(),process.argv.length<=2&&process.argv[1].includes("ditto-cli")){await un("none",[]);return}ut.program.parse(process.argv)},"appEntry"),fn=bs;var Fs=process.env.ENV||"development";dn.init({dsn:process.env.SENTRY_DSN,environment:Fs,release:tt});var Os=n(async()=>{process.argv.includes("--legacy")?(console.log(T.warnText(`
110
+ Error ID: ${T.info(r)}`;return process.env.DEBUG==="true"&&console.error(T.info(`Development stack trace:
111
+ `),o),await lt(T.errorText("Something went wrong. Please contact support or try again later.")+s)}},"executeCommand"),bs=n(async()=>{if(vs(),js(),process.argv.length<=2&&process.argv[1].includes("ditto-cli")){await un("none",[]);return}ut.program.parse(process.argv)},"appEntry"),fn=bs;var Fs="production";dn.init({dsn:"https://9c1d99fa4267f54c6b914f720b4ed3a2@o979374.ingest.sentry.io/4505705213919232",environment:Fs,release:tt});var Os=n(async()=>{process.argv.includes("--legacy")?(console.log(T.warnText(`
112
112
  Ditto CLI is running in legacy mode. This mode is deprecated and will be removed in a future release.
113
113
  `)),_o()):fn()},"main");Os();
114
114
 
115
- //# debugId=bdb63dd4-a68b-5307-bd33-3a9f5e74fdd6
115
+ //# debugId=4fa6a938-f8ef-56a0-9e03-daab22de6e0a
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dittowords/cli",
3
- "version": "5.0.0-beta.0",
3
+ "version": "5.0.0-beta.1",
4
4
  "description": "Command Line Interface for Ditto (dittowords.com).",
5
5
  "license": "MIT",
6
6
  "main": "bin/ditto.js",