@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.
- package/README.md +62 -31
- package/build/commands/build.js +15 -11
- package/build/commands/build.js.map +1 -1
- package/build/commands/builds.js +9 -7
- package/build/commands/builds.js.map +1 -1
- package/build/commands/logout.js +8 -6
- package/build/commands/logout.js.map +1 -1
- package/build/commands/release.js +9 -7
- package/build/commands/release.js.map +1 -1
- package/build/commands/whoami.js +8 -6
- package/build/commands/whoami.js.map +1 -1
- package/build/commands.json +33 -9
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -12,7 +12,8 @@ For more information, visit the project [landing page](https://www.todesktop.com
|
|
|
12
12
|
- [Automating your builds (CI)](#automating-your-builds-ci)
|
|
13
13
|
- [Project configuration (todesktop.json)](#project-configuration-todesktopjson)
|
|
14
14
|
- [Build lifecycle hooks (package.json scripts)](#build-lifecycle-hooks-packagejson-scripts)
|
|
15
|
-
- [App package.json requirements](#packagejson-requirements)
|
|
15
|
+
- [App package.json requirements](#app-packagejson-requirements)
|
|
16
|
+
- [FAQs](#faqs)
|
|
16
17
|
- [Changelog](#changelog)
|
|
17
18
|
|
|
18
19
|
## Installation
|
|
@@ -125,13 +126,16 @@ This builds your Electron app with native installers, code signing, and so on ba
|
|
|
125
126
|
We also support:
|
|
126
127
|
|
|
127
128
|
- `todesktop build --code-sign=false`. Run a build with code-signing and notarization disabled. This is handy for testing builds quickly.
|
|
129
|
+
- `todesktop build --config=<path.to.another.todesktop.json>`. Run a build with a different configuration file.
|
|
128
130
|
- `todesktop release`. Release a build. This will publish a new download and an auto-update for existing users. By default it shows a list of builds for you to choose from.
|
|
129
131
|
- Use `todesktop release <id>` to release a specific build by ID.
|
|
130
132
|
- `todesktop release --latest` will release the latest build.
|
|
131
133
|
- Append `--force` to skip the interactive confirmation step.
|
|
134
|
+
- Append `--config=<path.to.another.todesktop.json>` to use a different configuration file.
|
|
132
135
|
- `todesktop builds`. View your recent builds.
|
|
133
136
|
- Use `todesktop builds <id>` to view a specific build and its progress.
|
|
134
137
|
- `todesktop builds --latest` will show the latest build and it's progress.
|
|
138
|
+
- Append `--config=<path.to.another.todesktop.json>` to use a different configuration file.
|
|
135
139
|
- `todesktop logout`. Logs you out.
|
|
136
140
|
- `todesktop whoami`. Prints the email of the account you're signed into.
|
|
137
141
|
- `todesktop --help`. Shows the help documentation.
|
|
@@ -318,6 +322,16 @@ The DMG windows position and size. In most cases, you will only want to specify
|
|
|
318
322
|
}
|
|
319
323
|
```
|
|
320
324
|
|
|
325
|
+
### `extends` - (optional) string
|
|
326
|
+
|
|
327
|
+
Default: `null`.
|
|
328
|
+
|
|
329
|
+
Example: `./todesktop.staging.json`.
|
|
330
|
+
|
|
331
|
+
This is the path to a base configuration file. This is especially useful for configuration sharing between staging and production builds. The base configuration file can be a relative path from the project root or an absolute path.
|
|
332
|
+
|
|
333
|
+
For more information about how to create a staging version of your app see: [How do I create a staging version of my app?](#how-do-i-create-a-staging-version-of-my-app).
|
|
334
|
+
|
|
321
335
|
### `extraContentFiles` - (optional) array of objects
|
|
322
336
|
|
|
323
337
|
Default: `[]`.
|
|
@@ -513,6 +527,25 @@ Default: The root [`icon`](#icon---string) is used.
|
|
|
513
527
|
|
|
514
528
|
The path to your application's Mac desktop icon. It must be an ICNS or PNG.
|
|
515
529
|
|
|
530
|
+
### `packageJson` - (optional) object
|
|
531
|
+
|
|
532
|
+
Default: `{}`
|
|
533
|
+
|
|
534
|
+
Example:
|
|
535
|
+
|
|
536
|
+
```js
|
|
537
|
+
"packageJson": {
|
|
538
|
+
"extends": "package.json",
|
|
539
|
+
"name": "example-app-canary",
|
|
540
|
+
"productName": "Example App Canary",
|
|
541
|
+
"dependencies": {
|
|
542
|
+
"electron": "21.0.1"
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
```
|
|
546
|
+
|
|
547
|
+
If you want to override the default `package.json` configuration, use the `packageJson` property. For example, you can use this to override the `productName` or `version` properties.
|
|
548
|
+
|
|
516
549
|
### `schemaVersion` - number
|
|
517
550
|
|
|
518
551
|
Example: `1`.
|
|
@@ -776,39 +809,28 @@ Note: **Do not put a token in this file**. You are specifying a literal value of
|
|
|
776
809
|
|
|
777
810
|
### How do I create a staging version of my app?
|
|
778
811
|
|
|
779
|
-
|
|
812
|
+
ToDesktop CLI supports the concept of a staging version of your app. This is useful if you want to test your app before releasing it to the public. To create a staging version of your app, you need to do the following:
|
|
780
813
|
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
const rootDir = path.join(__dirname, "..");
|
|
786
|
-
const packageJson = require(rootDir + "/package.json");
|
|
787
|
-
const toDesktopJson = require(rootDir + "/todesktop.json");
|
|
788
|
-
|
|
789
|
-
function modStaging() {
|
|
790
|
-
packageJson.name = "myapp-staging";
|
|
791
|
-
packageJson.productName = "My App Staging";
|
|
792
|
-
|
|
793
|
-
toDesktopJson.id = "220718gzrs4pfe8";
|
|
794
|
-
toDesktopJson.icon = "./resources/staging.png";
|
|
795
|
-
toDesktopJson.appId = "myapp.staging.app";
|
|
796
|
-
|
|
797
|
-
fs.writeFileSync(
|
|
798
|
-
rootDir + "/package.json",
|
|
799
|
-
JSON.stringify(packageJson, null, 2)
|
|
800
|
-
);
|
|
801
|
-
fs.writeFileSync(
|
|
802
|
-
rootDir + "/todesktop.json",
|
|
803
|
-
JSON.stringify(toDesktopJson, null, 2)
|
|
804
|
-
);
|
|
805
|
-
}
|
|
814
|
+
1. Create a new app in ToDesktop's web UI.
|
|
815
|
+
|
|
816
|
+
2. Create a new todesktop configuration file named `todesktop.staging.json`
|
|
806
817
|
|
|
807
|
-
|
|
818
|
+
3. Add the following to your `todesktop.staging.json` file:
|
|
819
|
+
|
|
820
|
+
```json
|
|
821
|
+
{
|
|
822
|
+
"extends": "./todesktop.json",
|
|
823
|
+
"id": "<ID_OF_YOUR_STAGING_APP>",
|
|
824
|
+
"appId": "myapp.staging.app",
|
|
825
|
+
"icon": "./resources/staging.png",
|
|
826
|
+
"packageJson": {
|
|
827
|
+
"name": "myapp-staging",
|
|
828
|
+
"productName": "My App (Staging)"
|
|
829
|
+
}
|
|
830
|
+
}
|
|
808
831
|
```
|
|
809
832
|
|
|
810
|
-
|
|
811
|
-
Then in your package.json, you could do something like this:
|
|
833
|
+
4. Then in your package.json, you could do something like this:
|
|
812
834
|
|
|
813
835
|
```js
|
|
814
836
|
{
|
|
@@ -816,7 +838,7 @@ Then in your package.json, you could do something like this:
|
|
|
816
838
|
// ...
|
|
817
839
|
"scripts": {
|
|
818
840
|
"todesktop-build": "todesktop build",
|
|
819
|
-
"todesktop-staging-build": "
|
|
841
|
+
"todesktop-staging-build": "todesktop build --config=./todesktop.staging.json",
|
|
820
842
|
},
|
|
821
843
|
}
|
|
822
844
|
```
|
|
@@ -825,6 +847,15 @@ Now you can run `npm run todesktop-build` to build the production app. Or you ca
|
|
|
825
847
|
|
|
826
848
|
## Changelog
|
|
827
849
|
|
|
850
|
+
### v1.4.0
|
|
851
|
+
|
|
852
|
+
- Adds `extends` and `packageJson` field to `todesktop.json` file.
|
|
853
|
+
- Added `--config` option to pass a different configuration file.
|
|
854
|
+
|
|
855
|
+
### v1.3.0
|
|
856
|
+
|
|
857
|
+
- Added support for delegated users and teams.
|
|
858
|
+
|
|
828
859
|
### v1.2.1
|
|
829
860
|
|
|
830
861
|
- Fix: When the build is finished the download link is now an Apple Silicon link if you are on an Apple Silicon Mac.
|
package/build/commands/build.js
CHANGED
|
@@ -60,9 +60,11 @@ parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcel
|
|
|
60
60
|
"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;
|
|
61
61
|
},{}],"aYcI":[function(require,module,exports) {
|
|
62
62
|
"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;
|
|
63
|
-
},{"./addCustomKeywords":"g5Ig","./schema/full":"CN2N"}],"
|
|
64
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=
|
|
65
|
-
},{"
|
|
63
|
+
},{"./addCustomKeywords":"g5Ig","./schema/full":"CN2N"}],"AQMM":[function(require,module,exports) {
|
|
64
|
+
"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;
|
|
65
|
+
},{"../../utilities/logger":"XvyO","./loadConfig":"GCJw"}],"Sx1d":[function(require,module,exports) {
|
|
66
|
+
"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;
|
|
67
|
+
},{"./loadConfig":"GCJw","./resolveConfigPaths":"waRp","./validateConfig":"aYcI","../../utilities/logger":"XvyO","./computeFullProjectConfig":"AQMM"}],"I8pf":[function(require,module,exports) {
|
|
66
68
|
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=u;var e=o(require("axios")),t=o(require("./getEnvironmentVariables")),r=o(require("./logger"));function o(e){return e&&e.__esModule?e:{default:e}}const{TODESKTOP_CLI_FIREBASE_FUNCTIONS_BASE:a}=(0,t.default)();async function u(t,o={},u={}){r.default.debug({functionName:t,body:o,config:u},"postToFirebaseFunction");try{const s=await e.default.post(`${a}${t}`,o,u);return r.default.debug({responseData:s.data},"postToFirebaseFunction: success"),s.data}catch(n){throw r.default.error({error:n},"postToFirebaseFunction: error"),n}}
|
|
67
69
|
},{"./getEnvironmentVariables":"gwcX","./logger":"XvyO"}],"rSIG":[function(require,module,exports) {
|
|
68
70
|
"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;
|
|
@@ -76,12 +78,14 @@ parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcel
|
|
|
76
78
|
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=a;var e=n(require("archiver")),r=n(require("du")),i=n(require("fs")),t=n(require("chalk")),o=n(require("./logger"));function n(e){return e&&e.__esModule?e:{default:e}}async function a({files:n,fileSizeLimit:a=20,onError:s,onProgress:u}){o.default.debug({files:n},"zip");const l=(0,e.default)("zip");l.on("warning",function(e){"ENOENT"===e.code?(console.warn(e),o.default.warn({err:e},"zip: stream warning ENOENT")):s(e)}),l.on("error",function(e){s(e)});const c=await Promise.all(n.map(async e=>{const t=i.default.lstatSync(e.from),o=t.isDirectory();return{...e,isDirectory:o,stats:t,size:o?await(0,r.default)(e.from):t.size}})),d=c.reduce((e,r)=>e+r.size,0);return d>1e6*a?(s(new Error([`\n\nYour app is larger than ${a}MB. Your app is ${t.default.bold.red.underline((d/1e6).toFixed(1)+"MB")}.\n`,"You may be including unnecessary files in your app(see the `appPath` and `appFiles` options).","If not, this limit can be raised by setting the `uploadSizeLimit` option.","Learn more at https://www.npmjs.com/package/@todesktop/cli#uploadsizelimit---optional-number"].join("\n"))),l):(c.forEach(({from:e,isDirectory:r,stats:i,to:t})=>{r?l.directory(e,t):l.file(e,{name:t,mode:i.mode})}),l.finalize(),l.on("progress",e=>u({...e,percentage:e.entries.processed/e.entries.total*100})),l)}
|
|
77
79
|
},{"./logger":"XvyO"}],"Y1TB":[function(require,module,exports) {
|
|
78
80
|
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=l(require("fast-glob")),o=p(require("fs")),t=p(require("path")),n=l(require("./generateS3Key")),i=l(require("./logger")),r=l(require("./uploadToS3")),a=l(require("./zip"));function s(e){if("function"!=typeof WeakMap)return null;var o=new WeakMap,t=new WeakMap;return(s=function(e){return e?t:o})(e)}function p(e,o){if(!o&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=s(o);if(t&&t.has(e))return t.get(e);var n={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e)if("default"!==r&&Object.prototype.hasOwnProperty.call(e,r)){var a=i?Object.getOwnPropertyDescriptor(e,r):null;a&&(a.get||a.set)?Object.defineProperty(n,r,a):n[r]=e[r]}return n.default=e,t&&t.set(e,n),n}function l(e){return e&&e.__esModule?e:{default:e}}const c=async(n,i,r)=>{const a=["!node_modules","!**/node_modules","!.git","!**/.git"];n&&n.length?a.push(...n,t.join(i,"package.json"),t.join(i,"package-lock.json"),t.join(i,"yarn.lock"),t.join(i,"pnpm-lock.yaml"),t.join(i,"shrinkwrap.yaml")):a.push("**");for(const e of["todesktop:beforeInstall","todesktop:afterPack"])r.scripts&&r.scripts[e]&&a.push(t.join(i,r.scripts[e]));const s=a.map(e=>{return(t.isAbsolute(e)?t.relative(i,e):e).replace(/\\/g,"/").replace(/\/+$/,"")}).filter(e=>!e.startsWith("..")&&!e.startsWith("!.."));let p=await(0,e.default)(s,{absolute:!0,cwd:i,dot:!0,followSymbolicLinks:!1,onlyDirectories:!1,onlyFiles:!0,globstar:!0,unique:!0});if("win32"===process.platform&&(p=p.map(e=>e.replace(/\//g,t.sep))),!p||!p.length)throw new Error("No files found to upload");if(!p.filter(e=>e.endsWith(".js")).length)throw new Error(`No .js files found to upload (${p[0]}). There's likely an issue with the appFiles option. Learn more at https://www.npmjs.com/package/@todesktop/cli#appfiles----optional-array-of-glob-patterns. If this is not the case, please contact us.`);{let e=i;if(r.main&&(e=t.join(e,r.main)),o.statSync(e).isDirectory()&&(e=t.join(e,"index.js")),!p.includes(e))throw new Error(`The "main" file specified in your package.json (${r.main?t.relative(i,e):"defaults to index.js"}) is not set to be uploaded to our servers. This is likely due to how you have configured the \`appFiles\` option. Learn more at https://www.npmjs.com/package/@todesktop/cli#appfiles----optional-array-of-glob-patterns. If this is not the case, please contact us.`)}return p.map(e=>({from:e,to:t.join("app",t.relative(i,e))}))};var u=async({appId:e,appPkgJson:o,buildId:s,config:p,onProgress:l})=>{i.default.debug({appId:e,appPkgJson:o,buildId:s,config:p,onProgress:l},"uploadApplicationSource");let u=0;const f=[...await c(p.appFiles,p.appPath,o),...(p.extraContentFiles||[]).map(({from:e,to:o="."})=>({from:e,to:t.join("extraContentFiles",o,t.basename(e))})),...(p.extraResources||[]).map(({from:e,to:o="."})=>({from:e,to:t.join("extraResources",o,t.basename(e))})),{from:p.icon,to:t.join("icons","appIcon"+t.extname(p.icon))}];return p.linux&&p.linux.icon&&f.push({from:p.linux.icon,to:t.join("icons","appIcon-linux"+t.extname(p.linux.icon))}),p.mac&&(p.mac.entitlements&&f.push({from:p.mac.entitlements,to:t.join("other","mac","entitlements.mac.plist")}),p.mac.icon&&f.push({from:p.mac.icon,to:t.join("icons","appIcon-mac"+t.extname(p.mac.icon))})),p.dmg&&p.dmg.background&&f.push({from:p.dmg.background,to:t.join("other","mac","dmg-background.tiff")}),p.windows&&p.windows.icon&&f.push({from:p.windows.icon,to:t.join("icons","appIcon-windows"+t.extname(p.windows.icon))}),(0,r.default)({bucket:p.bucket||void 0,inputStream:await(0,a.default)({files:f,fileSizeLimit:p.uploadSizeLimit,onError:e=>{throw e},onProgress({fs:e}){u=e.totalBytes}}),key:(0,n.default)({appId:e,buildId:s,filenameSuffix:`${o.name}.zip`}),onProgress({loaded:e,total:o}){l(e/o*100,e)}})};exports.default=u;
|
|
79
|
-
},{"./generateS3Key":"uJzg","./logger":"XvyO","./uploadToS3":"yJCU","./zip":"AV41"}],"
|
|
80
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=
|
|
81
|
-
},{"./
|
|
81
|
+
},{"./generateS3Key":"uJzg","./logger":"XvyO","./uploadToS3":"yJCU","./zip":"AV41"}],"QgqX":[function(require,module,exports) {
|
|
82
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=a(require("lodash.merge")),t=a(require("path")),r=a(require("./readJson"));function a(e){return e&&e.__esModule?e:{default:e}}function u({config:a}){const u=a.packageJson||{},o=u.extends||"package.json",n=(0,r.default)(t.default.join(a.appPath,o));return(0,e.default)({},n,u)}var o=u;exports.default=o;
|
|
83
|
+
},{"./readJson":"GCJw"}],"XP8q":[function(require,module,exports) {
|
|
84
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=n(require("pretty-bytes")),r=require("./firestore"),a=n(require("./getVersionControlInfo")),i=n(require("./projectConfig/getProjectConfig")),o=n(require("./logForCI")),t=n(require("./postToFirebaseFunction")),s=n(require("./subscribeToBuild")),p=n(require("./uploadApplicationSource")),d=n(require("./getPackageJson"));function n(e){return e&&e.__esModule?e:{default:e}}var u=async({onEvent:n,shouldCodeSign:u=!0,configPath:l})=>{(0,o.default)("Getting application information...");const g=(0,r.currentUser)().uid,{config:c,unprocessedConfig:f}=(0,i.default)(l),b=c.id,P=(0,d.default)({config:c});let h,m;n("progress",{appId:b,appPkg:P,preparationProgress:.02}),(0,o.default)("Preparing...");try{const e=await(0,t.default)("prepareNewBuild",{appPkgName:P.name,appPkgProductName:P.productName,appVersion:P.version,id:c.id,projectConfig:f,shouldCodeSign:!1!==u,shouldRelease:!1,userId:g,versionControlInfo:await(0,a.default)(c.appPath)});h=e.appData.meta.currentBuildProgress.id;const r=await(0,s.default)({appId:b,buildId:h,onDataReceived:e=>n("progress",{build:e}),userId:e.userId});n("firebase-subscribed",{firebaseUnsubscribe:r})}catch(I){throw I.message=`Failed while preparing new build; ${I.message}`,I}n("progress",{preparationProgress:.05,preparationStageLabel:"Uploading"}),(0,o.default)("Uploading...");try{m=await(0,p.default)({appId:b,appPkgJson:P,buildId:h,config:c,onProgress(r,a){const i={preparationProgress:.05+r/100*.95};a&&(i.preparationUploadedSize=(0,e.default)(a)),n("progress",i)}})}catch(I){throw I.message=`Failed while uploading application source; ${I.message}`,I}n("progress",{isPreparationComplete:!0}),(0,o.default)("Kicking off build...");try{await(0,t.default)("kickOffBuild",{appId:b,appPkgName:P.name,appVersion:P.version,buildId:h,userId:g,sourceArchiveDetails:m})}catch(I){throw I.message=`Failed while kicking off build; ${I.message}`,I}};exports.default=u;
|
|
85
|
+
},{"./firestore":"gzUX","./getVersionControlInfo":"PvCN","./projectConfig/getProjectConfig":"Sx1d","./logForCI":"Sre8","./postToFirebaseFunction":"I8pf","./subscribeToBuild":"ohCc","./uploadApplicationSource":"Y1TB","./getPackageJson":"QgqX"}],"ONhe":[function(require,module,exports) {
|
|
82
86
|
"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;
|
|
83
87
|
},{}],"PaIV":[function(require,module,exports) {
|
|
84
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=g(require("react")),r=f(require("prop-types")),t=f(require("./BuildProgress")),a=f(require("./ErrorDisplay")),i=f(require("./Preparation")),u=f(require("./InitialLoadingState")),l=f(require("./MainLayout")),n=f(require("../utilities/logForCI")),o=f(require("../utilities/logger")),d=f(require("../utilities/runBuild")),s=f(require("../utilities/shouldExitOnBuildFailure")),p=f(require("../utilities/useExit"));function f(e){return e&&e.__esModule?e:{default:e}}function c(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(c=function(e){return e?t:r})(e)}function g(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=c(r);if(t&&t.has(e))return t.get(e);var a={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var l=i?Object.getOwnPropertyDescriptor(e,u):null;l&&(l.get||l.set)?Object.defineProperty(a,u,l):a[u]=e[u]}return a.default=e,t&&t.set(e,a),a}const m={appId:null,appPkg:null,build:null,error:null,hasBuildEverFailed:!1,isPreparationComplete:!1,preparationStageLabel:"Preparing",preparationProgress:0,preparationUploadedSize:null},b=({commandUsed:r,shouldCodeSign:f=!0})=>{const
|
|
88
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=g(require("react")),r=f(require("prop-types")),t=f(require("./BuildProgress")),a=f(require("./ErrorDisplay")),i=f(require("./Preparation")),u=f(require("./InitialLoadingState")),l=f(require("./MainLayout")),n=f(require("../utilities/logForCI")),o=f(require("../utilities/logger")),d=f(require("../utilities/runBuild")),s=f(require("../utilities/shouldExitOnBuildFailure")),p=f(require("../utilities/useExit"));function f(e){return e&&e.__esModule?e:{default:e}}function c(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(c=function(e){return e?t:r})(e)}function g(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=c(r);if(t&&t.has(e))return t.get(e);var a={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var l=i?Object.getOwnPropertyDescriptor(e,u):null;l&&(l.get||l.set)?Object.defineProperty(a,u,l):a[u]=e[u]}return a.default=e,t&&t.set(e,a),a}const m={appId:null,appPkg:null,build:null,error:null,hasBuildEverFailed:!1,isPreparationComplete:!1,preparationStageLabel:"Preparing",preparationProgress:0,preparationUploadedSize:null},b=({commandUsed:r,shouldCodeSign:f=!0,configPath:c})=>{const g=(0,p.default)(),[{appId:b,appPkg:P,build:v,error:E,hasBuildEverFailed:h,isPreparationComplete:y,preparationStageLabel:q,preparationProgress:B,preparationUploadedSize:O},S]=(0,e.useState)(m),U=e=>{const r=e.response?e.response.data:e;(0,n.default)(r),S(e=>({...e,error:r}))};if((0,e.useEffect)(()=>{let e;return(0,d.default)({commandUsed:r,onEvent:(r,t)=>{o.default.debug({eventName:r,data:t},"Build component: runBuild.onEvent"),"firebase-subscribed"===r?e=t.firebaseUnsubscribe:"progress"===r&&S(e=>({...e,...t}))},shouldCodeSign:f,configPath:c}).catch(U),()=>{e&&e()}},[r,f,c]),(0,e.useEffect)(()=>{h&&(0,s.default)(v)&&setTimeout(()=>g(new Error("Build has failed"),10))},[v,g,h]),E)return e.default.createElement(a.default,{commandUsed:r,error:E});if(!P)return e.default.createElement(u.default,null);return e.default.createElement(l.default,{appId:b,appName:v&&v.appName||P.name,appVersion:v&&v.appVersion||P.version,build:v,commandUsed:r,hasBuildEverFailed:h},y?e.default.createElement(t.default,{build:v,onBuildFailure:()=>{h||S(e=>({...e,hasBuildEverFailed:!0}))}}):e.default.createElement(i.default,{progressPercentage:B,stageLabel:q,uploadedSize:O}))};b.propTypes={commandUsed:r.default.string.isRequired,shouldCodeSign:r.default.bool,configPath:r.default.string};var P=b;exports.default=P;
|
|
85
89
|
},{"./BuildProgress":"odFL","./ErrorDisplay":"f0Jz","./Preparation":"DLJk","./InitialLoadingState":"OHrJ","./MainLayout":"T5Az","../utilities/logForCI":"Sre8","../utilities/logger":"XvyO","../utilities/runBuild":"XP8q","../utilities/shouldExitOnBuildFailure":"ONhe","../utilities/useExit":"QLfx"}],"cb6D":[function(require,module,exports) {
|
|
86
90
|
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("react"),r=({cons:r=console,proc:t=process}={})=>{try{(0,e.useState)(null)}catch(o){r.error(o),t.exit(1)}};exports.default=r;
|
|
87
91
|
},{}],"iiO0":[function(require,module,exports) {
|
|
@@ -101,13 +105,13 @@ parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcel
|
|
|
101
105
|
},{"./firestore":"gzUX","./logger":"XvyO"}],"thz1":[function(require,module,exports) {
|
|
102
106
|
"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;
|
|
103
107
|
},{"./firestore":"gzUX"}],"PlpY":[function(require,module,exports) {
|
|
104
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("ink"),t=
|
|
108
|
+
"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;
|
|
105
109
|
},{"./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"}],"mzsi":[function(require,module,exports) {
|
|
106
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("ink"),t=
|
|
110
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("ink"),t=y(require("ink-select-input")),r=y(require("prop-types")),i=v(require("react")),n=y(require("./CancelBuild")),u=y(require("./CustomSelectInputIndicator")),a=y(require("./CustomSelectInputItem")),l=y(require("./ErrorDisplay")),o=y(require("./ViewBuild")),d=require("../utilities/buildStatus"),s=y(require("../utilities/firestore")),c=y(require("../utilities/projectConfig/getProjectConfig")),f=y(require("../utilities/logger")),p=y(require("../utilities/useInput")),m=y(require("../utilities/useExit")),g=y(require("is-ci")),b=y(require("../utilities/findAppUserId"));function h(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(h=function(e){return e?r:t})(e)}function v(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=h(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 y(e){return e&&e.__esModule?e:{default:e}}const q=({children:r,commandUsed:h,configPath:v})=>{const{isRawModeSupported:y}=(0,e.useStdin)(),q=(0,p.default)(),E=(0,m.default)(),[{appId:w,builds:C,error:B,isLoading:O,itemChosen:j},x]=(0,i.useState)({appId:null,builds:[],error:null,isLoading:!0,itemChosen:null});if((0,i.useEffect)(()=>{O&&(async()=>{try{const t=(0,c.default)(v).config.id,{id:r}=await(0,b.default)(t),i=await s.default.doc(`users/${r}/applications/${t}`).collection("builds").orderBy("createdAt","desc").limit(10).get(),n={appId:t,isLoading:!1,builds:[]};if(!i.empty){const e=i.docs[0].data(),t=(0,d.isBuildRunning)(e)&&"preparation"!==e.status;f.default.debug({isRunning:t},"OngoingBuildGuard component: got latest build"),n.builds=i.docs.map(e=>e.data()).filter(e=>!(!(0,d.isBuildRunning)(e)||"preparation"===e.status))}x(e=>({...e,...n}))}catch(e){x(t=>({...t,error:e}))}})()},[C,j,O,y]),y&&q(()=>{}),B)return i.default.createElement(l.default,{commandUsed:h,error:B});if(O)return i.default.createElement(e.Text,null,"...");if(j){f.default.debug({itemChosen:j},"OngoingBuildGuard component: item chosen");const e=C.find(Boolean);if("view"===j.value)return i.default.createElement(o.default,{commandUsed:h,id:e.id});if("cancel"===j.value)return i.default.createElement(n.default,{appId:w,commandUsed:h,id:e.id},r);if("concurrent"===j.value)return i.default.createElement(i.Fragment,null,r);setTimeout(E,10)}if(C.length&&!1===g.default&&y){const r=C.find(Boolean),n=C.length>1,l=[{label:`View ${n?"latest":"it"}`,value:"view"}];C.some(e=>(0,d.isBuildCancellable)(e))&&(l.push({label:`Cancel ${n?"latest":"it"} and start a new build`,value:"cancel"}),l.push({label:"Start a concurrent build",value:"concurrent"})),l.push({label:"Exit",value:"exit"});const o=e=>x(t=>({...t,itemChosen:e}));return i.default.createElement(i.Fragment,null,i.default.createElement(e.Box,{marginBottom:1},i.default.createElement(e.Text,{bold:!0},n?"There are ongoing builds ":"There is an ongoing build "),i.default.createElement(e.Text,null,"(",r.appName,r.appVersion?` v${r.appVersion}`:"",")")),i.default.createElement(t.default,{indicatorComponent:u.default,itemComponent:a.default,items:l,onSelect:o}))}return i.default.createElement(i.Fragment,null,r)};q.propTypes={commandUsed:r.default.string.isRequired,children:r.default.oneOfType([r.default.array,r.default.object]),configPath:r.default.string};var E=q;exports.default=E;
|
|
107
111
|
},{"./CancelBuild":"J4or","./CustomSelectInputIndicator":"OMIR","./CustomSelectInputItem":"oPeF","./ErrorDisplay":"f0Jz","./ViewBuild":"PlpY","../utilities/buildStatus":"in6t","../utilities/firestore":"gzUX","../utilities/projectConfig/getProjectConfig":"Sx1d","../utilities/logger":"XvyO","../utilities/useInput":"CLRu","../utilities/useExit":"QLfx","../utilities/findAppUserId":"thz1"}],"AYMC":[function(require,module,exports) {
|
|
108
112
|
"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;
|
|
109
113
|
},{}],"EHrm":[function(require,module,exports) {
|
|
110
|
-
module.exports={private:!1,publishConfig:{access:"public"},name:"@todesktop/cli",version:"1.
|
|
114
|
+
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:"*"}}}};
|
|
111
115
|
},{}],"SYaU":[function(require,module,exports) {
|
|
112
116
|
"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;
|
|
113
117
|
},{"../../package.json":"EHrm","../utilities/configStore":"ffKF","../utilities/projectConfig/getProjectConfig":"Sx1d","./getEnvironmentVariables":"gwcX"}],"rPNZ":[function(require,module,exports) {
|
|
@@ -115,6 +119,6 @@ module.exports={private:!1,publishConfig:{access:"public"},name:"@todesktop/cli"
|
|
|
115
119
|
},{"./exitIfCLIOutOfDate":"AYMC","./initSentry":"SYaU"}],"CV1E":[function(require,module,exports) {
|
|
116
120
|
"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;
|
|
117
121
|
},{"./firestore":"gzUX","./analytics":"ALju","../utilities/logger":"XvyO","../utilities/projectConfig/getProjectConfig":"Sx1d"}],"Wc0b":[function(require,module,exports) {
|
|
118
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=a(require("prop-types")),t=a(require("react")),
|
|
122
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=a(require("prop-types")),t=a(require("react")),i=a(require("../lib/components/Build")),l=a(require("../lib/utilities/checkIfReactIsUsable")),u=a(require("../lib/components/LoginHOC")),o=a(require("../lib/components/ErrorBoundary")),r=a(require("../lib/components/OngoingBuildGuard")),n=a(require("../lib/utilities/onCommand")),d=require("../lib/utilities/useAnalytics");function a(e){return e&&e.__esModule?e:{default:e}}(0,n.default)();const s=({codeSign:e=!0,config:n=null})=>{(0,l.default)(),(0,d.useAnalyticsCommand)("build",{codeSign:e,config:n});return t.default.createElement(o.default,null,t.default.createElement(u.default,null,t.default.createElement(r.default,{configPath:n,commandUsed:"todesktop build"},t.default.createElement(i.default,{commandUsed:"todesktop build",shouldCodeSign:e,configPath:n}))))};s.propTypes={codeSign:e.default.bool,config:e.default.string};var c=s;exports.default=c;
|
|
119
123
|
},{"../lib/components/Build":"PaIV","../lib/utilities/checkIfReactIsUsable":"cb6D","../lib/components/LoginHOC":"nLy3","../lib/components/ErrorBoundary":"XM8F","../lib/components/OngoingBuildGuard":"mzsi","../lib/utilities/onCommand":"rPNZ","../lib/utilities/useAnalytics":"CV1E"}]},{},["Wc0b"], null)
|
|
120
124
|
//# sourceMappingURL=/build.js.map
|