@todesktop/cli 1.12.3 → 1.13.0-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +213 -122
- package/dist/cli.js +515 -189
- package/dist/cli.js.map +4 -4
- package/package.json +6 -8
- package/schemas/schema.json +452 -107
package/dist/cli.js
CHANGED
|
@@ -21,7 +21,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
21
21
|
// src/index.ts
|
|
22
22
|
var import_commander = require("commander");
|
|
23
23
|
var import_ink39 = require("ink");
|
|
24
|
-
var
|
|
24
|
+
var import_react24 = require("react");
|
|
25
25
|
var import_register = require("source-map-support/register");
|
|
26
26
|
|
|
27
27
|
// src/commands/build/components/Build.tsx
|
|
@@ -1511,24 +1511,125 @@ var schema_default = {
|
|
|
1511
1511
|
required: ["id", "icon", "schemaVersion"]
|
|
1512
1512
|
},
|
|
1513
1513
|
properties: {
|
|
1514
|
+
$schema: {
|
|
1515
|
+
type: "string",
|
|
1516
|
+
description: "To enable JSON validation and IntelliSense for your `todesktop.json` file in compatible code editors, your editor needs to know where the schema file is located. You can add a `$schema` property to the top of your `todesktop.json` file, pointing to a version of the schema. This can be a local path or a hosted URL.",
|
|
1517
|
+
examples: [
|
|
1518
|
+
"https://unpkg.com/@todesktop/cli@1.12.5/schemas/schema.json",
|
|
1519
|
+
"./node_modules/@todesktop/cli/schemas/schema.json"
|
|
1520
|
+
]
|
|
1521
|
+
},
|
|
1514
1522
|
appBuilderLibVersion: {
|
|
1523
|
+
$ref: "#/definitions/appBuilderLibVersionProperty"
|
|
1524
|
+
},
|
|
1525
|
+
appId: { $ref: "#/definitions/appIdProperty" },
|
|
1526
|
+
appFiles: { $ref: "#/definitions/appFilesProperty" },
|
|
1527
|
+
appProtocolScheme: { $ref: "#/definitions/appProtocolSchemeProperty" },
|
|
1528
|
+
appPath: { $ref: "#/definitions/appPathProperty" },
|
|
1529
|
+
asar: { $ref: "#/definitions/asarProperty" },
|
|
1530
|
+
asarUnpack: { $ref: "#/definitions/asarUnpackProperty" },
|
|
1531
|
+
buildVersion: { $ref: "#/definitions/buildVersionProperty" },
|
|
1532
|
+
copyright: { $ref: "#/definitions/copyrightProperty" },
|
|
1533
|
+
electronMirror: { $ref: "#/definitions/electronMirrorProperty" },
|
|
1534
|
+
electronVersion: { $ref: "#/definitions/electronVersionProperty" },
|
|
1535
|
+
extends: {
|
|
1536
|
+
type: "string",
|
|
1537
|
+
minLength: 1,
|
|
1538
|
+
description: "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.",
|
|
1539
|
+
examples: ["./todesktop.staging.json"],
|
|
1540
|
+
default: null
|
|
1541
|
+
},
|
|
1542
|
+
extraContentFiles: { $ref: "#/definitions/extraContentFilesProperty" },
|
|
1543
|
+
extraResources: { $ref: "#/definitions/extraResourcesProperty" },
|
|
1544
|
+
fileAssociations: { $ref: "#/definitions/fileAssociationsProperty" },
|
|
1545
|
+
updateUrlBase: { $ref: "#/definitions/updateUrlBaseProperty" },
|
|
1546
|
+
filesForDistribution: {
|
|
1547
|
+
$ref: "#/definitions/filesForDistributionProperty"
|
|
1548
|
+
},
|
|
1549
|
+
icon: {
|
|
1550
|
+
type: "string",
|
|
1551
|
+
description: "The path to your application's desktop icon. It must be an ICNS or PNG.",
|
|
1552
|
+
examples: ["./appIcon.png"],
|
|
1553
|
+
file: {
|
|
1554
|
+
extensions: ["icns", "png"],
|
|
1555
|
+
mustBeFile: true
|
|
1556
|
+
},
|
|
1557
|
+
minLength: 3
|
|
1558
|
+
},
|
|
1559
|
+
linux: { $ref: "#/definitions/linuxConfigProperty" },
|
|
1560
|
+
id: {
|
|
1561
|
+
type: "string",
|
|
1562
|
+
minLength: 1,
|
|
1563
|
+
description: "Your ToDesktop application ID. This is used to identify your app. This would have been generated when you first created your ToDesktop application via the web interface.",
|
|
1564
|
+
examples: ["2005223bd1nqpl7"]
|
|
1565
|
+
},
|
|
1566
|
+
includeSubNodeModules: {
|
|
1567
|
+
$ref: "#/definitions/includeSubNodeModulesProperty"
|
|
1568
|
+
},
|
|
1569
|
+
mac: { $ref: "#/definitions/macConfigProperty" },
|
|
1570
|
+
mas: { $ref: "#/definitions/masConfigProperty" },
|
|
1571
|
+
dmg: { $ref: "#/definitions/dmgConfigProperty" },
|
|
1572
|
+
nodeVersion: { $ref: "#/definitions/nodeVersionProperty" },
|
|
1573
|
+
npmVersion: { $ref: "#/definitions/npmVersionProperty" },
|
|
1574
|
+
pnpmVersion: { $ref: "#/definitions/pnpmVersionProperty" },
|
|
1575
|
+
packageJson: { $ref: "#/definitions/packageJsonProperty" },
|
|
1576
|
+
packageManager: { $ref: "#/definitions/packageManagerProperty" },
|
|
1577
|
+
rebuildLibrary: { $ref: "#/definitions/rebuildLibraryProperty" },
|
|
1578
|
+
schemaVersion: {
|
|
1579
|
+
type: "number",
|
|
1580
|
+
minimum: 1,
|
|
1581
|
+
maximum: 1,
|
|
1582
|
+
description: "This is the `todesktop.json` schema version. This must be `1`.",
|
|
1583
|
+
examples: [1]
|
|
1584
|
+
},
|
|
1585
|
+
snap: { $ref: "#/definitions/snapConfigProperty" },
|
|
1586
|
+
uploadSizeLimit: { $ref: "#/definitions/uploadSizeLimitProperty" },
|
|
1587
|
+
windows: { $ref: "#/definitions/windowsConfigProperty" },
|
|
1588
|
+
platformOverrides: {
|
|
1589
|
+
type: "object",
|
|
1590
|
+
additionalProperties: false,
|
|
1591
|
+
description: "This option allows you to specify platform-specific configurations for Windows, macOS, and Linux builds. Most top-level configuration fields available in `todesktop.json` can be overridden within the `windows`, `mac`, or `linux` objects under `platformOverrides`.",
|
|
1592
|
+
default: {},
|
|
1593
|
+
properties: {
|
|
1594
|
+
windows: {
|
|
1595
|
+
$ref: "#/definitions/platformOverridableProperties"
|
|
1596
|
+
},
|
|
1597
|
+
mac: {
|
|
1598
|
+
$ref: "#/definitions/platformOverridableProperties"
|
|
1599
|
+
},
|
|
1600
|
+
linux: {
|
|
1601
|
+
$ref: "#/definitions/platformOverridableProperties"
|
|
1602
|
+
}
|
|
1603
|
+
}
|
|
1604
|
+
}
|
|
1605
|
+
},
|
|
1606
|
+
definitions: {
|
|
1607
|
+
appBuilderLibVersionProperty: {
|
|
1515
1608
|
type: "string",
|
|
1516
1609
|
validSemver: {},
|
|
1517
|
-
minLength: 1
|
|
1610
|
+
minLength: 1,
|
|
1611
|
+
description: "The version of app-builder-lib that ToDesktop should use for building your app. This can be useful if you need to use a specific version that includes certain features or fixes.",
|
|
1612
|
+
examples: ["22.14.13"]
|
|
1518
1613
|
},
|
|
1519
|
-
|
|
1614
|
+
appIdProperty: {
|
|
1520
1615
|
type: "string",
|
|
1521
|
-
minLength: 1
|
|
1616
|
+
minLength: 1,
|
|
1617
|
+
description: "Your application ID. Omit this unless you know what you're doing. It's used as the [CFBundleIdentifier](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102070) for MacOS and as the [Application User Model ID](<https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx>) for Windows.",
|
|
1618
|
+
examples: ["com.microsoft.word"],
|
|
1619
|
+
default: "auto-generated"
|
|
1522
1620
|
},
|
|
1523
|
-
|
|
1621
|
+
appFilesProperty: {
|
|
1524
1622
|
type: "array",
|
|
1623
|
+
description: "This option allows you to decide which files get uploaded to be built on the ToDesktop servers. By default, all files in your app path are included in your app, except for `node_modules` and `.git`. Dependencies are installed on our build servers as there could be platform-specific postinstall steps.",
|
|
1624
|
+
default: ["**"],
|
|
1625
|
+
examples: ['["dist/**", "!static/**"]'],
|
|
1525
1626
|
items: {
|
|
1526
1627
|
type: "string",
|
|
1527
1628
|
minLength: 1
|
|
1528
1629
|
},
|
|
1529
1630
|
minItems: 1
|
|
1530
1631
|
},
|
|
1531
|
-
|
|
1632
|
+
appProtocolSchemeProperty: {
|
|
1532
1633
|
oneOf: [
|
|
1533
1634
|
{
|
|
1534
1635
|
type: "string",
|
|
@@ -1542,20 +1643,27 @@ var schema_default = {
|
|
|
1542
1643
|
},
|
|
1543
1644
|
minItems: 1
|
|
1544
1645
|
}
|
|
1545
|
-
]
|
|
1646
|
+
],
|
|
1647
|
+
description: 'If you want to register a protocol for your application (e.g. `example://`) and or support deeplinking, you will need to use this option. If your desired protocol is `example://`, you would set `"appProtocolScheme": "example"`. NOTE: these features also require additional application logic.',
|
|
1648
|
+
examples: ["word", '["word", "excel"]'],
|
|
1649
|
+
default: "no protocol scheme is registered"
|
|
1546
1650
|
},
|
|
1547
|
-
|
|
1651
|
+
appPathProperty: {
|
|
1548
1652
|
type: "string",
|
|
1653
|
+
description: "This is the path to your Electron application directory. Omit this unless your project setup is complicated. This is the directory that the CLI uploads.",
|
|
1654
|
+
default: ".",
|
|
1655
|
+
examples: ["./dist"],
|
|
1549
1656
|
file: {
|
|
1550
1657
|
isOptional: true,
|
|
1551
1658
|
mustBeElectronApp: true
|
|
1552
1659
|
}
|
|
1553
1660
|
},
|
|
1554
|
-
|
|
1661
|
+
asarProperty: {
|
|
1555
1662
|
type: "boolean",
|
|
1556
|
-
default: true
|
|
1663
|
+
default: true,
|
|
1664
|
+
description: "Whether to package your application's source code within an asar archive. You should only turn this off if you have a good reason to."
|
|
1557
1665
|
},
|
|
1558
|
-
|
|
1666
|
+
asarUnpackProperty: {
|
|
1559
1667
|
oneOf: [
|
|
1560
1668
|
{
|
|
1561
1669
|
type: "boolean"
|
|
@@ -1568,30 +1676,41 @@ var schema_default = {
|
|
|
1568
1676
|
},
|
|
1569
1677
|
minItems: 1
|
|
1570
1678
|
}
|
|
1571
|
-
]
|
|
1679
|
+
],
|
|
1680
|
+
description: "This option allows you to decide which files get unpacked from the asar archive. By default we unpack all native `*.node` files.",
|
|
1681
|
+
default: ["**/*.node"]
|
|
1572
1682
|
},
|
|
1573
|
-
|
|
1683
|
+
buildVersionProperty: {
|
|
1574
1684
|
type: "string",
|
|
1575
|
-
minLength: 1
|
|
1685
|
+
minLength: 1,
|
|
1686
|
+
description: "The build version. Maps to the CFBundleVersion on macOS, and FileVersion metadata property on Windows.",
|
|
1687
|
+
default: "auto-generated from build id"
|
|
1576
1688
|
},
|
|
1577
|
-
|
|
1689
|
+
copyrightProperty: {
|
|
1578
1690
|
type: "string",
|
|
1579
|
-
minLength: 1
|
|
1691
|
+
minLength: 1,
|
|
1692
|
+
description: "The human-readable copyright line for the app.",
|
|
1693
|
+
examples: ["Copyright \xA9 1995 Walt Disney"],
|
|
1694
|
+
default: "The `package.json` [productName](#recommendations-for-app-packagejson) / `name`."
|
|
1580
1695
|
},
|
|
1581
|
-
|
|
1696
|
+
electronMirrorProperty: {
|
|
1582
1697
|
type: "string",
|
|
1583
|
-
format: "uri"
|
|
1698
|
+
format: "uri",
|
|
1699
|
+
description: "The base URL of the mirror to download Electron from. This may be a mirror geographically closer to you or even your own mirror which contains custom Electron builds. The version downloaded is the Electron version specified in `devDependencies` in your app's `package.json`. Alternatively you can explicitly specify an `electronVersion` in `todesktop.json` as described below.",
|
|
1700
|
+
examples: ["https://cdn.npm.taobao.org/dist/electron/"],
|
|
1701
|
+
default: "Electron is downloaded from the main official source."
|
|
1584
1702
|
},
|
|
1585
|
-
|
|
1703
|
+
electronVersionProperty: {
|
|
1586
1704
|
type: "string",
|
|
1587
|
-
minLength: 1
|
|
1705
|
+
minLength: 1,
|
|
1706
|
+
description: "The version of Electron to use. In most cases you should not specify an `electronVersion` property. Only specify this option if you wish to override the version that is specified in `package.json`.",
|
|
1707
|
+
examples: ["12.0.7-beta.17"],
|
|
1708
|
+
default: "Electron version specified in `devDependencies` in your app's `package.json`"
|
|
1588
1709
|
},
|
|
1589
|
-
|
|
1590
|
-
type: "string",
|
|
1591
|
-
minLength: 1
|
|
1592
|
-
},
|
|
1593
|
-
extraContentFiles: {
|
|
1710
|
+
extraContentFilesProperty: {
|
|
1594
1711
|
type: "array",
|
|
1712
|
+
description: "This option allows you specify files to be copied into the application's content directory (`Contents` for MacOS, root directory for Linux and Windows).",
|
|
1713
|
+
default: [],
|
|
1595
1714
|
items: {
|
|
1596
1715
|
type: "object",
|
|
1597
1716
|
required: ["from"],
|
|
@@ -1607,8 +1726,10 @@ var schema_default = {
|
|
|
1607
1726
|
}
|
|
1608
1727
|
}
|
|
1609
1728
|
},
|
|
1610
|
-
|
|
1729
|
+
extraResourcesProperty: {
|
|
1611
1730
|
type: "array",
|
|
1731
|
+
description: "This option allows you to specify files to be copied into the application's resources directory (`Contents/Resources` for MacOS, `resources` for Linux and Windows). It works just like the `extraContentFiles` option, except the files go to a different directory.",
|
|
1732
|
+
default: [],
|
|
1612
1733
|
items: {
|
|
1613
1734
|
type: "object",
|
|
1614
1735
|
required: ["from"],
|
|
@@ -1626,8 +1747,9 @@ var schema_default = {
|
|
|
1626
1747
|
}
|
|
1627
1748
|
}
|
|
1628
1749
|
},
|
|
1629
|
-
|
|
1750
|
+
fileAssociationsProperty: {
|
|
1630
1751
|
type: "array",
|
|
1752
|
+
description: "Associate a file type with your Electron app.",
|
|
1631
1753
|
items: {
|
|
1632
1754
|
type: "object",
|
|
1633
1755
|
required: ["ext"],
|
|
@@ -1646,69 +1768,84 @@ var schema_default = {
|
|
|
1646
1768
|
minLength: 1
|
|
1647
1769
|
}
|
|
1648
1770
|
}
|
|
1649
|
-
]
|
|
1771
|
+
],
|
|
1772
|
+
description: "The extension (minus the leading period). e.g. png."
|
|
1650
1773
|
},
|
|
1651
1774
|
description: {
|
|
1652
1775
|
type: "string",
|
|
1653
|
-
minLength: 1
|
|
1776
|
+
minLength: 1,
|
|
1777
|
+
description: "windows-only. The description."
|
|
1654
1778
|
},
|
|
1655
1779
|
name: {
|
|
1656
1780
|
type: "string",
|
|
1657
|
-
minLength: 1
|
|
1781
|
+
minLength: 1,
|
|
1782
|
+
description: "The name. e.g. PNG. Defaults to value of `ext`."
|
|
1658
1783
|
},
|
|
1659
1784
|
mimeType: {
|
|
1660
1785
|
type: "string",
|
|
1661
|
-
minLength: 1
|
|
1786
|
+
minLength: 1,
|
|
1787
|
+
description: "linux-only. The mime-type."
|
|
1662
1788
|
},
|
|
1663
1789
|
icon: {
|
|
1664
1790
|
type: "string",
|
|
1665
|
-
minLength: 1
|
|
1791
|
+
minLength: 1,
|
|
1792
|
+
description: 'macOS and windows. Icon file name without extension. It points to ico file for Windows and icns for macOS. For example, if the `icon` value is `"icons/py"` then it will look for both `"icons/py.ico"` and `"icons/py.icns"` in your project directory.'
|
|
1666
1793
|
},
|
|
1667
1794
|
role: {
|
|
1668
1795
|
type: "string",
|
|
1669
|
-
minLength: 1
|
|
1796
|
+
minLength: 1,
|
|
1797
|
+
description: "macOS-only. The app's role with respect to the type. The value can be `Editor`, `Viewer`, `Shell`, or `None`. Corresponds to `CFBundleTypeRole`.",
|
|
1798
|
+
default: "Editor"
|
|
1670
1799
|
},
|
|
1671
1800
|
isPackage: {
|
|
1672
|
-
type: "boolean"
|
|
1801
|
+
type: "boolean",
|
|
1802
|
+
description: "macOS-only. Whether the document is distributed as a bundle. If set to true, the bundle directory is treated as a file. Corresponds to `LSTypeIsPackage`."
|
|
1673
1803
|
},
|
|
1674
1804
|
rank: {
|
|
1675
1805
|
type: "string",
|
|
1676
|
-
enum: ["Owner", "Default", "Alternate", "None"]
|
|
1806
|
+
enum: ["Owner", "Default", "Alternate", "None"],
|
|
1807
|
+
description: "macOS-only. Determines how Launch Services ranks this app among the apps that declare themselves editors or viewers of files of this type. The possible values are: `Owner` (this app is the primary creator of files of this type), `Default` (this app is an opener of files of this type; this value is also used if no rank is specified), `Alternate` (this app is a secondary viewer of files of this type), and `None` (this app is never selected to open files of this type, but it accepts drops of files of this type).",
|
|
1808
|
+
default: "Default"
|
|
1677
1809
|
}
|
|
1678
1810
|
}
|
|
1679
1811
|
},
|
|
1680
1812
|
minItems: 1
|
|
1681
1813
|
},
|
|
1682
|
-
|
|
1814
|
+
updateUrlBaseProperty: {
|
|
1683
1815
|
type: "string",
|
|
1684
|
-
format: "uri"
|
|
1816
|
+
format: "uri",
|
|
1817
|
+
description: "The URL to check for updates. You should only set this if you want to use your own self-hosted update server instead of ToDesktop's built-in update service. See https://www.github.com/ToDesktop/self-hosted for more information.",
|
|
1818
|
+
examples: ["https://example.com/updates"],
|
|
1819
|
+
default: "ToDesktop's auto-update URL."
|
|
1685
1820
|
},
|
|
1686
|
-
|
|
1821
|
+
filesForDistributionProperty: {
|
|
1687
1822
|
type: "array",
|
|
1823
|
+
description: "This option allows you to explicitly exclude or include certain files in the packaged version of your app. These files are filtered _after_ the build step which happens on the ToDesktop servers.",
|
|
1824
|
+
examples: [
|
|
1825
|
+
'["!**/node_modules/realm/android/**", "!**/design/**"]'
|
|
1826
|
+
],
|
|
1688
1827
|
items: {
|
|
1689
1828
|
type: "string",
|
|
1690
1829
|
minLength: 1
|
|
1691
1830
|
},
|
|
1692
1831
|
minItems: 1
|
|
1693
1832
|
},
|
|
1694
|
-
|
|
1695
|
-
type: "string",
|
|
1696
|
-
file: {
|
|
1697
|
-
extensions: ["icns", "png"],
|
|
1698
|
-
mustBeFile: true
|
|
1699
|
-
},
|
|
1700
|
-
minLength: 3
|
|
1701
|
-
},
|
|
1702
|
-
linux: {
|
|
1833
|
+
linuxConfigProperty: {
|
|
1703
1834
|
type: "object",
|
|
1835
|
+
description: "This object contains some options that only apply to the building & releasing for Linux.",
|
|
1836
|
+
examples: ['{ "category": "Utility"}'],
|
|
1704
1837
|
additionalProperties: false,
|
|
1705
1838
|
properties: {
|
|
1706
1839
|
category: {
|
|
1707
1840
|
type: "string",
|
|
1708
|
-
minLength: 1
|
|
1841
|
+
minLength: 1,
|
|
1842
|
+
description: "The [application category](https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry).",
|
|
1843
|
+
examples: ["Utility"]
|
|
1709
1844
|
},
|
|
1710
1845
|
icon: {
|
|
1711
1846
|
type: "string",
|
|
1847
|
+
description: "The path to your application's Linux desktop icon. It must be an ICNS or PNG.",
|
|
1848
|
+
examples: ["./linux-icon.png"],
|
|
1712
1849
|
file: {
|
|
1713
1850
|
extensions: ["icns", "png"],
|
|
1714
1851
|
mustBeFile: true
|
|
@@ -1717,31 +1854,40 @@ var schema_default = {
|
|
|
1717
1854
|
},
|
|
1718
1855
|
imageVersion: {
|
|
1719
1856
|
type: "string",
|
|
1720
|
-
minLength: 1
|
|
1857
|
+
minLength: 1,
|
|
1858
|
+
description: "The version of the Linux image that ToDesktop should use to build your app.",
|
|
1859
|
+
examples: ["0.1.0"],
|
|
1860
|
+
default: "0.0.11"
|
|
1721
1861
|
},
|
|
1722
1862
|
noSandbox: {
|
|
1723
|
-
type: "boolean"
|
|
1863
|
+
type: "boolean",
|
|
1864
|
+
description: "This option allows you to configure whether your app should run in a sandboxed environment.",
|
|
1865
|
+
default: true
|
|
1724
1866
|
}
|
|
1725
1867
|
}
|
|
1726
1868
|
},
|
|
1727
|
-
|
|
1728
|
-
type: "string",
|
|
1729
|
-
minLength: 1
|
|
1730
|
-
},
|
|
1731
|
-
includeSubNodeModules: {
|
|
1869
|
+
includeSubNodeModulesProperty: {
|
|
1732
1870
|
type: "boolean",
|
|
1733
|
-
default: false
|
|
1871
|
+
default: false,
|
|
1872
|
+
description: "Whether to include **all** of the submodules node_modules directories"
|
|
1734
1873
|
},
|
|
1735
|
-
|
|
1874
|
+
macConfigProperty: {
|
|
1736
1875
|
type: "object",
|
|
1876
|
+
description: "This object contains some options that only apply to the building & releasing for MacOS.",
|
|
1877
|
+
examples: ['{ "entitlements": "./entitlements.mac.plist" }'],
|
|
1737
1878
|
additionalProperties: false,
|
|
1738
1879
|
properties: {
|
|
1739
1880
|
category: {
|
|
1740
1881
|
type: "string",
|
|
1741
|
-
minLength: 1
|
|
1882
|
+
minLength: 1,
|
|
1883
|
+
description: "The application category type, as shown in the Finder via _View -> Arrange by Application Category_ when viewing the Applications directory.",
|
|
1884
|
+
examples: ["public.app-category.productivity"]
|
|
1742
1885
|
},
|
|
1743
1886
|
additionalBinariesToSign: {
|
|
1744
1887
|
type: "array",
|
|
1888
|
+
description: "Paths of any extra binaries that need to be signed. These could be files in your own app code or `node_modules`.",
|
|
1889
|
+
examples: ['["./node_modules/example-package/example-file"]'],
|
|
1890
|
+
default: [],
|
|
1745
1891
|
items: {
|
|
1746
1892
|
type: "string",
|
|
1747
1893
|
minLength: 1
|
|
@@ -1749,6 +1895,9 @@ var schema_default = {
|
|
|
1749
1895
|
},
|
|
1750
1896
|
entitlements: {
|
|
1751
1897
|
type: "string",
|
|
1898
|
+
description: "The path to an entitlements file for signing your application. It must be a plist file.",
|
|
1899
|
+
examples: ["./entitlements.mac.plist"],
|
|
1900
|
+
default: "A sane minimal entitlements file we've put together.",
|
|
1752
1901
|
file: {
|
|
1753
1902
|
extensions: ["plist"],
|
|
1754
1903
|
mustBeFile: true
|
|
@@ -1757,6 +1906,9 @@ var schema_default = {
|
|
|
1757
1906
|
},
|
|
1758
1907
|
entitlementsInherit: {
|
|
1759
1908
|
type: "string",
|
|
1909
|
+
description: "The path to a child entitlements file for signing your application. It must be a plist file.",
|
|
1910
|
+
examples: ["./entitlementsInherit.mac.plist"],
|
|
1911
|
+
default: "No entitlements file is provided by default.",
|
|
1760
1912
|
file: {
|
|
1761
1913
|
extensions: ["plist"],
|
|
1762
1914
|
mustBeFile: true
|
|
@@ -1764,10 +1916,15 @@ var schema_default = {
|
|
|
1764
1916
|
minLength: 1
|
|
1765
1917
|
},
|
|
1766
1918
|
extendInfo: {
|
|
1767
|
-
type: "object"
|
|
1919
|
+
type: "object",
|
|
1920
|
+
description: "Extra entries for `Info.plist`.",
|
|
1921
|
+
examples: ['{ "NSUserNotificationAlertStyle": "alert" }'],
|
|
1922
|
+
default: {}
|
|
1768
1923
|
},
|
|
1769
1924
|
icon: {
|
|
1770
1925
|
type: "string",
|
|
1926
|
+
description: "The path to your application's Mac desktop icon. It must be an ICNS or PNG.",
|
|
1927
|
+
examples: ["./mac-icon.png"],
|
|
1771
1928
|
file: {
|
|
1772
1929
|
extensions: ["icns", "png"],
|
|
1773
1930
|
mustBeFile: true
|
|
@@ -1776,6 +1933,9 @@ var schema_default = {
|
|
|
1776
1933
|
},
|
|
1777
1934
|
requirements: {
|
|
1778
1935
|
type: "string",
|
|
1936
|
+
description: "The path to the [requirements file](https://developer.apple.com/library/archive/documentation/Security/Conceptual/CodeSigningGuide/RequirementLang/RequirementLang.html) used when signing your application.",
|
|
1937
|
+
examples: ["./requirements.txt"],
|
|
1938
|
+
default: "No requirements file is used by default.",
|
|
1779
1939
|
file: {
|
|
1780
1940
|
extensions: ["txt"],
|
|
1781
1941
|
mustBeFile: true
|
|
@@ -1784,12 +1944,17 @@ var schema_default = {
|
|
|
1784
1944
|
}
|
|
1785
1945
|
}
|
|
1786
1946
|
},
|
|
1787
|
-
|
|
1947
|
+
masConfigProperty: {
|
|
1788
1948
|
type: "object",
|
|
1949
|
+
description: "This object contains options that only apply to building the application for Mac App Store.",
|
|
1950
|
+
examples: ['{ "type": "development" }'],
|
|
1789
1951
|
additionalProperties: false,
|
|
1790
1952
|
properties: {
|
|
1791
1953
|
entitlements: {
|
|
1792
1954
|
type: "string",
|
|
1955
|
+
description: "The path to an entitlements file for signing your application. It must be a plist file.",
|
|
1956
|
+
examples: ["./entitlements.mas.plist"],
|
|
1957
|
+
default: "No entitlements file is provided by default.",
|
|
1793
1958
|
file: {
|
|
1794
1959
|
extensions: ["plist"],
|
|
1795
1960
|
mustBeFile: true
|
|
@@ -1798,6 +1963,9 @@ var schema_default = {
|
|
|
1798
1963
|
},
|
|
1799
1964
|
entitlementsInherit: {
|
|
1800
1965
|
type: "string",
|
|
1966
|
+
description: "The path to a child entitlements file for signing your application. It must be a plist file.",
|
|
1967
|
+
examples: ["./entitlementsInherit.mas.plist"],
|
|
1968
|
+
default: "No entitlements file is provided by default.",
|
|
1801
1969
|
file: {
|
|
1802
1970
|
extensions: ["plist"],
|
|
1803
1971
|
mustBeFile: true
|
|
@@ -1806,6 +1974,9 @@ var schema_default = {
|
|
|
1806
1974
|
},
|
|
1807
1975
|
provisioningProfile: {
|
|
1808
1976
|
type: "string",
|
|
1977
|
+
description: "The path to a provisioning profile for authorizing your application.",
|
|
1978
|
+
examples: ["./mas.provisionprofile"],
|
|
1979
|
+
default: "No provisioning profile is used by default.",
|
|
1809
1980
|
file: {
|
|
1810
1981
|
extensions: ["provisionprofile"],
|
|
1811
1982
|
mustBeFile: true
|
|
@@ -1814,19 +1985,29 @@ var schema_default = {
|
|
|
1814
1985
|
},
|
|
1815
1986
|
type: {
|
|
1816
1987
|
type: "string",
|
|
1817
|
-
enum: ["development", "distribution"]
|
|
1988
|
+
enum: ["development", "distribution"],
|
|
1989
|
+
description: "Whether to sign app for development or for distribution.",
|
|
1990
|
+
examples: ["distribution"],
|
|
1991
|
+
default: "development"
|
|
1818
1992
|
},
|
|
1819
1993
|
x64ArchFiles: {
|
|
1820
|
-
type: "string"
|
|
1994
|
+
type: "string",
|
|
1995
|
+
description: "Minimatch pattern of paths that are allowed to be x64 binaries in both ASAR files.",
|
|
1996
|
+
examples: ["Contents/Resources/foobar/**"],
|
|
1997
|
+
default: "not defined"
|
|
1821
1998
|
}
|
|
1822
1999
|
}
|
|
1823
2000
|
},
|
|
1824
|
-
|
|
2001
|
+
dmgConfigProperty: {
|
|
1825
2002
|
type: "object",
|
|
2003
|
+
description: "Options for customizing the macOS DMG (disk image) installer.",
|
|
1826
2004
|
additionalProperties: false,
|
|
1827
2005
|
properties: {
|
|
1828
2006
|
background: {
|
|
1829
2007
|
type: "string",
|
|
2008
|
+
description: "The path to the DMG installer's background image. It must be a `.tiff` file. The resolution of this file determines the resolution of the installer window. Typically, backgrounds are 540x380.",
|
|
2009
|
+
examples: ["./mac-dmg-background.tiff"],
|
|
2010
|
+
default: "undefined",
|
|
1830
2011
|
file: {
|
|
1831
2012
|
extensions: ["tiff"],
|
|
1832
2013
|
mustBeFile: true
|
|
@@ -1835,94 +2016,124 @@ var schema_default = {
|
|
|
1835
2016
|
},
|
|
1836
2017
|
artifactName: {
|
|
1837
2018
|
type: "string",
|
|
1838
|
-
minLength: 1
|
|
2019
|
+
minLength: 1,
|
|
2020
|
+
description: "The artifact name of the DMG file. Macros ${productName}, ${version}, ${name} are supported."
|
|
1839
2021
|
},
|
|
1840
2022
|
backgroundColor: {
|
|
1841
2023
|
type: "string",
|
|
1842
|
-
minLength: 1
|
|
2024
|
+
minLength: 1,
|
|
2025
|
+
description: 'The background color (accepts css colors). Defaults to "`#ffffff`" (white) if no background image.',
|
|
2026
|
+
default: "#ffffff"
|
|
1843
2027
|
},
|
|
1844
2028
|
iconSize: {
|
|
1845
|
-
type: "number"
|
|
2029
|
+
type: "number",
|
|
2030
|
+
description: "The size of all the icons inside the DMG. Defaults to `80`.",
|
|
2031
|
+
default: 80
|
|
1846
2032
|
},
|
|
1847
2033
|
iconTextSize: {
|
|
1848
|
-
type: "number"
|
|
2034
|
+
type: "number",
|
|
2035
|
+
description: "The size of all the icon texts inside the DMG. Defaults to `12`.",
|
|
2036
|
+
default: 12
|
|
1849
2037
|
},
|
|
1850
2038
|
title: {
|
|
1851
2039
|
type: "string",
|
|
1852
|
-
minLength: 1
|
|
2040
|
+
minLength: 1,
|
|
2041
|
+
description: "The title of the produced DMG, which will be shown when mounted (volume name). Macro `${productName}`, `${version}` and `${name}` are supported.",
|
|
2042
|
+
default: "${productName} ${version}"
|
|
1853
2043
|
},
|
|
1854
2044
|
contents: {
|
|
1855
2045
|
type: "array",
|
|
2046
|
+
description: "Customize icon locations. The x and y coordinates refer to the position of the center of the icon (at 1x scale), and do not take the label into account.",
|
|
1856
2047
|
items: {
|
|
1857
2048
|
type: "object",
|
|
1858
2049
|
additionalProperties: false,
|
|
1859
2050
|
properties: {
|
|
1860
2051
|
x: {
|
|
1861
|
-
type: "number"
|
|
2052
|
+
type: "number",
|
|
2053
|
+
description: "The device-independent pixel offset from the left of the window to the center of the icon."
|
|
1862
2054
|
},
|
|
1863
2055
|
y: {
|
|
1864
|
-
type: "number"
|
|
2056
|
+
type: "number",
|
|
2057
|
+
description: "The device-independent pixel offset from the top of the window to the center of the icon."
|
|
1865
2058
|
}
|
|
1866
2059
|
}
|
|
1867
2060
|
}
|
|
1868
2061
|
},
|
|
1869
2062
|
window: {
|
|
1870
2063
|
type: "object",
|
|
2064
|
+
description: "The DMG windows position and size. In most cases, you will only want to specify a `height` and `width` value but not `x` and `y`.",
|
|
1871
2065
|
additionalProperties: false,
|
|
1872
2066
|
properties: {
|
|
1873
2067
|
x: {
|
|
1874
|
-
type: "number"
|
|
2068
|
+
type: "number",
|
|
2069
|
+
description: "The X position relative to left of the screen."
|
|
1875
2070
|
},
|
|
1876
2071
|
y: {
|
|
1877
|
-
type: "number"
|
|
2072
|
+
type: "number",
|
|
2073
|
+
description: "The Y position relative to top of the screen."
|
|
1878
2074
|
},
|
|
1879
2075
|
width: {
|
|
1880
|
-
type: "number"
|
|
2076
|
+
type: "number",
|
|
2077
|
+
description: "The width. Defaults to background image width or 540."
|
|
1881
2078
|
},
|
|
1882
2079
|
height: {
|
|
1883
|
-
type: "number"
|
|
2080
|
+
type: "number",
|
|
2081
|
+
description: "The height. Defaults to background image height or 380."
|
|
1884
2082
|
}
|
|
1885
2083
|
}
|
|
1886
2084
|
}
|
|
1887
2085
|
}
|
|
1888
2086
|
},
|
|
1889
|
-
|
|
2087
|
+
nodeVersionProperty: {
|
|
1890
2088
|
type: "string",
|
|
1891
2089
|
validSemver: {},
|
|
1892
|
-
minLength: 1
|
|
2090
|
+
minLength: 1,
|
|
2091
|
+
description: "The version of Node.js that ToDesktop should use to build your app.",
|
|
2092
|
+
examples: ["18.12.1"]
|
|
1893
2093
|
},
|
|
1894
|
-
|
|
2094
|
+
npmVersionProperty: {
|
|
1895
2095
|
type: "string",
|
|
1896
2096
|
validSemver: {},
|
|
1897
|
-
minLength: 1
|
|
2097
|
+
minLength: 1,
|
|
2098
|
+
description: "The version of NPM that ToDesktop should use for installation.",
|
|
2099
|
+
examples: ["9.8.1"]
|
|
1898
2100
|
},
|
|
1899
|
-
|
|
2101
|
+
pnpmVersionProperty: {
|
|
1900
2102
|
type: "string",
|
|
1901
2103
|
validSemver: {},
|
|
1902
|
-
minLength: 1
|
|
2104
|
+
minLength: 1,
|
|
2105
|
+
description: "The version of pnpm that ToDesktop should use for installation.",
|
|
2106
|
+
examples: ["8.10.5"]
|
|
1903
2107
|
},
|
|
1904
|
-
|
|
1905
|
-
type: "object"
|
|
2108
|
+
packageJsonProperty: {
|
|
2109
|
+
type: "object",
|
|
2110
|
+
description: "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.",
|
|
2111
|
+
default: {}
|
|
1906
2112
|
},
|
|
1907
|
-
|
|
2113
|
+
packageManagerProperty: {
|
|
1908
2114
|
type: "string",
|
|
1909
|
-
enum: ["npm", "yarn", "pnpm"]
|
|
2115
|
+
enum: ["npm", "yarn", "pnpm"],
|
|
2116
|
+
description: "The package manager to use when installing dependencies. Valid values are `npm`, `yarn` or `pnpm`.",
|
|
2117
|
+
examples: ["yarn"],
|
|
2118
|
+
default: "If `yarn.lock` exists, `yarn` is used. If `pnpm-lock.yaml` or `shrinkwrap.yaml` exists, `pnpm` is used. Otherwise, `npm` is used."
|
|
1910
2119
|
},
|
|
1911
|
-
|
|
2120
|
+
rebuildLibraryProperty: {
|
|
1912
2121
|
type: "string",
|
|
1913
|
-
enum: ["app-builder", "@electron/rebuild"]
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
type: "number",
|
|
1917
|
-
minimum: 1,
|
|
1918
|
-
maximum: 1
|
|
2122
|
+
enum: ["app-builder", "@electron/rebuild"],
|
|
2123
|
+
description: "The library that ToDesktop should use for rebuilding native modules. Valid values are `app-builder` or `@electron/rebuild`.",
|
|
2124
|
+
default: "app-builder"
|
|
1919
2125
|
},
|
|
1920
|
-
|
|
2126
|
+
snapConfigProperty: {
|
|
1921
2127
|
type: "object",
|
|
2128
|
+
description: "This object contains some options that only apply to the building for the [Snap Store](https://snapcraft.io/store).",
|
|
2129
|
+
examples: ['{ "confinement": "classic", "grade": "devel" }'],
|
|
1922
2130
|
additionalProperties: false,
|
|
1923
2131
|
properties: {
|
|
1924
2132
|
after: {
|
|
1925
2133
|
type: "array",
|
|
2134
|
+
description: "Ensures that all the part names listed are staged before the app part begins its [lifecycle](https://snapcraft.io/docs/parts-lifecycle#heading--steps).",
|
|
2135
|
+
default: ["desktop-gtk2"],
|
|
2136
|
+
examples: ['["launch-scripts"]'],
|
|
1926
2137
|
items: {
|
|
1927
2138
|
type: "string",
|
|
1928
2139
|
minLength: 1
|
|
@@ -1930,6 +2141,9 @@ var schema_default = {
|
|
|
1930
2141
|
},
|
|
1931
2142
|
appPartStage: {
|
|
1932
2143
|
type: "array",
|
|
2144
|
+
description: "Specifies which files from the app part to stage and which to exclude. Individual files, directories, wildcards, globstars, and exclusions are accepted. See [Snapcraft filesets](https://snapcraft.io/docs/snapcraft-filesets) to learn more about the format.",
|
|
2145
|
+
examples: ['["-usr/lib/python*"]'],
|
|
2146
|
+
default: "See [snap.ts](https://github.com/electron-userland/electron-builder/blob/master/packages/app-builder-lib/templates/snap/snapcraft.yaml#L29).",
|
|
1933
2147
|
items: {
|
|
1934
2148
|
type: "string",
|
|
1935
2149
|
minLength: 1
|
|
@@ -1948,16 +2162,30 @@ var schema_default = {
|
|
|
1948
2162
|
minLength: 1
|
|
1949
2163
|
}
|
|
1950
2164
|
}
|
|
1951
|
-
]
|
|
2165
|
+
],
|
|
2166
|
+
description: "The list of features that must be supported by the core in order for this snap to install. To learn more, see the [Snapcraft docs](https://snapcraft.io/docs/snapcraft-top-level-metadata#heading--assumes).",
|
|
2167
|
+
examples: ["snapd2.38"],
|
|
2168
|
+
default: "undefined"
|
|
1952
2169
|
},
|
|
1953
2170
|
autoStart: {
|
|
1954
|
-
type: "boolean"
|
|
2171
|
+
type: "boolean",
|
|
2172
|
+
description: "Whether or not the snap should automatically start on login.",
|
|
2173
|
+
default: false,
|
|
2174
|
+
examples: [true]
|
|
1955
2175
|
},
|
|
1956
2176
|
base: {
|
|
1957
|
-
type: "string"
|
|
2177
|
+
type: "string",
|
|
2178
|
+
description: "The base snap to use for building this snap.",
|
|
2179
|
+
default: "core18",
|
|
2180
|
+
examples: ["core20"]
|
|
1958
2181
|
},
|
|
1959
2182
|
buildPackages: {
|
|
1960
2183
|
type: "array",
|
|
2184
|
+
description: "The list of debian packages needs to be installed for building this snap.",
|
|
2185
|
+
default: [],
|
|
2186
|
+
examples: [
|
|
2187
|
+
'["libssl-dev", "libssh-dev", "libncursesw5-dev"]'
|
|
2188
|
+
],
|
|
1961
2189
|
items: {
|
|
1962
2190
|
type: "string",
|
|
1963
2191
|
minLength: 1
|
|
@@ -1965,20 +2193,50 @@ var schema_default = {
|
|
|
1965
2193
|
},
|
|
1966
2194
|
confinement: {
|
|
1967
2195
|
type: "string",
|
|
1968
|
-
enum: ["classic", "devmode", "strict"]
|
|
2196
|
+
enum: ["classic", "devmode", "strict"],
|
|
2197
|
+
description: "The type of [confinement](https://snapcraft.io/docs/reference/confinement) supported by the snap. `devmode`, `strict`, or `classic`.",
|
|
2198
|
+
default: "strict",
|
|
2199
|
+
examples: ["classic"]
|
|
1969
2200
|
},
|
|
1970
2201
|
environment: {
|
|
1971
|
-
type: "object"
|
|
2202
|
+
type: "object",
|
|
2203
|
+
description: "The custom environment. If you set this, it will be merged with the default.",
|
|
2204
|
+
default: { TMPDIR: "$XDG_RUNTIME_DIR" },
|
|
2205
|
+
examples: ['{"TMPDIR": "$XDG_RUNTIME_DIR"}']
|
|
1972
2206
|
},
|
|
1973
2207
|
grade: {
|
|
1974
2208
|
type: "string",
|
|
1975
|
-
enum: ["devel", "stable"]
|
|
2209
|
+
enum: ["devel", "stable"],
|
|
2210
|
+
description: 'The quality grade of the snap. It can be either `devel` (i.e. a development version of the snap, so not to be published to the "stable" or "candidate" channels) or `stable` (i.e. a stable release or release candidate, which can be released to all channels).',
|
|
2211
|
+
default: "stable",
|
|
2212
|
+
examples: ["devel"]
|
|
1976
2213
|
},
|
|
1977
2214
|
layout: {
|
|
1978
|
-
type: "object"
|
|
2215
|
+
type: "object",
|
|
2216
|
+
description: "Specifies any files to make accessible from locations such as `/usr`, `/var`, and `/etc`. See [snap layouts](https://snapcraft.io/docs/snap-layouts) to learn more.",
|
|
2217
|
+
default: "undefined",
|
|
2218
|
+
examples: [
|
|
2219
|
+
'{ "/var/lib/foo": { "bind": "$SNAP_DATA/var/lib/foo" } }'
|
|
2220
|
+
]
|
|
1979
2221
|
},
|
|
1980
2222
|
plugs: {
|
|
1981
2223
|
type: "array",
|
|
2224
|
+
description: 'The list of [plugs](https://snapcraft.io/docs/reference/interfaces). If list contains `default`, it will be replaced with the default list, so, `["default", "foo"]` can be used to add a custom plug `foo` in addition to the default list.',
|
|
2225
|
+
default: [
|
|
2226
|
+
"desktop",
|
|
2227
|
+
"desktop-legacy",
|
|
2228
|
+
"home",
|
|
2229
|
+
"x11",
|
|
2230
|
+
"unity7",
|
|
2231
|
+
"browser-support",
|
|
2232
|
+
"network",
|
|
2233
|
+
"gsettings",
|
|
2234
|
+
"pulseaudio",
|
|
2235
|
+
"opengl"
|
|
2236
|
+
],
|
|
2237
|
+
examples: [
|
|
2238
|
+
'[ "default", { "browser-sandbox": { "interface": "browser-support", "allow-sandbox": true } }, "another-simple-plug-name" ]'
|
|
2239
|
+
],
|
|
1982
2240
|
items: {
|
|
1983
2241
|
anyOf: [
|
|
1984
2242
|
{
|
|
@@ -1993,6 +2251,19 @@ var schema_default = {
|
|
|
1993
2251
|
},
|
|
1994
2252
|
stagePackages: {
|
|
1995
2253
|
type: "array",
|
|
2254
|
+
description: 'The list of Ubuntu packages to use that are needed to support the app part creation. Like `depends` for deb. If list contains `default`, it will be replaced with the default list, so, `["default", "foo"]` can be used to add custom package `foo` in addition to the defaults.',
|
|
2255
|
+
default: [
|
|
2256
|
+
"libasound2",
|
|
2257
|
+
"libgconf2-4",
|
|
2258
|
+
"libnotify4",
|
|
2259
|
+
"libnspr4",
|
|
2260
|
+
"libnss3",
|
|
2261
|
+
"libpcre3",
|
|
2262
|
+
"libpulse0",
|
|
2263
|
+
"libxss1",
|
|
2264
|
+
"libxtst6"
|
|
2265
|
+
],
|
|
2266
|
+
examples: ['["default", "depends"]'],
|
|
1996
2267
|
items: {
|
|
1997
2268
|
type: "string",
|
|
1998
2269
|
minLength: 1
|
|
@@ -2000,22 +2271,35 @@ var schema_default = {
|
|
|
2000
2271
|
},
|
|
2001
2272
|
summary: {
|
|
2002
2273
|
type: "string",
|
|
2003
|
-
maxLength: 78
|
|
2274
|
+
maxLength: 78,
|
|
2275
|
+
description: "A sentence summarising the snap. Max len. 78 characters, describing the snap in short and simple terms.",
|
|
2276
|
+
default: "The [productName](#recommendations-for-app-packagejson).",
|
|
2277
|
+
examples: ["The super cat generator"]
|
|
2004
2278
|
},
|
|
2005
2279
|
useTemplateApp: {
|
|
2006
|
-
type: "boolean"
|
|
2280
|
+
type: "boolean",
|
|
2281
|
+
description: "Whether to use a template snap.",
|
|
2282
|
+
default: "true if `stagePackages` is not specified.",
|
|
2283
|
+
examples: [false]
|
|
2007
2284
|
}
|
|
2008
2285
|
}
|
|
2009
2286
|
},
|
|
2010
|
-
|
|
2011
|
-
type: "number"
|
|
2287
|
+
uploadSizeLimitProperty: {
|
|
2288
|
+
type: "number",
|
|
2289
|
+
description: "The max upload size (in MB). Before uploading your files to our servers, we check that the total file size is less than this number. If you are accidentally including unneccesary files in your app, check out the `appPath` and `appFiles` options.",
|
|
2290
|
+
default: 20,
|
|
2291
|
+
examples: [35]
|
|
2012
2292
|
},
|
|
2013
|
-
|
|
2293
|
+
windowsConfigProperty: {
|
|
2014
2294
|
type: "object",
|
|
2295
|
+
description: "This object contains some options that only apply to the building & releasing for Windows.",
|
|
2296
|
+
examples: ['{ "icon": "./icon.ico" }'],
|
|
2015
2297
|
additionalProperties: false,
|
|
2016
2298
|
properties: {
|
|
2017
2299
|
icon: {
|
|
2018
2300
|
type: "string",
|
|
2301
|
+
description: "The path to your application's Windows desktop icon. It must be an ICO, ICNS, or PNG.",
|
|
2302
|
+
examples: ["./icon.ico"],
|
|
2019
2303
|
file: {
|
|
2020
2304
|
extensions: ["icns", "png", "icon"],
|
|
2021
2305
|
mustBeFile: true
|
|
@@ -2024,24 +2308,33 @@ var schema_default = {
|
|
|
2024
2308
|
},
|
|
2025
2309
|
nsisCustomBinary: {
|
|
2026
2310
|
type: "object",
|
|
2311
|
+
description: "Allows you to provide your own makensis, such as one with support for debug logging via LogSet and LogText. (Logging also requires option debugLogging = true). It's not recommended to use it for production build.",
|
|
2312
|
+
default: "undefined",
|
|
2027
2313
|
additionalProperties: false,
|
|
2028
2314
|
properties: {
|
|
2029
2315
|
checksum: {
|
|
2030
|
-
type: "string"
|
|
2316
|
+
type: "string",
|
|
2317
|
+
description: "Checksum for the custom NSIS binary."
|
|
2031
2318
|
},
|
|
2032
2319
|
debugLogging: {
|
|
2033
|
-
type: "boolean"
|
|
2320
|
+
type: "boolean",
|
|
2321
|
+
description: "Enable debug logging with the custom NSIS binary."
|
|
2034
2322
|
},
|
|
2035
2323
|
url: {
|
|
2036
|
-
type: "string"
|
|
2324
|
+
type: "string",
|
|
2325
|
+
description: "URL to download the custom NSIS binary (e.g., a .7z archive)."
|
|
2037
2326
|
},
|
|
2038
2327
|
version: {
|
|
2039
|
-
type: "string"
|
|
2328
|
+
type: "string",
|
|
2329
|
+
description: "Version of the custom NSIS binary."
|
|
2040
2330
|
}
|
|
2041
2331
|
}
|
|
2042
2332
|
},
|
|
2043
2333
|
nsisInclude: {
|
|
2044
2334
|
type: "string",
|
|
2335
|
+
description: "The path to NSIS script to customize installer.",
|
|
2336
|
+
examples: ["build/installer.nsh"],
|
|
2337
|
+
default: "undefined",
|
|
2045
2338
|
file: {
|
|
2046
2339
|
extensions: ["nsh"],
|
|
2047
2340
|
mustBeFile: true
|
|
@@ -2049,12 +2342,64 @@ var schema_default = {
|
|
|
2049
2342
|
},
|
|
2050
2343
|
publisherName: {
|
|
2051
2344
|
type: "array",
|
|
2345
|
+
description: "The publisher name, exactly as in your code signing certificate. Several names can be provided. Defaults to common name from your code signing certificate. You should typically not include this property in your configuration unless you wish to transition to a new certificate in the future.",
|
|
2346
|
+
examples: ['["ABC Limited"]'],
|
|
2347
|
+
default: "Default to the common name from your code signing certificate.",
|
|
2052
2348
|
items: {
|
|
2053
2349
|
type: "string",
|
|
2054
2350
|
minLength: 1
|
|
2055
2351
|
}
|
|
2056
2352
|
}
|
|
2057
2353
|
}
|
|
2354
|
+
},
|
|
2355
|
+
platformOverridableProperties: {
|
|
2356
|
+
type: "object",
|
|
2357
|
+
additionalProperties: false,
|
|
2358
|
+
description: "Defines properties that can be overridden on a per-platform basis under the 'platformOverrides' field.",
|
|
2359
|
+
properties: {
|
|
2360
|
+
appBuilderLibVersion: {
|
|
2361
|
+
$ref: "#/definitions/appBuilderLibVersionProperty"
|
|
2362
|
+
},
|
|
2363
|
+
appId: { $ref: "#/definitions/appIdProperty" },
|
|
2364
|
+
appFiles: { $ref: "#/definitions/appFilesProperty" },
|
|
2365
|
+
appProtocolScheme: {
|
|
2366
|
+
$ref: "#/definitions/appProtocolSchemeProperty"
|
|
2367
|
+
},
|
|
2368
|
+
appPath: { $ref: "#/definitions/appPathProperty" },
|
|
2369
|
+
asar: { $ref: "#/definitions/asarProperty" },
|
|
2370
|
+
asarUnpack: { $ref: "#/definitions/asarUnpackProperty" },
|
|
2371
|
+
buildVersion: { $ref: "#/definitions/buildVersionProperty" },
|
|
2372
|
+
copyright: { $ref: "#/definitions/copyrightProperty" },
|
|
2373
|
+
electronMirror: { $ref: "#/definitions/electronMirrorProperty" },
|
|
2374
|
+
electronVersion: { $ref: "#/definitions/electronVersionProperty" },
|
|
2375
|
+
extraContentFiles: {
|
|
2376
|
+
$ref: "#/definitions/extraContentFilesProperty"
|
|
2377
|
+
},
|
|
2378
|
+
extraResources: { $ref: "#/definitions/extraResourcesProperty" },
|
|
2379
|
+
fileAssociations: {
|
|
2380
|
+
$ref: "#/definitions/fileAssociationsProperty"
|
|
2381
|
+
},
|
|
2382
|
+
updateUrlBase: { $ref: "#/definitions/updateUrlBaseProperty" },
|
|
2383
|
+
filesForDistribution: {
|
|
2384
|
+
$ref: "#/definitions/filesForDistributionProperty"
|
|
2385
|
+
},
|
|
2386
|
+
linux: { $ref: "#/definitions/linuxConfigProperty" },
|
|
2387
|
+
includeSubNodeModules: {
|
|
2388
|
+
$ref: "#/definitions/includeSubNodeModulesProperty"
|
|
2389
|
+
},
|
|
2390
|
+
mac: { $ref: "#/definitions/macConfigProperty" },
|
|
2391
|
+
mas: { $ref: "#/definitions/masConfigProperty" },
|
|
2392
|
+
dmg: { $ref: "#/definitions/dmgConfigProperty" },
|
|
2393
|
+
nodeVersion: { $ref: "#/definitions/nodeVersionProperty" },
|
|
2394
|
+
npmVersion: { $ref: "#/definitions/npmVersionProperty" },
|
|
2395
|
+
pnpmVersion: { $ref: "#/definitions/pnpmVersionProperty" },
|
|
2396
|
+
packageJson: { $ref: "#/definitions/packageJsonProperty" },
|
|
2397
|
+
packageManager: { $ref: "#/definitions/packageManagerProperty" },
|
|
2398
|
+
rebuildLibrary: { $ref: "#/definitions/rebuildLibraryProperty" },
|
|
2399
|
+
snap: { $ref: "#/definitions/snapConfigProperty" },
|
|
2400
|
+
uploadSizeLimit: { $ref: "#/definitions/uploadSizeLimitProperty" },
|
|
2401
|
+
windows: { $ref: "#/definitions/windowsConfigProperty" }
|
|
2402
|
+
}
|
|
2058
2403
|
}
|
|
2059
2404
|
}
|
|
2060
2405
|
};
|
|
@@ -2904,35 +3249,24 @@ function Build({
|
|
|
2904
3249
|
}
|
|
2905
3250
|
}
|
|
2906
3251
|
|
|
2907
|
-
// src/utilities/checkIfReactIsUsable.ts
|
|
2908
|
-
var import_react7 = require("react");
|
|
2909
|
-
var checkIfReactIsUsable_default = ({ cons = console, proc = process } = {}) => {
|
|
2910
|
-
try {
|
|
2911
|
-
(0, import_react7.useState)(null);
|
|
2912
|
-
} catch (e) {
|
|
2913
|
-
cons.error(e);
|
|
2914
|
-
proc.exit(1);
|
|
2915
|
-
}
|
|
2916
|
-
};
|
|
2917
|
-
|
|
2918
3252
|
// src/components/LoginHOC.tsx
|
|
2919
3253
|
var import_ink16 = require("ink");
|
|
2920
|
-
var
|
|
3254
|
+
var import_react9 = require("react");
|
|
2921
3255
|
var import_prop_types9 = __toESM(require("prop-types"));
|
|
2922
3256
|
var import_is_ci4 = __toESM(require("is-ci"));
|
|
2923
3257
|
|
|
2924
3258
|
// src/components/Login.tsx
|
|
2925
3259
|
var import_ink14 = require("ink");
|
|
2926
3260
|
var import_prop_types8 = __toESM(require("prop-types"));
|
|
2927
|
-
var
|
|
3261
|
+
var import_react8 = require("react");
|
|
2928
3262
|
var import_react_final_form = require("react-final-form");
|
|
2929
3263
|
|
|
2930
3264
|
// src/components/TextInput.tsx
|
|
2931
3265
|
var import_ink_text_input = __toESM(require("ink-text-input"));
|
|
2932
|
-
var
|
|
3266
|
+
var import_react7 = __toESM(require("react"));
|
|
2933
3267
|
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
2934
3268
|
var TextInput = ({ onBlur, onFocus, ...props }) => {
|
|
2935
|
-
|
|
3269
|
+
import_react7.default.useEffect(() => {
|
|
2936
3270
|
onFocus();
|
|
2937
3271
|
return onBlur;
|
|
2938
3272
|
}, [onFocus, onBlur]);
|
|
@@ -2966,10 +3300,10 @@ var loginFields = [
|
|
|
2966
3300
|
}
|
|
2967
3301
|
];
|
|
2968
3302
|
var Login = ({ setIsLoggedIn }) => {
|
|
2969
|
-
const [activeField, setActiveField] = (0,
|
|
2970
|
-
const [error, setError] = (0,
|
|
2971
|
-
const [failureMessage, setFailureMessage] = (0,
|
|
2972
|
-
const [isSubmittingForm, setIsSubmittingForm] = (0,
|
|
3303
|
+
const [activeField, setActiveField] = (0, import_react8.useState)(0);
|
|
3304
|
+
const [error, setError] = (0, import_react8.useState)(null);
|
|
3305
|
+
const [failureMessage, setFailureMessage] = (0, import_react8.useState)(null);
|
|
3306
|
+
const [isSubmittingForm, setIsSubmittingForm] = (0, import_react8.useState)(false);
|
|
2973
3307
|
const onFailure = (message2) => {
|
|
2974
3308
|
setIsSubmittingForm(false);
|
|
2975
3309
|
setFailureMessage(message2);
|
|
@@ -3068,11 +3402,11 @@ var LoadingText_default = LoadingText;
|
|
|
3068
3402
|
// src/components/LoginHOC.tsx
|
|
3069
3403
|
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
3070
3404
|
var LoginHOC = ({ children, isInteractive = true }) => {
|
|
3071
|
-
const [isLoggedIn, setIsLoggedIn] = (0,
|
|
3072
|
-
const [isEffectDone, setEffectDone] = (0,
|
|
3073
|
-
const [error, setError] = (0,
|
|
3405
|
+
const [isLoggedIn, setIsLoggedIn] = (0, import_react9.useState)(false);
|
|
3406
|
+
const [isEffectDone, setEffectDone] = (0, import_react9.useState)(false);
|
|
3407
|
+
const [error, setError] = (0, import_react9.useState)(null);
|
|
3074
3408
|
const { isRawModeSupported } = (0, import_ink16.useStdin)();
|
|
3075
|
-
(0,
|
|
3409
|
+
(0, import_react9.useEffect)(() => {
|
|
3076
3410
|
async function isAccessTokenValid() {
|
|
3077
3411
|
const { accessToken, email, jwtToken } = getAuthConfig();
|
|
3078
3412
|
let userCreds = null;
|
|
@@ -3149,9 +3483,9 @@ LoginHOC.propTypes = {
|
|
|
3149
3483
|
var LoginHOC_default = LoginHOC;
|
|
3150
3484
|
|
|
3151
3485
|
// src/components/ErrorBoundary.tsx
|
|
3152
|
-
var
|
|
3486
|
+
var import_react10 = __toESM(require("react"));
|
|
3153
3487
|
var Sentry2 = __toESM(require("@sentry/node"));
|
|
3154
|
-
var ErrorBoundary = class extends
|
|
3488
|
+
var ErrorBoundary = class extends import_react10.default.Component {
|
|
3155
3489
|
constructor(props) {
|
|
3156
3490
|
super(props);
|
|
3157
3491
|
this.state = { eventId: null, error: null };
|
|
@@ -3179,7 +3513,7 @@ var ErrorBoundary_default = ErrorBoundary;
|
|
|
3179
3513
|
var import_ink20 = require("ink");
|
|
3180
3514
|
var import_ink_select_input = __toESM(require("ink-select-input"));
|
|
3181
3515
|
var import_prop_types11 = __toESM(require("prop-types"));
|
|
3182
|
-
var
|
|
3516
|
+
var import_react12 = require("react");
|
|
3183
3517
|
|
|
3184
3518
|
// src/components/CustomSelectInputIndicator.tsx
|
|
3185
3519
|
var import_ink17 = require("ink");
|
|
@@ -3206,7 +3540,7 @@ function CustomSelectInputItem({
|
|
|
3206
3540
|
// src/components/ViewBuild.tsx
|
|
3207
3541
|
var import_ink19 = require("ink");
|
|
3208
3542
|
var import_prop_types10 = __toESM(require("prop-types"));
|
|
3209
|
-
var
|
|
3543
|
+
var import_react11 = require("react");
|
|
3210
3544
|
|
|
3211
3545
|
// src/utilities/getLatestBuildId.ts
|
|
3212
3546
|
async function getLatestBuildId({
|
|
@@ -3301,7 +3635,7 @@ var ViewBuild = ({ commandUsed, id, configPath }) => {
|
|
|
3301
3635
|
isLoading
|
|
3302
3636
|
},
|
|
3303
3637
|
setState
|
|
3304
|
-
] = (0,
|
|
3638
|
+
] = (0, import_react11.useState)({
|
|
3305
3639
|
appId: null,
|
|
3306
3640
|
arbitraryMessageComponent: null,
|
|
3307
3641
|
build: null,
|
|
@@ -3317,7 +3651,7 @@ var ViewBuild = ({ commandUsed, id, configPath }) => {
|
|
|
3317
3651
|
error: error2
|
|
3318
3652
|
}));
|
|
3319
3653
|
};
|
|
3320
|
-
(0,
|
|
3654
|
+
(0, import_react11.useEffect)(() => {
|
|
3321
3655
|
let firebaseUnsubscribe;
|
|
3322
3656
|
async function viewBuild() {
|
|
3323
3657
|
let config2;
|
|
@@ -3374,12 +3708,12 @@ var ViewBuild = ({ commandUsed, id, configPath }) => {
|
|
|
3374
3708
|
}
|
|
3375
3709
|
};
|
|
3376
3710
|
}, [id, configPath]);
|
|
3377
|
-
(0,
|
|
3711
|
+
(0, import_react11.useEffect)(() => {
|
|
3378
3712
|
if (hasBuildEverFailed && shouldExitOnBuildFailure_default(build)) {
|
|
3379
3713
|
setTimeout(() => exit(new Error("Build has failed")), 10);
|
|
3380
3714
|
}
|
|
3381
3715
|
}, [build, exit, hasBuildEverFailed]);
|
|
3382
|
-
(0,
|
|
3716
|
+
(0, import_react11.useEffect)(() => {
|
|
3383
3717
|
if (arbitraryMessageComponent) {
|
|
3384
3718
|
setTimeout(() => exit(new Error("Validation failed")), 10);
|
|
3385
3719
|
}
|
|
@@ -3458,14 +3792,14 @@ var OngoingBuildGuard = ({
|
|
|
3458
3792
|
const { isRawModeSupported } = (0, import_ink20.useStdin)();
|
|
3459
3793
|
const onInput = useInput_default();
|
|
3460
3794
|
const exit = useExit_default();
|
|
3461
|
-
const [{ appId, builds, error, isLoading, itemChosen }, setState] = (0,
|
|
3795
|
+
const [{ appId, builds, error, isLoading, itemChosen }, setState] = (0, import_react12.useState)({
|
|
3462
3796
|
appId: null,
|
|
3463
3797
|
builds: [],
|
|
3464
3798
|
error: null,
|
|
3465
3799
|
isLoading: true,
|
|
3466
3800
|
itemChosen: null
|
|
3467
3801
|
});
|
|
3468
|
-
(0,
|
|
3802
|
+
(0, import_react12.useEffect)(() => {
|
|
3469
3803
|
if (!isLoading) {
|
|
3470
3804
|
return;
|
|
3471
3805
|
}
|
|
@@ -3588,9 +3922,9 @@ OngoingBuildGuard.propTypes = {
|
|
|
3588
3922
|
var OngoingBuildGuard_default = OngoingBuildGuard;
|
|
3589
3923
|
|
|
3590
3924
|
// src/utilities/useAnalytics.ts
|
|
3591
|
-
var
|
|
3925
|
+
var import_react13 = require("react");
|
|
3592
3926
|
var useAnalyticsCommand = (command, flags = {}, properties = {}) => {
|
|
3593
|
-
const [hasAttemptedTracking, setTrackingAttempt] = (0,
|
|
3927
|
+
const [hasAttemptedTracking, setTrackingAttempt] = (0, import_react13.useState)(false);
|
|
3594
3928
|
logger_default.info({ command, flags, properties }, "useAnalyticsCommand");
|
|
3595
3929
|
try {
|
|
3596
3930
|
if (flags.projectPath) {
|
|
@@ -3601,7 +3935,7 @@ var useAnalyticsCommand = (command, flags = {}, properties = {}) => {
|
|
|
3601
3935
|
}
|
|
3602
3936
|
} catch (err) {
|
|
3603
3937
|
}
|
|
3604
|
-
(0,
|
|
3938
|
+
(0, import_react13.useEffect)(() => {
|
|
3605
3939
|
const authUnsubscribe = onUserAuth(async (user) => {
|
|
3606
3940
|
if (user.uid) {
|
|
3607
3941
|
identify(
|
|
@@ -3636,7 +3970,6 @@ function BuildCommand({
|
|
|
3636
3970
|
configPath,
|
|
3637
3971
|
flags
|
|
3638
3972
|
}) {
|
|
3639
|
-
checkIfReactIsUsable_default();
|
|
3640
3973
|
useAnalyticsCommand("build", {
|
|
3641
3974
|
async: flags.exitAfterUploading,
|
|
3642
3975
|
codeSign: flags.shouldCodeSign,
|
|
@@ -3657,7 +3990,7 @@ function BuildCommand({
|
|
|
3657
3990
|
// src/components/ViewBuilds.tsx
|
|
3658
3991
|
var import_ink26 = require("ink");
|
|
3659
3992
|
var import_prop_types17 = __toESM(require("prop-types"));
|
|
3660
|
-
var
|
|
3993
|
+
var import_react15 = require("react");
|
|
3661
3994
|
|
|
3662
3995
|
// src/components/Table.tsx
|
|
3663
3996
|
var import_ink24 = require("ink");
|
|
@@ -3681,7 +4014,7 @@ var TableEnd_default = TableEnd;
|
|
|
3681
4014
|
// src/components/TableHead.tsx
|
|
3682
4015
|
var import_ink22 = require("ink");
|
|
3683
4016
|
var import_prop_types13 = __toESM(require("prop-types"));
|
|
3684
|
-
var
|
|
4017
|
+
var import_react14 = require("react");
|
|
3685
4018
|
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
3686
4019
|
var TableHead = ({ keyDetails, ...props }) => {
|
|
3687
4020
|
let topLine = "\u250C";
|
|
@@ -3689,7 +4022,7 @@ var TableHead = ({ keyDetails, ...props }) => {
|
|
|
3689
4022
|
topLine += "\u2510";
|
|
3690
4023
|
const contentLineElements = Object.values(keyDetails).map(
|
|
3691
4024
|
({ key, width }, index) => {
|
|
3692
|
-
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
4025
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react14.Fragment, { children: [
|
|
3693
4026
|
index > 0 ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_ink22.Text, { children: " \u2502 " }) : null,
|
|
3694
4027
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_ink22.Box, { width, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_ink22.Text, { bold: true, children: key }) })
|
|
3695
4028
|
] }, key);
|
|
@@ -3923,7 +4256,7 @@ var ViewBuilds = ({
|
|
|
3923
4256
|
user
|
|
3924
4257
|
},
|
|
3925
4258
|
setState
|
|
3926
|
-
] = (0,
|
|
4259
|
+
] = (0, import_react15.useState)({
|
|
3927
4260
|
builds: [],
|
|
3928
4261
|
error: null,
|
|
3929
4262
|
hasMoreToLoad: true,
|
|
@@ -3948,7 +4281,7 @@ var ViewBuilds = ({
|
|
|
3948
4281
|
}));
|
|
3949
4282
|
}
|
|
3950
4283
|
});
|
|
3951
|
-
(0,
|
|
4284
|
+
(0, import_react15.useEffect)(() => {
|
|
3952
4285
|
async function viewBuilds() {
|
|
3953
4286
|
if (error || isLoading || isInitialLoadComplete && (!hasMoreToLoad || !startAfter)) {
|
|
3954
4287
|
return;
|
|
@@ -4023,12 +4356,12 @@ var ViewBuilds = ({
|
|
|
4023
4356
|
format,
|
|
4024
4357
|
count
|
|
4025
4358
|
]);
|
|
4026
|
-
(0,
|
|
4359
|
+
(0, import_react15.useEffect)(() => {
|
|
4027
4360
|
if (!hasMoreToLoad) {
|
|
4028
4361
|
setTimeout(exit, 10);
|
|
4029
4362
|
}
|
|
4030
4363
|
}, [exit, hasMoreToLoad]);
|
|
4031
|
-
(0,
|
|
4364
|
+
(0, import_react15.useEffect)(() => {
|
|
4032
4365
|
if (!isLoading && isInitialLoadComplete && shouldExitAfterViewingBuilds) {
|
|
4033
4366
|
setTimeout(exit, 10);
|
|
4034
4367
|
}
|
|
@@ -4114,7 +4447,6 @@ var BuildsCommand = ({
|
|
|
4114
4447
|
format = "table",
|
|
4115
4448
|
exit
|
|
4116
4449
|
}) => {
|
|
4117
|
-
checkIfReactIsUsable_default();
|
|
4118
4450
|
useAnalyticsCommand("builds", {
|
|
4119
4451
|
id,
|
|
4120
4452
|
shouldViewLatest,
|
|
@@ -4156,15 +4488,14 @@ var BuildsCommand = ({
|
|
|
4156
4488
|
var BuildsCommand_default = BuildsCommand;
|
|
4157
4489
|
|
|
4158
4490
|
// src/commands/LogoutCommand.tsx
|
|
4159
|
-
var
|
|
4491
|
+
var import_react16 = require("react");
|
|
4160
4492
|
var import_ink27 = require("ink");
|
|
4161
4493
|
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
4162
4494
|
var Logout = () => {
|
|
4163
4495
|
const exit = useExit_default();
|
|
4164
4496
|
const { hasAttemptedTracking } = useAnalyticsCommand("logout");
|
|
4165
|
-
checkIfReactIsUsable_default();
|
|
4166
4497
|
deleteAuthConfig();
|
|
4167
|
-
(0,
|
|
4498
|
+
(0, import_react16.useEffect)(() => {
|
|
4168
4499
|
if (hasAttemptedTracking) {
|
|
4169
4500
|
exit();
|
|
4170
4501
|
}
|
|
@@ -4178,7 +4509,7 @@ var LogoutCommand_default = LogoutWrapper;
|
|
|
4178
4509
|
|
|
4179
4510
|
// src/components/BuildPicker.tsx
|
|
4180
4511
|
var import_ink29 = require("ink");
|
|
4181
|
-
var
|
|
4512
|
+
var import_react17 = require("react");
|
|
4182
4513
|
|
|
4183
4514
|
// src/components/SelectTable.tsx
|
|
4184
4515
|
var import_ink28 = require("ink");
|
|
@@ -4296,11 +4627,11 @@ function BuildPicker({
|
|
|
4296
4627
|
const exit = useExit_default();
|
|
4297
4628
|
const onInput = useInput_default();
|
|
4298
4629
|
const isRealIdPassed = buildId && buildId !== "latest";
|
|
4299
|
-
const [state, setState] = (0,
|
|
4630
|
+
const [state, setState] = (0, import_react17.useState)({
|
|
4300
4631
|
selectedBuildId: isRealIdPassed ? buildId : void 0,
|
|
4301
4632
|
state: isRealIdPassed ? "selected" : "loading"
|
|
4302
4633
|
});
|
|
4303
|
-
(0,
|
|
4634
|
+
(0, import_react17.useEffect)(() => {
|
|
4304
4635
|
loadData({
|
|
4305
4636
|
buildFilter,
|
|
4306
4637
|
buildId,
|
|
@@ -4415,7 +4746,7 @@ async function getBuildItems({
|
|
|
4415
4746
|
}
|
|
4416
4747
|
|
|
4417
4748
|
// src/commands/release/components/ReleaseBuildLogic.tsx
|
|
4418
|
-
var
|
|
4749
|
+
var import_react18 = require("react");
|
|
4419
4750
|
|
|
4420
4751
|
// src/utilities/getBuildAttributes.ts
|
|
4421
4752
|
async function getBuildAttributes({
|
|
@@ -4552,8 +4883,8 @@ function ReleaseBuildLogic({
|
|
|
4552
4883
|
configPath
|
|
4553
4884
|
}) {
|
|
4554
4885
|
const exit = useExit_default();
|
|
4555
|
-
const [state, setState] = (0,
|
|
4556
|
-
(0,
|
|
4886
|
+
const [state, setState] = (0, import_react18.useState)({ state: "loading" });
|
|
4887
|
+
(0, import_react18.useEffect)(() => {
|
|
4557
4888
|
releaseBuildWorkflow({ configPath, buildId, updateState }).catch(
|
|
4558
4889
|
logger_default.error
|
|
4559
4890
|
);
|
|
@@ -4591,7 +4922,7 @@ async function releaseBuildWorkflow({
|
|
|
4591
4922
|
|
|
4592
4923
|
// src/commands/release/components/ReleaseConfirmation.tsx
|
|
4593
4924
|
var import_ink34 = require("ink");
|
|
4594
|
-
var
|
|
4925
|
+
var import_react20 = require("react");
|
|
4595
4926
|
|
|
4596
4927
|
// src/commands/smoke-test/utilities/build.ts
|
|
4597
4928
|
var import_semver = __toESM(require("semver"));
|
|
@@ -4750,15 +5081,15 @@ function analyzeRelease({
|
|
|
4750
5081
|
// src/commands/release/components/DowngradeConfirmation.tsx
|
|
4751
5082
|
var import_ink32 = require("ink");
|
|
4752
5083
|
var import_ink_text_input2 = __toESM(require("ink-text-input"));
|
|
4753
|
-
var
|
|
5084
|
+
var import_react19 = require("react");
|
|
4754
5085
|
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
4755
5086
|
function DowngradeConfirmation({
|
|
4756
5087
|
build,
|
|
4757
5088
|
latestReleasedBuild,
|
|
4758
5089
|
confirmDowngrade: confirmDowngrade2
|
|
4759
5090
|
}) {
|
|
4760
|
-
const [confirmText, setConfirmText] = (0,
|
|
4761
|
-
const [showError, setShowError] = (0,
|
|
5091
|
+
const [confirmText, setConfirmText] = (0, import_react19.useState)("");
|
|
5092
|
+
const [showError, setShowError] = (0, import_react19.useState)(false);
|
|
4762
5093
|
const buildVersion = build.appVersion;
|
|
4763
5094
|
const latestVersion2 = latestReleasedBuild.appVersion;
|
|
4764
5095
|
function onType(text) {
|
|
@@ -4843,10 +5174,10 @@ function ReleaseConfirmation({
|
|
|
4843
5174
|
loadData = loadBuildsData
|
|
4844
5175
|
}) {
|
|
4845
5176
|
var _a;
|
|
4846
|
-
const [state, setState] = (0,
|
|
5177
|
+
const [state, setState] = (0, import_react20.useState)({
|
|
4847
5178
|
state: disabled ? "bypass" : "loading"
|
|
4848
5179
|
});
|
|
4849
|
-
(0,
|
|
5180
|
+
(0, import_react20.useEffect)(() => {
|
|
4850
5181
|
confirmationWorkflow({
|
|
4851
5182
|
buildId,
|
|
4852
5183
|
configPath,
|
|
@@ -5026,7 +5357,6 @@ function ReleaseCommand({
|
|
|
5026
5357
|
configPath,
|
|
5027
5358
|
shouldConfirm
|
|
5028
5359
|
}) {
|
|
5029
|
-
checkIfReactIsUsable_default();
|
|
5030
5360
|
useAnalyticsCommand("release", {
|
|
5031
5361
|
buildId,
|
|
5032
5362
|
shouldConfirm,
|
|
@@ -5069,11 +5399,11 @@ function isBuildReleasable(opts) {
|
|
|
5069
5399
|
}
|
|
5070
5400
|
|
|
5071
5401
|
// src/commands/smoke-test/SmokeTestCommand.tsx
|
|
5072
|
-
var
|
|
5402
|
+
var import_react22 = require("react");
|
|
5073
5403
|
|
|
5074
5404
|
// src/commands/smoke-test/components/Cancellation.tsx
|
|
5075
5405
|
var import_ink35 = require("ink");
|
|
5076
|
-
var
|
|
5406
|
+
var import_react21 = require("react");
|
|
5077
5407
|
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
5078
5408
|
function Cancellation({
|
|
5079
5409
|
children,
|
|
@@ -5093,8 +5423,8 @@ function Cancellation({
|
|
|
5093
5423
|
renderError = (e) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ErrorDisplay, { error: e }),
|
|
5094
5424
|
subject
|
|
5095
5425
|
}) {
|
|
5096
|
-
const [state, setState] = (0,
|
|
5097
|
-
const [error, setError] = (0,
|
|
5426
|
+
const [state, setState] = (0, import_react21.useState)("normal");
|
|
5427
|
+
const [error, setError] = (0, import_react21.useState)();
|
|
5098
5428
|
const onInput = useInput_default();
|
|
5099
5429
|
const exit = useExit_default();
|
|
5100
5430
|
onInput(async (input, key) => {
|
|
@@ -5331,7 +5661,6 @@ function SmokeTestCommand({
|
|
|
5331
5661
|
buildId,
|
|
5332
5662
|
configPath
|
|
5333
5663
|
}) {
|
|
5334
|
-
checkIfReactIsUsable_default();
|
|
5335
5664
|
useAnalyticsCommand("smoke-test", { buildId, configPath });
|
|
5336
5665
|
const command = `todesktop release ${buildId === "latest" ? "--latest" : "<id>"}`;
|
|
5337
5666
|
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(LoginHOC_default, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
@@ -5359,13 +5688,13 @@ function SmokeTestContainer({
|
|
|
5359
5688
|
configPath
|
|
5360
5689
|
}) {
|
|
5361
5690
|
const exit = useExit_default();
|
|
5362
|
-
const [state, setState] = (0,
|
|
5691
|
+
const [state, setState] = (0, import_react22.useState)({
|
|
5363
5692
|
buildId,
|
|
5364
5693
|
state: "loading"
|
|
5365
5694
|
});
|
|
5366
|
-
const [abortController] = (0,
|
|
5695
|
+
const [abortController] = (0, import_react22.useState)(new AbortController());
|
|
5367
5696
|
const abortSignal = abortController.signal;
|
|
5368
|
-
(0,
|
|
5697
|
+
(0, import_react22.useEffect)(() => {
|
|
5369
5698
|
smokeTestWorkflow({ abortSignal, buildId, configPath, updateState }).catch(
|
|
5370
5699
|
logger_default.error
|
|
5371
5700
|
);
|
|
@@ -5456,15 +5785,14 @@ function isCancelable(state) {
|
|
|
5456
5785
|
}
|
|
5457
5786
|
|
|
5458
5787
|
// src/commands/WhoamiCommand.tsx
|
|
5459
|
-
var
|
|
5788
|
+
var import_react23 = require("react");
|
|
5460
5789
|
var import_ink38 = require("ink");
|
|
5461
5790
|
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
5462
5791
|
var WhoAmI = () => {
|
|
5463
5792
|
const exit = useExit_default();
|
|
5464
|
-
checkIfReactIsUsable_default();
|
|
5465
5793
|
const auth = getAuthConfig();
|
|
5466
5794
|
const { hasAttemptedTracking } = useAnalyticsCommand("whoami", {}, {});
|
|
5467
|
-
(0,
|
|
5795
|
+
(0, import_react23.useEffect)(() => {
|
|
5468
5796
|
if (hasAttemptedTracking) {
|
|
5469
5797
|
exit();
|
|
5470
5798
|
}
|
|
@@ -5515,7 +5843,7 @@ var package_default = {
|
|
|
5515
5843
|
access: "public"
|
|
5516
5844
|
},
|
|
5517
5845
|
name: "@todesktop/cli",
|
|
5518
|
-
version: "1.12.
|
|
5846
|
+
version: "1.12.5",
|
|
5519
5847
|
license: "MIT",
|
|
5520
5848
|
author: "Dave Jeffery <dave@todesktop.com> (http://www.todesktop.com/)",
|
|
5521
5849
|
homepage: "https://todesktop.com/cli",
|
|
@@ -5539,20 +5867,18 @@ var package_default = {
|
|
|
5539
5867
|
format: "prettier --write .",
|
|
5540
5868
|
"lint:types": "tsc && tsc-strict",
|
|
5541
5869
|
"lint--fix": "eslint src test --fix",
|
|
5542
|
-
|
|
5543
|
-
|
|
5870
|
+
"docs:generate": "node scripts/generate-readme.js",
|
|
5871
|
+
release: "npm run docs:generate && npm run build && npx np --tag=latest",
|
|
5872
|
+
"release-beta": "npm run docs:generate && npm run build && npx np --any-branch --no-tests --tag=beta",
|
|
5544
5873
|
test: "ava",
|
|
5545
5874
|
"test--watch": "npm test -- --watch",
|
|
5546
5875
|
postinstall: "node scripts/postinstall.js"
|
|
5547
5876
|
},
|
|
5548
5877
|
files: [
|
|
5549
|
-
"scripts",
|
|
5878
|
+
"scripts/postinstall.js",
|
|
5550
5879
|
"schemas",
|
|
5551
5880
|
"dist",
|
|
5552
|
-
"
|
|
5553
|
-
".env",
|
|
5554
|
-
"LICENSE",
|
|
5555
|
-
"README.md"
|
|
5881
|
+
".env"
|
|
5556
5882
|
],
|
|
5557
5883
|
dependencies: {
|
|
5558
5884
|
"@sentry/node": "^8.35.0",
|
|
@@ -5816,7 +6142,7 @@ import_commander.program.command("whoami").description("Prints the email of the
|
|
|
5816
6142
|
});
|
|
5817
6143
|
var runCommand = (component, props = null, { exitIfOutOfDate = true } = {}) => {
|
|
5818
6144
|
onCommand_default({ exitIfOutOfDate });
|
|
5819
|
-
const { waitUntilExit } = (0, import_ink39.render)((0,
|
|
6145
|
+
const { waitUntilExit } = (0, import_ink39.render)((0, import_react24.createElement)(component, props));
|
|
5820
6146
|
waitUntilExit().catch((error) => {
|
|
5821
6147
|
console.error(error.stack);
|
|
5822
6148
|
});
|