diff --git a/ddb.js b/ddb.js index 3e232ae..71f73af 100644 --- a/ddb.js +++ b/ddb.js @@ -209,6 +209,112 @@ class DDB { const res = await this.getRequest(url).catch(e => console.log(`Could not populate campaings: ${e}`)) this.campaigns = res?.data || [] } + async getEncounterCount(campaignIds=null) { + const url = "https://encounter-service.dndbeyond.com/v1/encounters" + const params = (campaignIds)? qs.stringify({ 'skip': 0, 'take': 1,campaignIds: campaignIds }) : qs.stringify({ 'skip': 0, 'take': 1 }) + await this.getCobaltAuth() + const response = await this.getRequest(`${url}?${params}`,true).catch((e)=>console.log(`Error getting encounter count for source id ${source}: ${e}`)) + return response.pagination.total + } + async getEncounters(campaignIds=null,filename = null,zip = null){ + const url = "https://encounter-service.dndbeyond.com/v1/encounters" + let params + const count = await this.getEncounterCount(campaignIds).catch((e)=>console.log(e)) + console.log(`There are ${count} encounters`) + let pos = 0 + console.log("creating progress bar") + const prog = new ProgressBar({title: "Please wait...",text: "Exporting encounters...", detail: "Please wait...", indeterminate: false, maxValue: count}) + //prog.on('progress', (v) => prog.detail = `Converting ${v} of ${prog.getOptions().maxValue}`) + console.log("creating zip file") + if (filename) zip = new AdmZip() + var campaign = { + _name: "campaign", + _attrs: { id: uuid5("https://www.dndbeyond.com/my-encounters",uuid5.URL) }, + _content: [ + { name: "D&D Beyond Encounters" }, + { description: "This campaign contains encounters imported from D&D Beyond" } + ] + } + console.log("begining retrieval") + while ( pos <= count ) { + console.log("Retrieving 100...") + params = (campaignIds)? qs.stringify({ 'skip': pos, 'take': 100,campaignIds: campaignIds }) : qs.stringify({ 'skip': pos, 'take': 100 }) + const response = await this.getRequest(`${url}?${params}`,true).catch((e)=>console.log(`Error getting encounters ${pos}/${count}: ${e}`)) + console.log(`Retrieved ${response.data.length}`) + let sort = 2000; + for (const encounter of response.data) { + //console.log(encounter) + let parentId = (encounter.campaign)? uuid5(`https://www.dndbeyond.com/campaigns/${encounter.campaign.id}`,uuid5.URL) : campaign._attrs.id + if (!campaign._content.find(g=>g.group&&g.group._attrs.id==parentId)) { + let groupName = (encounter.campaign)? encounter.campaign.name : "No Campaign" + campaign._content.push({ + group: { + _attrs: { id: parentId, sort: sort-1000 }, + name: groupName, + slug: slugify(groupName) + } + }) + } + let enc = { + _name: "encounter", + _attrs: { sort: sort, parent: parentId, id: encounter.id }, + _content: [ + {name: encounter.name || "Untitled Encounter"}, + {description: `${encounter.flavorText+"\n"||""}\n${encounter.description||""}${(encounter.rewards)?`\nRewards: ${encounter.rewards}`:""}`} + ] + } + let ids = encounter.monsters.map(m=>m.id) + .filter((v,i,s)=>s.indexOf(v)===i) + const monsters = await this.getMonsterById(ids).catch(e=>`Error getting stat blocks ${e}`) + let labels = [] + for (const monster of encounter.monsters) { + let qty = monster.quantity + let name = monster.name + let slug = slugify(monsters.find(m=>m.id===monster.id)?.name) + let namelabel = /(.*) \((.*)\)/.exec(monster.name) + let combatant = { + combatant: { + name: name||monsters.find(m=>m.id===monster.id)?.name, + role: "hostile", + monster: { _attrs: {ref: `/monster/${slug}`} } + } + } + if (namelabel) { + combatant.combatant.name = (namelabel[2])? namelabel[1]: monster.name + if (namelabel[2] && !labels.includes(namelabel[2])) { + combatant.combatant.label = namelabel[2] + labels.push(namelabel[2]) + } + } + if (!combatant.combatant.label) { + let i = 1 + let label = combatant.combatant.name.substr(0,1) + i.toString() + while(labels.includes(label)) { + i++ + label = combatant.combatant.name.substr(0,1) + i.toString() + } + combatant.combatant.label = label + labels.push(label) + } + enc._content.push(combatant) + } + campaign._content.push(enc) + sort += 1 + prog.value += 1 + } + pos += 100 + } + if (filename) { + prog.detail = `Creating XML` + const campaignXML = toXML(campaign,{indent:'\t'}) + await zip.addFile("campaign.xml",Buffer.from(campaignXML,'utf8'),null) + prog.detail = `Writing campaign file` + zip.writeZip(filename) + prog.detail = `Saved campaign` + setTimeout(()=>prog.setCompleted(),1000) + } + return campaign + } async getSources() { if (!this.cobaltsession) await this.setCobaltSession() const url = "https://www.dndbeyond.com/mobile/api/v6/available-user-content" @@ -652,6 +758,13 @@ class DDB { const response = await this.getRequest(`${url}?${params}`,true).catch((e)=>console.log(`Error getting monster count for source id ${source}: ${e}`)) return response.pagination.total } + async getMonsterById(id) { + const url = "https://monster-service.dndbeyond.com/v1/Monster" + const params = qs.stringify({ 'ids': id }) + await this.getCobaltAuth() + const response = await this.getRequest(`${url}?${params}`,true).catch((e)=>console.log(`Error getting monster count for source id ${source}: ${e}`)) + return response.data + } async getMonsters(source = 0,filename,zip=null,imageMap=null,prog=null,homebrew=false) { const url = "https://monster-service.dndbeyond.com/v1/Monster" var params diff --git a/index.js b/index.js index 15e8c63..d73fce9 100644 --- a/index.js +++ b/index.js @@ -206,14 +206,30 @@ app.on('ready', () => { click: (m) => _win?.loadURL(`https://www.dndbeyond.com/my-campaigns`) })) campaignMenu.submenu.append(new MenuItem({type: 'separator'})) - for (var campaign of ddb.campaigns) { + for (const campaign of ddb.campaigns) { campaignMenu.submenu.append( new MenuItem({ label: he.decode(campaign.name).replaceAll("&","&&"), id: campaign.id, toolTip: "Jump to campaign", - click: (m) => _win?.loadURL(`https://www.dndbeyond.com/campaigns/${m.id}`) + click: (m) => _win?.loadURL(`https://www.dndbeyond.com/campaigns/${m.id}`), })) } + campaignMenu.submenu.append(new MenuItem({type: 'separator'})) + campaignMenu.submenu.append( new MenuItem({ + label: "Export All Encounters", + toolTip: "Export all Encounters from the Encounter Builder", + click: () => { + dialog.showSaveDialog(win,{ + title: "Save Encounters", + filters: [ { name: "EncounterPlus Campaign", extensions: ["campaign"]} ], + defaultPath: `encounters.campaign`, + }).then((save) => { + if (save.filePath) + ddb.getEncounters(null,save.filePath).catch(e=>displayError(e)) + } + ) + } + })) Menu.setApplicationMenu(menu) }).then( ddb.getSources().then(() => { @@ -540,7 +556,7 @@ function requestCampaignChars(gameId,cobalt) { click: (m) => _win?.loadURL(`https://www.dndbeyond.com/my-campaigns`) })) campaignMenu.submenu.append(new MenuItem({type: 'separator'})) - for (var campaign of ddb.campaigns) { + for (const campaign of ddb.campaigns) { campaignMenu.submenu.append( new MenuItem({ label: he.decode(campaign.name).replaceAll("&","&&"), id: campaign.id, @@ -549,17 +565,47 @@ function requestCampaignChars(gameId,cobalt) { })) } campaignMenu.submenu.append(new MenuItem({type: 'separator'})) + campaignMenu.submenu.append( new MenuItem({ + label: "Export All Encounters", + toolTip: "Export all Encounters from the Encounter Builder", + click: () => { + dialog.showSaveDialog(win,{ + title: "Save Encounters", + filters: [ { name: "EncounterPlus Campaign", extensions: ["campaign"]} ], + defaultPath: `encounters.campaign`, + }).then((save) => { + if (save.filePath) + ddb.getEncounters(null,save.filePath).catch(e=>displayError(e)) + } + ) + } + })) + campaignMenu.submenu.append(new MenuItem({type: 'separator'})) + campaignMenu.submenu.append(new MenuItem({ + label: "Export this Campaign's Encounters", + click: () => { + dialog.showSaveDialog(_win,{ + title: "Save exported encounters", + filters: [ { name: "EncounterPlus Campaign", extensions: ["campaign"]} ], + defaultPath: `${thisCampaign.label.replaceAll("&&","&")}-encounters.campaign`, + }).then((save) => { + if (save.filePath) { + ddb.getEncounters(thisCampaign.id,save.filePath).catch(e=>displayError(e)) + } + }) + } + })) campaignMenu.submenu.append(new MenuItem({ - label: "Convert These Characters for EncounterPlus", + label: "Export this Campaign's Characters", click: () => { dialog.showSaveDialog(_win,{ title: "Save exported characters", filters: [ { name: "EncounterPlus Compendium", extensions: ["compendium"]} ], - defaultPath: `${thisCampaign.label}.compendium`, + defaultPath: `${thisCampaign.label.replaceAll("&&","&")}.compendium`, }).then((save) => { if (save.filePath) { const prog = new ProgressBar({title: "Converting campaign characters...", text: "Converting campaign characters...", detail: "Please wait..."}) - download(_win,`https://w.bobg.us/ddb.php?tokenmap=true&circles=true&campaign=https://ddb.ac/characters/${campaignChars[0].id}`,{ + download(_win,`https://play5e.online/ddb.php?tokenmap=true&circles=true&campaign=https://ddb.ac/characters/${campaignChars[0].id}`,{ filename: path.basename(save.filePath), directory: path.dirname(save.filePath), onStarted: () => prog.setCompleted() diff --git a/package.json b/package.json index 48adcd0..ad68ddd 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "encounterlog", "productName": "EncounterLog", - "version": "2.1.10", + "version": "2.2.0", "description": "Connect D&D Beyond to EncounterPlus", "repository": { "type": "git", @@ -14,11 +14,11 @@ "build-win": "npm_config_platform=win32 npm_config_arch=x64 yarn add opencv4nodejs-prebuilt@5.3.3 sharp; electron-builder build --win;yarn add opencv4nodejs-prebuilt@5.3.3 sharp", "build-deb": "npm_config_platform=linux npm_config_arch=x64 yarn add opencv4nodejs-prebuilt@5.3.3 sharp; electron-builder build --linux deb;yarn add opencv4nodejs-prebuilt@5.3.3 sharp", "build-all": "yarn build-mac;yarn build-win;yarn build-deb", - "publish-mac": "security unlock;electron-builder -p always --mac", + "publish-mac": "electron-builder -p always --mac", "publish-win": "npm_config_platform=win32 npm_config_arch=x64 yarn add opencv4nodejs-prebuilt@5.3.3 sharp; electron-builder -p always --win;yarn add opencv4nodejs-prebuilt@5.3.3 sharp", "publish-deb": "npm_config_platform=linux npm_config_arch=x64 yarn add opencv4nodejs-prebuilt@5.3.3 sharp; electron-builder -p always --linux;yarn add opencv4nodejs-prebuilt@5.3.3 sharp", "publish-all": "yarn publish-mac;yarn publish-win;yarn publish-deb", - "release": "yarn publish-all", + "release": "security unlock;git push;git push --tags;yarn publish-all", "postinstall": "electron-builder install-app-deps", "app": "electron ." }, @@ -144,7 +144,7 @@ "ws": "^7.4.5" }, "devDependencies": { - "electron": "^13.2.3", + "electron": "13.2.3", "electron-builder": "^22.11.7", "electron-notarize": "^1.1.0" } diff --git a/yarn.lock b/yarn.lock index 2baa578..587fe1c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -25,9 +25,9 @@ ajv-keywords "^3.4.1" "@electron/get@^1.0.1": - version "1.12.4" - resolved "https://registry.npmjs.org/@electron/get/-/get-1.12.4.tgz" - integrity sha512-6nr9DbJPUR9Xujw6zD3y+rS95TyItEVM0NVjt1EehY2vUWfIgPiIPVHxCvaTS0xr2B+DRxovYVKbuOWqC35kjg== + version "1.13.0" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.13.0.tgz#95c6bcaff4f9a505ea46792424f451efea89228c" + integrity sha512-+SjZhRuRo+STTO1Fdhzqnv9D2ZhjxXP6egsJ9kiO8dtP68cDx7dFCwWi64dlMQV7sWcfW1OYCW4wviEBzmRsfQ== dependencies: debug "^4.1.1" env-paths "^2.2.0" @@ -206,9 +206,9 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== -"@types/debug@^4.1.6": +"@types/debug@^4.1.5": version "4.1.7" - resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== dependencies: "@types/ms" "*" @@ -276,10 +276,10 @@ resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz" integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== -"@types/yargs@^17.0.1": - version "17.0.2" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.2.tgz" - integrity sha512-JhZ+pNdKMfB0rXauaDlrIvm+U7V4m03PPOSVoPS66z8gf+G4Z/UW8UlrVIj2MRQOBzuoEvYtjS0bqYwnpZaS9Q== +"@types/yargs@^16.0.2": + version "16.0.4" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" + integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== dependencies: "@types/yargs-parser" "*" @@ -391,15 +391,15 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -app-builder-bin@3.7.1: - version "3.7.1" - resolved "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.7.1.tgz" - integrity sha512-ql93vEUq6WsstGXD+SBLSIQw6SNnhbDEM0swzgugytMxLp3rT24Ag/jcC80ZHxiPRTdew1niuR7P3/FCrDqIjw== +app-builder-bin@3.5.13: + version "3.5.13" + resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.13.tgz#6dd7f4de34a4e408806f99b8c7d6ef1601305b7e" + integrity sha512-ighVe9G+bT1ENGdp9ecO1P+94vv/f+FUwaI+XkNzeg9bYF8Oi3BQ+mJuxS00UgyHs8luuOzjzC+qnAtdb43Mpg== -app-builder-lib@22.12.0: - version "22.12.0" - resolved "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.12.0.tgz" - integrity sha512-VsBCb3zkY1ugdFxKHF31gxrJipFAf+cDE74XfPwxM4Jrb+QblQX8YRO2Cl268TZrhBEcVnBKIrx9aSnvMbBVgw== +app-builder-lib@22.11.7: + version "22.11.7" + resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.11.7.tgz#c0ad1119ebfbf4189a8280ad693625f5e684dca6" + integrity sha512-pS9/cR4/TnNZVAHZECiSvvwTBzbwblj7KBBZkMKDG57nibq0I1XY8zAaYeHFdlYTyrRcz9JUXbAqJKezya7UFQ== dependencies: "7zip-bin" "~5.1.1" "@develar/schema-utils" "~2.6.5" @@ -407,13 +407,12 @@ app-builder-lib@22.12.0: "@malept/flatpak-bundler" "^0.4.0" async-exit-hook "^2.0.1" bluebird-lst "^1.0.9" - builder-util "22.11.11" - builder-util-runtime "8.7.10" + builder-util "22.11.7" + builder-util-runtime "8.7.7" chromium-pickle-js "^0.2.0" debug "^4.3.2" ejs "^3.1.6" - electron-osx-sign "^0.5.0" - electron-publish "22.11.11" + electron-publish "22.11.7" fs-extra "^10.0.0" hosted-git-info "^4.0.2" is-ci "^3.0.0" @@ -522,7 +521,7 @@ bluebird-lst@^1.0.9: dependencies: bluebird "^3.5.5" -bluebird@^3.5.0, bluebird@^3.5.5: +bluebird@^3.5.5: version "3.7.2" resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -559,19 +558,6 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" @@ -587,11 +573,6 @@ buffer-equal@1.0.0: resolved "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz" integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" @@ -621,14 +602,6 @@ build@^0.1.4: winston "*" wrench "1.3.x" -builder-util-runtime@8.7.10: - version "8.7.10" - resolved "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.10.tgz" - integrity sha512-zelTRebsOsj33pF+Jf/qwpvx9W6CeMQshqaRa70Ii6+NQGsspMXqlKDQb+1lvTv9aWARxa3+jy/syzm8jTE8Kw== - dependencies: - debug "^4.3.2" - sax "^1.2.4" - builder-util-runtime@8.7.5: version "8.7.5" resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.5.tgz#fbe59e274818885e0d2e358d5b7017c34ae6b0f5" @@ -637,17 +610,33 @@ builder-util-runtime@8.7.5: debug "^4.3.2" sax "^1.2.4" -builder-util@22.11.11: - version "22.11.11" - resolved "https://registry.npmjs.org/builder-util/-/builder-util-22.11.11.tgz" - integrity sha512-2UJjOuPXhix68mmQ9hkv9G52Y0EVB8RPjlJF61jr3/tLIyd3UiJmEEhKttu8F+JVHKj8myz1MWw2/keJE/Nh+w== +builder-util-runtime@8.7.6: + version "8.7.6" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.6.tgz#4b43c96db2bd494ced7694bcd7674934655e8324" + integrity sha512-rj9AIY7CzLSuTOXpToiaQkruYh6UEQ+kYnd5UET22ch8MGClEtIZKXHG14qEiXEr2x4EOKDMxkcTa+9TYaE+ug== + dependencies: + debug "^4.3.2" + sax "^1.2.4" + +builder-util-runtime@8.7.7: + version "8.7.7" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.7.tgz#6c83cc3abe7a7a5c8b4ec8878f68adc828c07f0d" + integrity sha512-RUfoXzVrmFFI0K/Oft0CtP1LpTIOlBeLJatt5DePTI0KlxE156am4SGUpqtbbdqZNm++LkV9mX4olBDcXyGPow== + dependencies: + debug "^4.3.2" + sax "^1.2.4" + +builder-util@22.11.7: + version "22.11.7" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.11.7.tgz#ae9707afa6a31feafa13c274ac83b4fe28ef1467" + integrity sha512-ihqUe5ey82LM9qqQe0/oIcaSm9w+B9UjcsWJZxJliTBsbU+sErOpDFpHW+sim0veiTF/EIcGUh9HoduWw+l9FA== dependencies: "7zip-bin" "~5.1.1" - "@types/debug" "^4.1.6" + "@types/debug" "^4.1.5" "@types/fs-extra" "^9.0.11" - app-builder-bin "3.7.1" + app-builder-bin "3.5.13" bluebird-lst "^1.0.9" - builder-util-runtime "8.7.10" + builder-util-runtime "8.7.7" chalk "^4.1.1" debug "^4.3.2" fs-extra "^10.0.0" @@ -841,11 +830,6 @@ commander@^5.0.0: resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== -compare-version@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz" - integrity sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA= - concat-map@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" @@ -955,7 +939,7 @@ debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2: dependencies: ms "2.1.2" -debug@^2.6.8, debug@^2.6.9: +debug@^2.6.9: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -1043,14 +1027,14 @@ discontinuous-range@1.0.0: resolved "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz" integrity sha1-44Mx8IRLukm5qctxx3FYWqsbxlo= -dmg-builder@22.12.0: - version "22.12.0" - resolved "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.12.0.tgz" - integrity sha512-5MANoNVctpiN536BLNDQp/gDk2BLRe23LE+RbOSt3I8b65V6mtvekjNiyUU5M+/UAbAzCcOZcCcaV3jDBuapaw== +dmg-builder@22.11.7: + version "22.11.7" + resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.11.7.tgz#5956008c18d40ee72c0ea01ffea9590dbf51df89" + integrity sha512-+I+XfP2DODHB6PwFANgpH/WMzzCA5r5XoMvbFCIYjQjJpXlO0XnqQaamzFl2vh/Wz/Qt0d0lJMgRy8gKR3MGdQ== dependencies: - app-builder-lib "22.12.0" - builder-util "22.11.11" - builder-util-runtime "8.7.10" + app-builder-lib "22.11.7" + builder-util "22.11.7" + builder-util-runtime "8.7.6" fs-extra "^10.0.0" iconv-lite "^0.6.2" js-yaml "^4.1.0" @@ -1156,16 +1140,16 @@ ejs@^3.1.6: jake "^10.6.1" electron-builder@^22.11.7: - version "22.12.0" - resolved "https://registry.npmjs.org/electron-builder/-/electron-builder-22.12.0.tgz" - integrity sha512-X6YA0R6oYsS2iy+u0w3Sdm7u9rTo4JggD/jabKG34nZ0Hs5/iPAHBkcVvXqiFdMvnywbh1jm/aaf4PWW6XNMHw== - dependencies: - "@types/yargs" "^17.0.1" - app-builder-lib "22.12.0" - builder-util "22.11.11" - builder-util-runtime "8.7.10" + version "22.11.7" + resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.11.7.tgz#cd97a0d9f6e6d388112e66b4376de431cca4d596" + integrity sha512-yQExSLt7Hbz/P8lLkZDdE/OnJJ7NCX+uiQcV+XIH0TeEZcD87ZnSqBBzGUN5akySU4BXXlrVZKeUsXACWrm5Kw== + dependencies: + "@types/yargs" "^16.0.2" + app-builder-lib "22.11.7" + builder-util "22.11.7" + builder-util-runtime "8.7.7" chalk "^4.1.1" - dmg-builder "22.12.0" + dmg-builder "22.11.7" fs-extra "^10.0.0" is-ci "^3.0.0" lazy-val "^1.0.5" @@ -1190,18 +1174,6 @@ electron-notarize@^1.1.0: debug "^4.1.1" fs-extra "^9.0.1" -electron-osx-sign@^0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.5.0.tgz" - integrity sha512-icoRLHzFz/qxzDh/N4Pi2z4yVHurlsCAYQvsCSG7fCedJ4UJXBS6PoQyGH71IfcqKupcKeK7HX/NkyfG+v6vlQ== - dependencies: - bluebird "^3.5.0" - compare-version "^0.1.2" - debug "^2.6.8" - isbinaryfile "^3.0.2" - minimist "^1.2.0" - plist "^3.0.1" - electron-preferences@^2.3.1: version "2.3.2" resolved "https://registry.npmjs.org/electron-preferences/-/electron-preferences-2.3.2.tgz" @@ -1220,14 +1192,14 @@ electron-progressbar@^2.0.1: dependencies: extend "^3.0.1" -electron-publish@22.11.11: - version "22.11.11" - resolved "https://registry.npmjs.org/electron-publish/-/electron-publish-22.11.11.tgz" - integrity sha512-XINI2yz7DpForvLDENr1zfi6yW+O3ufeIgNCg/nkqiD3tBM44AokgY3aYURzsi93ZwFscoQkR2LhmHDvn30oAw== +electron-publish@22.11.7: + version "22.11.7" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.11.7.tgz#4126cbb08ccf082a2aa7fef89ee629b3a4b8ae9a" + integrity sha512-A4EhRRNBVz4SPzUlBrPO6BmuyDeI0pyprggPAV9rQ+SDVSnSB/WKPot9JwWMyArkGj3AUUTMNVT6hwZhMvhfqw== dependencies: "@types/fs-extra" "^9.0.11" - builder-util "22.11.11" - builder-util-runtime "8.7.10" + builder-util "22.11.7" + builder-util-runtime "8.7.7" chalk "^4.1.1" fs-extra "^10.0.0" lazy-val "^1.0.5" @@ -1247,10 +1219,10 @@ electron-updater@^4.3.9: lodash.isequal "^4.5.0" semver "^7.3.5" -electron@^13.2.3: - version "13.3.0" - resolved "https://registry.yarnpkg.com/electron/-/electron-13.3.0.tgz#5f4f245723dd50fcd2c3d386a1d66fe748af404f" - integrity sha512-d/BvOLDjI4i7yf9tqCuLL2fFGA2TrM/D9PyRpua+rJolG0qrwp/FohP02L0m+44kmPpofIo4l3NPwLmzyKKimA== +electron@13.2.3: + version "13.2.3" + resolved "https://registry.yarnpkg.com/electron/-/electron-13.2.3.tgz#a0fd80a011ba1549147777c9d72e881577904509" + integrity sha512-FzWhbKHjq7ZTpPQFaYiLPL64erC8/BOsu5NlNN9nQ6f7rIP8ygKlNAlQit3vbOcksQAwItDUCIw4sW0mcaRpCA== dependencies: "@electron/get" "^1.0.1" "@types/node" "^14.6.2" @@ -1937,13 +1909,6 @@ isarray@~1.0.0: resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= -isbinaryfile@^3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz" - integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== - dependencies: - buffer-alloc "^1.2.0" - isbinaryfile@^4.0.8: version "4.0.8" resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz"