@todesktop/cli 1.3.0 → 1.4.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.
@@ -64,9 +64,11 @@ parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcel
64
64
  "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;const e=e=>({oneOf:[e,{type:"array",items:e}]});var t=t=>{const n=(e=[])=>({type:"string",file:{from:t.projectRoot,extensions:["icns","png",...e],mustBeFile:!0},minLength:3});return{type:"object",required:["id","icon","schemaVersion"],properties:{appId:{type:"string",minLength:1},appFiles:{type:"array",items:{type:"string",minLength:1},minItems:1},appProtocolScheme:{type:"string",minLength:1},appPath:{type:"string",file:{from:t.projectRoot,isOptional:!0,mustBeElectronApp:!0}},asarUnpack:{oneOf:[{type:"boolean"},{type:"array",items:{type:"string",minLength:1},minItems:1}]},copyright:{type:"string",minLength:1},electronMirror:{type:"string",format:"uri"},electronVersion:{type:"string",minLength:1},extraContentFiles:{type:"array",items:{type:"object",required:["from"],properties:{from:{type:"string",file:{from:t.projectRoot}},to:{type:"string"}}}},extraResources:{type:"array",items:{type:"object",required:["from"],properties:{from:{type:"string",file:{from:t.projectRoot}},to:{type:"string"}}}},fileAssociations:{type:"array",items:{type:"object",required:["ext"],properties:{ext:e({type:"string",minLength:1}),description:{type:"string",minLength:1},name:{type:"string",minLength:1},mimeType:{type:"string",minLength:1},icon:{type:"string",minLength:1},role:{type:"string",minLength:1},isPackage:{type:"boolean"},rank:{type:"string",minLength:1}}},minItems:1},filesForDistribution:{type:"array",items:{type:"string",minLength:1},minItems:1},icon:n(),linux:{properties:{category:{type:"string",minLength:1},icon:n(),noSandbox:{type:"boolean"}}},id:{type:"string",minLength:1},mac:{properties:{category:{type:"string",minLength:1},additionalBinariesToSign:{type:"array",items:{type:"string",minLength:1}},entitlements:{type:"string",file:{from:t.projectRoot,extensions:["plist"],mustBeFile:!0},minLength:1},extendInfo:{type:"object"},icon:n()}},dmg:{properties:{background:{type:"string",file:{from:t.projectRoot,extensions:["tiff"],mustBeFile:!0},minLength:1},artifactName:{type:"string",minLength:1},backgroundColor:{type:"string",minLength:1},iconSize:{type:"number"},iconTextSize:{type:"number"},title:{type:"string",minLength:1},contents:{type:"array",items:{type:"object",properties:{x:{type:"number"},y:{type:"number"}}}},window:{type:"object",properties:{x:{type:"number"},y:{type:"number"},width:{type:"number"},height:{type:"number"}}}}},schemaVersion:{type:"number",minimum:1,maximum:1},snap:{properties:{after:{type:"array",items:{type:"string",minLength:1}},appPartStage:{type:"array",items:{type:"string",minLength:1}},assumes:e({type:"string",minLength:1}),autoStart:{type:"boolean"},buildPackages:{type:"array",items:{type:"string",minLength:1}},confinement:{type:"string",enum:["classic","devmode","strict"]},environment:{type:"object"},grade:{type:"string",enum:["devel","stable"]},layout:{type:"object"},plugs:{type:"array",items:{anyOf:[{type:"string",minLength:1},{type:"object"}]}},stagePackages:{type:"array",items:{type:"string",minLength:1}},summary:{type:"string",maxLength:78},useTemplateApp:{type:"boolean"}}},uploadSizeLimit:{type:"number"},windows:{properties:{icon:n(["ico"])}}}}};exports.default=t;
