UNPKG

79.2 kBJSONView Raw
1[
2 {
3 "__docId__": 0,
4 "kind": "file",
5 "name": "api/import.js",
6 "content": "import debug from 'debug';\nimport fs from 'fs-promise';\nimport inquirer from 'inquirer';\nimport path from 'path';\nimport { spawn as yarnOrNPMSpawn, hasYarn } from 'yarn-or-npm';\n\nimport initGit from '../init/init-git';\nimport { deps, devDeps } from '../init/init-npm';\n\nimport asyncOra from '../util/ora-handler';\nimport installDepList from '../util/install-dependencies';\nimport readPackageJSON from '../util/read-package-json';\nimport confirmIfInteractive from '../util/confirm-if-interactive';\n\nconst d = debug('electron-forge:import');\n\n/**\n * @typedef {Object} ImportOptions\n * @property {string} [dir=process.cwd()] The path to the app to be imported\n * @property {boolean} [interactive=false] Whether to use sensible defaults or prompt the user visually\n */\n\n/**\n * Attempt to import a given module directory to the Electron Forge standard.\n *\n * - Replaces the prebuilt electron package with the one that integrates with `electron-compile`\n * - Sets up `git` and the correct NPM dependencies\n * - Adds a template forge config to `package.json`\n *\n * @param {ImportOptions} providedOptions - Options for the import method\n * @return {Promise} Will resolve when the import process is complete\n */\nexport default async (providedOptions = {}) => {\n const { dir, interactive } = Object.assign({\n dir: process.cwd(),\n interactive: false,\n }, providedOptions);\n asyncOra.interactive = interactive;\n\n d(`Attempting to import project in: ${dir}`);\n if (!await fs.exists(dir) || !await fs.exists(path.resolve(dir, 'package.json'))) {\n console.error(`We couldn't find a project in: ${dir}`.red);\n process.exit(1);\n }\n\n // eslint-disable-next-line max-len\n const confirm = await confirmIfInteractive(interactive, `WARNING: We will now attempt to import: \"${dir}\". This will involve modifying some files, are you sure you want to continue?`);\n\n if (!confirm) {\n process.exit(1);\n }\n\n await initGit(dir);\n\n let packageJSON = await readPackageJSON(dir);\n if (packageJSON.config && packageJSON.config.forge) {\n console.warn('It looks like this project is already configured for \"electron-forge\"'.green);\n const shouldContinue = await confirmIfInteractive(interactive, 'Are you sure you want to continue?');\n\n if (!shouldContinue) {\n process.exit(0);\n }\n }\n\n // eslint-disable-next-line max-len\n const shouldChangeMain = await confirmIfInteractive(interactive, 'Do you want us to change the \"main\" attribute of your package.json? If you are currently using babel and pointing to a \"build\" directory say yes.', false);\n if (shouldChangeMain) {\n const { newMain } = await inquirer.createPromptModule()({\n type: 'input',\n name: 'newMain',\n default: packageJSON.main,\n message: 'Enter the relative path to your uncompiled main file',\n });\n packageJSON.main = newMain;\n }\n\n packageJSON.dependencies = packageJSON.dependencies || {};\n packageJSON.devDependencies = packageJSON.devDependencies || {};\n\n const keys = Object.keys(packageJSON.dependencies).concat(Object.keys(packageJSON.devDependencies));\n const buildToolPackages = {\n 'electron-builder': 'provides mostly equivalent functionality',\n 'electron-download': 'already uses this module as a transitive dependency',\n 'electron-installer-debian': 'already uses this module as a transitive dependency',\n 'electron-installer-dmg': 'already uses this module as a transitive dependency',\n 'electron-installer-flatpak': 'already uses this module as a transitive dependency',\n 'electron-installer-redhat': 'already uses this module as a transitive dependency',\n 'electron-osx-sign': 'already uses this module as a transitive dependency',\n 'electron-packager': 'already uses this module as a transitive dependency',\n 'electron-winstaller': 'already uses this module as a transitive dependency',\n };\n\n let electronName;\n for (const key of keys) {\n if (key === 'electron' || key === 'electron-prebuilt') {\n delete packageJSON.dependencies[key];\n delete packageJSON.devDependencies[key];\n electronName = key;\n } else if (buildToolPackages[key]) {\n const explanation = buildToolPackages[key];\n // eslint-disable-next-line max-len\n const shouldRemoveDependency = await confirmIfInteractive(interactive, `Do you want us to remove the \"${key}\" dependency in package.json? Electron Forge ${explanation}.`);\n\n if (shouldRemoveDependency) {\n delete packageJSON.dependencies[key];\n delete packageJSON.devDependencies[key];\n }\n }\n }\n\n const writeChanges = async () => {\n await asyncOra('Writing modified package.json file', async () => {\n await fs.writeFile(path.resolve(dir, 'package.json'), `${JSON.stringify(packageJSON, null, 2)}\\n`);\n });\n };\n\n let electronVersion;\n if (electronName) {\n const electronPackageJSON = await readPackageJSON(path.resolve(dir, 'node_modules', electronName));\n electronVersion = electronPackageJSON.version;\n packageJSON.devDependencies['electron-prebuilt-compile'] = electronVersion;\n }\n\n await writeChanges();\n\n if (electronName) {\n await asyncOra('Pruning deleted modules', async () => {\n await new Promise((resolve) => {\n d('attempting to prune node_modules in:', dir);\n const child = yarnOrNPMSpawn(hasYarn() ? [] : ['prune'], {\n cwd: dir,\n stdio: 'ignore',\n });\n child.on('exit', () => resolve());\n });\n });\n\n await asyncOra('Installing dependencies', async () => {\n d('deleting old dependencies forcefully');\n await fs.remove(path.resolve(dir, 'node_modules/.bin/electron'));\n await fs.remove(path.resolve(dir, 'node_modules/.bin/electron.cmd'));\n await fs.remove(path.resolve(dir, 'node_modules', electronName));\n\n d('installing dependencies');\n await installDepList(dir, deps);\n d('installing devDependencies');\n await installDepList(dir, devDeps, true);\n d('installing electron-prebuilt-compile');\n await installDepList(dir, [`electron-prebuilt-compile@${electronVersion}`], false, true);\n });\n }\n\n packageJSON = await readPackageJSON(dir);\n\n packageJSON.config = packageJSON.config || {};\n const templatePackageJSON = await readPackageJSON(path.resolve(__dirname, '../tmpl'));\n packageJSON.config.forge = templatePackageJSON.config.forge;\n\n await writeChanges();\n\n await asyncOra('Fixing .gitignore', async () => {\n if (await fs.exists(path.resolve(dir, '.gitignore'))) {\n const gitignore = await fs.readFile(path.resolve(dir, '.gitignore'));\n if (!gitignore.includes('out')) {\n await fs.writeFile(path.resolve(dir, '.gitignore'), `${gitignore}\\nout/`);\n }\n }\n });\n\n let babelConfig = packageJSON.babel;\n const babelPath = path.resolve(dir, '.babelrc');\n if (!babelConfig && await fs.exists(babelPath)) {\n babelConfig = JSON.parse(await fs.readFile(babelPath, 'utf8'));\n }\n\n if (babelConfig) {\n await asyncOra('Porting original babel config', async () => {\n let compileConfig = {};\n const compilePath = path.resolve(dir, '.compilerc');\n if (await fs.exists(compilePath)) {\n compileConfig = JSON.parse(await fs.readFile(compilePath, 'utf8'));\n }\n\n await fs.writeFile(compilePath, JSON.stringify(Object.assign(compileConfig, {\n 'application/javascript': babelConfig,\n }), null, 2));\n });\n\n console.info('NOTE: You might be able to remove your `.compilerc` file completely if you are only using the `es2015` and `react` presets'.yellow);\n }\n\n console.info(`\n\nWe have ATTEMPTED to convert your app to be in a format that electron-forge understands.\nNothing much will have changed but we added the ${'\"electron-prebuilt-compile\"'.cyan} dependency. This is \\\nthe dependency you must version bump to get newer versions of Electron.\n\n\nWe also tried to import any build tooling you already had but we can't get everything. You might need to convert any CLI/gulp/grunt tasks yourself.\n\nAlso please note if you are using \\`preload\\` scripts you need to follow the steps outlined \\\nat https://github.com/electron-userland/electron-forge/wiki/Using-%27preload%27-scripts\n\nThanks for using ${'\"electron-forge\"'.green}!!!`);\n};\n",
7 "static": true,
8 "longname": "api/import.js",
9 "access": null,
10 "description": null,
11 "lineNumber": 1
12 },
13 {
14 "__docId__": 1,
15 "kind": "variable",
16 "name": "d",
17 "memberof": "api/import.js",
18 "static": true,
19 "longname": "api/import.js~d",
20 "access": null,
21 "export": false,
22 "importPath": "electron-forge/dist/api/import",
23 "importStyle": null,
24 "description": null,
25 "lineNumber": 15,
26 "undocument": true,
27 "unknown": [
28 {
29 "tagName": "@_undocument",
30 "tagValue": ""
31 }
32 ],
33 "type": {
34 "types": [
35 "*"
36 ]
37 }
38 },
39 {
40 "__docId__": 2,
41 "kind": "typedef",
42 "name": "ImportOptions",
43 "memberof": "api/import.js",
44 "static": true,
45 "longname": "api/import.js~ImportOptions",
46 "access": null,
47 "description": "",
48 "properties": [
49 {
50 "nullable": null,
51 "types": [
52 "string"
53 ],
54 "spread": false,
55 "optional": true,
56 "defaultValue": "process.cwd()",
57 "defaultRaw": "process.cwd()",
58 "name": "dir",
59 "description": "The path to the app to be imported"
60 },
61 {
62 "nullable": null,
63 "types": [
64 "boolean"
65 ],
66 "spread": false,
67 "optional": true,
68 "defaultValue": "false",
69 "defaultRaw": false,
70 "name": "interactive",
71 "description": "Whether to use sensible defaults or prompt the user visually"
72 }
73 ],
74 "type": {
75 "types": [
76 "Object"
77 ],
78 "optional": false,
79 "name": "ImportOptions"
80 }
81 },
82 {
83 "__docId__": 3,
84 "kind": "function",
85 "name": "import",
86 "memberof": "api/import.js",
87 "generator": false,
88 "async": true,
89 "static": true,
90 "longname": "api/import.js~import",
91 "access": null,
92 "export": true,
93 "importPath": "electron-forge/dist/api/import",
94 "importStyle": "import",
95 "description": "Attempt to import a given module directory to the Electron Forge standard.\n\n- Replaces the prebuilt electron package with the one that integrates with `electron-compile`\n- Sets up `git` and the correct NPM dependencies\n- Adds a template forge config to `package.json`",
96 "lineNumber": 33,
97 "params": [
98 {
99 "nullable": null,
100 "types": [
101 "ImportOptions"
102 ],
103 "spread": false,
104 "optional": false,
105 "name": "providedOptions",
106 "description": "Options for the import method"
107 }
108 ],
109 "return": {
110 "nullable": null,
111 "types": [
112 "Promise"
113 ],
114 "spread": false,
115 "description": "Will resolve when the import process is complete"
116 }
117 },
118 {
119 "__docId__": 4,
120 "kind": "file",
121 "name": "api/index.js",
122 "content": "import 'colors';\n\nimport _import from './import';\nimport init from './init';\nimport install from './install';\nimport lint from './lint';\nimport make from './make';\nimport _package from './package';\nimport publish from './publish';\nimport start from './start';\n\nimport getForgeConfig from '../util/forge-config';\nimport readPackageJSON from '../util/read-package-json';\n\nmodule.exports = {\n 'import': _import, // eslint-disable-line\n init,\n install,\n lint,\n make,\n 'package': _package, // eslint-disable-line\n publish,\n start,\n utils: {\n getForgeConfig,\n readPackageJSON,\n },\n};\n",
123 "static": true,
124 "longname": "api/index.js",
125 "access": null,
126 "description": null,
127 "lineNumber": 1
128 },
129 {
130 "__docId__": 5,
131 "kind": "file",
132 "name": "api/init.js",
133 "content": "import debug from 'debug';\n\nimport initCustom from '../init/init-custom';\nimport initDirectory from '../init/init-directory';\nimport initGit from '../init/init-git';\nimport initNPM from '../init/init-npm';\nimport initStandardFix from '../init/init-standard-fix';\nimport initStarter from '../init/init-starter-files';\n\nimport asyncOra from '../util/ora-handler';\n\nconst d = debug('electron-forge:init');\n\n/**\n * @typedef {Object} InitOptions\n * @property {string} [dir=process.cwd()] The path to the app to be initialized\n * @property {boolean} [interactive=false] Whether to use sensible defaults or prompt the user visually\n * @property {string} [lintstyle=airbnb] The lintstyle to pass through to the template creator\n * @property {string} [template] The custom template to use. If left empty, the default template is used\n */\n\n/**\n * Initialize a new Electron Forge template project in the given directory.\n *\n * @param {InitOptions} providedOptions - Options for the init method\n * @return {Promise} Will resolve when the initialization process is complete\n */\nexport default async (providedOptions = {}) => {\n // eslint-disable-next-line prefer-const, no-unused-vars\n let { dir, interactive, lintstyle, template } = Object.assign({\n dir: process.cwd(),\n interactive: false,\n lintstyle: 'airbnb',\n template: null,\n }, providedOptions);\n asyncOra.interactive = interactive;\n\n d(`Initializing in: ${dir}`);\n\n if (!template) {\n lintstyle = lintstyle.toLowerCase();\n if (!['airbnb', 'standard'].includes(lintstyle)) {\n d(`Unrecognized lintstyle argument: '${lintstyle}' -- defaulting to 'airbnb'`);\n lintstyle = 'airbnb';\n }\n }\n\n await initDirectory(dir, interactive);\n await initGit(dir);\n await initStarter(dir, template ? undefined : lintstyle);\n await initNPM(dir, template ? undefined : lintstyle);\n if (!template) {\n if (lintstyle === 'standard') {\n await initStandardFix(dir);\n }\n } else {\n await initCustom(dir, template, lintstyle);\n }\n};\n",
134 "static": true,
135 "longname": "api/init.js",
136 "access": null,
137 "description": null,
138 "lineNumber": 1
139 },
140 {
141 "__docId__": 6,
142 "kind": "variable",
143 "name": "d",
144 "memberof": "api/init.js",
145 "static": true,
146 "longname": "api/init.js~d",
147 "access": null,
148 "export": false,
149 "importPath": "electron-forge/dist/api/init",
150 "importStyle": null,
151 "description": null,
152 "lineNumber": 12,
153 "undocument": true,
154 "unknown": [
155 {
156 "tagName": "@_undocument",
157 "tagValue": ""
158 }
159 ],
160 "type": {
161 "types": [
162 "*"
163 ]
164 }
165 },
166 {
167 "__docId__": 7,
168 "kind": "typedef",
169 "name": "InitOptions",
170 "memberof": "api/init.js",
171 "static": true,
172 "longname": "api/init.js~InitOptions",
173 "access": null,
174 "description": "",
175 "properties": [
176 {
177 "nullable": null,
178 "types": [
179 "string"
180 ],
181 "spread": false,
182 "optional": true,
183 "defaultValue": "process.cwd()",
184 "defaultRaw": "process.cwd()",
185 "name": "dir",
186 "description": "The path to the app to be initialized"
187 },
188 {
189 "nullable": null,
190 "types": [
191 "boolean"
192 ],
193 "spread": false,
194 "optional": true,
195 "defaultValue": "false",
196 "defaultRaw": false,
197 "name": "interactive",
198 "description": "Whether to use sensible defaults or prompt the user visually"
199 },
200 {
201 "nullable": null,
202 "types": [
203 "string"
204 ],
205 "spread": false,
206 "optional": true,
207 "defaultValue": "airbnb",
208 "defaultRaw": "airbnb",
209 "name": "lintstyle",
210 "description": "The lintstyle to pass through to the template creator"
211 },
212 {
213 "nullable": null,
214 "types": [
215 "string"
216 ],
217 "spread": false,
218 "optional": true,
219 "name": "template",
220 "description": "The custom template to use. If left empty, the default template is used"
221 }
222 ],
223 "type": {
224 "types": [
225 "Object"
226 ],
227 "optional": false,
228 "name": "InitOptions"
229 }
230 },
231 {
232 "__docId__": 8,
233 "kind": "function",
234 "name": "init",
235 "memberof": "api/init.js",
236 "generator": false,
237 "async": true,
238 "static": true,
239 "longname": "api/init.js~init",
240 "access": null,
241 "export": true,
242 "importPath": "electron-forge/dist/api/init",
243 "importStyle": "init",
244 "description": "Initialize a new Electron Forge template project in the given directory.",
245 "lineNumber": 28,
246 "params": [
247 {
248 "nullable": null,
249 "types": [
250 "InitOptions"
251 ],
252 "spread": false,
253 "optional": false,
254 "name": "providedOptions",
255 "description": "Options for the init method"
256 }
257 ],
258 "return": {
259 "nullable": null,
260 "types": [
261 "Promise"
262 ],
263 "spread": false,
264 "description": "Will resolve when the initialization process is complete"
265 }
266 },
267 {
268 "__docId__": 9,
269 "kind": "file",
270 "name": "api/install.js",
271 "content": "import 'colors';\nimport debug from 'debug';\nimport fetch from 'node-fetch';\nimport fs from 'fs-promise';\nimport inquirer from 'inquirer';\nimport nugget from 'nugget';\nimport opn from 'opn';\nimport os from 'os';\nimport path from 'path';\nimport pify from 'pify';\nimport semver from 'semver';\n\nimport asyncOra from '../util/ora-handler';\n\nimport darwinDMGInstaller from '../installers/darwin/dmg';\nimport darwinZipInstaller from '../installers/darwin/zip';\nimport linuxDebInstaller from '../installers/linux/deb';\nimport linuxRPMInstaller from '../installers/linux/rpm';\n\nconst d = debug('electron-forge:install');\n\nconst GITHUB_API = 'https://api.github.com';\n\n/**\n * @typedef {Object} InstallOptions\n * @property {boolean} [interactive=false] Whether to use sensible defaults or prompt the user visually\n * @property {boolean} [prerelease=false] Whether to install prerelease versions\n * @property {string} repo The GitHub repository to install from, in the format owner/name\n * @property {function} chooseAsset A function that must return the asset to use/install from a provided array of compatible GitHub assets\n */\n\n/**\n * Install an Electron application from GitHub. If you leave interactive as `false`, you MUST provide a `chooseAsset` function.\n *\n * @param {InstallOptions} providedOptions - Options for the install method\n * @return {Promise} Will resolve when the install process is complete\n */\nexport default async (providedOptions = {}) => {\n // eslint-disable-next-line prefer-const, no-unused-vars\n let { interactive, prerelease, repo, chooseAsset } = Object.assign({\n interactive: false,\n prerelease: false,\n }, providedOptions);\n asyncOra.interactive = interactive;\n\n let latestRelease;\n let possibleAssets = [];\n\n await asyncOra('Searching for Application', async (searchSpinner) => {\n if (!repo || repo.indexOf('/') === -1) {\n // eslint-disable-next-line no-throw-literal\n throw 'Invalid repository name, must be in the format owner/name';\n }\n\n d('searching for repo:', repo);\n let releases;\n try {\n releases = await (await fetch(`${GITHUB_API}/repos/${repo}/releases`)).json();\n } catch (err) {\n // Ignore error\n }\n\n if (!releases || releases.message === 'Not Found' || !Array.isArray(releases)) {\n // eslint-disable-next-line no-throw-literal\n throw `Failed to find releases for repository \"${repo}\". Please check the name and try again.`;\n }\n\n releases = releases.filter(release => !release.prerelease || prerelease);\n\n const sortedReleases = releases.sort((releaseA, releaseB) => {\n let tagA = releaseA.tag_name;\n if (tagA.substr(0, 1) === 'v') tagA = tagA.substr(1);\n let tagB = releaseB.tag_name;\n if (tagB.substr(0, 1) === 'v') tagB = tagB.substr(1);\n return (semver.gt(tagB, tagA) ? 1 : -1);\n });\n latestRelease = sortedReleases[0];\n\n searchSpinner.text = 'Searching for Releases'; // eslint-disable-line\n\n const assets = latestRelease.assets;\n if (!assets || !Array.isArray(assets)) {\n // eslint-disable-next-line no-throw-literal\n throw 'Could not find any assets for the latest release';\n }\n\n const installTargets = {\n win32: [/\\.exe$/],\n darwin: [/OSX.*\\.zip$/, /darwin.*\\.zip$/, /macOS.*\\.zip$/, /mac.*\\.zip$/, /\\.dmg$/],\n linux: [/\\.rpm$/, /\\.deb$/],\n };\n\n possibleAssets = assets.filter((asset) => {\n const targetSuffixes = installTargets[process.platform];\n for (const suffix of targetSuffixes) {\n if (suffix.test(asset.name)) return true;\n }\n return false;\n });\n\n if (possibleAssets.length === 0) {\n // eslint-disable-next-line no-throw-literal\n throw `Failed to find any installable assets for target platform: ${`${process.platform}`.cyan}`;\n }\n });\n\n console.info(`Found latest release${prerelease ? ' (including prereleases)' : ''}: ${latestRelease.tag_name.cyan}`);\n\n let targetAsset = possibleAssets[0];\n if (possibleAssets.length > 1) {\n if (chooseAsset) {\n targetAsset = await Promise.resolve(chooseAsset(possibleAssets));\n } else if (!interactive) {\n const choices = [];\n possibleAssets.forEach((asset) => {\n choices.push({ name: asset.name, value: asset.id });\n });\n const { assetID } = await inquirer.createPromptModule()({\n type: 'list',\n name: 'assetID',\n message: 'Multiple potential assets found, please choose one from the list below:'.cyan,\n choices,\n });\n\n targetAsset = possibleAssets.find(asset => asset.id === assetID);\n } else {\n // eslint-disable-next-line no-throw-literal\n throw 'expected a chooseAsset function to be provided but it was not';\n }\n }\n\n const tmpdir = path.resolve(os.tmpdir(), 'forge-install');\n const pathSafeRepo = repo.replace(/[/\\\\]/g, '-');\n const filename = `${pathSafeRepo}-${latestRelease.tag_name}-${targetAsset.name}`;\n\n const fullFilePath = path.resolve(tmpdir, filename);\n if (!await fs.exists(fullFilePath) || (await fs.stat(fullFilePath)).size !== targetAsset.size) {\n await fs.mkdirs(tmpdir);\n\n const nuggetOpts = {\n target: filename,\n dir: tmpdir,\n resume: true,\n strictSSL: true,\n };\n await pify(nugget)(targetAsset.browser_download_url, nuggetOpts);\n }\n\n await asyncOra('Installing Application', async (installSpinner) => {\n const installActions = {\n win32: {\n '.exe': async filePath => await opn(filePath, { wait: false }),\n },\n darwin: {\n '.zip': darwinZipInstaller,\n '.dmg': darwinDMGInstaller,\n },\n linux: {\n '.deb': linuxDebInstaller,\n '.rpm': linuxRPMInstaller,\n },\n };\n\n const suffixFnIdent = Object.keys(installActions[process.platform]).find(suffix => targetAsset.name.endsWith(suffix));\n await installActions[process.platform][suffixFnIdent](fullFilePath, installSpinner);\n });\n};\n",
272 "static": true,
273 "longname": "api/install.js",
274 "access": null,
275 "description": null,
276 "lineNumber": 1
277 },
278 {
279 "__docId__": 10,
280 "kind": "variable",
281 "name": "d",
282 "memberof": "api/install.js",
283 "static": true,
284 "longname": "api/install.js~d",
285 "access": null,
286 "export": false,
287 "importPath": "electron-forge/dist/api/install",
288 "importStyle": null,
289 "description": null,
290 "lineNumber": 20,
291 "undocument": true,
292 "unknown": [
293 {
294 "tagName": "@_undocument",
295 "tagValue": ""
296 }
297 ],
298 "type": {
299 "types": [
300 "*"
301 ]
302 }
303 },
304 {
305 "__docId__": 11,
306 "kind": "variable",
307 "name": "GITHUB_API",
308 "memberof": "api/install.js",
309 "static": true,
310 "longname": "api/install.js~GITHUB_API",
311 "access": null,
312 "export": false,
313 "importPath": "electron-forge/dist/api/install",
314 "importStyle": null,
315 "description": null,
316 "lineNumber": 22,
317 "undocument": true,
318 "unknown": [
319 {
320 "tagName": "@_undocument",
321 "tagValue": ""
322 }
323 ],
324 "type": {
325 "types": [
326 "string"
327 ]
328 }
329 },
330 {
331 "__docId__": 12,
332 "kind": "typedef",
333 "name": "InstallOptions",
334 "memberof": "api/install.js",
335 "static": true,
336 "longname": "api/install.js~InstallOptions",
337 "access": null,
338 "description": "",
339 "properties": [
340 {
341 "nullable": null,
342 "types": [
343 "boolean"
344 ],
345 "spread": false,
346 "optional": true,
347 "defaultValue": "false",
348 "defaultRaw": false,
349 "name": "interactive",
350 "description": "Whether to use sensible defaults or prompt the user visually"
351 },
352 {
353 "nullable": null,
354 "types": [
355 "boolean"
356 ],
357 "spread": false,
358 "optional": true,
359 "defaultValue": "false",
360 "defaultRaw": false,
361 "name": "prerelease",
362 "description": "Whether to install prerelease versions"
363 },
364 {
365 "nullable": null,
366 "types": [
367 "string"
368 ],
369 "spread": false,
370 "optional": false,
371 "name": "repo",
372 "description": "The GitHub repository to install from, in the format owner/name"
373 },
374 {
375 "nullable": null,
376 "types": [
377 "function"
378 ],
379 "spread": false,
380 "optional": false,
381 "name": "chooseAsset",
382 "description": "A function that must return the asset to use/install from a provided array of compatible GitHub assets"
383 }
384 ],
385 "type": {
386 "types": [
387 "Object"
388 ],
389 "optional": false,
390 "name": "InstallOptions"
391 }
392 },
393 {
394 "__docId__": 13,
395 "kind": "function",
396 "name": "install",
397 "memberof": "api/install.js",
398 "generator": false,
399 "async": true,
400 "static": true,
401 "longname": "api/install.js~install",
402 "access": null,
403 "export": true,
404 "importPath": "electron-forge/dist/api/install",
405 "importStyle": "install",
406 "description": "Install an Electron application from GitHub. If you leave interactive as `false`, you MUST provide a `chooseAsset` function.",
407 "lineNumber": 38,
408 "params": [
409 {
410 "nullable": null,
411 "types": [
412 "InstallOptions"
413 ],
414 "spread": false,
415 "optional": false,
416 "name": "providedOptions",
417 "description": "Options for the install method"
418 }
419 ],
420 "return": {
421 "nullable": null,
422 "types": [
423 "Promise"
424 ],
425 "spread": false,
426 "description": "Will resolve when the install process is complete"
427 }
428 },
429 {
430 "__docId__": 14,
431 "kind": "file",
432 "name": "api/lint.js",
433 "content": "import 'colors';\nimport debug from 'debug';\nimport { spawn as yarnOrNPMSpawn } from 'yarn-or-npm';\n\nimport asyncOra from '../util/ora-handler';\nimport resolveDir from '../util/resolve-dir';\n\nconst d = debug('electron-forge:lint');\n\n/**\n * @typedef {Object} LintOptions\n * @property {string} [dir=process.cwd()] The path to the module to import\n * @property {boolean} [interactive=false] Whether to use sensible defaults or prompt the user visually\n */\n\n/**\n * Lint a local Electron application.\n *\n * The promise will be rejected with the stdout+stderr of the linting process if linting fails or\n * will be resolved if it succeeds.\n *\n * @param {LintOptions} providedOptions - Options for the Lint method\n * @return {Promise<null, string>} Will resolve when the lint process is complete\n */\nexport default async (providedOptions = {}) => {\n // eslint-disable-next-line prefer-const, no-unused-vars\n let { dir, interactive } = Object.assign({\n dir: process.cwd(),\n interactive: false,\n }, providedOptions);\n asyncOra.interactive = interactive;\n\n let success = true;\n let result = null;\n\n await asyncOra('Linting Application', async (lintSpinner) => {\n dir = await resolveDir(dir);\n if (!dir) {\n // eslint-disable-next-line no-throw-literal\n throw 'Failed to locate lintable Electron application';\n }\n\n d('executing \"run lint -- --color\" in dir:', dir);\n const child = yarnOrNPMSpawn(['run', 'lint', '--', '--color'], {\n stdio: process.platform === 'win32' ? 'inherit' : 'pipe',\n cwd: dir,\n });\n const output = [];\n if (process.platform !== 'win32') {\n child.stdout.on('data', data => output.push(data.toString()));\n child.stderr.on('data', data => output.push(data.toString().red));\n }\n await new Promise((resolve) => {\n child.on('exit', (code) => {\n if (code !== 0) {\n success = false;\n lintSpinner.fail();\n if (interactive) {\n output.forEach(data => process.stdout.write(data));\n process.exit(code);\n } else {\n result = output.join('');\n }\n }\n resolve();\n });\n });\n });\n\n if (!success) {\n throw result;\n }\n};\n",
434 "static": true,
435 "longname": "api/lint.js",
436 "access": null,
437 "description": null,
438 "lineNumber": 1
439 },
440 {
441 "__docId__": 15,
442 "kind": "variable",
443 "name": "d",
444 "memberof": "api/lint.js",
445 "static": true,
446 "longname": "api/lint.js~d",
447 "access": null,
448 "export": false,
449 "importPath": "electron-forge/dist/api/lint",
450 "importStyle": null,
451 "description": null,
452 "lineNumber": 8,
453 "undocument": true,
454 "unknown": [
455 {
456 "tagName": "@_undocument",
457 "tagValue": ""
458 }
459 ],
460 "type": {
461 "types": [
462 "*"
463 ]
464 }
465 },
466 {
467 "__docId__": 16,
468 "kind": "typedef",
469 "name": "LintOptions",
470 "memberof": "api/lint.js",
471 "static": true,
472 "longname": "api/lint.js~LintOptions",
473 "access": null,
474 "description": "",
475 "properties": [
476 {
477 "nullable": null,
478 "types": [
479 "string"
480 ],
481 "spread": false,
482 "optional": true,
483 "defaultValue": "process.cwd()",
484 "defaultRaw": "process.cwd()",
485 "name": "dir",
486 "description": "The path to the module to import"
487 },
488 {
489 "nullable": null,
490 "types": [
491 "boolean"
492 ],
493 "spread": false,
494 "optional": true,
495 "defaultValue": "false",
496 "defaultRaw": false,
497 "name": "interactive",
498 "description": "Whether to use sensible defaults or prompt the user visually"
499 }
500 ],
501 "type": {
502 "types": [
503 "Object"
504 ],
505 "optional": false,
506 "name": "LintOptions"
507 }
508 },
509 {
510 "__docId__": 17,
511 "kind": "function",
512 "name": "lint",
513 "memberof": "api/lint.js",
514 "generator": false,
515 "async": true,
516 "static": true,
517 "longname": "api/lint.js~lint",
518 "access": null,
519 "export": true,
520 "importPath": "electron-forge/dist/api/lint",
521 "importStyle": "lint",
522 "description": "Lint a local Electron application.\n\nThe promise will be rejected with the stdout+stderr of the linting process if linting fails or\nwill be resolved if it succeeds.",
523 "lineNumber": 25,
524 "params": [
525 {
526 "nullable": null,
527 "types": [
528 "LintOptions"
529 ],
530 "spread": false,
531 "optional": false,
532 "name": "providedOptions",
533 "description": "Options for the Lint method"
534 }
535 ],
536 "return": {
537 "nullable": null,
538 "types": [
539 "Promise<null, string>"
540 ],
541 "spread": false,
542 "description": "Will resolve when the lint process is complete"
543 }
544 },
545 {
546 "__docId__": 18,
547 "kind": "file",
548 "name": "api/make.js",
549 "content": "import 'colors';\nimport fs from 'fs-promise';\nimport path from 'path';\n\nimport asyncOra from '../util/ora-handler';\nimport electronHostArch from '../util/electron-host-arch';\nimport getForgeConfig from '../util/forge-config';\nimport readPackageJSON from '../util/read-package-json';\nimport requireSearch from '../util/require-search';\nimport resolveDir from '../util/resolve-dir';\n\nimport packager from './package';\n\n/**\n * @typedef {Object} MakeOptions\n * @property {string} [dir=process.cwd()] The path to the app from which distributables are generated\n * @property {boolean} [interactive=false] Whether to use sensible defaults or prompt the user visually\n * @property {boolean} [skipPackage=false] Whether to skip the pre-make packaging step\n * @property {Array<string>} [overrideTargets] An array of make targets to override your forge config\n * @property {string} [arch=host architecture] The target architecture\n * @property {string} [platform=process.platform] The target platform. NOTE: This is limited to be the current platform at the moment\n */\n\n/**\n * Make distributables for an Electron application.\n *\n * @param {MakeOptions} providedOptions - Options for the make method\n * @return {Promise} Will resolve when the make process is complete\n */\nexport default async (providedOptions = {}) => {\n // eslint-disable-next-line prefer-const, no-unused-vars\n let { dir, interactive, skipPackage, overrideTargets, arch, platform } = Object.assign({\n dir: process.cwd(),\n interactive: false,\n skipPackage: false,\n arch: electronHostArch(),\n platform: process.platform,\n }, providedOptions);\n asyncOra.interactive = interactive;\n\n let forgeConfig;\n await asyncOra('Resolving Forge Config', async () => {\n dir = await resolveDir(dir);\n if (!dir) {\n // eslint-disable-next-line no-throw-literal\n throw 'Failed to locate makeable Electron application';\n }\n\n forgeConfig = await getForgeConfig(dir);\n });\n\n if (platform && platform !== process.platform && !(process.platform === 'darwin' && platform === 'mas')) {\n console.error('You can not \"make\" for a platform other than your systems platform'.red);\n process.exit(1);\n }\n\n if (!skipPackage) {\n console.info('We need to package your application before we can make it'.green);\n await packager({\n dir,\n interactive,\n arch,\n platform,\n });\n } else {\n console.warn('WARNING: Skipping the packaging step, this could result in an out of date build'.red);\n }\n\n const declaredArch = arch;\n const declaredPlatform = platform;\n\n let targets = forgeConfig.make_targets[declaredPlatform];\n if (overrideTargets) {\n targets = overrideTargets;\n }\n\n console.info('Making for the following targets:', `${targets.join(', ')}`.cyan);\n\n let targetArchs = [declaredArch];\n if (declaredArch === 'all') {\n switch (process.platform) {\n case 'darwin':\n targetArchs = ['x64'];\n break;\n case 'linux':\n targetArchs = ['ia32', 'x64', 'armv7l'];\n break;\n case 'win32':\n default:\n targetArchs = ['ia32', 'x64'];\n break;\n }\n }\n\n const packageJSON = await readPackageJSON(dir);\n const appName = packageJSON.productName || packageJSON.name;\n const outputs = [];\n\n for (const targetArch of targetArchs) {\n const packageDir = path.resolve(dir, `out/${appName}-${declaredPlatform}-${targetArch}`);\n if (!(await fs.exists(packageDir))) {\n throw new Error(`Couldn't find packaged app at: ${packageDir}`);\n }\n\n for (const target of targets) {\n // eslint-disable-next-line no-loop-func\n await asyncOra(`Making for target: ${target.cyan} - On platform: ${declaredPlatform.cyan} - For arch: ${targetArch.cyan}`, async () => {\n const maker = requireSearch(path.resolve(__dirname, '..'), [\n `./makers/${process.platform}/${target}.js`,\n `./makers/generic/${target}.js`,\n `electron-forge-maker-${target}`,\n ]);\n if (!maker) {\n // eslint-disable-next-line no-throw-literal\n throw `Could not find a build target with the name: ${target} for the platform: ${declaredPlatform}`;\n }\n try {\n outputs.push(await (maker.default || maker)(packageDir, appName, targetArch, forgeConfig, packageJSON));\n } catch (err) {\n if (err) {\n // eslint-disable-next-line no-throw-literal\n throw {\n message: `An error occured while making for target: ${target}`,\n stack: `${err.message}\\n${err.stack}`,\n };\n } else {\n throw new Error(`An unknown error occured while making for target: ${target}`);\n }\n }\n });\n }\n }\n\n return outputs;\n};\n",
550 "static": true,
551 "longname": "api/make.js",
552 "access": null,
553 "description": null,
554 "lineNumber": 1
555 },
556 {
557 "__docId__": 19,
558 "kind": "typedef",
559 "name": "MakeOptions",
560 "memberof": "api/make.js",
561 "static": true,
562 "longname": "api/make.js~MakeOptions",
563 "access": null,
564 "description": "",
565 "properties": [
566 {
567 "nullable": null,
568 "types": [
569 "string"
570 ],
571 "spread": false,
572 "optional": true,
573 "defaultValue": "process.cwd()",
574 "defaultRaw": "process.cwd()",
575 "name": "dir",
576 "description": "The path to the app from which distributables are generated"
577 },
578 {
579 "nullable": null,
580 "types": [
581 "boolean"
582 ],
583 "spread": false,
584 "optional": true,
585 "defaultValue": "false",
586 "defaultRaw": false,
587 "name": "interactive",
588 "description": "Whether to use sensible defaults or prompt the user visually"
589 },
590 {
591 "nullable": null,
592 "types": [
593 "boolean"
594 ],
595 "spread": false,
596 "optional": true,
597 "defaultValue": "false",
598 "defaultRaw": false,
599 "name": "skipPackage",
600 "description": "Whether to skip the pre-make packaging step"
601 },
602 {
603 "nullable": null,
604 "types": [
605 "Array<string>"
606 ],
607 "spread": false,
608 "optional": true,
609 "name": "overrideTargets",
610 "description": "An array of make targets to override your forge config"
611 },
612 {
613 "nullable": null,
614 "types": [
615 "string"
616 ],
617 "spread": false,
618 "optional": true,
619 "defaultValue": "host architecture",
620 "defaultRaw": "host architecture",
621 "name": "arch",
622 "description": "The target architecture"
623 },
624 {
625 "nullable": null,
626 "types": [
627 "string"
628 ],
629 "spread": false,
630 "optional": true,
631 "defaultValue": "process.platform",
632 "defaultRaw": "process.platform",
633 "name": "platform",
634 "description": "The target platform. NOTE: This is limited to be the current platform at the moment"
635 }
636 ],
637 "type": {
638 "types": [
639 "Object"
640 ],
641 "optional": false,
642 "name": "MakeOptions"
643 }
644 },
645 {
646 "__docId__": 20,
647 "kind": "function",
648 "name": "make",
649 "memberof": "api/make.js",
650 "generator": false,
651 "async": true,
652 "static": true,
653 "longname": "api/make.js~make",
654 "access": null,
655 "export": true,
656 "importPath": "electron-forge/dist/api/make",
657 "importStyle": "make",
658 "description": "Make distributables for an Electron application.",
659 "lineNumber": 30,
660 "params": [
661 {
662 "nullable": null,
663 "types": [
664 "MakeOptions"
665 ],
666 "spread": false,
667 "optional": false,
668 "name": "providedOptions",
669 "description": "Options for the make method"
670 }
671 ],
672 "return": {
673 "nullable": null,
674 "types": [
675 "Promise"
676 ],
677 "spread": false,
678 "description": "Will resolve when the make process is complete"
679 }
680 },
681 {
682 "__docId__": 21,
683 "kind": "file",
684 "name": "api/package.js",
685 "content": "import 'colors';\nimport fs from 'fs-promise';\nimport glob from 'glob';\nimport path from 'path';\nimport pify from 'pify';\nimport packager from 'electron-packager';\nimport ora from 'ora';\n\nimport electronHostArch from '../util/electron-host-arch';\nimport getForgeConfig from '../util/forge-config';\nimport packagerCompileHook from '../util/compile-hook';\nimport readPackageJSON from '../util/read-package-json';\nimport rebuildHook from '../util/rebuild';\nimport resolveDir from '../util/resolve-dir';\n\n/**\n * @typedef {Object} PackageOptions\n * @property {string} [dir=process.cwd()] The path to the app to package\n * @property {boolean} [interactive=false] Whether to use sensible defaults or prompt the user visually\n * @property {string} [arch=process.arch] The target arch\n * @property {string} [platform=process.platform] The target platform. NOTE: This is limited to be the current platform at the moment\n */\n\n/**\n * Package an Electron application into an platform dependent format.\n *\n * @param {PackageOptions} providedOptions - Options for the Package method\n * @return {Promise} Will resolve when the package process is complete\n */\nexport default async (providedOptions = {}) => {\n // eslint-disable-next-line prefer-const, no-unused-vars\n let { dir, interactive, arch, platform } = Object.assign({\n dir: process.cwd(),\n interactive: false,\n arch: electronHostArch(),\n platform: process.platform,\n }, providedOptions);\n\n let prepareSpinner = ora.ora(`Preparing to Package Application for arch: ${(arch === 'all' ? 'ia32' : arch).cyan}`).start();\n let prepareCounter = 0;\n\n dir = await resolveDir(dir);\n if (!dir) {\n // eslint-disable-next-line no-throw-literal\n throw 'Failed to locate compilable Electron application';\n }\n\n const packageJSON = await readPackageJSON(dir);\n\n const forgeConfig = await getForgeConfig(dir);\n let packagerSpinner;\n\n const packageOpts = Object.assign({\n asar: false,\n overwrite: true,\n }, forgeConfig.electronPackagerConfig, {\n afterCopy: [async (buildPath, electronVersion, pPlatform, pArch, done) => {\n if (packagerSpinner) {\n packagerSpinner.succeed();\n prepareCounter += 1;\n prepareSpinner = ora.ora(`Preparing to Package Application for arch: ${(prepareCounter === 2 ? 'armv7l' : 'x64').cyan}`).start();\n }\n await fs.remove(path.resolve(buildPath, 'node_modules/electron-compile/test'));\n const bins = await pify(glob)(path.join(buildPath, '**/.bin/**/*'));\n for (const bin of bins) {\n await fs.remove(bin);\n }\n done();\n }, async (...args) => {\n prepareSpinner.succeed();\n await packagerCompileHook(dir, ...args);\n }, async (buildPath, electronVersion, pPlatform, pArch, done) => {\n await rebuildHook(buildPath, electronVersion, pPlatform, pArch);\n packagerSpinner = ora.ora('Packaging Application').start();\n done();\n }].concat(forgeConfig.electronPackagerConfig.afterCopy ? forgeConfig.electronPackagerConfig.afterCopy.map(item =>\n (typeof item === 'string' ? require(item) : item)\n ) : []),\n afterExtract: forgeConfig.electronPackagerConfig.afterExtract ? forgeConfig.electronPackagerConfig.afterExtract.map(item =>\n (typeof item === 'string' ? require(item) : item)\n ) : [],\n dir,\n arch,\n platform,\n out: path.resolve(dir, 'out'),\n version: packageJSON.devDependencies['electron-prebuilt-compile'],\n });\n packageOpts.quiet = true;\n if (typeof packageOpts.asar === 'object' && packageOpts.unpack) {\n packagerSpinner.fail();\n throw new Error('electron-compile does not support asar.unpack yet. Please use asar.unpackDir');\n }\n\n await pify(packager)(packageOpts);\n\n packagerSpinner.succeed();\n};\n",
686 "static": true,
687 "longname": "api/package.js",
688 "access": null,
689 "description": null,
690 "lineNumber": 1
691 },
692 {
693 "__docId__": 22,
694 "kind": "typedef",
695 "name": "PackageOptions",
696 "memberof": "api/package.js",
697 "static": true,
698 "longname": "api/package.js~PackageOptions",
699 "access": null,
700 "description": "",
701 "properties": [
702 {
703 "nullable": null,
704 "types": [
705 "string"
706 ],
707 "spread": false,
708 "optional": true,
709 "defaultValue": "process.cwd()",
710 "defaultRaw": "process.cwd()",
711 "name": "dir",
712 "description": "The path to the app to package"
713 },
714 {
715 "nullable": null,
716 "types": [
717 "boolean"
718 ],
719 "spread": false,
720 "optional": true,
721 "defaultValue": "false",
722 "defaultRaw": false,
723 "name": "interactive",
724 "description": "Whether to use sensible defaults or prompt the user visually"
725 },
726 {
727 "nullable": null,
728 "types": [
729 "string"
730 ],
731 "spread": false,
732 "optional": true,
733 "defaultValue": "process.arch",
734 "defaultRaw": "process.arch",
735 "name": "arch",
736 "description": "The target arch"
737 },
738 {
739 "nullable": null,
740 "types": [
741 "string"
742 ],
743 "spread": false,
744 "optional": true,
745 "defaultValue": "process.platform",
746 "defaultRaw": "process.platform",
747 "name": "platform",
748 "description": "The target platform. NOTE: This is limited to be the current platform at the moment"
749 }
750 ],
751 "type": {
752 "types": [
753 "Object"
754 ],
755 "optional": false,
756 "name": "PackageOptions"
757 }
758 },
759 {
760 "__docId__": 23,
761 "kind": "function",
762 "name": "package",
763 "memberof": "api/package.js",
764 "generator": false,
765 "async": true,
766 "static": true,
767 "longname": "api/package.js~package",
768 "access": null,
769 "export": true,
770 "importPath": "electron-forge/dist/api/package",
771 "importStyle": "package",
772 "description": "Package an Electron application into an platform dependent format.",
773 "lineNumber": 30,
774 "params": [
775 {
776 "nullable": null,
777 "types": [
778 "PackageOptions"
779 ],
780 "spread": false,
781 "optional": false,
782 "name": "providedOptions",
783 "description": "Options for the Package method"
784 }
785 ],
786 "return": {
787 "nullable": null,
788 "types": [
789 "Promise"
790 ],
791 "spread": false,
792 "description": "Will resolve when the package process is complete"
793 }
794 },
795 {
796 "__docId__": 24,
797 "kind": "file",
798 "name": "api/publish.js",
799 "content": "import 'colors';\n\nimport asyncOra from '../util/ora-handler';\nimport getForgeConfig from '../util/forge-config';\nimport readPackageJSON from '../util/read-package-json';\nimport requireSearch from '../util/require-search';\nimport resolveDir from '../util/resolve-dir';\n\nimport make from './make';\n\n/**\n * @typedef {Object} PublishOptions\n * @property {string} [dir=process.cwd()] The path to the app to be published\n * @property {boolean} [interactive=false] Whether to use sensible defaults or prompt the user visually\n * @property {string} [authToken] An authentication token to use when publishing\n * @property {string} [tag=packageJSON.version] The string to tag this release with\n * @property {string} [target=github] The publish target\n * @property {MakeOptions} [makeOptions] Options object to passed through to make()\n */\n\n/**\n * Publish an Electron application into the given target service.\n *\n * @param {PublishOptions} providedOptions - Options for the Publish method\n * @return {Promise} Will resolve when the publish process is complete\n */\nexport default async (providedOptions = {}) => {\n // eslint-disable-next-line prefer-const, no-unused-vars\n let { dir, interactive, authToken, tag, target, makeOptions } = Object.assign({\n dir: process.cwd(),\n interactive: false,\n tag: null,\n makeOptions: {},\n target: 'github',\n }, providedOptions);\n\n const makeResults = await make(makeOptions);\n\n dir = await resolveDir(dir);\n if (!dir) {\n // eslint-disable-next-line no-throw-literal\n throw 'Failed to locate publishable Electron application';\n }\n\n const artifacts = makeResults.reduce((accum, arr) => {\n accum.push(...arr);\n return accum;\n }, []);\n\n const packageJSON = await readPackageJSON(dir);\n\n const forgeConfig = await getForgeConfig(dir);\n\n let publisher;\n await asyncOra(`Resolving publish target: ${`${target}`.cyan}`, async () => {\n publisher = requireSearch(__dirname, [\n `./publishers/${target}.js`,\n `electron-forge-publisher-${target}`,\n ]);\n if (!publisher) {\n throw `Could not find a publish target with the name: ${target}`; // eslint-disable-line\n }\n });\n\n await publisher(artifacts, packageJSON, forgeConfig, authToken, tag);\n};\n",
800 "static": true,
801 "longname": "api/publish.js",
802 "access": null,
803 "description": null,
804 "lineNumber": 1
805 },
806 {
807 "__docId__": 25,
808 "kind": "typedef",
809 "name": "PublishOptions",
810 "memberof": "api/publish.js",
811 "static": true,
812 "longname": "api/publish.js~PublishOptions",
813 "access": null,
814 "description": "",
815 "properties": [
816 {
817 "nullable": null,
818 "types": [
819 "string"
820 ],
821 "spread": false,
822 "optional": true,
823 "defaultValue": "process.cwd()",
824 "defaultRaw": "process.cwd()",
825 "name": "dir",
826 "description": "The path to the app to be published"
827 },
828 {
829 "nullable": null,
830 "types": [
831 "boolean"
832 ],
833 "spread": false,
834 "optional": true,
835 "defaultValue": "false",
836 "defaultRaw": false,
837 "name": "interactive",
838 "description": "Whether to use sensible defaults or prompt the user visually"
839 },
840 {
841 "nullable": null,
842 "types": [
843 "string"
844 ],
845 "spread": false,
846 "optional": true,
847 "name": "authToken",
848 "description": "An authentication token to use when publishing"
849 },
850 {
851 "nullable": null,
852 "types": [
853 "string"
854 ],
855 "spread": false,
856 "optional": true,
857 "defaultValue": "packageJSON.version",
858 "defaultRaw": "packageJSON.version",
859 "name": "tag",
860 "description": "The string to tag this release with"
861 },
862 {
863 "nullable": null,
864 "types": [
865 "string"
866 ],
867 "spread": false,
868 "optional": true,
869 "defaultValue": "github",
870 "defaultRaw": "github",
871 "name": "target",
872 "description": "The publish target"
873 },
874 {
875 "nullable": null,
876 "types": [
877 "MakeOptions"
878 ],
879 "spread": false,
880 "optional": true,
881 "name": "makeOptions",
882 "description": "Options object to passed through to make()"
883 }
884 ],
885 "type": {
886 "types": [
887 "Object"
888 ],
889 "optional": false,
890 "name": "PublishOptions"
891 }
892 },
893 {
894 "__docId__": 26,
895 "kind": "function",
896 "name": "publish",
897 "memberof": "api/publish.js",
898 "generator": false,
899 "async": true,
900 "static": true,
901 "longname": "api/publish.js~publish",
902 "access": null,
903 "export": true,
904 "importPath": "electron-forge/dist/api/publish",
905 "importStyle": "publish",
906 "description": "Publish an Electron application into the given target service.",
907 "lineNumber": 27,
908 "params": [
909 {
910 "nullable": null,
911 "types": [
912 "PublishOptions"
913 ],
914 "spread": false,
915 "optional": false,
916 "name": "providedOptions",
917 "description": "Options for the Publish method"
918 }
919 ],
920 "return": {
921 "nullable": null,
922 "types": [
923 "Promise"
924 ],
925 "spread": false,
926 "description": "Will resolve when the publish process is complete"
927 }
928 },
929 {
930 "__docId__": 27,
931 "kind": "file",
932 "name": "api/start.js",
933 "content": "import 'colors';\nimport { spawn } from 'child_process';\nimport path from 'path';\n\nimport asyncOra from '../util/ora-handler';\nimport readPackageJSON from '../util/read-package-json';\nimport rebuild from '../util/rebuild';\nimport resolveDir from '../util/resolve-dir';\n\n/**\n * @typedef {Object} StartOptions\n * @property {string} [dir=process.cwd()] The path to the app to be run\n * @property {boolean} [interactive=false] Whether to use sensible defaults or prompt the user visually\n * @property {boolean} [enableLogging=false] Enables advanced internal Electron debug calls\n * @property {Array<string>} [args] Arguments to pass through to the launched Electron application\n */\n\n/**\n * Start an Electron application.\n *\n * @param {StartOptions} providedOptions - Options for the Publish method\n * @return {Promise} Will resolve when the application is launched\n */\nexport default async (providedOptions = {}) => {\n // eslint-disable-next-line prefer-const, no-unused-vars\n let { dir, interactive, enableLogging, args } = Object.assign({\n dir: process.cwd(),\n interactive: false,\n enableLogging: false,\n args: [],\n }, providedOptions);\n\n await asyncOra('Locating Application', async () => {\n dir = await resolveDir(dir);\n if (!dir) {\n // eslint-disable-next-line no-throw-literal\n throw 'Failed to locate startable Electron application';\n }\n });\n\n const packageJSON = await readPackageJSON(dir);\n\n await rebuild(dir, packageJSON.devDependencies['electron-prebuilt-compile'], process.platform, process.arch);\n\n const spawnOpts = {\n cwd: dir,\n stdio: 'inherit',\n env: Object.assign({}, process.env, enableLogging ? {\n ELECTRON_ENABLE_LOGGING: true,\n ELECTRON_ENABLE_STACK_DUMPING: true,\n } : {}),\n };\n await asyncOra('Launching Application', async () => {\n if (process.platform === 'win32') {\n spawn(path.resolve(dir, 'node_modules/.bin/electron.cmd'), ['.'].concat(args), spawnOpts);\n } else {\n spawn(path.resolve(dir, 'node_modules/.bin/electron'), ['.'].concat(args), spawnOpts);\n }\n });\n};\n",
934 "static": true,
935 "longname": "api/start.js",
936 "access": null,
937 "description": null,
938 "lineNumber": 1
939 },
940 {
941 "__docId__": 28,
942 "kind": "typedef",
943 "name": "StartOptions",
944 "memberof": "api/start.js",
945 "static": true,
946 "longname": "api/start.js~StartOptions",
947 "access": null,
948 "description": "",
949 "properties": [
950 {
951 "nullable": null,
952 "types": [
953 "string"
954 ],
955 "spread": false,
956 "optional": true,
957 "defaultValue": "process.cwd()",
958 "defaultRaw": "process.cwd()",
959 "name": "dir",
960 "description": "The path to the app to be run"
961 },
962 {
963 "nullable": null,
964 "types": [
965 "boolean"
966 ],
967 "spread": false,
968 "optional": true,
969 "defaultValue": "false",
970 "defaultRaw": false,
971 "name": "interactive",
972 "description": "Whether to use sensible defaults or prompt the user visually"
973 },
974 {
975 "nullable": null,
976 "types": [
977 "boolean"
978 ],
979 "spread": false,
980 "optional": true,
981 "defaultValue": "false",
982 "defaultRaw": false,
983 "name": "enableLogging",
984 "description": "Enables advanced internal Electron debug calls"
985 },
986 {
987 "nullable": null,
988 "types": [
989 "Array<string>"
990 ],
991 "spread": false,
992 "optional": true,
993 "name": "args",
994 "description": "Arguments to pass through to the launched Electron application"
995 }
996 ],
997 "type": {
998 "types": [
999 "Object"
1000 ],
1001 "optional": false,
1002 "name": "StartOptions"
1003 }
1004 },
1005 {
1006 "__docId__": 29,
1007 "kind": "function",
1008 "name": "start",
1009 "memberof": "api/start.js",
1010 "generator": false,
1011 "async": true,
1012 "static": true,
1013 "longname": "api/start.js~start",
1014 "access": null,
1015 "export": true,
1016 "importPath": "electron-forge/dist/api/start",
1017 "importStyle": "start",
1018 "description": "Start an Electron application.",
1019 "lineNumber": 24,
1020 "params": [
1021 {
1022 "nullable": null,
1023 "types": [
1024 "StartOptions"
1025 ],
1026 "spread": false,
1027 "optional": false,
1028 "name": "providedOptions",
1029 "description": "Options for the Publish method"
1030 }
1031 ],
1032 "return": {
1033 "nullable": null,
1034 "types": [
1035 "Promise"
1036 ],
1037 "spread": false,
1038 "description": "Will resolve when the application is launched"
1039 }
1040 },
1041 {
1042 "__docId__": 31,
1043 "kind": "external",
1044 "name": "Infinity",
1045 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Infinity",
1046 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1047 "static": true,
1048 "longname": "BuiltinExternal/ECMAScriptExternal.js~Infinity",
1049 "access": null,
1050 "description": "",
1051 "builtinExternal": true
1052 },
1053 {
1054 "__docId__": 32,
1055 "kind": "external",
1056 "name": "NaN",
1057 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN",
1058 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1059 "static": true,
1060 "longname": "BuiltinExternal/ECMAScriptExternal.js~NaN",
1061 "access": null,
1062 "description": "",
1063 "builtinExternal": true
1064 },
1065 {
1066 "__docId__": 33,
1067 "kind": "external",
1068 "name": "undefined",
1069 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined",
1070 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1071 "static": true,
1072 "longname": "BuiltinExternal/ECMAScriptExternal.js~undefined",
1073 "access": null,
1074 "description": "",
1075 "builtinExternal": true
1076 },
1077 {
1078 "__docId__": 34,
1079 "kind": "external",
1080 "name": "null",
1081 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/null",
1082 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1083 "static": true,
1084 "longname": "BuiltinExternal/ECMAScriptExternal.js~null",
1085 "access": null,
1086 "description": "",
1087 "builtinExternal": true
1088 },
1089 {
1090 "__docId__": 35,
1091 "kind": "external",
1092 "name": "Object",
1093 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object",
1094 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1095 "static": true,
1096 "longname": "BuiltinExternal/ECMAScriptExternal.js~Object",
1097 "access": null,
1098 "description": "",
1099 "builtinExternal": true
1100 },
1101 {
1102 "__docId__": 36,
1103 "kind": "external",
1104 "name": "object",
1105 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object",
1106 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1107 "static": true,
1108 "longname": "BuiltinExternal/ECMAScriptExternal.js~object",
1109 "access": null,
1110 "description": "",
1111 "builtinExternal": true
1112 },
1113 {
1114 "__docId__": 37,
1115 "kind": "external",
1116 "name": "Function",
1117 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function",
1118 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1119 "static": true,
1120 "longname": "BuiltinExternal/ECMAScriptExternal.js~Function",
1121 "access": null,
1122 "description": "",
1123 "builtinExternal": true
1124 },
1125 {
1126 "__docId__": 38,
1127 "kind": "external",
1128 "name": "function",
1129 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function",
1130 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1131 "static": true,
1132 "longname": "BuiltinExternal/ECMAScriptExternal.js~function",
1133 "access": null,
1134 "description": "",
1135 "builtinExternal": true
1136 },
1137 {
1138 "__docId__": 39,
1139 "kind": "external",
1140 "name": "Boolean",
1141 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean",
1142 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1143 "static": true,
1144 "longname": "BuiltinExternal/ECMAScriptExternal.js~Boolean",
1145 "access": null,
1146 "description": "",
1147 "builtinExternal": true
1148 },
1149 {
1150 "__docId__": 40,
1151 "kind": "external",
1152 "name": "boolean",
1153 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean",
1154 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1155 "static": true,
1156 "longname": "BuiltinExternal/ECMAScriptExternal.js~boolean",
1157 "access": null,
1158 "description": "",
1159 "builtinExternal": true
1160 },
1161 {
1162 "__docId__": 41,
1163 "kind": "external",
1164 "name": "Symbol",
1165 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol",
1166 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1167 "static": true,
1168 "longname": "BuiltinExternal/ECMAScriptExternal.js~Symbol",
1169 "access": null,
1170 "description": "",
1171 "builtinExternal": true
1172 },
1173 {
1174 "__docId__": 42,
1175 "kind": "external",
1176 "name": "Error",
1177 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error",
1178 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1179 "static": true,
1180 "longname": "BuiltinExternal/ECMAScriptExternal.js~Error",
1181 "access": null,
1182 "description": "",
1183 "builtinExternal": true
1184 },
1185 {
1186 "__docId__": 43,
1187 "kind": "external",
1188 "name": "EvalError",
1189 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/EvalError",
1190 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1191 "static": true,
1192 "longname": "BuiltinExternal/ECMAScriptExternal.js~EvalError",
1193 "access": null,
1194 "description": "",
1195 "builtinExternal": true
1196 },
1197 {
1198 "__docId__": 44,
1199 "kind": "external",
1200 "name": "InternalError",
1201 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/InternalError",
1202 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1203 "static": true,
1204 "longname": "BuiltinExternal/ECMAScriptExternal.js~InternalError",
1205 "access": null,
1206 "description": "",
1207 "builtinExternal": true
1208 },
1209 {
1210 "__docId__": 45,
1211 "kind": "external",
1212 "name": "RangeError",
1213 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError",
1214 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1215 "static": true,
1216 "longname": "BuiltinExternal/ECMAScriptExternal.js~RangeError",
1217 "access": null,
1218 "description": "",
1219 "builtinExternal": true
1220 },
1221 {
1222 "__docId__": 46,
1223 "kind": "external",
1224 "name": "ReferenceError",
1225 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError",
1226 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1227 "static": true,
1228 "longname": "BuiltinExternal/ECMAScriptExternal.js~ReferenceError",
1229 "access": null,
1230 "description": "",
1231 "builtinExternal": true
1232 },
1233 {
1234 "__docId__": 47,
1235 "kind": "external",
1236 "name": "SyntaxError",
1237 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError",
1238 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1239 "static": true,
1240 "longname": "BuiltinExternal/ECMAScriptExternal.js~SyntaxError",
1241 "access": null,
1242 "description": "",
1243 "builtinExternal": true
1244 },
1245 {
1246 "__docId__": 48,
1247 "kind": "external",
1248 "name": "TypeError",
1249 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError",
1250 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1251 "static": true,
1252 "longname": "BuiltinExternal/ECMAScriptExternal.js~TypeError",
1253 "access": null,
1254 "description": "",
1255 "builtinExternal": true
1256 },
1257 {
1258 "__docId__": 49,
1259 "kind": "external",
1260 "name": "URIError",
1261 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError",
1262 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1263 "static": true,
1264 "longname": "BuiltinExternal/ECMAScriptExternal.js~URIError",
1265 "access": null,
1266 "description": "",
1267 "builtinExternal": true
1268 },
1269 {
1270 "__docId__": 50,
1271 "kind": "external",
1272 "name": "Number",
1273 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number",
1274 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1275 "static": true,
1276 "longname": "BuiltinExternal/ECMAScriptExternal.js~Number",
1277 "access": null,
1278 "description": "",
1279 "builtinExternal": true
1280 },
1281 {
1282 "__docId__": 51,
1283 "kind": "external",
1284 "name": "number",
1285 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number",
1286 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1287 "static": true,
1288 "longname": "BuiltinExternal/ECMAScriptExternal.js~number",
1289 "access": null,
1290 "description": "",
1291 "builtinExternal": true
1292 },
1293 {
1294 "__docId__": 52,
1295 "kind": "external",
1296 "name": "Date",
1297 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date",
1298 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1299 "static": true,
1300 "longname": "BuiltinExternal/ECMAScriptExternal.js~Date",
1301 "access": null,
1302 "description": "",
1303 "builtinExternal": true
1304 },
1305 {
1306 "__docId__": 53,
1307 "kind": "external",
1308 "name": "String",
1309 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String",
1310 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1311 "static": true,
1312 "longname": "BuiltinExternal/ECMAScriptExternal.js~String",
1313 "access": null,
1314 "description": "",
1315 "builtinExternal": true
1316 },
1317 {
1318 "__docId__": 54,
1319 "kind": "external",
1320 "name": "string",
1321 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String",
1322 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1323 "static": true,
1324 "longname": "BuiltinExternal/ECMAScriptExternal.js~string",
1325 "access": null,
1326 "description": "",
1327 "builtinExternal": true
1328 },
1329 {
1330 "__docId__": 55,
1331 "kind": "external",
1332 "name": "RegExp",
1333 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp",
1334 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1335 "static": true,
1336 "longname": "BuiltinExternal/ECMAScriptExternal.js~RegExp",
1337 "access": null,
1338 "description": "",
1339 "builtinExternal": true
1340 },
1341 {
1342 "__docId__": 56,
1343 "kind": "external",
1344 "name": "Array",
1345 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array",
1346 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1347 "static": true,
1348 "longname": "BuiltinExternal/ECMAScriptExternal.js~Array",
1349 "access": null,
1350 "description": "",
1351 "builtinExternal": true
1352 },
1353 {
1354 "__docId__": 57,
1355 "kind": "external",
1356 "name": "Int8Array",
1357 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int8Array",
1358 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1359 "static": true,
1360 "longname": "BuiltinExternal/ECMAScriptExternal.js~Int8Array",
1361 "access": null,
1362 "description": "",
1363 "builtinExternal": true
1364 },
1365 {
1366 "__docId__": 58,
1367 "kind": "external",
1368 "name": "Uint8Array",
1369 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array",
1370 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1371 "static": true,
1372 "longname": "BuiltinExternal/ECMAScriptExternal.js~Uint8Array",
1373 "access": null,
1374 "description": "",
1375 "builtinExternal": true
1376 },
1377 {
1378 "__docId__": 59,
1379 "kind": "external",
1380 "name": "Uint8ClampedArray",
1381 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8ClampedArray",
1382 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1383 "static": true,
1384 "longname": "BuiltinExternal/ECMAScriptExternal.js~Uint8ClampedArray",
1385 "access": null,
1386 "description": "",
1387 "builtinExternal": true
1388 },
1389 {
1390 "__docId__": 60,
1391 "kind": "external",
1392 "name": "Int16Array",
1393 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int16Array",
1394 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1395 "static": true,
1396 "longname": "BuiltinExternal/ECMAScriptExternal.js~Int16Array",
1397 "access": null,
1398 "description": "",
1399 "builtinExternal": true
1400 },
1401 {
1402 "__docId__": 61,
1403 "kind": "external",
1404 "name": "Uint16Array",
1405 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint16Array",
1406 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1407 "static": true,
1408 "longname": "BuiltinExternal/ECMAScriptExternal.js~Uint16Array",
1409 "access": null,
1410 "description": "",
1411 "builtinExternal": true
1412 },
1413 {
1414 "__docId__": 62,
1415 "kind": "external",
1416 "name": "Int32Array",
1417 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int32Array",
1418 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1419 "static": true,
1420 "longname": "BuiltinExternal/ECMAScriptExternal.js~Int32Array",
1421 "access": null,
1422 "description": "",
1423 "builtinExternal": true
1424 },
1425 {
1426 "__docId__": 63,
1427 "kind": "external",
1428 "name": "Uint32Array",
1429 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint32Array",
1430 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1431 "static": true,
1432 "longname": "BuiltinExternal/ECMAScriptExternal.js~Uint32Array",
1433 "access": null,
1434 "description": "",
1435 "builtinExternal": true
1436 },
1437 {
1438 "__docId__": 64,
1439 "kind": "external",
1440 "name": "Float32Array",
1441 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array",
1442 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1443 "static": true,
1444 "longname": "BuiltinExternal/ECMAScriptExternal.js~Float32Array",
1445 "access": null,
1446 "description": "",
1447 "builtinExternal": true
1448 },
1449 {
1450 "__docId__": 65,
1451 "kind": "external",
1452 "name": "Float64Array",
1453 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float64Array",
1454 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1455 "static": true,
1456 "longname": "BuiltinExternal/ECMAScriptExternal.js~Float64Array",
1457 "access": null,
1458 "description": "",
1459 "builtinExternal": true
1460 },
1461 {
1462 "__docId__": 66,
1463 "kind": "external",
1464 "name": "Map",
1465 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map",
1466 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1467 "static": true,
1468 "longname": "BuiltinExternal/ECMAScriptExternal.js~Map",
1469 "access": null,
1470 "description": "",
1471 "builtinExternal": true
1472 },
1473 {
1474 "__docId__": 67,
1475 "kind": "external",
1476 "name": "Set",
1477 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set",
1478 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1479 "static": true,
1480 "longname": "BuiltinExternal/ECMAScriptExternal.js~Set",
1481 "access": null,
1482 "description": "",
1483 "builtinExternal": true
1484 },
1485 {
1486 "__docId__": 68,
1487 "kind": "external",
1488 "name": "WeakMap",
1489 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap",
1490 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1491 "static": true,
1492 "longname": "BuiltinExternal/ECMAScriptExternal.js~WeakMap",
1493 "access": null,
1494 "description": "",
1495 "builtinExternal": true
1496 },
1497 {
1498 "__docId__": 69,
1499 "kind": "external",
1500 "name": "WeakSet",
1501 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet",
1502 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1503 "static": true,
1504 "longname": "BuiltinExternal/ECMAScriptExternal.js~WeakSet",
1505 "access": null,
1506 "description": "",
1507 "builtinExternal": true
1508 },
1509 {
1510 "__docId__": 70,
1511 "kind": "external",
1512 "name": "ArrayBuffer",
1513 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer",
1514 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1515 "static": true,
1516 "longname": "BuiltinExternal/ECMAScriptExternal.js~ArrayBuffer",
1517 "access": null,
1518 "description": "",
1519 "builtinExternal": true
1520 },
1521 {
1522 "__docId__": 71,
1523 "kind": "external",
1524 "name": "DataView",
1525 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView",
1526 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1527 "static": true,
1528 "longname": "BuiltinExternal/ECMAScriptExternal.js~DataView",
1529 "access": null,
1530 "description": "",
1531 "builtinExternal": true
1532 },
1533 {
1534 "__docId__": 72,
1535 "kind": "external",
1536 "name": "JSON",
1537 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON",
1538 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1539 "static": true,
1540 "longname": "BuiltinExternal/ECMAScriptExternal.js~JSON",
1541 "access": null,
1542 "description": "",
1543 "builtinExternal": true
1544 },
1545 {
1546 "__docId__": 73,
1547 "kind": "external",
1548 "name": "Promise",
1549 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise",
1550 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1551 "static": true,
1552 "longname": "BuiltinExternal/ECMAScriptExternal.js~Promise",
1553 "access": null,
1554 "description": "",
1555 "builtinExternal": true
1556 },
1557 {
1558 "__docId__": 74,
1559 "kind": "external",
1560 "name": "Generator",
1561 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator",
1562 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1563 "static": true,
1564 "longname": "BuiltinExternal/ECMAScriptExternal.js~Generator",
1565 "access": null,
1566 "description": "",
1567 "builtinExternal": true
1568 },
1569 {
1570 "__docId__": 75,
1571 "kind": "external",
1572 "name": "GeneratorFunction",
1573 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/GeneratorFunction",
1574 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1575 "static": true,
1576 "longname": "BuiltinExternal/ECMAScriptExternal.js~GeneratorFunction",
1577 "access": null,
1578 "description": "",
1579 "builtinExternal": true
1580 },
1581 {
1582 "__docId__": 76,
1583 "kind": "external",
1584 "name": "Reflect",
1585 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect",
1586 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1587 "static": true,
1588 "longname": "BuiltinExternal/ECMAScriptExternal.js~Reflect",
1589 "access": null,
1590 "description": "",
1591 "builtinExternal": true
1592 },
1593 {
1594 "__docId__": 77,
1595 "kind": "external",
1596 "name": "Proxy",
1597 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy",
1598 "memberof": "BuiltinExternal/ECMAScriptExternal.js",
1599 "static": true,
1600 "longname": "BuiltinExternal/ECMAScriptExternal.js~Proxy",
1601 "access": null,
1602 "description": "",
1603 "lineNumber": 193,
1604 "builtinExternal": true
1605 },
1606 {
1607 "__docId__": 79,
1608 "kind": "external",
1609 "name": "CanvasRenderingContext2D",
1610 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D",
1611 "memberof": "BuiltinExternal/WebAPIExternal.js",
1612 "static": true,
1613 "longname": "BuiltinExternal/WebAPIExternal.js~CanvasRenderingContext2D",
1614 "access": null,
1615 "description": "",
1616 "builtinExternal": true
1617 },
1618 {
1619 "__docId__": 80,
1620 "kind": "external",
1621 "name": "DocumentFragment",
1622 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment",
1623 "memberof": "BuiltinExternal/WebAPIExternal.js",
1624 "static": true,
1625 "longname": "BuiltinExternal/WebAPIExternal.js~DocumentFragment",
1626 "access": null,
1627 "description": "",
1628 "builtinExternal": true
1629 },
1630 {
1631 "__docId__": 81,
1632 "kind": "external",
1633 "name": "Element",
1634 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/Element",
1635 "memberof": "BuiltinExternal/WebAPIExternal.js",
1636 "static": true,
1637 "longname": "BuiltinExternal/WebAPIExternal.js~Element",
1638 "access": null,
1639 "description": "",
1640 "builtinExternal": true
1641 },
1642 {
1643 "__docId__": 82,
1644 "kind": "external",
1645 "name": "Event",
1646 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/Event",
1647 "memberof": "BuiltinExternal/WebAPIExternal.js",
1648 "static": true,
1649 "longname": "BuiltinExternal/WebAPIExternal.js~Event",
1650 "access": null,
1651 "description": "",
1652 "builtinExternal": true
1653 },
1654 {
1655 "__docId__": 83,
1656 "kind": "external",
1657 "name": "Node",
1658 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/Node",
1659 "memberof": "BuiltinExternal/WebAPIExternal.js",
1660 "static": true,
1661 "longname": "BuiltinExternal/WebAPIExternal.js~Node",
1662 "access": null,
1663 "description": "",
1664 "builtinExternal": true
1665 },
1666 {
1667 "__docId__": 84,
1668 "kind": "external",
1669 "name": "NodeList",
1670 "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/NodeList",
1671 "memberof": "BuiltinExternal/WebAPIExternal.js",
1672 "static": true,
1673 "longname": "BuiltinExternal/WebAPIExternal.js~NodeList",
1674 "access": null,
1675 "description": "",
1676 "builtinExternal": true
1677 },
1678 {
1679 "__docId__": 85,
1680 "kind": "external",
1681 "name": "XMLHttpRequest",
1682 "externalLink": "https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest",
1683 "memberof": "BuiltinExternal/WebAPIExternal.js",
1684 "static": true,
1685 "longname": "BuiltinExternal/WebAPIExternal.js~XMLHttpRequest",
1686 "access": null,
1687 "description": "",
1688 "builtinExternal": true
1689 },
1690 {
1691 "__docId__": 86,
1692 "kind": "external",
1693 "name": "AudioContext",
1694 "externalLink": "https://developer.mozilla.org/en/docs/Web/API/AudioContext",
1695 "memberof": "BuiltinExternal/WebAPIExternal.js",
1696 "static": true,
1697 "longname": "BuiltinExternal/WebAPIExternal.js~AudioContext",
1698 "access": null,
1699 "description": "",
1700 "lineNumber": 34,
1701 "builtinExternal": true
1702 }
1703]
\No newline at end of file