65
65
  },{}],"aYcI":[function(require,module,exports) {
66
66
  "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=a(require("ajv")),o=a(require("better-ajv-errors")),t=a(require("./addCustomKeywords")),r=a(require("./schema/full"));function a(e){return e&&e.__esModule?e:{default:e}}var n=({config:a,projectRoot:n})=>{const s={projectRoot:n},d=(0,r.default)(s),p=new e.default({allErrors:!0,jsonPointers:!0});(0,t.default)(p,s);const i=p.compile(d);if(!i(a)){const e=(0,o.default)(d,a,i.errors,{indent:2});throw new Error(`todesktop.json invalid. \nLearn more here: https://www.npmjs.com/package/@todesktop/cli#project-configuration-todesktopjson \n\n${e}`)}if(a.productName)throw new Error('todesktop.json invalid.\n\nThe "productName" property is no longer supported in todesktop.json. Please remove it and add it to your app\'s package.json instead.\n\nWe made this change because Electron also uses the "productName" if it exists in your app\'s package.json. If you do not add it to your package.json, your app name will default to the value of the "name" property in your package.json.')};exports.default=n;
67
- },{"./addCustomKeywords":"g5Ig","./schema/full":"CN2N"}],"Sx1d":[function(require,module,exports) {
68
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("path"),o=a(require("find-up")),t=a(require("./loadConfig")),r=a(require("./resolveConfigPaths")),n=a(require("./validateConfig"));function a(e){return e&&e.__esModule?e:{default:e}}var i=()=>{const a=o.default.sync("todesktop.json");if(!a)throw new Error("Can not find todesktop.json in this folder or any parent folders");const i=(0,e.dirname)(a),d=(0,t.default)(a);return d.appPath=d.appPath||".",(0,n.default)({config:d,projectRoot:i}),{config:(0,r.default)({config:d,projectRoot:i}),unprocessedConfig:d,projectRoot:i}};exports.default=i;
69
- },{"./loadConfig":"GCJw","./resolveConfigPaths":"waRp","./validateConfig":"aYcI"}],"ONhe":[function(require,module,exports) {
67
+ },{"./addCustomKeywords":"g5Ig","./schema/full":"CN2N"}],"AQMM":[function(require,module,exports) {
68
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=u(require("../../utilities/logger")),t=u(require("./loadConfig")),r=require("path"),d=u(require("lodash.merge"));function u(e){return e&&e.__esModule?e:{default:e}}const l=(u,i)=>{if(u.extends){e.default.debug("Extends field found, resolving");const n=(0,r.resolve)(i,u.extends),o=(0,t.default)(n),s=l(o,i),a=(0,d.default)({},s,u);return delete a.extends,a}return e.default.debug("No extends field, returning partial config"),u};var i=l;exports.default=i;
69
+ },{"../../utilities/logger":"XvyO","./loadConfig":"GCJw"}],"Sx1d":[function(require,module,exports) {
70
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("path"),o=require("fs"),r=u(require("find-up")),t=u(require("./loadConfig")),i=u(require("./resolveConfigPaths")),n=u(require("./validateConfig")),d=u(require("../../utilities/logger")),f=u(require("./computeFullProjectConfig"));function u(e){return e&&e.__esModule?e:{default:e}}var a=(u=null)=>{if(null===u){if(d.default.debug("No config path provided, searching for one"),!(u=r.default.sync("todesktop.json")))throw new Error("Can not find todesktop.json in this folder or any parent folders")}else{if(void 0===u||""===u)throw d.default.error("Provided config path is empty"),new Error("No config path provided");if(u=(0,e.resolve)(process.cwd(),u),!(0,o.existsSync)(u))throw d.default.error("Provided config path does not exist"),new Error(`Config file not found at ${u}`)}const a=(0,e.dirname)(u),s=(0,t.default)(u);s.appPath=s.appPath||".";const l=(0,f.default)(s,a);return(0,n.default)({config:l,projectRoot:a}),{config:(0,i.default)({config:l,projectRoot:a}),unprocessedConfig:l,projectRoot:a}};exports.default=a;
71
+ },{"./loadConfig":"GCJw","./resolveConfigPaths":"waRp","./validateConfig":"aYcI","../../utilities/logger":"XvyO","./computeFullProjectConfig":"AQMM"}],"ONhe":[function(require,module,exports) {
70
72
  "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=e=>{const t=["linux","mac","windows"].every(t=>e[t].shouldSkip||"succeeded"===e[t].status||"failed"===e[t].status&&2===e[t].numberOfAttemptedBuilds),s=["linux","mac","windows"].some(t=>"failed"===e[t].status);return t&&s};exports.default=e;
71
73
  },{}],"rSIG":[function(require,module,exports) {
72
74
  "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=t(require("./firestore")),r=t(require("./logger"));function t(e){return e&&e.__esModule?e:{default:e}}var o=async(t,o)=>{return new Promise((s,a)=>{r.default.debug({key:t},"subscribeToFirebaseDoc"),e.default.doc(t).onSnapshot(e=>{o({snapshot:e,data:e.exists?e.data():void 0}),s()},e=>{a(e)})})};exports.default=o;
@@ -75,7 +77,7 @@ parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcel
75
77
  },{"./subscribeToFirebaseDoc":"rSIG"}],"thz1":[function(require,module,exports) {
76
78
  "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=r(require("./firestore"));function t(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,a=new WeakMap;return(t=function(e){return e?a:r})(e)}function r(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var a=t(r);if(a&&a.has(e))return a.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var i=o?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u]}return n.default=e,a&&a.set(e,n),n}const a=e=>e.get().then(e=>{const t=[];return e.forEach(e=>t.push(e.data())),t}),n=t=>e.default.collection(`users/${t}/acceptedUsers`),o=async t=>{const{uid:r,email:o}=(0,e.currentUser)(),u={id:r,label:o},i=[u,...(await a(n(r))).map(e=>({id:e.id,label:e.email}))];for(const a of i)try{if((await e.default.doc(`users/${a.id}/applications/${t}`).get()).exists)return a}catch(c){}return u};var u=o;exports.default=u;
77
79
  },{"./firestore":"gzUX"}],"PlpY":[function(require,module,exports) {
78
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("ink"),t=b(require("prop-types")),r=h(require("react")),i=b(require("./BuildProgress")),u=b(require("./ErrorDisplay")),n=b(require("./MainLayout")),a=b(require("../utilities/getLatestBuildId")),d=b(require("../utilities/projectConfig/getProjectConfig")),o=b(require("../utilities/logForCI")),l=b(require("../utilities/shouldExitOnBuildFailure")),s=b(require("../utilities/subscribeToBuild")),f=b(require("../utilities/useExit")),c=b(require("../utilities/findAppUserId"));function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(p=function(e){return e?r:t})(e)}function h(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=p(t);if(r&&r.has(e))return r.get(e);var i={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if("default"!==n&&Object.prototype.hasOwnProperty.call(e,n)){var a=u?Object.getOwnPropertyDescriptor(e,n):null;a&&(a.get||a.set)?Object.defineProperty(i,n,a):i[n]=e[n]}return i.default=e,r&&r.set(e,i),i}function b(e){return e&&e.__esModule?e:{default:e}}const y=({commandUsed:t,id:p})=>{const h=(0,f.default)(),[{appId:b,arbitraryMessageComponent:y,build:E,error:g,hasBuildEverFailed:m,isLoading:w},v]=(0,r.useState)({appId:null,arbitraryMessageComponent:null,build:null,error:null,hasBuildEverFailed:!1,isLoading:!0}),q=e=>{const t=e.response?e.response.data:e;(0,o.default)(t),v(e=>({...e,error:t}))};if((0,r.useEffect)(()=>{let t;return async function(){let i;try{i=(0,d.default)().config}catch(o){return void v(e=>({...e,error:o}))}const{id:u}=await(0,c.default)(i.id),n=e=>{(0,s.default)({appId:i.id,buildId:e,onDataReceived:t=>{t||q(new Error(`No such build exists (${e}). Please contact us if this is an error`)),v(e=>({...e,appId:i.id,build:t,isLoading:!1}))},userId:u}).then(e=>{t=e}).catch(q)};p?n(p):(0,a.default)({appId:i.id,userId:u}).catch(q).then(t=>{if(t)return n(t);v(t=>({...t,arbitraryMessageComponent:r.default.createElement(e.Text,null,"There are no builds yet")}))})}(),()=>{t&&t()}},[p]),(0,r.useEffect)(()=>{m&&(0,l.default)(E)&&setTimeout(()=>h(new Error("Build has failed")),10)},[E,h,m]),(0,r.useEffect)(()=>{y&&setTimeout(()=>h(new Error("Validation failed")),10)},[y,h]),g)return r.default.createElement(u.default,{commandUsed:t,error:g});if(y)return y;if(w)return r.default.createElement(e.Text,null,"Loading...");return r.default.createElement(n.default,{appId:b,appName:E.appName,appVersion:E.appVersion,build:E,commandUsed:t,hasBuildEverFailed:m},r.default.createElement(i.default,{build:E,onBuildFailure:()=>{m||v(e=>({...e,hasBuildEverFailed:!0}))}}))};y.propTypes={id:(e,t,r)=>{if(1!==[e.id,e.shouldViewLatest].filter(Boolean).length)return new Error(`Exactly one of 'id' and 'shouldViewLatest' must be specified in '${r}'`);const i=typeof e.id;return["string","undefined"].includes(i)?void 0:new Error(`'id' is a '${i}', not a string, in '${r}'.`)},commandUsed:t.default.string.isRequired,shouldViewLatest:(e,t,r)=>{if(1!==[e.id,e.shouldViewLatest].filter(Boolean).length)return new Error(`Exactly one of 'id' and 'shouldViewLatest' must be specified in '${r}'`);const i=typeof e.shouldViewLatest;return["boolean","undefined"].includes(i)?void 0:new Error(`'shouldViewLatest' is a '${i}', not a boolean, in '${r}'.`)}};var E=y;exports.default=E;
80
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("ink"),t=g(require("prop-types")),r=h(require("react")),i=g(require("./BuildProgress")),n=g(require("./ErrorDisplay")),u=g(require("./MainLayout")),a=g(require("../utilities/getLatestBuildId")),d=g(require("../utilities/projectConfig/getProjectConfig")),o=g(require("../utilities/logForCI")),l=g(require("../utilities/shouldExitOnBuildFailure")),s=g(require("../utilities/subscribeToBuild")),f=g(require("../utilities/useExit")),c=g(require("../utilities/findAppUserId"));function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(p=function(e){return e?r:t})(e)}function h(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=p(t);if(r&&r.has(e))return r.get(e);var i={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var a=n?Object.getOwnPropertyDescriptor(e,u):null;a&&(a.get||a.set)?Object.defineProperty(i,u,a):i[u]=e[u]}return i.default=e,r&&r.set(e,i),i}function g(e){return e&&e.__esModule?e:{default:e}}const b=({commandUsed:t,id:p,configPath:h})=>{const g=(0,f.default)(),[{appId:b,arbitraryMessageComponent:y,build:E,error:m,hasBuildEverFailed:w,isLoading:v},q]=(0,r.useState)({appId:null,arbitraryMessageComponent:null,build:null,error:null,hasBuildEverFailed:!1,isLoading:!0}),L=e=>{const t=e.response?e.response.data:e;(0,o.default)(t),q(e=>({...e,error:t}))};if((0,r.useEffect)(()=>{let t;return async function(){let i;try{i=(0,d.default)(h).config}catch(o){return void q(e=>({...e,error:o}))}const{id:n}=await(0,c.default)(i.id),u=e=>{(0,s.default)({appId:i.id,buildId:e,onDataReceived:t=>{t||L(new Error(`No such build exists (${e}). Please contact us if this is an error`)),q(e=>({...e,appId:i.id,build:t,isLoading:!1}))},userId:n}).then(e=>{t=e}).catch(L)};p?u(p):(0,a.default)({appId:i.id,userId:n}).catch(L).then(t=>{if(t)return u(t);q(t=>({...t,arbitraryMessageComponent:r.default.createElement(e.Text,null,"There are no builds yet")}))})}(),()=>{t&&t()}},[p]),(0,r.useEffect)(()=>{w&&(0,l.default)(E)&&setTimeout(()=>g(new Error("Build has failed")),10)},[E,g,w]),(0,r.useEffect)(()=>{y&&setTimeout(()=>g(new Error("Validation failed")),10)},[y,g]),m)return r.default.createElement(n.default,{commandUsed:t,error:m});if(y)return y;if(v)return r.default.createElement(e.Text,null,"Loading...");return r.default.createElement(u.default,{appId:b,appName:E.appName,appVersion:E.appVersion,build:E,commandUsed:t,hasBuildEverFailed:w},r.default.createElement(i.default,{build:E,onBuildFailure:()=>{w||q(e=>({...e,hasBuildEverFailed:!0}))}}))};b.propTypes={id:(e,t,r)=>{if(1!==[e.id,e.shouldViewLatest].filter(Boolean).length)return new Error(`Exactly one of 'id' and 'shouldViewLatest' must be specified in '${r}'`);const i=typeof e.id;return["string","undefined"].includes(i)?void 0:new Error(`'id' is a '${i}', not a string, in '${r}'.`)},commandUsed:t.default.string.isRequired,shouldViewLatest:(e,t,r)=>{if(1!==[e.id,e.shouldViewLatest].filter(Boolean).length)return new Error(`Exactly one of 'id' and 'shouldViewLatest' must be specified in '${r}'`);const i=typeof e.shouldViewLatest;return["boolean","undefined"].includes(i)?void 0:new Error(`'shouldViewLatest' is a '${i}', not a boolean, in '${r}'.`)},configPath:t.default.string};var y=b;exports.default=y;
79
81
  },{"./BuildProgress":"odFL","./ErrorDisplay":"f0Jz","./MainLayout":"T5Az","../utilities/getLatestBuildId":"EqTV","../utilities/projectConfig/getProjectConfig":"Sx1d","../utilities/logForCI":"Sre8","../utilities/shouldExitOnBuildFailure":"ONhe","../utilities/subscribeToBuild":"ohCc","../utilities/useExit":"QLfx","../utilities/findAppUserId":"thz1"}],"krS3":[function(require,module,exports) {
80
82
  "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("ink"),t=u(require("prop-types")),r=u(require("react"));function u(e){return e&&e.__esModule?e:{default:e}}const a=({keyDetails:t,...u})=>{let a="└";return a+=Object.values(t).map(({width:e})=>"─".repeat(e+2)).join("┴"),a+="┘",r.default.createElement(e.Box,u,r.default.createElement(e.Text,null,a))};a.propTypes={keyDetails:t.default.object.isRequired};var l=a;exports.default=l;
81
83
  },{}],"hUnH":[function(require,module,exports) {
@@ -95,11 +97,11 @@ parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcel
95
97
  },{"./firestore":"gzUX","./logger":"XvyO"}],"oShw":[function(require,module,exports) {
96
98
  "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=r(require("date-fns"));function t(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,n=new WeakMap;return(t=function(e){return e?n:r})(e)}function r(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=t(r);if(n&&n.has(e))return n.get(e);var a={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var f=o?Object.getOwnPropertyDescriptor(e,u):null;f&&(f.get||f.set)?Object.defineProperty(a,u,f):a[u]=e[u]}return a.default=e,n&&n.set(e,a),a}var n=t=>e.formatDistance(new Date(t),new Date)+" ago";exports.default=n;
97
99
  },{}],"me3W":[function(require,module,exports) {
98
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("ink"),t=m(require("prop-types")),r=g(require("react")),i=m(require("./ErrorDisplay")),l=m(require("./Table")),a=m(require("../utilities/capitalize")),n=m(require("../utilities/getBuilds")),o=m(require("../utilities/projectConfig/getProjectConfig")),u=m(require("../utilities/getRelativeDateFromDateString")),s=m(require("../utilities/logForCI")),d=m(require("../utilities/useInput")),f=m(require("../utilities/useExit")),c=m(require("../utilities/findAppUserId"));function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(p=function(e){return e?r:t})(e)}function g(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=p(t);if(r&&r.has(e))return r.get(e);var i={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var n=l?Object.getOwnPropertyDescriptor(e,a):null;n&&(n.get||n.set)?Object.defineProperty(i,a,n):i[a]=e[a]}return i.default=e,r&&r.set(e,i),i}function m(e){return e&&e.__esModule?e:{default:e}}const h=({commandUsed:t})=>{const p=(0,f.default)(),[{builds:g,error:m,hasMoreToLoad:h,isInitialLoadComplete:y,isLoading:w,projectConfig:b,startAfter:C,user:L},q]=(0,r.useState)({builds:[],error:null,hasMoreToLoad:!0,isInitialLoadComplete:!1,isLoading:!1,projectConfig:null,startAfter:null,user:null});if((0,d.default)()((e,t)=>{if(t.escape&&p()," "===e||t.downArrow||t.pageDown||t.return){if(!y||!h)return;q(e=>({...e,startAfter:g[g.length-1].createdAt}))}}),(0,r.useEffect)(()=>{!async function(){if(m||w||y&&(!h||!C))return;let e;q(e=>({...e,isLoading:!0}));try{e=b||(0,o.default)().config}catch(r){return void q(e=>({...e,error:r}))}const t=await(0,c.default)(e.id);(0,n.default)({appId:e.id,limit:6,startAfter:C,userId:t.id}).then(r=>{q(i=>{const l={hasMoreToLoad:r.length>5,isInitialLoadComplete:!0,isLoading:!1,projectConfig:e,startAfter:null,user:t};return r.length&&(l.builds=[...i.builds,...r.slice(0,5)]),{...i,...l}})}).catch(e=>{(0,s.default)(e),q(t=>({...t,error:e,isLoading:!1}))})}()},[m,h,y,w,b,C]),(0,r.useEffect)(()=>{h||setTimeout(p,10)},[p,h]),m)return r.default.createElement(i.default,{commandUsed:t,error:m});if(!y)return r.default.createElement(e.Text,null,"Loading...");if(g.length){const t=g.map(e=>({ID:e.id,Version:e.appVersion||"unknown","Creation date":(0,u.default)(e.createdAt),Status:(0,a.default)(e.status),"Release date":e.releasedAt?(0,u.default)(e.releasedAt):"Unreleased",Owner:L?L.label:"unknown"})),i=({key:e,props:t,value:r})=>{const i={...t};if("Status"===e){const e=r.toLowerCase();"succeeded"===e?i.color="green":"failed"===e?i.color="red":"cancelled"===e&&(i.dimColor=!0)}else"Release date"===e&&"unreleased"===r.toLowerCase()&&(i.dimColor=!0);return i};return r.default.createElement(r.Fragment,null,r.default.createElement(l.default,{getCellTextProps:i,data:t}),g.length>0?r.default.createElement(e.Box,null,r.default.createElement(e.Text,{color:"gray",dimColor:!0},w?"Loading more...":h?`Showing the latest ${g.length} builds. Press space/down to load more.`:`Showing all (${g.length}) builds`)):null)}return r.default.createElement(e.Text,null,"There are no builds yet")};h.propTypes={commandUsed:t.default.string.isRequired};var y=h;exports.default=y;
100
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("ink"),t=m(require("prop-types")),r=g(require("react")),i=m(require("./ErrorDisplay")),a=m(require("./Table")),l=m(require("../utilities/capitalize")),n=m(require("../utilities/getBuilds")),o=m(require("../utilities/projectConfig/getProjectConfig")),u=m(require("../utilities/getRelativeDateFromDateString")),s=m(require("../utilities/logForCI")),d=m(require("../utilities/useInput")),f=m(require("../utilities/useExit")),c=m(require("../utilities/findAppUserId"));function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(p=function(e){return e?r:t})(e)}function g(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=p(t);if(r&&r.has(e))return r.get(e);var i={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var n=a?Object.getOwnPropertyDescriptor(e,l):null;n&&(n.get||n.set)?Object.defineProperty(i,l,n):i[l]=e[l]}return i.default=e,r&&r.set(e,i),i}function m(e){return e&&e.__esModule?e:{default:e}}const h=({commandUsed:t,configPath:p})=>{const g=(0,f.default)(),[{builds:m,error:h,hasMoreToLoad:y,isInitialLoadComplete:w,isLoading:b,projectConfig:C,startAfter:L,user:q},j]=(0,r.useState)({builds:[],error:null,hasMoreToLoad:!0,isInitialLoadComplete:!1,isLoading:!1,projectConfig:null,startAfter:null,user:null});if((0,d.default)()((e,t)=>{if(t.escape&&g()," "===e||t.downArrow||t.pageDown||t.return){if(!w||!y)return;j(e=>({...e,startAfter:m[m.length-1].createdAt}))}}),(0,r.useEffect)(()=>{!async function(){if(h||b||w&&(!y||!L))return;let e;j(e=>({...e,isLoading:!0}));try{e=C||(0,o.default)(p).config}catch(r){return void j(e=>({...e,error:r}))}const t=await(0,c.default)(e.id);(0,n.default)({appId:e.id,limit:6,startAfter:L,userId:t.id}).then(r=>{j(i=>{const a={hasMoreToLoad:r.length>5,isInitialLoadComplete:!0,isLoading:!1,projectConfig:e,startAfter:null,user:t};return r.length&&(a.builds=[...i.builds,...r.slice(0,5)]),{...i,...a}})}).catch(e=>{(0,s.default)(e),j(t=>({...t,error:e,isLoading:!1}))})}()},[h,y,w,b,C,L]),(0,r.useEffect)(()=>{y||setTimeout(g,10)},[g,y]),h)return r.default.createElement(i.default,{commandUsed:t,error:h});if(!w)return r.default.createElement(e.Text,null,"Loading...");if(m.length){const t=m.map(e=>({ID:e.id,Version:e.appVersion||"unknown","Creation date":(0,u.default)(e.createdAt),Status:(0,l.default)(e.status),"Release date":e.releasedAt?(0,u.default)(e.releasedAt):"Unreleased",Owner:q?q.label:"unknown"})),i=({key:e,props:t,value:r})=>{const i={...t};if("Status"===e){const e=r.toLowerCase();"succeeded"===e?i.color="green":"failed"===e?i.color="red":"cancelled"===e&&(i.dimColor=!0)}else"Release date"===e&&"unreleased"===r.toLowerCase()&&(i.dimColor=!0);return i};return r.default.createElement(r.Fragment,null,r.default.createElement(a.default,{getCellTextProps:i,data:t}),m.length>0?r.default.createElement(e.Box,null,r.default.createElement(e.Text,{color:"gray",dimColor:!0},b?"Loading more...":y?`Showing the latest ${m.length} builds. Press space/down to load more.`:`Showing all (${m.length}) builds`)):null)}return r.default.createElement(e.Text,null,"There are no builds yet")};h.propTypes={commandUsed:t.default.string.isRequired,configPath:t.default.string};var y=h;exports.default=y;
99
101
  },{"./ErrorDisplay":"f0Jz","./Table":"B2mJ","../utilities/capitalize":"FZpx","../utilities/getBuilds":"H47U","../utilities/projectConfig/getProjectConfig":"Sx1d","../utilities/getRelativeDateFromDateString":"oShw","../utilities/logForCI":"Sre8","../utilities/useInput":"CLRu","../utilities/useExit":"QLfx","../utilities/findAppUserId":"thz1"}],"AYMC":[function(require,module,exports) {
100
102
  "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=i(require("chalk")),t=i(require("is-installed-globally")),o=i(require("latest-version")),r=i(require("pkg-up")),s=i(require("semver"));function i(e){return e&&e.__esModule?e:{default:e}}var l=()=>{if(process.env.AVA_PATH)return;const i=require(r.default.sync({cwd:__dirname}));(0,o.default)(i.name).then(o=>{if(s.default.gt(o,i.version)){const r=e.default.greenBright(`npm install ${t.default?"--location=global":"--save-dev"} @todesktop/cli`);console.log(`Your version of @todesktop/cli is out of date.\nRun ${r} to update to v${o}.`),s.default.satisfies(o,`^${i.version}`)||(console.log("CLI is exiting because it is out out of date."),process.exit(1))}})};exports.default=l;
101
103
  },{}],"EHrm":[function(require,module,exports) {
102
- module.exports={private:!1,publishConfig:{access:"public"},name:"@todesktop/cli",version:"1.2.4",license:"MIT",author:"Dave Jeffery <dave@todesktop.com> (http://www.todesktop.com/)",homepage:"https://todesktop.com/cli",bugs:{email:"dave@todesktop.com"},bin:{todesktop:"./build/cli.js"},engines:{node:">=12"},scripts:{dev:"cp-cli dev.env .env && pastel dev","dev:prod":"cp-cli prod.env .env && pastel dev",build:"cross-env NODE_ENV=production pastel build && cp-cli prod.env .env && cp node_modules/pastel/boot.js build/boot.js && sed -i'.bak' 's@pastel\\/boot@.\\/boot@g' build/cli.js",lint:"eslint .","lint--fix":"eslint . --fix",release:"npm run build && npx np --tag=latest","release-beta":"npm run build && npx np --any-branch --no-tests --tag=beta",test:"npm run build && ava","test--watch":"npm test -- --watch"},files:["build","docs",".env","LICENSE","README.md"],dependencies:{"@babel/runtime":"^7.18.9","@sentry/node":"^5.27.2",ajv:"^6.12.6","analytics-node":"^4.0.1",archiver:"^5.2.0",axios:"^0.21.1","better-ajv-errors":"^1.2.0",blacklist:"^1.1.4",bunyan:"^1.8.14","camelcase-keys":"^5.2.0",chalk:"^4.1.0",conf:"^7.1.2","date-fns":"^2.28.0",decamelize:"^1.2.0",del:"^6.0.0",dotenv:"^8.2.0",du:"^1.0.0","email-regex":"^4.0.0","fast-glob":"^3.2.4","final-form":"^4.20.1","find-up":"^5.0.0",firebase:"^7.24.0","git-rev-sync":"^3.0.2",ink:"^3.2.0","ink-gradient":"^2.0.0","ink-link":"^2.0.0","ink-select-input":"^4.2.1","ink-text-input":"^4.0.1","is-ci":"^3.0.1","is-installed-globally":"^0.3.2","latest-version":"^5.1.0","lodash.throttle":"^4.1.1","parse-author":"^2.0.0","pkg-up":"^3.1.0","pretty-bytes":"^5.4.1","prop-types":"^15.7.2",react:"^17.0.2","react-final-form":"^6.5.1",semver:"^7.3.2","stream-to-array":"^2.3.0",superagent:"^7.1.3",uuid:"^8.3.1","xdg-basedir":"^4.0.0",yargs:"^15.4.1"},devDependencies:{"@ava/babel":"^1.0.1","@babel/core":"^7.12.3","@babel/plugin-transform-runtime":"^7.12.1","@babel/preset-env":"^7.11.5","@babel/register":"^7.12.1","@types/bunyan":"^1.8.6",ava:"^4.3.1","babel-preset-es2015":"^6.24.1","cp-cli":"^2.0.0","cross-env":"^7.0.2",eslint:"^7.6.0","eslint-config-prettier":"^6.11.0","eslint-config-standard":"^14.1.1","eslint-plugin-import":"^2.22.1","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.4","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"^7.21.4","eslint-plugin-react-hooks":"^4.2.0","eslint-plugin-standard":"^4.0.1",execa:"^4.0.3","extract-zip":"^2.0.1","fs-extra":"^9.0.1",husky:"^4.3.0","lint-staged":"^10.2.11",pastel:"^1.1.1",prettier:"^2.1.2",proxyquire:"^2.1.3",sinon:"^9.0.3"},ava:{files:["test/**/*.js","!test/fixtures/**/*","!test/utilities/**/*"],require:["@babel/register"],timeout:"10m"},"lint-staged":{"**/*.js":["eslint . --fix","git add"]},husky:{hooks:{"pre-commit":"lint-staged"}},overrides:{pastel:{"parcel-bundler":{deasync:"0.1.27"}}},resolutions:{"pastel/parcel-bundler/deasync":"0.1.24",ink:"3.2.0",react:"17.0.2"},packageExtensions:{"ink-progress-bar@*":{dependencies:{react:"*",ink:"*"}}}};
104
+ module.exports={private:!1,publishConfig:{access:"public"},name:"@todesktop/cli",version:"1.4.0",license:"MIT",author:"Dave Jeffery <dave@todesktop.com> (http://www.todesktop.com/)",homepage:"https://todesktop.com/cli",bugs:{email:"dave@todesktop.com"},bin:{todesktop:"./build/cli.js"},engines:{node:">=12"},scripts:{dev:"cp-cli dev.env .env && pastel dev","dev:prod":"cp-cli prod.env .env && pastel dev",build:"cross-env NODE_ENV=production pastel build && cp-cli prod.env .env && cp node_modules/pastel/boot.js build/boot.js && sed -i'.bak' 's@pastel\\/boot@.\\/boot@g' build/cli.js","build:dev":"cross-env NODE_ENV=development pastel build && cp-cli prod.env .env && cp node_modules/pastel/boot.js build/boot.js && sed -i'.bak' 's@pastel\\/boot@.\\/boot@g' build/cli.js",lint:"eslint .","lint--fix":"eslint . --fix",release:"npm run build && npx np --tag=latest","release-beta":"npm run build && npx np --any-branch --no-tests --tag=beta",test:"npm run build && ava","test--watch":"npm test -- --watch"},files:["build","docs",".env","LICENSE","README.md"],dependencies:{"@babel/runtime":"^7.18.9","@sentry/node":"^5.27.2",ajv:"^6.12.6","analytics-node":"^4.0.1",archiver:"^5.2.0",axios:"^0.21.1","better-ajv-errors":"^1.2.0",blacklist:"^1.1.4",bunyan:"^1.8.14","camelcase-keys":"^5.2.0",chalk:"^4.1.0",conf:"^7.1.2","date-fns":"^2.28.0",decamelize:"^1.2.0",del:"^6.0.0",dotenv:"^8.2.0",du:"^1.0.0","email-regex":"^4.0.0","fast-glob":"^3.2.4","final-form":"^4.20.1","find-up":"^5.0.0",firebase:"^7.24.0","git-rev-sync":"^3.0.2",ink:"^3.2.0","ink-gradient":"^2.0.0","ink-link":"^2.0.0","ink-select-input":"^4.2.1","ink-text-input":"^4.0.1","is-ci":"^3.0.1","is-installed-globally":"^0.3.2","latest-version":"^5.1.0","lodash.merge":"^4.6.2","lodash.throttle":"^4.1.1","parse-author":"^2.0.0","pkg-up":"^3.1.0","pretty-bytes":"^5.4.1","prop-types":"^15.7.2",react:"^17.0.2","react-final-form":"^6.5.1",semver:"^7.3.2","stream-to-array":"^2.3.0",superagent:"^7.1.3",uuid:"^8.3.1","xdg-basedir":"^4.0.0",yargs:"^15.4.1"},devDependencies:{"@ava/babel":"^1.0.1","@babel/core":"^7.12.3","@babel/plugin-transform-runtime":"^7.12.1","@babel/preset-env":"^7.11.5","@babel/register":"^7.12.1","@types/bunyan":"^1.8.6",ava:"^4.3.1","babel-preset-es2015":"^6.24.1","cp-cli":"^2.0.0","cross-env":"^7.0.2",eslint:"^7.6.0","eslint-config-prettier":"^6.11.0","eslint-config-standard":"^14.1.1","eslint-plugin-import":"^2.22.1","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.4","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"^7.21.4","eslint-plugin-react-hooks":"^4.2.0","eslint-plugin-standard":"^4.0.1",execa:"^4.0.3","extract-zip":"^2.0.1","fs-extra":"^9.0.1",husky:"^4.3.0","lint-staged":"^10.2.11",pastel:"^1.1.1",prettier:"^2.1.2",proxyquire:"^2.1.3",sinon:"^9.0.3"},ava:{files:["test/**/*.js","!test/fixtures/**/*","!test/utilities/**/*"],require:["@babel/register"],timeout:"10m"},"lint-staged":{"**/*.js":["eslint . --fix","git add"]},husky:{hooks:{"pre-commit":"lint-staged"}},overrides:{pastel:{"parcel-bundler":{deasync:"0.1.27"}}},resolutions:{"pastel/parcel-bundler/deasync":"0.1.24",ink:"3.2.0",react:"17.0.2"},packageExtensions:{"ink-progress-bar@*":{dependencies:{react:"*",ink:"*"}}}};
103
105
  },{}],"SYaU":[function(require,module,exports) {
104
106
  "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=c(require("@sentry/node")),t=u(require("os")),r=u(require("../../package.json")),n=require("../utilities/configStore"),o=u(require("../utilities/projectConfig/getProjectConfig")),a=u(require("path")),i=u(require("./getEnvironmentVariables"));function u(e){return e&&e.__esModule?e:{default:e}}function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(s=function(e){return e?r:t})(e)}function c(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=s(t);if(r&&r.has(e))return r.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(n,a,i):n[a]=e[a]}return n.default=e,r&&r.set(e,n),n}var f=()=>{const{TODESKTOP_CLI_SENTRY_DSN:a}=(0,i.default)();a&&(e.init({dsn:a}),e.configureScope(e=>{try{e.setUser({email:(0,n.getAuthConfig)().email})}catch(a){}try{e.setContext("os",{name:t.default.platform(),version:t.default.release()})}catch(a){}try{e.setContext("runtime",{name:"Node.js",version:process.version})}catch(a){}try{e.setContext("app",{app_name:r.default.name,app_version:r.default.version})}catch(a){}try{const t=(0,o.default)();e.setExtra("config",t)}catch(a){}}))};exports.default=f;
105
107
  },{"../../package.json":"EHrm","../utilities/configStore":"ffKF","../utilities/projectConfig/getProjectConfig":"Sx1d","./getEnvironmentVariables":"gwcX"}],"rPNZ":[function(require,module,exports) {
@@ -107,6 +109,6 @@ module.exports={private:!1,publishConfig:{access:"public"},name:"@todesktop/cli"
107
109
  },{"./exitIfCLIOutOfDate":"AYMC","./initSentry":"SYaU"}],"CV1E":[function(require,module,exports) {
108
110
  "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useAnalyticsCommand=void 0;var e=require("react"),t=require("./firestore"),i=require("./analytics"),r=s(require("../utilities/logger")),a=s(require("../utilities/projectConfig/getProjectConfig"));function s(e){return e&&e.__esModule?e:{default:e}}const o=(s,o={},u={})=>{const[n,c]=(0,e.useState)(!1);r.default.info({command:s,flags:o,properties:u},"useAnalyticsCommand");try{o.projectPath&&(u={...u,...(0,a.default)()})}catch(l){}return(0,e.useEffect)(()=>{const e=(0,t.onUserAuth)(async t=>{t.uid&&(0,i.identify)(t.uid,{email:t.email,displayName:t.displayName},()=>{(0,i.track)(i.ANALYTICS_EVENT.CLI_COMMAND,{...u,flags:o,command:s},()=>c(!0)),e&&e()})});setTimeout(()=>c(!0),5e3)},[]),{hasAttemptedTracking:n}};exports.useAnalyticsCommand=o;
109
111
  },{"./firestore":"gzUX","./analytics":"ALju","../utilities/logger":"XvyO","../utilities/projectConfig/getProjectConfig":"Sx1d"}],"U8Bu":[function(require,module,exports) {
110
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=o(require("prop-types")),t=o(require("react")),l=o(require("../lib/utilities/checkIfReactIsUsable")),i=o(require("../lib/components/LoginHOC")),u=o(require("../lib/components/ErrorBoundary")),r=o(require("../lib/components/ViewBuild")),d=o(require("../lib/components/ViewBuilds")),a=o(require("../lib/utilities/onCommand")),s=require("../lib/utilities/useAnalytics");function o(e){return e&&e.__esModule?e:{default:e}}(0,a.default)();const n=({id:e,latest:a})=>{(0,l.default)(),(0,s.useAnalyticsCommand)("builds",{id:e,shouldViewLatest:a});return t.default.createElement(u.default,null,t.default.createElement(i.default,null,(()=>{let l="todesktop builds";return e?(l+=" <id>",t.default.createElement(r.default,{commandUsed:l,id:e})):a?(l+=" --latest",t.default.createElement(r.default,{commandUsed:l,shouldViewLatest:!0})):t.default.createElement(d.default,{commandUsed:l})})()))};n.propTypes={id:e.default.string,latest:e.default.bool},n.positionalArgs=["id"];var c=n;exports.default=c;
112
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=o(require("prop-types")),t=o(require("react")),l=o(require("../lib/utilities/checkIfReactIsUsable")),i=o(require("../lib/components/LoginHOC")),u=o(require("../lib/components/ErrorBoundary")),a=o(require("../lib/components/ViewBuild")),r=o(require("../lib/components/ViewBuilds")),d=o(require("../lib/utilities/onCommand")),n=require("../lib/utilities/useAnalytics");function o(e){return e&&e.__esModule?e:{default:e}}(0,d.default)();const s=({id:e,latest:d,config:o=null})=>{(0,l.default)(),(0,n.useAnalyticsCommand)("builds",{id:e,shouldViewLatest:d,configPath:o});return t.default.createElement(u.default,null,t.default.createElement(i.default,null,(()=>{let l="todesktop builds";return e?(l+=" <id>",t.default.createElement(a.default,{commandUsed:l,id:e,configPath:o})):d?(l+=" --latest",t.default.createElement(a.default,{commandUsed:l,shouldViewLatest:!0,configPath:o})):t.default.createElement(r.default,{commandUsed:l,configPath:o})})()))};s.propTypes={id:e.default.string,latest:e.default.bool,config:e.default.string},s.positionalArgs=["id"];var c=s;exports.default=c;
111
113
  },{"../lib/utilities/checkIfReactIsUsable":"cb6D","../lib/components/LoginHOC":"nLy3","../lib/components/ErrorBoundary":"XM8F","../lib/components/ViewBuild":"PlpY","../lib/components/ViewBuilds":"me3W","../lib/utilities/onCommand":"rPNZ","../lib/utilities/useAnalytics":"CV1E"}]},{},["U8Bu"], null)
112
114
  //# sourceMappingURL=/builds.js.map