From 9128c808568a32a1fb993cd43a27844cedc8fb8d Mon Sep 17 00:00:00 2001 From: 0t4u <61939142+0t4u@users.noreply.github.com> Date: Mon, 25 Jan 2021 17:40:34 +0800 Subject: [PATCH 01/14] feat: get ready for implementing chapter, barrage and voiceline functions Changed: - Added barrage, voiceline, chapters to the updater system - Added barrage. voiceline, chapters sources to SaratogaUtil - Added barrage, voiceline, chapters to the main Saratoga class - Changed: how update checking works --- src/Saratoga.js | 24 ++++++++++ src/store/SaratogaBarrages.js | 1 + src/store/SaratogaChapters.js | 1 + src/store/SaratogaStore.js | 78 +++++++++++++++++++++++++++++++- src/store/SaratogaVoicelines.js | 1 + src/updater/SaratogaUpdater.js | 64 +++++++++++++++++++++++--- src/updater/SaratogaValidator.js | 7 +-- src/util/SaratogaUtil.js | 34 +++++++++++++- 8 files changed, 197 insertions(+), 13 deletions(-) create mode 100644 src/store/SaratogaBarrages.js create mode 100644 src/store/SaratogaChapters.js create mode 100644 src/store/SaratogaVoicelines.js diff --git a/src/Saratoga.js b/src/Saratoga.js index 2a77b06..b8917d2 100644 --- a/src/Saratoga.js +++ b/src/Saratoga.js @@ -85,5 +85,29 @@ class Saratoga extends EventEmitter { if (!this.ready) return null; return this.store.equipments; } + /** + * Chapters related getters for this store + * @type {SaratogaChapters} + */ + get chapters() { + if (!this.ready) return null; + return this.store.chapters; + } + /** + * Voiceline related getters for this store + * @type {SaratogaVoicelines} + */ + get voicelines() { + if (!this.ready) return null; + return this.store.voicelines; + } + /** + * Barrage related getters for this store + * @type {SaratogaBarrages} + */ + get barrages() { + if (!this.ready) return null; + return this.store.barrages; + } } module.exports = Saratoga; diff --git a/src/store/SaratogaBarrages.js b/src/store/SaratogaBarrages.js new file mode 100644 index 0000000..0ffdd02 --- /dev/null +++ b/src/store/SaratogaBarrages.js @@ -0,0 +1 @@ +// TODO \ No newline at end of file diff --git a/src/store/SaratogaChapters.js b/src/store/SaratogaChapters.js new file mode 100644 index 0000000..0ffdd02 --- /dev/null +++ b/src/store/SaratogaChapters.js @@ -0,0 +1 @@ +// TODO \ No newline at end of file diff --git a/src/store/SaratogaStore.js b/src/store/SaratogaStore.js index 13f7be5..270a70e 100644 --- a/src/store/SaratogaStore.js +++ b/src/store/SaratogaStore.js @@ -28,6 +28,21 @@ class SaratogaStore { * @type {SaratogaEquipments} */ this.equipments = new SaratogaEquipments(this); + /** + * Chapters related getters for this store + * @type {SaratogaChapters} + */ + // this.chapters = new SaratogaChapters TODO + /** + * Voiceline related getters for this store + * @type {SaratogaVoicelines} + */ + // this.voicelines = new SaratogaVOicelines TODO + /** + * Barrage related getters for this store + * @type {SaratogaBarrages} + */ + // this.barrages = new SaratogaBarrages TODO /** * Updater Class for the local data for this store * @type {SaratogaUpdater} @@ -41,6 +56,9 @@ class SaratogaStore { Object.defineProperty(this, '_shipCache', { value: null, writable: true }); Object.defineProperty(this, '_equipCache', { value: null, writable: true }); + Object.defineProperty(this, '_chapterCache', { value: null, writable: true }); + Object.defineProperty(this, '_voicelineCache', { value: null, writable: true }); + Object.defineProperty(this, '_barrageCache', { value: null, writable: true }); this.updater.startUpCheck(); this.updateOnFirstStartUp() @@ -69,7 +87,7 @@ class SaratogaStore { rawShips = Object.values(rawShips); if (!rawShips.length) return; this.clearShipsCache(); - this._shipCache = new Fuse(rawShips, { keys: [ 'names.en', 'names.cn', 'names.jp', 'names.kr' ], threshold: 0.4 }); + this._shipCache = new Fuse(rawShips, { keys: [ 'names.en', 'names.cn', 'names.jp', 'names.kr', 'names.code' ], threshold: 0.4 }); } loadEquipmentsCache(rawEquips) { @@ -80,6 +98,28 @@ class SaratogaStore { this._equipCache = new Fuse(rawEquips, { keys: [ 'names.en', 'names.cn', 'names.jp', 'names.kr' ], threshold: 0.4 }); } + loadChapterCache(rawChapters) { + if (!rawChapters) return; + rawChapters = Object.values(Object.values(rawChapters)); + if (!rawChapters.length) return; + this.clearChapterCache(); + this._chapterCache = new Fuse(rawChapters, { keys: [ 'names.en', 'names.cn', 'names.jp', 'names.kr' ], threshold: 0.4 }); + } + + loadVoicelineCache(rawVoicelines) { + if (!rawVoicelines) return; + this.clearVoicelineCache(); + this._voicelineCache = rawVoicelines; + } + + loadBarrageCache(rawBarrages) { + if (!rawBarrages) return; + rawBarrages = Object.values(rawBarrages); + if (!rawBarrages.length) return; + this.clearBarrageCache(); + this._barrageCache = new Fuse(rawBarrages, { keys: [ 'id', 'name' ], threshold: 0.4 }); + } + clearShipsCache() { this._shipCache = null; } @@ -88,6 +128,18 @@ class SaratogaStore { this._equipCache = null; } + clearChapterCache() { + this._chapterCache = null; + } + + clearVoicelineCache() { + this._voicelineCache = null; + } + + clearBarrageCache() { + this._barrageCache = null; + } + updateShipsData(data) { return SaratogaUtil.writeFile(SaratogaUtil.shipFilePath(), typeof data === 'string' ? data : JSON.stringify(data)); } @@ -96,6 +148,18 @@ class SaratogaStore { return SaratogaUtil.writeFile(SaratogaUtil.equipFilePath(), typeof data === 'string' ? data : JSON.stringify(data)); } + updateChapterData(data) { + return SaratogaUtil.writeFile(SaratogaUtil.chapterFilePath(), typeof data === 'string' ? data : JSON.stringify(data)); + } + + updateVoicelineData(data) { + return SaratogaUtil.writeFile(SaratogaUtil.voicelineFilePath(), typeof data === 'string' ? data : JSON.stringify(data)); + } + + updateBarrageData(data) { + return SaratogaUtil.writeFile(SaratogaUtil.barrageFilePath(), typeof data === 'string' ? data : JSON.stringify(data)); + } + clearShipsData() { return SaratogaUtil.writeFile(SaratogaUtil.shipFilePath(), JSON.stringify({})); } @@ -103,5 +167,17 @@ class SaratogaStore { clearEquipmentsData() { return SaratogaUtil.writeFile(SaratogaUtil.equipFilePath(), JSON.stringify({})); } + + clearChapterData() { + return SaratogaUtil.writeFile(SaratogaUtil.chapterFilePath(), JSON.stringify({})); + } + + clearVoicelineData() { + return SaratogaUtil.writeFile(SaratogaUtil.voicelineFilePath(), JSON.stringify({})); + } + + clearBarrageData() { + return SaratogaUtil.writeFile(SaratogaUtil.barrageFilePath(), JSON.stringify({})); + } } module.exports = SaratogaStore; diff --git a/src/store/SaratogaVoicelines.js b/src/store/SaratogaVoicelines.js new file mode 100644 index 0000000..0ffdd02 --- /dev/null +++ b/src/store/SaratogaVoicelines.js @@ -0,0 +1 @@ +// TODO \ No newline at end of file diff --git a/src/updater/SaratogaUpdater.js b/src/updater/SaratogaUpdater.js index 427d52e..59e9bdb 100644 --- a/src/updater/SaratogaUpdater.js +++ b/src/updater/SaratogaUpdater.js @@ -46,7 +46,7 @@ class SaratogaUpdater { this.cronUpdate = setInterval(() => { this.checkForUpdate() .then((data) => { - if (data.shipUpdateAvailable || data.equipmentUpdateAvailable) this.saratoga.emit('updateAvailable', data); + if (/*data.shipUpdateAvailable || data.equipmentUpdateAvailable()*/data) this.saratoga.emit('updateAvailable', data); }) .catch((error) => this.saratoga.emit('error', error)); }, 3600000); @@ -60,6 +60,9 @@ class SaratogaUpdater { } this.store.loadShipsCache(JSON.parse(SaratogaUtil.readFileSync(SaratogaUtil.shipFilePath()))); this.store.loadEquipmentsCache(JSON.parse(SaratogaUtil.readFileSync(SaratogaUtil.equipFilePath()))); + this.store.loadChapterCache(JSON.parse(SaratogaUtil.readFileSync(SaratogaUtil.chapterFilePath()))); + this.store.loadVoicelineCache(JSON.parse(SaratogaUtil.readFileSync(SaratogaUtil.voicelineFilePath()))); + this.store.loadBarrageCache(JSON.parse(SaratogaUtil.readFileSync(SaratogaUtil.barrageFilePath()))); this.dataDirReady = true; } @@ -87,9 +90,10 @@ class SaratogaUpdater { async checkForUpdate() { const dataValidator = new SaratogaValidator(); await dataValidator.fetch(); - const shipUpdateAvailable = dataValidator.setType('ships').needsUpdate(); - const equipmentUpdateAvailable = dataValidator.setType('equipments').needsUpdate(); - return { shipUpdateAvailable, equipmentUpdateAvailable }; + //const shipUpdateAvailable = dataValidator.setType('ships').needsUpdate(); + //const equipmentUpdateAvailable = dataValidator.setType('equipments').needsUpdate(); + //return { shipUpdateAvailable, equipmentUpdateAvailable }; + return dataValidator.needsUpdate(); } /** @@ -103,16 +107,23 @@ class SaratogaUpdater { if (dataValidator.noLocalData()) { await this.updateStoredShips(); await this.updateStoredEquipments(); + await this.updateStoredChapters(); + await this.updateStoredVoicelines(); + await this.updateStoredBarrages(); await dataValidator.updateVersionFile(); } else { - if (dataValidator.setType('ships').needsUpdate()) { + if (dataValidator/*.setType('ships')*/.needsUpdate()) { await this.updateStoredShips(); + await this.updateStoredEquipments(); + await this.updateStoredChapters(); + await this.updateStoredVoicelines(); + await this.updateStoredBarrages(); await dataValidator.updateVersionFile(); } - if (dataValidator.setType('equipments').needsUpdate()) { + /*if (dataValidator.setType('equipments').needsUpdate()) { await this.updateStoredEquipments(); await dataValidator.updateVersionFile(); - } + }*/ } } @@ -136,6 +147,21 @@ class SaratogaUpdater { await this.store.updateEquipmentsData(await this.fetchEquipmentsFromRemote()); } + async updateStoredChapters() { + await this.store.clearChapterData(); + await this.store.updateChapterData(await this.fetchChaptersFromRemote()); + } + + async updateStoredVoicelines() { + await this.store.clearVoicelineData(); + await this.store.updateVoicelineData(await this.fetchVoicelinesFromRemote()); + } + + async updateStoredBarrages() { + await this.store.clearBarrageData(); + await this.store.updateBarrageData(await this.fetchBarragesFromRemote()); + } + fetchShipsFromRemote() { return Fetch(SaratogaUtil.latestShipDataLink()).then(data => data.text()); } @@ -144,6 +170,18 @@ class SaratogaUpdater { return Fetch(SaratogaUtil.latestEquipmentDataLink()).then(data => data.text()); } + fetchChaptersFromRemote() { + return Fetch(SaratogaUtil.latestChapterDataLink()).then(data => data.text()); + } + + fetchVoicelinesFromRemote() { + return Fetch(SaratogaUtil.latestVoicelineDataLink()).then(data => data.text()); + } + + fetchBarragesFromRemote() { + return Fetch(SaratogaUtil.latestBarrageDataLink()).then(data => data.text()); + } + fetchShipsFromLocal() { return SaratogaUtil.readFile(SaratogaUtil.shipFilePath()).then(data => JSON.parse(data)); } @@ -151,5 +189,17 @@ class SaratogaUpdater { fetchEquipmentsFromLocal() { return SaratogaUtil.readFile(SaratogaUtil.equipFilePath()).then(data => JSON.parse(data)); } + + fetchChaptersFromLocal() { + return SaratogaUtil.readFile(SaratogaUtil.chapterFilePath()).then(data => JSON.parse(data)); + } + + fetchVoicelinesFromLocal() { + return SaratogaUtil.readFile(SaratogaUtil.voicelineFilePath()).then(data => JSON.parse(data)); + } + + fetchBarragesFromLocal() { + return SaratogaUtil.readFile(SaratogaUtil.barrageFilePath()).then(data => JSON.parse(data)); + } } module.exports = SaratogaUpdater; diff --git a/src/updater/SaratogaValidator.js b/src/updater/SaratogaValidator.js index c154301..f898211 100644 --- a/src/updater/SaratogaValidator.js +++ b/src/updater/SaratogaValidator.js @@ -9,7 +9,7 @@ class SaratogaValidator { this.remote = {}; } - setType(name) { + /*setType(name) { this.type = name; return this; } @@ -33,7 +33,7 @@ class SaratogaValidator { for (const { type, version } of this.parseShipAndEquipmentVersion('local')) data.downloaded[type] = version; for (const { type, version } of this.parseShipAndEquipmentVersion('remote')) data.remote[type] = version; return data; - } + }*/ async fetch() { if (!this.fetched) { @@ -48,7 +48,8 @@ class SaratogaValidator { } needsUpdate() { - return !this.local[this.type] || this.local[this.type]['version-number'] !== this.remote[this.type]['version-number'] || this.local[this.type]['last-data-refresh-date'] !== this.remote[this.type]['last-data-refresh-date']; + //return !this.local[this.type] || this.local[this.type]['version-number'] !== this.remote[this.type]['version-number'] || this.local[this.type]['last-data-refresh-date'] !== this.remote[this.type]['last-data-refresh-date']; + return this.local === this.remote ? true : false; } updateVersionFile() { diff --git a/src/util/SaratogaUtil.js b/src/util/SaratogaUtil.js index 98243bb..7bb82e9 100644 --- a/src/util/SaratogaUtil.js +++ b/src/util/SaratogaUtil.js @@ -11,12 +11,18 @@ const promise = { const remoteLinks = { version: 'https://raw.githubusercontent.com/AzurAPI/azurapi-js-setup/master/version-info.json', ships: 'https://raw.githubusercontent.com/AzurAPI/azurapi-js-setup/master/ships.json', - equipment: 'https://raw.githubusercontent.com/AzurAPI/azurapi-js-setup/master/equipments.json' + equipment: 'https://raw.githubusercontent.com/AzurAPI/azurapi-js-setup/master/equipments.json', + chapter: 'https://raw.githubusercontent.com/AzurAPI/azurapi-js-setup/master/chapters.json', + voiceline: 'https://raw.githubusercontent.com/AzurAPI/azurapi-js-setup/master/voice_lines.json', + barrage: 'https://raw.githubusercontent.com/AzurAPI/azurapi-js-setup/master/barrage.json' }; const dataFilePath = { ship: join(__dirname, '../data', 'ship.json'), - equipment: join(__dirname, '../data', 'equipment.json') + equipment: join(__dirname, '../data', 'equipment.json'), + chapter: join(__dirname, '../data', 'chapter.json'), + voiceline: join(__dirname, '../data', 'voiceline.json'), + barrage: join(__dirname, '../data', 'barrage.json') }; const versionFilePath = join(__dirname, '../data', 'version.json'); @@ -43,6 +49,18 @@ class SaratogaUtil { return dataFilePath.equipment; } + static chapterFilePath() { + return dataFilePath.chapter; + } + + static voicelineFilePath() { + return dataFilePath.voiceline; + } + + static barrageFilePath() { + return dataFilePath.barrage; + } + static latestVersionDataLink() { return remoteLinks.version; } @@ -55,6 +73,18 @@ class SaratogaUtil { return remoteLinks.equipment; } + static latestChapterDataLink() { + return remoteLinks.chapter; + } + + static latestVoicelineDataLink() { + return remoteLinks.voiceline; + } + + static latestBarrageDataLink() { + return remoteLinks.barrage; + } + static existSync(path) { return existsSync(path); } From 51d67292cffae20d713f8e3ca3cf16ad29be4414 Mon Sep 17 00:00:00 2001 From: 0t4u <61939142+0t4u@users.noreply.github.com> Date: Mon, 25 Jan 2021 17:45:15 +0800 Subject: [PATCH 02/14] minor: rebuild docs Changed: - Regenerated docma docs - Minor info addition --- docs/js/docma-web.js | 14 +++++++------- index.js | 15 +++++++++++++++ 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/docs/js/docma-web.js b/docs/js/docma-web.js index 084a5ee..6ca5cc6 100644 --- a/docs/js/docma-web.js +++ b/docs/js/docma-web.js @@ -6,7 +6,7 @@ * http://dustjs.com/ * Copyright (c) 2017 Aleksander Williams; Released under the MIT License */ !function(a,b){"function"==typeof define&&define.amd&&define.amd.dust===!0?define(["dust.core"],b):"object"==typeof exports?(module.exports=b(require("dustjs-linkedin")),module.exports.registerWith=b):b(a.dust)}(this,function(dust){function a(a,b,c){c=c||"INFO",a=a?"{@"+a+"}: ":"",dust.log(a+b,c)}function b(b){k[b]||(a(b,"Deprecation warning: "+b+" is deprecated and will be removed in a future version of dustjs-helpers","WARN"),a(null,"For help and a deprecation timeline, see https://github.com/linkedin/dustjs-helpers/wiki/Deprecated-Features#"+b.replace(/\W+/g,""),"WARN"),k[b]=!0)}function c(a){return a.stack.tail&&a.stack.tail.head&&"undefined"!=typeof a.stack.tail.head.__select__}function d(a){return c(a)&&a.get("__select__")}function e(a,b){var c,d=a.stack.head,e=a.rebase();a.stack&&a.stack.tail&&(e.stack=a.stack.tail);var f={isPending:!1,isResolved:!1,isDeferredComplete:!1,deferreds:[]};for(c in b)f[c]=b[c];return e.push({__select__:f}).push(d,a.stack.index,a.stack.of)}function f(a){var b,c;if(a.isDeferredPending=!0,a.deferreds.length)for(a.isDeferredComplete=!0,b=0,c=a.deferreds.length;c>b;b++)a.deferreds[b]();a.isDeferredPending=!1}function g(a,b){return"function"==typeof b?b.toString().replace(/(^\s+|\s+$)/gm,"").replace(/\n/gm,"").replace(/,\s*/gm,", ").replace(/\)\{/gm,") {"):b}function h(a,b){return function(c,d,e,f){return i(c,d,e,f,a,b)}}function i(b,c,e,f,g,h){var i,k,l,m,n=e.block,o=e["else"],p=d(c)||{};if(p.isResolved&&!p.isDeferredPending)return b;if(f.hasOwnProperty("key"))k=f.key;else{if(!p.hasOwnProperty("key"))return a(g,"No key specified","WARN"),b;k=p.key}return m=f.type||p.type,k=j(c.resolve(k),m),l=j(c.resolve(f.value),m),h(k,l)?(p.isPending||(i=!0,p.isPending=!0),n&&(b=b.render(n,c)),i&&(p.isResolved=!0)):o&&(b=b.render(o,c)),b}function j(a,b){switch(b&&(b=b.toLowerCase()),b){case"number":return+a;case"string":return String(a);case"boolean":return a="false"===a?!1:a,Boolean(a);case"date":return new Date(a)}return a}var k={},l={tap:function(a,c,d){return b("tap"),d.resolve(a)},sep:function(a,b,c){var d=c.block;return b.stack.index===b.stack.of-1?a:d?d(a,b):a},first:function(a,b,c){return 0===b.stack.index?c.block(a,b):a},last:function(a,b,c){return b.stack.index===b.stack.of-1?c.block(a,b):a},contextDump:function(b,c,d,e){var f,h,i=c.resolve(e.to),j=c.resolve(e.key);switch(j){case"full":f=c.stack;break;default:f=c.stack.head}switch(h=JSON.stringify(f,g,2),i){case"console":a("contextDump",h);break;default:h=h.replace(/a}),lte:h("lte",function(a,b){return b>=a}),gt:h("gt",function(a,b){return a>b}),gte:h("gte",function(a,b){return a>=b}),any:function(b,c,e){var f=d(c);return f?f.isDeferredComplete?a("any","Must not be nested inside {@any} or {@none} block","ERROR"):b=b.map(function(a){f.deferreds.push(function(){f.isResolved&&(a=a.render(e.block,c)),a.end()})}):a("any","Must be used inside a {@select} block","ERROR"),b},none:function(b,c,e){var f=d(c);return f?f.isDeferredComplete?a("none","Must not be nested inside {@any} or {@none} block","ERROR"):b=b.map(function(a){f.deferreds.push(function(){f.isResolved||(a=a.render(e.block,c)),a.end()})}):a("none","Must be used inside a {@select} block","ERROR"),b},size:function(a,b,c,d){var e,f,g=d.key;if(g=b.resolve(d.key),g&&g!==!0)if(dust.isArray(g))e=g.length;else if(!isNaN(parseFloat(g))&&isFinite(g))e=g;else if("object"==typeof g){e=0;for(f in g)g.hasOwnProperty(f)&&e++}else e=(g+"").length;else e=0;return a.write(e)}};for(var m in l)dust.helpers[m]=l[m];return dust}); -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.page=e()}(this,function(){"use strict";function t(t){return r(a(t))}var p=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},o=c,e=a,n=r,i=h,y=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^()])+)\\))?|\\(((?:\\\\.|[^()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(t){for(var e,n=[],i=0,o=0,r="";null!=(e=y.exec(t));){var a=e[0],s=e[1],h=e.index;if(r+=t.slice(o,h),o=h+a.length,s)r+=s[1];else{r&&(n.push(r),r="");var c=e[2],p=e[3],u=e[4],f=e[5],l=e[6],d=e[7],g="+"===l||"*"===l,v="?"===l||"*"===l,m=c||"/",w=u||f||(d?".*":"[^"+m+"]+?");n.push({name:p||i++,prefix:c||"",delimiter:m,optional:v,repeat:g,pattern:w.replace(/([=!:$\/()])/g,"\\$1")})}}return o]+>)?~?(.*)/,"$2").replace(/^"[^"]+"\.?~?([^"]+)$/,"$1").replace(/^(module\.)?exports\./,"").replace(/^module:/,""))}function getMetaCodeName(e){return cleanName(Utils.notate(e,"meta.code.name")||"")}function identity(e){return e}function hasConstructorTag(e){return/\*\s+@construct(s|or)\b/.test(e.comment)}Utils.type=function(e){return Object.prototype.toString.call(e).match(/\s(\w+)/i)[1].toLowerCase()},Utils.notate=function(e,t){if("object"==typeof e){var n,r=Array.isArray(t)?t:t.split("."),i=r[0];if(i)return n=e[i],1"+e+"

"}).join("")}).join("")},Utils.parseLinks=function(e,l){if("string"!=typeof e)return"";l=l||{};var t=e.replace(/\{@link +([^}]*?)\}/g,function(e,t){var n,r,i=t.split("|");return 1===i.length?n=r=i[0].trim():(n=i[0].trim(),r=i[1].trim()),!1===/[/?&=]/.test(n)&&"#"!==n[0]&&(n="#"+n),'"+r+""});return Utils.parseTicks(t)},Utils.parse=function(e,t){return t=t||{},e=Utils.trimLeft(e),e=Utils.parseNewLines(e,t),e=Utils.parseTicks(e),Utils.parseLinks(e,t)},Utils.normalizeTabs=function(e){if("string"!=typeof e)return"";var r,t=e.match(/^\s*/gm),n=1/0;if(t.forEach(function(e,t){e=e.replace(/\t/g," "),0<"'`\n\r]/g,"").toLowerCase()},Utils.getCodeFileInfo=function(e){return{filename:Utils.notate(e,"meta.filename"),lineno:Utils.notate(e,"meta.lineno"),path:Utils.notate(e,"meta.path")}},Utils.getSymbolLink=function(e,t){if("string"!=typeof t)return t.$docmaLink;var n=Utils.getSymbolByName(e,t);return n?n.$docmaLink:""};var reEndBrackets=/\[\]$/,reTypeParts=/^([^<]+?)(?:\.)?(?:<\(([^>)]+)\)>)?(?:<([^>]+)>)?(\[\])?$/;function _link(e,t,n){var r,i=reEndBrackets.test(t)?"[]":"",l=(t||"").replace(reEndBrackets,""),o=n||{},a="";return"internal"!==o.linkType&&(r=Utils._getTypeExternalLink(l))&&(a=' target="_blank" rel="noopener noreferrer"'),r||"external"===o.linkType||(r=Utils.getSymbolLink(e,l)),r&&(t='"+(o.displayText||l)+i+""),t}function serializer(r){var i=[],l=[];return function(e,t){if(2e3|')}).join(', '))&&"<"+l+">",_link(t,r[1],n)+l+i},Utils.getTypes=function(t,e,n){var r=n||{},i="class"===e.kind?["class"]:Utils.notate(e,"type.names")||[];return i=i.map(function(e){return r.links&&(e=Utils._parseAnchorLinks(t,e,{linkType:r.links})),e}).join('|'),e.isEnum?"enum<"+i+">":i},Utils.getReturnTypes=function(r,e,t){var n=e.returns;if(!Array.isArray(n))return"void";var i=t||{},l=n.reduce(function(e,t){var n=Utils.notate(t,"type.names")||[];return i.links&&(n=n.map(function(e){return Utils._parseAnchorLinks(r,e,{linkType:i.links})})),e.concat(n)},[]);return 0|'):"void"},Utils.getCodeTags=function(n,e,t){var r=t||{};return e.map(function(e){if(r.links){var t=Utils._parseAnchorLinks(n,e,{linkType:r.links});return Utils._wrapCode(t,!1)}return Utils._wrapCode(e,!0)}).join(r.demileter||",")},Utils.getFormattedTypeList=function(n,e,t){if(!Array.isArray(e)||0===e.length)return"";var r=t||{},i=''+(r.delimeter||"|")+"",l="boolean"!=typeof r.descriptions||r.descriptions,o=r.descDelimeter||"  —  ",a="",s=e.map(function(e){return l&&(a=(a=Utils.parse(e.description||"",{keepIfSingle:!0}))&&o+a),e.type?(e.type.names||[]).map(function(e){if(r.links){var t=Utils._parseAnchorLinks(n,e,{linkType:r.links});return Utils._wrapCode(t,!1)}return Utils._wrapCode(e,!0)}).join(i)+a:a?"— "+a:""});return 1
  • "+s.join("
  • ")+"
  • ":s},Utils.getEmittedEvents=function(n,e,t){if(!e||0===e.length)return"";var r,i,l=t||{},o=l.delimeter||", ";return(e||[]).map(function(e){if(r=e.split(/\s*[\s-—]\s*/g),i=(r[0]||"").trim(),l.links){var t=Utils._parseAnchorLinks(n,i,{linkType:l.links});return Utils._wrapCode(t,!1)}return Utils._wrapCode(i,!0)}).join(o)},Utils._find=function(e,t){if(!e||!t)return null;var n,r,i=null;for(n=0;n/g,">")),e=""+e+"",n?"
    "+e+"
    ":e)},Utils._tokenize=function(e,t){"function"!=typeof t&&(t=identity);if(e.indexOf("```")<0)return[t(e,!1)];var n,r="```".length,i="",l="",o=[],a=!1;for(n=0;nr&&(i=i.slice(-r)),"```"===i&&(l=(a=!a)?(o.push(t(l.slice(0,-r),!1)),i):(o.push(t(l,!0)),""));return o},Utils._ensureSlash=function(e,t,n){return t?(e&&"/"!==t.slice(0,1)&&(t="/"+t),n&&"/"!==t.slice(-1)&&(t+="/"),t):e||n?"/":""},Utils._safeStringify=function(t,e,n){try{return JSON.stringify(t,serializer(e),n)}catch(e){return String(t)}},Utils.DOM={};var ATTR_BODY_STYLE="data-body-style";Utils.DOM.getOffset=function(e){var t="object"==typeof e?e:document.getElementById(e);if(t){var n=t.getBoundingClientRect();if(n.width||n.height||t.getClientRects().length){var r=document.documentElement;return{top:n.top+window.pageYOffset-r.clientTop,left:n.left+window.pageXOffset-r.clientLeft}}}},Utils.DOM.scrollTo=function(e){var t=document.documentElement||document.body;if(e=decodeHash(e||window.location.hash||"")){var n=document.getElementById(e);if(n){var r=Utils.DOM.getOffset(n);r&&(t.scrollTop=r.top)}}else t.scrollTop=0},Utils.DOM._createChild=function(e,t,n){n=n||{};var r=document.createElement(t||"div");return Object.keys(n).forEach(function(e){r[e]=n[e]}),e.appendChild(r),r},Utils.DOM._removePrevBodyStyles=function(){for(var e=document.getElementsByTagName("head")[0].querySelectorAll("["+ATTR_BODY_STYLE+"]");0]+>)?~?(.*)/,"$2").replace(/^"[^"]+"\.?~?([^"]+)$/,"$1").replace(/^(module\.)?exports\./,"").replace(/^module:/,""))}function getMetaCodeName(e){return cleanName(Utils.notate(e,"meta.code.name")||"")}function identity(e){return e}function hasConstructorTag(e){return/\*\s+@construct(s|or)\b/.test(e.comment)}Utils.type=function(e){return Object.prototype.toString.call(e).match(/\s(\w+)/i)[1].toLowerCase()},Utils.notate=function(e,t){if("object"==typeof e){var n=Array.isArray(t)?t:t.split("."),t=n[0];if(t)return t=e[t],1"+e+"

    "}).join("")}).join("")},Utils.parseLinks=function(e,i){if("string"!=typeof e)return"";i=i||{};e=e.replace(/\{@link +([^}]*?)\}/g,function(e,t){var n,r,t=t.split("|");return 1===t.length?n=r=t[0].trim():(n=t[0].trim(),r=t[1].trim()),'"+r+""});return Utils.parseTicks(e)},Utils.parse=function(e,t){return t=t||{},e=Utils.trimLeft(e),e=Utils.parseNewLines(e,t),e=Utils.parseTicks(e),Utils.parseLinks(e,t)},Utils.normalizeTabs=function(e){if("string"!=typeof e)return"";var r,t=e.match(/^\s*/gm),n=1/0;return t.forEach(function(e,t){e=e.replace(/\t/g," "),0<"'`\n\r]/g,"").toLowerCase()},Utils.getCodeFileInfo=function(e){return{filename:Utils.notate(e,"meta.filename"),lineno:Utils.notate(e,"meta.lineno"),path:Utils.notate(e,"meta.path")}},Utils.getSymbolLink=function(e,t){if("string"!=typeof t)return t.$docmaLink;t=Utils.getSymbolByName(e,t);return t?t.$docmaLink:""};var reEndBrackets=/\[\]$/,reTypeParts=/^([^<]+?)(?:\.)?(?:<\(([^>)]+)\)>)?(?:<([^>]+)>)?(\[\])?$/;function _link(e,t,n){var r,i=reEndBrackets.test(t)?"[]":"",l=(t||"").replace(reEndBrackets,""),o=n||{},n="";return"internal"!==o.linkType&&(r=Utils._getTypeExternalLink(l))&&(n=' target="_blank" rel="noopener noreferrer"'),t=(r=!r&&"external"!==o.linkType?Utils.getSymbolLink(e,l):r)?'"+(o.displayText||l)+i+"":t}function serializer(r){var i=[],l=[];return function(e,t){return 2e3|')}).join(', '))&&"<"+e+">",_link(t,r[1],n)+e+i},Utils.getTypes=function(t,e,n){var r=n||{},n=(n="class"===e.kind?["class"]:Utils.notate(e,"type.names")||[]).map(function(e){return e=r.links?Utils._parseAnchorLinks(t,e,{linkType:r.links}):e}).join('|');return e.isEnum?"enum<"+n+">":n},Utils.getReturnTypes=function(n,e,t){e=e.returns;if(!Array.isArray(e))return"void";var r=t||{},e=e.reduce(function(e,t){t=Utils.notate(t,"type.names")||[];return r.links&&(t=t.map(function(e){return Utils._parseAnchorLinks(n,e,{linkType:r.links})})),e.concat(t)},[]);return 0|'):"void"},Utils.getCodeTags=function(n,e,t){var r=t||{};return e.map(function(e){if(r.links){var t=Utils._parseAnchorLinks(n,e,{linkType:r.links});return Utils._wrapCode(t,!1)}return Utils._wrapCode(e,!0)}).join(r.demileter||",")},Utils.getFormattedTypeList=function(n,e,t){if(!Array.isArray(e)||0===e.length)return"";var r=t||{},i=''+(r.delimeter||"|")+"",l="boolean"!=typeof r.descriptions||r.descriptions,o=r.descDelimeter||"  —  ",a="",e=e.map(function(e){return l&&(a=(a=Utils.parse(e.description||"",{keepIfSingle:!0}))&&o+a),e.type?(e.type.names||[]).map(function(e){if(r.links){var t=Utils._parseAnchorLinks(n,e,{linkType:r.links});return Utils._wrapCode(t,!1)}return Utils._wrapCode(e,!0)}).join(i)+a:a?"— "+a:""});return 1
  • "+e.join("
  • ")+"
  • ":e},Utils.getEmittedEvents=function(t,e,n){if(!e||0===e.length)return"";var r,i=n||{},n=i.delimeter||", ";return(e||[]).map(function(e){if(r=e.split(/\s*[\s-—]\s*/g),r=(r[0]||"").trim(),i.links){e=Utils._parseAnchorLinks(t,r,{linkType:i.links});return Utils._wrapCode(e,!1)}return Utils._wrapCode(r,!0)}).join(n)},Utils._find=function(e,t){if(!e||!t)return null;for(var n,r=null,i=0;i/g,">"):e)+"",n?"
    "+e+"
    ":e)},Utils._tokenize=function(e,t){"function"!=typeof t&&(t=identity);if(e.indexOf("```")<0)return[t(e,!1)];for(var n="```".length,r="",i="",l=[],o=!1,a=0;an?r.slice(-n):r)&&(i=(o=!o)?(l.push(t(i.slice(0,-n),!1)),r):(l.push(t(i,!0)),""));return l},Utils._ensureSlash=function(e,t,n){return t?(e&&"/"!==t.slice(0,1)&&(t="/"+t),n&&"/"!==t.slice(-1)&&(t+="/"),t):e||n?"/":""},Utils._safeStringify=function(t,e,n){try{return JSON.stringify(t,serializer(e),n)}catch(e){return String(t)}},Utils.DOM={};var ATTR_BODY_STYLE="data-body-style";Utils.DOM.getOffset=function(e){var t="object"==typeof e?e:document.getElementById(e);if(t){e=t.getBoundingClientRect();if(e.width||e.height||t.getClientRects().length){t=document.documentElement;return{top:e.top+window.pageYOffset-t.clientTop,left:e.left+window.pageXOffset-t.clientLeft}}}},Utils.DOM.scrollTo=function(e){var t=document.documentElement||document.body;(e=decodeHash(e||window.location.hash||""))?!(e=document.getElementById(e))||(e=Utils.DOM.getOffset(e))&&(t.scrollTop=e.top):t.scrollTop=0},Utils.DOM._createChild=function(e,t,n){n=n||{};var r=document.createElement(t||"div");return Object.keys(n).forEach(function(e){r[e]=n[e]}),e.appendChild(r),r},Utils.DOM._removePrevBodyStyles=function(){for(var e=document.getElementsByTagName("head")[0].querySelectorAll("["+ATTR_BODY_STYLE+"]");0Saratoga, the starting point of this API

    ","kind":"class","name":"Saratoga","augments":["EventEmitter"],"longname":"Saratoga","scope":"global","$longname":"Saratoga","$kind":"class","$docmaLink":"?api#Saratoga","$members":[{"comment":"/**\n * Azur Lane's Equipment related getter methods\n * @type {SaratogaEquipments}\n */","meta":{"range":[2293,2393],"filename":"Saratoga.js","lineno":84,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src","code":{"id":"astnode100000115","name":"Saratoga#equipments","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Azur Lane's Equipment related getter methods

    ","type":{"names":["SaratogaEquipments"]},"name":"equipments","longname":"Saratoga#equipments","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#equipments","$kind":"property","$docmaLink":"?api#Saratoga#equipments"},{"comment":"/**\n * If Saratoga is ready to operate\n * @type {Boolean}\n */","meta":{"range":[1910,1997],"filename":"Saratoga.js","lineno":67,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src","code":{"id":"astnode100000080","name":"Saratoga#ready","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    If Saratoga is ready to operate

    ","type":{"names":["Boolean"]},"name":"ready","longname":"Saratoga#ready","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#ready","$kind":"property","$docmaLink":"?api#Saratoga#ready"},{"comment":"/**\n * Azur Lane's Ship related getter methods\n * @type {SaratogaShips}\n */","meta":{"range":[2095,2185],"filename":"Saratoga.js","lineno":75,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src","code":{"id":"astnode100000098","name":"Saratoga#ships","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Azur Lane's Ship related getter methods

    ","type":{"names":["SaratogaShips"]},"name":"ships","longname":"Saratoga#ships","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#ships","$kind":"property","$docmaLink":"?api#Saratoga#ships"},{"comment":"/**\n * Contains methods and props for managing cached data\n * @type {SaratogaStore}\n */","meta":{"range":[567,603],"filename":"Saratoga.js","lineno":19,"columnno":8,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src","code":{"id":"astnode100000053","name":"this.store","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Contains methods and props for managing cached data

    ","type":{"names":["SaratogaStore"]},"name":"store","longname":"Saratoga#store","kind":"member","memberof":"Saratoga","scope":"instance","$longname":"Saratoga#store","$kind":"property","$docmaLink":"?api#Saratoga#store"},{"comment":"/**\n * Contains methods for updating Saratoga's local data & cache\n * @type {SaratogaUpdater}\n */","meta":{"range":[1770,1826],"filename":"Saratoga.js","lineno":59,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src","code":{"id":"astnode100000070","name":"Saratoga#updater","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Contains methods for updating Saratoga's local data & cache

    ","type":{"names":["SaratogaUpdater"]},"name":"updater","longname":"Saratoga#updater","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#updater","$kind":"property","$docmaLink":"?api#Saratoga#updater"},{"comment":"/**\n * Emitted when there is a debug data\n * @event Saratoga#debug\n * @param {string} message Debug message\n * @memberof Saratoga\n */","meta":{"filename":"Saratoga.js","lineno":23,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src","code":{}},"description":"

    Emitted when there is a debug data

    ","kind":"event","name":"debug","params":[{"type":{"names":["string"]},"description":"

    Debug message

    ","name":"message"}],"memberof":"Saratoga","longname":"Saratoga#event:debug","scope":"instance","$longname":"Saratoga#event:debug","$kind":"event","$docmaLink":"?api#Saratoga#event:debug"},{"comment":"/**\n * Emitted when there is a pesky error\n * @event Saratoga#error\n * @param {Error} error The error encountered.\n * @memberof Saratoga\n * @example\n * Saratoga.on('error', console.error);\n */","meta":{"filename":"Saratoga.js","lineno":29,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src","code":{}},"description":"

    Emitted when there is a pesky error

    ","kind":"event","name":"error","params":[{"type":{"names":["Error"]},"description":"

    The error encountered.

    ","name":"error"}],"memberof":"Saratoga","examples":["Saratoga.on('error', console.error);"],"longname":"Saratoga#event:error","scope":"instance","$longname":"Saratoga#event:error","$kind":"event","$docmaLink":"?api#Saratoga#event:error"},{"comment":"/**\n * Emitted when Saratoga is ready\n * @event Saratoga#ready\n * @memberof Saratoga\n */","meta":{"filename":"Saratoga.js","lineno":49,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src","code":{}},"description":"

    Emitted when Saratoga is ready

    ","kind":"event","name":"ready","memberof":"Saratoga","longname":"Saratoga#event:ready","scope":"instance","$longname":"Saratoga#event:ready","$kind":"event","$docmaLink":"?api#Saratoga#event:ready"},{"comment":"/**\n * Emitted when there is an update available for local data. Only available when Saratoga is initialized with notifyForNewUpdates set to true\n * @event Saratoga#updateAvailable\n * @param {Object} data What data needs updating\n * @memberof Saratoga\n * @example\n * Saratoga.on('updateAvailable', (data) => {\n * if (data.shipUpdateAvailable || data.equipmentUpdateAvailable) {\n * // handle update\n * }\n * })\n */","meta":{"filename":"Saratoga.js","lineno":37,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src","code":{}},"description":"

    Emitted when there is an update available for local data. Only available when Saratoga is initialized with notifyForNewUpdates set to true

    ","kind":"event","name":"updateAvailable","params":[{"type":{"names":["Object"]},"description":"

    What data needs updating

    ","name":"data"}],"memberof":"Saratoga","examples":["Saratoga.on('updateAvailable', (data) => {\n if (data.shipUpdateAvailable || data.equipmentUpdateAvailable) {\n // handle update\n }\n})"],"longname":"Saratoga#event:updateAvailable","scope":"instance","$longname":"Saratoga#event:updateAvailable","$kind":"event","$docmaLink":"?api#Saratoga#event:updateAvailable"}],"$constructor":{"comment":"/**\n * @param {Object} options Object with a single parameter, which is notifyForNewUpdates, which is a boolean\n */","meta":{"range":[366,679],"filename":"Saratoga.js","lineno":13,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src","code":{"id":"astnode100000040","name":"Saratoga","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"params":[{"type":{"names":["Object"]},"description":"

    Object with a single parameter, which is notifyForNewUpdates, which is a boolean

    ","name":"options"}],"name":"Saratoga","longname":"Saratoga","kind":"class","scope":"global","$longname":"Saratoga","$kind":"constructor","$docmaLink":"?api#Saratoga"}},{"comment":"/**\n * Equipment related getters for Saratoga\n * @class SaratogaEquipments\n */","meta":{"filename":"SaratogaEquipments.js","lineno":1,"columnno":0,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\store","code":{}},"description":"

    Equipment related getters for Saratoga

    ","kind":"class","name":"SaratogaEquipments","longname":"SaratogaEquipments","scope":"global","$longname":"SaratogaEquipments","$kind":"class","$docmaLink":"?api#SaratogaEquipments","$members":[{"comment":"/**\n * Lists the equipments by category\n * @param {string} category name of the category you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[751,893],"filename":"SaratogaEquipments.js","lineno":29,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\store","code":{"id":"astnode100000196","name":"SaratogaEquipments#getAllByCategory","type":"MethodDefinition","paramnames":["category"]},"vars":{"":null}},"description":"

    Lists the equipments by category

    ","params":[{"type":{"names":["string"]},"description":"

    name of the category you want to search for

    ","name":"category"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByCategory","longname":"SaratogaEquipments#getAllByCategory","kind":"function","scope":"instance","$longname":"SaratogaEquipments#getAllByCategory","$kind":"method","$docmaLink":"?api#SaratogaEquipments#getAllByCategory"},{"comment":"/**\n * Lists the equipments by nationality\n * @param {string} nationality naitionality name of the equipments you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[1130,1284],"filename":"SaratogaEquipments.js","lineno":40,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\store","code":{"id":"astnode100000222","name":"SaratogaEquipments#getAllByNationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists the equipments by nationality

    ","params":[{"type":{"names":["string"]},"description":"

    naitionality name of the equipments you want to search for

    ","name":"nationality"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByNationality","longname":"SaratogaEquipments#getAllByNationality","kind":"function","scope":"instance","$longname":"SaratogaEquipments#getAllByNationality","$kind":"method","$docmaLink":"?api#SaratogaEquipments#getAllByNationality"},{"comment":"/**\n * Searches for a specific equipment. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the equipment you want to search for\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaEquipments\n * @returns {Equipment | null}\n */","meta":{"range":[1591,1835],"filename":"SaratogaEquipments.js","lineno":52,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\store","code":{"id":"astnode100000248","name":"SaratogaEquipments#searchByEquipmentName","type":"MethodDefinition","paramnames":["name","limit"]},"vars":{"":null}},"description":"

    Searches for a specific equipment. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the equipment you want to search for

    ","name":"name"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Equipment","null"]}}],"name":"searchByEquipmentName","longname":"SaratogaEquipments#searchByEquipmentName","kind":"function","scope":"instance","$longname":"SaratogaEquipments#searchByEquipmentName","$kind":"method","$docmaLink":"?api#SaratogaEquipments#searchByEquipmentName"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[213,321],"filename":"SaratogaEquipments.js","lineno":9,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\store","code":{"id":"astnode100000143","name":"SaratogaEquipments","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaEquipments","longname":"SaratogaEquipments","kind":"class","scope":"global","$longname":"SaratogaEquipments","$kind":"constructor","$docmaLink":"?api#SaratogaEquipments"}},{"comment":"/**\n * Ship related getters for Saratoga\n * @class SaratogaShips\n */","meta":{"filename":"SaratogaShips.js","lineno":1,"columnno":0,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\store","code":{}},"description":"

    Ship related getters for Saratoga

    ","kind":"class","name":"SaratogaShips","longname":"SaratogaShips","scope":"global","$longname":"SaratogaShips","$kind":"class","$docmaLink":"?api#SaratogaShips","$members":[{"comment":"/**\n * Lists all the ships that matches a specific shjp class\n * @param {string} shipClass class of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[761,899],"filename":"SaratogaShips.js","lineno":29,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\store","code":{"id":"astnode100000349","name":"SaratogaShips#getAllByClass","type":"MethodDefinition","paramnames":["shipClass"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific shjp class

    ","params":[{"type":{"names":["string"]},"description":"

    class of the ship you want to search for (Case Sensitive)

    ","name":"shipClass"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByClass","longname":"SaratogaShips#getAllByClass","kind":"function","scope":"instance","$longname":"SaratogaShips#getAllByClass","$kind":"method","$docmaLink":"?api#SaratogaShips#getAllByClass"},{"comment":"/**\n * Lists all the ships that matches a specific ship hull type\n * @param {string} hullType hullType of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1559,1701],"filename":"SaratogaShips.js","lineno":51,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\store","code":{"id":"astnode100000401","name":"SaratogaShips#getAllByHullType","type":"MethodDefinition","paramnames":["hullType"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship hull type

    ","params":[{"type":{"names":["string"]},"description":"

    hullType of the ship you want to search for (Case Sensitive)

    ","name":"hullType"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByHullType","longname":"SaratogaShips#getAllByHullType","kind":"function","scope":"instance","$longname":"SaratogaShips#getAllByHullType","$kind":"method","$docmaLink":"?api#SaratogaShips#getAllByHullType"},{"comment":"/**\n * Lists all the ships that matches a specific ship nationality\n * @param {string} nationality nationality of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1156,1310],"filename":"SaratogaShips.js","lineno":40,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\store","code":{"id":"astnode100000375","name":"SaratogaShips#getAllByNationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship nationality

    ","params":[{"type":{"names":["string"]},"description":"

    nationality of the ship you want to search for (Case Sensitive)

    ","name":"nationality"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByNationality","longname":"SaratogaShips#getAllByNationality","kind":"function","scope":"instance","$longname":"SaratogaShips#getAllByNationality","$kind":"method","$docmaLink":"?api#SaratogaShips#getAllByNationality"},{"comment":"/**\n * Lists all the ship that matches a specific rarity\n * @param {string} rarity rarity of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1937,2071],"filename":"SaratogaShips.js","lineno":62,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\store","code":{"id":"astnode100000427","name":"SaratogaShips#getAllByRarity","type":"MethodDefinition","paramnames":["rarity"]},"vars":{"":null}},"description":"

    Lists all the ship that matches a specific rarity

    ","params":[{"type":{"names":["string"]},"description":"

    rarity of the ship you want to search for (Case Sensitive)

    ","name":"rarity"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByRarity","longname":"SaratogaShips#getAllByRarity","kind":"function","scope":"instance","$longname":"SaratogaShips#getAllByRarity","$kind":"method","$docmaLink":"?api#SaratogaShips#getAllByRarity"},{"comment":"/**\n * Fetches a specific ship via its id\n * @param {number} id id of the ship you want to fetch\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[2255,2434],"filename":"SaratogaShips.js","lineno":73,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\store","code":{"id":"astnode100000453","name":"SaratogaShips#getById","type":"MethodDefinition","paramnames":["id"]},"vars":{"":null}},"description":"

    Fetches a specific ship via its id

    ","params":[{"type":{"names":["number"]},"description":"

    id of the ship you want to fetch

    ","name":"id"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"getById","longname":"SaratogaShips#getById","kind":"function","scope":"instance","$longname":"SaratogaShips#getById","$kind":"method","$docmaLink":"?api#SaratogaShips#getById"},{"comment":"/**\n * Searches for a specific ship. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the ship you want to search for\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[2721,2946],"filename":"SaratogaShips.js","lineno":87,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\store","code":{"id":"astnode100000490","name":"SaratogaShips#searchShipByName","type":"MethodDefinition","paramnames":["name","limit"]},"vars":{"":null}},"description":"

    Searches for a specific ship. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the ship you want to search for

    ","name":"name"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"searchShipByName","longname":"SaratogaShips#searchShipByName","kind":"function","scope":"instance","$longname":"SaratogaShips#searchShipByName","$kind":"method","$docmaLink":"?api#SaratogaShips#searchShipByName"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[198,306],"filename":"SaratogaShips.js","lineno":9,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\store","code":{"id":"astnode100000296","name":"SaratogaShips","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaShips","longname":"SaratogaShips","kind":"class","scope":"global","$longname":"SaratogaShips","$kind":"constructor","$docmaLink":"?api#SaratogaShips"}},{"comment":"/**\n * Saratoga, the starting point of this API\n * @class SaratogaStore\n */","meta":{"filename":"SaratogaStore.js","lineno":7,"columnno":0,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\store","code":{}},"description":"

    Saratoga, the starting point of this API

    ","kind":"class","name":"SaratogaStore","longname":"SaratogaStore","scope":"global","$longname":"SaratogaStore","$kind":"class","$docmaLink":"?api#SaratogaStore","$members":[{"comment":"/**\n * Equipment related getters for this store\n * @type {SaratogaEquipments}\n */","meta":{"range":[906,952],"filename":"SaratogaStore.js","lineno":30,"columnno":8,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\store","code":{"id":"astnode100000588","name":"this.equipments","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Equipment related getters for this store

    ","type":{"names":["SaratogaEquipments"]},"name":"equipments","longname":"SaratogaStore#equipments","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#equipments","$kind":"property","$docmaLink":"?api#SaratogaStore#equipments"},{"comment":"/**\n * If this store is already ready to operate\n * @type {Boolean}\n */","meta":{"range":[1234,1252],"filename":"SaratogaStore.js","lineno":40,"columnno":8,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\store","code":{"id":"astnode100000604","name":"this.ready","type":"Literal","value":false,"paramnames":[]}},"description":"

    If this store is already ready to operate

    ","type":{"names":["Boolean"]},"name":"ready","longname":"SaratogaStore#ready","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#ready","$kind":"property","$docmaLink":"?api#SaratogaStore#ready"},{"comment":"/**\n * The saratoga instance that generated this instance\n * @type {Saratoga}\n */","meta":{"range":[608,632],"filename":"SaratogaStore.js","lineno":20,"columnno":8,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\store","code":{"id":"astnode100000574","name":"this.saratoga","type":"Identifier","value":"saratoga","paramnames":[]}},"description":"

    The saratoga instance that generated this instance

    ","type":{"names":["Saratoga"]},"name":"saratoga","longname":"SaratogaStore#saratoga","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#saratoga","$kind":"property","$docmaLink":"?api#SaratogaStore#saratoga"},{"comment":"/**\n * Ship related getters for this store\n * @type {SaratogaShips}\n */","meta":{"range":[746,782],"filename":"SaratogaStore.js","lineno":25,"columnno":8,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\store","code":{"id":"astnode100000580","name":"this.ships","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Ship related getters for this store

    ","type":{"names":["SaratogaShips"]},"name":"ships","longname":"SaratogaStore#ships","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#ships","$kind":"property","$docmaLink":"?api#SaratogaStore#ships"},{"comment":"/**\n * Updater Class for the local data for this store\n * @type {SaratogaUpdater}\n */","meta":{"range":[1080,1120],"filename":"SaratogaStore.js","lineno":35,"columnno":8,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\store","code":{"id":"astnode100000596","name":"this.updater","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Updater Class for the local data for this store

    ","type":{"names":["SaratogaUpdater"]},"name":"updater","longname":"SaratogaStore#updater","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#updater","$kind":"property","$docmaLink":"?api#SaratogaStore#updater"}],"$constructor":{"comment":"/**\n * @param {Saratoga} saratoga The saratoga class that generated this instance\n */","meta":{"range":[462,1819],"filename":"SaratogaStore.js","lineno":15,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\store","code":{"id":"astnode100000568","name":"SaratogaStore","type":"MethodDefinition","paramnames":["saratoga"]},"vars":{"":null}},"params":[{"type":{"names":["Saratoga"]},"description":"

    The saratoga class that generated this instance

    ","name":"saratoga"}],"name":"SaratogaStore","longname":"SaratogaStore","kind":"class","scope":"global","$longname":"SaratogaStore","$kind":"constructor","$docmaLink":"?api#SaratogaStore"}},{"comment":"/**\n * Manages the local data & cache updates\n * @class SaratogaUpdater\n */","meta":{"filename":"SaratogaUpdater.js","lineno":5,"columnno":0,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\updater","code":{}},"description":"

    Manages the local data & cache updates

    ","kind":"class","name":"SaratogaUpdater","longname":"SaratogaUpdater","scope":"global","$longname":"SaratogaUpdater","$kind":"class","$docmaLink":"?api#SaratogaUpdater","$members":[{"comment":"/**\n * Checks if there is new updates for ship or equipment data\n * @memberof SaratogaUpdater\n * @returns {Promise}\n * @example\n * const api = new Saratoga();\n * api.updater.checkForUpdate()\n * .then((response) => {\n * if (response.shipUpdateAvailable || response.equipmentUpdateAvailable) console.log('update available');\n * })\n */","meta":{"range":[3180,3542],"filename":"SaratogaUpdater.js","lineno":87,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\updater","code":{"id":"astnode100001261","name":"SaratogaUpdater#checkForUpdate","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Checks if there is new updates for ship or equipment data

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"examples":["const api = new Saratoga();\napi.updater.checkForUpdate()\n .then((response) => {\n if (response.shipUpdateAvailable || response.equipmentUpdateAvailable) console.log('update available');\n })"],"name":"checkForUpdate","longname":"SaratogaUpdater#checkForUpdate","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#checkForUpdate","$kind":"method","$docmaLink":"?api#SaratogaUpdater#checkForUpdate"},{"comment":"/**\n * Updates the Cached Data, loaded from the local files of Saratoga\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[4568,4743],"filename":"SaratogaUpdater.js","lineno":124,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\updater","code":{"id":"astnode100001388","name":"SaratogaUpdater#updateCache","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Cached Data, loaded from the local files of Saratoga

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateCache","longname":"SaratogaUpdater#updateCache","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateCache","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateCache"},{"comment":"/**\n * Updates the Local Files & Cached Data in one method, good for single process scenarios as it's easy. Not for multi sharded programs that has its own Saratoga instance per shard.\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[2673,2779],"filename":"SaratogaUpdater.js","lineno":71,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\updater","code":{"id":"astnode100001245","name":"SaratogaUpdater#updateDataAndCache","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Local Files & Cached Data in one method, good for single process scenarios as it's easy. Not for multi sharded programs that has its own Saratoga instance per shard.

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateDataAndCache","longname":"SaratogaUpdater#updateDataAndCache","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateDataAndCache","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateDataAndCache"},{"comment":"/**\n * Updates the Local Files of Saratoga if there is an update\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[3694,4409],"filename":"SaratogaUpdater.js","lineno":100,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\updater","code":{"id":"astnode100001304","name":"SaratogaUpdater#updateLocalData","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Local Files of Saratoga if there is an update

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateLocalData","longname":"SaratogaUpdater#updateLocalData","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateLocalData","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateLocalData"},{"comment":"/**\n * The cron update checker which is responsible for Saratoga#updateAvailable event\n * @type {?Timeout}\n */","meta":{"range":[830,852],"filename":"SaratogaUpdater.js","lineno":28,"columnno":8,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\updater","code":{"id":"astnode100001029","name":"this.cronUpdate","type":"Literal","value":null,"paramnames":[]}},"description":"

    The cron update checker which is responsible for Saratoga#updateAvailable event

    ","type":{"names":["Timeout"]},"nullable":true,"name":"cronUpdate","longname":"SaratogaUpdater#cronUpdate","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#cronUpdate","$kind":"property","$docmaLink":"?api#SaratogaUpdater#cronUpdate"},{"comment":"/**\n * If the data directory of this updater is ready to operate\n * @type {Boolean}\n */","meta":{"range":[652,677],"filename":"SaratogaUpdater.js","lineno":23,"columnno":8,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\updater","code":{"id":"astnode100001023","name":"this.dataDirReady","type":"Literal","value":false,"paramnames":[]}},"description":"

    If the data directory of this updater is ready to operate

    ","type":{"names":["Boolean"]},"name":"dataDirReady","longname":"SaratogaUpdater#dataDirReady","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#dataDirReady","$kind":"property","$docmaLink":"?api#SaratogaUpdater#dataDirReady"},{"comment":"/**\n * The saratoga instance that generated this instance\n * @type {Saratoga}\n */","meta":{"range":[963,1021],"filename":"SaratogaUpdater.js","lineno":35,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\updater","code":{"id":"astnode100001034","name":"SaratogaUpdater#saratoga","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    The saratoga instance that generated this instance

    ","type":{"names":["Saratoga"]},"name":"saratoga","longname":"SaratogaUpdater#saratoga","kind":"member","memberof":"SaratogaUpdater","scope":"instance","params":[],"$longname":"SaratogaUpdater#saratoga","$kind":"property","$docmaLink":"?api#SaratogaUpdater#saratoga"},{"comment":"/**\n * The updater instance that generated this instance\n * @type {SaratogaStore}\n */","meta":{"range":[504,522],"filename":"SaratogaUpdater.js","lineno":18,"columnno":8,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\updater","code":{"id":"astnode100001017","name":"this.store","type":"Identifier","value":"store","paramnames":[]}},"description":"

    The updater instance that generated this instance

    ","type":{"names":["SaratogaStore"]},"name":"store","longname":"SaratogaUpdater#store","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#store","$kind":"property","$docmaLink":"?api#SaratogaUpdater#store"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[357,859],"filename":"SaratogaUpdater.js","lineno":13,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\updater","code":{"id":"astnode100001011","name":"SaratogaUpdater","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaUpdater","longname":"SaratogaUpdater","kind":"class","scope":"global","$longname":"SaratogaUpdater","$kind":"constructor","$docmaLink":"?api#SaratogaUpdater"}},{"comment":"","meta":{"range":[122,250],"filename":"SaratogaValidator.js","lineno":5,"columnno":4,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga\\src\\updater","code":{"id":"astnode100001575","name":"SaratogaValidator","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"undocumented":true,"name":"SaratogaValidator","longname":"SaratogaValidator","kind":"class","scope":"global","params":[],"$longname":"SaratogaValidator","$kind":"constructor","$docmaLink":"?api#SaratogaValidator"},{"comment":"/**\n * Equipment Data\n * @external Equipment\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":19,"columnno":0,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga","code":{}},"description":"

    Equipment Data

    ","kind":"external","name":"Equipment","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Equipment","scope":"global","$longname":"external:Equipment","$kind":"external","$docmaLink":"?api#external:Equipment"},{"comment":"/**\n * Node.js Event Emitter\n * @external EventEmitter\n * @see {@link https://nodejs.org/api/events.html}\n */","meta":{"filename":"index.js","lineno":1,"columnno":0,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga","code":{}},"description":"

    Node.js Event Emitter

    ","kind":"external","name":"EventEmitter","see":["{@link https://nodejs.org/api/events.html}"],"longname":"external:EventEmitter","scope":"global","$longname":"external:EventEmitter","$kind":"external","$docmaLink":"?api#external:EventEmitter"},{"comment":"/**\n * Ship Data\n * @external Ship\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#ship-getters}\n */","meta":{"filename":"index.js","lineno":13,"columnno":0,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga","code":{}},"description":"

    Ship Data

    ","kind":"external","name":"Ship","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#ship-getters}"],"longname":"external:Ship","scope":"global","$longname":"external:Ship","$kind":"external","$docmaLink":"?api#external:Ship"},{"comment":"/**\n * Node.js Timeout\n * @external Timeout\n * @see {@link https://nodejs.org/dist/latest/docs/api/timers.html#timers_class_timeout}\n */","meta":{"filename":"index.js","lineno":7,"columnno":0,"path":"C:\\Users\\Deivu\\Desktop\\Work Related Data\\Saratoga","code":{}},"description":"

    Node.js Timeout

    ","kind":"external","name":"Timeout","see":["{@link https://nodejs.org/dist/latest/docs/api/timers.html#timers_class_timeout}"],"longname":"external:Timeout","scope":"global","$longname":"external:Timeout","$kind":"external","$docmaLink":"?api#external:Timeout"}],"symbols":["external:Equipment","external:EventEmitter","external:Ship","external:Timeout","Saratoga","Saratoga#equipments","Saratoga#event:debug","Saratoga#event:error","Saratoga#event:ready","Saratoga#event:updateAvailable","Saratoga#ready","Saratoga#ships","Saratoga#store","Saratoga#updater","SaratogaEquipments","SaratogaEquipments#getAllByCategory","SaratogaEquipments#getAllByNationality","SaratogaEquipments#searchByEquipmentName","SaratogaShips","SaratogaShips#getAllByClass","SaratogaShips#getAllByHullType","SaratogaShips#getAllByNationality","SaratogaShips#getAllByRarity","SaratogaShips#getById","SaratogaShips#searchShipByName","SaratogaStore","SaratogaStore#equipments","SaratogaStore#ready","SaratogaStore#saratoga","SaratogaStore#ships","SaratogaStore#updater","SaratogaUpdater","SaratogaUpdater#checkForUpdate","SaratogaUpdater#cronUpdate","SaratogaUpdater#dataDirReady","SaratogaUpdater#saratoga","SaratogaUpdater#store","SaratogaUpdater#updateCache","SaratogaUpdater#updateDataAndCache","SaratogaUpdater#updateLocalData","SaratogaValidator"]}},"app":{"title":"Saratoga | An open source Azur Lane local library","routing":{"method":"query","caseSensitive":true},"entrance":"content:readme","base":"/Saratoga/","meta":null,"server":"static","favicon":""},"template":{"name":"docma-template-zebra","description":"Zebra - Default template for Docma. https://github.com/onury/docma","version":"2.3.1","supportedDocmaVersion":">=2.0.0","author":"Onur Yıldırım","license":"MIT","mainHTML":"index.html","options":{"title":{"label":"Saratoga","href":"."},"sidebar":{"enabled":true,"outline":"tree","collapsed":false,"toolbar":true,"itemsFolded":false,"itemsOverflow":"crop","badges":true,"search":true,"animations":true},"symbols":{"autoLink":true,"params":"list","enums":"list","props":"list","meta":false},"navbar":{"enabled":true,"dark":false,"animations":true,"menu":[{"label":"Readme","href":"."},{"label":"Documentation","href":"?api"},{"label":"GitHub","href":"https://github.com/AzurAPI/Saratoga"}],"fixed":true},"logo":null,"contentView":{"bookmarks":false,"faVersion":"5.5.0","faLibs":"all"}}},"partials":{"api":"docma-api","content":"docma-content","notFound":"docma-404"},"elementID":"docma-main","contentElementID":"docma-content","defaultApiName":"_def_","logsEnabled":false})); +var docma = Object.freeze(new DocmaWeb({"version":"3.2.2","routes":[{"id":"api:","type":"api","name":"_def_","path":"?api","contentPath":null,"sourceType":"js"},{"id":"content:readme","type":"content","name":"readme","path":"?content=readme","contentPath":"content/readme.html","sourceType":"md"}],"apis":{"_def_":{"documentation":[{"comment":"/**\n * Saratoga, the starting point of this API\n * @class Saratoga\n * @extends {EventEmitter}\n */","meta":{"filename":"Saratoga.js","lineno":4,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Saratoga, the starting point of this API

    ","kind":"class","name":"Saratoga","augments":["EventEmitter"],"longname":"Saratoga","scope":"global","$longname":"Saratoga","$kind":"class","$docmaLink":"?api#Saratoga","$members":[{"comment":"/**\n * Barrage related getters for this store\n * @type {SaratogaBarrages}\n */","meta":{"range":[2891,2987],"filename":"Saratoga.js","lineno":108,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000166","name":"Saratoga#barrages","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Barrage related getters for this store

    ","type":{"names":["SaratogaBarrages"]},"name":"barrages","longname":"Saratoga#barrages","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#barrages","$kind":"property","$docmaLink":"?api#Saratoga#barrages"},{"comment":"/**\n * Chapters related getters for this store\n * @type {SaratogaChapters}\n */","meta":{"range":[2493,2589],"filename":"Saratoga.js","lineno":92,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000132","name":"Saratoga#chapters","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Chapters related getters for this store

    ","type":{"names":["SaratogaChapters"]},"name":"chapters","longname":"Saratoga#chapters","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#chapters","$kind":"property","$docmaLink":"?api#Saratoga#chapters"},{"comment":"/**\n * Azur Lane's Equipment related getter methods\n * @type {SaratogaEquipments}\n */","meta":{"range":[2293,2393],"filename":"Saratoga.js","lineno":84,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000115","name":"Saratoga#equipments","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Azur Lane's Equipment related getter methods

    ","type":{"names":["SaratogaEquipments"]},"name":"equipments","longname":"Saratoga#equipments","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#equipments","$kind":"property","$docmaLink":"?api#Saratoga#equipments"},{"comment":"/**\n * If Saratoga is ready to operate\n * @type {Boolean}\n */","meta":{"range":[1910,1997],"filename":"Saratoga.js","lineno":67,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000080","name":"Saratoga#ready","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    If Saratoga is ready to operate

    ","type":{"names":["Boolean"]},"name":"ready","longname":"Saratoga#ready","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#ready","$kind":"property","$docmaLink":"?api#Saratoga#ready"},{"comment":"/**\n * Azur Lane's Ship related getter methods\n * @type {SaratogaShips}\n */","meta":{"range":[2095,2185],"filename":"Saratoga.js","lineno":75,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000098","name":"Saratoga#ships","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Azur Lane's Ship related getter methods

    ","type":{"names":["SaratogaShips"]},"name":"ships","longname":"Saratoga#ships","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#ships","$kind":"property","$docmaLink":"?api#Saratoga#ships"},{"comment":"/**\n * Contains methods and props for managing cached data\n * @type {SaratogaStore}\n */","meta":{"range":[567,603],"filename":"Saratoga.js","lineno":19,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000053","name":"this.store","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Contains methods and props for managing cached data

    ","type":{"names":["SaratogaStore"]},"name":"store","longname":"Saratoga#store","kind":"member","memberof":"Saratoga","scope":"instance","$longname":"Saratoga#store","$kind":"property","$docmaLink":"?api#Saratoga#store"},{"comment":"/**\n * Contains methods for updating Saratoga's local data & cache\n * @type {SaratogaUpdater}\n */","meta":{"range":[1770,1826],"filename":"Saratoga.js","lineno":59,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000070","name":"Saratoga#updater","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Contains methods for updating Saratoga's local data & cache

    ","type":{"names":["SaratogaUpdater"]},"name":"updater","longname":"Saratoga#updater","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#updater","$kind":"property","$docmaLink":"?api#Saratoga#updater"},{"comment":"/**\n * Voiceline related getters for this store\n * @type {SaratogaVoicelines}\n */","meta":{"range":[2692,2792],"filename":"Saratoga.js","lineno":100,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000149","name":"Saratoga#voicelines","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Voiceline related getters for this store

    ","type":{"names":["SaratogaVoicelines"]},"name":"voicelines","longname":"Saratoga#voicelines","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#voicelines","$kind":"property","$docmaLink":"?api#Saratoga#voicelines"},{"comment":"/**\n * Emitted when there is a debug data\n * @event Saratoga#debug\n * @param {string} message Debug message\n * @memberof Saratoga\n */","meta":{"filename":"Saratoga.js","lineno":23,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is a debug data

    ","kind":"event","name":"debug","params":[{"type":{"names":["string"]},"description":"

    Debug message

    ","name":"message"}],"memberof":"Saratoga","longname":"Saratoga#event:debug","scope":"instance","$longname":"Saratoga#event:debug","$kind":"event","$docmaLink":"?api#Saratoga#event:debug"},{"comment":"/**\n * Emitted when there is a pesky error\n * @event Saratoga#error\n * @param {Error} error The error encountered.\n * @memberof Saratoga\n * @example\n * Saratoga.on('error', console.error);\n */","meta":{"filename":"Saratoga.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is a pesky error

    ","kind":"event","name":"error","params":[{"type":{"names":["Error"]},"description":"

    The error encountered.

    ","name":"error"}],"memberof":"Saratoga","examples":["Saratoga.on('error', console.error);"],"longname":"Saratoga#event:error","scope":"instance","$longname":"Saratoga#event:error","$kind":"event","$docmaLink":"?api#Saratoga#event:error"},{"comment":"/**\n * Emitted when Saratoga is ready\n * @event Saratoga#ready\n * @memberof Saratoga\n */","meta":{"filename":"Saratoga.js","lineno":49,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when Saratoga is ready

    ","kind":"event","name":"ready","memberof":"Saratoga","longname":"Saratoga#event:ready","scope":"instance","$longname":"Saratoga#event:ready","$kind":"event","$docmaLink":"?api#Saratoga#event:ready"},{"comment":"/**\n * Emitted when there is an update available for local data. Only available when Saratoga is initialized with notifyForNewUpdates set to true\n * @event Saratoga#updateAvailable\n * @param {Object} data What data needs updating\n * @memberof Saratoga\n * @example\n * Saratoga.on('updateAvailable', (data) => {\n * if (data.shipUpdateAvailable || data.equipmentUpdateAvailable) {\n * // handle update\n * }\n * })\n */","meta":{"filename":"Saratoga.js","lineno":37,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is an update available for local data. Only available when Saratoga is initialized with notifyForNewUpdates set to true

    ","kind":"event","name":"updateAvailable","params":[{"type":{"names":["Object"]},"description":"

    What data needs updating

    ","name":"data"}],"memberof":"Saratoga","examples":["Saratoga.on('updateAvailable', (data) => {\n if (data.shipUpdateAvailable || data.equipmentUpdateAvailable) {\n // handle update\n }\n})"],"longname":"Saratoga#event:updateAvailable","scope":"instance","$longname":"Saratoga#event:updateAvailable","$kind":"event","$docmaLink":"?api#Saratoga#event:updateAvailable"}],"$constructor":{"comment":"/**\n * @param {Object} options Object with a single parameter, which is notifyForNewUpdates, which is a boolean\n */","meta":{"range":[366,679],"filename":"Saratoga.js","lineno":13,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000040","name":"Saratoga","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"params":[{"type":{"names":["Object"]},"description":"

    Object with a single parameter, which is notifyForNewUpdates, which is a boolean

    ","name":"options"}],"name":"Saratoga","longname":"Saratoga","kind":"class","scope":"global","$longname":"Saratoga","$kind":"constructor","$docmaLink":"?api#Saratoga"}},{"comment":"/**\n * Equipment related getters for Saratoga\n * @class SaratogaEquipments\n */","meta":{"filename":"SaratogaEquipments.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Equipment related getters for Saratoga

    ","kind":"class","name":"SaratogaEquipments","longname":"SaratogaEquipments","scope":"global","$longname":"SaratogaEquipments","$kind":"class","$docmaLink":"?api#SaratogaEquipments","$members":[{"comment":"/**\n * Lists the equipments by category\n * @param {string} category name of the category you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[751,893],"filename":"SaratogaEquipments.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000251","name":"SaratogaEquipments#getAllByCategory","type":"MethodDefinition","paramnames":["category"]},"vars":{"":null}},"description":"

    Lists the equipments by category

    ","params":[{"type":{"names":["string"]},"description":"

    name of the category you want to search for

    ","name":"category"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByCategory","longname":"SaratogaEquipments#getAllByCategory","kind":"function","scope":"instance","$longname":"SaratogaEquipments#getAllByCategory","$kind":"method","$docmaLink":"?api#SaratogaEquipments#getAllByCategory"},{"comment":"/**\n * Lists the equipments by nationality\n * @param {string} nationality naitionality name of the equipments you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[1130,1284],"filename":"SaratogaEquipments.js","lineno":40,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000277","name":"SaratogaEquipments#getAllByNationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists the equipments by nationality

    ","params":[{"type":{"names":["string"]},"description":"

    naitionality name of the equipments you want to search for

    ","name":"nationality"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByNationality","longname":"SaratogaEquipments#getAllByNationality","kind":"function","scope":"instance","$longname":"SaratogaEquipments#getAllByNationality","$kind":"method","$docmaLink":"?api#SaratogaEquipments#getAllByNationality"},{"comment":"/**\n * Searches for a specific equipment. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the equipment you want to search for\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaEquipments\n * @returns {Equipment | null}\n */","meta":{"range":[1591,1835],"filename":"SaratogaEquipments.js","lineno":52,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000303","name":"SaratogaEquipments#searchByEquipmentName","type":"MethodDefinition","paramnames":["name","limit"]},"vars":{"":null}},"description":"

    Searches for a specific equipment. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the equipment you want to search for

    ","name":"name"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Equipment","null"]}}],"name":"searchByEquipmentName","longname":"SaratogaEquipments#searchByEquipmentName","kind":"function","scope":"instance","$longname":"SaratogaEquipments#searchByEquipmentName","$kind":"method","$docmaLink":"?api#SaratogaEquipments#searchByEquipmentName"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[213,321],"filename":"SaratogaEquipments.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000198","name":"SaratogaEquipments","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaEquipments","longname":"SaratogaEquipments","kind":"class","scope":"global","$longname":"SaratogaEquipments","$kind":"constructor","$docmaLink":"?api#SaratogaEquipments"}},{"comment":"/**\n * Ship related getters for Saratoga\n * @class SaratogaShips\n */","meta":{"filename":"SaratogaShips.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Ship related getters for Saratoga

    ","kind":"class","name":"SaratogaShips","longname":"SaratogaShips","scope":"global","$longname":"SaratogaShips","$kind":"class","$docmaLink":"?api#SaratogaShips","$members":[{"comment":"/**\n * Lists all the ships that matches a specific shjp class\n * @param {string} shipClass class of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[761,899],"filename":"SaratogaShips.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000404","name":"SaratogaShips#getAllByClass","type":"MethodDefinition","paramnames":["shipClass"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific shjp class

    ","params":[{"type":{"names":["string"]},"description":"

    class of the ship you want to search for (Case Sensitive)

    ","name":"shipClass"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByClass","longname":"SaratogaShips#getAllByClass","kind":"function","scope":"instance","$longname":"SaratogaShips#getAllByClass","$kind":"method","$docmaLink":"?api#SaratogaShips#getAllByClass"},{"comment":"/**\n * Lists all the ships that matches a specific ship hull type\n * @param {string} hullType hullType of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1559,1701],"filename":"SaratogaShips.js","lineno":51,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000456","name":"SaratogaShips#getAllByHullType","type":"MethodDefinition","paramnames":["hullType"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship hull type

    ","params":[{"type":{"names":["string"]},"description":"

    hullType of the ship you want to search for (Case Sensitive)

    ","name":"hullType"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByHullType","longname":"SaratogaShips#getAllByHullType","kind":"function","scope":"instance","$longname":"SaratogaShips#getAllByHullType","$kind":"method","$docmaLink":"?api#SaratogaShips#getAllByHullType"},{"comment":"/**\n * Lists all the ships that matches a specific ship nationality\n * @param {string} nationality nationality of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1156,1310],"filename":"SaratogaShips.js","lineno":40,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000430","name":"SaratogaShips#getAllByNationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship nationality

    ","params":[{"type":{"names":["string"]},"description":"

    nationality of the ship you want to search for (Case Sensitive)

    ","name":"nationality"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByNationality","longname":"SaratogaShips#getAllByNationality","kind":"function","scope":"instance","$longname":"SaratogaShips#getAllByNationality","$kind":"method","$docmaLink":"?api#SaratogaShips#getAllByNationality"},{"comment":"/**\n * Lists all the ship that matches a specific rarity\n * @param {string} rarity rarity of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1937,2071],"filename":"SaratogaShips.js","lineno":62,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000482","name":"SaratogaShips#getAllByRarity","type":"MethodDefinition","paramnames":["rarity"]},"vars":{"":null}},"description":"

    Lists all the ship that matches a specific rarity

    ","params":[{"type":{"names":["string"]},"description":"

    rarity of the ship you want to search for (Case Sensitive)

    ","name":"rarity"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByRarity","longname":"SaratogaShips#getAllByRarity","kind":"function","scope":"instance","$longname":"SaratogaShips#getAllByRarity","$kind":"method","$docmaLink":"?api#SaratogaShips#getAllByRarity"},{"comment":"/**\n * Fetches a specific ship via its id\n * @param {number} id id of the ship you want to fetch\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[2255,2434],"filename":"SaratogaShips.js","lineno":73,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000508","name":"SaratogaShips#getById","type":"MethodDefinition","paramnames":["id"]},"vars":{"":null}},"description":"

    Fetches a specific ship via its id

    ","params":[{"type":{"names":["number"]},"description":"

    id of the ship you want to fetch

    ","name":"id"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"getById","longname":"SaratogaShips#getById","kind":"function","scope":"instance","$longname":"SaratogaShips#getById","$kind":"method","$docmaLink":"?api#SaratogaShips#getById"},{"comment":"/**\n * Searches for a specific ship. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the ship you want to search for\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[2721,2946],"filename":"SaratogaShips.js","lineno":87,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000545","name":"SaratogaShips#searchShipByName","type":"MethodDefinition","paramnames":["name","limit"]},"vars":{"":null}},"description":"

    Searches for a specific ship. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the ship you want to search for

    ","name":"name"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"searchShipByName","longname":"SaratogaShips#searchShipByName","kind":"function","scope":"instance","$longname":"SaratogaShips#searchShipByName","$kind":"method","$docmaLink":"?api#SaratogaShips#searchShipByName"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[198,306],"filename":"SaratogaShips.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000351","name":"SaratogaShips","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaShips","longname":"SaratogaShips","kind":"class","scope":"global","$longname":"SaratogaShips","$kind":"constructor","$docmaLink":"?api#SaratogaShips"}},{"comment":"/**\n * Saratoga, the starting point of this API\n * @class SaratogaStore\n */","meta":{"filename":"SaratogaStore.js","lineno":7,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Saratoga, the starting point of this API

    ","kind":"class","name":"SaratogaStore","longname":"SaratogaStore","scope":"global","$longname":"SaratogaStore","$kind":"class","$docmaLink":"?api#SaratogaStore","$members":[{"comment":"/**\n * Equipment related getters for this store\n * @type {SaratogaEquipments}\n */","meta":{"range":[906,952],"filename":"SaratogaStore.js","lineno":30,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000643","name":"this.equipments","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Equipment related getters for this store

    ","type":{"names":["SaratogaEquipments"]},"name":"equipments","longname":"SaratogaStore#equipments","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#equipments","$kind":"property","$docmaLink":"?api#SaratogaStore#equipments"},{"comment":"/**\n * If this store is already ready to operate\n * @type {Boolean}\n */","meta":{"range":[1732,1750],"filename":"SaratogaStore.js","lineno":55,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000659","name":"this.ready","type":"Literal","value":false,"paramnames":[]}},"description":"

    If this store is already ready to operate

    ","type":{"names":["Boolean"]},"name":"ready","longname":"SaratogaStore#ready","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#ready","$kind":"property","$docmaLink":"?api#SaratogaStore#ready"},{"comment":"/**\n * The saratoga instance that generated this instance\n * @type {Saratoga}\n */","meta":{"range":[608,632],"filename":"SaratogaStore.js","lineno":20,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000629","name":"this.saratoga","type":"Identifier","value":"saratoga","paramnames":[]}},"description":"

    The saratoga instance that generated this instance

    ","type":{"names":["Saratoga"]},"name":"saratoga","longname":"SaratogaStore#saratoga","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#saratoga","$kind":"property","$docmaLink":"?api#SaratogaStore#saratoga"},{"comment":"/**\n * Ship related getters for this store\n * @type {SaratogaShips}\n */","meta":{"range":[746,782],"filename":"SaratogaStore.js","lineno":25,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000635","name":"this.ships","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Ship related getters for this store

    ","type":{"names":["SaratogaShips"]},"name":"ships","longname":"SaratogaStore#ships","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#ships","$kind":"property","$docmaLink":"?api#SaratogaStore#ships"},{"comment":"/**\n * Updater Class for the local data for this store\n * @type {SaratogaUpdater}\n */","meta":{"range":[1578,1618],"filename":"SaratogaStore.js","lineno":50,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000651","name":"this.updater","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Updater Class for the local data for this store

    ","type":{"names":["SaratogaUpdater"]},"name":"updater","longname":"SaratogaStore#updater","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#updater","$kind":"property","$docmaLink":"?api#SaratogaStore#updater"}],"$constructor":{"comment":"/**\n * @param {Saratoga} saratoga The saratoga class that generated this instance\n */","meta":{"range":[462,2583],"filename":"SaratogaStore.js","lineno":15,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000623","name":"SaratogaStore","type":"MethodDefinition","paramnames":["saratoga"]},"vars":{"":null}},"params":[{"type":{"names":["Saratoga"]},"description":"

    The saratoga class that generated this instance

    ","name":"saratoga"}],"name":"SaratogaStore","longname":"SaratogaStore","kind":"class","scope":"global","$longname":"SaratogaStore","$kind":"constructor","$docmaLink":"?api#SaratogaStore"}},{"comment":"/**\n * Manages the local data & cache updates\n * @class SaratogaUpdater\n */","meta":{"filename":"SaratogaUpdater.js","lineno":5,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{}},"description":"

    Manages the local data & cache updates

    ","kind":"class","name":"SaratogaUpdater","longname":"SaratogaUpdater","scope":"global","$longname":"SaratogaUpdater","$kind":"class","$docmaLink":"?api#SaratogaUpdater","$members":[{"comment":"/**\n * Checks if there is new updates for ship or equipment data\n * @memberof SaratogaUpdater\n * @returns {Promise}\n * @example\n * const api = new Saratoga();\n * api.updater.checkForUpdate()\n * .then((response) => {\n * if (response.shipUpdateAvailable || response.equipmentUpdateAvailable) console.log('update available');\n * })\n */","meta":{"range":[3518,3930],"filename":"SaratogaUpdater.js","lineno":90,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001677","name":"SaratogaUpdater#checkForUpdate","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Checks if there is new updates for ship or equipment data

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"examples":["const api = new Saratoga();\napi.updater.checkForUpdate()\n .then((response) => {\n if (response.shipUpdateAvailable || response.equipmentUpdateAvailable) console.log('update available');\n })"],"name":"checkForUpdate","longname":"SaratogaUpdater#checkForUpdate","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#checkForUpdate","$kind":"method","$docmaLink":"?api#SaratogaUpdater#checkForUpdate"},{"comment":"/**\n * Updates the Cached Data, loaded from the local files of Saratoga\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[5315,5490],"filename":"SaratogaUpdater.js","lineno":135,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001797","name":"SaratogaUpdater#updateCache","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Cached Data, loaded from the local files of Saratoga

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateCache","longname":"SaratogaUpdater#updateCache","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateCache","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateCache"},{"comment":"/**\n * Updates the Local Files & Cached Data in one method, good for single process scenarios as it's easy. Not for multi sharded programs that has its own Saratoga instance per shard.\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[3011,3117],"filename":"SaratogaUpdater.js","lineno":74,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001661","name":"SaratogaUpdater#updateDataAndCache","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Local Files & Cached Data in one method, good for single process scenarios as it's easy. Not for multi sharded programs that has its own Saratoga instance per shard.

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateDataAndCache","longname":"SaratogaUpdater#updateDataAndCache","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateDataAndCache","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateDataAndCache"},{"comment":"/**\n * Updates the Local Files of Saratoga if there is an update\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[4082,5156],"filename":"SaratogaUpdater.js","lineno":104,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001697","name":"SaratogaUpdater#updateLocalData","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Local Files of Saratoga if there is an update

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateLocalData","longname":"SaratogaUpdater#updateLocalData","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateLocalData","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateLocalData"},{"comment":"/**\n * The cron update checker which is responsible for Saratoga#updateAvailable event\n * @type {?Timeout}\n */","meta":{"range":[830,852],"filename":"SaratogaUpdater.js","lineno":28,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001394","name":"this.cronUpdate","type":"Literal","value":null,"paramnames":[]}},"description":"

    The cron update checker which is responsible for Saratoga#updateAvailable event

    ","type":{"names":["Timeout"]},"nullable":true,"name":"cronUpdate","longname":"SaratogaUpdater#cronUpdate","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#cronUpdate","$kind":"property","$docmaLink":"?api#SaratogaUpdater#cronUpdate"},{"comment":"/**\n * If the data directory of this updater is ready to operate\n * @type {Boolean}\n */","meta":{"range":[652,677],"filename":"SaratogaUpdater.js","lineno":23,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001388","name":"this.dataDirReady","type":"Literal","value":false,"paramnames":[]}},"description":"

    If the data directory of this updater is ready to operate

    ","type":{"names":["Boolean"]},"name":"dataDirReady","longname":"SaratogaUpdater#dataDirReady","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#dataDirReady","$kind":"property","$docmaLink":"?api#SaratogaUpdater#dataDirReady"},{"comment":"/**\n * The saratoga instance that generated this instance\n * @type {Saratoga}\n */","meta":{"range":[963,1021],"filename":"SaratogaUpdater.js","lineno":35,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001399","name":"SaratogaUpdater#saratoga","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    The saratoga instance that generated this instance

    ","type":{"names":["Saratoga"]},"name":"saratoga","longname":"SaratogaUpdater#saratoga","kind":"member","memberof":"SaratogaUpdater","scope":"instance","params":[],"$longname":"SaratogaUpdater#saratoga","$kind":"property","$docmaLink":"?api#SaratogaUpdater#saratoga"},{"comment":"/**\n * The updater instance that generated this instance\n * @type {SaratogaStore}\n */","meta":{"range":[504,522],"filename":"SaratogaUpdater.js","lineno":18,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001382","name":"this.store","type":"Identifier","value":"store","paramnames":[]}},"description":"

    The updater instance that generated this instance

    ","type":{"names":["SaratogaStore"]},"name":"store","longname":"SaratogaUpdater#store","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#store","$kind":"property","$docmaLink":"?api#SaratogaUpdater#store"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[357,859],"filename":"SaratogaUpdater.js","lineno":13,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001376","name":"SaratogaUpdater","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaUpdater","longname":"SaratogaUpdater","kind":"class","scope":"global","$longname":"SaratogaUpdater","$kind":"constructor","$docmaLink":"?api#SaratogaUpdater"}},{"comment":"","meta":{"range":[122,250],"filename":"SaratogaValidator.js","lineno":5,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002188","name":"SaratogaValidator","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"undocumented":true,"name":"SaratogaValidator","longname":"SaratogaValidator","kind":"class","scope":"global","params":[],"$longname":"SaratogaValidator","$kind":"constructor","$docmaLink":"?api#SaratogaValidator"},{"comment":"/**\n * Barrage Data\n * @external Barrage\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":34,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Barrage Data

    ","kind":"external","name":"Barrage","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Barrage","scope":"global","$longname":"external:Barrage","$kind":"external","$docmaLink":"?api#external:Barrage"},{"comment":"/**\n * Chapter Data\n * @external Chapter\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":24,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Chapter Data

    ","kind":"external","name":"Chapter","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Chapter","scope":"global","$longname":"external:Chapter","$kind":"external","$docmaLink":"?api#external:Chapter"},{"comment":"/**\n * Equipment Data\n * @external Equipment\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":19,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Equipment Data

    ","kind":"external","name":"Equipment","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Equipment","scope":"global","$longname":"external:Equipment","$kind":"external","$docmaLink":"?api#external:Equipment"},{"comment":"/**\n * Node.js Event Emitter\n * @external EventEmitter\n * @see {@link https://nodejs.org/api/events.html}\n */","meta":{"filename":"index.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Node.js Event Emitter

    ","kind":"external","name":"EventEmitter","see":["{@link https://nodejs.org/api/events.html}"],"longname":"external:EventEmitter","scope":"global","$longname":"external:EventEmitter","$kind":"external","$docmaLink":"?api#external:EventEmitter"},{"comment":"/**\n * Ship Data\n * @external Ship\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#ship-getters}\n */","meta":{"filename":"index.js","lineno":13,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Ship Data

    ","kind":"external","name":"Ship","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#ship-getters}"],"longname":"external:Ship","scope":"global","$longname":"external:Ship","$kind":"external","$docmaLink":"?api#external:Ship"},{"comment":"/**\n * Node.js Timeout\n * @external Timeout\n * @see {@link https://nodejs.org/dist/latest/docs/api/timers.html#timers_class_timeout}\n */","meta":{"filename":"index.js","lineno":7,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Node.js Timeout

    ","kind":"external","name":"Timeout","see":["{@link https://nodejs.org/dist/latest/docs/api/timers.html#timers_class_timeout}"],"longname":"external:Timeout","scope":"global","$longname":"external:Timeout","$kind":"external","$docmaLink":"?api#external:Timeout"},{"comment":"/**\n * Voiceline Data\n * @external Voiceline\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":29,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Voiceline Data

    ","kind":"external","name":"Voiceline","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Voiceline","scope":"global","$longname":"external:Voiceline","$kind":"external","$docmaLink":"?api#external:Voiceline"}],"symbols":["external:Barrage","external:Chapter","external:Equipment","external:EventEmitter","external:Ship","external:Timeout","external:Voiceline","Saratoga","Saratoga#barrages","Saratoga#chapters","Saratoga#equipments","Saratoga#event:debug","Saratoga#event:error","Saratoga#event:ready","Saratoga#event:updateAvailable","Saratoga#ready","Saratoga#ships","Saratoga#store","Saratoga#updater","Saratoga#voicelines","SaratogaEquipments","SaratogaEquipments#getAllByCategory","SaratogaEquipments#getAllByNationality","SaratogaEquipments#searchByEquipmentName","SaratogaShips","SaratogaShips#getAllByClass","SaratogaShips#getAllByHullType","SaratogaShips#getAllByNationality","SaratogaShips#getAllByRarity","SaratogaShips#getById","SaratogaShips#searchShipByName","SaratogaStore","SaratogaStore#equipments","SaratogaStore#ready","SaratogaStore#saratoga","SaratogaStore#ships","SaratogaStore#updater","SaratogaUpdater","SaratogaUpdater#checkForUpdate","SaratogaUpdater#cronUpdate","SaratogaUpdater#dataDirReady","SaratogaUpdater#saratoga","SaratogaUpdater#store","SaratogaUpdater#updateCache","SaratogaUpdater#updateDataAndCache","SaratogaUpdater#updateLocalData","SaratogaValidator"]}},"app":{"title":"Saratoga | An open source Azur Lane local library","routing":{"method":"query","caseSensitive":true},"entrance":"content:readme","base":"/Saratoga/","meta":null,"server":"static","favicon":""},"template":{"name":"docma-template-zebra","description":"Zebra - Default template for Docma. https://github.com/onury/docma","version":"2.3.1","supportedDocmaVersion":">=2.0.0","author":"Onur Yıldırım","license":"MIT","mainHTML":"index.html","options":{"title":{"label":"Saratoga","href":"."},"sidebar":{"enabled":true,"outline":"tree","collapsed":false,"toolbar":true,"itemsFolded":false,"itemsOverflow":"crop","badges":true,"search":true,"animations":true},"symbols":{"autoLink":true,"params":"list","enums":"list","props":"list","meta":false},"navbar":{"enabled":true,"dark":false,"animations":true,"menu":[{"label":"Readme","href":"."},{"label":"Documentation","href":"?api"},{"label":"GitHub","href":"https://github.com/AzurAPI/Saratoga"}],"fixed":true},"logo":null,"contentView":{"bookmarks":false,"faVersion":"5.5.0","faLibs":"all"}}},"partials":{"api":"docma-api","content":"docma-content","notFound":"docma-404"},"elementID":"docma-main","contentElementID":"docma-content","defaultApiName":"_def_","logsEnabled":false})); -!function(){"use strict";var r="path"===docma.app.routing.method;function n(a){return(a.params[1]||"").replace(/\/$/,"")}function a(a,e){var o=n(a)||docma._.defaultApiName,t=docma.createRoute(o,DocmaWeb.Route.Type.API);if(!t||!t.exists())return e();t.apply()}docma.app.base&&page.base(docma.app.base),page.redirect("(/)?"+docma.template.main,""),r&&(page("(/)?api/(.+)",a),page("(/)?api(/)?",a),page("(/)?(.*)",function(a,e){var o=n(a),t=docma.createRoute(o,DocmaWeb.Route.Type.CONTENT);if(!t||!t.exists())return e();t.apply()})),page("(/)?",function(c,i){!function(){if(r){var a=sessionStorage.getItem("redirectPath")||null;if(a)return sessionStorage.removeItem("redirectPath"),docma.info("Redirecting to:",a),page.redirect(a),1}}()&&setTimeout(function(){var a,e,o,t=(e=c.querystring,o=e||window.location.search,/^[?&]/.test(o)&&(o=o.slice(1)),o||null);if(r){if(t)return i();a=docma._.appEntranceRI}else docma.log("Query-string:",t),a=t?docma.createRouteFromQuery(t):docma._.appEntranceRI;if(!a||!a.exists())return i();function n(){docma._trigger(DocmaWeb.Event.Navigate,[a])}a.isCurrent()?n():a.apply(function(a){200===a&&n()})},100)}),page("*",function(a){docma.warn("Unknown Route:",a.path),docma.log("context:",a),docma.createRoute(null).apply()}),docma.info("Docma SPA Configuration:"),docma.info("App Title: ",docma.app.title),docma.info("Routing Method: ",docma.app.routing.method),docma.info("App Server: ",docma.app.server),docma.info("Base Path: ",docma.app.base),docma.info("Entrance Route ID: ",docma.app.entrance),window.onload=function(){docma._.initialLoad=!0,docma._.appEntranceRI=docma.createRouteFromID(docma.app.entrance),page.start({click:!0,popstate:!0,dispatch:!0,hashbang:!1,decodeURLComponents:!0}),docma.info("Docma SPA loaded!")}}(); \ No newline at end of file +!function(){"use strict";var c="path"===docma.app.routing.method;function o(a){return(a.params[1]||"").replace(/\/$/,"")}function a(a,e){a=o(a)||docma._.defaultApiName,a=docma.createRoute(a,DocmaWeb.Route.Type.API);if(!a||!a.exists())return e();a.apply()}docma.app.base&&page.base(docma.app.base),page.redirect("(/)?"+docma.template.main,""),c&&(page("(/)?api/(.+)",a),page("(/)?api(/)?",a),page("(/)?(.*)",function(a,e){a=o(a),a=docma.createRoute(a,DocmaWeb.Route.Type.CONTENT);if(!a||!a.exists())return e();a.apply()})),page("(/)?",function(t,n){!function(){if(c){var a=sessionStorage.getItem("redirectPath")||null;if(a)return sessionStorage.removeItem("redirectPath"),docma.info("Redirecting to:",a),page.redirect(a),1}}()&&setTimeout(function(){var a,e,e=(e=(e=t.querystring)||window.location.search,(e=/^[?&]/.test(e)?e.slice(1):e)||null);if(c){if(e)return n();a=docma._.appEntranceRI}else docma.log("Query-string:",e),a=e?docma.createRouteFromQuery(e):docma._.appEntranceRI;if(!a||!a.exists())return n();function o(){docma._trigger(DocmaWeb.Event.Navigate,[a])}a.isCurrent()?o():a.apply(function(a){200===a&&o()})},100)}),page("*",function(a){docma.warn("Unknown Route:",a.path),docma.log("context:",a),docma.createRoute(null).apply()}),docma.info("Docma SPA Configuration:"),docma.info("App Title: ",docma.app.title),docma.info("Routing Method: ",docma.app.routing.method),docma.info("App Server: ",docma.app.server),docma.info("Base Path: ",docma.app.base),docma.info("Entrance Route ID: ",docma.app.entrance),window.onload=function(){docma._.initialLoad=!0,docma._.appEntranceRI=docma.createRouteFromID(docma.app.entrance),page.start({click:!0,popstate:!0,dispatch:!0,hashbang:!1,decodeURLComponents:!0}),docma.info("Docma SPA loaded!")}}(); \ No newline at end of file diff --git a/index.js b/index.js index 3e1a9e7..57a3889 100644 --- a/index.js +++ b/index.js @@ -21,6 +21,21 @@ * @external Equipment * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters} */ +/** + * Chapter Data + * @external Chapter + * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters} + */ +/** + * Voiceline Data + * @external Voiceline + * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters} + */ +/** + * Barrage Data + * @external Barrage + * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters} + */ module.exports = { Saratoga: require('./src/Saratoga'), From c7d69d0dc23098767d4f81cb926895b18d972530 Mon Sep 17 00:00:00 2001 From: 0t4u <61939142+0t4u@users.noreply.github.com> Date: Mon, 25 Jan 2021 17:54:56 +0800 Subject: [PATCH 03/14] feat: add filter and search for ships and equipments Changes: - Added .filter() and .search() functions for ship data and equipment data - Regenerate docma docs --- docs/js/docma-web.js | 2 +- src/store/SaratogaEquipments.js | 16 ++++++++++++++++ src/store/SaratogaShips.js | 16 ++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/docs/js/docma-web.js b/docs/js/docma-web.js index 6ca5cc6..c4c7cd8 100644 --- a/docs/js/docma-web.js +++ b/docs/js/docma-web.js @@ -44,6 +44,6 @@ dust.filters=dust.filters||{},dust.filters.$pt=function(e){return DocmaWeb.Utils DocmaWeb.version = "3.2.2"; return DocmaWeb; })(); -var docma = Object.freeze(new DocmaWeb({"version":"3.2.2","routes":[{"id":"api:","type":"api","name":"_def_","path":"?api","contentPath":null,"sourceType":"js"},{"id":"content:readme","type":"content","name":"readme","path":"?content=readme","contentPath":"content/readme.html","sourceType":"md"}],"apis":{"_def_":{"documentation":[{"comment":"/**\n * Saratoga, the starting point of this API\n * @class Saratoga\n * @extends {EventEmitter}\n */","meta":{"filename":"Saratoga.js","lineno":4,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Saratoga, the starting point of this API

    ","kind":"class","name":"Saratoga","augments":["EventEmitter"],"longname":"Saratoga","scope":"global","$longname":"Saratoga","$kind":"class","$docmaLink":"?api#Saratoga","$members":[{"comment":"/**\n * Barrage related getters for this store\n * @type {SaratogaBarrages}\n */","meta":{"range":[2891,2987],"filename":"Saratoga.js","lineno":108,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000166","name":"Saratoga#barrages","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Barrage related getters for this store

    ","type":{"names":["SaratogaBarrages"]},"name":"barrages","longname":"Saratoga#barrages","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#barrages","$kind":"property","$docmaLink":"?api#Saratoga#barrages"},{"comment":"/**\n * Chapters related getters for this store\n * @type {SaratogaChapters}\n */","meta":{"range":[2493,2589],"filename":"Saratoga.js","lineno":92,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000132","name":"Saratoga#chapters","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Chapters related getters for this store

    ","type":{"names":["SaratogaChapters"]},"name":"chapters","longname":"Saratoga#chapters","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#chapters","$kind":"property","$docmaLink":"?api#Saratoga#chapters"},{"comment":"/**\n * Azur Lane's Equipment related getter methods\n * @type {SaratogaEquipments}\n */","meta":{"range":[2293,2393],"filename":"Saratoga.js","lineno":84,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000115","name":"Saratoga#equipments","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Azur Lane's Equipment related getter methods

    ","type":{"names":["SaratogaEquipments"]},"name":"equipments","longname":"Saratoga#equipments","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#equipments","$kind":"property","$docmaLink":"?api#Saratoga#equipments"},{"comment":"/**\n * If Saratoga is ready to operate\n * @type {Boolean}\n */","meta":{"range":[1910,1997],"filename":"Saratoga.js","lineno":67,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000080","name":"Saratoga#ready","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    If Saratoga is ready to operate

    ","type":{"names":["Boolean"]},"name":"ready","longname":"Saratoga#ready","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#ready","$kind":"property","$docmaLink":"?api#Saratoga#ready"},{"comment":"/**\n * Azur Lane's Ship related getter methods\n * @type {SaratogaShips}\n */","meta":{"range":[2095,2185],"filename":"Saratoga.js","lineno":75,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000098","name":"Saratoga#ships","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Azur Lane's Ship related getter methods

    ","type":{"names":["SaratogaShips"]},"name":"ships","longname":"Saratoga#ships","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#ships","$kind":"property","$docmaLink":"?api#Saratoga#ships"},{"comment":"/**\n * Contains methods and props for managing cached data\n * @type {SaratogaStore}\n */","meta":{"range":[567,603],"filename":"Saratoga.js","lineno":19,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000053","name":"this.store","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Contains methods and props for managing cached data

    ","type":{"names":["SaratogaStore"]},"name":"store","longname":"Saratoga#store","kind":"member","memberof":"Saratoga","scope":"instance","$longname":"Saratoga#store","$kind":"property","$docmaLink":"?api#Saratoga#store"},{"comment":"/**\n * Contains methods for updating Saratoga's local data & cache\n * @type {SaratogaUpdater}\n */","meta":{"range":[1770,1826],"filename":"Saratoga.js","lineno":59,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000070","name":"Saratoga#updater","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Contains methods for updating Saratoga's local data & cache

    ","type":{"names":["SaratogaUpdater"]},"name":"updater","longname":"Saratoga#updater","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#updater","$kind":"property","$docmaLink":"?api#Saratoga#updater"},{"comment":"/**\n * Voiceline related getters for this store\n * @type {SaratogaVoicelines}\n */","meta":{"range":[2692,2792],"filename":"Saratoga.js","lineno":100,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000149","name":"Saratoga#voicelines","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Voiceline related getters for this store

    ","type":{"names":["SaratogaVoicelines"]},"name":"voicelines","longname":"Saratoga#voicelines","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#voicelines","$kind":"property","$docmaLink":"?api#Saratoga#voicelines"},{"comment":"/**\n * Emitted when there is a debug data\n * @event Saratoga#debug\n * @param {string} message Debug message\n * @memberof Saratoga\n */","meta":{"filename":"Saratoga.js","lineno":23,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is a debug data

    ","kind":"event","name":"debug","params":[{"type":{"names":["string"]},"description":"

    Debug message

    ","name":"message"}],"memberof":"Saratoga","longname":"Saratoga#event:debug","scope":"instance","$longname":"Saratoga#event:debug","$kind":"event","$docmaLink":"?api#Saratoga#event:debug"},{"comment":"/**\n * Emitted when there is a pesky error\n * @event Saratoga#error\n * @param {Error} error The error encountered.\n * @memberof Saratoga\n * @example\n * Saratoga.on('error', console.error);\n */","meta":{"filename":"Saratoga.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is a pesky error

    ","kind":"event","name":"error","params":[{"type":{"names":["Error"]},"description":"

    The error encountered.

    ","name":"error"}],"memberof":"Saratoga","examples":["Saratoga.on('error', console.error);"],"longname":"Saratoga#event:error","scope":"instance","$longname":"Saratoga#event:error","$kind":"event","$docmaLink":"?api#Saratoga#event:error"},{"comment":"/**\n * Emitted when Saratoga is ready\n * @event Saratoga#ready\n * @memberof Saratoga\n */","meta":{"filename":"Saratoga.js","lineno":49,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when Saratoga is ready

    ","kind":"event","name":"ready","memberof":"Saratoga","longname":"Saratoga#event:ready","scope":"instance","$longname":"Saratoga#event:ready","$kind":"event","$docmaLink":"?api#Saratoga#event:ready"},{"comment":"/**\n * Emitted when there is an update available for local data. Only available when Saratoga is initialized with notifyForNewUpdates set to true\n * @event Saratoga#updateAvailable\n * @param {Object} data What data needs updating\n * @memberof Saratoga\n * @example\n * Saratoga.on('updateAvailable', (data) => {\n * if (data.shipUpdateAvailable || data.equipmentUpdateAvailable) {\n * // handle update\n * }\n * })\n */","meta":{"filename":"Saratoga.js","lineno":37,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is an update available for local data. Only available when Saratoga is initialized with notifyForNewUpdates set to true

    ","kind":"event","name":"updateAvailable","params":[{"type":{"names":["Object"]},"description":"

    What data needs updating

    ","name":"data"}],"memberof":"Saratoga","examples":["Saratoga.on('updateAvailable', (data) => {\n if (data.shipUpdateAvailable || data.equipmentUpdateAvailable) {\n // handle update\n }\n})"],"longname":"Saratoga#event:updateAvailable","scope":"instance","$longname":"Saratoga#event:updateAvailable","$kind":"event","$docmaLink":"?api#Saratoga#event:updateAvailable"}],"$constructor":{"comment":"/**\n * @param {Object} options Object with a single parameter, which is notifyForNewUpdates, which is a boolean\n */","meta":{"range":[366,679],"filename":"Saratoga.js","lineno":13,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000040","name":"Saratoga","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"params":[{"type":{"names":["Object"]},"description":"

    Object with a single parameter, which is notifyForNewUpdates, which is a boolean

    ","name":"options"}],"name":"Saratoga","longname":"Saratoga","kind":"class","scope":"global","$longname":"Saratoga","$kind":"constructor","$docmaLink":"?api#Saratoga"}},{"comment":"/**\n * Equipment related getters for Saratoga\n * @class SaratogaEquipments\n */","meta":{"filename":"SaratogaEquipments.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Equipment related getters for Saratoga

    ","kind":"class","name":"SaratogaEquipments","longname":"SaratogaEquipments","scope":"global","$longname":"SaratogaEquipments","$kind":"class","$docmaLink":"?api#SaratogaEquipments","$members":[{"comment":"/**\n * Lists the equipments by category\n * @param {string} category name of the category you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[751,893],"filename":"SaratogaEquipments.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000251","name":"SaratogaEquipments#getAllByCategory","type":"MethodDefinition","paramnames":["category"]},"vars":{"":null}},"description":"

    Lists the equipments by category

    ","params":[{"type":{"names":["string"]},"description":"

    name of the category you want to search for

    ","name":"category"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByCategory","longname":"SaratogaEquipments#getAllByCategory","kind":"function","scope":"instance","$longname":"SaratogaEquipments#getAllByCategory","$kind":"method","$docmaLink":"?api#SaratogaEquipments#getAllByCategory"},{"comment":"/**\n * Lists the equipments by nationality\n * @param {string} nationality naitionality name of the equipments you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[1130,1284],"filename":"SaratogaEquipments.js","lineno":40,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000277","name":"SaratogaEquipments#getAllByNationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists the equipments by nationality

    ","params":[{"type":{"names":["string"]},"description":"

    naitionality name of the equipments you want to search for

    ","name":"nationality"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByNationality","longname":"SaratogaEquipments#getAllByNationality","kind":"function","scope":"instance","$longname":"SaratogaEquipments#getAllByNationality","$kind":"method","$docmaLink":"?api#SaratogaEquipments#getAllByNationality"},{"comment":"/**\n * Searches for a specific equipment. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the equipment you want to search for\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaEquipments\n * @returns {Equipment | null}\n */","meta":{"range":[1591,1835],"filename":"SaratogaEquipments.js","lineno":52,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000303","name":"SaratogaEquipments#searchByEquipmentName","type":"MethodDefinition","paramnames":["name","limit"]},"vars":{"":null}},"description":"

    Searches for a specific equipment. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the equipment you want to search for

    ","name":"name"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Equipment","null"]}}],"name":"searchByEquipmentName","longname":"SaratogaEquipments#searchByEquipmentName","kind":"function","scope":"instance","$longname":"SaratogaEquipments#searchByEquipmentName","$kind":"method","$docmaLink":"?api#SaratogaEquipments#searchByEquipmentName"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[213,321],"filename":"SaratogaEquipments.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000198","name":"SaratogaEquipments","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaEquipments","longname":"SaratogaEquipments","kind":"class","scope":"global","$longname":"SaratogaEquipments","$kind":"constructor","$docmaLink":"?api#SaratogaEquipments"}},{"comment":"/**\n * Ship related getters for Saratoga\n * @class SaratogaShips\n */","meta":{"filename":"SaratogaShips.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Ship related getters for Saratoga

    ","kind":"class","name":"SaratogaShips","longname":"SaratogaShips","scope":"global","$longname":"SaratogaShips","$kind":"class","$docmaLink":"?api#SaratogaShips","$members":[{"comment":"/**\n * Lists all the ships that matches a specific shjp class\n * @param {string} shipClass class of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[761,899],"filename":"SaratogaShips.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000404","name":"SaratogaShips#getAllByClass","type":"MethodDefinition","paramnames":["shipClass"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific shjp class

    ","params":[{"type":{"names":["string"]},"description":"

    class of the ship you want to search for (Case Sensitive)

    ","name":"shipClass"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByClass","longname":"SaratogaShips#getAllByClass","kind":"function","scope":"instance","$longname":"SaratogaShips#getAllByClass","$kind":"method","$docmaLink":"?api#SaratogaShips#getAllByClass"},{"comment":"/**\n * Lists all the ships that matches a specific ship hull type\n * @param {string} hullType hullType of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1559,1701],"filename":"SaratogaShips.js","lineno":51,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000456","name":"SaratogaShips#getAllByHullType","type":"MethodDefinition","paramnames":["hullType"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship hull type

    ","params":[{"type":{"names":["string"]},"description":"

    hullType of the ship you want to search for (Case Sensitive)

    ","name":"hullType"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByHullType","longname":"SaratogaShips#getAllByHullType","kind":"function","scope":"instance","$longname":"SaratogaShips#getAllByHullType","$kind":"method","$docmaLink":"?api#SaratogaShips#getAllByHullType"},{"comment":"/**\n * Lists all the ships that matches a specific ship nationality\n * @param {string} nationality nationality of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1156,1310],"filename":"SaratogaShips.js","lineno":40,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000430","name":"SaratogaShips#getAllByNationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship nationality

    ","params":[{"type":{"names":["string"]},"description":"

    nationality of the ship you want to search for (Case Sensitive)

    ","name":"nationality"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByNationality","longname":"SaratogaShips#getAllByNationality","kind":"function","scope":"instance","$longname":"SaratogaShips#getAllByNationality","$kind":"method","$docmaLink":"?api#SaratogaShips#getAllByNationality"},{"comment":"/**\n * Lists all the ship that matches a specific rarity\n * @param {string} rarity rarity of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1937,2071],"filename":"SaratogaShips.js","lineno":62,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000482","name":"SaratogaShips#getAllByRarity","type":"MethodDefinition","paramnames":["rarity"]},"vars":{"":null}},"description":"

    Lists all the ship that matches a specific rarity

    ","params":[{"type":{"names":["string"]},"description":"

    rarity of the ship you want to search for (Case Sensitive)

    ","name":"rarity"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByRarity","longname":"SaratogaShips#getAllByRarity","kind":"function","scope":"instance","$longname":"SaratogaShips#getAllByRarity","$kind":"method","$docmaLink":"?api#SaratogaShips#getAllByRarity"},{"comment":"/**\n * Fetches a specific ship via its id\n * @param {number} id id of the ship you want to fetch\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[2255,2434],"filename":"SaratogaShips.js","lineno":73,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000508","name":"SaratogaShips#getById","type":"MethodDefinition","paramnames":["id"]},"vars":{"":null}},"description":"

    Fetches a specific ship via its id

    ","params":[{"type":{"names":["number"]},"description":"

    id of the ship you want to fetch

    ","name":"id"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"getById","longname":"SaratogaShips#getById","kind":"function","scope":"instance","$longname":"SaratogaShips#getById","$kind":"method","$docmaLink":"?api#SaratogaShips#getById"},{"comment":"/**\n * Searches for a specific ship. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the ship you want to search for\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[2721,2946],"filename":"SaratogaShips.js","lineno":87,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000545","name":"SaratogaShips#searchShipByName","type":"MethodDefinition","paramnames":["name","limit"]},"vars":{"":null}},"description":"

    Searches for a specific ship. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the ship you want to search for

    ","name":"name"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"searchShipByName","longname":"SaratogaShips#searchShipByName","kind":"function","scope":"instance","$longname":"SaratogaShips#searchShipByName","$kind":"method","$docmaLink":"?api#SaratogaShips#searchShipByName"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[198,306],"filename":"SaratogaShips.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000351","name":"SaratogaShips","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaShips","longname":"SaratogaShips","kind":"class","scope":"global","$longname":"SaratogaShips","$kind":"constructor","$docmaLink":"?api#SaratogaShips"}},{"comment":"/**\n * Saratoga, the starting point of this API\n * @class SaratogaStore\n */","meta":{"filename":"SaratogaStore.js","lineno":7,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Saratoga, the starting point of this API

    ","kind":"class","name":"SaratogaStore","longname":"SaratogaStore","scope":"global","$longname":"SaratogaStore","$kind":"class","$docmaLink":"?api#SaratogaStore","$members":[{"comment":"/**\n * Equipment related getters for this store\n * @type {SaratogaEquipments}\n */","meta":{"range":[906,952],"filename":"SaratogaStore.js","lineno":30,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000643","name":"this.equipments","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Equipment related getters for this store

    ","type":{"names":["SaratogaEquipments"]},"name":"equipments","longname":"SaratogaStore#equipments","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#equipments","$kind":"property","$docmaLink":"?api#SaratogaStore#equipments"},{"comment":"/**\n * If this store is already ready to operate\n * @type {Boolean}\n */","meta":{"range":[1732,1750],"filename":"SaratogaStore.js","lineno":55,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000659","name":"this.ready","type":"Literal","value":false,"paramnames":[]}},"description":"

    If this store is already ready to operate

    ","type":{"names":["Boolean"]},"name":"ready","longname":"SaratogaStore#ready","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#ready","$kind":"property","$docmaLink":"?api#SaratogaStore#ready"},{"comment":"/**\n * The saratoga instance that generated this instance\n * @type {Saratoga}\n */","meta":{"range":[608,632],"filename":"SaratogaStore.js","lineno":20,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000629","name":"this.saratoga","type":"Identifier","value":"saratoga","paramnames":[]}},"description":"

    The saratoga instance that generated this instance

    ","type":{"names":["Saratoga"]},"name":"saratoga","longname":"SaratogaStore#saratoga","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#saratoga","$kind":"property","$docmaLink":"?api#SaratogaStore#saratoga"},{"comment":"/**\n * Ship related getters for this store\n * @type {SaratogaShips}\n */","meta":{"range":[746,782],"filename":"SaratogaStore.js","lineno":25,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000635","name":"this.ships","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Ship related getters for this store

    ","type":{"names":["SaratogaShips"]},"name":"ships","longname":"SaratogaStore#ships","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#ships","$kind":"property","$docmaLink":"?api#SaratogaStore#ships"},{"comment":"/**\n * Updater Class for the local data for this store\n * @type {SaratogaUpdater}\n */","meta":{"range":[1578,1618],"filename":"SaratogaStore.js","lineno":50,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000651","name":"this.updater","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Updater Class for the local data for this store

    ","type":{"names":["SaratogaUpdater"]},"name":"updater","longname":"SaratogaStore#updater","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#updater","$kind":"property","$docmaLink":"?api#SaratogaStore#updater"}],"$constructor":{"comment":"/**\n * @param {Saratoga} saratoga The saratoga class that generated this instance\n */","meta":{"range":[462,2583],"filename":"SaratogaStore.js","lineno":15,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000623","name":"SaratogaStore","type":"MethodDefinition","paramnames":["saratoga"]},"vars":{"":null}},"params":[{"type":{"names":["Saratoga"]},"description":"

    The saratoga class that generated this instance

    ","name":"saratoga"}],"name":"SaratogaStore","longname":"SaratogaStore","kind":"class","scope":"global","$longname":"SaratogaStore","$kind":"constructor","$docmaLink":"?api#SaratogaStore"}},{"comment":"/**\n * Manages the local data & cache updates\n * @class SaratogaUpdater\n */","meta":{"filename":"SaratogaUpdater.js","lineno":5,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{}},"description":"

    Manages the local data & cache updates

    ","kind":"class","name":"SaratogaUpdater","longname":"SaratogaUpdater","scope":"global","$longname":"SaratogaUpdater","$kind":"class","$docmaLink":"?api#SaratogaUpdater","$members":[{"comment":"/**\n * Checks if there is new updates for ship or equipment data\n * @memberof SaratogaUpdater\n * @returns {Promise}\n * @example\n * const api = new Saratoga();\n * api.updater.checkForUpdate()\n * .then((response) => {\n * if (response.shipUpdateAvailable || response.equipmentUpdateAvailable) console.log('update available');\n * })\n */","meta":{"range":[3518,3930],"filename":"SaratogaUpdater.js","lineno":90,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001677","name":"SaratogaUpdater#checkForUpdate","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Checks if there is new updates for ship or equipment data

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"examples":["const api = new Saratoga();\napi.updater.checkForUpdate()\n .then((response) => {\n if (response.shipUpdateAvailable || response.equipmentUpdateAvailable) console.log('update available');\n })"],"name":"checkForUpdate","longname":"SaratogaUpdater#checkForUpdate","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#checkForUpdate","$kind":"method","$docmaLink":"?api#SaratogaUpdater#checkForUpdate"},{"comment":"/**\n * Updates the Cached Data, loaded from the local files of Saratoga\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[5315,5490],"filename":"SaratogaUpdater.js","lineno":135,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001797","name":"SaratogaUpdater#updateCache","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Cached Data, loaded from the local files of Saratoga

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateCache","longname":"SaratogaUpdater#updateCache","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateCache","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateCache"},{"comment":"/**\n * Updates the Local Files & Cached Data in one method, good for single process scenarios as it's easy. Not for multi sharded programs that has its own Saratoga instance per shard.\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[3011,3117],"filename":"SaratogaUpdater.js","lineno":74,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001661","name":"SaratogaUpdater#updateDataAndCache","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Local Files & Cached Data in one method, good for single process scenarios as it's easy. Not for multi sharded programs that has its own Saratoga instance per shard.

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateDataAndCache","longname":"SaratogaUpdater#updateDataAndCache","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateDataAndCache","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateDataAndCache"},{"comment":"/**\n * Updates the Local Files of Saratoga if there is an update\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[4082,5156],"filename":"SaratogaUpdater.js","lineno":104,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001697","name":"SaratogaUpdater#updateLocalData","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Local Files of Saratoga if there is an update

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateLocalData","longname":"SaratogaUpdater#updateLocalData","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateLocalData","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateLocalData"},{"comment":"/**\n * The cron update checker which is responsible for Saratoga#updateAvailable event\n * @type {?Timeout}\n */","meta":{"range":[830,852],"filename":"SaratogaUpdater.js","lineno":28,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001394","name":"this.cronUpdate","type":"Literal","value":null,"paramnames":[]}},"description":"

    The cron update checker which is responsible for Saratoga#updateAvailable event

    ","type":{"names":["Timeout"]},"nullable":true,"name":"cronUpdate","longname":"SaratogaUpdater#cronUpdate","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#cronUpdate","$kind":"property","$docmaLink":"?api#SaratogaUpdater#cronUpdate"},{"comment":"/**\n * If the data directory of this updater is ready to operate\n * @type {Boolean}\n */","meta":{"range":[652,677],"filename":"SaratogaUpdater.js","lineno":23,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001388","name":"this.dataDirReady","type":"Literal","value":false,"paramnames":[]}},"description":"

    If the data directory of this updater is ready to operate

    ","type":{"names":["Boolean"]},"name":"dataDirReady","longname":"SaratogaUpdater#dataDirReady","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#dataDirReady","$kind":"property","$docmaLink":"?api#SaratogaUpdater#dataDirReady"},{"comment":"/**\n * The saratoga instance that generated this instance\n * @type {Saratoga}\n */","meta":{"range":[963,1021],"filename":"SaratogaUpdater.js","lineno":35,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001399","name":"SaratogaUpdater#saratoga","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    The saratoga instance that generated this instance

    ","type":{"names":["Saratoga"]},"name":"saratoga","longname":"SaratogaUpdater#saratoga","kind":"member","memberof":"SaratogaUpdater","scope":"instance","params":[],"$longname":"SaratogaUpdater#saratoga","$kind":"property","$docmaLink":"?api#SaratogaUpdater#saratoga"},{"comment":"/**\n * The updater instance that generated this instance\n * @type {SaratogaStore}\n */","meta":{"range":[504,522],"filename":"SaratogaUpdater.js","lineno":18,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001382","name":"this.store","type":"Identifier","value":"store","paramnames":[]}},"description":"

    The updater instance that generated this instance

    ","type":{"names":["SaratogaStore"]},"name":"store","longname":"SaratogaUpdater#store","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#store","$kind":"property","$docmaLink":"?api#SaratogaUpdater#store"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[357,859],"filename":"SaratogaUpdater.js","lineno":13,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001376","name":"SaratogaUpdater","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaUpdater","longname":"SaratogaUpdater","kind":"class","scope":"global","$longname":"SaratogaUpdater","$kind":"constructor","$docmaLink":"?api#SaratogaUpdater"}},{"comment":"","meta":{"range":[122,250],"filename":"SaratogaValidator.js","lineno":5,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002188","name":"SaratogaValidator","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"undocumented":true,"name":"SaratogaValidator","longname":"SaratogaValidator","kind":"class","scope":"global","params":[],"$longname":"SaratogaValidator","$kind":"constructor","$docmaLink":"?api#SaratogaValidator"},{"comment":"/**\n * Barrage Data\n * @external Barrage\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":34,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Barrage Data

    ","kind":"external","name":"Barrage","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Barrage","scope":"global","$longname":"external:Barrage","$kind":"external","$docmaLink":"?api#external:Barrage"},{"comment":"/**\n * Chapter Data\n * @external Chapter\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":24,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Chapter Data

    ","kind":"external","name":"Chapter","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Chapter","scope":"global","$longname":"external:Chapter","$kind":"external","$docmaLink":"?api#external:Chapter"},{"comment":"/**\n * Equipment Data\n * @external Equipment\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":19,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Equipment Data

    ","kind":"external","name":"Equipment","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Equipment","scope":"global","$longname":"external:Equipment","$kind":"external","$docmaLink":"?api#external:Equipment"},{"comment":"/**\n * Node.js Event Emitter\n * @external EventEmitter\n * @see {@link https://nodejs.org/api/events.html}\n */","meta":{"filename":"index.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Node.js Event Emitter

    ","kind":"external","name":"EventEmitter","see":["{@link https://nodejs.org/api/events.html}"],"longname":"external:EventEmitter","scope":"global","$longname":"external:EventEmitter","$kind":"external","$docmaLink":"?api#external:EventEmitter"},{"comment":"/**\n * Ship Data\n * @external Ship\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#ship-getters}\n */","meta":{"filename":"index.js","lineno":13,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Ship Data

    ","kind":"external","name":"Ship","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#ship-getters}"],"longname":"external:Ship","scope":"global","$longname":"external:Ship","$kind":"external","$docmaLink":"?api#external:Ship"},{"comment":"/**\n * Node.js Timeout\n * @external Timeout\n * @see {@link https://nodejs.org/dist/latest/docs/api/timers.html#timers_class_timeout}\n */","meta":{"filename":"index.js","lineno":7,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Node.js Timeout

    ","kind":"external","name":"Timeout","see":["{@link https://nodejs.org/dist/latest/docs/api/timers.html#timers_class_timeout}"],"longname":"external:Timeout","scope":"global","$longname":"external:Timeout","$kind":"external","$docmaLink":"?api#external:Timeout"},{"comment":"/**\n * Voiceline Data\n * @external Voiceline\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":29,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Voiceline Data

    ","kind":"external","name":"Voiceline","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Voiceline","scope":"global","$longname":"external:Voiceline","$kind":"external","$docmaLink":"?api#external:Voiceline"}],"symbols":["external:Barrage","external:Chapter","external:Equipment","external:EventEmitter","external:Ship","external:Timeout","external:Voiceline","Saratoga","Saratoga#barrages","Saratoga#chapters","Saratoga#equipments","Saratoga#event:debug","Saratoga#event:error","Saratoga#event:ready","Saratoga#event:updateAvailable","Saratoga#ready","Saratoga#ships","Saratoga#store","Saratoga#updater","Saratoga#voicelines","SaratogaEquipments","SaratogaEquipments#getAllByCategory","SaratogaEquipments#getAllByNationality","SaratogaEquipments#searchByEquipmentName","SaratogaShips","SaratogaShips#getAllByClass","SaratogaShips#getAllByHullType","SaratogaShips#getAllByNationality","SaratogaShips#getAllByRarity","SaratogaShips#getById","SaratogaShips#searchShipByName","SaratogaStore","SaratogaStore#equipments","SaratogaStore#ready","SaratogaStore#saratoga","SaratogaStore#ships","SaratogaStore#updater","SaratogaUpdater","SaratogaUpdater#checkForUpdate","SaratogaUpdater#cronUpdate","SaratogaUpdater#dataDirReady","SaratogaUpdater#saratoga","SaratogaUpdater#store","SaratogaUpdater#updateCache","SaratogaUpdater#updateDataAndCache","SaratogaUpdater#updateLocalData","SaratogaValidator"]}},"app":{"title":"Saratoga | An open source Azur Lane local library","routing":{"method":"query","caseSensitive":true},"entrance":"content:readme","base":"/Saratoga/","meta":null,"server":"static","favicon":""},"template":{"name":"docma-template-zebra","description":"Zebra - Default template for Docma. https://github.com/onury/docma","version":"2.3.1","supportedDocmaVersion":">=2.0.0","author":"Onur Yıldırım","license":"MIT","mainHTML":"index.html","options":{"title":{"label":"Saratoga","href":"."},"sidebar":{"enabled":true,"outline":"tree","collapsed":false,"toolbar":true,"itemsFolded":false,"itemsOverflow":"crop","badges":true,"search":true,"animations":true},"symbols":{"autoLink":true,"params":"list","enums":"list","props":"list","meta":false},"navbar":{"enabled":true,"dark":false,"animations":true,"menu":[{"label":"Readme","href":"."},{"label":"Documentation","href":"?api"},{"label":"GitHub","href":"https://github.com/AzurAPI/Saratoga"}],"fixed":true},"logo":null,"contentView":{"bookmarks":false,"faVersion":"5.5.0","faLibs":"all"}}},"partials":{"api":"docma-api","content":"docma-content","notFound":"docma-404"},"elementID":"docma-main","contentElementID":"docma-content","defaultApiName":"_def_","logsEnabled":false})); +var docma = Object.freeze(new DocmaWeb({"version":"3.2.2","routes":[{"id":"api:","type":"api","name":"_def_","path":"?api","contentPath":null,"sourceType":"js"},{"id":"content:readme","type":"content","name":"readme","path":"?content=readme","contentPath":"content/readme.html","sourceType":"md"}],"apis":{"_def_":{"documentation":[{"comment":"/**\n * Saratoga, the starting point of this API\n * @class Saratoga\n * @extends {EventEmitter}\n */","meta":{"filename":"Saratoga.js","lineno":4,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Saratoga, the starting point of this API

    ","kind":"class","name":"Saratoga","augments":["EventEmitter"],"longname":"Saratoga","scope":"global","$longname":"Saratoga","$kind":"class","$docmaLink":"?api#Saratoga","$members":[{"comment":"/**\n * Barrage related getters for this store\n * @type {SaratogaBarrages}\n */","meta":{"range":[2891,2987],"filename":"Saratoga.js","lineno":108,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000166","name":"Saratoga#barrages","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Barrage related getters for this store

    ","type":{"names":["SaratogaBarrages"]},"name":"barrages","longname":"Saratoga#barrages","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#barrages","$kind":"property","$docmaLink":"?api#Saratoga#barrages"},{"comment":"/**\n * Chapters related getters for this store\n * @type {SaratogaChapters}\n */","meta":{"range":[2493,2589],"filename":"Saratoga.js","lineno":92,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000132","name":"Saratoga#chapters","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Chapters related getters for this store

    ","type":{"names":["SaratogaChapters"]},"name":"chapters","longname":"Saratoga#chapters","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#chapters","$kind":"property","$docmaLink":"?api#Saratoga#chapters"},{"comment":"/**\n * Azur Lane's Equipment related getter methods\n * @type {SaratogaEquipments}\n */","meta":{"range":[2293,2393],"filename":"Saratoga.js","lineno":84,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000115","name":"Saratoga#equipments","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Azur Lane's Equipment related getter methods

    ","type":{"names":["SaratogaEquipments"]},"name":"equipments","longname":"Saratoga#equipments","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#equipments","$kind":"property","$docmaLink":"?api#Saratoga#equipments"},{"comment":"/**\n * If Saratoga is ready to operate\n * @type {Boolean}\n */","meta":{"range":[1910,1997],"filename":"Saratoga.js","lineno":67,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000080","name":"Saratoga#ready","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    If Saratoga is ready to operate

    ","type":{"names":["Boolean"]},"name":"ready","longname":"Saratoga#ready","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#ready","$kind":"property","$docmaLink":"?api#Saratoga#ready"},{"comment":"/**\n * Azur Lane's Ship related getter methods\n * @type {SaratogaShips}\n */","meta":{"range":[2095,2185],"filename":"Saratoga.js","lineno":75,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000098","name":"Saratoga#ships","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Azur Lane's Ship related getter methods

    ","type":{"names":["SaratogaShips"]},"name":"ships","longname":"Saratoga#ships","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#ships","$kind":"property","$docmaLink":"?api#Saratoga#ships"},{"comment":"/**\n * Contains methods and props for managing cached data\n * @type {SaratogaStore}\n */","meta":{"range":[567,603],"filename":"Saratoga.js","lineno":19,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000053","name":"this.store","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Contains methods and props for managing cached data

    ","type":{"names":["SaratogaStore"]},"name":"store","longname":"Saratoga#store","kind":"member","memberof":"Saratoga","scope":"instance","$longname":"Saratoga#store","$kind":"property","$docmaLink":"?api#Saratoga#store"},{"comment":"/**\n * Contains methods for updating Saratoga's local data & cache\n * @type {SaratogaUpdater}\n */","meta":{"range":[1770,1826],"filename":"Saratoga.js","lineno":59,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000070","name":"Saratoga#updater","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Contains methods for updating Saratoga's local data & cache

    ","type":{"names":["SaratogaUpdater"]},"name":"updater","longname":"Saratoga#updater","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#updater","$kind":"property","$docmaLink":"?api#Saratoga#updater"},{"comment":"/**\n * Voiceline related getters for this store\n * @type {SaratogaVoicelines}\n */","meta":{"range":[2692,2792],"filename":"Saratoga.js","lineno":100,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000149","name":"Saratoga#voicelines","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Voiceline related getters for this store

    ","type":{"names":["SaratogaVoicelines"]},"name":"voicelines","longname":"Saratoga#voicelines","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#voicelines","$kind":"property","$docmaLink":"?api#Saratoga#voicelines"},{"comment":"/**\n * Emitted when there is a debug data\n * @event Saratoga#debug\n * @param {string} message Debug message\n * @memberof Saratoga\n */","meta":{"filename":"Saratoga.js","lineno":23,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is a debug data

    ","kind":"event","name":"debug","params":[{"type":{"names":["string"]},"description":"

    Debug message

    ","name":"message"}],"memberof":"Saratoga","longname":"Saratoga#event:debug","scope":"instance","$longname":"Saratoga#event:debug","$kind":"event","$docmaLink":"?api#Saratoga#event:debug"},{"comment":"/**\n * Emitted when there is a pesky error\n * @event Saratoga#error\n * @param {Error} error The error encountered.\n * @memberof Saratoga\n * @example\n * Saratoga.on('error', console.error);\n */","meta":{"filename":"Saratoga.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is a pesky error

    ","kind":"event","name":"error","params":[{"type":{"names":["Error"]},"description":"

    The error encountered.

    ","name":"error"}],"memberof":"Saratoga","examples":["Saratoga.on('error', console.error);"],"longname":"Saratoga#event:error","scope":"instance","$longname":"Saratoga#event:error","$kind":"event","$docmaLink":"?api#Saratoga#event:error"},{"comment":"/**\n * Emitted when Saratoga is ready\n * @event Saratoga#ready\n * @memberof Saratoga\n */","meta":{"filename":"Saratoga.js","lineno":49,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when Saratoga is ready

    ","kind":"event","name":"ready","memberof":"Saratoga","longname":"Saratoga#event:ready","scope":"instance","$longname":"Saratoga#event:ready","$kind":"event","$docmaLink":"?api#Saratoga#event:ready"},{"comment":"/**\n * Emitted when there is an update available for local data. Only available when Saratoga is initialized with notifyForNewUpdates set to true\n * @event Saratoga#updateAvailable\n * @param {Object} data What data needs updating\n * @memberof Saratoga\n * @example\n * Saratoga.on('updateAvailable', (data) => {\n * if (data.shipUpdateAvailable || data.equipmentUpdateAvailable) {\n * // handle update\n * }\n * })\n */","meta":{"filename":"Saratoga.js","lineno":37,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is an update available for local data. Only available when Saratoga is initialized with notifyForNewUpdates set to true

    ","kind":"event","name":"updateAvailable","params":[{"type":{"names":["Object"]},"description":"

    What data needs updating

    ","name":"data"}],"memberof":"Saratoga","examples":["Saratoga.on('updateAvailable', (data) => {\n if (data.shipUpdateAvailable || data.equipmentUpdateAvailable) {\n // handle update\n }\n})"],"longname":"Saratoga#event:updateAvailable","scope":"instance","$longname":"Saratoga#event:updateAvailable","$kind":"event","$docmaLink":"?api#Saratoga#event:updateAvailable"}],"$constructor":{"comment":"/**\n * @param {Object} options Object with a single parameter, which is notifyForNewUpdates, which is a boolean\n */","meta":{"range":[366,679],"filename":"Saratoga.js","lineno":13,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000040","name":"Saratoga","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"params":[{"type":{"names":["Object"]},"description":"

    Object with a single parameter, which is notifyForNewUpdates, which is a boolean

    ","name":"options"}],"name":"Saratoga","longname":"Saratoga","kind":"class","scope":"global","$longname":"Saratoga","$kind":"constructor","$docmaLink":"?api#Saratoga"}},{"comment":"/**\n * Equipment related getters for Saratoga\n * @class SaratogaEquipments\n */","meta":{"filename":"SaratogaEquipments.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Equipment related getters for Saratoga

    ","kind":"class","name":"SaratogaEquipments","longname":"SaratogaEquipments","scope":"global","$longname":"SaratogaEquipments","$kind":"class","$docmaLink":"?api#SaratogaEquipments","$members":[{"comment":"/**\n * Custom filter for equipment data\n * @param {requestCallback} callback the callback that handles the response\n */","meta":{"range":[1976,2088],"filename":"SaratogaEquipments.js","lineno":62,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000340","name":"SaratogaEquipments#filter","type":"MethodDefinition","paramnames":["callback"]},"vars":{"":null}},"description":"

    Custom filter for equipment data

    ","params":[{"type":{"names":["requestCallback"]},"description":"

    the callback that handles the response

    ","name":"callback"}],"name":"filter","longname":"SaratogaEquipments#filter","kind":"function","memberof":"SaratogaEquipments","scope":"instance","$longname":"SaratogaEquipments#filter","$kind":"method","$docmaLink":"?api#SaratogaEquipments#filter"},{"comment":"/**\n * Lists the equipments by category\n * @param {string} category name of the category you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[751,893],"filename":"SaratogaEquipments.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000251","name":"SaratogaEquipments#getAllByCategory","type":"MethodDefinition","paramnames":["category"]},"vars":{"":null}},"description":"

    Lists the equipments by category

    ","params":[{"type":{"names":["string"]},"description":"

    name of the category you want to search for

    ","name":"category"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByCategory","longname":"SaratogaEquipments#getAllByCategory","kind":"function","scope":"instance","$longname":"SaratogaEquipments#getAllByCategory","$kind":"method","$docmaLink":"?api#SaratogaEquipments#getAllByCategory"},{"comment":"/**\n * Lists the equipments by nationality\n * @param {string} nationality naitionality name of the equipments you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[1130,1284],"filename":"SaratogaEquipments.js","lineno":40,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000277","name":"SaratogaEquipments#getAllByNationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists the equipments by nationality

    ","params":[{"type":{"names":["string"]},"description":"

    naitionality name of the equipments you want to search for

    ","name":"nationality"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByNationality","longname":"SaratogaEquipments#getAllByNationality","kind":"function","scope":"instance","$longname":"SaratogaEquipments#getAllByNationality","$kind":"method","$docmaLink":"?api#SaratogaEquipments#getAllByNationality"},{"comment":"/**\n * Custom search for data in Fuse instance\n * @param {any} options Fuse search options\n */","meta":{"range":[2204,2311],"filename":"SaratogaEquipments.js","lineno":70,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000360","name":"SaratogaEquipments#search","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"

    Custom search for data in Fuse instance

    ","params":[{"type":{"names":["any"]},"description":"

    Fuse search options

    ","name":"options"}],"name":"search","longname":"SaratogaEquipments#search","kind":"function","memberof":"SaratogaEquipments","scope":"instance","$longname":"SaratogaEquipments#search","$kind":"method","$docmaLink":"?api#SaratogaEquipments#search"},{"comment":"/**\n * Searches for a specific equipment. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the equipment you want to search for\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaEquipments\n * @returns {Equipment | null}\n */","meta":{"range":[1591,1835],"filename":"SaratogaEquipments.js","lineno":52,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000303","name":"SaratogaEquipments#searchByEquipmentName","type":"MethodDefinition","paramnames":["name","limit"]},"vars":{"":null}},"description":"

    Searches for a specific equipment. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the equipment you want to search for

    ","name":"name"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Equipment","null"]}}],"name":"searchByEquipmentName","longname":"SaratogaEquipments#searchByEquipmentName","kind":"function","scope":"instance","$longname":"SaratogaEquipments#searchByEquipmentName","$kind":"method","$docmaLink":"?api#SaratogaEquipments#searchByEquipmentName"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[213,321],"filename":"SaratogaEquipments.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000198","name":"SaratogaEquipments","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaEquipments","longname":"SaratogaEquipments","kind":"class","scope":"global","$longname":"SaratogaEquipments","$kind":"constructor","$docmaLink":"?api#SaratogaEquipments"}},{"comment":"/**\n * Ship related getters for Saratoga\n * @class SaratogaShips\n */","meta":{"filename":"SaratogaShips.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Ship related getters for Saratoga

    ","kind":"class","name":"SaratogaShips","longname":"SaratogaShips","scope":"global","$longname":"SaratogaShips","$kind":"class","$docmaLink":"?api#SaratogaShips","$members":[{"comment":"/**\n * Custom filter for ship data\n * @param {requestCallback} callback the callback that handles the response\n */","meta":{"range":[3082,3194],"filename":"SaratogaShips.js","lineno":97,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000622","name":"SaratogaShips#filter","type":"MethodDefinition","paramnames":["callback"]},"vars":{"":null}},"description":"

    Custom filter for ship data

    ","params":[{"type":{"names":["requestCallback"]},"description":"

    the callback that handles the response

    ","name":"callback"}],"name":"filter","longname":"SaratogaShips#filter","kind":"function","memberof":"SaratogaShips","scope":"instance","$longname":"SaratogaShips#filter","$kind":"method","$docmaLink":"?api#SaratogaShips#filter"},{"comment":"/**\n * Lists all the ships that matches a specific shjp class\n * @param {string} shipClass class of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[761,899],"filename":"SaratogaShips.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000444","name":"SaratogaShips#getAllByClass","type":"MethodDefinition","paramnames":["shipClass"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific shjp class

    ","params":[{"type":{"names":["string"]},"description":"

    class of the ship you want to search for (Case Sensitive)

    ","name":"shipClass"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByClass","longname":"SaratogaShips#getAllByClass","kind":"function","scope":"instance","$longname":"SaratogaShips#getAllByClass","$kind":"method","$docmaLink":"?api#SaratogaShips#getAllByClass"},{"comment":"/**\n * Lists all the ships that matches a specific ship hull type\n * @param {string} hullType hullType of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1559,1701],"filename":"SaratogaShips.js","lineno":51,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000496","name":"SaratogaShips#getAllByHullType","type":"MethodDefinition","paramnames":["hullType"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship hull type

    ","params":[{"type":{"names":["string"]},"description":"

    hullType of the ship you want to search for (Case Sensitive)

    ","name":"hullType"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByHullType","longname":"SaratogaShips#getAllByHullType","kind":"function","scope":"instance","$longname":"SaratogaShips#getAllByHullType","$kind":"method","$docmaLink":"?api#SaratogaShips#getAllByHullType"},{"comment":"/**\n * Lists all the ships that matches a specific ship nationality\n * @param {string} nationality nationality of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1156,1310],"filename":"SaratogaShips.js","lineno":40,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000470","name":"SaratogaShips#getAllByNationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship nationality

    ","params":[{"type":{"names":["string"]},"description":"

    nationality of the ship you want to search for (Case Sensitive)

    ","name":"nationality"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByNationality","longname":"SaratogaShips#getAllByNationality","kind":"function","scope":"instance","$longname":"SaratogaShips#getAllByNationality","$kind":"method","$docmaLink":"?api#SaratogaShips#getAllByNationality"},{"comment":"/**\n * Lists all the ship that matches a specific rarity\n * @param {string} rarity rarity of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1937,2071],"filename":"SaratogaShips.js","lineno":62,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000522","name":"SaratogaShips#getAllByRarity","type":"MethodDefinition","paramnames":["rarity"]},"vars":{"":null}},"description":"

    Lists all the ship that matches a specific rarity

    ","params":[{"type":{"names":["string"]},"description":"

    rarity of the ship you want to search for (Case Sensitive)

    ","name":"rarity"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByRarity","longname":"SaratogaShips#getAllByRarity","kind":"function","scope":"instance","$longname":"SaratogaShips#getAllByRarity","$kind":"method","$docmaLink":"?api#SaratogaShips#getAllByRarity"},{"comment":"/**\n * Fetches a specific ship via its id\n * @param {number} id id of the ship you want to fetch\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[2255,2434],"filename":"SaratogaShips.js","lineno":73,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000548","name":"SaratogaShips#getById","type":"MethodDefinition","paramnames":["id"]},"vars":{"":null}},"description":"

    Fetches a specific ship via its id

    ","params":[{"type":{"names":["number"]},"description":"

    id of the ship you want to fetch

    ","name":"id"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"getById","longname":"SaratogaShips#getById","kind":"function","scope":"instance","$longname":"SaratogaShips#getById","$kind":"method","$docmaLink":"?api#SaratogaShips#getById"},{"comment":"/**\n * Custom search for data in Fuse instance\n * @param {any} options Fuse search options\n */","meta":{"range":[3310,3417],"filename":"SaratogaShips.js","lineno":105,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000642","name":"SaratogaShips#search","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"

    Custom search for data in Fuse instance

    ","params":[{"type":{"names":["any"]},"description":"

    Fuse search options

    ","name":"options"}],"name":"search","longname":"SaratogaShips#search","kind":"function","memberof":"SaratogaShips","scope":"instance","$longname":"SaratogaShips#search","$kind":"method","$docmaLink":"?api#SaratogaShips#search"},{"comment":"/**\n * Searches for a specific ship. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the ship you want to search for\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[2721,2946],"filename":"SaratogaShips.js","lineno":87,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000585","name":"SaratogaShips#searchShipByName","type":"MethodDefinition","paramnames":["name","limit"]},"vars":{"":null}},"description":"

    Searches for a specific ship. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the ship you want to search for

    ","name":"name"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"searchShipByName","longname":"SaratogaShips#searchShipByName","kind":"function","scope":"instance","$longname":"SaratogaShips#searchShipByName","$kind":"method","$docmaLink":"?api#SaratogaShips#searchShipByName"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[198,306],"filename":"SaratogaShips.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000391","name":"SaratogaShips","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaShips","longname":"SaratogaShips","kind":"class","scope":"global","$longname":"SaratogaShips","$kind":"constructor","$docmaLink":"?api#SaratogaShips"}},{"comment":"/**\n * Saratoga, the starting point of this API\n * @class SaratogaStore\n */","meta":{"filename":"SaratogaStore.js","lineno":7,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Saratoga, the starting point of this API

    ","kind":"class","name":"SaratogaStore","longname":"SaratogaStore","scope":"global","$longname":"SaratogaStore","$kind":"class","$docmaLink":"?api#SaratogaStore","$members":[{"comment":"/**\n * Equipment related getters for this store\n * @type {SaratogaEquipments}\n */","meta":{"range":[906,952],"filename":"SaratogaStore.js","lineno":30,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000723","name":"this.equipments","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Equipment related getters for this store

    ","type":{"names":["SaratogaEquipments"]},"name":"equipments","longname":"SaratogaStore#equipments","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#equipments","$kind":"property","$docmaLink":"?api#SaratogaStore#equipments"},{"comment":"/**\n * If this store is already ready to operate\n * @type {Boolean}\n */","meta":{"range":[1732,1750],"filename":"SaratogaStore.js","lineno":55,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000739","name":"this.ready","type":"Literal","value":false,"paramnames":[]}},"description":"

    If this store is already ready to operate

    ","type":{"names":["Boolean"]},"name":"ready","longname":"SaratogaStore#ready","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#ready","$kind":"property","$docmaLink":"?api#SaratogaStore#ready"},{"comment":"/**\n * The saratoga instance that generated this instance\n * @type {Saratoga}\n */","meta":{"range":[608,632],"filename":"SaratogaStore.js","lineno":20,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000709","name":"this.saratoga","type":"Identifier","value":"saratoga","paramnames":[]}},"description":"

    The saratoga instance that generated this instance

    ","type":{"names":["Saratoga"]},"name":"saratoga","longname":"SaratogaStore#saratoga","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#saratoga","$kind":"property","$docmaLink":"?api#SaratogaStore#saratoga"},{"comment":"/**\n * Ship related getters for this store\n * @type {SaratogaShips}\n */","meta":{"range":[746,782],"filename":"SaratogaStore.js","lineno":25,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000715","name":"this.ships","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Ship related getters for this store

    ","type":{"names":["SaratogaShips"]},"name":"ships","longname":"SaratogaStore#ships","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#ships","$kind":"property","$docmaLink":"?api#SaratogaStore#ships"},{"comment":"/**\n * Updater Class for the local data for this store\n * @type {SaratogaUpdater}\n */","meta":{"range":[1578,1618],"filename":"SaratogaStore.js","lineno":50,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000731","name":"this.updater","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Updater Class for the local data for this store

    ","type":{"names":["SaratogaUpdater"]},"name":"updater","longname":"SaratogaStore#updater","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#updater","$kind":"property","$docmaLink":"?api#SaratogaStore#updater"}],"$constructor":{"comment":"/**\n * @param {Saratoga} saratoga The saratoga class that generated this instance\n */","meta":{"range":[462,2583],"filename":"SaratogaStore.js","lineno":15,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000703","name":"SaratogaStore","type":"MethodDefinition","paramnames":["saratoga"]},"vars":{"":null}},"params":[{"type":{"names":["Saratoga"]},"description":"

    The saratoga class that generated this instance

    ","name":"saratoga"}],"name":"SaratogaStore","longname":"SaratogaStore","kind":"class","scope":"global","$longname":"SaratogaStore","$kind":"constructor","$docmaLink":"?api#SaratogaStore"}},{"comment":"/**\n * Manages the local data & cache updates\n * @class SaratogaUpdater\n */","meta":{"filename":"SaratogaUpdater.js","lineno":5,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{}},"description":"

    Manages the local data & cache updates

    ","kind":"class","name":"SaratogaUpdater","longname":"SaratogaUpdater","scope":"global","$longname":"SaratogaUpdater","$kind":"class","$docmaLink":"?api#SaratogaUpdater","$members":[{"comment":"/**\n * Checks if there is new updates for ship or equipment data\n * @memberof SaratogaUpdater\n * @returns {Promise}\n * @example\n * const api = new Saratoga();\n * api.updater.checkForUpdate()\n * .then((response) => {\n * if (response.shipUpdateAvailable || response.equipmentUpdateAvailable) console.log('update available');\n * })\n */","meta":{"range":[3518,3930],"filename":"SaratogaUpdater.js","lineno":90,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001757","name":"SaratogaUpdater#checkForUpdate","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Checks if there is new updates for ship or equipment data

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"examples":["const api = new Saratoga();\napi.updater.checkForUpdate()\n .then((response) => {\n if (response.shipUpdateAvailable || response.equipmentUpdateAvailable) console.log('update available');\n })"],"name":"checkForUpdate","longname":"SaratogaUpdater#checkForUpdate","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#checkForUpdate","$kind":"method","$docmaLink":"?api#SaratogaUpdater#checkForUpdate"},{"comment":"/**\n * Updates the Cached Data, loaded from the local files of Saratoga\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[5315,5490],"filename":"SaratogaUpdater.js","lineno":135,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001877","name":"SaratogaUpdater#updateCache","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Cached Data, loaded from the local files of Saratoga

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateCache","longname":"SaratogaUpdater#updateCache","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateCache","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateCache"},{"comment":"/**\n * Updates the Local Files & Cached Data in one method, good for single process scenarios as it's easy. Not for multi sharded programs that has its own Saratoga instance per shard.\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[3011,3117],"filename":"SaratogaUpdater.js","lineno":74,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001741","name":"SaratogaUpdater#updateDataAndCache","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Local Files & Cached Data in one method, good for single process scenarios as it's easy. Not for multi sharded programs that has its own Saratoga instance per shard.

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateDataAndCache","longname":"SaratogaUpdater#updateDataAndCache","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateDataAndCache","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateDataAndCache"},{"comment":"/**\n * Updates the Local Files of Saratoga if there is an update\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[4082,5156],"filename":"SaratogaUpdater.js","lineno":104,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001777","name":"SaratogaUpdater#updateLocalData","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Local Files of Saratoga if there is an update

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateLocalData","longname":"SaratogaUpdater#updateLocalData","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateLocalData","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateLocalData"},{"comment":"/**\n * The cron update checker which is responsible for Saratoga#updateAvailable event\n * @type {?Timeout}\n */","meta":{"range":[830,852],"filename":"SaratogaUpdater.js","lineno":28,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001474","name":"this.cronUpdate","type":"Literal","value":null,"paramnames":[]}},"description":"

    The cron update checker which is responsible for Saratoga#updateAvailable event

    ","type":{"names":["Timeout"]},"nullable":true,"name":"cronUpdate","longname":"SaratogaUpdater#cronUpdate","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#cronUpdate","$kind":"property","$docmaLink":"?api#SaratogaUpdater#cronUpdate"},{"comment":"/**\n * If the data directory of this updater is ready to operate\n * @type {Boolean}\n */","meta":{"range":[652,677],"filename":"SaratogaUpdater.js","lineno":23,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001468","name":"this.dataDirReady","type":"Literal","value":false,"paramnames":[]}},"description":"

    If the data directory of this updater is ready to operate

    ","type":{"names":["Boolean"]},"name":"dataDirReady","longname":"SaratogaUpdater#dataDirReady","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#dataDirReady","$kind":"property","$docmaLink":"?api#SaratogaUpdater#dataDirReady"},{"comment":"/**\n * The saratoga instance that generated this instance\n * @type {Saratoga}\n */","meta":{"range":[963,1021],"filename":"SaratogaUpdater.js","lineno":35,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001479","name":"SaratogaUpdater#saratoga","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    The saratoga instance that generated this instance

    ","type":{"names":["Saratoga"]},"name":"saratoga","longname":"SaratogaUpdater#saratoga","kind":"member","memberof":"SaratogaUpdater","scope":"instance","params":[],"$longname":"SaratogaUpdater#saratoga","$kind":"property","$docmaLink":"?api#SaratogaUpdater#saratoga"},{"comment":"/**\n * The updater instance that generated this instance\n * @type {SaratogaStore}\n */","meta":{"range":[504,522],"filename":"SaratogaUpdater.js","lineno":18,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001462","name":"this.store","type":"Identifier","value":"store","paramnames":[]}},"description":"

    The updater instance that generated this instance

    ","type":{"names":["SaratogaStore"]},"name":"store","longname":"SaratogaUpdater#store","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#store","$kind":"property","$docmaLink":"?api#SaratogaUpdater#store"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[357,859],"filename":"SaratogaUpdater.js","lineno":13,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001456","name":"SaratogaUpdater","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaUpdater","longname":"SaratogaUpdater","kind":"class","scope":"global","$longname":"SaratogaUpdater","$kind":"constructor","$docmaLink":"?api#SaratogaUpdater"}},{"comment":"","meta":{"range":[122,250],"filename":"SaratogaValidator.js","lineno":5,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002268","name":"SaratogaValidator","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"undocumented":true,"name":"SaratogaValidator","longname":"SaratogaValidator","kind":"class","scope":"global","params":[],"$longname":"SaratogaValidator","$kind":"constructor","$docmaLink":"?api#SaratogaValidator"},{"comment":"/**\n * Barrage Data\n * @external Barrage\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":34,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Barrage Data

    ","kind":"external","name":"Barrage","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Barrage","scope":"global","$longname":"external:Barrage","$kind":"external","$docmaLink":"?api#external:Barrage"},{"comment":"/**\n * Chapter Data\n * @external Chapter\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":24,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Chapter Data

    ","kind":"external","name":"Chapter","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Chapter","scope":"global","$longname":"external:Chapter","$kind":"external","$docmaLink":"?api#external:Chapter"},{"comment":"/**\n * Equipment Data\n * @external Equipment\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":19,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Equipment Data

    ","kind":"external","name":"Equipment","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Equipment","scope":"global","$longname":"external:Equipment","$kind":"external","$docmaLink":"?api#external:Equipment"},{"comment":"/**\n * Node.js Event Emitter\n * @external EventEmitter\n * @see {@link https://nodejs.org/api/events.html}\n */","meta":{"filename":"index.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Node.js Event Emitter

    ","kind":"external","name":"EventEmitter","see":["{@link https://nodejs.org/api/events.html}"],"longname":"external:EventEmitter","scope":"global","$longname":"external:EventEmitter","$kind":"external","$docmaLink":"?api#external:EventEmitter"},{"comment":"/**\n * Ship Data\n * @external Ship\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#ship-getters}\n */","meta":{"filename":"index.js","lineno":13,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Ship Data

    ","kind":"external","name":"Ship","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#ship-getters}"],"longname":"external:Ship","scope":"global","$longname":"external:Ship","$kind":"external","$docmaLink":"?api#external:Ship"},{"comment":"/**\n * Node.js Timeout\n * @external Timeout\n * @see {@link https://nodejs.org/dist/latest/docs/api/timers.html#timers_class_timeout}\n */","meta":{"filename":"index.js","lineno":7,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Node.js Timeout

    ","kind":"external","name":"Timeout","see":["{@link https://nodejs.org/dist/latest/docs/api/timers.html#timers_class_timeout}"],"longname":"external:Timeout","scope":"global","$longname":"external:Timeout","$kind":"external","$docmaLink":"?api#external:Timeout"},{"comment":"/**\n * Voiceline Data\n * @external Voiceline\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":29,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Voiceline Data

    ","kind":"external","name":"Voiceline","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Voiceline","scope":"global","$longname":"external:Voiceline","$kind":"external","$docmaLink":"?api#external:Voiceline"}],"symbols":["external:Barrage","external:Chapter","external:Equipment","external:EventEmitter","external:Ship","external:Timeout","external:Voiceline","Saratoga","Saratoga#barrages","Saratoga#chapters","Saratoga#equipments","Saratoga#event:debug","Saratoga#event:error","Saratoga#event:ready","Saratoga#event:updateAvailable","Saratoga#ready","Saratoga#ships","Saratoga#store","Saratoga#updater","Saratoga#voicelines","SaratogaEquipments","SaratogaEquipments#filter","SaratogaEquipments#getAllByCategory","SaratogaEquipments#getAllByNationality","SaratogaEquipments#search","SaratogaEquipments#searchByEquipmentName","SaratogaShips","SaratogaShips#filter","SaratogaShips#getAllByClass","SaratogaShips#getAllByHullType","SaratogaShips#getAllByNationality","SaratogaShips#getAllByRarity","SaratogaShips#getById","SaratogaShips#search","SaratogaShips#searchShipByName","SaratogaStore","SaratogaStore#equipments","SaratogaStore#ready","SaratogaStore#saratoga","SaratogaStore#ships","SaratogaStore#updater","SaratogaUpdater","SaratogaUpdater#checkForUpdate","SaratogaUpdater#cronUpdate","SaratogaUpdater#dataDirReady","SaratogaUpdater#saratoga","SaratogaUpdater#store","SaratogaUpdater#updateCache","SaratogaUpdater#updateDataAndCache","SaratogaUpdater#updateLocalData","SaratogaValidator"]}},"app":{"title":"Saratoga | An open source Azur Lane local library","routing":{"method":"query","caseSensitive":true},"entrance":"content:readme","base":"/Saratoga/","meta":null,"server":"static","favicon":""},"template":{"name":"docma-template-zebra","description":"Zebra - Default template for Docma. https://github.com/onury/docma","version":"2.3.1","supportedDocmaVersion":">=2.0.0","author":"Onur Yıldırım","license":"MIT","mainHTML":"index.html","options":{"title":{"label":"Saratoga","href":"."},"sidebar":{"enabled":true,"outline":"tree","collapsed":false,"toolbar":true,"itemsFolded":false,"itemsOverflow":"crop","badges":true,"search":true,"animations":true},"symbols":{"autoLink":true,"params":"list","enums":"list","props":"list","meta":false},"navbar":{"enabled":true,"dark":false,"animations":true,"menu":[{"label":"Readme","href":"."},{"label":"Documentation","href":"?api"},{"label":"GitHub","href":"https://github.com/AzurAPI/Saratoga"}],"fixed":true},"logo":null,"contentView":{"bookmarks":false,"faVersion":"5.5.0","faLibs":"all"}}},"partials":{"api":"docma-api","content":"docma-content","notFound":"docma-404"},"elementID":"docma-main","contentElementID":"docma-content","defaultApiName":"_def_","logsEnabled":false})); !function(){"use strict";var c="path"===docma.app.routing.method;function o(a){return(a.params[1]||"").replace(/\/$/,"")}function a(a,e){a=o(a)||docma._.defaultApiName,a=docma.createRoute(a,DocmaWeb.Route.Type.API);if(!a||!a.exists())return e();a.apply()}docma.app.base&&page.base(docma.app.base),page.redirect("(/)?"+docma.template.main,""),c&&(page("(/)?api/(.+)",a),page("(/)?api(/)?",a),page("(/)?(.*)",function(a,e){a=o(a),a=docma.createRoute(a,DocmaWeb.Route.Type.CONTENT);if(!a||!a.exists())return e();a.apply()})),page("(/)?",function(t,n){!function(){if(c){var a=sessionStorage.getItem("redirectPath")||null;if(a)return sessionStorage.removeItem("redirectPath"),docma.info("Redirecting to:",a),page.redirect(a),1}}()&&setTimeout(function(){var a,e,e=(e=(e=t.querystring)||window.location.search,(e=/^[?&]/.test(e)?e.slice(1):e)||null);if(c){if(e)return n();a=docma._.appEntranceRI}else docma.log("Query-string:",e),a=e?docma.createRouteFromQuery(e):docma._.appEntranceRI;if(!a||!a.exists())return n();function o(){docma._trigger(DocmaWeb.Event.Navigate,[a])}a.isCurrent()?o():a.apply(function(a){200===a&&o()})},100)}),page("*",function(a){docma.warn("Unknown Route:",a.path),docma.log("context:",a),docma.createRoute(null).apply()}),docma.info("Docma SPA Configuration:"),docma.info("App Title: ",docma.app.title),docma.info("Routing Method: ",docma.app.routing.method),docma.info("App Server: ",docma.app.server),docma.info("Base Path: ",docma.app.base),docma.info("Entrance Route ID: ",docma.app.entrance),window.onload=function(){docma._.initialLoad=!0,docma._.appEntranceRI=docma.createRouteFromID(docma.app.entrance),page.start({click:!0,popstate:!0,dispatch:!0,hashbang:!1,decodeURLComponents:!0}),docma.info("Docma SPA loaded!")}}(); \ No newline at end of file diff --git a/src/store/SaratogaEquipments.js b/src/store/SaratogaEquipments.js index 72a1c2c..d52bbc9 100644 --- a/src/store/SaratogaEquipments.js +++ b/src/store/SaratogaEquipments.js @@ -55,5 +55,21 @@ class SaratogaEquipments { if (!possibleEquipments.length) return null; return possibleEquipments; } + /** + * Custom filter for equipment data + * @param {requestCallback} callback the callback that handles the response + */ + filter(callback) { + if (!this.rawCache) return null; + return this.rawCache.filter(callback); + } + /** + * Custom search for data in Fuse instance + * @param {any} options Fuse search options + */ + search(options) { + if (!this.rawCache) return null; + return this.cache.search(options); + } } module.exports = SaratogaEquipments; diff --git a/src/store/SaratogaShips.js b/src/store/SaratogaShips.js index f0f5fd7..827432f 100644 --- a/src/store/SaratogaShips.js +++ b/src/store/SaratogaShips.js @@ -90,5 +90,21 @@ class SaratogaShips { if (!possibleShips.length) return null; return possibleShips; } + /** + * Custom filter for ship data + * @param {requestCallback} callback the callback that handles the response + */ + filter(callback) { + if (!this.rawCache) return null; + return this.rawCache.filter(callback); + } + /** + * Custom search for data in Fuse instance + * @param {any} options Fuse search options + */ + search(options) { + if (!this.rawCache) return null; + return this.cache.search(options); + } } module.exports = SaratogaShips; From 9cb18e98a549c1327fdc057eeac71ad1a64bb81e Mon Sep 17 00:00:00 2001 From: 0t4u <61939142+0t4u@users.noreply.github.com> Date: Mon, 25 Jan 2021 18:04:00 +0800 Subject: [PATCH 04/14] feat: change version number Changed: - version number (i forgot lmao) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1d32ecf..b4122f3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "saratoga", - "version": "1.1.0-beta", + "version": "1.1.1-beta", "description": "Open Source Azur Lane Local Database", "main": "index.js", "scripts": { From 57a7f59944cfe3f9f4bd5f8288df7c5713754253 Mon Sep 17 00:00:00 2001 From: 0t4u <61939142+0t4u@users.noreply.github.com> Date: Mon, 25 Jan 2021 18:09:59 +0800 Subject: [PATCH 05/14] feat: fix checking file exists Changed: - add checks for file exists before accessing file --- src/updater/SaratogaUpdater.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/updater/SaratogaUpdater.js b/src/updater/SaratogaUpdater.js index 59e9bdb..b2f90d8 100644 --- a/src/updater/SaratogaUpdater.js +++ b/src/updater/SaratogaUpdater.js @@ -55,7 +55,7 @@ class SaratogaUpdater { startUpCheck() { if (this.dataDirReady) return; if (!SaratogaUtil.existSync(SaratogaUtil.folderDataPath())) SaratogaUtil.createDirectorySync(SaratogaUtil.folderDataPath()); - for (const prop of ['versionFilePath', 'shipFilePath', 'equipFilePath']) { + for (const prop of ['versionFilePath', 'shipFilePath', 'equipFilePath', 'chapterFilePath', 'voicelineFilePath', 'barrageFilePath']) { if (!SaratogaUtil.existSync( SaratogaUtil[prop]() )) SaratogaUtil.writeFileSync(SaratogaUtil[prop](), JSON.stringify({})); } this.store.loadShipsCache(JSON.parse(SaratogaUtil.readFileSync(SaratogaUtil.shipFilePath()))); From 3329434d675a0600f1cab7992d14a6b5d8500198 Mon Sep 17 00:00:00 2001 From: 0t4u <61939142+0t4u@users.noreply.github.com> Date: Mon, 25 Jan 2021 18:13:56 +0800 Subject: [PATCH 06/14] feat: fix updater on first start Changed: - how checking for updates works --- src/store/SaratogaStore.js | 6 +++--- src/updater/SaratogaValidator.js | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/store/SaratogaStore.js b/src/store/SaratogaStore.js index 270a70e..bd140cd 100644 --- a/src/store/SaratogaStore.js +++ b/src/store/SaratogaStore.js @@ -75,9 +75,9 @@ class SaratogaStore { async updateOnFirstStartUp() { if (this.ready) return; - let update = await this.updater.checkForUpdate(); - update = update.shipUpdateAvailable || update.equipmentUpdateAvailable; - if (update && (!this._shipCache || !this._equipCache)) await this.updater.updateDataAndCache(); + const update = await this.updater.checkForUpdate(); + //update = update.shipUpdateAvailable || update.equipmentUpdateAvailable; + if (update || (!this._shipCache || !this._equipCache)) await this.updater.updateDataAndCache(); this.saratoga.emit('debug', `Loaded ${this._shipCache.list.length} stored ships from ${SaratogaUtil.shipFilePath()}`); this.saratoga.emit('debug', `Loaded ${this._equipCache.list.length} stored equipments from ${SaratogaUtil.equipFilePath()}`); } diff --git a/src/updater/SaratogaValidator.js b/src/updater/SaratogaValidator.js index f898211..a107652 100644 --- a/src/updater/SaratogaValidator.js +++ b/src/updater/SaratogaValidator.js @@ -49,7 +49,8 @@ class SaratogaValidator { needsUpdate() { //return !this.local[this.type] || this.local[this.type]['version-number'] !== this.remote[this.type]['version-number'] || this.local[this.type]['last-data-refresh-date'] !== this.remote[this.type]['last-data-refresh-date']; - return this.local === this.remote ? true : false; + if (this.local === this.remote) return true; + return false; } updateVersionFile() { From 5faebd4360e75e0779464d4aa1d855b966639415 Mon Sep 17 00:00:00 2001 From: 0t4u <61939142+0t4u@users.noreply.github.com> Date: Mon, 25 Jan 2021 18:35:10 +0800 Subject: [PATCH 07/14] feat: add jest tests changed: - add jest test - add github actions file --- .github/workflows/action.yml | 25 +++++ jest.config.js | 193 +++++++++++++++++++++++++++++++++++ package.json | 6 +- tests/jest.test.js | 15 +++ 4 files changed, 237 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/action.yml create mode 100644 jest.config.js create mode 100644 tests/jest.test.js diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml new file mode 100644 index 0000000..b00b0ca --- /dev/null +++ b/.github/workflows/action.yml @@ -0,0 +1,25 @@ +name: Test on Push + +on: [push] + +jobs: + jest: + name: Jest Tests + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [12.x] + + steps: + - uses: actions/checkout@v1 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - name: Test + run: | + npm i --also=dev + npm run jest + env: + CI: true \ No newline at end of file diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 0000000..e668f4a --- /dev/null +++ b/jest.config.js @@ -0,0 +1,193 @@ +/* + * For a detailed explanation regarding each configuration property, visit: + * https://jestjs.io/docs/en/configuration.html + */ + +module.exports = { + // All imported modules in your tests should be mocked automatically + // automock: false, + + // Stop running tests after `n` failures + // bail: 0, + + // The directory where Jest should store its cached dependency information + // cacheDirectory: "/private/var/folders/h6/96fr20fx4711gw0qkhyc0p6r0000gn/T/jest_dx", + + // Automatically clear mock calls and instances between every test + clearMocks: true, + + // Indicates whether the coverage information should be collected while executing the test + // collectCoverage: false, + + // An array of glob patterns indicating a set of files for which coverage information should be collected + // collectCoverageFrom: undefined, + + // The directory where Jest should output its coverage files + coverageDirectory: 'coverage', + + // An array of regexp pattern strings used to skip coverage collection + // coveragePathIgnorePatterns: [ + // "/node_modules/" + // ], + + // Indicates which provider should be used to instrument code for coverage + coverageProvider: 'v8', + + // A list of reporter names that Jest uses when writing coverage reports + // coverageReporters: [ + // "json", + // "text", + // "lcov", + // "clover" + // ], + + // An object that configures minimum threshold enforcement for coverage results + // coverageThreshold: undefined, + + // A path to a custom dependency extractor + // dependencyExtractor: undefined, + + // Make calling deprecated APIs throw helpful error messages + // errorOnDeprecated: false, + + // Force coverage collection from ignored files using an array of glob patterns + // forceCoverageMatch: [], + + // A path to a module which exports an async function that is triggered once before all test suites + // globalSetup: undefined, + + // A path to a module which exports an async function that is triggered once after all test suites + // globalTeardown: undefined, + + // A set of global variables that need to be available in all test environments + // globals: {}, + + // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers. + // maxWorkers: "50%", + + // An array of directory names to be searched recursively up from the requiring module's location + // moduleDirectories: [ + // "node_modules" + // ], + + // An array of file extensions your modules use + // moduleFileExtensions: [ + // "js", + // "json", + // "jsx", + // "ts", + // "tsx", + // "node" + // ], + + // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module + // moduleNameMapper: {}, + + // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader + // modulePathIgnorePatterns: [], + + // Activates notifications for test results + // notify: false, + + // An enum that specifies notification mode. Requires { notify: true } + // notifyMode: "failure-change", + + // A preset that is used as a base for Jest's configuration + // preset: undefined, + + // Run tests from one or more projects + // projects: undefined, + + // Use this configuration option to add custom reporters to Jest + // reporters: undefined, + + // Automatically reset mock state between every test + // resetMocks: false, + + // Reset the module registry before running each individual test + // resetModules: false, + + // A path to a custom resolver + // resolver: undefined, + + // Automatically restore mock state between every test + // restoreMocks: false, + + // The root directory that Jest should scan for tests and modules within + // rootDir: undefined, + + // A list of paths to directories that Jest should use to search for files in + // roots: [ + // "" + // ], + + // Allows you to use a custom runner instead of Jest's default test runner + // runner: "jest-runner", + + // The paths to modules that run some code to configure or set up the testing environment before each test + // setupFiles: [], + + // A list of paths to modules that run some code to configure or set up the testing framework before each test + // setupFilesAfterEnv: [], + + // The number of seconds after which a test is considered as slow and reported as such in the results. + // slowTestThreshold: 5, + + // A list of paths to snapshot serializer modules Jest should use for snapshot testing + // snapshotSerializers: [], + + // The test environment that will be used for testing + testEnvironment: 'node', + + // Options that will be passed to the testEnvironment + // testEnvironmentOptions: {}, + + // Adds a location field to test results + // testLocationInResults: false, + + // The glob patterns Jest uses to detect test files + testMatch: [ + '/tests/*.test.js' + ], + + // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped + // testPathIgnorePatterns: [ + // "/node_modules/" + // ], + + // The regexp pattern or array of patterns that Jest uses to detect test files + // testRegex: [], + + // This option allows the use of a custom results processor + // testResultsProcessor: undefined, + + // This option allows use of a custom test runner + // testRunner: "jasmine2", + + // This option sets the URL for the jsdom environment. It is reflected in properties such as location.href + // testURL: "http://localhost", + + // Setting this value to "fake" allows the use of fake timers for functions such as "setTimeout" + // timers: "real", + + // A map from regular expressions to paths to transformers + // transform: undefined, + + // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation + // transformIgnorePatterns: [ + // "/node_modules/", + // "\\.pnp\\.[^\\/]+$" + // ], + + // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them + // unmockedModulePathPatterns: undefined, + + // Indicates whether each individual test should be reported during the run + // verbose: undefined, + + // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode + // watchPathIgnorePatterns: [], + + // Whether to use watchman for file crawling + // watchman: true, +}; diff --git a/package.json b/package.json index b4122f3..810f4dc 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,8 @@ "description": "Open Source Azur Lane Local Database", "main": "index.js", "scripts": { - "test": "node ./tests/Client.js" + "test": "node ./tests/Client.js", + "jest": "jest" }, "keywords": [ "api", @@ -26,6 +27,7 @@ }, "devDependencies": { "docma": "^3.2.2", - "eslint": "^6.8.0" + "eslint": "^6.8.0", + "jest": "^26.6.3" } } diff --git a/tests/jest.test.js b/tests/jest.test.js new file mode 100644 index 0000000..f0746da --- /dev/null +++ b/tests/jest.test.js @@ -0,0 +1,15 @@ +const { Saratoga } = require('../index'); + +const saratoga = new Saratoga(); + +test('Search Ship By Name', async () => { + saratoga.on('ready', () => { + expect(saratoga.ships.searchShipByName('saratoga')[0].item.id).toBe('074'); + }); +}); + +test('Search Equipment By Name', async () => { + saratoga.on('ready', () => { + expect(saratoga.equipments.searchByEquipmentName('130mm 1932')[0].item.wikiUrl).toBe('https://azurlane.koumakan.jp/Single_130mm_(B13_Pattern_1936)'); + }); +}); From db88621365e46d24daff0df146ee4e8f3e4a2fe8 Mon Sep 17 00:00:00 2001 From: 0t4u <61939142+0t4u@users.noreply.github.com> Date: Mon, 25 Jan 2021 21:12:31 +0800 Subject: [PATCH 08/14] Update SaratogaValidator.js --- src/updater/SaratogaValidator.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/updater/SaratogaValidator.js b/src/updater/SaratogaValidator.js index a107652..c676690 100644 --- a/src/updater/SaratogaValidator.js +++ b/src/updater/SaratogaValidator.js @@ -49,8 +49,7 @@ class SaratogaValidator { needsUpdate() { //return !this.local[this.type] || this.local[this.type]['version-number'] !== this.remote[this.type]['version-number'] || this.local[this.type]['last-data-refresh-date'] !== this.remote[this.type]['last-data-refresh-date']; - if (this.local === this.remote) return true; - return false; + return this.local === this.remote; } updateVersionFile() { From 5c0e33e7cde81545c82205092a4277bf506245a1 Mon Sep 17 00:00:00 2001 From: 0t4u <61939142+0t4u@users.noreply.github.com> Date: Thu, 28 Jan 2021 23:55:54 +0800 Subject: [PATCH 09/14] feat: comply v2 specs Changes: - Comply to: https://docs.google.com/document/d/16rmt309dP2iOlG0tJL2XHgdMGrieUbgmWv-aFVJKmhU/edit - Fix jest causing errors in eslint - Restructure jest tests --- .eslintrc.yml | 1 + package.json | 1 + src/store/SaratogaEquipments.js | 34 +++++- src/store/SaratogaShips.js | 181 ++++++++++++++++++++++++-------- src/store/SaratogaStore.js | 4 + tests/equip.test.js | 9 ++ tests/jest.test.js | 15 --- tests/ship.test.js | 11 ++ 8 files changed, 194 insertions(+), 62 deletions(-) create mode 100644 tests/equip.test.js delete mode 100644 tests/jest.test.js create mode 100644 tests/ship.test.js diff --git a/.eslintrc.yml b/.eslintrc.yml index 63e0f34..958ac60 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -2,6 +2,7 @@ env: commonjs: true es6: true node: true + jest/globals: true extends: 'eslint:recommended' globals: Atomics: readonly diff --git a/package.json b/package.json index 810f4dc..f91e89c 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "devDependencies": { "docma": "^3.2.2", "eslint": "^6.8.0", + "eslint-plugin-jest": "^24.1.3", "jest": "^26.6.3" } } diff --git a/src/store/SaratogaEquipments.js b/src/store/SaratogaEquipments.js index d52bbc9..ca1fb3d 100644 --- a/src/store/SaratogaEquipments.js +++ b/src/store/SaratogaEquipments.js @@ -26,7 +26,7 @@ class SaratogaEquipments { * @memberof SaratogaEquipments * @returns {Array | null} */ - getAllByCategory(category) { + category(category) { if (!this.rawCache) return null; return this.rawCache.filter(d => d.category === category); } @@ -37,7 +37,7 @@ class SaratogaEquipments { * @memberof SaratogaEquipments * @returns {Array | null} */ - getAllByNationality(nationality) { + nationality(nationality) { if (!this.rawCache) return null; return this.rawCache.filter(d => d.nationality === nationality); } @@ -45,16 +45,42 @@ class SaratogaEquipments { /** * Searches for a specific equipment. (EN, CN, JP, KR names are supported) * @param {string} name name of the equipment you want to search for + * @param {string} language optional language to search by * @param {number} [limit=10] limit of the search results * @memberof SaratogaEquipments * @returns {Equipment | null} */ - searchByEquipmentName(name, limit = 10) { + name(name, language, limit = 10) { + if (language) { + if (!this.rawCache) return null; + let lang; + switch(language) { + case 'en': + lang = this.cache.names.en; + break; + case 'cn': + lang = this.cache.names.cn; + break; + case 'jp': + lang = this.cache.names.jp; + break; + } + return lang.find(d => d.includes(name)); + } if (!this.cache) return null; const possibleEquipments = this.cache.search(name, { limit }); if (!possibleEquipments.length) return null; return possibleEquipments; } + + /** + * Get an unfiltered equipment list + */ + all() { + if (!this.rawCache) return null; + return this.rawCache; + } + /** * Custom filter for equipment data * @param {requestCallback} callback the callback that handles the response @@ -72,4 +98,4 @@ class SaratogaEquipments { return this.cache.search(options); } } -module.exports = SaratogaEquipments; +module.exports = SaratogaEquipments; \ No newline at end of file diff --git a/src/store/SaratogaShips.js b/src/store/SaratogaShips.js index 827432f..4bc6e30 100644 --- a/src/store/SaratogaShips.js +++ b/src/store/SaratogaShips.js @@ -21,48 +21,25 @@ class SaratogaShips { } /** - * Lists all the ships that matches a specific shjp class - * @param {string} shipClass class of the ship you want to search for (Case Sensitive) + * Search from all ships + * @param {number | string} id * @memberof SaratogaShips - * @returns {Array | null} - */ - getAllByClass(shipClass) { - if (!this.rawCache) return null; - return this.rawCache.filter(d => d.class === shipClass); - } - - /** - * Lists all the ships that matches a specific ship nationality - * @param {string} nationality nationality of the ship you want to search for (Case Sensitive) - * @memberof SaratogaShips - * @returns {Array | null} - */ - getAllByNationality(nationality) { - if (!this.rawCache) return null; - return this.rawCache.filter(d => d.nationality === nationality); - } - - /** - * Lists all the ships that matches a specific ship hull type - * @param {string} hullType hullType of the ship you want to search for (Case Sensitive) - * @memberof SaratogaShips - * @returns {Array | null} - */ - getAllByHullType(hullType) { - if (!this.rawCache) return null; - return this.rawCache.filter(d => d.hullType === hullType); - } - - /** - * Lists all the ship that matches a specific rarity - * @param {string} rarity rarity of the ship you want to search for (Case Sensitive) - * @memberof SaratogaShips - * @returns {Array | null} + * @returns {Ship | null} */ - getAllByRarity(rarity) { - if (!this.rawCache) return null; - return this.rawCache.filter(d => d.rarity === rarity); - } + get(id) { + const data = this.rawCache; + if (!data) return null; + const ships = data.filter(ship => { + if (ship.id === id) return true; + for (const key of Object.keys(ship.names)) { + if (ship.names[key].includes(id)) return true; + } + return false; + }); + + if (!ships.length) throw new UnknownShipError(id); + return ships[0]; + } /** * Fetches a specific ship via its id @@ -70,7 +47,7 @@ class SaratogaShips { * @memberof SaratogaShips * @returns {Ship | null} */ - getById(id) { + id(id) { if (!this.rawCache) return null; const ship = this.rawCache.find(d => d.id === id); if (!ship.length) return null; @@ -80,11 +57,31 @@ class SaratogaShips { /** * Searches for a specific ship. (EN, CN, JP, KR names are supported) * @param {string} name name of the ship you want to search for + * @param {string} language optional language to search by * @param {number} [limit=10] limit of the search results * @memberof SaratogaShips * @returns {Ship | null} */ - searchShipByName(name, limit = 10) { + name(name, language, limit = 10) { + if (language) { + if (!this.rawCache) return null; + let lang; + switch(language) { + case 'en': + lang = this.cache.names.en; + break; + case 'cn': + lang = this.cache.names.cn; + break; + case 'jp': + lang = this.cache.names.jp; + break; + case 'kr': + lang = this.cache.names.kr; + break; + } + return lang.find(d => d.includes(name)); + } if (!this.cache) return null; const possibleShips = this.cache.search(name, { limit }); if (!possibleShips.length) return null; @@ -107,4 +104,102 @@ class SaratogaShips { return this.cache.search(options); } } -module.exports = SaratogaShips; + +class ShipExtAll extends SaratogaShips { + constructor() { + super(); + } + + /** + * Get an unfiltered ship list + */ + get() { + if (!this.rawCache) return null; + return this.rawCache; + } + + /** + * Filter ships via language + * @param {string} language + */ + name(language) { + if (!this.rawCache) return null; + let lang; + switch(language) { + case 'en': + lang = this.rawCache.names.en; + break; + case 'cn': + lang = this.rawCache.names.cn; + break; + case 'jp': + lang = this.rawCache.names.jp; + break; + case 'kr': + lang = this.rawCache.names.kr; + break; + case 'code': + lang = this.rawCache.names.code; + } + return lang; + } + + /** + * Filter ships via id + */ + id() { + if (!this.rawCache) return null; + return this.rawCache.id; + } +} + +class ShipExtFilter extends SaratogaShips { + constructor() { + super(); + } + /** + * Lists all the ships that matches a specific shjp class + * @param {string} shipClass class of the ship you want to search for (Case Sensitive) + * @memberof SaratogaShips + * @returns {Array | null} + */ + class(shipClass) { + if (!this.rawCache) return null; + return this.rawCache.filter(d => d.class === shipClass); + } + + /** + * Lists all the ships that matches a specific ship nationality + * @param {string} nationality nationality of the ship you want to search for (Case Sensitive) + * @memberof SaratogaShips + * @returns {Array | null} + */ + nationality(nationality) { + if (!this.rawCache) return null; + return this.rawCache.filter(d => d.nationality === nationality); + } + + /** + * Lists all the ships that matches a specific ship hull type + * @param {string} hullType hullType of the ship you want to search for (Case Sensitive) + * @memberof SaratogaShips + * @returns {Array | null} + */ + type(hullType) { + if (!this.rawCache) return null; + return this.rawCache.filter(d => d.hullType === hullType); + } + + /** + * Lists all the ship that matches a specific rarity + * @param {string} rarity rarity of the ship you want to search for (Case Sensitive) + * @memberof SaratogaShips + * @returns {Array | null} + */ + rarity(rarity) { + if (!this.rawCache) return null; + return this.rawCache.filter(d => d.rarity === rarity); + } +} + +module.exports = SaratogaShips, ShipExtAll, ShipExtFilter; diff --git a/src/store/SaratogaStore.js b/src/store/SaratogaStore.js index bd140cd..0ec7053 100644 --- a/src/store/SaratogaStore.js +++ b/src/store/SaratogaStore.js @@ -1,6 +1,8 @@ const Fuse = require('fuse.js'); const SaratogaUpdater = require('../updater/SaratogaUpdater'); +const ShipExtFilter = require('./SaratogaShips'); const SaratogaShips = require('./SaratogaShips'); +const ShipExtAll = require('./SaratogaShips'); const SaratogaEquipments = require('./SaratogaEquipments'); const SaratogaUtil = require('../util/SaratogaUtil'); @@ -23,6 +25,8 @@ class SaratogaStore { * @type {SaratogaShips} */ this.ships = new SaratogaShips(this); + this.ships.all = new ShipExtAll(this); + this.ships.sort = new ShipExtFilter(this); /** * Equipment related getters for this store * @type {SaratogaEquipments} diff --git a/tests/equip.test.js b/tests/equip.test.js new file mode 100644 index 0000000..44a30e6 --- /dev/null +++ b/tests/equip.test.js @@ -0,0 +1,9 @@ +const { Saratoga } = require('../index'); + +const saratoga = new Saratoga(); + +test('Search Equipment By Name', async () => { + saratoga.on('ready', () => { + expect(saratoga.equipments.name('130mm 1932')[0].item.wikiUrl).toBe('https://azurlane.koumakan.jp/Single_130mm_(B13_Pattern_1936)'); + }); +}); \ No newline at end of file diff --git a/tests/jest.test.js b/tests/jest.test.js deleted file mode 100644 index f0746da..0000000 --- a/tests/jest.test.js +++ /dev/null @@ -1,15 +0,0 @@ -const { Saratoga } = require('../index'); - -const saratoga = new Saratoga(); - -test('Search Ship By Name', async () => { - saratoga.on('ready', () => { - expect(saratoga.ships.searchShipByName('saratoga')[0].item.id).toBe('074'); - }); -}); - -test('Search Equipment By Name', async () => { - saratoga.on('ready', () => { - expect(saratoga.equipments.searchByEquipmentName('130mm 1932')[0].item.wikiUrl).toBe('https://azurlane.koumakan.jp/Single_130mm_(B13_Pattern_1936)'); - }); -}); diff --git a/tests/ship.test.js b/tests/ship.test.js new file mode 100644 index 0000000..c05c5cf --- /dev/null +++ b/tests/ship.test.js @@ -0,0 +1,11 @@ +const { Saratoga } = require('../index'); + +const saratoga = new Saratoga(); + +test('Search Ship By Name', async () => { + saratoga.on('ready', () => { + expect(saratoga.ships.name('saratoga')[0].item.id).toBe('074'); + }); +}); + + From 37577110ed09ca8f40cae5510f5e1aa46ae05e39 Mon Sep 17 00:00:00 2001 From: 0t4u <61939142+0t4u@users.noreply.github.com> Date: Fri, 29 Jan 2021 00:04:32 +0800 Subject: [PATCH 10/14] minor: regenerate docma docs Changes: - Regenerated docma docs - Change version number --- docs/js/docma-web.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/js/docma-web.js b/docs/js/docma-web.js index c4c7cd8..3acd0f3 100644 --- a/docs/js/docma-web.js +++ b/docs/js/docma-web.js @@ -44,6 +44,6 @@ dust.filters=dust.filters||{},dust.filters.$pt=function(e){return DocmaWeb.Utils DocmaWeb.version = "3.2.2"; return DocmaWeb; })(); -var docma = Object.freeze(new DocmaWeb({"version":"3.2.2","routes":[{"id":"api:","type":"api","name":"_def_","path":"?api","contentPath":null,"sourceType":"js"},{"id":"content:readme","type":"content","name":"readme","path":"?content=readme","contentPath":"content/readme.html","sourceType":"md"}],"apis":{"_def_":{"documentation":[{"comment":"/**\n * Saratoga, the starting point of this API\n * @class Saratoga\n * @extends {EventEmitter}\n */","meta":{"filename":"Saratoga.js","lineno":4,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Saratoga, the starting point of this API

    ","kind":"class","name":"Saratoga","augments":["EventEmitter"],"longname":"Saratoga","scope":"global","$longname":"Saratoga","$kind":"class","$docmaLink":"?api#Saratoga","$members":[{"comment":"/**\n * Barrage related getters for this store\n * @type {SaratogaBarrages}\n */","meta":{"range":[2891,2987],"filename":"Saratoga.js","lineno":108,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000166","name":"Saratoga#barrages","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Barrage related getters for this store

    ","type":{"names":["SaratogaBarrages"]},"name":"barrages","longname":"Saratoga#barrages","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#barrages","$kind":"property","$docmaLink":"?api#Saratoga#barrages"},{"comment":"/**\n * Chapters related getters for this store\n * @type {SaratogaChapters}\n */","meta":{"range":[2493,2589],"filename":"Saratoga.js","lineno":92,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000132","name":"Saratoga#chapters","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Chapters related getters for this store

    ","type":{"names":["SaratogaChapters"]},"name":"chapters","longname":"Saratoga#chapters","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#chapters","$kind":"property","$docmaLink":"?api#Saratoga#chapters"},{"comment":"/**\n * Azur Lane's Equipment related getter methods\n * @type {SaratogaEquipments}\n */","meta":{"range":[2293,2393],"filename":"Saratoga.js","lineno":84,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000115","name":"Saratoga#equipments","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Azur Lane's Equipment related getter methods

    ","type":{"names":["SaratogaEquipments"]},"name":"equipments","longname":"Saratoga#equipments","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#equipments","$kind":"property","$docmaLink":"?api#Saratoga#equipments"},{"comment":"/**\n * If Saratoga is ready to operate\n * @type {Boolean}\n */","meta":{"range":[1910,1997],"filename":"Saratoga.js","lineno":67,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000080","name":"Saratoga#ready","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    If Saratoga is ready to operate

    ","type":{"names":["Boolean"]},"name":"ready","longname":"Saratoga#ready","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#ready","$kind":"property","$docmaLink":"?api#Saratoga#ready"},{"comment":"/**\n * Azur Lane's Ship related getter methods\n * @type {SaratogaShips}\n */","meta":{"range":[2095,2185],"filename":"Saratoga.js","lineno":75,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000098","name":"Saratoga#ships","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Azur Lane's Ship related getter methods

    ","type":{"names":["SaratogaShips"]},"name":"ships","longname":"Saratoga#ships","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#ships","$kind":"property","$docmaLink":"?api#Saratoga#ships"},{"comment":"/**\n * Contains methods and props for managing cached data\n * @type {SaratogaStore}\n */","meta":{"range":[567,603],"filename":"Saratoga.js","lineno":19,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000053","name":"this.store","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Contains methods and props for managing cached data

    ","type":{"names":["SaratogaStore"]},"name":"store","longname":"Saratoga#store","kind":"member","memberof":"Saratoga","scope":"instance","$longname":"Saratoga#store","$kind":"property","$docmaLink":"?api#Saratoga#store"},{"comment":"/**\n * Contains methods for updating Saratoga's local data & cache\n * @type {SaratogaUpdater}\n */","meta":{"range":[1770,1826],"filename":"Saratoga.js","lineno":59,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000070","name":"Saratoga#updater","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Contains methods for updating Saratoga's local data & cache

    ","type":{"names":["SaratogaUpdater"]},"name":"updater","longname":"Saratoga#updater","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#updater","$kind":"property","$docmaLink":"?api#Saratoga#updater"},{"comment":"/**\n * Voiceline related getters for this store\n * @type {SaratogaVoicelines}\n */","meta":{"range":[2692,2792],"filename":"Saratoga.js","lineno":100,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000149","name":"Saratoga#voicelines","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Voiceline related getters for this store

    ","type":{"names":["SaratogaVoicelines"]},"name":"voicelines","longname":"Saratoga#voicelines","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#voicelines","$kind":"property","$docmaLink":"?api#Saratoga#voicelines"},{"comment":"/**\n * Emitted when there is a debug data\n * @event Saratoga#debug\n * @param {string} message Debug message\n * @memberof Saratoga\n */","meta":{"filename":"Saratoga.js","lineno":23,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is a debug data

    ","kind":"event","name":"debug","params":[{"type":{"names":["string"]},"description":"

    Debug message

    ","name":"message"}],"memberof":"Saratoga","longname":"Saratoga#event:debug","scope":"instance","$longname":"Saratoga#event:debug","$kind":"event","$docmaLink":"?api#Saratoga#event:debug"},{"comment":"/**\n * Emitted when there is a pesky error\n * @event Saratoga#error\n * @param {Error} error The error encountered.\n * @memberof Saratoga\n * @example\n * Saratoga.on('error', console.error);\n */","meta":{"filename":"Saratoga.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is a pesky error

    ","kind":"event","name":"error","params":[{"type":{"names":["Error"]},"description":"

    The error encountered.

    ","name":"error"}],"memberof":"Saratoga","examples":["Saratoga.on('error', console.error);"],"longname":"Saratoga#event:error","scope":"instance","$longname":"Saratoga#event:error","$kind":"event","$docmaLink":"?api#Saratoga#event:error"},{"comment":"/**\n * Emitted when Saratoga is ready\n * @event Saratoga#ready\n * @memberof Saratoga\n */","meta":{"filename":"Saratoga.js","lineno":49,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when Saratoga is ready

    ","kind":"event","name":"ready","memberof":"Saratoga","longname":"Saratoga#event:ready","scope":"instance","$longname":"Saratoga#event:ready","$kind":"event","$docmaLink":"?api#Saratoga#event:ready"},{"comment":"/**\n * Emitted when there is an update available for local data. Only available when Saratoga is initialized with notifyForNewUpdates set to true\n * @event Saratoga#updateAvailable\n * @param {Object} data What data needs updating\n * @memberof Saratoga\n * @example\n * Saratoga.on('updateAvailable', (data) => {\n * if (data.shipUpdateAvailable || data.equipmentUpdateAvailable) {\n * // handle update\n * }\n * })\n */","meta":{"filename":"Saratoga.js","lineno":37,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is an update available for local data. Only available when Saratoga is initialized with notifyForNewUpdates set to true

    ","kind":"event","name":"updateAvailable","params":[{"type":{"names":["Object"]},"description":"

    What data needs updating

    ","name":"data"}],"memberof":"Saratoga","examples":["Saratoga.on('updateAvailable', (data) => {\n if (data.shipUpdateAvailable || data.equipmentUpdateAvailable) {\n // handle update\n }\n})"],"longname":"Saratoga#event:updateAvailable","scope":"instance","$longname":"Saratoga#event:updateAvailable","$kind":"event","$docmaLink":"?api#Saratoga#event:updateAvailable"}],"$constructor":{"comment":"/**\n * @param {Object} options Object with a single parameter, which is notifyForNewUpdates, which is a boolean\n */","meta":{"range":[366,679],"filename":"Saratoga.js","lineno":13,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000040","name":"Saratoga","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"params":[{"type":{"names":["Object"]},"description":"

    Object with a single parameter, which is notifyForNewUpdates, which is a boolean

    ","name":"options"}],"name":"Saratoga","longname":"Saratoga","kind":"class","scope":"global","$longname":"Saratoga","$kind":"constructor","$docmaLink":"?api#Saratoga"}},{"comment":"/**\n * Equipment related getters for Saratoga\n * @class SaratogaEquipments\n */","meta":{"filename":"SaratogaEquipments.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Equipment related getters for Saratoga

    ","kind":"class","name":"SaratogaEquipments","longname":"SaratogaEquipments","scope":"global","$longname":"SaratogaEquipments","$kind":"class","$docmaLink":"?api#SaratogaEquipments","$members":[{"comment":"/**\n * Custom filter for equipment data\n * @param {requestCallback} callback the callback that handles the response\n */","meta":{"range":[1976,2088],"filename":"SaratogaEquipments.js","lineno":62,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000340","name":"SaratogaEquipments#filter","type":"MethodDefinition","paramnames":["callback"]},"vars":{"":null}},"description":"

    Custom filter for equipment data

    ","params":[{"type":{"names":["requestCallback"]},"description":"

    the callback that handles the response

    ","name":"callback"}],"name":"filter","longname":"SaratogaEquipments#filter","kind":"function","memberof":"SaratogaEquipments","scope":"instance","$longname":"SaratogaEquipments#filter","$kind":"method","$docmaLink":"?api#SaratogaEquipments#filter"},{"comment":"/**\n * Lists the equipments by category\n * @param {string} category name of the category you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[751,893],"filename":"SaratogaEquipments.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000251","name":"SaratogaEquipments#getAllByCategory","type":"MethodDefinition","paramnames":["category"]},"vars":{"":null}},"description":"

    Lists the equipments by category

    ","params":[{"type":{"names":["string"]},"description":"

    name of the category you want to search for

    ","name":"category"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByCategory","longname":"SaratogaEquipments#getAllByCategory","kind":"function","scope":"instance","$longname":"SaratogaEquipments#getAllByCategory","$kind":"method","$docmaLink":"?api#SaratogaEquipments#getAllByCategory"},{"comment":"/**\n * Lists the equipments by nationality\n * @param {string} nationality naitionality name of the equipments you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[1130,1284],"filename":"SaratogaEquipments.js","lineno":40,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000277","name":"SaratogaEquipments#getAllByNationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists the equipments by nationality

    ","params":[{"type":{"names":["string"]},"description":"

    naitionality name of the equipments you want to search for

    ","name":"nationality"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByNationality","longname":"SaratogaEquipments#getAllByNationality","kind":"function","scope":"instance","$longname":"SaratogaEquipments#getAllByNationality","$kind":"method","$docmaLink":"?api#SaratogaEquipments#getAllByNationality"},{"comment":"/**\n * Custom search for data in Fuse instance\n * @param {any} options Fuse search options\n */","meta":{"range":[2204,2311],"filename":"SaratogaEquipments.js","lineno":70,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000360","name":"SaratogaEquipments#search","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"

    Custom search for data in Fuse instance

    ","params":[{"type":{"names":["any"]},"description":"

    Fuse search options

    ","name":"options"}],"name":"search","longname":"SaratogaEquipments#search","kind":"function","memberof":"SaratogaEquipments","scope":"instance","$longname":"SaratogaEquipments#search","$kind":"method","$docmaLink":"?api#SaratogaEquipments#search"},{"comment":"/**\n * Searches for a specific equipment. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the equipment you want to search for\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaEquipments\n * @returns {Equipment | null}\n */","meta":{"range":[1591,1835],"filename":"SaratogaEquipments.js","lineno":52,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000303","name":"SaratogaEquipments#searchByEquipmentName","type":"MethodDefinition","paramnames":["name","limit"]},"vars":{"":null}},"description":"

    Searches for a specific equipment. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the equipment you want to search for

    ","name":"name"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Equipment","null"]}}],"name":"searchByEquipmentName","longname":"SaratogaEquipments#searchByEquipmentName","kind":"function","scope":"instance","$longname":"SaratogaEquipments#searchByEquipmentName","$kind":"method","$docmaLink":"?api#SaratogaEquipments#searchByEquipmentName"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[213,321],"filename":"SaratogaEquipments.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000198","name":"SaratogaEquipments","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaEquipments","longname":"SaratogaEquipments","kind":"class","scope":"global","$longname":"SaratogaEquipments","$kind":"constructor","$docmaLink":"?api#SaratogaEquipments"}},{"comment":"/**\n * Ship related getters for Saratoga\n * @class SaratogaShips\n */","meta":{"filename":"SaratogaShips.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Ship related getters for Saratoga

    ","kind":"class","name":"SaratogaShips","longname":"SaratogaShips","scope":"global","$longname":"SaratogaShips","$kind":"class","$docmaLink":"?api#SaratogaShips","$members":[{"comment":"/**\n * Custom filter for ship data\n * @param {requestCallback} callback the callback that handles the response\n */","meta":{"range":[3082,3194],"filename":"SaratogaShips.js","lineno":97,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000622","name":"SaratogaShips#filter","type":"MethodDefinition","paramnames":["callback"]},"vars":{"":null}},"description":"

    Custom filter for ship data

    ","params":[{"type":{"names":["requestCallback"]},"description":"

    the callback that handles the response

    ","name":"callback"}],"name":"filter","longname":"SaratogaShips#filter","kind":"function","memberof":"SaratogaShips","scope":"instance","$longname":"SaratogaShips#filter","$kind":"method","$docmaLink":"?api#SaratogaShips#filter"},{"comment":"/**\n * Lists all the ships that matches a specific shjp class\n * @param {string} shipClass class of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[761,899],"filename":"SaratogaShips.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000444","name":"SaratogaShips#getAllByClass","type":"MethodDefinition","paramnames":["shipClass"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific shjp class

    ","params":[{"type":{"names":["string"]},"description":"

    class of the ship you want to search for (Case Sensitive)

    ","name":"shipClass"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByClass","longname":"SaratogaShips#getAllByClass","kind":"function","scope":"instance","$longname":"SaratogaShips#getAllByClass","$kind":"method","$docmaLink":"?api#SaratogaShips#getAllByClass"},{"comment":"/**\n * Lists all the ships that matches a specific ship hull type\n * @param {string} hullType hullType of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1559,1701],"filename":"SaratogaShips.js","lineno":51,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000496","name":"SaratogaShips#getAllByHullType","type":"MethodDefinition","paramnames":["hullType"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship hull type

    ","params":[{"type":{"names":["string"]},"description":"

    hullType of the ship you want to search for (Case Sensitive)

    ","name":"hullType"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByHullType","longname":"SaratogaShips#getAllByHullType","kind":"function","scope":"instance","$longname":"SaratogaShips#getAllByHullType","$kind":"method","$docmaLink":"?api#SaratogaShips#getAllByHullType"},{"comment":"/**\n * Lists all the ships that matches a specific ship nationality\n * @param {string} nationality nationality of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1156,1310],"filename":"SaratogaShips.js","lineno":40,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000470","name":"SaratogaShips#getAllByNationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship nationality

    ","params":[{"type":{"names":["string"]},"description":"

    nationality of the ship you want to search for (Case Sensitive)

    ","name":"nationality"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByNationality","longname":"SaratogaShips#getAllByNationality","kind":"function","scope":"instance","$longname":"SaratogaShips#getAllByNationality","$kind":"method","$docmaLink":"?api#SaratogaShips#getAllByNationality"},{"comment":"/**\n * Lists all the ship that matches a specific rarity\n * @param {string} rarity rarity of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1937,2071],"filename":"SaratogaShips.js","lineno":62,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000522","name":"SaratogaShips#getAllByRarity","type":"MethodDefinition","paramnames":["rarity"]},"vars":{"":null}},"description":"

    Lists all the ship that matches a specific rarity

    ","params":[{"type":{"names":["string"]},"description":"

    rarity of the ship you want to search for (Case Sensitive)

    ","name":"rarity"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"getAllByRarity","longname":"SaratogaShips#getAllByRarity","kind":"function","scope":"instance","$longname":"SaratogaShips#getAllByRarity","$kind":"method","$docmaLink":"?api#SaratogaShips#getAllByRarity"},{"comment":"/**\n * Fetches a specific ship via its id\n * @param {number} id id of the ship you want to fetch\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[2255,2434],"filename":"SaratogaShips.js","lineno":73,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000548","name":"SaratogaShips#getById","type":"MethodDefinition","paramnames":["id"]},"vars":{"":null}},"description":"

    Fetches a specific ship via its id

    ","params":[{"type":{"names":["number"]},"description":"

    id of the ship you want to fetch

    ","name":"id"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"getById","longname":"SaratogaShips#getById","kind":"function","scope":"instance","$longname":"SaratogaShips#getById","$kind":"method","$docmaLink":"?api#SaratogaShips#getById"},{"comment":"/**\n * Custom search for data in Fuse instance\n * @param {any} options Fuse search options\n */","meta":{"range":[3310,3417],"filename":"SaratogaShips.js","lineno":105,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000642","name":"SaratogaShips#search","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"

    Custom search for data in Fuse instance

    ","params":[{"type":{"names":["any"]},"description":"

    Fuse search options

    ","name":"options"}],"name":"search","longname":"SaratogaShips#search","kind":"function","memberof":"SaratogaShips","scope":"instance","$longname":"SaratogaShips#search","$kind":"method","$docmaLink":"?api#SaratogaShips#search"},{"comment":"/**\n * Searches for a specific ship. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the ship you want to search for\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[2721,2946],"filename":"SaratogaShips.js","lineno":87,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000585","name":"SaratogaShips#searchShipByName","type":"MethodDefinition","paramnames":["name","limit"]},"vars":{"":null}},"description":"

    Searches for a specific ship. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the ship you want to search for

    ","name":"name"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"searchShipByName","longname":"SaratogaShips#searchShipByName","kind":"function","scope":"instance","$longname":"SaratogaShips#searchShipByName","$kind":"method","$docmaLink":"?api#SaratogaShips#searchShipByName"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[198,306],"filename":"SaratogaShips.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000391","name":"SaratogaShips","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaShips","longname":"SaratogaShips","kind":"class","scope":"global","$longname":"SaratogaShips","$kind":"constructor","$docmaLink":"?api#SaratogaShips"}},{"comment":"/**\n * Saratoga, the starting point of this API\n * @class SaratogaStore\n */","meta":{"filename":"SaratogaStore.js","lineno":7,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Saratoga, the starting point of this API

    ","kind":"class","name":"SaratogaStore","longname":"SaratogaStore","scope":"global","$longname":"SaratogaStore","$kind":"class","$docmaLink":"?api#SaratogaStore","$members":[{"comment":"/**\n * Equipment related getters for this store\n * @type {SaratogaEquipments}\n */","meta":{"range":[906,952],"filename":"SaratogaStore.js","lineno":30,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000723","name":"this.equipments","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Equipment related getters for this store

    ","type":{"names":["SaratogaEquipments"]},"name":"equipments","longname":"SaratogaStore#equipments","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#equipments","$kind":"property","$docmaLink":"?api#SaratogaStore#equipments"},{"comment":"/**\n * If this store is already ready to operate\n * @type {Boolean}\n */","meta":{"range":[1732,1750],"filename":"SaratogaStore.js","lineno":55,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000739","name":"this.ready","type":"Literal","value":false,"paramnames":[]}},"description":"

    If this store is already ready to operate

    ","type":{"names":["Boolean"]},"name":"ready","longname":"SaratogaStore#ready","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#ready","$kind":"property","$docmaLink":"?api#SaratogaStore#ready"},{"comment":"/**\n * The saratoga instance that generated this instance\n * @type {Saratoga}\n */","meta":{"range":[608,632],"filename":"SaratogaStore.js","lineno":20,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000709","name":"this.saratoga","type":"Identifier","value":"saratoga","paramnames":[]}},"description":"

    The saratoga instance that generated this instance

    ","type":{"names":["Saratoga"]},"name":"saratoga","longname":"SaratogaStore#saratoga","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#saratoga","$kind":"property","$docmaLink":"?api#SaratogaStore#saratoga"},{"comment":"/**\n * Ship related getters for this store\n * @type {SaratogaShips}\n */","meta":{"range":[746,782],"filename":"SaratogaStore.js","lineno":25,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000715","name":"this.ships","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Ship related getters for this store

    ","type":{"names":["SaratogaShips"]},"name":"ships","longname":"SaratogaStore#ships","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#ships","$kind":"property","$docmaLink":"?api#SaratogaStore#ships"},{"comment":"/**\n * Updater Class for the local data for this store\n * @type {SaratogaUpdater}\n */","meta":{"range":[1578,1618],"filename":"SaratogaStore.js","lineno":50,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000731","name":"this.updater","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Updater Class for the local data for this store

    ","type":{"names":["SaratogaUpdater"]},"name":"updater","longname":"SaratogaStore#updater","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#updater","$kind":"property","$docmaLink":"?api#SaratogaStore#updater"}],"$constructor":{"comment":"/**\n * @param {Saratoga} saratoga The saratoga class that generated this instance\n */","meta":{"range":[462,2583],"filename":"SaratogaStore.js","lineno":15,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000703","name":"SaratogaStore","type":"MethodDefinition","paramnames":["saratoga"]},"vars":{"":null}},"params":[{"type":{"names":["Saratoga"]},"description":"

    The saratoga class that generated this instance

    ","name":"saratoga"}],"name":"SaratogaStore","longname":"SaratogaStore","kind":"class","scope":"global","$longname":"SaratogaStore","$kind":"constructor","$docmaLink":"?api#SaratogaStore"}},{"comment":"/**\n * Manages the local data & cache updates\n * @class SaratogaUpdater\n */","meta":{"filename":"SaratogaUpdater.js","lineno":5,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{}},"description":"

    Manages the local data & cache updates

    ","kind":"class","name":"SaratogaUpdater","longname":"SaratogaUpdater","scope":"global","$longname":"SaratogaUpdater","$kind":"class","$docmaLink":"?api#SaratogaUpdater","$members":[{"comment":"/**\n * Checks if there is new updates for ship or equipment data\n * @memberof SaratogaUpdater\n * @returns {Promise}\n * @example\n * const api = new Saratoga();\n * api.updater.checkForUpdate()\n * .then((response) => {\n * if (response.shipUpdateAvailable || response.equipmentUpdateAvailable) console.log('update available');\n * })\n */","meta":{"range":[3518,3930],"filename":"SaratogaUpdater.js","lineno":90,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001757","name":"SaratogaUpdater#checkForUpdate","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Checks if there is new updates for ship or equipment data

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"examples":["const api = new Saratoga();\napi.updater.checkForUpdate()\n .then((response) => {\n if (response.shipUpdateAvailable || response.equipmentUpdateAvailable) console.log('update available');\n })"],"name":"checkForUpdate","longname":"SaratogaUpdater#checkForUpdate","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#checkForUpdate","$kind":"method","$docmaLink":"?api#SaratogaUpdater#checkForUpdate"},{"comment":"/**\n * Updates the Cached Data, loaded from the local files of Saratoga\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[5315,5490],"filename":"SaratogaUpdater.js","lineno":135,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001877","name":"SaratogaUpdater#updateCache","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Cached Data, loaded from the local files of Saratoga

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateCache","longname":"SaratogaUpdater#updateCache","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateCache","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateCache"},{"comment":"/**\n * Updates the Local Files & Cached Data in one method, good for single process scenarios as it's easy. Not for multi sharded programs that has its own Saratoga instance per shard.\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[3011,3117],"filename":"SaratogaUpdater.js","lineno":74,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001741","name":"SaratogaUpdater#updateDataAndCache","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Local Files & Cached Data in one method, good for single process scenarios as it's easy. Not for multi sharded programs that has its own Saratoga instance per shard.

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateDataAndCache","longname":"SaratogaUpdater#updateDataAndCache","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateDataAndCache","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateDataAndCache"},{"comment":"/**\n * Updates the Local Files of Saratoga if there is an update\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[4082,5156],"filename":"SaratogaUpdater.js","lineno":104,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001777","name":"SaratogaUpdater#updateLocalData","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Local Files of Saratoga if there is an update

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateLocalData","longname":"SaratogaUpdater#updateLocalData","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateLocalData","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateLocalData"},{"comment":"/**\n * The cron update checker which is responsible for Saratoga#updateAvailable event\n * @type {?Timeout}\n */","meta":{"range":[830,852],"filename":"SaratogaUpdater.js","lineno":28,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001474","name":"this.cronUpdate","type":"Literal","value":null,"paramnames":[]}},"description":"

    The cron update checker which is responsible for Saratoga#updateAvailable event

    ","type":{"names":["Timeout"]},"nullable":true,"name":"cronUpdate","longname":"SaratogaUpdater#cronUpdate","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#cronUpdate","$kind":"property","$docmaLink":"?api#SaratogaUpdater#cronUpdate"},{"comment":"/**\n * If the data directory of this updater is ready to operate\n * @type {Boolean}\n */","meta":{"range":[652,677],"filename":"SaratogaUpdater.js","lineno":23,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001468","name":"this.dataDirReady","type":"Literal","value":false,"paramnames":[]}},"description":"

    If the data directory of this updater is ready to operate

    ","type":{"names":["Boolean"]},"name":"dataDirReady","longname":"SaratogaUpdater#dataDirReady","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#dataDirReady","$kind":"property","$docmaLink":"?api#SaratogaUpdater#dataDirReady"},{"comment":"/**\n * The saratoga instance that generated this instance\n * @type {Saratoga}\n */","meta":{"range":[963,1021],"filename":"SaratogaUpdater.js","lineno":35,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001479","name":"SaratogaUpdater#saratoga","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    The saratoga instance that generated this instance

    ","type":{"names":["Saratoga"]},"name":"saratoga","longname":"SaratogaUpdater#saratoga","kind":"member","memberof":"SaratogaUpdater","scope":"instance","params":[],"$longname":"SaratogaUpdater#saratoga","$kind":"property","$docmaLink":"?api#SaratogaUpdater#saratoga"},{"comment":"/**\n * The updater instance that generated this instance\n * @type {SaratogaStore}\n */","meta":{"range":[504,522],"filename":"SaratogaUpdater.js","lineno":18,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001462","name":"this.store","type":"Identifier","value":"store","paramnames":[]}},"description":"

    The updater instance that generated this instance

    ","type":{"names":["SaratogaStore"]},"name":"store","longname":"SaratogaUpdater#store","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#store","$kind":"property","$docmaLink":"?api#SaratogaUpdater#store"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[357,859],"filename":"SaratogaUpdater.js","lineno":13,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001456","name":"SaratogaUpdater","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaUpdater","longname":"SaratogaUpdater","kind":"class","scope":"global","$longname":"SaratogaUpdater","$kind":"constructor","$docmaLink":"?api#SaratogaUpdater"}},{"comment":"","meta":{"range":[122,250],"filename":"SaratogaValidator.js","lineno":5,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002268","name":"SaratogaValidator","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"undocumented":true,"name":"SaratogaValidator","longname":"SaratogaValidator","kind":"class","scope":"global","params":[],"$longname":"SaratogaValidator","$kind":"constructor","$docmaLink":"?api#SaratogaValidator"},{"comment":"/**\n * Barrage Data\n * @external Barrage\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":34,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Barrage Data

    ","kind":"external","name":"Barrage","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Barrage","scope":"global","$longname":"external:Barrage","$kind":"external","$docmaLink":"?api#external:Barrage"},{"comment":"/**\n * Chapter Data\n * @external Chapter\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":24,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Chapter Data

    ","kind":"external","name":"Chapter","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Chapter","scope":"global","$longname":"external:Chapter","$kind":"external","$docmaLink":"?api#external:Chapter"},{"comment":"/**\n * Equipment Data\n * @external Equipment\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":19,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Equipment Data

    ","kind":"external","name":"Equipment","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Equipment","scope":"global","$longname":"external:Equipment","$kind":"external","$docmaLink":"?api#external:Equipment"},{"comment":"/**\n * Node.js Event Emitter\n * @external EventEmitter\n * @see {@link https://nodejs.org/api/events.html}\n */","meta":{"filename":"index.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Node.js Event Emitter

    ","kind":"external","name":"EventEmitter","see":["{@link https://nodejs.org/api/events.html}"],"longname":"external:EventEmitter","scope":"global","$longname":"external:EventEmitter","$kind":"external","$docmaLink":"?api#external:EventEmitter"},{"comment":"/**\n * Ship Data\n * @external Ship\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#ship-getters}\n */","meta":{"filename":"index.js","lineno":13,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Ship Data

    ","kind":"external","name":"Ship","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#ship-getters}"],"longname":"external:Ship","scope":"global","$longname":"external:Ship","$kind":"external","$docmaLink":"?api#external:Ship"},{"comment":"/**\n * Node.js Timeout\n * @external Timeout\n * @see {@link https://nodejs.org/dist/latest/docs/api/timers.html#timers_class_timeout}\n */","meta":{"filename":"index.js","lineno":7,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Node.js Timeout

    ","kind":"external","name":"Timeout","see":["{@link https://nodejs.org/dist/latest/docs/api/timers.html#timers_class_timeout}"],"longname":"external:Timeout","scope":"global","$longname":"external:Timeout","$kind":"external","$docmaLink":"?api#external:Timeout"},{"comment":"/**\n * Voiceline Data\n * @external Voiceline\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":29,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Voiceline Data

    ","kind":"external","name":"Voiceline","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Voiceline","scope":"global","$longname":"external:Voiceline","$kind":"external","$docmaLink":"?api#external:Voiceline"}],"symbols":["external:Barrage","external:Chapter","external:Equipment","external:EventEmitter","external:Ship","external:Timeout","external:Voiceline","Saratoga","Saratoga#barrages","Saratoga#chapters","Saratoga#equipments","Saratoga#event:debug","Saratoga#event:error","Saratoga#event:ready","Saratoga#event:updateAvailable","Saratoga#ready","Saratoga#ships","Saratoga#store","Saratoga#updater","Saratoga#voicelines","SaratogaEquipments","SaratogaEquipments#filter","SaratogaEquipments#getAllByCategory","SaratogaEquipments#getAllByNationality","SaratogaEquipments#search","SaratogaEquipments#searchByEquipmentName","SaratogaShips","SaratogaShips#filter","SaratogaShips#getAllByClass","SaratogaShips#getAllByHullType","SaratogaShips#getAllByNationality","SaratogaShips#getAllByRarity","SaratogaShips#getById","SaratogaShips#search","SaratogaShips#searchShipByName","SaratogaStore","SaratogaStore#equipments","SaratogaStore#ready","SaratogaStore#saratoga","SaratogaStore#ships","SaratogaStore#updater","SaratogaUpdater","SaratogaUpdater#checkForUpdate","SaratogaUpdater#cronUpdate","SaratogaUpdater#dataDirReady","SaratogaUpdater#saratoga","SaratogaUpdater#store","SaratogaUpdater#updateCache","SaratogaUpdater#updateDataAndCache","SaratogaUpdater#updateLocalData","SaratogaValidator"]}},"app":{"title":"Saratoga | An open source Azur Lane local library","routing":{"method":"query","caseSensitive":true},"entrance":"content:readme","base":"/Saratoga/","meta":null,"server":"static","favicon":""},"template":{"name":"docma-template-zebra","description":"Zebra - Default template for Docma. https://github.com/onury/docma","version":"2.3.1","supportedDocmaVersion":">=2.0.0","author":"Onur Yıldırım","license":"MIT","mainHTML":"index.html","options":{"title":{"label":"Saratoga","href":"."},"sidebar":{"enabled":true,"outline":"tree","collapsed":false,"toolbar":true,"itemsFolded":false,"itemsOverflow":"crop","badges":true,"search":true,"animations":true},"symbols":{"autoLink":true,"params":"list","enums":"list","props":"list","meta":false},"navbar":{"enabled":true,"dark":false,"animations":true,"menu":[{"label":"Readme","href":"."},{"label":"Documentation","href":"?api"},{"label":"GitHub","href":"https://github.com/AzurAPI/Saratoga"}],"fixed":true},"logo":null,"contentView":{"bookmarks":false,"faVersion":"5.5.0","faLibs":"all"}}},"partials":{"api":"docma-api","content":"docma-content","notFound":"docma-404"},"elementID":"docma-main","contentElementID":"docma-content","defaultApiName":"_def_","logsEnabled":false})); +var docma = Object.freeze(new DocmaWeb({"version":"3.2.2","routes":[{"id":"api:","type":"api","name":"_def_","path":"?api","contentPath":null,"sourceType":"js"},{"id":"content:readme","type":"content","name":"readme","path":"?content=readme","contentPath":"content/readme.html","sourceType":"md"}],"apis":{"_def_":{"documentation":[{"comment":"/**\n * Saratoga, the starting point of this API\n * @class Saratoga\n * @extends {EventEmitter}\n */","meta":{"filename":"Saratoga.js","lineno":4,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Saratoga, the starting point of this API

    ","kind":"class","name":"Saratoga","augments":["EventEmitter"],"longname":"Saratoga","scope":"global","$longname":"Saratoga","$kind":"class","$docmaLink":"?api#Saratoga","$members":[{"comment":"/**\n * Barrage related getters for this store\n * @type {SaratogaBarrages}\n */","meta":{"range":[2891,2987],"filename":"Saratoga.js","lineno":108,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000166","name":"Saratoga#barrages","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Barrage related getters for this store

    ","type":{"names":["SaratogaBarrages"]},"name":"barrages","longname":"Saratoga#barrages","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#barrages","$kind":"property","$docmaLink":"?api#Saratoga#barrages"},{"comment":"/**\n * Chapters related getters for this store\n * @type {SaratogaChapters}\n */","meta":{"range":[2493,2589],"filename":"Saratoga.js","lineno":92,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000132","name":"Saratoga#chapters","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Chapters related getters for this store

    ","type":{"names":["SaratogaChapters"]},"name":"chapters","longname":"Saratoga#chapters","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#chapters","$kind":"property","$docmaLink":"?api#Saratoga#chapters"},{"comment":"/**\n * Azur Lane's Equipment related getter methods\n * @type {SaratogaEquipments}\n */","meta":{"range":[2293,2393],"filename":"Saratoga.js","lineno":84,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000115","name":"Saratoga#equipments","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Azur Lane's Equipment related getter methods

    ","type":{"names":["SaratogaEquipments"]},"name":"equipments","longname":"Saratoga#equipments","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#equipments","$kind":"property","$docmaLink":"?api#Saratoga#equipments"},{"comment":"/**\n * If Saratoga is ready to operate\n * @type {Boolean}\n */","meta":{"range":[1910,1997],"filename":"Saratoga.js","lineno":67,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000080","name":"Saratoga#ready","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    If Saratoga is ready to operate

    ","type":{"names":["Boolean"]},"name":"ready","longname":"Saratoga#ready","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#ready","$kind":"property","$docmaLink":"?api#Saratoga#ready"},{"comment":"/**\n * Azur Lane's Ship related getter methods\n * @type {SaratogaShips}\n */","meta":{"range":[2095,2185],"filename":"Saratoga.js","lineno":75,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000098","name":"Saratoga#ships","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Azur Lane's Ship related getter methods

    ","type":{"names":["SaratogaShips"]},"name":"ships","longname":"Saratoga#ships","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#ships","$kind":"property","$docmaLink":"?api#Saratoga#ships"},{"comment":"/**\n * Contains methods and props for managing cached data\n * @type {SaratogaStore}\n */","meta":{"range":[567,603],"filename":"Saratoga.js","lineno":19,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000053","name":"this.store","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Contains methods and props for managing cached data

    ","type":{"names":["SaratogaStore"]},"name":"store","longname":"Saratoga#store","kind":"member","memberof":"Saratoga","scope":"instance","$longname":"Saratoga#store","$kind":"property","$docmaLink":"?api#Saratoga#store"},{"comment":"/**\n * Contains methods for updating Saratoga's local data & cache\n * @type {SaratogaUpdater}\n */","meta":{"range":[1770,1826],"filename":"Saratoga.js","lineno":59,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000070","name":"Saratoga#updater","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Contains methods for updating Saratoga's local data & cache

    ","type":{"names":["SaratogaUpdater"]},"name":"updater","longname":"Saratoga#updater","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#updater","$kind":"property","$docmaLink":"?api#Saratoga#updater"},{"comment":"/**\n * Voiceline related getters for this store\n * @type {SaratogaVoicelines}\n */","meta":{"range":[2692,2792],"filename":"Saratoga.js","lineno":100,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000149","name":"Saratoga#voicelines","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Voiceline related getters for this store

    ","type":{"names":["SaratogaVoicelines"]},"name":"voicelines","longname":"Saratoga#voicelines","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#voicelines","$kind":"property","$docmaLink":"?api#Saratoga#voicelines"},{"comment":"/**\n * Emitted when there is a debug data\n * @event Saratoga#debug\n * @param {string} message Debug message\n * @memberof Saratoga\n */","meta":{"filename":"Saratoga.js","lineno":23,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is a debug data

    ","kind":"event","name":"debug","params":[{"type":{"names":["string"]},"description":"

    Debug message

    ","name":"message"}],"memberof":"Saratoga","longname":"Saratoga#event:debug","scope":"instance","$longname":"Saratoga#event:debug","$kind":"event","$docmaLink":"?api#Saratoga#event:debug"},{"comment":"/**\n * Emitted when there is a pesky error\n * @event Saratoga#error\n * @param {Error} error The error encountered.\n * @memberof Saratoga\n * @example\n * Saratoga.on('error', console.error);\n */","meta":{"filename":"Saratoga.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is a pesky error

    ","kind":"event","name":"error","params":[{"type":{"names":["Error"]},"description":"

    The error encountered.

    ","name":"error"}],"memberof":"Saratoga","examples":["Saratoga.on('error', console.error);"],"longname":"Saratoga#event:error","scope":"instance","$longname":"Saratoga#event:error","$kind":"event","$docmaLink":"?api#Saratoga#event:error"},{"comment":"/**\n * Emitted when Saratoga is ready\n * @event Saratoga#ready\n * @memberof Saratoga\n */","meta":{"filename":"Saratoga.js","lineno":49,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when Saratoga is ready

    ","kind":"event","name":"ready","memberof":"Saratoga","longname":"Saratoga#event:ready","scope":"instance","$longname":"Saratoga#event:ready","$kind":"event","$docmaLink":"?api#Saratoga#event:ready"},{"comment":"/**\n * Emitted when there is an update available for local data. Only available when Saratoga is initialized with notifyForNewUpdates set to true\n * @event Saratoga#updateAvailable\n * @param {Object} data What data needs updating\n * @memberof Saratoga\n * @example\n * Saratoga.on('updateAvailable', (data) => {\n * if (data.shipUpdateAvailable || data.equipmentUpdateAvailable) {\n * // handle update\n * }\n * })\n */","meta":{"filename":"Saratoga.js","lineno":37,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is an update available for local data. Only available when Saratoga is initialized with notifyForNewUpdates set to true

    ","kind":"event","name":"updateAvailable","params":[{"type":{"names":["Object"]},"description":"

    What data needs updating

    ","name":"data"}],"memberof":"Saratoga","examples":["Saratoga.on('updateAvailable', (data) => {\n if (data.shipUpdateAvailable || data.equipmentUpdateAvailable) {\n // handle update\n }\n})"],"longname":"Saratoga#event:updateAvailable","scope":"instance","$longname":"Saratoga#event:updateAvailable","$kind":"event","$docmaLink":"?api#Saratoga#event:updateAvailable"}],"$constructor":{"comment":"/**\n * @param {Object} options Object with a single parameter, which is notifyForNewUpdates, which is a boolean\n */","meta":{"range":[366,679],"filename":"Saratoga.js","lineno":13,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000040","name":"Saratoga","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"params":[{"type":{"names":["Object"]},"description":"

    Object with a single parameter, which is notifyForNewUpdates, which is a boolean

    ","name":"options"}],"name":"Saratoga","longname":"Saratoga","kind":"class","scope":"global","$longname":"Saratoga","$kind":"constructor","$docmaLink":"?api#Saratoga"}},{"comment":"/**\n * Equipment related getters for Saratoga\n * @class SaratogaEquipments\n */","meta":{"filename":"SaratogaEquipments.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Equipment related getters for Saratoga

    ","kind":"class","name":"SaratogaEquipments","longname":"SaratogaEquipments","scope":"global","$longname":"SaratogaEquipments","$kind":"class","$docmaLink":"?api#SaratogaEquipments","$members":[{"comment":"/**\n * Get an unfiltered equipment list\n */","meta":{"range":[2442,2526],"filename":"SaratogaEquipments.js","lineno":79,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000407","name":"SaratogaEquipments#all","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Get an unfiltered equipment list

    ","name":"all","longname":"SaratogaEquipments#all","kind":"function","memberof":"SaratogaEquipments","scope":"instance","params":[],"$longname":"SaratogaEquipments#all","$kind":"method","$docmaLink":"?api#SaratogaEquipments#all"},{"comment":"/**\n * Lists the equipments by category\n * @param {string} category name of the category you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[751,885],"filename":"SaratogaEquipments.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000251","name":"SaratogaEquipments#category","type":"MethodDefinition","paramnames":["category"]},"vars":{"":null}},"description":"

    Lists the equipments by category

    ","params":[{"type":{"names":["string"]},"description":"

    name of the category you want to search for

    ","name":"category"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"category","longname":"SaratogaEquipments#category","kind":"function","scope":"instance","$longname":"SaratogaEquipments#category","$kind":"method","$docmaLink":"?api#SaratogaEquipments#category"},{"comment":"/**\n * Custom filter for equipment data\n * @param {requestCallback} callback the callback that handles the response\n */","meta":{"range":[2668,2780],"filename":"SaratogaEquipments.js","lineno":88,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000422","name":"SaratogaEquipments#filter","type":"MethodDefinition","paramnames":["callback"]},"vars":{"":null}},"description":"

    Custom filter for equipment data

    ","params":[{"type":{"names":["requestCallback"]},"description":"

    the callback that handles the response

    ","name":"callback"}],"name":"filter","longname":"SaratogaEquipments#filter","kind":"function","memberof":"SaratogaEquipments","scope":"instance","$longname":"SaratogaEquipments#filter","$kind":"method","$docmaLink":"?api#SaratogaEquipments#filter"},{"comment":"/**\n * Searches for a specific equipment. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the equipment you want to search for\n * @param {string} language optional language to search by\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaEquipments\n * @returns {Equipment | null}\n */","meta":{"range":[1638,2380],"filename":"SaratogaEquipments.js","lineno":53,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000303","name":"SaratogaEquipments#name","type":"MethodDefinition","paramnames":["name","language","limit"]},"vars":{"":null}},"description":"

    Searches for a specific equipment. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the equipment you want to search for

    ","name":"name"},{"type":{"names":["string"]},"description":"

    optional language to search by

    ","name":"language"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Equipment","null"]}}],"name":"name","longname":"SaratogaEquipments#name","kind":"function","scope":"instance","$longname":"SaratogaEquipments#name","$kind":"method","$docmaLink":"?api#SaratogaEquipments#name"},{"comment":"/**\n * Lists the equipments by nationality\n * @param {string} nationality naitionality name of the equipments you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[1122,1268],"filename":"SaratogaEquipments.js","lineno":40,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000277","name":"SaratogaEquipments#nationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists the equipments by nationality

    ","params":[{"type":{"names":["string"]},"description":"

    naitionality name of the equipments you want to search for

    ","name":"nationality"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"nationality","longname":"SaratogaEquipments#nationality","kind":"function","scope":"instance","$longname":"SaratogaEquipments#nationality","$kind":"method","$docmaLink":"?api#SaratogaEquipments#nationality"},{"comment":"/**\n * Custom search for data in Fuse instance\n * @param {any} options Fuse search options\n */","meta":{"range":[2896,3003],"filename":"SaratogaEquipments.js","lineno":96,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000442","name":"SaratogaEquipments#search","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"

    Custom search for data in Fuse instance

    ","params":[{"type":{"names":["any"]},"description":"

    Fuse search options

    ","name":"options"}],"name":"search","longname":"SaratogaEquipments#search","kind":"function","memberof":"SaratogaEquipments","scope":"instance","$longname":"SaratogaEquipments#search","$kind":"method","$docmaLink":"?api#SaratogaEquipments#search"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[213,321],"filename":"SaratogaEquipments.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000198","name":"SaratogaEquipments","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaEquipments","longname":"SaratogaEquipments","kind":"class","scope":"global","$longname":"SaratogaEquipments","$kind":"constructor","$docmaLink":"?api#SaratogaEquipments"}},{"comment":"/**\n * Ship related getters for Saratoga\n * @class SaratogaShips\n */","meta":{"filename":"SaratogaShips.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Ship related getters for Saratoga

    ","kind":"class","name":"SaratogaShips","longname":"SaratogaShips","scope":"global","$longname":"SaratogaShips","$kind":"class","$docmaLink":"?api#SaratogaShips","$members":[{"comment":"/**\n * Custom filter for ship data\n * @param {requestCallback} callback the callback that handles the response\n */","meta":{"range":[2763,2875],"filename":"SaratogaShips.js","lineno":94,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000753","name":"SaratogaShips#filter","type":"MethodDefinition","paramnames":["callback"]},"vars":{"":null}},"description":"

    Custom filter for ship data

    ","params":[{"type":{"names":["requestCallback"]},"description":"

    the callback that handles the response

    ","name":"callback"}],"name":"filter","longname":"SaratogaShips#filter","kind":"function","memberof":"SaratogaShips","scope":"instance","$longname":"SaratogaShips#filter","$kind":"method","$docmaLink":"?api#SaratogaShips#filter"},{"comment":"/**\n * Search from all ships\n * @param {number | string} id \n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[666,1089],"filename":"SaratogaShips.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000526","name":"SaratogaShips#get","type":"MethodDefinition","paramnames":["id"]},"vars":{"":null}},"description":"

    Search from all ships

    ","params":[{"type":{"names":["number","string"]},"name":"id"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"get","longname":"SaratogaShips#get","kind":"function","scope":"instance","$longname":"SaratogaShips#get","$kind":"method","$docmaLink":"?api#SaratogaShips#get"},{"comment":"/**\n * Fetches a specific ship via its id\n * @param {number} id id of the ship you want to fetch\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[1273,1447],"filename":"SaratogaShips.js","lineno":50,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000599","name":"SaratogaShips#id","type":"MethodDefinition","paramnames":["id"]},"vars":{"":null}},"description":"

    Fetches a specific ship via its id

    ","params":[{"type":{"names":["number"]},"description":"

    id of the ship you want to fetch

    ","name":"id"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"id","longname":"SaratogaShips#id","kind":"function","scope":"instance","$longname":"SaratogaShips#id","$kind":"method","$docmaLink":"?api#SaratogaShips#id"},{"comment":"/**\n * Searches for a specific ship. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the ship you want to search for\n * @param {string} language optional language to search by\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[1797,2627],"filename":"SaratogaShips.js","lineno":65,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000636","name":"SaratogaShips#name","type":"MethodDefinition","paramnames":["name","language","limit"]},"vars":{"":null}},"description":"

    Searches for a specific ship. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the ship you want to search for

    ","name":"name"},{"type":{"names":["string"]},"description":"

    optional language to search by

    ","name":"language"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"name","longname":"SaratogaShips#name","kind":"function","scope":"instance","$longname":"SaratogaShips#name","$kind":"method","$docmaLink":"?api#SaratogaShips#name"},{"comment":"/**\n * Custom search for data in Fuse instance\n * @param {any} options Fuse search options\n */","meta":{"range":[2991,3098],"filename":"SaratogaShips.js","lineno":102,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000773","name":"SaratogaShips#search","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"

    Custom search for data in Fuse instance

    ","params":[{"type":{"names":["any"]},"description":"

    Fuse search options

    ","name":"options"}],"name":"search","longname":"SaratogaShips#search","kind":"function","memberof":"SaratogaShips","scope":"instance","$longname":"SaratogaShips#search","$kind":"method","$docmaLink":"?api#SaratogaShips#search"},{"comment":"/**\n * Lists all the ships that matches a specific shjp class\n * @param {string} shipClass class of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[4410,4540],"filename":"SaratogaShips.js","lineno":166,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000930","name":"ShipExtFilter#class","type":"MethodDefinition","paramnames":["shipClass"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific shjp class

    ","params":[{"type":{"names":["string"]},"description":"

    class of the ship you want to search for (Case Sensitive)

    ","name":"shipClass"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"ShipExtFilter#class","longname":"SaratogaShips.ShipExtFilter#class","kind":"function","scope":"static","$longname":"SaratogaShips.ShipExtFilter#class","$kind":"method","$docmaLink":"?api#SaratogaShips.ShipExtFilter#class"},{"comment":"/**\n * Lists all the ships that matches a specific ship nationality\n * @param {string} nationality nationality of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[4797,4943],"filename":"SaratogaShips.js","lineno":177,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000956","name":"ShipExtFilter#nationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship nationality

    ","params":[{"type":{"names":["string"]},"description":"

    nationality of the ship you want to search for (Case Sensitive)

    ","name":"nationality"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"ShipExtFilter#nationality","longname":"SaratogaShips.ShipExtFilter#nationality","kind":"function","scope":"static","$longname":"SaratogaShips.ShipExtFilter#nationality","$kind":"method","$docmaLink":"?api#SaratogaShips.ShipExtFilter#nationality"},{"comment":"/**\n * Lists all the ship that matches a specific rarity\n * @param {string} rarity rarity of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[5558,5684],"filename":"SaratogaShips.js","lineno":199,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001008","name":"ShipExtFilter#rarity","type":"MethodDefinition","paramnames":["rarity"]},"vars":{"":null}},"description":"

    Lists all the ship that matches a specific rarity

    ","params":[{"type":{"names":["string"]},"description":"

    rarity of the ship you want to search for (Case Sensitive)

    ","name":"rarity"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"ShipExtFilter#rarity","longname":"SaratogaShips.ShipExtFilter#rarity","kind":"function","scope":"static","$longname":"SaratogaShips.ShipExtFilter#rarity","$kind":"method","$docmaLink":"?api#SaratogaShips.ShipExtFilter#rarity"},{"comment":"/**\n * Lists all the ships that matches a specific ship hull type\n * @param {string} hullType hullType of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[5192,5322],"filename":"SaratogaShips.js","lineno":188,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000982","name":"ShipExtFilter#type","type":"MethodDefinition","paramnames":["hullType"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship hull type

    ","params":[{"type":{"names":["string"]},"description":"

    hullType of the ship you want to search for (Case Sensitive)

    ","name":"hullType"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"ShipExtFilter#type","longname":"SaratogaShips.ShipExtFilter#type","kind":"function","scope":"static","$longname":"SaratogaShips.ShipExtFilter#type","$kind":"method","$docmaLink":"?api#SaratogaShips.ShipExtFilter#type"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[198,306],"filename":"SaratogaShips.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000473","name":"SaratogaShips","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaShips","longname":"SaratogaShips","kind":"class","scope":"global","$longname":"SaratogaShips","$kind":"constructor","$docmaLink":"?api#SaratogaShips"}},{"comment":"/**\n * Saratoga, the starting point of this API\n * @class SaratogaStore\n */","meta":{"filename":"SaratogaStore.js","lineno":9,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Saratoga, the starting point of this API

    ","kind":"class","name":"SaratogaStore","longname":"SaratogaStore","scope":"global","$longname":"SaratogaStore","$kind":"class","$docmaLink":"?api#SaratogaStore","$members":[{"comment":"/**\n * Equipment related getters for this store\n * @type {SaratogaEquipments}\n */","meta":{"range":[1101,1147],"filename":"SaratogaStore.js","lineno":34,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001130","name":"this.equipments","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Equipment related getters for this store

    ","type":{"names":["SaratogaEquipments"]},"name":"equipments","longname":"SaratogaStore#equipments","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#equipments","$kind":"property","$docmaLink":"?api#SaratogaStore#equipments"},{"comment":"/**\n * If this store is already ready to operate\n * @type {Boolean}\n */","meta":{"range":[1927,1945],"filename":"SaratogaStore.js","lineno":59,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001146","name":"this.ready","type":"Literal","value":false,"paramnames":[]}},"description":"

    If this store is already ready to operate

    ","type":{"names":["Boolean"]},"name":"ready","longname":"SaratogaStore#ready","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#ready","$kind":"property","$docmaLink":"?api#SaratogaStore#ready"},{"comment":"/**\n * The saratoga instance that generated this instance\n * @type {Saratoga}\n */","meta":{"range":[705,729],"filename":"SaratogaStore.js","lineno":22,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001096","name":"this.saratoga","type":"Identifier","value":"saratoga","paramnames":[]}},"description":"

    The saratoga instance that generated this instance

    ","type":{"names":["Saratoga"]},"name":"saratoga","longname":"SaratogaStore#saratoga","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#saratoga","$kind":"property","$docmaLink":"?api#SaratogaStore#saratoga"},{"comment":"/**\n * Ship related getters for this store\n * @type {SaratogaShips}\n */","meta":{"range":[843,879],"filename":"SaratogaStore.js","lineno":27,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001102","name":"this.ships","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Ship related getters for this store

    ","type":{"names":["SaratogaShips"]},"name":"ships","longname":"SaratogaStore#ships","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#ships","$kind":"property","$docmaLink":"?api#SaratogaStore#ships"},{"comment":"/**\n * Updater Class for the local data for this store\n * @type {SaratogaUpdater}\n */","meta":{"range":[1773,1813],"filename":"SaratogaStore.js","lineno":54,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001138","name":"this.updater","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Updater Class for the local data for this store

    ","type":{"names":["SaratogaUpdater"]},"name":"updater","longname":"SaratogaStore#updater","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#updater","$kind":"property","$docmaLink":"?api#SaratogaStore#updater"}],"$constructor":{"comment":"/**\n * @param {Saratoga} saratoga The saratoga class that generated this instance\n */","meta":{"range":[559,2778],"filename":"SaratogaStore.js","lineno":17,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001090","name":"SaratogaStore","type":"MethodDefinition","paramnames":["saratoga"]},"vars":{"":null}},"params":[{"type":{"names":["Saratoga"]},"description":"

    The saratoga class that generated this instance

    ","name":"saratoga"}],"name":"SaratogaStore","longname":"SaratogaStore","kind":"class","scope":"global","$longname":"SaratogaStore","$kind":"constructor","$docmaLink":"?api#SaratogaStore"}},{"comment":"/**\n * Manages the local data & cache updates\n * @class SaratogaUpdater\n */","meta":{"filename":"SaratogaUpdater.js","lineno":5,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{}},"description":"

    Manages the local data & cache updates

    ","kind":"class","name":"SaratogaUpdater","longname":"SaratogaUpdater","scope":"global","$longname":"SaratogaUpdater","$kind":"class","$docmaLink":"?api#SaratogaUpdater","$members":[{"comment":"/**\n * Checks if there is new updates for ship or equipment data\n * @memberof SaratogaUpdater\n * @returns {Promise}\n * @example\n * const api = new Saratoga();\n * api.updater.checkForUpdate()\n * .then((response) => {\n * if (response.shipUpdateAvailable || response.equipmentUpdateAvailable) console.log('update available');\n * })\n */","meta":{"range":[3577,3989],"filename":"SaratogaUpdater.js","lineno":90,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002157","name":"SaratogaUpdater#checkForUpdate","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Checks if there is new updates for ship or equipment data

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"examples":["const api = new Saratoga();\napi.updater.checkForUpdate()\n .then((response) => {\n if (response.shipUpdateAvailable || response.equipmentUpdateAvailable) console.log('update available');\n })"],"name":"checkForUpdate","longname":"SaratogaUpdater#checkForUpdate","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#checkForUpdate","$kind":"method","$docmaLink":"?api#SaratogaUpdater#checkForUpdate"},{"comment":"/**\n * Updates the Cached Data, loaded from the local files of Saratoga\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[5374,5549],"filename":"SaratogaUpdater.js","lineno":135,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002277","name":"SaratogaUpdater#updateCache","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Cached Data, loaded from the local files of Saratoga

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateCache","longname":"SaratogaUpdater#updateCache","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateCache","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateCache"},{"comment":"/**\n * Updates the Local Files & Cached Data in one method, good for single process scenarios as it's easy. Not for multi sharded programs that has its own Saratoga instance per shard.\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[3070,3176],"filename":"SaratogaUpdater.js","lineno":74,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002141","name":"SaratogaUpdater#updateDataAndCache","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Local Files & Cached Data in one method, good for single process scenarios as it's easy. Not for multi sharded programs that has its own Saratoga instance per shard.

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateDataAndCache","longname":"SaratogaUpdater#updateDataAndCache","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateDataAndCache","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateDataAndCache"},{"comment":"/**\n * Updates the Local Files of Saratoga if there is an update\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[4141,5215],"filename":"SaratogaUpdater.js","lineno":104,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002177","name":"SaratogaUpdater#updateLocalData","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Local Files of Saratoga if there is an update

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateLocalData","longname":"SaratogaUpdater#updateLocalData","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateLocalData","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateLocalData"},{"comment":"/**\n * The cron update checker which is responsible for Saratoga#updateAvailable event\n * @type {?Timeout}\n */","meta":{"range":[830,852],"filename":"SaratogaUpdater.js","lineno":28,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001871","name":"this.cronUpdate","type":"Literal","value":null,"paramnames":[]}},"description":"

    The cron update checker which is responsible for Saratoga#updateAvailable event

    ","type":{"names":["Timeout"]},"nullable":true,"name":"cronUpdate","longname":"SaratogaUpdater#cronUpdate","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#cronUpdate","$kind":"property","$docmaLink":"?api#SaratogaUpdater#cronUpdate"},{"comment":"/**\n * If the data directory of this updater is ready to operate\n * @type {Boolean}\n */","meta":{"range":[652,677],"filename":"SaratogaUpdater.js","lineno":23,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001865","name":"this.dataDirReady","type":"Literal","value":false,"paramnames":[]}},"description":"

    If the data directory of this updater is ready to operate

    ","type":{"names":["Boolean"]},"name":"dataDirReady","longname":"SaratogaUpdater#dataDirReady","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#dataDirReady","$kind":"property","$docmaLink":"?api#SaratogaUpdater#dataDirReady"},{"comment":"/**\n * The saratoga instance that generated this instance\n * @type {Saratoga}\n */","meta":{"range":[963,1021],"filename":"SaratogaUpdater.js","lineno":35,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001876","name":"SaratogaUpdater#saratoga","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    The saratoga instance that generated this instance

    ","type":{"names":["Saratoga"]},"name":"saratoga","longname":"SaratogaUpdater#saratoga","kind":"member","memberof":"SaratogaUpdater","scope":"instance","params":[],"$longname":"SaratogaUpdater#saratoga","$kind":"property","$docmaLink":"?api#SaratogaUpdater#saratoga"},{"comment":"/**\n * The updater instance that generated this instance\n * @type {SaratogaStore}\n */","meta":{"range":[504,522],"filename":"SaratogaUpdater.js","lineno":18,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001859","name":"this.store","type":"Identifier","value":"store","paramnames":[]}},"description":"

    The updater instance that generated this instance

    ","type":{"names":["SaratogaStore"]},"name":"store","longname":"SaratogaUpdater#store","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#store","$kind":"property","$docmaLink":"?api#SaratogaUpdater#store"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[357,859],"filename":"SaratogaUpdater.js","lineno":13,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001853","name":"SaratogaUpdater","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaUpdater","longname":"SaratogaUpdater","kind":"class","scope":"global","$longname":"SaratogaUpdater","$kind":"constructor","$docmaLink":"?api#SaratogaUpdater"}},{"comment":"","meta":{"range":[122,250],"filename":"SaratogaValidator.js","lineno":5,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002668","name":"SaratogaValidator","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"undocumented":true,"name":"SaratogaValidator","longname":"SaratogaValidator","kind":"class","scope":"global","params":[],"$longname":"SaratogaValidator","$kind":"constructor","$docmaLink":"?api#SaratogaValidator"},{"comment":"","meta":{"range":[3147,3185],"filename":"SaratogaShips.js","lineno":109,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000797","name":"ShipExtAll","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"undocumented":true,"name":"ShipExtAll","longname":"ShipExtAll","kind":"class","scope":"global","params":[],"$longname":"ShipExtAll","$kind":"constructor","$docmaLink":"?api#ShipExtAll"},{"comment":"","meta":{"range":[4130,4168],"filename":"SaratogaShips.js","lineno":157,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000923","name":"ShipExtFilter","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"undocumented":true,"name":"ShipExtFilter","longname":"ShipExtFilter","kind":"class","scope":"global","params":[],"$longname":"ShipExtFilter","$kind":"constructor","$docmaLink":"?api#ShipExtFilter"},{"comment":"/**\n * Get an unfiltered ship list\n */","meta":{"range":[3242,3326],"filename":"SaratogaShips.js","lineno":116,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000804","name":"ShipExtAll#get","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Get an unfiltered ship list

    ","name":"get","longname":"ShipExtAll#get","kind":"function","memberof":"ShipExtAll","scope":"instance","params":[],"$longname":"ShipExtAll#get","$kind":"method","$docmaLink":"?api#ShipExtAll#get"},{"comment":"/**\n * Filter ships via id\n */","meta":{"range":[3992,4078],"filename":"SaratogaShips.js","lineno":150,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000902","name":"ShipExtAll#id","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Filter ships via id

    ","name":"id","longname":"ShipExtAll#id","kind":"function","memberof":"ShipExtAll","scope":"instance","params":[],"$longname":"ShipExtAll#id","$kind":"method","$docmaLink":"?api#ShipExtAll#id"},{"comment":"/**\n * Filter ships via language\n * @param {string} language \n */","meta":{"range":[3414,3943],"filename":"SaratogaShips.js","lineno":125,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000819","name":"ShipExtAll#name","type":"MethodDefinition","paramnames":["language"]},"vars":{"":null}},"description":"

    Filter ships via language

    ","params":[{"type":{"names":["string"]},"name":"language"}],"name":"name","longname":"ShipExtAll#name","kind":"function","memberof":"ShipExtAll","scope":"instance","$longname":"ShipExtAll#name","$kind":"method","$docmaLink":"?api#ShipExtAll#name"},{"comment":"/**\n * Barrage Data\n * @external Barrage\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":34,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Barrage Data

    ","kind":"external","name":"Barrage","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Barrage","scope":"global","$longname":"external:Barrage","$kind":"external","$docmaLink":"?api#external:Barrage"},{"comment":"/**\n * Chapter Data\n * @external Chapter\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":24,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Chapter Data

    ","kind":"external","name":"Chapter","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Chapter","scope":"global","$longname":"external:Chapter","$kind":"external","$docmaLink":"?api#external:Chapter"},{"comment":"/**\n * Equipment Data\n * @external Equipment\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":19,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Equipment Data

    ","kind":"external","name":"Equipment","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Equipment","scope":"global","$longname":"external:Equipment","$kind":"external","$docmaLink":"?api#external:Equipment"},{"comment":"/**\n * Node.js Event Emitter\n * @external EventEmitter\n * @see {@link https://nodejs.org/api/events.html}\n */","meta":{"filename":"index.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Node.js Event Emitter

    ","kind":"external","name":"EventEmitter","see":["{@link https://nodejs.org/api/events.html}"],"longname":"external:EventEmitter","scope":"global","$longname":"external:EventEmitter","$kind":"external","$docmaLink":"?api#external:EventEmitter"},{"comment":"/**\n * Ship Data\n * @external Ship\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#ship-getters}\n */","meta":{"filename":"index.js","lineno":13,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Ship Data

    ","kind":"external","name":"Ship","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#ship-getters}"],"longname":"external:Ship","scope":"global","$longname":"external:Ship","$kind":"external","$docmaLink":"?api#external:Ship"},{"comment":"/**\n * Node.js Timeout\n * @external Timeout\n * @see {@link https://nodejs.org/dist/latest/docs/api/timers.html#timers_class_timeout}\n */","meta":{"filename":"index.js","lineno":7,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Node.js Timeout

    ","kind":"external","name":"Timeout","see":["{@link https://nodejs.org/dist/latest/docs/api/timers.html#timers_class_timeout}"],"longname":"external:Timeout","scope":"global","$longname":"external:Timeout","$kind":"external","$docmaLink":"?api#external:Timeout"},{"comment":"/**\n * Voiceline Data\n * @external Voiceline\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":29,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Voiceline Data

    ","kind":"external","name":"Voiceline","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Voiceline","scope":"global","$longname":"external:Voiceline","$kind":"external","$docmaLink":"?api#external:Voiceline"}],"symbols":["external:Barrage","external:Chapter","external:Equipment","external:EventEmitter","external:Ship","external:Timeout","external:Voiceline","Saratoga","Saratoga#barrages","Saratoga#chapters","Saratoga#equipments","Saratoga#event:debug","Saratoga#event:error","Saratoga#event:ready","Saratoga#event:updateAvailable","Saratoga#ready","Saratoga#ships","Saratoga#store","Saratoga#updater","Saratoga#voicelines","SaratogaEquipments","SaratogaEquipments#all","SaratogaEquipments#category","SaratogaEquipments#filter","SaratogaEquipments#name","SaratogaEquipments#nationality","SaratogaEquipments#search","SaratogaShips","SaratogaShips#filter","SaratogaShips#get","SaratogaShips#id","SaratogaShips#name","SaratogaShips#search","SaratogaShips.ShipExtFilter#class","SaratogaShips.ShipExtFilter#nationality","SaratogaShips.ShipExtFilter#rarity","SaratogaShips.ShipExtFilter#type","SaratogaStore","SaratogaStore#equipments","SaratogaStore#ready","SaratogaStore#saratoga","SaratogaStore#ships","SaratogaStore#updater","SaratogaUpdater","SaratogaUpdater#checkForUpdate","SaratogaUpdater#cronUpdate","SaratogaUpdater#dataDirReady","SaratogaUpdater#saratoga","SaratogaUpdater#store","SaratogaUpdater#updateCache","SaratogaUpdater#updateDataAndCache","SaratogaUpdater#updateLocalData","SaratogaValidator","ShipExtAll","ShipExtAll#get","ShipExtAll#id","ShipExtAll#name","ShipExtFilter"]}},"app":{"title":"Saratoga | An open source Azur Lane local library","routing":{"method":"query","caseSensitive":true},"entrance":"content:readme","base":"/Saratoga/","meta":null,"server":"static","favicon":""},"template":{"name":"docma-template-zebra","description":"Zebra - Default template for Docma. https://github.com/onury/docma","version":"2.3.1","supportedDocmaVersion":">=2.0.0","author":"Onur Yıldırım","license":"MIT","mainHTML":"index.html","options":{"title":{"label":"Saratoga","href":"."},"sidebar":{"enabled":true,"outline":"tree","collapsed":false,"toolbar":true,"itemsFolded":false,"itemsOverflow":"crop","badges":true,"search":true,"animations":true},"symbols":{"autoLink":true,"params":"list","enums":"list","props":"list","meta":false},"navbar":{"enabled":true,"dark":false,"animations":true,"menu":[{"label":"Readme","href":"."},{"label":"Documentation","href":"?api"},{"label":"GitHub","href":"https://github.com/AzurAPI/Saratoga"}],"fixed":true},"logo":null,"contentView":{"bookmarks":false,"faVersion":"5.5.0","faLibs":"all"}}},"partials":{"api":"docma-api","content":"docma-content","notFound":"docma-404"},"elementID":"docma-main","contentElementID":"docma-content","defaultApiName":"_def_","logsEnabled":false})); !function(){"use strict";var c="path"===docma.app.routing.method;function o(a){return(a.params[1]||"").replace(/\/$/,"")}function a(a,e){a=o(a)||docma._.defaultApiName,a=docma.createRoute(a,DocmaWeb.Route.Type.API);if(!a||!a.exists())return e();a.apply()}docma.app.base&&page.base(docma.app.base),page.redirect("(/)?"+docma.template.main,""),c&&(page("(/)?api/(.+)",a),page("(/)?api(/)?",a),page("(/)?(.*)",function(a,e){a=o(a),a=docma.createRoute(a,DocmaWeb.Route.Type.CONTENT);if(!a||!a.exists())return e();a.apply()})),page("(/)?",function(t,n){!function(){if(c){var a=sessionStorage.getItem("redirectPath")||null;if(a)return sessionStorage.removeItem("redirectPath"),docma.info("Redirecting to:",a),page.redirect(a),1}}()&&setTimeout(function(){var a,e,e=(e=(e=t.querystring)||window.location.search,(e=/^[?&]/.test(e)?e.slice(1):e)||null);if(c){if(e)return n();a=docma._.appEntranceRI}else docma.log("Query-string:",e),a=e?docma.createRouteFromQuery(e):docma._.appEntranceRI;if(!a||!a.exists())return n();function o(){docma._trigger(DocmaWeb.Event.Navigate,[a])}a.isCurrent()?o():a.apply(function(a){200===a&&o()})},100)}),page("*",function(a){docma.warn("Unknown Route:",a.path),docma.log("context:",a),docma.createRoute(null).apply()}),docma.info("Docma SPA Configuration:"),docma.info("App Title: ",docma.app.title),docma.info("Routing Method: ",docma.app.routing.method),docma.info("App Server: ",docma.app.server),docma.info("Base Path: ",docma.app.base),docma.info("Entrance Route ID: ",docma.app.entrance),window.onload=function(){docma._.initialLoad=!0,docma._.appEntranceRI=docma.createRouteFromID(docma.app.entrance),page.start({click:!0,popstate:!0,dispatch:!0,hashbang:!1,decodeURLComponents:!0}),docma.info("Docma SPA loaded!")}}(); \ No newline at end of file diff --git a/package.json b/package.json index f91e89c..d6f2b84 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "saratoga", - "version": "1.1.1-beta", + "version": "1.1.2-beta", "description": "Open Source Azur Lane Local Database", "main": "index.js", "scripts": { From 09b99bbad8da8bf095c9c3c910541989f891d358 Mon Sep 17 00:00:00 2001 From: 0t4u <61939142+0t4u@users.noreply.github.com> Date: Sat, 13 Feb 2021 16:34:09 +0800 Subject: [PATCH 11/14] legacy api support Changed: - Legacy api support - Version number - Regenerated docs --- docs/js/docma-web.js | 2 +- package.json | 7 ++- src/Saratoga.js | 16 +++++ src/store/LegacyEquipments.js | 75 +++++++++++++++++++++++ src/store/LegacyShips.js | 110 ++++++++++++++++++++++++++++++++++ src/store/SaratogaStore.js | 7 +++ tests/Client.js | 10 ---- tests/LegacyClient.js | 10 ++++ 8 files changed, 223 insertions(+), 14 deletions(-) create mode 100644 src/store/LegacyEquipments.js create mode 100644 src/store/LegacyShips.js delete mode 100644 tests/Client.js create mode 100644 tests/LegacyClient.js diff --git a/docs/js/docma-web.js b/docs/js/docma-web.js index 3acd0f3..d74c6b8 100644 --- a/docs/js/docma-web.js +++ b/docs/js/docma-web.js @@ -44,6 +44,6 @@ dust.filters=dust.filters||{},dust.filters.$pt=function(e){return DocmaWeb.Utils DocmaWeb.version = "3.2.2"; return DocmaWeb; })(); -var docma = Object.freeze(new DocmaWeb({"version":"3.2.2","routes":[{"id":"api:","type":"api","name":"_def_","path":"?api","contentPath":null,"sourceType":"js"},{"id":"content:readme","type":"content","name":"readme","path":"?content=readme","contentPath":"content/readme.html","sourceType":"md"}],"apis":{"_def_":{"documentation":[{"comment":"/**\n * Saratoga, the starting point of this API\n * @class Saratoga\n * @extends {EventEmitter}\n */","meta":{"filename":"Saratoga.js","lineno":4,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Saratoga, the starting point of this API

    ","kind":"class","name":"Saratoga","augments":["EventEmitter"],"longname":"Saratoga","scope":"global","$longname":"Saratoga","$kind":"class","$docmaLink":"?api#Saratoga","$members":[{"comment":"/**\n * Barrage related getters for this store\n * @type {SaratogaBarrages}\n */","meta":{"range":[2891,2987],"filename":"Saratoga.js","lineno":108,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000166","name":"Saratoga#barrages","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Barrage related getters for this store

    ","type":{"names":["SaratogaBarrages"]},"name":"barrages","longname":"Saratoga#barrages","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#barrages","$kind":"property","$docmaLink":"?api#Saratoga#barrages"},{"comment":"/**\n * Chapters related getters for this store\n * @type {SaratogaChapters}\n */","meta":{"range":[2493,2589],"filename":"Saratoga.js","lineno":92,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000132","name":"Saratoga#chapters","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Chapters related getters for this store

    ","type":{"names":["SaratogaChapters"]},"name":"chapters","longname":"Saratoga#chapters","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#chapters","$kind":"property","$docmaLink":"?api#Saratoga#chapters"},{"comment":"/**\n * Azur Lane's Equipment related getter methods\n * @type {SaratogaEquipments}\n */","meta":{"range":[2293,2393],"filename":"Saratoga.js","lineno":84,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000115","name":"Saratoga#equipments","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Azur Lane's Equipment related getter methods

    ","type":{"names":["SaratogaEquipments"]},"name":"equipments","longname":"Saratoga#equipments","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#equipments","$kind":"property","$docmaLink":"?api#Saratoga#equipments"},{"comment":"/**\n * If Saratoga is ready to operate\n * @type {Boolean}\n */","meta":{"range":[1910,1997],"filename":"Saratoga.js","lineno":67,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000080","name":"Saratoga#ready","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    If Saratoga is ready to operate

    ","type":{"names":["Boolean"]},"name":"ready","longname":"Saratoga#ready","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#ready","$kind":"property","$docmaLink":"?api#Saratoga#ready"},{"comment":"/**\n * Azur Lane's Ship related getter methods\n * @type {SaratogaShips}\n */","meta":{"range":[2095,2185],"filename":"Saratoga.js","lineno":75,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000098","name":"Saratoga#ships","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Azur Lane's Ship related getter methods

    ","type":{"names":["SaratogaShips"]},"name":"ships","longname":"Saratoga#ships","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#ships","$kind":"property","$docmaLink":"?api#Saratoga#ships"},{"comment":"/**\n * Contains methods and props for managing cached data\n * @type {SaratogaStore}\n */","meta":{"range":[567,603],"filename":"Saratoga.js","lineno":19,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000053","name":"this.store","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Contains methods and props for managing cached data

    ","type":{"names":["SaratogaStore"]},"name":"store","longname":"Saratoga#store","kind":"member","memberof":"Saratoga","scope":"instance","$longname":"Saratoga#store","$kind":"property","$docmaLink":"?api#Saratoga#store"},{"comment":"/**\n * Contains methods for updating Saratoga's local data & cache\n * @type {SaratogaUpdater}\n */","meta":{"range":[1770,1826],"filename":"Saratoga.js","lineno":59,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000070","name":"Saratoga#updater","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Contains methods for updating Saratoga's local data & cache

    ","type":{"names":["SaratogaUpdater"]},"name":"updater","longname":"Saratoga#updater","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#updater","$kind":"property","$docmaLink":"?api#Saratoga#updater"},{"comment":"/**\n * Voiceline related getters for this store\n * @type {SaratogaVoicelines}\n */","meta":{"range":[2692,2792],"filename":"Saratoga.js","lineno":100,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000149","name":"Saratoga#voicelines","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Voiceline related getters for this store

    ","type":{"names":["SaratogaVoicelines"]},"name":"voicelines","longname":"Saratoga#voicelines","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#voicelines","$kind":"property","$docmaLink":"?api#Saratoga#voicelines"},{"comment":"/**\n * Emitted when there is a debug data\n * @event Saratoga#debug\n * @param {string} message Debug message\n * @memberof Saratoga\n */","meta":{"filename":"Saratoga.js","lineno":23,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is a debug data

    ","kind":"event","name":"debug","params":[{"type":{"names":["string"]},"description":"

    Debug message

    ","name":"message"}],"memberof":"Saratoga","longname":"Saratoga#event:debug","scope":"instance","$longname":"Saratoga#event:debug","$kind":"event","$docmaLink":"?api#Saratoga#event:debug"},{"comment":"/**\n * Emitted when there is a pesky error\n * @event Saratoga#error\n * @param {Error} error The error encountered.\n * @memberof Saratoga\n * @example\n * Saratoga.on('error', console.error);\n */","meta":{"filename":"Saratoga.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is a pesky error

    ","kind":"event","name":"error","params":[{"type":{"names":["Error"]},"description":"

    The error encountered.

    ","name":"error"}],"memberof":"Saratoga","examples":["Saratoga.on('error', console.error);"],"longname":"Saratoga#event:error","scope":"instance","$longname":"Saratoga#event:error","$kind":"event","$docmaLink":"?api#Saratoga#event:error"},{"comment":"/**\n * Emitted when Saratoga is ready\n * @event Saratoga#ready\n * @memberof Saratoga\n */","meta":{"filename":"Saratoga.js","lineno":49,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when Saratoga is ready

    ","kind":"event","name":"ready","memberof":"Saratoga","longname":"Saratoga#event:ready","scope":"instance","$longname":"Saratoga#event:ready","$kind":"event","$docmaLink":"?api#Saratoga#event:ready"},{"comment":"/**\n * Emitted when there is an update available for local data. Only available when Saratoga is initialized with notifyForNewUpdates set to true\n * @event Saratoga#updateAvailable\n * @param {Object} data What data needs updating\n * @memberof Saratoga\n * @example\n * Saratoga.on('updateAvailable', (data) => {\n * if (data.shipUpdateAvailable || data.equipmentUpdateAvailable) {\n * // handle update\n * }\n * })\n */","meta":{"filename":"Saratoga.js","lineno":37,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is an update available for local data. Only available when Saratoga is initialized with notifyForNewUpdates set to true

    ","kind":"event","name":"updateAvailable","params":[{"type":{"names":["Object"]},"description":"

    What data needs updating

    ","name":"data"}],"memberof":"Saratoga","examples":["Saratoga.on('updateAvailable', (data) => {\n if (data.shipUpdateAvailable || data.equipmentUpdateAvailable) {\n // handle update\n }\n})"],"longname":"Saratoga#event:updateAvailable","scope":"instance","$longname":"Saratoga#event:updateAvailable","$kind":"event","$docmaLink":"?api#Saratoga#event:updateAvailable"}],"$constructor":{"comment":"/**\n * @param {Object} options Object with a single parameter, which is notifyForNewUpdates, which is a boolean\n */","meta":{"range":[366,679],"filename":"Saratoga.js","lineno":13,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000040","name":"Saratoga","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"params":[{"type":{"names":["Object"]},"description":"

    Object with a single parameter, which is notifyForNewUpdates, which is a boolean

    ","name":"options"}],"name":"Saratoga","longname":"Saratoga","kind":"class","scope":"global","$longname":"Saratoga","$kind":"constructor","$docmaLink":"?api#Saratoga"}},{"comment":"/**\n * Equipment related getters for Saratoga\n * @class SaratogaEquipments\n */","meta":{"filename":"SaratogaEquipments.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Equipment related getters for Saratoga

    ","kind":"class","name":"SaratogaEquipments","longname":"SaratogaEquipments","scope":"global","$longname":"SaratogaEquipments","$kind":"class","$docmaLink":"?api#SaratogaEquipments","$members":[{"comment":"/**\n * Get an unfiltered equipment list\n */","meta":{"range":[2442,2526],"filename":"SaratogaEquipments.js","lineno":79,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000407","name":"SaratogaEquipments#all","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Get an unfiltered equipment list

    ","name":"all","longname":"SaratogaEquipments#all","kind":"function","memberof":"SaratogaEquipments","scope":"instance","params":[],"$longname":"SaratogaEquipments#all","$kind":"method","$docmaLink":"?api#SaratogaEquipments#all"},{"comment":"/**\n * Lists the equipments by category\n * @param {string} category name of the category you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[751,885],"filename":"SaratogaEquipments.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000251","name":"SaratogaEquipments#category","type":"MethodDefinition","paramnames":["category"]},"vars":{"":null}},"description":"

    Lists the equipments by category

    ","params":[{"type":{"names":["string"]},"description":"

    name of the category you want to search for

    ","name":"category"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"category","longname":"SaratogaEquipments#category","kind":"function","scope":"instance","$longname":"SaratogaEquipments#category","$kind":"method","$docmaLink":"?api#SaratogaEquipments#category"},{"comment":"/**\n * Custom filter for equipment data\n * @param {requestCallback} callback the callback that handles the response\n */","meta":{"range":[2668,2780],"filename":"SaratogaEquipments.js","lineno":88,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000422","name":"SaratogaEquipments#filter","type":"MethodDefinition","paramnames":["callback"]},"vars":{"":null}},"description":"

    Custom filter for equipment data

    ","params":[{"type":{"names":["requestCallback"]},"description":"

    the callback that handles the response

    ","name":"callback"}],"name":"filter","longname":"SaratogaEquipments#filter","kind":"function","memberof":"SaratogaEquipments","scope":"instance","$longname":"SaratogaEquipments#filter","$kind":"method","$docmaLink":"?api#SaratogaEquipments#filter"},{"comment":"/**\n * Searches for a specific equipment. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the equipment you want to search for\n * @param {string} language optional language to search by\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaEquipments\n * @returns {Equipment | null}\n */","meta":{"range":[1638,2380],"filename":"SaratogaEquipments.js","lineno":53,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000303","name":"SaratogaEquipments#name","type":"MethodDefinition","paramnames":["name","language","limit"]},"vars":{"":null}},"description":"

    Searches for a specific equipment. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the equipment you want to search for

    ","name":"name"},{"type":{"names":["string"]},"description":"

    optional language to search by

    ","name":"language"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Equipment","null"]}}],"name":"name","longname":"SaratogaEquipments#name","kind":"function","scope":"instance","$longname":"SaratogaEquipments#name","$kind":"method","$docmaLink":"?api#SaratogaEquipments#name"},{"comment":"/**\n * Lists the equipments by nationality\n * @param {string} nationality naitionality name of the equipments you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[1122,1268],"filename":"SaratogaEquipments.js","lineno":40,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000277","name":"SaratogaEquipments#nationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists the equipments by nationality

    ","params":[{"type":{"names":["string"]},"description":"

    naitionality name of the equipments you want to search for

    ","name":"nationality"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"nationality","longname":"SaratogaEquipments#nationality","kind":"function","scope":"instance","$longname":"SaratogaEquipments#nationality","$kind":"method","$docmaLink":"?api#SaratogaEquipments#nationality"},{"comment":"/**\n * Custom search for data in Fuse instance\n * @param {any} options Fuse search options\n */","meta":{"range":[2896,3003],"filename":"SaratogaEquipments.js","lineno":96,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000442","name":"SaratogaEquipments#search","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"

    Custom search for data in Fuse instance

    ","params":[{"type":{"names":["any"]},"description":"

    Fuse search options

    ","name":"options"}],"name":"search","longname":"SaratogaEquipments#search","kind":"function","memberof":"SaratogaEquipments","scope":"instance","$longname":"SaratogaEquipments#search","$kind":"method","$docmaLink":"?api#SaratogaEquipments#search"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[213,321],"filename":"SaratogaEquipments.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000198","name":"SaratogaEquipments","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaEquipments","longname":"SaratogaEquipments","kind":"class","scope":"global","$longname":"SaratogaEquipments","$kind":"constructor","$docmaLink":"?api#SaratogaEquipments"}},{"comment":"/**\n * Ship related getters for Saratoga\n * @class SaratogaShips\n */","meta":{"filename":"SaratogaShips.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Ship related getters for Saratoga

    ","kind":"class","name":"SaratogaShips","longname":"SaratogaShips","scope":"global","$longname":"SaratogaShips","$kind":"class","$docmaLink":"?api#SaratogaShips","$members":[{"comment":"/**\n * Custom filter for ship data\n * @param {requestCallback} callback the callback that handles the response\n */","meta":{"range":[2763,2875],"filename":"SaratogaShips.js","lineno":94,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000753","name":"SaratogaShips#filter","type":"MethodDefinition","paramnames":["callback"]},"vars":{"":null}},"description":"

    Custom filter for ship data

    ","params":[{"type":{"names":["requestCallback"]},"description":"

    the callback that handles the response

    ","name":"callback"}],"name":"filter","longname":"SaratogaShips#filter","kind":"function","memberof":"SaratogaShips","scope":"instance","$longname":"SaratogaShips#filter","$kind":"method","$docmaLink":"?api#SaratogaShips#filter"},{"comment":"/**\n * Search from all ships\n * @param {number | string} id \n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[666,1089],"filename":"SaratogaShips.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000526","name":"SaratogaShips#get","type":"MethodDefinition","paramnames":["id"]},"vars":{"":null}},"description":"

    Search from all ships

    ","params":[{"type":{"names":["number","string"]},"name":"id"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"get","longname":"SaratogaShips#get","kind":"function","scope":"instance","$longname":"SaratogaShips#get","$kind":"method","$docmaLink":"?api#SaratogaShips#get"},{"comment":"/**\n * Fetches a specific ship via its id\n * @param {number} id id of the ship you want to fetch\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[1273,1447],"filename":"SaratogaShips.js","lineno":50,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000599","name":"SaratogaShips#id","type":"MethodDefinition","paramnames":["id"]},"vars":{"":null}},"description":"

    Fetches a specific ship via its id

    ","params":[{"type":{"names":["number"]},"description":"

    id of the ship you want to fetch

    ","name":"id"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"id","longname":"SaratogaShips#id","kind":"function","scope":"instance","$longname":"SaratogaShips#id","$kind":"method","$docmaLink":"?api#SaratogaShips#id"},{"comment":"/**\n * Searches for a specific ship. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the ship you want to search for\n * @param {string} language optional language to search by\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[1797,2627],"filename":"SaratogaShips.js","lineno":65,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000636","name":"SaratogaShips#name","type":"MethodDefinition","paramnames":["name","language","limit"]},"vars":{"":null}},"description":"

    Searches for a specific ship. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the ship you want to search for

    ","name":"name"},{"type":{"names":["string"]},"description":"

    optional language to search by

    ","name":"language"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"name","longname":"SaratogaShips#name","kind":"function","scope":"instance","$longname":"SaratogaShips#name","$kind":"method","$docmaLink":"?api#SaratogaShips#name"},{"comment":"/**\n * Custom search for data in Fuse instance\n * @param {any} options Fuse search options\n */","meta":{"range":[2991,3098],"filename":"SaratogaShips.js","lineno":102,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000773","name":"SaratogaShips#search","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"

    Custom search for data in Fuse instance

    ","params":[{"type":{"names":["any"]},"description":"

    Fuse search options

    ","name":"options"}],"name":"search","longname":"SaratogaShips#search","kind":"function","memberof":"SaratogaShips","scope":"instance","$longname":"SaratogaShips#search","$kind":"method","$docmaLink":"?api#SaratogaShips#search"},{"comment":"/**\n * Lists all the ships that matches a specific shjp class\n * @param {string} shipClass class of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[4410,4540],"filename":"SaratogaShips.js","lineno":166,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000930","name":"ShipExtFilter#class","type":"MethodDefinition","paramnames":["shipClass"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific shjp class

    ","params":[{"type":{"names":["string"]},"description":"

    class of the ship you want to search for (Case Sensitive)

    ","name":"shipClass"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"ShipExtFilter#class","longname":"SaratogaShips.ShipExtFilter#class","kind":"function","scope":"static","$longname":"SaratogaShips.ShipExtFilter#class","$kind":"method","$docmaLink":"?api#SaratogaShips.ShipExtFilter#class"},{"comment":"/**\n * Lists all the ships that matches a specific ship nationality\n * @param {string} nationality nationality of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[4797,4943],"filename":"SaratogaShips.js","lineno":177,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000956","name":"ShipExtFilter#nationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship nationality

    ","params":[{"type":{"names":["string"]},"description":"

    nationality of the ship you want to search for (Case Sensitive)

    ","name":"nationality"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"ShipExtFilter#nationality","longname":"SaratogaShips.ShipExtFilter#nationality","kind":"function","scope":"static","$longname":"SaratogaShips.ShipExtFilter#nationality","$kind":"method","$docmaLink":"?api#SaratogaShips.ShipExtFilter#nationality"},{"comment":"/**\n * Lists all the ship that matches a specific rarity\n * @param {string} rarity rarity of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[5558,5684],"filename":"SaratogaShips.js","lineno":199,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001008","name":"ShipExtFilter#rarity","type":"MethodDefinition","paramnames":["rarity"]},"vars":{"":null}},"description":"

    Lists all the ship that matches a specific rarity

    ","params":[{"type":{"names":["string"]},"description":"

    rarity of the ship you want to search for (Case Sensitive)

    ","name":"rarity"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"ShipExtFilter#rarity","longname":"SaratogaShips.ShipExtFilter#rarity","kind":"function","scope":"static","$longname":"SaratogaShips.ShipExtFilter#rarity","$kind":"method","$docmaLink":"?api#SaratogaShips.ShipExtFilter#rarity"},{"comment":"/**\n * Lists all the ships that matches a specific ship hull type\n * @param {string} hullType hullType of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[5192,5322],"filename":"SaratogaShips.js","lineno":188,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000982","name":"ShipExtFilter#type","type":"MethodDefinition","paramnames":["hullType"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship hull type

    ","params":[{"type":{"names":["string"]},"description":"

    hullType of the ship you want to search for (Case Sensitive)

    ","name":"hullType"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"ShipExtFilter#type","longname":"SaratogaShips.ShipExtFilter#type","kind":"function","scope":"static","$longname":"SaratogaShips.ShipExtFilter#type","$kind":"method","$docmaLink":"?api#SaratogaShips.ShipExtFilter#type"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[198,306],"filename":"SaratogaShips.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000473","name":"SaratogaShips","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaShips","longname":"SaratogaShips","kind":"class","scope":"global","$longname":"SaratogaShips","$kind":"constructor","$docmaLink":"?api#SaratogaShips"}},{"comment":"/**\n * Saratoga, the starting point of this API\n * @class SaratogaStore\n */","meta":{"filename":"SaratogaStore.js","lineno":9,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Saratoga, the starting point of this API

    ","kind":"class","name":"SaratogaStore","longname":"SaratogaStore","scope":"global","$longname":"SaratogaStore","$kind":"class","$docmaLink":"?api#SaratogaStore","$members":[{"comment":"/**\n * Equipment related getters for this store\n * @type {SaratogaEquipments}\n */","meta":{"range":[1101,1147],"filename":"SaratogaStore.js","lineno":34,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001130","name":"this.equipments","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Equipment related getters for this store

    ","type":{"names":["SaratogaEquipments"]},"name":"equipments","longname":"SaratogaStore#equipments","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#equipments","$kind":"property","$docmaLink":"?api#SaratogaStore#equipments"},{"comment":"/**\n * If this store is already ready to operate\n * @type {Boolean}\n */","meta":{"range":[1927,1945],"filename":"SaratogaStore.js","lineno":59,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001146","name":"this.ready","type":"Literal","value":false,"paramnames":[]}},"description":"

    If this store is already ready to operate

    ","type":{"names":["Boolean"]},"name":"ready","longname":"SaratogaStore#ready","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#ready","$kind":"property","$docmaLink":"?api#SaratogaStore#ready"},{"comment":"/**\n * The saratoga instance that generated this instance\n * @type {Saratoga}\n */","meta":{"range":[705,729],"filename":"SaratogaStore.js","lineno":22,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001096","name":"this.saratoga","type":"Identifier","value":"saratoga","paramnames":[]}},"description":"

    The saratoga instance that generated this instance

    ","type":{"names":["Saratoga"]},"name":"saratoga","longname":"SaratogaStore#saratoga","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#saratoga","$kind":"property","$docmaLink":"?api#SaratogaStore#saratoga"},{"comment":"/**\n * Ship related getters for this store\n * @type {SaratogaShips}\n */","meta":{"range":[843,879],"filename":"SaratogaStore.js","lineno":27,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001102","name":"this.ships","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Ship related getters for this store

    ","type":{"names":["SaratogaShips"]},"name":"ships","longname":"SaratogaStore#ships","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#ships","$kind":"property","$docmaLink":"?api#SaratogaStore#ships"},{"comment":"/**\n * Updater Class for the local data for this store\n * @type {SaratogaUpdater}\n */","meta":{"range":[1773,1813],"filename":"SaratogaStore.js","lineno":54,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001138","name":"this.updater","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Updater Class for the local data for this store

    ","type":{"names":["SaratogaUpdater"]},"name":"updater","longname":"SaratogaStore#updater","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#updater","$kind":"property","$docmaLink":"?api#SaratogaStore#updater"}],"$constructor":{"comment":"/**\n * @param {Saratoga} saratoga The saratoga class that generated this instance\n */","meta":{"range":[559,2778],"filename":"SaratogaStore.js","lineno":17,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001090","name":"SaratogaStore","type":"MethodDefinition","paramnames":["saratoga"]},"vars":{"":null}},"params":[{"type":{"names":["Saratoga"]},"description":"

    The saratoga class that generated this instance

    ","name":"saratoga"}],"name":"SaratogaStore","longname":"SaratogaStore","kind":"class","scope":"global","$longname":"SaratogaStore","$kind":"constructor","$docmaLink":"?api#SaratogaStore"}},{"comment":"/**\n * Manages the local data & cache updates\n * @class SaratogaUpdater\n */","meta":{"filename":"SaratogaUpdater.js","lineno":5,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{}},"description":"

    Manages the local data & cache updates

    ","kind":"class","name":"SaratogaUpdater","longname":"SaratogaUpdater","scope":"global","$longname":"SaratogaUpdater","$kind":"class","$docmaLink":"?api#SaratogaUpdater","$members":[{"comment":"/**\n * Checks if there is new updates for ship or equipment data\n * @memberof SaratogaUpdater\n * @returns {Promise}\n * @example\n * const api = new Saratoga();\n * api.updater.checkForUpdate()\n * .then((response) => {\n * if (response.shipUpdateAvailable || response.equipmentUpdateAvailable) console.log('update available');\n * })\n */","meta":{"range":[3577,3989],"filename":"SaratogaUpdater.js","lineno":90,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002157","name":"SaratogaUpdater#checkForUpdate","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Checks if there is new updates for ship or equipment data

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"examples":["const api = new Saratoga();\napi.updater.checkForUpdate()\n .then((response) => {\n if (response.shipUpdateAvailable || response.equipmentUpdateAvailable) console.log('update available');\n })"],"name":"checkForUpdate","longname":"SaratogaUpdater#checkForUpdate","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#checkForUpdate","$kind":"method","$docmaLink":"?api#SaratogaUpdater#checkForUpdate"},{"comment":"/**\n * Updates the Cached Data, loaded from the local files of Saratoga\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[5374,5549],"filename":"SaratogaUpdater.js","lineno":135,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002277","name":"SaratogaUpdater#updateCache","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Cached Data, loaded from the local files of Saratoga

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateCache","longname":"SaratogaUpdater#updateCache","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateCache","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateCache"},{"comment":"/**\n * Updates the Local Files & Cached Data in one method, good for single process scenarios as it's easy. Not for multi sharded programs that has its own Saratoga instance per shard.\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[3070,3176],"filename":"SaratogaUpdater.js","lineno":74,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002141","name":"SaratogaUpdater#updateDataAndCache","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Local Files & Cached Data in one method, good for single process scenarios as it's easy. Not for multi sharded programs that has its own Saratoga instance per shard.

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateDataAndCache","longname":"SaratogaUpdater#updateDataAndCache","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateDataAndCache","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateDataAndCache"},{"comment":"/**\n * Updates the Local Files of Saratoga if there is an update\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[4141,5215],"filename":"SaratogaUpdater.js","lineno":104,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002177","name":"SaratogaUpdater#updateLocalData","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Local Files of Saratoga if there is an update

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateLocalData","longname":"SaratogaUpdater#updateLocalData","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateLocalData","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateLocalData"},{"comment":"/**\n * The cron update checker which is responsible for Saratoga#updateAvailable event\n * @type {?Timeout}\n */","meta":{"range":[830,852],"filename":"SaratogaUpdater.js","lineno":28,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001871","name":"this.cronUpdate","type":"Literal","value":null,"paramnames":[]}},"description":"

    The cron update checker which is responsible for Saratoga#updateAvailable event

    ","type":{"names":["Timeout"]},"nullable":true,"name":"cronUpdate","longname":"SaratogaUpdater#cronUpdate","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#cronUpdate","$kind":"property","$docmaLink":"?api#SaratogaUpdater#cronUpdate"},{"comment":"/**\n * If the data directory of this updater is ready to operate\n * @type {Boolean}\n */","meta":{"range":[652,677],"filename":"SaratogaUpdater.js","lineno":23,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001865","name":"this.dataDirReady","type":"Literal","value":false,"paramnames":[]}},"description":"

    If the data directory of this updater is ready to operate

    ","type":{"names":["Boolean"]},"name":"dataDirReady","longname":"SaratogaUpdater#dataDirReady","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#dataDirReady","$kind":"property","$docmaLink":"?api#SaratogaUpdater#dataDirReady"},{"comment":"/**\n * The saratoga instance that generated this instance\n * @type {Saratoga}\n */","meta":{"range":[963,1021],"filename":"SaratogaUpdater.js","lineno":35,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001876","name":"SaratogaUpdater#saratoga","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    The saratoga instance that generated this instance

    ","type":{"names":["Saratoga"]},"name":"saratoga","longname":"SaratogaUpdater#saratoga","kind":"member","memberof":"SaratogaUpdater","scope":"instance","params":[],"$longname":"SaratogaUpdater#saratoga","$kind":"property","$docmaLink":"?api#SaratogaUpdater#saratoga"},{"comment":"/**\n * The updater instance that generated this instance\n * @type {SaratogaStore}\n */","meta":{"range":[504,522],"filename":"SaratogaUpdater.js","lineno":18,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001859","name":"this.store","type":"Identifier","value":"store","paramnames":[]}},"description":"

    The updater instance that generated this instance

    ","type":{"names":["SaratogaStore"]},"name":"store","longname":"SaratogaUpdater#store","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#store","$kind":"property","$docmaLink":"?api#SaratogaUpdater#store"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[357,859],"filename":"SaratogaUpdater.js","lineno":13,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100001853","name":"SaratogaUpdater","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaUpdater","longname":"SaratogaUpdater","kind":"class","scope":"global","$longname":"SaratogaUpdater","$kind":"constructor","$docmaLink":"?api#SaratogaUpdater"}},{"comment":"","meta":{"range":[122,250],"filename":"SaratogaValidator.js","lineno":5,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002668","name":"SaratogaValidator","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"undocumented":true,"name":"SaratogaValidator","longname":"SaratogaValidator","kind":"class","scope":"global","params":[],"$longname":"SaratogaValidator","$kind":"constructor","$docmaLink":"?api#SaratogaValidator"},{"comment":"","meta":{"range":[3147,3185],"filename":"SaratogaShips.js","lineno":109,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000797","name":"ShipExtAll","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"undocumented":true,"name":"ShipExtAll","longname":"ShipExtAll","kind":"class","scope":"global","params":[],"$longname":"ShipExtAll","$kind":"constructor","$docmaLink":"?api#ShipExtAll"},{"comment":"","meta":{"range":[4130,4168],"filename":"SaratogaShips.js","lineno":157,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000923","name":"ShipExtFilter","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"undocumented":true,"name":"ShipExtFilter","longname":"ShipExtFilter","kind":"class","scope":"global","params":[],"$longname":"ShipExtFilter","$kind":"constructor","$docmaLink":"?api#ShipExtFilter"},{"comment":"/**\n * Get an unfiltered ship list\n */","meta":{"range":[3242,3326],"filename":"SaratogaShips.js","lineno":116,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000804","name":"ShipExtAll#get","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Get an unfiltered ship list

    ","name":"get","longname":"ShipExtAll#get","kind":"function","memberof":"ShipExtAll","scope":"instance","params":[],"$longname":"ShipExtAll#get","$kind":"method","$docmaLink":"?api#ShipExtAll#get"},{"comment":"/**\n * Filter ships via id\n */","meta":{"range":[3992,4078],"filename":"SaratogaShips.js","lineno":150,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000902","name":"ShipExtAll#id","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Filter ships via id

    ","name":"id","longname":"ShipExtAll#id","kind":"function","memberof":"ShipExtAll","scope":"instance","params":[],"$longname":"ShipExtAll#id","$kind":"method","$docmaLink":"?api#ShipExtAll#id"},{"comment":"/**\n * Filter ships via language\n * @param {string} language \n */","meta":{"range":[3414,3943],"filename":"SaratogaShips.js","lineno":125,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000819","name":"ShipExtAll#name","type":"MethodDefinition","paramnames":["language"]},"vars":{"":null}},"description":"

    Filter ships via language

    ","params":[{"type":{"names":["string"]},"name":"language"}],"name":"name","longname":"ShipExtAll#name","kind":"function","memberof":"ShipExtAll","scope":"instance","$longname":"ShipExtAll#name","$kind":"method","$docmaLink":"?api#ShipExtAll#name"},{"comment":"/**\n * Barrage Data\n * @external Barrage\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":34,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Barrage Data

    ","kind":"external","name":"Barrage","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Barrage","scope":"global","$longname":"external:Barrage","$kind":"external","$docmaLink":"?api#external:Barrage"},{"comment":"/**\n * Chapter Data\n * @external Chapter\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":24,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Chapter Data

    ","kind":"external","name":"Chapter","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Chapter","scope":"global","$longname":"external:Chapter","$kind":"external","$docmaLink":"?api#external:Chapter"},{"comment":"/**\n * Equipment Data\n * @external Equipment\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":19,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Equipment Data

    ","kind":"external","name":"Equipment","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Equipment","scope":"global","$longname":"external:Equipment","$kind":"external","$docmaLink":"?api#external:Equipment"},{"comment":"/**\n * Node.js Event Emitter\n * @external EventEmitter\n * @see {@link https://nodejs.org/api/events.html}\n */","meta":{"filename":"index.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Node.js Event Emitter

    ","kind":"external","name":"EventEmitter","see":["{@link https://nodejs.org/api/events.html}"],"longname":"external:EventEmitter","scope":"global","$longname":"external:EventEmitter","$kind":"external","$docmaLink":"?api#external:EventEmitter"},{"comment":"/**\n * Ship Data\n * @external Ship\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#ship-getters}\n */","meta":{"filename":"index.js","lineno":13,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Ship Data

    ","kind":"external","name":"Ship","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#ship-getters}"],"longname":"external:Ship","scope":"global","$longname":"external:Ship","$kind":"external","$docmaLink":"?api#external:Ship"},{"comment":"/**\n * Node.js Timeout\n * @external Timeout\n * @see {@link https://nodejs.org/dist/latest/docs/api/timers.html#timers_class_timeout}\n */","meta":{"filename":"index.js","lineno":7,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Node.js Timeout

    ","kind":"external","name":"Timeout","see":["{@link https://nodejs.org/dist/latest/docs/api/timers.html#timers_class_timeout}"],"longname":"external:Timeout","scope":"global","$longname":"external:Timeout","$kind":"external","$docmaLink":"?api#external:Timeout"},{"comment":"/**\n * Voiceline Data\n * @external Voiceline\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":29,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Voiceline Data

    ","kind":"external","name":"Voiceline","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Voiceline","scope":"global","$longname":"external:Voiceline","$kind":"external","$docmaLink":"?api#external:Voiceline"}],"symbols":["external:Barrage","external:Chapter","external:Equipment","external:EventEmitter","external:Ship","external:Timeout","external:Voiceline","Saratoga","Saratoga#barrages","Saratoga#chapters","Saratoga#equipments","Saratoga#event:debug","Saratoga#event:error","Saratoga#event:ready","Saratoga#event:updateAvailable","Saratoga#ready","Saratoga#ships","Saratoga#store","Saratoga#updater","Saratoga#voicelines","SaratogaEquipments","SaratogaEquipments#all","SaratogaEquipments#category","SaratogaEquipments#filter","SaratogaEquipments#name","SaratogaEquipments#nationality","SaratogaEquipments#search","SaratogaShips","SaratogaShips#filter","SaratogaShips#get","SaratogaShips#id","SaratogaShips#name","SaratogaShips#search","SaratogaShips.ShipExtFilter#class","SaratogaShips.ShipExtFilter#nationality","SaratogaShips.ShipExtFilter#rarity","SaratogaShips.ShipExtFilter#type","SaratogaStore","SaratogaStore#equipments","SaratogaStore#ready","SaratogaStore#saratoga","SaratogaStore#ships","SaratogaStore#updater","SaratogaUpdater","SaratogaUpdater#checkForUpdate","SaratogaUpdater#cronUpdate","SaratogaUpdater#dataDirReady","SaratogaUpdater#saratoga","SaratogaUpdater#store","SaratogaUpdater#updateCache","SaratogaUpdater#updateDataAndCache","SaratogaUpdater#updateLocalData","SaratogaValidator","ShipExtAll","ShipExtAll#get","ShipExtAll#id","ShipExtAll#name","ShipExtFilter"]}},"app":{"title":"Saratoga | An open source Azur Lane local library","routing":{"method":"query","caseSensitive":true},"entrance":"content:readme","base":"/Saratoga/","meta":null,"server":"static","favicon":""},"template":{"name":"docma-template-zebra","description":"Zebra - Default template for Docma. https://github.com/onury/docma","version":"2.3.1","supportedDocmaVersion":">=2.0.0","author":"Onur Yıldırım","license":"MIT","mainHTML":"index.html","options":{"title":{"label":"Saratoga","href":"."},"sidebar":{"enabled":true,"outline":"tree","collapsed":false,"toolbar":true,"itemsFolded":false,"itemsOverflow":"crop","badges":true,"search":true,"animations":true},"symbols":{"autoLink":true,"params":"list","enums":"list","props":"list","meta":false},"navbar":{"enabled":true,"dark":false,"animations":true,"menu":[{"label":"Readme","href":"."},{"label":"Documentation","href":"?api"},{"label":"GitHub","href":"https://github.com/AzurAPI/Saratoga"}],"fixed":true},"logo":null,"contentView":{"bookmarks":false,"faVersion":"5.5.0","faLibs":"all"}}},"partials":{"api":"docma-api","content":"docma-content","notFound":"docma-404"},"elementID":"docma-main","contentElementID":"docma-content","defaultApiName":"_def_","logsEnabled":false})); +var docma = Object.freeze(new DocmaWeb({"version":"3.2.2","routes":[{"id":"api:","type":"api","name":"_def_","path":"?api","contentPath":null,"sourceType":"js"},{"id":"content:readme","type":"content","name":"readme","path":"?content=readme","contentPath":"content/readme.html","sourceType":"md"}],"apis":{"_def_":{"documentation":[{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[226,334],"filename":"LegacyEquipments.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000228","name":"LegacyEquipments","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"LegacyEquipments","longname":"LegacyEquipments","kind":"class","scope":"global","$longname":"LegacyEquipments","$kind":"constructor","$docmaLink":"?api#LegacyEquipments"},{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[211,319],"filename":"LegacyShips.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000421","name":"LegacyShips","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"LegacyShips","longname":"LegacyShips","kind":"class","scope":"global","$longname":"LegacyShips","$kind":"constructor","$docmaLink":"?api#LegacyShips"},{"comment":"/**\n * Saratoga, the starting point of this API\n * @class Saratoga\n * @extends {EventEmitter}\n */","meta":{"filename":"Saratoga.js","lineno":4,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Saratoga, the starting point of this API

    ","kind":"class","name":"Saratoga","augments":["EventEmitter"],"longname":"Saratoga","scope":"global","$longname":"Saratoga","$kind":"class","$docmaLink":"?api#Saratoga","$members":[{"comment":"/**\n * Barrage related getters for this store\n * @type {SaratogaBarrages}\n */","meta":{"range":[2891,2987],"filename":"Saratoga.js","lineno":108,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000166","name":"Saratoga#barrages","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Barrage related getters for this store

    ","type":{"names":["SaratogaBarrages"]},"name":"barrages","longname":"Saratoga#barrages","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#barrages","$kind":"property","$docmaLink":"?api#Saratoga#barrages"},{"comment":"/**\n * Chapters related getters for this store\n * @type {SaratogaChapters}\n */","meta":{"range":[2493,2589],"filename":"Saratoga.js","lineno":92,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000132","name":"Saratoga#chapters","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Chapters related getters for this store

    ","type":{"names":["SaratogaChapters"]},"name":"chapters","longname":"Saratoga#chapters","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#chapters","$kind":"property","$docmaLink":"?api#Saratoga#chapters"},{"comment":"/**\n * Azur Lane's Equipment related getter methods\n * @type {SaratogaEquipments}\n */","meta":{"range":[2293,2393],"filename":"Saratoga.js","lineno":84,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000115","name":"Saratoga#equipments","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Azur Lane's Equipment related getter methods

    ","type":{"names":["SaratogaEquipments"]},"name":"equipments","longname":"Saratoga#equipments","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#equipments","$kind":"property","$docmaLink":"?api#Saratoga#equipments"},{"comment":"/**\n * Azur Lane's Equipment related getter methods with LegacyAPI\n * @type {SaratogaLegacyEquipments}\n */","meta":{"range":[3335,3447],"filename":"Saratoga.js","lineno":124,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000200","name":"Saratoga#legacyEquipments","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Azur Lane's Equipment related getter methods with LegacyAPI

    ","type":{"names":["SaratogaLegacyEquipments"]},"name":"legacyEquipments","longname":"Saratoga#legacyEquipments","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#legacyEquipments","$kind":"property","$docmaLink":"?api#Saratoga#legacyEquipments"},{"comment":"/**\n * Azur Lane's Ship related getter methods with LegacyAPI\n * @type {SaratogaLegacyShips}\n */","meta":{"range":[3105,3207],"filename":"Saratoga.js","lineno":116,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000183","name":"Saratoga#legacyShips","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Azur Lane's Ship related getter methods with LegacyAPI

    ","type":{"names":["SaratogaLegacyShips"]},"name":"legacyShips","longname":"Saratoga#legacyShips","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#legacyShips","$kind":"property","$docmaLink":"?api#Saratoga#legacyShips"},{"comment":"/**\n * If Saratoga is ready to operate\n * @type {Boolean}\n */","meta":{"range":[1910,1997],"filename":"Saratoga.js","lineno":67,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000080","name":"Saratoga#ready","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    If Saratoga is ready to operate

    ","type":{"names":["Boolean"]},"name":"ready","longname":"Saratoga#ready","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#ready","$kind":"property","$docmaLink":"?api#Saratoga#ready"},{"comment":"/**\n * Azur Lane's Ship related getter methods\n * @type {SaratogaShips}\n */","meta":{"range":[2095,2185],"filename":"Saratoga.js","lineno":75,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000098","name":"Saratoga#ships","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Azur Lane's Ship related getter methods

    ","type":{"names":["SaratogaShips"]},"name":"ships","longname":"Saratoga#ships","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#ships","$kind":"property","$docmaLink":"?api#Saratoga#ships"},{"comment":"/**\n * Contains methods and props for managing cached data\n * @type {SaratogaStore}\n */","meta":{"range":[567,603],"filename":"Saratoga.js","lineno":19,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000053","name":"this.store","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Contains methods and props for managing cached data

    ","type":{"names":["SaratogaStore"]},"name":"store","longname":"Saratoga#store","kind":"member","memberof":"Saratoga","scope":"instance","$longname":"Saratoga#store","$kind":"property","$docmaLink":"?api#Saratoga#store"},{"comment":"/**\n * Contains methods for updating Saratoga's local data & cache\n * @type {SaratogaUpdater}\n */","meta":{"range":[1770,1826],"filename":"Saratoga.js","lineno":59,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000070","name":"Saratoga#updater","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Contains methods for updating Saratoga's local data & cache

    ","type":{"names":["SaratogaUpdater"]},"name":"updater","longname":"Saratoga#updater","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#updater","$kind":"property","$docmaLink":"?api#Saratoga#updater"},{"comment":"/**\n * Voiceline related getters for this store\n * @type {SaratogaVoicelines}\n */","meta":{"range":[2692,2792],"filename":"Saratoga.js","lineno":100,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000149","name":"Saratoga#voicelines","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Voiceline related getters for this store

    ","type":{"names":["SaratogaVoicelines"]},"name":"voicelines","longname":"Saratoga#voicelines","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#voicelines","$kind":"property","$docmaLink":"?api#Saratoga#voicelines"},{"comment":"/**\n * Emitted when there is a debug data\n * @event Saratoga#debug\n * @param {string} message Debug message\n * @memberof Saratoga\n */","meta":{"filename":"Saratoga.js","lineno":23,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is a debug data

    ","kind":"event","name":"debug","params":[{"type":{"names":["string"]},"description":"

    Debug message

    ","name":"message"}],"memberof":"Saratoga","longname":"Saratoga#event:debug","scope":"instance","$longname":"Saratoga#event:debug","$kind":"event","$docmaLink":"?api#Saratoga#event:debug"},{"comment":"/**\n * Emitted when there is a pesky error\n * @event Saratoga#error\n * @param {Error} error The error encountered.\n * @memberof Saratoga\n * @example\n * Saratoga.on('error', console.error);\n */","meta":{"filename":"Saratoga.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is a pesky error

    ","kind":"event","name":"error","params":[{"type":{"names":["Error"]},"description":"

    The error encountered.

    ","name":"error"}],"memberof":"Saratoga","examples":["Saratoga.on('error', console.error);"],"longname":"Saratoga#event:error","scope":"instance","$longname":"Saratoga#event:error","$kind":"event","$docmaLink":"?api#Saratoga#event:error"},{"comment":"/**\n * Emitted when Saratoga is ready\n * @event Saratoga#ready\n * @memberof Saratoga\n */","meta":{"filename":"Saratoga.js","lineno":49,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when Saratoga is ready

    ","kind":"event","name":"ready","memberof":"Saratoga","longname":"Saratoga#event:ready","scope":"instance","$longname":"Saratoga#event:ready","$kind":"event","$docmaLink":"?api#Saratoga#event:ready"},{"comment":"/**\n * Emitted when there is an update available for local data. Only available when Saratoga is initialized with notifyForNewUpdates set to true\n * @event Saratoga#updateAvailable\n * @param {Object} data What data needs updating\n * @memberof Saratoga\n * @example\n * Saratoga.on('updateAvailable', (data) => {\n * if (data.shipUpdateAvailable || data.equipmentUpdateAvailable) {\n * // handle update\n * }\n * })\n */","meta":{"filename":"Saratoga.js","lineno":37,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is an update available for local data. Only available when Saratoga is initialized with notifyForNewUpdates set to true

    ","kind":"event","name":"updateAvailable","params":[{"type":{"names":["Object"]},"description":"

    What data needs updating

    ","name":"data"}],"memberof":"Saratoga","examples":["Saratoga.on('updateAvailable', (data) => {\n if (data.shipUpdateAvailable || data.equipmentUpdateAvailable) {\n // handle update\n }\n})"],"longname":"Saratoga#event:updateAvailable","scope":"instance","$longname":"Saratoga#event:updateAvailable","$kind":"event","$docmaLink":"?api#Saratoga#event:updateAvailable"}],"$constructor":{"comment":"/**\n * @param {Object} options Object with a single parameter, which is notifyForNewUpdates, which is a boolean\n */","meta":{"range":[366,679],"filename":"Saratoga.js","lineno":13,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000040","name":"Saratoga","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"params":[{"type":{"names":["Object"]},"description":"

    Object with a single parameter, which is notifyForNewUpdates, which is a boolean

    ","name":"options"}],"name":"Saratoga","longname":"Saratoga","kind":"class","scope":"global","$longname":"Saratoga","$kind":"constructor","$docmaLink":"?api#Saratoga"}},{"comment":"/**\n * Equipment related getters for Saratoga with LegacyAPI\n * @class SaratogaEquipments\n */","meta":{"filename":"LegacyEquipments.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Equipment related getters for Saratoga with LegacyAPI

    ","kind":"class","name":"SaratogaEquipments","longname":"SaratogaEquipments","scope":"global","$longname":"SaratogaEquipments","$kind":"class","$docmaLink":"?api#SaratogaEquipments","$members":[{"comment":"/**\n * Get an unfiltered equipment list\n */","meta":{"range":[2442,2526],"filename":"SaratogaEquipments.js","lineno":79,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000916","name":"SaratogaEquipments#all","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Get an unfiltered equipment list

    ","name":"all","longname":"SaratogaEquipments#all","kind":"function","memberof":"SaratogaEquipments","scope":"instance","params":[],"$longname":"SaratogaEquipments#all","$kind":"method","$docmaLink":"?api#SaratogaEquipments#all"},{"comment":"/**\n * Lists the equipments by category\n * @param {string} category name of the category you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[751,885],"filename":"SaratogaEquipments.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000760","name":"SaratogaEquipments#category","type":"MethodDefinition","paramnames":["category"]},"vars":{"":null}},"description":"

    Lists the equipments by category

    ","params":[{"type":{"names":["string"]},"description":"

    name of the category you want to search for

    ","name":"category"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"category","longname":"SaratogaEquipments#category","kind":"function","scope":"instance","$longname":"SaratogaEquipments#category","$kind":"method","$docmaLink":"?api#SaratogaEquipments#category"},{"comment":"/**\n * Custom filter for equipment data\n * @param {requestCallback} callback the callback that handles the response\n */","meta":{"range":[2668,2780],"filename":"SaratogaEquipments.js","lineno":88,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000931","name":"SaratogaEquipments#filter","type":"MethodDefinition","paramnames":["callback"]},"vars":{"":null}},"description":"

    Custom filter for equipment data

    ","params":[{"type":{"names":["requestCallback"]},"description":"

    the callback that handles the response

    ","name":"callback"}],"name":"filter","longname":"SaratogaEquipments#filter","kind":"function","memberof":"SaratogaEquipments","scope":"instance","$longname":"SaratogaEquipments#filter","$kind":"method","$docmaLink":"?api#SaratogaEquipments#filter"},{"comment":"/**\n * Lists the equipments by category\n * @param {string} category name of the category you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[764,906],"filename":"LegacyEquipments.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000281","name":"LegacyEquipments#getAllByCategory","type":"MethodDefinition","paramnames":["category"]},"vars":{"":null}},"description":"

    Lists the equipments by category

    ","params":[{"type":{"names":["string"]},"description":"

    name of the category you want to search for

    ","name":"category"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"LegacyEquipments#getAllByCategory","longname":"SaratogaEquipments.LegacyEquipments#getAllByCategory","kind":"function","scope":"static","$longname":"SaratogaEquipments.LegacyEquipments#getAllByCategory","$kind":"method","$docmaLink":"?api#SaratogaEquipments.LegacyEquipments#getAllByCategory"},{"comment":"/**\n * Lists the equipments by nationality\n * @param {string} nationality naitionality name of the equipments you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[1143,1297],"filename":"LegacyEquipments.js","lineno":40,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000307","name":"LegacyEquipments#getAllByNationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists the equipments by nationality

    ","params":[{"type":{"names":["string"]},"description":"

    naitionality name of the equipments you want to search for

    ","name":"nationality"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"LegacyEquipments#getAllByNationality","longname":"SaratogaEquipments.LegacyEquipments#getAllByNationality","kind":"function","scope":"static","$longname":"SaratogaEquipments.LegacyEquipments#getAllByNationality","$kind":"method","$docmaLink":"?api#SaratogaEquipments.LegacyEquipments#getAllByNationality"},{"comment":"/**\n * Searches for a specific equipment. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the equipment you want to search for\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaEquipments\n * @returns {Equipment | null}\n */","meta":{"range":[1604,1848],"filename":"LegacyEquipments.js","lineno":52,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000333","name":"LegacyEquipments#searchByEquipmentName","type":"MethodDefinition","paramnames":["name","limit"]},"vars":{"":null}},"description":"

    Searches for a specific equipment. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the equipment you want to search for

    ","name":"name"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Equipment","null"]}}],"name":"LegacyEquipments#searchByEquipmentName","longname":"SaratogaEquipments.LegacyEquipments#searchByEquipmentName","kind":"function","scope":"static","$longname":"SaratogaEquipments.LegacyEquipments#searchByEquipmentName","$kind":"method","$docmaLink":"?api#SaratogaEquipments.LegacyEquipments#searchByEquipmentName"},{"comment":"/**\n * Searches for a specific equipment. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the equipment you want to search for\n * @param {string} language optional language to search by\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaEquipments\n * @returns {Equipment | null}\n */","meta":{"range":[1638,2380],"filename":"SaratogaEquipments.js","lineno":53,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000812","name":"SaratogaEquipments#name","type":"MethodDefinition","paramnames":["name","language","limit"]},"vars":{"":null}},"description":"

    Searches for a specific equipment. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the equipment you want to search for

    ","name":"name"},{"type":{"names":["string"]},"description":"

    optional language to search by

    ","name":"language"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Equipment","null"]}}],"name":"name","longname":"SaratogaEquipments#name","kind":"function","scope":"instance","$longname":"SaratogaEquipments#name","$kind":"method","$docmaLink":"?api#SaratogaEquipments#name"},{"comment":"/**\n * Lists the equipments by nationality\n * @param {string} nationality naitionality name of the equipments you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[1122,1268],"filename":"SaratogaEquipments.js","lineno":40,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000786","name":"SaratogaEquipments#nationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists the equipments by nationality

    ","params":[{"type":{"names":["string"]},"description":"

    naitionality name of the equipments you want to search for

    ","name":"nationality"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"nationality","longname":"SaratogaEquipments#nationality","kind":"function","scope":"instance","$longname":"SaratogaEquipments#nationality","$kind":"method","$docmaLink":"?api#SaratogaEquipments#nationality"},{"comment":"/**\n * Custom search for data in Fuse instance\n * @param {any} options Fuse search options\n */","meta":{"range":[2896,3003],"filename":"SaratogaEquipments.js","lineno":96,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000951","name":"SaratogaEquipments#search","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"

    Custom search for data in Fuse instance

    ","params":[{"type":{"names":["any"]},"description":"

    Fuse search options

    ","name":"options"}],"name":"search","longname":"SaratogaEquipments#search","kind":"function","memberof":"SaratogaEquipments","scope":"instance","$longname":"SaratogaEquipments#search","$kind":"method","$docmaLink":"?api#SaratogaEquipments#search"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[213,321],"filename":"SaratogaEquipments.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000707","name":"SaratogaEquipments","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaEquipments","longname":"SaratogaEquipments","kind":"class","scope":"global","$longname":"SaratogaEquipments","$kind":"constructor","$docmaLink":"?api#SaratogaEquipments"}},{"comment":"/**\n * Equipment related getters for Saratoga\n * @class SaratogaEquipments\n */","meta":{"filename":"SaratogaEquipments.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Equipment related getters for Saratoga

    ","kind":"class","name":"SaratogaEquipments","longname":"SaratogaEquipments","scope":"global","$longname":"SaratogaEquipments","$kind":"class","$docmaLink":"?api#SaratogaEquipments"},{"comment":"/**\n * Ship related getters for Saratoga with LegacyAPI\n * @class SaratogaShips\n */","meta":{"filename":"LegacyShips.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Ship related getters for Saratoga with LegacyAPI

    ","kind":"class","name":"SaratogaShips","longname":"SaratogaShips","scope":"global","$longname":"SaratogaShips","$kind":"class","$docmaLink":"?api#SaratogaShips","$members":[{"comment":"/**\n * Custom filter for ship data\n * @param {requestCallback} callback the callback that handles the response\n */","meta":{"range":[2763,2875],"filename":"SaratogaShips.js","lineno":94,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001262","name":"SaratogaShips#filter","type":"MethodDefinition","paramnames":["callback"]},"vars":{"":null}},"description":"

    Custom filter for ship data

    ","params":[{"type":{"names":["requestCallback"]},"description":"

    the callback that handles the response

    ","name":"callback"}],"name":"filter","longname":"SaratogaShips#filter","kind":"function","memberof":"SaratogaShips","scope":"instance","$longname":"SaratogaShips#filter","$kind":"method","$docmaLink":"?api#SaratogaShips#filter"},{"comment":"/**\n * Search from all ships\n * @param {number | string} id \n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[666,1089],"filename":"SaratogaShips.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001035","name":"SaratogaShips#get","type":"MethodDefinition","paramnames":["id"]},"vars":{"":null}},"description":"

    Search from all ships

    ","params":[{"type":{"names":["number","string"]},"name":"id"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"get","longname":"SaratogaShips#get","kind":"function","scope":"instance","$longname":"SaratogaShips#get","$kind":"method","$docmaLink":"?api#SaratogaShips#get"},{"comment":"/**\n * Fetches a specific ship via its id\n * @param {number} id id of the ship you want to fetch\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[1273,1447],"filename":"SaratogaShips.js","lineno":50,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001108","name":"SaratogaShips#id","type":"MethodDefinition","paramnames":["id"]},"vars":{"":null}},"description":"

    Fetches a specific ship via its id

    ","params":[{"type":{"names":["number"]},"description":"

    id of the ship you want to fetch

    ","name":"id"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"id","longname":"SaratogaShips#id","kind":"function","scope":"instance","$longname":"SaratogaShips#id","$kind":"method","$docmaLink":"?api#SaratogaShips#id"},{"comment":"/**\n * Lists all the ships that matches a specific shjp class\n * @param {string} shipClass class of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[774,912],"filename":"LegacyShips.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000474","name":"LegacyShips#getAllByClass","type":"MethodDefinition","paramnames":["shipClass"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific shjp class

    ","params":[{"type":{"names":["string"]},"description":"

    class of the ship you want to search for (Case Sensitive)

    ","name":"shipClass"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"LegacyShips#getAllByClass","longname":"SaratogaShips.LegacyShips#getAllByClass","kind":"function","scope":"static","$longname":"SaratogaShips.LegacyShips#getAllByClass","$kind":"method","$docmaLink":"?api#SaratogaShips.LegacyShips#getAllByClass"},{"comment":"/**\n * Lists all the ships that matches a specific ship hull type\n * @param {string} hullType hullType of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1572,1714],"filename":"LegacyShips.js","lineno":51,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000526","name":"LegacyShips#getAllByHullType","type":"MethodDefinition","paramnames":["hullType"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship hull type

    ","params":[{"type":{"names":["string"]},"description":"

    hullType of the ship you want to search for (Case Sensitive)

    ","name":"hullType"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"LegacyShips#getAllByHullType","longname":"SaratogaShips.LegacyShips#getAllByHullType","kind":"function","scope":"static","$longname":"SaratogaShips.LegacyShips#getAllByHullType","$kind":"method","$docmaLink":"?api#SaratogaShips.LegacyShips#getAllByHullType"},{"comment":"/**\n * Lists all the ships that matches a specific ship nationality\n * @param {string} nationality nationality of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1169,1323],"filename":"LegacyShips.js","lineno":40,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000500","name":"LegacyShips#getAllByNationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship nationality

    ","params":[{"type":{"names":["string"]},"description":"

    nationality of the ship you want to search for (Case Sensitive)

    ","name":"nationality"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"LegacyShips#getAllByNationality","longname":"SaratogaShips.LegacyShips#getAllByNationality","kind":"function","scope":"static","$longname":"SaratogaShips.LegacyShips#getAllByNationality","$kind":"method","$docmaLink":"?api#SaratogaShips.LegacyShips#getAllByNationality"},{"comment":"/**\n * Lists all the ship that matches a specific rarity\n * @param {string} rarity rarity of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1950,2084],"filename":"LegacyShips.js","lineno":62,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000552","name":"LegacyShips#getAllByRarity","type":"MethodDefinition","paramnames":["rarity"]},"vars":{"":null}},"description":"

    Lists all the ship that matches a specific rarity

    ","params":[{"type":{"names":["string"]},"description":"

    rarity of the ship you want to search for (Case Sensitive)

    ","name":"rarity"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"LegacyShips#getAllByRarity","longname":"SaratogaShips.LegacyShips#getAllByRarity","kind":"function","scope":"static","$longname":"SaratogaShips.LegacyShips#getAllByRarity","$kind":"method","$docmaLink":"?api#SaratogaShips.LegacyShips#getAllByRarity"},{"comment":"/**\n * Fetches a specific ship via its id\n * @param {number} id id of the ship you want to fetch\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[2268,2447],"filename":"LegacyShips.js","lineno":73,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000578","name":"LegacyShips#getById","type":"MethodDefinition","paramnames":["id"]},"vars":{"":null}},"description":"

    Fetches a specific ship via its id

    ","params":[{"type":{"names":["number"]},"description":"

    id of the ship you want to fetch

    ","name":"id"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"LegacyShips#getById","longname":"SaratogaShips.LegacyShips#getById","kind":"function","scope":"static","$longname":"SaratogaShips.LegacyShips#getById","$kind":"method","$docmaLink":"?api#SaratogaShips.LegacyShips#getById"},{"comment":"/**\n * Searches for a specific ship. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the ship you want to search for\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[2734,2959],"filename":"LegacyShips.js","lineno":87,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000615","name":"LegacyShips#searchShipByName","type":"MethodDefinition","paramnames":["name","limit"]},"vars":{"":null}},"description":"

    Searches for a specific ship. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the ship you want to search for

    ","name":"name"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"LegacyShips#searchShipByName","longname":"SaratogaShips.LegacyShips#searchShipByName","kind":"function","scope":"static","$longname":"SaratogaShips.LegacyShips#searchShipByName","$kind":"method","$docmaLink":"?api#SaratogaShips.LegacyShips#searchShipByName"},{"comment":"/**\n * Searches for a specific ship. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the ship you want to search for\n * @param {string} language optional language to search by\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[1797,2627],"filename":"SaratogaShips.js","lineno":65,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001145","name":"SaratogaShips#name","type":"MethodDefinition","paramnames":["name","language","limit"]},"vars":{"":null}},"description":"

    Searches for a specific ship. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the ship you want to search for

    ","name":"name"},{"type":{"names":["string"]},"description":"

    optional language to search by

    ","name":"language"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"name","longname":"SaratogaShips#name","kind":"function","scope":"instance","$longname":"SaratogaShips#name","$kind":"method","$docmaLink":"?api#SaratogaShips#name"},{"comment":"/**\n * Custom search for data in Fuse instance\n * @param {any} options Fuse search options\n */","meta":{"range":[2991,3098],"filename":"SaratogaShips.js","lineno":102,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001282","name":"SaratogaShips#search","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"

    Custom search for data in Fuse instance

    ","params":[{"type":{"names":["any"]},"description":"

    Fuse search options

    ","name":"options"}],"name":"search","longname":"SaratogaShips#search","kind":"function","memberof":"SaratogaShips","scope":"instance","$longname":"SaratogaShips#search","$kind":"method","$docmaLink":"?api#SaratogaShips#search"},{"comment":"/**\n * Lists all the ships that matches a specific shjp class\n * @param {string} shipClass class of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[4410,4540],"filename":"SaratogaShips.js","lineno":166,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001439","name":"ShipExtFilter#class","type":"MethodDefinition","paramnames":["shipClass"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific shjp class

    ","params":[{"type":{"names":["string"]},"description":"

    class of the ship you want to search for (Case Sensitive)

    ","name":"shipClass"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"ShipExtFilter#class","longname":"SaratogaShips.ShipExtFilter#class","kind":"function","scope":"static","$longname":"SaratogaShips.ShipExtFilter#class","$kind":"method","$docmaLink":"?api#SaratogaShips.ShipExtFilter#class"},{"comment":"/**\n * Lists all the ships that matches a specific ship nationality\n * @param {string} nationality nationality of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[4797,4943],"filename":"SaratogaShips.js","lineno":177,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001465","name":"ShipExtFilter#nationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship nationality

    ","params":[{"type":{"names":["string"]},"description":"

    nationality of the ship you want to search for (Case Sensitive)

    ","name":"nationality"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"ShipExtFilter#nationality","longname":"SaratogaShips.ShipExtFilter#nationality","kind":"function","scope":"static","$longname":"SaratogaShips.ShipExtFilter#nationality","$kind":"method","$docmaLink":"?api#SaratogaShips.ShipExtFilter#nationality"},{"comment":"/**\n * Lists all the ship that matches a specific rarity\n * @param {string} rarity rarity of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[5558,5684],"filename":"SaratogaShips.js","lineno":199,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001517","name":"ShipExtFilter#rarity","type":"MethodDefinition","paramnames":["rarity"]},"vars":{"":null}},"description":"

    Lists all the ship that matches a specific rarity

    ","params":[{"type":{"names":["string"]},"description":"

    rarity of the ship you want to search for (Case Sensitive)

    ","name":"rarity"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"ShipExtFilter#rarity","longname":"SaratogaShips.ShipExtFilter#rarity","kind":"function","scope":"static","$longname":"SaratogaShips.ShipExtFilter#rarity","$kind":"method","$docmaLink":"?api#SaratogaShips.ShipExtFilter#rarity"},{"comment":"/**\n * Lists all the ships that matches a specific ship hull type\n * @param {string} hullType hullType of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[5192,5322],"filename":"SaratogaShips.js","lineno":188,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001491","name":"ShipExtFilter#type","type":"MethodDefinition","paramnames":["hullType"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship hull type

    ","params":[{"type":{"names":["string"]},"description":"

    hullType of the ship you want to search for (Case Sensitive)

    ","name":"hullType"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"ShipExtFilter#type","longname":"SaratogaShips.ShipExtFilter#type","kind":"function","scope":"static","$longname":"SaratogaShips.ShipExtFilter#type","$kind":"method","$docmaLink":"?api#SaratogaShips.ShipExtFilter#type"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[198,306],"filename":"SaratogaShips.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000982","name":"SaratogaShips","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaShips","longname":"SaratogaShips","kind":"class","scope":"global","$longname":"SaratogaShips","$kind":"constructor","$docmaLink":"?api#SaratogaShips"}},{"comment":"/**\n * Ship related getters for Saratoga\n * @class SaratogaShips\n */","meta":{"filename":"SaratogaShips.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Ship related getters for Saratoga

    ","kind":"class","name":"SaratogaShips","longname":"SaratogaShips","scope":"global","$longname":"SaratogaShips","$kind":"class","$docmaLink":"?api#SaratogaShips"},{"comment":"/**\n * Saratoga, the starting point of this API\n * @class SaratogaStore\n */","meta":{"filename":"SaratogaStore.js","lineno":11,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Saratoga, the starting point of this API

    ","kind":"class","name":"SaratogaStore","longname":"SaratogaStore","scope":"global","$longname":"SaratogaStore","$kind":"class","$docmaLink":"?api#SaratogaStore","$members":[{"comment":"/**\n * Equipment related getters for this store\n * @type {SaratogaEquipments}\n */","meta":{"range":[1203,1249],"filename":"SaratogaStore.js","lineno":36,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001651","name":"this.equipments","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Equipment related getters for this store

    ","type":{"names":["SaratogaEquipments"]},"name":"equipments","longname":"SaratogaStore#equipments","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#equipments","$kind":"property","$docmaLink":"?api#SaratogaStore#equipments"},{"comment":"/**\n * Legacy API instances\n */","meta":{"range":[1813,1853],"filename":"SaratogaStore.js","lineno":55,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001659","name":"this.legacyShips","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Legacy API instances

    ","name":"legacyShips","longname":"SaratogaStore#legacyShips","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#legacyShips","$kind":"property","$docmaLink":"?api#SaratogaStore#legacyShips"},{"comment":"/**\n * If this store is already ready to operate\n * @type {Boolean}\n */","meta":{"range":[2193,2211],"filename":"SaratogaStore.js","lineno":66,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001683","name":"this.ready","type":"Literal","value":false,"paramnames":[]}},"description":"

    If this store is already ready to operate

    ","type":{"names":["Boolean"]},"name":"ready","longname":"SaratogaStore#ready","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#ready","$kind":"property","$docmaLink":"?api#SaratogaStore#ready"},{"comment":"/**\n * The saratoga instance that generated this instance\n * @type {Saratoga}\n */","meta":{"range":[807,831],"filename":"SaratogaStore.js","lineno":24,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001617","name":"this.saratoga","type":"Identifier","value":"saratoga","paramnames":[]}},"description":"

    The saratoga instance that generated this instance

    ","type":{"names":["Saratoga"]},"name":"saratoga","longname":"SaratogaStore#saratoga","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#saratoga","$kind":"property","$docmaLink":"?api#SaratogaStore#saratoga"},{"comment":"/**\n * Ship related getters for this store\n * @type {SaratogaShips}\n */","meta":{"range":[945,981],"filename":"SaratogaStore.js","lineno":29,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001623","name":"this.ships","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Ship related getters for this store

    ","type":{"names":["SaratogaShips"]},"name":"ships","longname":"SaratogaStore#ships","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#ships","$kind":"property","$docmaLink":"?api#SaratogaStore#ships"},{"comment":"/**\n * Updater Class for the local data for this store\n * @type {SaratogaUpdater}\n */","meta":{"range":[2039,2079],"filename":"SaratogaStore.js","lineno":61,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001675","name":"this.updater","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Updater Class for the local data for this store

    ","type":{"names":["SaratogaUpdater"]},"name":"updater","longname":"SaratogaStore#updater","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#updater","$kind":"property","$docmaLink":"?api#SaratogaStore#updater"}],"$constructor":{"comment":"/**\n * @param {Saratoga} saratoga The saratoga class that generated this instance\n */","meta":{"range":[661,3044],"filename":"SaratogaStore.js","lineno":19,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001611","name":"SaratogaStore","type":"MethodDefinition","paramnames":["saratoga"]},"vars":{"":null}},"params":[{"type":{"names":["Saratoga"]},"description":"

    The saratoga class that generated this instance

    ","name":"saratoga"}],"name":"SaratogaStore","longname":"SaratogaStore","kind":"class","scope":"global","$longname":"SaratogaStore","$kind":"constructor","$docmaLink":"?api#SaratogaStore"}},{"comment":"/**\n * Manages the local data & cache updates\n * @class SaratogaUpdater\n */","meta":{"filename":"SaratogaUpdater.js","lineno":5,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{}},"description":"

    Manages the local data & cache updates

    ","kind":"class","name":"SaratogaUpdater","longname":"SaratogaUpdater","scope":"global","$longname":"SaratogaUpdater","$kind":"class","$docmaLink":"?api#SaratogaUpdater","$members":[{"comment":"/**\n * Checks if there is new updates for ship or equipment data\n * @memberof SaratogaUpdater\n * @returns {Promise}\n * @example\n * const api = new Saratoga();\n * api.updater.checkForUpdate()\n * .then((response) => {\n * if (response.shipUpdateAvailable || response.equipmentUpdateAvailable) console.log('update available');\n * })\n */","meta":{"range":[3577,3989],"filename":"SaratogaUpdater.js","lineno":90,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002694","name":"SaratogaUpdater#checkForUpdate","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Checks if there is new updates for ship or equipment data

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"examples":["const api = new Saratoga();\napi.updater.checkForUpdate()\n .then((response) => {\n if (response.shipUpdateAvailable || response.equipmentUpdateAvailable) console.log('update available');\n })"],"name":"checkForUpdate","longname":"SaratogaUpdater#checkForUpdate","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#checkForUpdate","$kind":"method","$docmaLink":"?api#SaratogaUpdater#checkForUpdate"},{"comment":"/**\n * Updates the Cached Data, loaded from the local files of Saratoga\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[5374,5549],"filename":"SaratogaUpdater.js","lineno":135,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002814","name":"SaratogaUpdater#updateCache","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Cached Data, loaded from the local files of Saratoga

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateCache","longname":"SaratogaUpdater#updateCache","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateCache","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateCache"},{"comment":"/**\n * Updates the Local Files & Cached Data in one method, good for single process scenarios as it's easy. Not for multi sharded programs that has its own Saratoga instance per shard.\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[3070,3176],"filename":"SaratogaUpdater.js","lineno":74,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002678","name":"SaratogaUpdater#updateDataAndCache","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Local Files & Cached Data in one method, good for single process scenarios as it's easy. Not for multi sharded programs that has its own Saratoga instance per shard.

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateDataAndCache","longname":"SaratogaUpdater#updateDataAndCache","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateDataAndCache","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateDataAndCache"},{"comment":"/**\n * Updates the Local Files of Saratoga if there is an update\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[4141,5215],"filename":"SaratogaUpdater.js","lineno":104,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002714","name":"SaratogaUpdater#updateLocalData","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Local Files of Saratoga if there is an update

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateLocalData","longname":"SaratogaUpdater#updateLocalData","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateLocalData","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateLocalData"},{"comment":"/**\n * The cron update checker which is responsible for Saratoga#updateAvailable event\n * @type {?Timeout}\n */","meta":{"range":[830,852],"filename":"SaratogaUpdater.js","lineno":28,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002408","name":"this.cronUpdate","type":"Literal","value":null,"paramnames":[]}},"description":"

    The cron update checker which is responsible for Saratoga#updateAvailable event

    ","type":{"names":["Timeout"]},"nullable":true,"name":"cronUpdate","longname":"SaratogaUpdater#cronUpdate","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#cronUpdate","$kind":"property","$docmaLink":"?api#SaratogaUpdater#cronUpdate"},{"comment":"/**\n * If the data directory of this updater is ready to operate\n * @type {Boolean}\n */","meta":{"range":[652,677],"filename":"SaratogaUpdater.js","lineno":23,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002402","name":"this.dataDirReady","type":"Literal","value":false,"paramnames":[]}},"description":"

    If the data directory of this updater is ready to operate

    ","type":{"names":["Boolean"]},"name":"dataDirReady","longname":"SaratogaUpdater#dataDirReady","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#dataDirReady","$kind":"property","$docmaLink":"?api#SaratogaUpdater#dataDirReady"},{"comment":"/**\n * The saratoga instance that generated this instance\n * @type {Saratoga}\n */","meta":{"range":[963,1021],"filename":"SaratogaUpdater.js","lineno":35,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002413","name":"SaratogaUpdater#saratoga","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    The saratoga instance that generated this instance

    ","type":{"names":["Saratoga"]},"name":"saratoga","longname":"SaratogaUpdater#saratoga","kind":"member","memberof":"SaratogaUpdater","scope":"instance","params":[],"$longname":"SaratogaUpdater#saratoga","$kind":"property","$docmaLink":"?api#SaratogaUpdater#saratoga"},{"comment":"/**\n * The updater instance that generated this instance\n * @type {SaratogaStore}\n */","meta":{"range":[504,522],"filename":"SaratogaUpdater.js","lineno":18,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002396","name":"this.store","type":"Identifier","value":"store","paramnames":[]}},"description":"

    The updater instance that generated this instance

    ","type":{"names":["SaratogaStore"]},"name":"store","longname":"SaratogaUpdater#store","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#store","$kind":"property","$docmaLink":"?api#SaratogaUpdater#store"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[357,859],"filename":"SaratogaUpdater.js","lineno":13,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002390","name":"SaratogaUpdater","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaUpdater","longname":"SaratogaUpdater","kind":"class","scope":"global","$longname":"SaratogaUpdater","$kind":"constructor","$docmaLink":"?api#SaratogaUpdater"}},{"comment":"","meta":{"range":[122,250],"filename":"SaratogaValidator.js","lineno":5,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100003205","name":"SaratogaValidator","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"undocumented":true,"name":"SaratogaValidator","longname":"SaratogaValidator","kind":"class","scope":"global","params":[],"$longname":"SaratogaValidator","$kind":"constructor","$docmaLink":"?api#SaratogaValidator"},{"comment":"","meta":{"range":[3147,3185],"filename":"SaratogaShips.js","lineno":109,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001306","name":"ShipExtAll","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"undocumented":true,"name":"ShipExtAll","longname":"ShipExtAll","kind":"class","scope":"global","params":[],"$longname":"ShipExtAll","$kind":"constructor","$docmaLink":"?api#ShipExtAll"},{"comment":"","meta":{"range":[4130,4168],"filename":"SaratogaShips.js","lineno":157,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001432","name":"ShipExtFilter","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"undocumented":true,"name":"ShipExtFilter","longname":"ShipExtFilter","kind":"class","scope":"global","params":[],"$longname":"ShipExtFilter","$kind":"constructor","$docmaLink":"?api#ShipExtFilter"},{"comment":"/**\n * Custom filter for equipment data\n * @param {requestCallback} callback the callback that handles the response\n */","meta":{"range":[1989,2101],"filename":"LegacyEquipments.js","lineno":62,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000370","name":"LegacyEquipments#filter","type":"MethodDefinition","paramnames":["callback"]},"vars":{"":null}},"description":"

    Custom filter for equipment data

    ","params":[{"type":{"names":["requestCallback"]},"description":"

    the callback that handles the response

    ","name":"callback"}],"name":"filter","longname":"LegacyEquipments#filter","kind":"function","memberof":"LegacyEquipments","scope":"instance","$longname":"LegacyEquipments#filter","$kind":"method","$docmaLink":"?api#LegacyEquipments#filter"},{"comment":"/**\n * Custom search for data in Fuse instance\n * @param {any} options Fuse search options\n */","meta":{"range":[2217,2324],"filename":"LegacyEquipments.js","lineno":70,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000390","name":"LegacyEquipments#search","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"

    Custom search for data in Fuse instance

    ","params":[{"type":{"names":["any"]},"description":"

    Fuse search options

    ","name":"options"}],"name":"search","longname":"LegacyEquipments#search","kind":"function","memberof":"LegacyEquipments","scope":"instance","$longname":"LegacyEquipments#search","$kind":"method","$docmaLink":"?api#LegacyEquipments#search"},{"comment":"/**\n * Custom filter for ship data\n * @param {requestCallback} callback the callback that handles the response\n */","meta":{"range":[3095,3207],"filename":"LegacyShips.js","lineno":97,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000652","name":"LegacyShips#filter","type":"MethodDefinition","paramnames":["callback"]},"vars":{"":null}},"description":"

    Custom filter for ship data

    ","params":[{"type":{"names":["requestCallback"]},"description":"

    the callback that handles the response

    ","name":"callback"}],"name":"filter","longname":"LegacyShips#filter","kind":"function","memberof":"LegacyShips","scope":"instance","$longname":"LegacyShips#filter","$kind":"method","$docmaLink":"?api#LegacyShips#filter"},{"comment":"/**\n * Custom search for data in Fuse instance\n * @param {any} options Fuse search options\n */","meta":{"range":[3323,3430],"filename":"LegacyShips.js","lineno":105,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000672","name":"LegacyShips#search","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"

    Custom search for data in Fuse instance

    ","params":[{"type":{"names":["any"]},"description":"

    Fuse search options

    ","name":"options"}],"name":"search","longname":"LegacyShips#search","kind":"function","memberof":"LegacyShips","scope":"instance","$longname":"LegacyShips#search","$kind":"method","$docmaLink":"?api#LegacyShips#search"},{"comment":"/**\n * Get an unfiltered ship list\n */","meta":{"range":[3242,3326],"filename":"SaratogaShips.js","lineno":116,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001313","name":"ShipExtAll#get","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Get an unfiltered ship list

    ","name":"get","longname":"ShipExtAll#get","kind":"function","memberof":"ShipExtAll","scope":"instance","params":[],"$longname":"ShipExtAll#get","$kind":"method","$docmaLink":"?api#ShipExtAll#get"},{"comment":"/**\n * Filter ships via id\n */","meta":{"range":[3992,4078],"filename":"SaratogaShips.js","lineno":150,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001411","name":"ShipExtAll#id","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Filter ships via id

    ","name":"id","longname":"ShipExtAll#id","kind":"function","memberof":"ShipExtAll","scope":"instance","params":[],"$longname":"ShipExtAll#id","$kind":"method","$docmaLink":"?api#ShipExtAll#id"},{"comment":"/**\n * Filter ships via language\n * @param {string} language \n */","meta":{"range":[3414,3943],"filename":"SaratogaShips.js","lineno":125,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001328","name":"ShipExtAll#name","type":"MethodDefinition","paramnames":["language"]},"vars":{"":null}},"description":"

    Filter ships via language

    ","params":[{"type":{"names":["string"]},"name":"language"}],"name":"name","longname":"ShipExtAll#name","kind":"function","memberof":"ShipExtAll","scope":"instance","$longname":"ShipExtAll#name","$kind":"method","$docmaLink":"?api#ShipExtAll#name"},{"comment":"/**\n * Barrage Data\n * @external Barrage\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":34,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Barrage Data

    ","kind":"external","name":"Barrage","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Barrage","scope":"global","$longname":"external:Barrage","$kind":"external","$docmaLink":"?api#external:Barrage"},{"comment":"/**\n * Chapter Data\n * @external Chapter\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":24,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Chapter Data

    ","kind":"external","name":"Chapter","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Chapter","scope":"global","$longname":"external:Chapter","$kind":"external","$docmaLink":"?api#external:Chapter"},{"comment":"/**\n * Equipment Data\n * @external Equipment\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":19,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Equipment Data

    ","kind":"external","name":"Equipment","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Equipment","scope":"global","$longname":"external:Equipment","$kind":"external","$docmaLink":"?api#external:Equipment"},{"comment":"/**\n * Node.js Event Emitter\n * @external EventEmitter\n * @see {@link https://nodejs.org/api/events.html}\n */","meta":{"filename":"index.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Node.js Event Emitter

    ","kind":"external","name":"EventEmitter","see":["{@link https://nodejs.org/api/events.html}"],"longname":"external:EventEmitter","scope":"global","$longname":"external:EventEmitter","$kind":"external","$docmaLink":"?api#external:EventEmitter"},{"comment":"/**\n * Ship Data\n * @external Ship\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#ship-getters}\n */","meta":{"filename":"index.js","lineno":13,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Ship Data

    ","kind":"external","name":"Ship","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#ship-getters}"],"longname":"external:Ship","scope":"global","$longname":"external:Ship","$kind":"external","$docmaLink":"?api#external:Ship"},{"comment":"/**\n * Node.js Timeout\n * @external Timeout\n * @see {@link https://nodejs.org/dist/latest/docs/api/timers.html#timers_class_timeout}\n */","meta":{"filename":"index.js","lineno":7,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Node.js Timeout

    ","kind":"external","name":"Timeout","see":["{@link https://nodejs.org/dist/latest/docs/api/timers.html#timers_class_timeout}"],"longname":"external:Timeout","scope":"global","$longname":"external:Timeout","$kind":"external","$docmaLink":"?api#external:Timeout"},{"comment":"/**\n * Voiceline Data\n * @external Voiceline\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":29,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Voiceline Data

    ","kind":"external","name":"Voiceline","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Voiceline","scope":"global","$longname":"external:Voiceline","$kind":"external","$docmaLink":"?api#external:Voiceline"}],"symbols":["external:Barrage","external:Chapter","external:Equipment","external:EventEmitter","external:Ship","external:Timeout","external:Voiceline","LegacyEquipments","LegacyEquipments#filter","LegacyEquipments#search","LegacyShips","LegacyShips#filter","LegacyShips#search","Saratoga","Saratoga#barrages","Saratoga#chapters","Saratoga#equipments","Saratoga#event:debug","Saratoga#event:error","Saratoga#event:ready","Saratoga#event:updateAvailable","Saratoga#legacyEquipments","Saratoga#legacyShips","Saratoga#ready","Saratoga#ships","Saratoga#store","Saratoga#updater","Saratoga#voicelines","SaratogaEquipments","SaratogaEquipments","SaratogaEquipments#all","SaratogaEquipments#category","SaratogaEquipments#filter","SaratogaEquipments.LegacyEquipments#getAllByCategory","SaratogaEquipments.LegacyEquipments#getAllByNationality","SaratogaEquipments.LegacyEquipments#searchByEquipmentName","SaratogaEquipments#name","SaratogaEquipments#nationality","SaratogaEquipments#search","SaratogaShips","SaratogaShips","SaratogaShips#filter","SaratogaShips#get","SaratogaShips#id","SaratogaShips.LegacyShips#getAllByClass","SaratogaShips.LegacyShips#getAllByHullType","SaratogaShips.LegacyShips#getAllByNationality","SaratogaShips.LegacyShips#getAllByRarity","SaratogaShips.LegacyShips#getById","SaratogaShips.LegacyShips#searchShipByName","SaratogaShips#name","SaratogaShips#search","SaratogaShips.ShipExtFilter#class","SaratogaShips.ShipExtFilter#nationality","SaratogaShips.ShipExtFilter#rarity","SaratogaShips.ShipExtFilter#type","SaratogaStore","SaratogaStore#equipments","SaratogaStore#legacyShips","SaratogaStore#ready","SaratogaStore#saratoga","SaratogaStore#ships","SaratogaStore#updater","SaratogaUpdater","SaratogaUpdater#checkForUpdate","SaratogaUpdater#cronUpdate","SaratogaUpdater#dataDirReady","SaratogaUpdater#saratoga","SaratogaUpdater#store","SaratogaUpdater#updateCache","SaratogaUpdater#updateDataAndCache","SaratogaUpdater#updateLocalData","SaratogaValidator","ShipExtAll","ShipExtAll#get","ShipExtAll#id","ShipExtAll#name","ShipExtFilter"]}},"app":{"title":"Saratoga | An open source Azur Lane local library","routing":{"method":"query","caseSensitive":true},"entrance":"content:readme","base":"/Saratoga/","meta":null,"server":"static","favicon":""},"template":{"name":"docma-template-zebra","description":"Zebra - Default template for Docma. https://github.com/onury/docma","version":"2.3.1","supportedDocmaVersion":">=2.0.0","author":"Onur Yıldırım","license":"MIT","mainHTML":"index.html","options":{"title":{"label":"Saratoga","href":"."},"sidebar":{"enabled":true,"outline":"tree","collapsed":false,"toolbar":true,"itemsFolded":false,"itemsOverflow":"crop","badges":true,"search":true,"animations":true},"symbols":{"autoLink":true,"params":"list","enums":"list","props":"list","meta":false},"navbar":{"enabled":true,"dark":false,"animations":true,"menu":[{"label":"Readme","href":"."},{"label":"Documentation","href":"?api"},{"label":"GitHub","href":"https://github.com/AzurAPI/Saratoga"}],"fixed":true},"logo":null,"contentView":{"bookmarks":false,"faVersion":"5.5.0","faLibs":"all"}}},"partials":{"api":"docma-api","content":"docma-content","notFound":"docma-404"},"elementID":"docma-main","contentElementID":"docma-content","defaultApiName":"_def_","logsEnabled":false})); !function(){"use strict";var c="path"===docma.app.routing.method;function o(a){return(a.params[1]||"").replace(/\/$/,"")}function a(a,e){a=o(a)||docma._.defaultApiName,a=docma.createRoute(a,DocmaWeb.Route.Type.API);if(!a||!a.exists())return e();a.apply()}docma.app.base&&page.base(docma.app.base),page.redirect("(/)?"+docma.template.main,""),c&&(page("(/)?api/(.+)",a),page("(/)?api(/)?",a),page("(/)?(.*)",function(a,e){a=o(a),a=docma.createRoute(a,DocmaWeb.Route.Type.CONTENT);if(!a||!a.exists())return e();a.apply()})),page("(/)?",function(t,n){!function(){if(c){var a=sessionStorage.getItem("redirectPath")||null;if(a)return sessionStorage.removeItem("redirectPath"),docma.info("Redirecting to:",a),page.redirect(a),1}}()&&setTimeout(function(){var a,e,e=(e=(e=t.querystring)||window.location.search,(e=/^[?&]/.test(e)?e.slice(1):e)||null);if(c){if(e)return n();a=docma._.appEntranceRI}else docma.log("Query-string:",e),a=e?docma.createRouteFromQuery(e):docma._.appEntranceRI;if(!a||!a.exists())return n();function o(){docma._trigger(DocmaWeb.Event.Navigate,[a])}a.isCurrent()?o():a.apply(function(a){200===a&&o()})},100)}),page("*",function(a){docma.warn("Unknown Route:",a.path),docma.log("context:",a),docma.createRoute(null).apply()}),docma.info("Docma SPA Configuration:"),docma.info("App Title: ",docma.app.title),docma.info("Routing Method: ",docma.app.routing.method),docma.info("App Server: ",docma.app.server),docma.info("Base Path: ",docma.app.base),docma.info("Entrance Route ID: ",docma.app.entrance),window.onload=function(){docma._.initialLoad=!0,docma._.appEntranceRI=docma.createRouteFromID(docma.app.entrance),page.start({click:!0,popstate:!0,dispatch:!0,hashbang:!1,decodeURLComponents:!0}),docma.info("Docma SPA loaded!")}}(); \ No newline at end of file diff --git a/package.json b/package.json index d6f2b84..7c95481 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,12 @@ { "name": "saratoga", - "version": "1.1.2-beta", + "version": "1.1.3-beta", "description": "Open Source Azur Lane Local Database", "main": "index.js", "scripts": { - "test": "node ./tests/Client.js", - "jest": "jest" + "test": "node ./tests/LegacyClient.js", + "jest": "jest", + "docs": "docma" }, "keywords": [ "api", diff --git a/src/Saratoga.js b/src/Saratoga.js index b8917d2..02f47c7 100644 --- a/src/Saratoga.js +++ b/src/Saratoga.js @@ -109,5 +109,21 @@ class Saratoga extends EventEmitter { if (!this.ready) return null; return this.store.barrages; } + /** + * Azur Lane's Ship related getter methods with LegacyAPI + * @type {SaratogaLegacyShips} + */ + get legacyShips() { + if (!this.ready) return null; + return this.store.legacyShips; + } + /** + * Azur Lane's Equipment related getter methods with LegacyAPI + * @type {SaratogaLegacyEquipments} + */ + get legacyEquipments() { + if (!this.ready) return null; + return this.store.legacyEquipments; + } } module.exports = Saratoga; diff --git a/src/store/LegacyEquipments.js b/src/store/LegacyEquipments.js new file mode 100644 index 0000000..694bf90 --- /dev/null +++ b/src/store/LegacyEquipments.js @@ -0,0 +1,75 @@ +/** + * Equipment related getters for Saratoga with LegacyAPI + * @class SaratogaEquipments + */ +class LegacyEquipments { + /** + * @param {SaratogaStore} store The updater instance that generated this instance + */ + constructor(store) { + Object.defineProperty(this, '_store', { value: store, writable: false }); + } + + get cache() { + if (!this._store._equipCache) return null; + return this._store._equipCache; + } + + get rawCache() { + if (!this.cache) return null; + return this.cache.list; + } + + /** + * Lists the equipments by category + * @param {string} category name of the category you want to search for + * @memberof SaratogaEquipments + * @returns {Array | null} + */ + getAllByCategory(category) { + if (!this.rawCache) return null; + return this.rawCache.filter(d => d.category === category); + } + + /** + * Lists the equipments by nationality + * @param {string} nationality naitionality name of the equipments you want to search for + * @memberof SaratogaEquipments + * @returns {Array | null} + */ + getAllByNationality(nationality) { + if (!this.rawCache) return null; + return this.rawCache.filter(d => d.nationality === nationality); + } + + /** + * Searches for a specific equipment. (EN, CN, JP, KR names are supported) + * @param {string} name name of the equipment you want to search for + * @param {number} [limit=10] limit of the search results + * @memberof SaratogaEquipments + * @returns {Equipment | null} + */ + searchByEquipmentName(name, limit = 10) { + if (!this.cache) return null; + const possibleEquipments = this.cache.search(name, { limit }); + if (!possibleEquipments.length) return null; + return possibleEquipments; + } + /** + * Custom filter for equipment data + * @param {requestCallback} callback the callback that handles the response + */ + filter(callback) { + if (!this.rawCache) return null; + return this.rawCache.filter(callback); + } + /** + * Custom search for data in Fuse instance + * @param {any} options Fuse search options + */ + search(options) { + if (!this.rawCache) return null; + return this.cache.search(options); + } +} +module.exports = LegacyEquipments; \ No newline at end of file diff --git a/src/store/LegacyShips.js b/src/store/LegacyShips.js new file mode 100644 index 0000000..27f39b3 --- /dev/null +++ b/src/store/LegacyShips.js @@ -0,0 +1,110 @@ +/** + * Ship related getters for Saratoga with LegacyAPI + * @class SaratogaShips + */ +class LegacyShips { + /** + * @param {SaratogaStore} store The updater instance that generated this instance + */ + constructor(store) { + Object.defineProperty(this, '_store', { value: store, writable: false }); + } + + get cache() { + if (!this._store._shipCache) return null; + return this._store._shipCache; + } + + get rawCache() { + if (!this.cache) return null; + return this.cache.list; + } + + /** + * Lists all the ships that matches a specific shjp class + * @param {string} shipClass class of the ship you want to search for (Case Sensitive) + * @memberof SaratogaShips + * @returns {Array | null} + */ + getAllByClass(shipClass) { + if (!this.rawCache) return null; + return this.rawCache.filter(d => d.class === shipClass); + } + + /** + * Lists all the ships that matches a specific ship nationality + * @param {string} nationality nationality of the ship you want to search for (Case Sensitive) + * @memberof SaratogaShips + * @returns {Array | null} + */ + getAllByNationality(nationality) { + if (!this.rawCache) return null; + return this.rawCache.filter(d => d.nationality === nationality); + } + + /** + * Lists all the ships that matches a specific ship hull type + * @param {string} hullType hullType of the ship you want to search for (Case Sensitive) + * @memberof SaratogaShips + * @returns {Array | null} + */ + getAllByHullType(hullType) { + if (!this.rawCache) return null; + return this.rawCache.filter(d => d.hullType === hullType); + } + + /** + * Lists all the ship that matches a specific rarity + * @param {string} rarity rarity of the ship you want to search for (Case Sensitive) + * @memberof SaratogaShips + * @returns {Array | null} + */ + getAllByRarity(rarity) { + if (!this.rawCache) return null; + return this.rawCache.filter(d => d.rarity === rarity); + } + + /** + * Fetches a specific ship via its id + * @param {number} id id of the ship you want to fetch + * @memberof SaratogaShips + * @returns {Ship | null} + */ + getById(id) { + if (!this.rawCache) return null; + const ship = this.rawCache.find(d => d.id === id); + if (!ship.length) return null; + return ship; + } + + /** + * Searches for a specific ship. (EN, CN, JP, KR names are supported) + * @param {string} name name of the ship you want to search for + * @param {number} [limit=10] limit of the search results + * @memberof SaratogaShips + * @returns {Ship | null} + */ + searchShipByName(name, limit = 10) { + if (!this.cache) return null; + const possibleShips = this.cache.search(name, { limit }); + if (!possibleShips.length) return null; + return possibleShips; + } + /** + * Custom filter for ship data + * @param {requestCallback} callback the callback that handles the response + */ + filter(callback) { + if (!this.rawCache) return null; + return this.rawCache.filter(callback); + } + /** + * Custom search for data in Fuse instance + * @param {any} options Fuse search options + */ + search(options) { + if (!this.rawCache) return null; + return this.cache.search(options); + } +} +module.exports = LegacyShips; \ No newline at end of file diff --git a/src/store/SaratogaStore.js b/src/store/SaratogaStore.js index 0ec7053..e3b14c2 100644 --- a/src/store/SaratogaStore.js +++ b/src/store/SaratogaStore.js @@ -5,6 +5,8 @@ const SaratogaShips = require('./SaratogaShips'); const ShipExtAll = require('./SaratogaShips'); const SaratogaEquipments = require('./SaratogaEquipments'); const SaratogaUtil = require('../util/SaratogaUtil'); +const LegacyShips = require('./LegacyShips'); +const LegacyEquipments = require('./LegacyEquipments'); /** * Saratoga, the starting point of this API @@ -47,6 +49,11 @@ class SaratogaStore { * @type {SaratogaBarrages} */ // this.barrages = new SaratogaBarrages TODO + /** + * Legacy API instances + */ + this.legacyShips = new LegacyShips(this) + this.legacyEquipments = new LegacyEquipments(this) /** * Updater Class for the local data for this store * @type {SaratogaUpdater} diff --git a/tests/Client.js b/tests/Client.js deleted file mode 100644 index 2fbc0a9..0000000 --- a/tests/Client.js +++ /dev/null @@ -1,10 +0,0 @@ -const { Saratoga } = require('../index'); - -const saratoga = new Saratoga(); - -saratoga.on('ready', () => { - console.log('== Ships ==> ', saratoga.ships.searchShipByName('saratoga')); - console.log('== Equipments ==> ', saratoga.equipments.searchByEquipmentName('130mm 1932')); -}); -saratoga.on('debug', console.log); -saratoga.on('error', console.error); diff --git a/tests/LegacyClient.js b/tests/LegacyClient.js new file mode 100644 index 0000000..8579f15 --- /dev/null +++ b/tests/LegacyClient.js @@ -0,0 +1,10 @@ +const { Saratoga } = require('../index'); + +const saratoga = new Saratoga(); + +saratoga.on('ready', () => { + console.log('== Ships ==> ', saratoga.legacyShips.searchShipByName('saratoga')); + console.log('== Equipments ==> ', saratoga.legacyEquipments.searchByEquipmentName('130mm 1932')); +}); +saratoga.on('debug', console.log); +saratoga.on('error', console.error); From db084d85c804a3812d45bc90ea33a2be0c3a78f7 Mon Sep 17 00:00:00 2001 From: 0t4u <61939142+0t4u@users.noreply.github.com> Date: Mon, 10 May 2021 18:51:34 +0800 Subject: [PATCH 12/14] Add barrage functions This version adds: - Barrage functions - Typings for voicelines, barrages, and ships - Regenerated docs - Partially added JP info --- docs/js/docma-web.js | 2 +- src/Saratoga.js | 21 +++- src/store/SaratogaBarrages.js | 98 +++++++++++++++++- src/store/SaratogaChapters.js | 19 +++- src/store/SaratogaStore.js | 31 +++++- src/store/SaratogaVoicelines.js | 19 +++- src/types/barrage.d.ts | 21 ++++ src/types/ship.d.ts | 170 ++++++++++++++++++++++++++++++++ src/types/voiceline.d.ts | 13 +++ src/updater/SaratogaUpdater.js | 4 + 10 files changed, 386 insertions(+), 12 deletions(-) create mode 100644 src/types/barrage.d.ts create mode 100644 src/types/ship.d.ts create mode 100644 src/types/voiceline.d.ts diff --git a/docs/js/docma-web.js b/docs/js/docma-web.js index d74c6b8..8a77ebc 100644 --- a/docs/js/docma-web.js +++ b/docs/js/docma-web.js @@ -44,6 +44,6 @@ dust.filters=dust.filters||{},dust.filters.$pt=function(e){return DocmaWeb.Utils DocmaWeb.version = "3.2.2"; return DocmaWeb; })(); -var docma = Object.freeze(new DocmaWeb({"version":"3.2.2","routes":[{"id":"api:","type":"api","name":"_def_","path":"?api","contentPath":null,"sourceType":"js"},{"id":"content:readme","type":"content","name":"readme","path":"?content=readme","contentPath":"content/readme.html","sourceType":"md"}],"apis":{"_def_":{"documentation":[{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[226,334],"filename":"LegacyEquipments.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000228","name":"LegacyEquipments","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"LegacyEquipments","longname":"LegacyEquipments","kind":"class","scope":"global","$longname":"LegacyEquipments","$kind":"constructor","$docmaLink":"?api#LegacyEquipments"},{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[211,319],"filename":"LegacyShips.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000421","name":"LegacyShips","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"LegacyShips","longname":"LegacyShips","kind":"class","scope":"global","$longname":"LegacyShips","$kind":"constructor","$docmaLink":"?api#LegacyShips"},{"comment":"/**\n * Saratoga, the starting point of this API\n * @class Saratoga\n * @extends {EventEmitter}\n */","meta":{"filename":"Saratoga.js","lineno":4,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Saratoga, the starting point of this API

    ","kind":"class","name":"Saratoga","augments":["EventEmitter"],"longname":"Saratoga","scope":"global","$longname":"Saratoga","$kind":"class","$docmaLink":"?api#Saratoga","$members":[{"comment":"/**\n * Barrage related getters for this store\n * @type {SaratogaBarrages}\n */","meta":{"range":[2891,2987],"filename":"Saratoga.js","lineno":108,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000166","name":"Saratoga#barrages","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Barrage related getters for this store

    ","type":{"names":["SaratogaBarrages"]},"name":"barrages","longname":"Saratoga#barrages","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#barrages","$kind":"property","$docmaLink":"?api#Saratoga#barrages"},{"comment":"/**\n * Chapters related getters for this store\n * @type {SaratogaChapters}\n */","meta":{"range":[2493,2589],"filename":"Saratoga.js","lineno":92,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000132","name":"Saratoga#chapters","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Chapters related getters for this store

    ","type":{"names":["SaratogaChapters"]},"name":"chapters","longname":"Saratoga#chapters","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#chapters","$kind":"property","$docmaLink":"?api#Saratoga#chapters"},{"comment":"/**\n * Azur Lane's Equipment related getter methods\n * @type {SaratogaEquipments}\n */","meta":{"range":[2293,2393],"filename":"Saratoga.js","lineno":84,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000115","name":"Saratoga#equipments","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Azur Lane's Equipment related getter methods

    ","type":{"names":["SaratogaEquipments"]},"name":"equipments","longname":"Saratoga#equipments","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#equipments","$kind":"property","$docmaLink":"?api#Saratoga#equipments"},{"comment":"/**\n * Azur Lane's Equipment related getter methods with LegacyAPI\n * @type {SaratogaLegacyEquipments}\n */","meta":{"range":[3335,3447],"filename":"Saratoga.js","lineno":124,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000200","name":"Saratoga#legacyEquipments","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Azur Lane's Equipment related getter methods with LegacyAPI

    ","type":{"names":["SaratogaLegacyEquipments"]},"name":"legacyEquipments","longname":"Saratoga#legacyEquipments","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#legacyEquipments","$kind":"property","$docmaLink":"?api#Saratoga#legacyEquipments"},{"comment":"/**\n * Azur Lane's Ship related getter methods with LegacyAPI\n * @type {SaratogaLegacyShips}\n */","meta":{"range":[3105,3207],"filename":"Saratoga.js","lineno":116,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000183","name":"Saratoga#legacyShips","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Azur Lane's Ship related getter methods with LegacyAPI

    ","type":{"names":["SaratogaLegacyShips"]},"name":"legacyShips","longname":"Saratoga#legacyShips","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#legacyShips","$kind":"property","$docmaLink":"?api#Saratoga#legacyShips"},{"comment":"/**\n * If Saratoga is ready to operate\n * @type {Boolean}\n */","meta":{"range":[1910,1997],"filename":"Saratoga.js","lineno":67,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000080","name":"Saratoga#ready","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    If Saratoga is ready to operate

    ","type":{"names":["Boolean"]},"name":"ready","longname":"Saratoga#ready","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#ready","$kind":"property","$docmaLink":"?api#Saratoga#ready"},{"comment":"/**\n * Azur Lane's Ship related getter methods\n * @type {SaratogaShips}\n */","meta":{"range":[2095,2185],"filename":"Saratoga.js","lineno":75,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000098","name":"Saratoga#ships","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Azur Lane's Ship related getter methods

    ","type":{"names":["SaratogaShips"]},"name":"ships","longname":"Saratoga#ships","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#ships","$kind":"property","$docmaLink":"?api#Saratoga#ships"},{"comment":"/**\n * Contains methods and props for managing cached data\n * @type {SaratogaStore}\n */","meta":{"range":[567,603],"filename":"Saratoga.js","lineno":19,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000053","name":"this.store","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Contains methods and props for managing cached data

    ","type":{"names":["SaratogaStore"]},"name":"store","longname":"Saratoga#store","kind":"member","memberof":"Saratoga","scope":"instance","$longname":"Saratoga#store","$kind":"property","$docmaLink":"?api#Saratoga#store"},{"comment":"/**\n * Contains methods for updating Saratoga's local data & cache\n * @type {SaratogaUpdater}\n */","meta":{"range":[1770,1826],"filename":"Saratoga.js","lineno":59,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000070","name":"Saratoga#updater","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Contains methods for updating Saratoga's local data & cache

    ","type":{"names":["SaratogaUpdater"]},"name":"updater","longname":"Saratoga#updater","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#updater","$kind":"property","$docmaLink":"?api#Saratoga#updater"},{"comment":"/**\n * Voiceline related getters for this store\n * @type {SaratogaVoicelines}\n */","meta":{"range":[2692,2792],"filename":"Saratoga.js","lineno":100,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000149","name":"Saratoga#voicelines","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Voiceline related getters for this store

    ","type":{"names":["SaratogaVoicelines"]},"name":"voicelines","longname":"Saratoga#voicelines","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#voicelines","$kind":"property","$docmaLink":"?api#Saratoga#voicelines"},{"comment":"/**\n * Emitted when there is a debug data\n * @event Saratoga#debug\n * @param {string} message Debug message\n * @memberof Saratoga\n */","meta":{"filename":"Saratoga.js","lineno":23,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is a debug data

    ","kind":"event","name":"debug","params":[{"type":{"names":["string"]},"description":"

    Debug message

    ","name":"message"}],"memberof":"Saratoga","longname":"Saratoga#event:debug","scope":"instance","$longname":"Saratoga#event:debug","$kind":"event","$docmaLink":"?api#Saratoga#event:debug"},{"comment":"/**\n * Emitted when there is a pesky error\n * @event Saratoga#error\n * @param {Error} error The error encountered.\n * @memberof Saratoga\n * @example\n * Saratoga.on('error', console.error);\n */","meta":{"filename":"Saratoga.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is a pesky error

    ","kind":"event","name":"error","params":[{"type":{"names":["Error"]},"description":"

    The error encountered.

    ","name":"error"}],"memberof":"Saratoga","examples":["Saratoga.on('error', console.error);"],"longname":"Saratoga#event:error","scope":"instance","$longname":"Saratoga#event:error","$kind":"event","$docmaLink":"?api#Saratoga#event:error"},{"comment":"/**\n * Emitted when Saratoga is ready\n * @event Saratoga#ready\n * @memberof Saratoga\n */","meta":{"filename":"Saratoga.js","lineno":49,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when Saratoga is ready

    ","kind":"event","name":"ready","memberof":"Saratoga","longname":"Saratoga#event:ready","scope":"instance","$longname":"Saratoga#event:ready","$kind":"event","$docmaLink":"?api#Saratoga#event:ready"},{"comment":"/**\n * Emitted when there is an update available for local data. Only available when Saratoga is initialized with notifyForNewUpdates set to true\n * @event Saratoga#updateAvailable\n * @param {Object} data What data needs updating\n * @memberof Saratoga\n * @example\n * Saratoga.on('updateAvailable', (data) => {\n * if (data.shipUpdateAvailable || data.equipmentUpdateAvailable) {\n * // handle update\n * }\n * })\n */","meta":{"filename":"Saratoga.js","lineno":37,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    Emitted when there is an update available for local data. Only available when Saratoga is initialized with notifyForNewUpdates set to true

    ","kind":"event","name":"updateAvailable","params":[{"type":{"names":["Object"]},"description":"

    What data needs updating

    ","name":"data"}],"memberof":"Saratoga","examples":["Saratoga.on('updateAvailable', (data) => {\n if (data.shipUpdateAvailable || data.equipmentUpdateAvailable) {\n // handle update\n }\n})"],"longname":"Saratoga#event:updateAvailable","scope":"instance","$longname":"Saratoga#event:updateAvailable","$kind":"event","$docmaLink":"?api#Saratoga#event:updateAvailable"}],"$constructor":{"comment":"/**\n * @param {Object} options Object with a single parameter, which is notifyForNewUpdates, which is a boolean\n */","meta":{"range":[366,679],"filename":"Saratoga.js","lineno":13,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000040","name":"Saratoga","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"params":[{"type":{"names":["Object"]},"description":"

    Object with a single parameter, which is notifyForNewUpdates, which is a boolean

    ","name":"options"}],"name":"Saratoga","longname":"Saratoga","kind":"class","scope":"global","$longname":"Saratoga","$kind":"constructor","$docmaLink":"?api#Saratoga"}},{"comment":"/**\n * Equipment related getters for Saratoga with LegacyAPI\n * @class SaratogaEquipments\n */","meta":{"filename":"LegacyEquipments.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Equipment related getters for Saratoga with LegacyAPI

    ","kind":"class","name":"SaratogaEquipments","longname":"SaratogaEquipments","scope":"global","$longname":"SaratogaEquipments","$kind":"class","$docmaLink":"?api#SaratogaEquipments","$members":[{"comment":"/**\n * Get an unfiltered equipment list\n */","meta":{"range":[2442,2526],"filename":"SaratogaEquipments.js","lineno":79,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000916","name":"SaratogaEquipments#all","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Get an unfiltered equipment list

    ","name":"all","longname":"SaratogaEquipments#all","kind":"function","memberof":"SaratogaEquipments","scope":"instance","params":[],"$longname":"SaratogaEquipments#all","$kind":"method","$docmaLink":"?api#SaratogaEquipments#all"},{"comment":"/**\n * Lists the equipments by category\n * @param {string} category name of the category you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[751,885],"filename":"SaratogaEquipments.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000760","name":"SaratogaEquipments#category","type":"MethodDefinition","paramnames":["category"]},"vars":{"":null}},"description":"

    Lists the equipments by category

    ","params":[{"type":{"names":["string"]},"description":"

    name of the category you want to search for

    ","name":"category"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"category","longname":"SaratogaEquipments#category","kind":"function","scope":"instance","$longname":"SaratogaEquipments#category","$kind":"method","$docmaLink":"?api#SaratogaEquipments#category"},{"comment":"/**\n * Custom filter for equipment data\n * @param {requestCallback} callback the callback that handles the response\n */","meta":{"range":[2668,2780],"filename":"SaratogaEquipments.js","lineno":88,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000931","name":"SaratogaEquipments#filter","type":"MethodDefinition","paramnames":["callback"]},"vars":{"":null}},"description":"

    Custom filter for equipment data

    ","params":[{"type":{"names":["requestCallback"]},"description":"

    the callback that handles the response

    ","name":"callback"}],"name":"filter","longname":"SaratogaEquipments#filter","kind":"function","memberof":"SaratogaEquipments","scope":"instance","$longname":"SaratogaEquipments#filter","$kind":"method","$docmaLink":"?api#SaratogaEquipments#filter"},{"comment":"/**\n * Lists the equipments by category\n * @param {string} category name of the category you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[764,906],"filename":"LegacyEquipments.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000281","name":"LegacyEquipments#getAllByCategory","type":"MethodDefinition","paramnames":["category"]},"vars":{"":null}},"description":"

    Lists the equipments by category

    ","params":[{"type":{"names":["string"]},"description":"

    name of the category you want to search for

    ","name":"category"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"LegacyEquipments#getAllByCategory","longname":"SaratogaEquipments.LegacyEquipments#getAllByCategory","kind":"function","scope":"static","$longname":"SaratogaEquipments.LegacyEquipments#getAllByCategory","$kind":"method","$docmaLink":"?api#SaratogaEquipments.LegacyEquipments#getAllByCategory"},{"comment":"/**\n * Lists the equipments by nationality\n * @param {string} nationality naitionality name of the equipments you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[1143,1297],"filename":"LegacyEquipments.js","lineno":40,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000307","name":"LegacyEquipments#getAllByNationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists the equipments by nationality

    ","params":[{"type":{"names":["string"]},"description":"

    naitionality name of the equipments you want to search for

    ","name":"nationality"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"LegacyEquipments#getAllByNationality","longname":"SaratogaEquipments.LegacyEquipments#getAllByNationality","kind":"function","scope":"static","$longname":"SaratogaEquipments.LegacyEquipments#getAllByNationality","$kind":"method","$docmaLink":"?api#SaratogaEquipments.LegacyEquipments#getAllByNationality"},{"comment":"/**\n * Searches for a specific equipment. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the equipment you want to search for\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaEquipments\n * @returns {Equipment | null}\n */","meta":{"range":[1604,1848],"filename":"LegacyEquipments.js","lineno":52,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000333","name":"LegacyEquipments#searchByEquipmentName","type":"MethodDefinition","paramnames":["name","limit"]},"vars":{"":null}},"description":"

    Searches for a specific equipment. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the equipment you want to search for

    ","name":"name"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Equipment","null"]}}],"name":"LegacyEquipments#searchByEquipmentName","longname":"SaratogaEquipments.LegacyEquipments#searchByEquipmentName","kind":"function","scope":"static","$longname":"SaratogaEquipments.LegacyEquipments#searchByEquipmentName","$kind":"method","$docmaLink":"?api#SaratogaEquipments.LegacyEquipments#searchByEquipmentName"},{"comment":"/**\n * Searches for a specific equipment. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the equipment you want to search for\n * @param {string} language optional language to search by\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaEquipments\n * @returns {Equipment | null}\n */","meta":{"range":[1638,2380],"filename":"SaratogaEquipments.js","lineno":53,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000812","name":"SaratogaEquipments#name","type":"MethodDefinition","paramnames":["name","language","limit"]},"vars":{"":null}},"description":"

    Searches for a specific equipment. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the equipment you want to search for

    ","name":"name"},{"type":{"names":["string"]},"description":"

    optional language to search by

    ","name":"language"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Equipment","null"]}}],"name":"name","longname":"SaratogaEquipments#name","kind":"function","scope":"instance","$longname":"SaratogaEquipments#name","$kind":"method","$docmaLink":"?api#SaratogaEquipments#name"},{"comment":"/**\n * Lists the equipments by nationality\n * @param {string} nationality naitionality name of the equipments you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[1122,1268],"filename":"SaratogaEquipments.js","lineno":40,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000786","name":"SaratogaEquipments#nationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists the equipments by nationality

    ","params":[{"type":{"names":["string"]},"description":"

    naitionality name of the equipments you want to search for

    ","name":"nationality"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"nationality","longname":"SaratogaEquipments#nationality","kind":"function","scope":"instance","$longname":"SaratogaEquipments#nationality","$kind":"method","$docmaLink":"?api#SaratogaEquipments#nationality"},{"comment":"/**\n * Custom search for data in Fuse instance\n * @param {any} options Fuse search options\n */","meta":{"range":[2896,3003],"filename":"SaratogaEquipments.js","lineno":96,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000951","name":"SaratogaEquipments#search","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"

    Custom search for data in Fuse instance

    ","params":[{"type":{"names":["any"]},"description":"

    Fuse search options

    ","name":"options"}],"name":"search","longname":"SaratogaEquipments#search","kind":"function","memberof":"SaratogaEquipments","scope":"instance","$longname":"SaratogaEquipments#search","$kind":"method","$docmaLink":"?api#SaratogaEquipments#search"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[213,321],"filename":"SaratogaEquipments.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000707","name":"SaratogaEquipments","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaEquipments","longname":"SaratogaEquipments","kind":"class","scope":"global","$longname":"SaratogaEquipments","$kind":"constructor","$docmaLink":"?api#SaratogaEquipments"}},{"comment":"/**\n * Equipment related getters for Saratoga\n * @class SaratogaEquipments\n */","meta":{"filename":"SaratogaEquipments.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Equipment related getters for Saratoga

    ","kind":"class","name":"SaratogaEquipments","longname":"SaratogaEquipments","scope":"global","$longname":"SaratogaEquipments","$kind":"class","$docmaLink":"?api#SaratogaEquipments"},{"comment":"/**\n * Ship related getters for Saratoga with LegacyAPI\n * @class SaratogaShips\n */","meta":{"filename":"LegacyShips.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Ship related getters for Saratoga with LegacyAPI

    ","kind":"class","name":"SaratogaShips","longname":"SaratogaShips","scope":"global","$longname":"SaratogaShips","$kind":"class","$docmaLink":"?api#SaratogaShips","$members":[{"comment":"/**\n * Custom filter for ship data\n * @param {requestCallback} callback the callback that handles the response\n */","meta":{"range":[2763,2875],"filename":"SaratogaShips.js","lineno":94,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001262","name":"SaratogaShips#filter","type":"MethodDefinition","paramnames":["callback"]},"vars":{"":null}},"description":"

    Custom filter for ship data

    ","params":[{"type":{"names":["requestCallback"]},"description":"

    the callback that handles the response

    ","name":"callback"}],"name":"filter","longname":"SaratogaShips#filter","kind":"function","memberof":"SaratogaShips","scope":"instance","$longname":"SaratogaShips#filter","$kind":"method","$docmaLink":"?api#SaratogaShips#filter"},{"comment":"/**\n * Search from all ships\n * @param {number | string} id \n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[666,1089],"filename":"SaratogaShips.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001035","name":"SaratogaShips#get","type":"MethodDefinition","paramnames":["id"]},"vars":{"":null}},"description":"

    Search from all ships

    ","params":[{"type":{"names":["number","string"]},"name":"id"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"get","longname":"SaratogaShips#get","kind":"function","scope":"instance","$longname":"SaratogaShips#get","$kind":"method","$docmaLink":"?api#SaratogaShips#get"},{"comment":"/**\n * Fetches a specific ship via its id\n * @param {number} id id of the ship you want to fetch\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[1273,1447],"filename":"SaratogaShips.js","lineno":50,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001108","name":"SaratogaShips#id","type":"MethodDefinition","paramnames":["id"]},"vars":{"":null}},"description":"

    Fetches a specific ship via its id

    ","params":[{"type":{"names":["number"]},"description":"

    id of the ship you want to fetch

    ","name":"id"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"id","longname":"SaratogaShips#id","kind":"function","scope":"instance","$longname":"SaratogaShips#id","$kind":"method","$docmaLink":"?api#SaratogaShips#id"},{"comment":"/**\n * Lists all the ships that matches a specific shjp class\n * @param {string} shipClass class of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[774,912],"filename":"LegacyShips.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000474","name":"LegacyShips#getAllByClass","type":"MethodDefinition","paramnames":["shipClass"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific shjp class

    ","params":[{"type":{"names":["string"]},"description":"

    class of the ship you want to search for (Case Sensitive)

    ","name":"shipClass"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"LegacyShips#getAllByClass","longname":"SaratogaShips.LegacyShips#getAllByClass","kind":"function","scope":"static","$longname":"SaratogaShips.LegacyShips#getAllByClass","$kind":"method","$docmaLink":"?api#SaratogaShips.LegacyShips#getAllByClass"},{"comment":"/**\n * Lists all the ships that matches a specific ship hull type\n * @param {string} hullType hullType of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1572,1714],"filename":"LegacyShips.js","lineno":51,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000526","name":"LegacyShips#getAllByHullType","type":"MethodDefinition","paramnames":["hullType"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship hull type

    ","params":[{"type":{"names":["string"]},"description":"

    hullType of the ship you want to search for (Case Sensitive)

    ","name":"hullType"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"LegacyShips#getAllByHullType","longname":"SaratogaShips.LegacyShips#getAllByHullType","kind":"function","scope":"static","$longname":"SaratogaShips.LegacyShips#getAllByHullType","$kind":"method","$docmaLink":"?api#SaratogaShips.LegacyShips#getAllByHullType"},{"comment":"/**\n * Lists all the ships that matches a specific ship nationality\n * @param {string} nationality nationality of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1169,1323],"filename":"LegacyShips.js","lineno":40,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000500","name":"LegacyShips#getAllByNationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship nationality

    ","params":[{"type":{"names":["string"]},"description":"

    nationality of the ship you want to search for (Case Sensitive)

    ","name":"nationality"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"LegacyShips#getAllByNationality","longname":"SaratogaShips.LegacyShips#getAllByNationality","kind":"function","scope":"static","$longname":"SaratogaShips.LegacyShips#getAllByNationality","$kind":"method","$docmaLink":"?api#SaratogaShips.LegacyShips#getAllByNationality"},{"comment":"/**\n * Lists all the ship that matches a specific rarity\n * @param {string} rarity rarity of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1950,2084],"filename":"LegacyShips.js","lineno":62,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000552","name":"LegacyShips#getAllByRarity","type":"MethodDefinition","paramnames":["rarity"]},"vars":{"":null}},"description":"

    Lists all the ship that matches a specific rarity

    ","params":[{"type":{"names":["string"]},"description":"

    rarity of the ship you want to search for (Case Sensitive)

    ","name":"rarity"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"LegacyShips#getAllByRarity","longname":"SaratogaShips.LegacyShips#getAllByRarity","kind":"function","scope":"static","$longname":"SaratogaShips.LegacyShips#getAllByRarity","$kind":"method","$docmaLink":"?api#SaratogaShips.LegacyShips#getAllByRarity"},{"comment":"/**\n * Fetches a specific ship via its id\n * @param {number} id id of the ship you want to fetch\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[2268,2447],"filename":"LegacyShips.js","lineno":73,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000578","name":"LegacyShips#getById","type":"MethodDefinition","paramnames":["id"]},"vars":{"":null}},"description":"

    Fetches a specific ship via its id

    ","params":[{"type":{"names":["number"]},"description":"

    id of the ship you want to fetch

    ","name":"id"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"LegacyShips#getById","longname":"SaratogaShips.LegacyShips#getById","kind":"function","scope":"static","$longname":"SaratogaShips.LegacyShips#getById","$kind":"method","$docmaLink":"?api#SaratogaShips.LegacyShips#getById"},{"comment":"/**\n * Searches for a specific ship. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the ship you want to search for\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[2734,2959],"filename":"LegacyShips.js","lineno":87,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000615","name":"LegacyShips#searchShipByName","type":"MethodDefinition","paramnames":["name","limit"]},"vars":{"":null}},"description":"

    Searches for a specific ship. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the ship you want to search for

    ","name":"name"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"LegacyShips#searchShipByName","longname":"SaratogaShips.LegacyShips#searchShipByName","kind":"function","scope":"static","$longname":"SaratogaShips.LegacyShips#searchShipByName","$kind":"method","$docmaLink":"?api#SaratogaShips.LegacyShips#searchShipByName"},{"comment":"/**\n * Searches for a specific ship. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the ship you want to search for\n * @param {string} language optional language to search by\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[1797,2627],"filename":"SaratogaShips.js","lineno":65,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001145","name":"SaratogaShips#name","type":"MethodDefinition","paramnames":["name","language","limit"]},"vars":{"":null}},"description":"

    Searches for a specific ship. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the ship you want to search for

    ","name":"name"},{"type":{"names":["string"]},"description":"

    optional language to search by

    ","name":"language"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"name","longname":"SaratogaShips#name","kind":"function","scope":"instance","$longname":"SaratogaShips#name","$kind":"method","$docmaLink":"?api#SaratogaShips#name"},{"comment":"/**\n * Custom search for data in Fuse instance\n * @param {any} options Fuse search options\n */","meta":{"range":[2991,3098],"filename":"SaratogaShips.js","lineno":102,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001282","name":"SaratogaShips#search","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"

    Custom search for data in Fuse instance

    ","params":[{"type":{"names":["any"]},"description":"

    Fuse search options

    ","name":"options"}],"name":"search","longname":"SaratogaShips#search","kind":"function","memberof":"SaratogaShips","scope":"instance","$longname":"SaratogaShips#search","$kind":"method","$docmaLink":"?api#SaratogaShips#search"},{"comment":"/**\n * Lists all the ships that matches a specific shjp class\n * @param {string} shipClass class of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[4410,4540],"filename":"SaratogaShips.js","lineno":166,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001439","name":"ShipExtFilter#class","type":"MethodDefinition","paramnames":["shipClass"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific shjp class

    ","params":[{"type":{"names":["string"]},"description":"

    class of the ship you want to search for (Case Sensitive)

    ","name":"shipClass"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"ShipExtFilter#class","longname":"SaratogaShips.ShipExtFilter#class","kind":"function","scope":"static","$longname":"SaratogaShips.ShipExtFilter#class","$kind":"method","$docmaLink":"?api#SaratogaShips.ShipExtFilter#class"},{"comment":"/**\n * Lists all the ships that matches a specific ship nationality\n * @param {string} nationality nationality of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[4797,4943],"filename":"SaratogaShips.js","lineno":177,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001465","name":"ShipExtFilter#nationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship nationality

    ","params":[{"type":{"names":["string"]},"description":"

    nationality of the ship you want to search for (Case Sensitive)

    ","name":"nationality"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"ShipExtFilter#nationality","longname":"SaratogaShips.ShipExtFilter#nationality","kind":"function","scope":"static","$longname":"SaratogaShips.ShipExtFilter#nationality","$kind":"method","$docmaLink":"?api#SaratogaShips.ShipExtFilter#nationality"},{"comment":"/**\n * Lists all the ship that matches a specific rarity\n * @param {string} rarity rarity of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[5558,5684],"filename":"SaratogaShips.js","lineno":199,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001517","name":"ShipExtFilter#rarity","type":"MethodDefinition","paramnames":["rarity"]},"vars":{"":null}},"description":"

    Lists all the ship that matches a specific rarity

    ","params":[{"type":{"names":["string"]},"description":"

    rarity of the ship you want to search for (Case Sensitive)

    ","name":"rarity"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"ShipExtFilter#rarity","longname":"SaratogaShips.ShipExtFilter#rarity","kind":"function","scope":"static","$longname":"SaratogaShips.ShipExtFilter#rarity","$kind":"method","$docmaLink":"?api#SaratogaShips.ShipExtFilter#rarity"},{"comment":"/**\n * Lists all the ships that matches a specific ship hull type\n * @param {string} hullType hullType of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[5192,5322],"filename":"SaratogaShips.js","lineno":188,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001491","name":"ShipExtFilter#type","type":"MethodDefinition","paramnames":["hullType"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship hull type

    ","params":[{"type":{"names":["string"]},"description":"

    hullType of the ship you want to search for (Case Sensitive)

    ","name":"hullType"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"ShipExtFilter#type","longname":"SaratogaShips.ShipExtFilter#type","kind":"function","scope":"static","$longname":"SaratogaShips.ShipExtFilter#type","$kind":"method","$docmaLink":"?api#SaratogaShips.ShipExtFilter#type"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[198,306],"filename":"SaratogaShips.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000982","name":"SaratogaShips","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaShips","longname":"SaratogaShips","kind":"class","scope":"global","$longname":"SaratogaShips","$kind":"constructor","$docmaLink":"?api#SaratogaShips"}},{"comment":"/**\n * Ship related getters for Saratoga\n * @class SaratogaShips\n */","meta":{"filename":"SaratogaShips.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Ship related getters for Saratoga

    ","kind":"class","name":"SaratogaShips","longname":"SaratogaShips","scope":"global","$longname":"SaratogaShips","$kind":"class","$docmaLink":"?api#SaratogaShips"},{"comment":"/**\n * Saratoga, the starting point of this API\n * @class SaratogaStore\n */","meta":{"filename":"SaratogaStore.js","lineno":11,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Saratoga, the starting point of this API

    ","kind":"class","name":"SaratogaStore","longname":"SaratogaStore","scope":"global","$longname":"SaratogaStore","$kind":"class","$docmaLink":"?api#SaratogaStore","$members":[{"comment":"/**\n * Equipment related getters for this store\n * @type {SaratogaEquipments}\n */","meta":{"range":[1203,1249],"filename":"SaratogaStore.js","lineno":36,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001651","name":"this.equipments","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Equipment related getters for this store

    ","type":{"names":["SaratogaEquipments"]},"name":"equipments","longname":"SaratogaStore#equipments","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#equipments","$kind":"property","$docmaLink":"?api#SaratogaStore#equipments"},{"comment":"/**\n * Legacy API instances\n */","meta":{"range":[1813,1853],"filename":"SaratogaStore.js","lineno":55,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001659","name":"this.legacyShips","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Legacy API instances

    ","name":"legacyShips","longname":"SaratogaStore#legacyShips","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#legacyShips","$kind":"property","$docmaLink":"?api#SaratogaStore#legacyShips"},{"comment":"/**\n * If this store is already ready to operate\n * @type {Boolean}\n */","meta":{"range":[2193,2211],"filename":"SaratogaStore.js","lineno":66,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001683","name":"this.ready","type":"Literal","value":false,"paramnames":[]}},"description":"

    If this store is already ready to operate

    ","type":{"names":["Boolean"]},"name":"ready","longname":"SaratogaStore#ready","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#ready","$kind":"property","$docmaLink":"?api#SaratogaStore#ready"},{"comment":"/**\n * The saratoga instance that generated this instance\n * @type {Saratoga}\n */","meta":{"range":[807,831],"filename":"SaratogaStore.js","lineno":24,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001617","name":"this.saratoga","type":"Identifier","value":"saratoga","paramnames":[]}},"description":"

    The saratoga instance that generated this instance

    ","type":{"names":["Saratoga"]},"name":"saratoga","longname":"SaratogaStore#saratoga","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#saratoga","$kind":"property","$docmaLink":"?api#SaratogaStore#saratoga"},{"comment":"/**\n * Ship related getters for this store\n * @type {SaratogaShips}\n */","meta":{"range":[945,981],"filename":"SaratogaStore.js","lineno":29,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001623","name":"this.ships","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Ship related getters for this store

    ","type":{"names":["SaratogaShips"]},"name":"ships","longname":"SaratogaStore#ships","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#ships","$kind":"property","$docmaLink":"?api#SaratogaStore#ships"},{"comment":"/**\n * Updater Class for the local data for this store\n * @type {SaratogaUpdater}\n */","meta":{"range":[2039,2079],"filename":"SaratogaStore.js","lineno":61,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001675","name":"this.updater","type":"NewExpression","value":"","paramnames":[]}},"description":"

    Updater Class for the local data for this store

    ","type":{"names":["SaratogaUpdater"]},"name":"updater","longname":"SaratogaStore#updater","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#updater","$kind":"property","$docmaLink":"?api#SaratogaStore#updater"}],"$constructor":{"comment":"/**\n * @param {Saratoga} saratoga The saratoga class that generated this instance\n */","meta":{"range":[661,3044],"filename":"SaratogaStore.js","lineno":19,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001611","name":"SaratogaStore","type":"MethodDefinition","paramnames":["saratoga"]},"vars":{"":null}},"params":[{"type":{"names":["Saratoga"]},"description":"

    The saratoga class that generated this instance

    ","name":"saratoga"}],"name":"SaratogaStore","longname":"SaratogaStore","kind":"class","scope":"global","$longname":"SaratogaStore","$kind":"constructor","$docmaLink":"?api#SaratogaStore"}},{"comment":"/**\n * Manages the local data & cache updates\n * @class SaratogaUpdater\n */","meta":{"filename":"SaratogaUpdater.js","lineno":5,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{}},"description":"

    Manages the local data & cache updates

    ","kind":"class","name":"SaratogaUpdater","longname":"SaratogaUpdater","scope":"global","$longname":"SaratogaUpdater","$kind":"class","$docmaLink":"?api#SaratogaUpdater","$members":[{"comment":"/**\n * Checks if there is new updates for ship or equipment data\n * @memberof SaratogaUpdater\n * @returns {Promise}\n * @example\n * const api = new Saratoga();\n * api.updater.checkForUpdate()\n * .then((response) => {\n * if (response.shipUpdateAvailable || response.equipmentUpdateAvailable) console.log('update available');\n * })\n */","meta":{"range":[3577,3989],"filename":"SaratogaUpdater.js","lineno":90,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002694","name":"SaratogaUpdater#checkForUpdate","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Checks if there is new updates for ship or equipment data

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"examples":["const api = new Saratoga();\napi.updater.checkForUpdate()\n .then((response) => {\n if (response.shipUpdateAvailable || response.equipmentUpdateAvailable) console.log('update available');\n })"],"name":"checkForUpdate","longname":"SaratogaUpdater#checkForUpdate","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#checkForUpdate","$kind":"method","$docmaLink":"?api#SaratogaUpdater#checkForUpdate"},{"comment":"/**\n * Updates the Cached Data, loaded from the local files of Saratoga\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[5374,5549],"filename":"SaratogaUpdater.js","lineno":135,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002814","name":"SaratogaUpdater#updateCache","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Cached Data, loaded from the local files of Saratoga

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateCache","longname":"SaratogaUpdater#updateCache","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateCache","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateCache"},{"comment":"/**\n * Updates the Local Files & Cached Data in one method, good for single process scenarios as it's easy. Not for multi sharded programs that has its own Saratoga instance per shard.\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[3070,3176],"filename":"SaratogaUpdater.js","lineno":74,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002678","name":"SaratogaUpdater#updateDataAndCache","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Local Files & Cached Data in one method, good for single process scenarios as it's easy. Not for multi sharded programs that has its own Saratoga instance per shard.

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateDataAndCache","longname":"SaratogaUpdater#updateDataAndCache","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateDataAndCache","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateDataAndCache"},{"comment":"/**\n * Updates the Local Files of Saratoga if there is an update\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[4141,5215],"filename":"SaratogaUpdater.js","lineno":104,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002714","name":"SaratogaUpdater#updateLocalData","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Updates the Local Files of Saratoga if there is an update

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateLocalData","longname":"SaratogaUpdater#updateLocalData","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateLocalData","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateLocalData"},{"comment":"/**\n * The cron update checker which is responsible for Saratoga#updateAvailable event\n * @type {?Timeout}\n */","meta":{"range":[830,852],"filename":"SaratogaUpdater.js","lineno":28,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002408","name":"this.cronUpdate","type":"Literal","value":null,"paramnames":[]}},"description":"

    The cron update checker which is responsible for Saratoga#updateAvailable event

    ","type":{"names":["Timeout"]},"nullable":true,"name":"cronUpdate","longname":"SaratogaUpdater#cronUpdate","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#cronUpdate","$kind":"property","$docmaLink":"?api#SaratogaUpdater#cronUpdate"},{"comment":"/**\n * If the data directory of this updater is ready to operate\n * @type {Boolean}\n */","meta":{"range":[652,677],"filename":"SaratogaUpdater.js","lineno":23,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002402","name":"this.dataDirReady","type":"Literal","value":false,"paramnames":[]}},"description":"

    If the data directory of this updater is ready to operate

    ","type":{"names":["Boolean"]},"name":"dataDirReady","longname":"SaratogaUpdater#dataDirReady","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#dataDirReady","$kind":"property","$docmaLink":"?api#SaratogaUpdater#dataDirReady"},{"comment":"/**\n * The saratoga instance that generated this instance\n * @type {Saratoga}\n */","meta":{"range":[963,1021],"filename":"SaratogaUpdater.js","lineno":35,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002413","name":"SaratogaUpdater#saratoga","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    The saratoga instance that generated this instance

    ","type":{"names":["Saratoga"]},"name":"saratoga","longname":"SaratogaUpdater#saratoga","kind":"member","memberof":"SaratogaUpdater","scope":"instance","params":[],"$longname":"SaratogaUpdater#saratoga","$kind":"property","$docmaLink":"?api#SaratogaUpdater#saratoga"},{"comment":"/**\n * The updater instance that generated this instance\n * @type {SaratogaStore}\n */","meta":{"range":[504,522],"filename":"SaratogaUpdater.js","lineno":18,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002396","name":"this.store","type":"Identifier","value":"store","paramnames":[]}},"description":"

    The updater instance that generated this instance

    ","type":{"names":["SaratogaStore"]},"name":"store","longname":"SaratogaUpdater#store","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#store","$kind":"property","$docmaLink":"?api#SaratogaUpdater#store"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[357,859],"filename":"SaratogaUpdater.js","lineno":13,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002390","name":"SaratogaUpdater","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaUpdater","longname":"SaratogaUpdater","kind":"class","scope":"global","$longname":"SaratogaUpdater","$kind":"constructor","$docmaLink":"?api#SaratogaUpdater"}},{"comment":"","meta":{"range":[122,250],"filename":"SaratogaValidator.js","lineno":5,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100003205","name":"SaratogaValidator","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"undocumented":true,"name":"SaratogaValidator","longname":"SaratogaValidator","kind":"class","scope":"global","params":[],"$longname":"SaratogaValidator","$kind":"constructor","$docmaLink":"?api#SaratogaValidator"},{"comment":"","meta":{"range":[3147,3185],"filename":"SaratogaShips.js","lineno":109,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001306","name":"ShipExtAll","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"undocumented":true,"name":"ShipExtAll","longname":"ShipExtAll","kind":"class","scope":"global","params":[],"$longname":"ShipExtAll","$kind":"constructor","$docmaLink":"?api#ShipExtAll"},{"comment":"","meta":{"range":[4130,4168],"filename":"SaratogaShips.js","lineno":157,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001432","name":"ShipExtFilter","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"undocumented":true,"name":"ShipExtFilter","longname":"ShipExtFilter","kind":"class","scope":"global","params":[],"$longname":"ShipExtFilter","$kind":"constructor","$docmaLink":"?api#ShipExtFilter"},{"comment":"/**\n * Custom filter for equipment data\n * @param {requestCallback} callback the callback that handles the response\n */","meta":{"range":[1989,2101],"filename":"LegacyEquipments.js","lineno":62,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000370","name":"LegacyEquipments#filter","type":"MethodDefinition","paramnames":["callback"]},"vars":{"":null}},"description":"

    Custom filter for equipment data

    ","params":[{"type":{"names":["requestCallback"]},"description":"

    the callback that handles the response

    ","name":"callback"}],"name":"filter","longname":"LegacyEquipments#filter","kind":"function","memberof":"LegacyEquipments","scope":"instance","$longname":"LegacyEquipments#filter","$kind":"method","$docmaLink":"?api#LegacyEquipments#filter"},{"comment":"/**\n * Custom search for data in Fuse instance\n * @param {any} options Fuse search options\n */","meta":{"range":[2217,2324],"filename":"LegacyEquipments.js","lineno":70,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000390","name":"LegacyEquipments#search","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"

    Custom search for data in Fuse instance

    ","params":[{"type":{"names":["any"]},"description":"

    Fuse search options

    ","name":"options"}],"name":"search","longname":"LegacyEquipments#search","kind":"function","memberof":"LegacyEquipments","scope":"instance","$longname":"LegacyEquipments#search","$kind":"method","$docmaLink":"?api#LegacyEquipments#search"},{"comment":"/**\n * Custom filter for ship data\n * @param {requestCallback} callback the callback that handles the response\n */","meta":{"range":[3095,3207],"filename":"LegacyShips.js","lineno":97,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000652","name":"LegacyShips#filter","type":"MethodDefinition","paramnames":["callback"]},"vars":{"":null}},"description":"

    Custom filter for ship data

    ","params":[{"type":{"names":["requestCallback"]},"description":"

    the callback that handles the response

    ","name":"callback"}],"name":"filter","longname":"LegacyShips#filter","kind":"function","memberof":"LegacyShips","scope":"instance","$longname":"LegacyShips#filter","$kind":"method","$docmaLink":"?api#LegacyShips#filter"},{"comment":"/**\n * Custom search for data in Fuse instance\n * @param {any} options Fuse search options\n */","meta":{"range":[3323,3430],"filename":"LegacyShips.js","lineno":105,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000672","name":"LegacyShips#search","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"

    Custom search for data in Fuse instance

    ","params":[{"type":{"names":["any"]},"description":"

    Fuse search options

    ","name":"options"}],"name":"search","longname":"LegacyShips#search","kind":"function","memberof":"LegacyShips","scope":"instance","$longname":"LegacyShips#search","$kind":"method","$docmaLink":"?api#LegacyShips#search"},{"comment":"/**\n * Get an unfiltered ship list\n */","meta":{"range":[3242,3326],"filename":"SaratogaShips.js","lineno":116,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001313","name":"ShipExtAll#get","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Get an unfiltered ship list

    ","name":"get","longname":"ShipExtAll#get","kind":"function","memberof":"ShipExtAll","scope":"instance","params":[],"$longname":"ShipExtAll#get","$kind":"method","$docmaLink":"?api#ShipExtAll#get"},{"comment":"/**\n * Filter ships via id\n */","meta":{"range":[3992,4078],"filename":"SaratogaShips.js","lineno":150,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001411","name":"ShipExtAll#id","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Filter ships via id

    ","name":"id","longname":"ShipExtAll#id","kind":"function","memberof":"ShipExtAll","scope":"instance","params":[],"$longname":"ShipExtAll#id","$kind":"method","$docmaLink":"?api#ShipExtAll#id"},{"comment":"/**\n * Filter ships via language\n * @param {string} language \n */","meta":{"range":[3414,3943],"filename":"SaratogaShips.js","lineno":125,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001328","name":"ShipExtAll#name","type":"MethodDefinition","paramnames":["language"]},"vars":{"":null}},"description":"

    Filter ships via language

    ","params":[{"type":{"names":["string"]},"name":"language"}],"name":"name","longname":"ShipExtAll#name","kind":"function","memberof":"ShipExtAll","scope":"instance","$longname":"ShipExtAll#name","$kind":"method","$docmaLink":"?api#ShipExtAll#name"},{"comment":"/**\n * Barrage Data\n * @external Barrage\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":34,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Barrage Data

    ","kind":"external","name":"Barrage","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Barrage","scope":"global","$longname":"external:Barrage","$kind":"external","$docmaLink":"?api#external:Barrage"},{"comment":"/**\n * Chapter Data\n * @external Chapter\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":24,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Chapter Data

    ","kind":"external","name":"Chapter","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Chapter","scope":"global","$longname":"external:Chapter","$kind":"external","$docmaLink":"?api#external:Chapter"},{"comment":"/**\n * Equipment Data\n * @external Equipment\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":19,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Equipment Data

    ","kind":"external","name":"Equipment","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Equipment","scope":"global","$longname":"external:Equipment","$kind":"external","$docmaLink":"?api#external:Equipment"},{"comment":"/**\n * Node.js Event Emitter\n * @external EventEmitter\n * @see {@link https://nodejs.org/api/events.html}\n */","meta":{"filename":"index.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Node.js Event Emitter

    ","kind":"external","name":"EventEmitter","see":["{@link https://nodejs.org/api/events.html}"],"longname":"external:EventEmitter","scope":"global","$longname":"external:EventEmitter","$kind":"external","$docmaLink":"?api#external:EventEmitter"},{"comment":"/**\n * Ship Data\n * @external Ship\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#ship-getters}\n */","meta":{"filename":"index.js","lineno":13,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Ship Data

    ","kind":"external","name":"Ship","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#ship-getters}"],"longname":"external:Ship","scope":"global","$longname":"external:Ship","$kind":"external","$docmaLink":"?api#external:Ship"},{"comment":"/**\n * Node.js Timeout\n * @external Timeout\n * @see {@link https://nodejs.org/dist/latest/docs/api/timers.html#timers_class_timeout}\n */","meta":{"filename":"index.js","lineno":7,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Node.js Timeout

    ","kind":"external","name":"Timeout","see":["{@link https://nodejs.org/dist/latest/docs/api/timers.html#timers_class_timeout}"],"longname":"external:Timeout","scope":"global","$longname":"external:Timeout","$kind":"external","$docmaLink":"?api#external:Timeout"},{"comment":"/**\n * Voiceline Data\n * @external Voiceline\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":29,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Voiceline Data

    ","kind":"external","name":"Voiceline","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Voiceline","scope":"global","$longname":"external:Voiceline","$kind":"external","$docmaLink":"?api#external:Voiceline"}],"symbols":["external:Barrage","external:Chapter","external:Equipment","external:EventEmitter","external:Ship","external:Timeout","external:Voiceline","LegacyEquipments","LegacyEquipments#filter","LegacyEquipments#search","LegacyShips","LegacyShips#filter","LegacyShips#search","Saratoga","Saratoga#barrages","Saratoga#chapters","Saratoga#equipments","Saratoga#event:debug","Saratoga#event:error","Saratoga#event:ready","Saratoga#event:updateAvailable","Saratoga#legacyEquipments","Saratoga#legacyShips","Saratoga#ready","Saratoga#ships","Saratoga#store","Saratoga#updater","Saratoga#voicelines","SaratogaEquipments","SaratogaEquipments","SaratogaEquipments#all","SaratogaEquipments#category","SaratogaEquipments#filter","SaratogaEquipments.LegacyEquipments#getAllByCategory","SaratogaEquipments.LegacyEquipments#getAllByNationality","SaratogaEquipments.LegacyEquipments#searchByEquipmentName","SaratogaEquipments#name","SaratogaEquipments#nationality","SaratogaEquipments#search","SaratogaShips","SaratogaShips","SaratogaShips#filter","SaratogaShips#get","SaratogaShips#id","SaratogaShips.LegacyShips#getAllByClass","SaratogaShips.LegacyShips#getAllByHullType","SaratogaShips.LegacyShips#getAllByNationality","SaratogaShips.LegacyShips#getAllByRarity","SaratogaShips.LegacyShips#getById","SaratogaShips.LegacyShips#searchShipByName","SaratogaShips#name","SaratogaShips#search","SaratogaShips.ShipExtFilter#class","SaratogaShips.ShipExtFilter#nationality","SaratogaShips.ShipExtFilter#rarity","SaratogaShips.ShipExtFilter#type","SaratogaStore","SaratogaStore#equipments","SaratogaStore#legacyShips","SaratogaStore#ready","SaratogaStore#saratoga","SaratogaStore#ships","SaratogaStore#updater","SaratogaUpdater","SaratogaUpdater#checkForUpdate","SaratogaUpdater#cronUpdate","SaratogaUpdater#dataDirReady","SaratogaUpdater#saratoga","SaratogaUpdater#store","SaratogaUpdater#updateCache","SaratogaUpdater#updateDataAndCache","SaratogaUpdater#updateLocalData","SaratogaValidator","ShipExtAll","ShipExtAll#get","ShipExtAll#id","ShipExtAll#name","ShipExtFilter"]}},"app":{"title":"Saratoga | An open source Azur Lane local library","routing":{"method":"query","caseSensitive":true},"entrance":"content:readme","base":"/Saratoga/","meta":null,"server":"static","favicon":""},"template":{"name":"docma-template-zebra","description":"Zebra - Default template for Docma. https://github.com/onury/docma","version":"2.3.1","supportedDocmaVersion":">=2.0.0","author":"Onur Yıldırım","license":"MIT","mainHTML":"index.html","options":{"title":{"label":"Saratoga","href":"."},"sidebar":{"enabled":true,"outline":"tree","collapsed":false,"toolbar":true,"itemsFolded":false,"itemsOverflow":"crop","badges":true,"search":true,"animations":true},"symbols":{"autoLink":true,"params":"list","enums":"list","props":"list","meta":false},"navbar":{"enabled":true,"dark":false,"animations":true,"menu":[{"label":"Readme","href":"."},{"label":"Documentation","href":"?api"},{"label":"GitHub","href":"https://github.com/AzurAPI/Saratoga"}],"fixed":true},"logo":null,"contentView":{"bookmarks":false,"faVersion":"5.5.0","faLibs":"all"}}},"partials":{"api":"docma-api","content":"docma-content","notFound":"docma-404"},"elementID":"docma-main","contentElementID":"docma-content","defaultApiName":"_def_","logsEnabled":false})); +var docma = Object.freeze(new DocmaWeb({"version":"3.2.2","routes":[{"id":"api:","type":"api","name":"_def_","path":"?api","contentPath":null,"sourceType":"js"},{"id":"content:readme","type":"content","name":"readme","path":"?content=readme","contentPath":"content/readme.html","sourceType":"md"}],"apis":{"_def_":{"documentation":[{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[226,334],"filename":"LegacyEquipments.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000228","name":"LegacyEquipments","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"LegacyEquipments","longname":"LegacyEquipments","kind":"class","scope":"global","$longname":"LegacyEquipments","$kind":"constructor","$docmaLink":"?api#LegacyEquipments"},{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[211,319],"filename":"LegacyShips.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000421","name":"LegacyShips","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"LegacyShips","longname":"LegacyShips","kind":"class","scope":"global","$longname":"LegacyShips","$kind":"constructor","$docmaLink":"?api#LegacyShips"},{"comment":"/**\n * 本APIの出発点\n * Saratoga, the starting point of this API\n * @class Saratoga\n * @extends {EventEmitter}\n */","meta":{"filename":"Saratoga.js","lineno":4,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    本APIの出発点\nSaratoga, the starting point of this API

    ","kind":"class","name":"Saratoga","augments":["EventEmitter"],"longname":"Saratoga","scope":"global","$longname":"Saratoga","$kind":"class","$docmaLink":"?api#Saratoga","$members":[{"comment":"/**\n * 連打のデータを取得する\n * Barrage related getters for this store\n * @type {SaratogaBarrages}\n */","meta":{"range":[3148,3244],"filename":"Saratoga.js","lineno":121,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000166","name":"Saratoga#barrages","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    連打のデータを取得する\nBarrage related getters for this store

    ","type":{"names":["SaratogaBarrages"]},"name":"barrages","longname":"Saratoga#barrages","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#barrages","$kind":"property","$docmaLink":"?api#Saratoga#barrages"},{"comment":"/**\n * チャプターのデータを取得する\n * Chapters related getters for this store\n * @type {SaratogaChapters}\n */","meta":{"range":[2708,2804],"filename":"Saratoga.js","lineno":103,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000132","name":"Saratoga#chapters","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    チャプターのデータを取得する\nChapters related getters for this store

    ","type":{"names":["SaratogaChapters"]},"name":"chapters","longname":"Saratoga#chapters","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#chapters","$kind":"property","$docmaLink":"?api#Saratoga#chapters"},{"comment":"/**\n * 装置のデータを取得する\n * Azur Lane's Equipment related getter methods\n * @type {SaratogaEquipments}\n */","meta":{"range":[2486,2586],"filename":"Saratoga.js","lineno":94,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000115","name":"Saratoga#equipments","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    装置のデータを取得する\nAzur Lane's Equipment related getter methods

    ","type":{"names":["SaratogaEquipments"]},"name":"equipments","longname":"Saratoga#equipments","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#equipments","$kind":"property","$docmaLink":"?api#Saratoga#equipments"},{"comment":"/**\n * 旧装置のデータを取得する\n * Azur Lane's Equipment related getter methods with legacy API\n * @type {SaratogaLegacyEquipments}\n */","meta":{"range":[3633,3745],"filename":"Saratoga.js","lineno":139,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000200","name":"Saratoga#legacyEquipments","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    旧装置のデータを取得する\nAzur Lane's Equipment related getter methods with legacy API

    ","type":{"names":["SaratogaLegacyEquipments"]},"name":"legacyEquipments","longname":"Saratoga#legacyEquipments","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#legacyEquipments","$kind":"property","$docmaLink":"?api#Saratoga#legacyEquipments"},{"comment":"/**\n * 旧船のデータを取得する\n * Azur Lane's Ship related getter methods with legacy API\n * @type {SaratogaLegacyShips}\n */","meta":{"range":[3382,3484],"filename":"Saratoga.js","lineno":130,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000183","name":"Saratoga#legacyShips","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    旧船のデータを取得する\nAzur Lane's Ship related getter methods with legacy API

    ","type":{"names":["SaratogaLegacyShips"]},"name":"legacyShips","longname":"Saratoga#legacyShips","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#legacyShips","$kind":"property","$docmaLink":"?api#Saratoga#legacyShips"},{"comment":"/**\n * 状態\n * If Saratoga is ready to operate\n * @type {Boolean}\n */","meta":{"range":[2066,2153],"filename":"Saratoga.js","lineno":75,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000080","name":"Saratoga#ready","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    状態\nIf Saratoga is ready to operate

    ","type":{"names":["Boolean"]},"name":"ready","longname":"Saratoga#ready","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#ready","$kind":"property","$docmaLink":"?api#Saratoga#ready"},{"comment":"/**\n * 船のデータを取得する\n * Azur Lane's Ship related getter methods\n * @type {SaratogaShips}\n */","meta":{"range":[2269,2359],"filename":"Saratoga.js","lineno":84,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000098","name":"Saratoga#ships","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    船のデータを取得する\nAzur Lane's Ship related getter methods

    ","type":{"names":["SaratogaShips"]},"name":"ships","longname":"Saratoga#ships","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#ships","$kind":"property","$docmaLink":"?api#Saratoga#ships"},{"comment":"/**\n * キャッシュデータの管理\n * Contains methods and props for managing cached data\n * @type {SaratogaStore}\n */","meta":{"range":[602,638],"filename":"Saratoga.js","lineno":21,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000053","name":"this.store","type":"NewExpression","value":"","paramnames":[]}},"description":"

    キャッシュデータの管理\nContains methods and props for managing cached data

    ","type":{"names":["SaratogaStore"]},"name":"store","longname":"Saratoga#store","kind":"member","memberof":"Saratoga","scope":"instance","$longname":"Saratoga#store","$kind":"property","$docmaLink":"?api#Saratoga#store"},{"comment":"/**\n * アップデータ\n * Contains methods for updating Saratoga's local data & cache\n * @type {SaratogaUpdater}\n */","meta":{"range":[1916,1972],"filename":"Saratoga.js","lineno":66,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000070","name":"Saratoga#updater","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    アップデータ\nContains methods for updating Saratoga's local data & cache

    ","type":{"names":["SaratogaUpdater"]},"name":"updater","longname":"Saratoga#updater","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#updater","$kind":"property","$docmaLink":"?api#Saratoga#updater"},{"comment":"/**\n * ボイスラインのデータを取得する\n * Voiceline related getters for this store\n * @type {SaratogaVoicelines}\n */","meta":{"range":[2930,3030],"filename":"Saratoga.js","lineno":112,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000149","name":"Saratoga#voicelines","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    ボイスラインのデータを取得する\nVoiceline related getters for this store

    ","type":{"names":["SaratogaVoicelines"]},"name":"voicelines","longname":"Saratoga#voicelines","kind":"member","memberof":"Saratoga","scope":"instance","params":[],"$longname":"Saratoga#voicelines","$kind":"property","$docmaLink":"?api#Saratoga#voicelines"},{"comment":"/**\n * デバッグデータがあるときに発せられる\n * Emitted when there is a debug data\n * @event Saratoga#debug\n * @param {string} message Debug message 資料\n * @memberof Saratoga\n */","meta":{"filename":"Saratoga.js","lineno":25,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    デバッグデータがあるときに発せられる\nEmitted when there is a debug data

    ","kind":"event","name":"debug","params":[{"type":{"names":["string"]},"description":"

    Debug message 資料

    ","name":"message"}],"memberof":"Saratoga","longname":"Saratoga#event:debug","scope":"instance","$longname":"Saratoga#event:debug","$kind":"event","$docmaLink":"?api#Saratoga#event:debug"},{"comment":"/**\n * エラーが発生したときに発せられる\n * Emitted when there is a pesky error\n * @event Saratoga#error\n * @param {Error} error The error encountered.\n * @memberof Saratoga\n * @example\n * Saratoga.on('error', console.error);\n */","meta":{"filename":"Saratoga.js","lineno":32,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    エラーが発生したときに発せられる\nEmitted when there is a pesky error

    ","kind":"event","name":"error","params":[{"type":{"names":["Error"]},"description":"

    The error encountered.

    ","name":"error"}],"memberof":"Saratoga","examples":["Saratoga.on('error', console.error);"],"longname":"Saratoga#event:error","scope":"instance","$longname":"Saratoga#event:error","$kind":"event","$docmaLink":"?api#Saratoga#event:error"},{"comment":"/**\n * 準備ができたときに発せられる\n * Emitted when Saratoga is ready\n * @event Saratoga#ready\n * @memberof Saratoga\n */","meta":{"filename":"Saratoga.js","lineno":54,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    準備ができたときに発せられる\nEmitted when Saratoga is ready

    ","kind":"event","name":"ready","memberof":"Saratoga","longname":"Saratoga#event:ready","scope":"instance","$longname":"Saratoga#event:ready","$kind":"event","$docmaLink":"?api#Saratoga#event:ready"},{"comment":"/**\n * 更新があったときに発せられる\n * Emitted when there is an update available for local data. Only available when Saratoga is initialized with notifyForNewUpdates set to true\n * @event Saratoga#updateAvailable\n * @param {Object} data What data needs updating\n * @memberof Saratoga\n * @example\n * Saratoga.on('updateAvailable', (data) => {\n * if (data.shipUpdateAvailable || data.equipmentUpdateAvailable) {\n * // handle update\n * }\n * })\n */","meta":{"filename":"Saratoga.js","lineno":41,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{}},"description":"

    更新があったときに発せられる\nEmitted when there is an update available for local data. Only available when Saratoga is initialized with notifyForNewUpdates set to true

    ","kind":"event","name":"updateAvailable","params":[{"type":{"names":["Object"]},"description":"

    What data needs updating

    ","name":"data"}],"memberof":"Saratoga","examples":["Saratoga.on('updateAvailable', (data) => {\n if (data.shipUpdateAvailable || data.equipmentUpdateAvailable) {\n // handle update\n }\n})"],"longname":"Saratoga#event:updateAvailable","scope":"instance","$longname":"Saratoga#event:updateAvailable","$kind":"event","$docmaLink":"?api#Saratoga#event:updateAvailable"}],"$constructor":{"comment":"/**\n * @param {Object} options Object with a single parameter, which is notifyForNewUpdates, which is a boolean\n */","meta":{"range":[378,714],"filename":"Saratoga.js","lineno":14,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src","code":{"id":"astnode100000040","name":"Saratoga","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"params":[{"type":{"names":["Object"]},"description":"

    Object with a single parameter, which is notifyForNewUpdates, which is a boolean

    ","name":"options"}],"name":"Saratoga","longname":"Saratoga","kind":"class","scope":"global","$longname":"Saratoga","$kind":"constructor","$docmaLink":"?api#Saratoga"}},{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[132,240],"filename":"SaratogaBarrages.js","lineno":5,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000703","name":"SaratogaBarrages","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaBarrages","longname":"SaratogaBarrages","kind":"class","scope":"global","$longname":"SaratogaBarrages","$kind":"constructor","$docmaLink":"?api#SaratogaBarrages"},{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[140,248],"filename":"SaratogaChapters.js","lineno":6,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000972","name":"SaratogaChapters","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaChapters","longname":"SaratogaChapters","kind":"class","scope":"global","$longname":"SaratogaChapters","$kind":"constructor","$docmaLink":"?api#SaratogaChapters"},{"comment":"/**\n * Equipment related getters for Saratoga with LegacyAPI\n * @class SaratogaEquipments\n */","meta":{"filename":"LegacyEquipments.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Equipment related getters for Saratoga with LegacyAPI

    ","kind":"class","name":"SaratogaEquipments","longname":"SaratogaEquipments","scope":"global","$longname":"SaratogaEquipments","$kind":"class","$docmaLink":"?api#SaratogaEquipments","$members":[{"comment":"/**\n * Get an unfiltered equipment list\n */","meta":{"range":[2442,2526],"filename":"SaratogaEquipments.js","lineno":79,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001239","name":"SaratogaEquipments#all","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Get an unfiltered equipment list

    ","name":"all","longname":"SaratogaEquipments#all","kind":"function","memberof":"SaratogaEquipments","scope":"instance","params":[],"$longname":"SaratogaEquipments#all","$kind":"method","$docmaLink":"?api#SaratogaEquipments#all"},{"comment":"/**\n * Lists the equipments by category\n * @param {string} category name of the category you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[751,885],"filename":"SaratogaEquipments.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001083","name":"SaratogaEquipments#category","type":"MethodDefinition","paramnames":["category"]},"vars":{"":null}},"description":"

    Lists the equipments by category

    ","params":[{"type":{"names":["string"]},"description":"

    name of the category you want to search for

    ","name":"category"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"category","longname":"SaratogaEquipments#category","kind":"function","scope":"instance","$longname":"SaratogaEquipments#category","$kind":"method","$docmaLink":"?api#SaratogaEquipments#category"},{"comment":"/**\n * Custom filter for equipment data\n * @param {requestCallback} callback the callback that handles the response\n */","meta":{"range":[2668,2780],"filename":"SaratogaEquipments.js","lineno":88,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001254","name":"SaratogaEquipments#filter","type":"MethodDefinition","paramnames":["callback"]},"vars":{"":null}},"description":"

    Custom filter for equipment data

    ","params":[{"type":{"names":["requestCallback"]},"description":"

    the callback that handles the response

    ","name":"callback"}],"name":"filter","longname":"SaratogaEquipments#filter","kind":"function","memberof":"SaratogaEquipments","scope":"instance","$longname":"SaratogaEquipments#filter","$kind":"method","$docmaLink":"?api#SaratogaEquipments#filter"},{"comment":"/**\n * Lists the equipments by category\n * @param {string} category name of the category you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[764,906],"filename":"LegacyEquipments.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000281","name":"LegacyEquipments#getAllByCategory","type":"MethodDefinition","paramnames":["category"]},"vars":{"":null}},"description":"

    Lists the equipments by category

    ","params":[{"type":{"names":["string"]},"description":"

    name of the category you want to search for

    ","name":"category"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"LegacyEquipments#getAllByCategory","longname":"SaratogaEquipments.LegacyEquipments#getAllByCategory","kind":"function","scope":"static","$longname":"SaratogaEquipments.LegacyEquipments#getAllByCategory","$kind":"method","$docmaLink":"?api#SaratogaEquipments.LegacyEquipments#getAllByCategory"},{"comment":"/**\n * Lists the equipments by nationality\n * @param {string} nationality naitionality name of the equipments you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[1143,1297],"filename":"LegacyEquipments.js","lineno":40,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000307","name":"LegacyEquipments#getAllByNationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists the equipments by nationality

    ","params":[{"type":{"names":["string"]},"description":"

    naitionality name of the equipments you want to search for

    ","name":"nationality"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"LegacyEquipments#getAllByNationality","longname":"SaratogaEquipments.LegacyEquipments#getAllByNationality","kind":"function","scope":"static","$longname":"SaratogaEquipments.LegacyEquipments#getAllByNationality","$kind":"method","$docmaLink":"?api#SaratogaEquipments.LegacyEquipments#getAllByNationality"},{"comment":"/**\n * Searches for a specific equipment. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the equipment you want to search for\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaEquipments\n * @returns {Equipment | null}\n */","meta":{"range":[1604,1848],"filename":"LegacyEquipments.js","lineno":52,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000333","name":"LegacyEquipments#searchByEquipmentName","type":"MethodDefinition","paramnames":["name","limit"]},"vars":{"":null}},"description":"

    Searches for a specific equipment. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the equipment you want to search for

    ","name":"name"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Equipment","null"]}}],"name":"LegacyEquipments#searchByEquipmentName","longname":"SaratogaEquipments.LegacyEquipments#searchByEquipmentName","kind":"function","scope":"static","$longname":"SaratogaEquipments.LegacyEquipments#searchByEquipmentName","$kind":"method","$docmaLink":"?api#SaratogaEquipments.LegacyEquipments#searchByEquipmentName"},{"comment":"/**\n * Searches for a specific equipment. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the equipment you want to search for\n * @param {string} language optional language to search by\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaEquipments\n * @returns {Equipment | null}\n */","meta":{"range":[1638,2380],"filename":"SaratogaEquipments.js","lineno":53,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001135","name":"SaratogaEquipments#name","type":"MethodDefinition","paramnames":["name","language","limit"]},"vars":{"":null}},"description":"

    Searches for a specific equipment. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the equipment you want to search for

    ","name":"name"},{"type":{"names":["string"]},"description":"

    optional language to search by

    ","name":"language"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Equipment","null"]}}],"name":"name","longname":"SaratogaEquipments#name","kind":"function","scope":"instance","$longname":"SaratogaEquipments#name","$kind":"method","$docmaLink":"?api#SaratogaEquipments#name"},{"comment":"/**\n * Lists the equipments by nationality\n * @param {string} nationality naitionality name of the equipments you want to search for\n * @memberof SaratogaEquipments\n * @returns {Array | null}\n */","meta":{"range":[1122,1268],"filename":"SaratogaEquipments.js","lineno":40,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001109","name":"SaratogaEquipments#nationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists the equipments by nationality

    ","params":[{"type":{"names":["string"]},"description":"

    naitionality name of the equipments you want to search for

    ","name":"nationality"}],"memberof":"SaratogaEquipments","returns":[{"type":{"names":["Array.","null"]}}],"name":"nationality","longname":"SaratogaEquipments#nationality","kind":"function","scope":"instance","$longname":"SaratogaEquipments#nationality","$kind":"method","$docmaLink":"?api#SaratogaEquipments#nationality"},{"comment":"/**\n * Custom search for data in Fuse instance\n * @param {any} options Fuse search options\n */","meta":{"range":[2896,3003],"filename":"SaratogaEquipments.js","lineno":96,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001274","name":"SaratogaEquipments#search","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"

    Custom search for data in Fuse instance

    ","params":[{"type":{"names":["any"]},"description":"

    Fuse search options

    ","name":"options"}],"name":"search","longname":"SaratogaEquipments#search","kind":"function","memberof":"SaratogaEquipments","scope":"instance","$longname":"SaratogaEquipments#search","$kind":"method","$docmaLink":"?api#SaratogaEquipments#search"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[213,321],"filename":"SaratogaEquipments.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001030","name":"SaratogaEquipments","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaEquipments","longname":"SaratogaEquipments","kind":"class","scope":"global","$longname":"SaratogaEquipments","$kind":"constructor","$docmaLink":"?api#SaratogaEquipments"}},{"comment":"/**\n * Equipment related getters for Saratoga\n * @class SaratogaEquipments\n */","meta":{"filename":"SaratogaEquipments.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Equipment related getters for Saratoga

    ","kind":"class","name":"SaratogaEquipments","longname":"SaratogaEquipments","scope":"global","$longname":"SaratogaEquipments","$kind":"class","$docmaLink":"?api#SaratogaEquipments"},{"comment":"/**\n * Ship related getters for Saratoga with LegacyAPI\n * @class SaratogaShips\n */","meta":{"filename":"LegacyShips.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Ship related getters for Saratoga with LegacyAPI

    ","kind":"class","name":"SaratogaShips","longname":"SaratogaShips","scope":"global","$longname":"SaratogaShips","$kind":"class","$docmaLink":"?api#SaratogaShips","$members":[{"comment":"/**\n * Custom filter for ship data\n * @param {requestCallback} callback the callback that handles the response\n */","meta":{"range":[2763,2875],"filename":"SaratogaShips.js","lineno":94,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001585","name":"SaratogaShips#filter","type":"MethodDefinition","paramnames":["callback"]},"vars":{"":null}},"description":"

    Custom filter for ship data

    ","params":[{"type":{"names":["requestCallback"]},"description":"

    the callback that handles the response

    ","name":"callback"}],"name":"filter","longname":"SaratogaShips#filter","kind":"function","memberof":"SaratogaShips","scope":"instance","$longname":"SaratogaShips#filter","$kind":"method","$docmaLink":"?api#SaratogaShips#filter"},{"comment":"/**\n * Search from all ships\n * @param {number | string} id \n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[666,1089],"filename":"SaratogaShips.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001358","name":"SaratogaShips#get","type":"MethodDefinition","paramnames":["id"]},"vars":{"":null}},"description":"

    Search from all ships

    ","params":[{"type":{"names":["number","string"]},"name":"id"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"get","longname":"SaratogaShips#get","kind":"function","scope":"instance","$longname":"SaratogaShips#get","$kind":"method","$docmaLink":"?api#SaratogaShips#get"},{"comment":"/**\n * Fetches a specific ship via its id\n * @param {number} id id of the ship you want to fetch\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[1273,1447],"filename":"SaratogaShips.js","lineno":50,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001431","name":"SaratogaShips#id","type":"MethodDefinition","paramnames":["id"]},"vars":{"":null}},"description":"

    Fetches a specific ship via its id

    ","params":[{"type":{"names":["number"]},"description":"

    id of the ship you want to fetch

    ","name":"id"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"id","longname":"SaratogaShips#id","kind":"function","scope":"instance","$longname":"SaratogaShips#id","$kind":"method","$docmaLink":"?api#SaratogaShips#id"},{"comment":"/**\n * Lists all the ships that matches a specific shjp class\n * @param {string} shipClass class of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[774,912],"filename":"LegacyShips.js","lineno":29,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000474","name":"LegacyShips#getAllByClass","type":"MethodDefinition","paramnames":["shipClass"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific shjp class

    ","params":[{"type":{"names":["string"]},"description":"

    class of the ship you want to search for (Case Sensitive)

    ","name":"shipClass"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"LegacyShips#getAllByClass","longname":"SaratogaShips.LegacyShips#getAllByClass","kind":"function","scope":"static","$longname":"SaratogaShips.LegacyShips#getAllByClass","$kind":"method","$docmaLink":"?api#SaratogaShips.LegacyShips#getAllByClass"},{"comment":"/**\n * Lists all the ships that matches a specific ship hull type\n * @param {string} hullType hullType of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1572,1714],"filename":"LegacyShips.js","lineno":51,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000526","name":"LegacyShips#getAllByHullType","type":"MethodDefinition","paramnames":["hullType"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship hull type

    ","params":[{"type":{"names":["string"]},"description":"

    hullType of the ship you want to search for (Case Sensitive)

    ","name":"hullType"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"LegacyShips#getAllByHullType","longname":"SaratogaShips.LegacyShips#getAllByHullType","kind":"function","scope":"static","$longname":"SaratogaShips.LegacyShips#getAllByHullType","$kind":"method","$docmaLink":"?api#SaratogaShips.LegacyShips#getAllByHullType"},{"comment":"/**\n * Lists all the ships that matches a specific ship nationality\n * @param {string} nationality nationality of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1169,1323],"filename":"LegacyShips.js","lineno":40,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000500","name":"LegacyShips#getAllByNationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship nationality

    ","params":[{"type":{"names":["string"]},"description":"

    nationality of the ship you want to search for (Case Sensitive)

    ","name":"nationality"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"LegacyShips#getAllByNationality","longname":"SaratogaShips.LegacyShips#getAllByNationality","kind":"function","scope":"static","$longname":"SaratogaShips.LegacyShips#getAllByNationality","$kind":"method","$docmaLink":"?api#SaratogaShips.LegacyShips#getAllByNationality"},{"comment":"/**\n * Lists all the ship that matches a specific rarity\n * @param {string} rarity rarity of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[1950,2084],"filename":"LegacyShips.js","lineno":62,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000552","name":"LegacyShips#getAllByRarity","type":"MethodDefinition","paramnames":["rarity"]},"vars":{"":null}},"description":"

    Lists all the ship that matches a specific rarity

    ","params":[{"type":{"names":["string"]},"description":"

    rarity of the ship you want to search for (Case Sensitive)

    ","name":"rarity"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"LegacyShips#getAllByRarity","longname":"SaratogaShips.LegacyShips#getAllByRarity","kind":"function","scope":"static","$longname":"SaratogaShips.LegacyShips#getAllByRarity","$kind":"method","$docmaLink":"?api#SaratogaShips.LegacyShips#getAllByRarity"},{"comment":"/**\n * Fetches a specific ship via its id\n * @param {number} id id of the ship you want to fetch\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[2268,2447],"filename":"LegacyShips.js","lineno":73,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000578","name":"LegacyShips#getById","type":"MethodDefinition","paramnames":["id"]},"vars":{"":null}},"description":"

    Fetches a specific ship via its id

    ","params":[{"type":{"names":["number"]},"description":"

    id of the ship you want to fetch

    ","name":"id"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"LegacyShips#getById","longname":"SaratogaShips.LegacyShips#getById","kind":"function","scope":"static","$longname":"SaratogaShips.LegacyShips#getById","$kind":"method","$docmaLink":"?api#SaratogaShips.LegacyShips#getById"},{"comment":"/**\n * Searches for a specific ship. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the ship you want to search for\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[2734,2959],"filename":"LegacyShips.js","lineno":87,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000615","name":"LegacyShips#searchShipByName","type":"MethodDefinition","paramnames":["name","limit"]},"vars":{"":null}},"description":"

    Searches for a specific ship. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the ship you want to search for

    ","name":"name"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"LegacyShips#searchShipByName","longname":"SaratogaShips.LegacyShips#searchShipByName","kind":"function","scope":"static","$longname":"SaratogaShips.LegacyShips#searchShipByName","$kind":"method","$docmaLink":"?api#SaratogaShips.LegacyShips#searchShipByName"},{"comment":"/**\n * Searches for a specific ship. (EN, CN, JP, KR names are supported)\n * @param {string} name name of the ship you want to search for\n * @param {string} language optional language to search by\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaShips\n * @returns {Ship | null}\n */","meta":{"range":[1797,2627],"filename":"SaratogaShips.js","lineno":65,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001468","name":"SaratogaShips#name","type":"MethodDefinition","paramnames":["name","language","limit"]},"vars":{"":null}},"description":"

    Searches for a specific ship. (EN, CN, JP, KR names are supported)

    ","params":[{"type":{"names":["string"]},"description":"

    name of the ship you want to search for

    ","name":"name"},{"type":{"names":["string"]},"description":"

    optional language to search by

    ","name":"language"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Ship","null"]}}],"name":"name","longname":"SaratogaShips#name","kind":"function","scope":"instance","$longname":"SaratogaShips#name","$kind":"method","$docmaLink":"?api#SaratogaShips#name"},{"comment":"/**\n * Custom search for data in Fuse instance\n * @param {any} options Fuse search options\n */","meta":{"range":[2991,3098],"filename":"SaratogaShips.js","lineno":102,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001605","name":"SaratogaShips#search","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"

    Custom search for data in Fuse instance

    ","params":[{"type":{"names":["any"]},"description":"

    Fuse search options

    ","name":"options"}],"name":"search","longname":"SaratogaShips#search","kind":"function","memberof":"SaratogaShips","scope":"instance","$longname":"SaratogaShips#search","$kind":"method","$docmaLink":"?api#SaratogaShips#search"},{"comment":"/**\n * Lists all the ships that matches a specific shjp class\n * @param {string} shipClass class of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[4410,4540],"filename":"SaratogaShips.js","lineno":166,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001762","name":"ShipExtFilter#class","type":"MethodDefinition","paramnames":["shipClass"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific shjp class

    ","params":[{"type":{"names":["string"]},"description":"

    class of the ship you want to search for (Case Sensitive)

    ","name":"shipClass"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"ShipExtFilter#class","longname":"SaratogaShips.ShipExtFilter#class","kind":"function","scope":"static","$longname":"SaratogaShips.ShipExtFilter#class","$kind":"method","$docmaLink":"?api#SaratogaShips.ShipExtFilter#class"},{"comment":"/**\n * Lists all the ships that matches a specific ship nationality\n * @param {string} nationality nationality of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[4797,4943],"filename":"SaratogaShips.js","lineno":177,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001788","name":"ShipExtFilter#nationality","type":"MethodDefinition","paramnames":["nationality"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship nationality

    ","params":[{"type":{"names":["string"]},"description":"

    nationality of the ship you want to search for (Case Sensitive)

    ","name":"nationality"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"ShipExtFilter#nationality","longname":"SaratogaShips.ShipExtFilter#nationality","kind":"function","scope":"static","$longname":"SaratogaShips.ShipExtFilter#nationality","$kind":"method","$docmaLink":"?api#SaratogaShips.ShipExtFilter#nationality"},{"comment":"/**\n * Lists all the ship that matches a specific rarity\n * @param {string} rarity rarity of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[5558,5684],"filename":"SaratogaShips.js","lineno":199,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001840","name":"ShipExtFilter#rarity","type":"MethodDefinition","paramnames":["rarity"]},"vars":{"":null}},"description":"

    Lists all the ship that matches a specific rarity

    ","params":[{"type":{"names":["string"]},"description":"

    rarity of the ship you want to search for (Case Sensitive)

    ","name":"rarity"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"ShipExtFilter#rarity","longname":"SaratogaShips.ShipExtFilter#rarity","kind":"function","scope":"static","$longname":"SaratogaShips.ShipExtFilter#rarity","$kind":"method","$docmaLink":"?api#SaratogaShips.ShipExtFilter#rarity"},{"comment":"/**\n * Lists all the ships that matches a specific ship hull type\n * @param {string} hullType hullType of the ship you want to search for (Case Sensitive)\n * @memberof SaratogaShips\n * @returns {Array | null}\n */","meta":{"range":[5192,5322],"filename":"SaratogaShips.js","lineno":188,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001814","name":"ShipExtFilter#type","type":"MethodDefinition","paramnames":["hullType"]},"vars":{"":null}},"description":"

    Lists all the ships that matches a specific ship hull type

    ","params":[{"type":{"names":["string"]},"description":"

    hullType of the ship you want to search for (Case Sensitive)

    ","name":"hullType"}],"memberof":"SaratogaShips","returns":[{"type":{"names":["Array.","null"]}}],"name":"ShipExtFilter#type","longname":"SaratogaShips.ShipExtFilter#type","kind":"function","scope":"static","$longname":"SaratogaShips.ShipExtFilter#type","$kind":"method","$docmaLink":"?api#SaratogaShips.ShipExtFilter#type"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[198,306],"filename":"SaratogaShips.js","lineno":9,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001305","name":"SaratogaShips","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaShips","longname":"SaratogaShips","kind":"class","scope":"global","$longname":"SaratogaShips","$kind":"constructor","$docmaLink":"?api#SaratogaShips"}},{"comment":"/**\n * Ship related getters for Saratoga\n * @class SaratogaShips\n */","meta":{"filename":"SaratogaShips.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    Ship related getters for Saratoga

    ","kind":"class","name":"SaratogaShips","longname":"SaratogaShips","scope":"global","$longname":"SaratogaShips","$kind":"class","$docmaLink":"?api#SaratogaShips"},{"comment":"/**\n * 本APIの出発点\n * Saratoga, the starting point of this API\n * @class SaratogaStore\n */","meta":{"filename":"SaratogaStore.js","lineno":12,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{}},"description":"

    本APIの出発点\nSaratoga, the starting point of this API

    ","kind":"class","name":"SaratogaStore","longname":"SaratogaStore","scope":"global","$longname":"SaratogaStore","$kind":"class","$docmaLink":"?api#SaratogaStore","$members":[{"comment":"/**\n * 連打関連ゲッター\n * Barrage related getters for this store\n * @type {SaratogaBarrages}\n */","meta":{"range":[1947,1989],"filename":"SaratogaStore.js","lineno":59,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001988","name":"this.barrages","type":"NewExpression","value":"","paramnames":[]}},"description":"

    連打関連ゲッター\nBarrage related getters for this store

    ","type":{"names":["SaratogaBarrages"]},"name":"barrages","longname":"SaratogaStore#barrages","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#barrages","$kind":"property","$docmaLink":"?api#SaratogaStore#barrages"},{"comment":"/**\n * 装置関連ゲッター\n * Equipment related getters for this store\n * @type {SaratogaEquipments}\n */","meta":{"range":[1376,1422],"filename":"SaratogaStore.js","lineno":41,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001980","name":"this.equipments","type":"NewExpression","value":"","paramnames":[]}},"description":"

    装置関連ゲッター\nEquipment related getters for this store

    ","type":{"names":["SaratogaEquipments"]},"name":"equipments","longname":"SaratogaStore#equipments","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#equipments","$kind":"property","$docmaLink":"?api#SaratogaStore#equipments"},{"comment":"/**\n * 旧装置のAPI\n * Legacy Equipments API\n * @type {LegacyEquipments}\n */","meta":{"range":[2341,2391],"filename":"SaratogaStore.js","lineno":75,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100002004","name":"this.legacyEquipments","type":"NewExpression","value":"","paramnames":[]}},"description":"

    旧装置のAPI\nLegacy Equipments API

    ","type":{"names":["LegacyEquipments"]},"name":"legacyEquipments","longname":"SaratogaStore#legacyEquipments","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#legacyEquipments","$kind":"property","$docmaLink":"?api#SaratogaStore#legacyEquipments"},{"comment":"/**\n * 旧船のAPI\n * Legacy Ships API\n * @type {LegacyShips}\n */","meta":{"range":[2180,2220],"filename":"SaratogaStore.js","lineno":69,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001996","name":"this.legacyShips","type":"NewExpression","value":"","paramnames":[]}},"description":"

    旧船のAPI\nLegacy Ships API

    ","type":{"names":["LegacyShips"]},"name":"legacyShips","longname":"SaratogaStore#legacyShips","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#legacyShips","$kind":"property","$docmaLink":"?api#SaratogaStore#legacyShips"},{"comment":"/**\n * 準備完了状態\n * If this store is already ready to operate\n * @type {Boolean}\n */","meta":{"range":[2711,2729],"filename":"SaratogaStore.js","lineno":87,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100002020","name":"this.ready","type":"Literal","value":false,"paramnames":[]}},"description":"

    準備完了状態\nIf this store is already ready to operate

    ","type":{"names":["Boolean"]},"name":"ready","longname":"SaratogaStore#ready","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#ready","$kind":"property","$docmaLink":"?api#SaratogaStore#ready"},{"comment":"/**\n * このインスタンスを生成したsaratogaインスタンス\n * The saratoga instance that generated this instance\n * @type {Saratoga}\n */","meta":{"range":[939,963],"filename":"SaratogaStore.js","lineno":27,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001946","name":"this.saratoga","type":"Identifier","value":"saratoga","paramnames":[]}},"description":"

    このインスタンスを生成したsaratogaインスタンス\nThe saratoga instance that generated this instance

    ","type":{"names":["Saratoga"]},"name":"saratoga","longname":"SaratogaStore#saratoga","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#saratoga","$kind":"property","$docmaLink":"?api#SaratogaStore#saratoga"},{"comment":"/**\n * 船に関するゲッター\n * Ship related getters for this store\n * @type {SaratogaShips}\n */","meta":{"range":[1098,1134],"filename":"SaratogaStore.js","lineno":33,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001952","name":"this.ships","type":"NewExpression","value":"","paramnames":[]}},"description":"

    船に関するゲッター\nShip related getters for this store

    ","type":{"names":["SaratogaShips"]},"name":"ships","longname":"SaratogaStore#ships","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#ships","$kind":"property","$docmaLink":"?api#SaratogaStore#ships"},{"comment":"/**\n * アップデータクラス\n * Updater Class for the local data for this store\n * @type {SaratogaUpdater}\n */","meta":{"range":[2539,2579],"filename":"SaratogaStore.js","lineno":81,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100002012","name":"this.updater","type":"NewExpression","value":"","paramnames":[]}},"description":"

    アップデータクラス\nUpdater Class for the local data for this store

    ","type":{"names":["SaratogaUpdater"]},"name":"updater","longname":"SaratogaStore#updater","kind":"member","memberof":"SaratogaStore","scope":"instance","$longname":"SaratogaStore#updater","$kind":"property","$docmaLink":"?api#SaratogaStore#updater"}],"$constructor":{"comment":"/**\n * @param {Saratoga} saratoga The saratoga class that generated this instance このインスタンスを生成したSaratogaクラス\n */","meta":{"range":[754,3562],"filename":"SaratogaStore.js","lineno":21,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001940","name":"SaratogaStore","type":"MethodDefinition","paramnames":["saratoga"]},"vars":{"":null}},"params":[{"type":{"names":["Saratoga"]},"description":"

    The saratoga class that generated this instance このインスタンスを生成したSaratogaクラス

    ","name":"saratoga"}],"name":"SaratogaStore","longname":"SaratogaStore","kind":"class","scope":"global","$longname":"SaratogaStore","$kind":"constructor","$docmaLink":"?api#SaratogaStore"}},{"comment":"/**\n * Manages the local data & cache updates\n * @class SaratogaUpdater\n */","meta":{"filename":"SaratogaUpdater.js","lineno":5,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{}},"description":"

    Manages the local data & cache updates

    ","kind":"class","name":"SaratogaUpdater","longname":"SaratogaUpdater","scope":"global","$longname":"SaratogaUpdater","$kind":"class","$docmaLink":"?api#SaratogaUpdater","$members":[{"comment":"/**\n * アップデートの確認\n * Checks if there is new updates for ship or equipment data\n * @memberof SaratogaUpdater\n * @returns {Promise}\n * @example\n * const api = new Saratoga();\n * api.updater.checkForUpdate()\n * .then((response) => {\n * if (response.shipUpdateAvailable || response.equipmentUpdateAvailable) console.log('update available');\n * })\n */","meta":{"range":[3607,4019],"filename":"SaratogaUpdater.js","lineno":92,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100003086","name":"SaratogaUpdater#checkForUpdate","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    アップデートの確認\nChecks if there is new updates for ship or equipment data

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"examples":["const api = new Saratoga();\napi.updater.checkForUpdate()\n .then((response) => {\n if (response.shipUpdateAvailable || response.equipmentUpdateAvailable) console.log('update available');\n })"],"name":"checkForUpdate","longname":"SaratogaUpdater#checkForUpdate","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#checkForUpdate","$kind":"method","$docmaLink":"?api#SaratogaUpdater#checkForUpdate"},{"comment":"/**\n * キャッシュの更新\n * Updates the Cached Data, loaded from the local files of Saratoga\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[5435,5610],"filename":"SaratogaUpdater.js","lineno":139,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100003206","name":"SaratogaUpdater#updateCache","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    キャッシュの更新\nUpdates the Cached Data, loaded from the local files of Saratoga

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateCache","longname":"SaratogaUpdater#updateCache","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateCache","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateCache"},{"comment":"/**\n * 全てを更新\n * Updates the Local Files & Cached Data in one method, good for single process scenarios as it's easy. Not for multi sharded programs that has its own Saratoga instance per shard.\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[3083,3189],"filename":"SaratogaUpdater.js","lineno":75,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100003070","name":"SaratogaUpdater#updateDataAndCache","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    全てを更新\nUpdates the Local Files & Cached Data in one method, good for single process scenarios as it's easy. Not for multi sharded programs that has its own Saratoga instance per shard.

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateDataAndCache","longname":"SaratogaUpdater#updateDataAndCache","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateDataAndCache","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateDataAndCache"},{"comment":"/**\n * ファイルの更新\n * Updates the Local Files of Saratoga if there is an update\n * @memberof SaratogaUpdater\n * @returns {Promise}\n */","meta":{"range":[4186,5260],"filename":"SaratogaUpdater.js","lineno":107,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100003106","name":"SaratogaUpdater#updateLocalData","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    ファイルの更新\nUpdates the Local Files of Saratoga if there is an update

    ","memberof":"SaratogaUpdater","returns":[{"type":{"names":["Promise."]}}],"name":"updateLocalData","longname":"SaratogaUpdater#updateLocalData","kind":"function","scope":"instance","params":[],"async":true,"$longname":"SaratogaUpdater#updateLocalData","$kind":"method","$docmaLink":"?api#SaratogaUpdater#updateLocalData"},{"comment":"/**\n * The cron update checker which is responsible for Saratoga#updateAvailable event\n * @type {?Timeout}\n */","meta":{"range":[830,852],"filename":"SaratogaUpdater.js","lineno":28,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002800","name":"this.cronUpdate","type":"Literal","value":null,"paramnames":[]}},"description":"

    The cron update checker which is responsible for Saratoga#updateAvailable event

    ","type":{"names":["Timeout"]},"nullable":true,"name":"cronUpdate","longname":"SaratogaUpdater#cronUpdate","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#cronUpdate","$kind":"property","$docmaLink":"?api#SaratogaUpdater#cronUpdate"},{"comment":"/**\n * If the data directory of this updater is ready to operate\n * @type {Boolean}\n */","meta":{"range":[652,677],"filename":"SaratogaUpdater.js","lineno":23,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002794","name":"this.dataDirReady","type":"Literal","value":false,"paramnames":[]}},"description":"

    If the data directory of this updater is ready to operate

    ","type":{"names":["Boolean"]},"name":"dataDirReady","longname":"SaratogaUpdater#dataDirReady","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#dataDirReady","$kind":"property","$docmaLink":"?api#SaratogaUpdater#dataDirReady"},{"comment":"/**\n * The saratoga instance that generated this instance\n * @type {Saratoga}\n */","meta":{"range":[963,1021],"filename":"SaratogaUpdater.js","lineno":35,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002805","name":"SaratogaUpdater#saratoga","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    The saratoga instance that generated this instance

    ","type":{"names":["Saratoga"]},"name":"saratoga","longname":"SaratogaUpdater#saratoga","kind":"member","memberof":"SaratogaUpdater","scope":"instance","params":[],"$longname":"SaratogaUpdater#saratoga","$kind":"property","$docmaLink":"?api#SaratogaUpdater#saratoga"},{"comment":"/**\n * The updater instance that generated this instance\n * @type {SaratogaStore}\n */","meta":{"range":[504,522],"filename":"SaratogaUpdater.js","lineno":18,"columnno":8,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002788","name":"this.store","type":"Identifier","value":"store","paramnames":[]}},"description":"

    The updater instance that generated this instance

    ","type":{"names":["SaratogaStore"]},"name":"store","longname":"SaratogaUpdater#store","kind":"member","memberof":"SaratogaUpdater","scope":"instance","$longname":"SaratogaUpdater#store","$kind":"property","$docmaLink":"?api#SaratogaUpdater#store"}],"$constructor":{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[357,859],"filename":"SaratogaUpdater.js","lineno":13,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100002782","name":"SaratogaUpdater","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaUpdater","longname":"SaratogaUpdater","kind":"class","scope":"global","$longname":"SaratogaUpdater","$kind":"constructor","$docmaLink":"?api#SaratogaUpdater"}},{"comment":"","meta":{"range":[122,250],"filename":"SaratogaValidator.js","lineno":5,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/updater","code":{"id":"astnode100003597","name":"SaratogaValidator","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"undocumented":true,"name":"SaratogaValidator","longname":"SaratogaValidator","kind":"class","scope":"global","params":[],"$longname":"SaratogaValidator","$kind":"constructor","$docmaLink":"?api#SaratogaValidator"},{"comment":"/**\n * @param {SaratogaStore} store The updater instance that generated this instance\n */","meta":{"range":[142,250],"filename":"SaratogaVoicelines.js","lineno":6,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100002706","name":"SaratogaVoicelines","type":"MethodDefinition","paramnames":["store"]},"vars":{"":null}},"params":[{"type":{"names":["SaratogaStore"]},"description":"

    The updater instance that generated this instance

    ","name":"store"}],"name":"SaratogaVoicelines","longname":"SaratogaVoicelines","kind":"class","scope":"global","$longname":"SaratogaVoicelines","$kind":"constructor","$docmaLink":"?api#SaratogaVoicelines"},{"comment":"","meta":{"range":[3147,3185],"filename":"SaratogaShips.js","lineno":109,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001629","name":"ShipExtAll","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"undocumented":true,"name":"ShipExtAll","longname":"ShipExtAll","kind":"class","scope":"global","params":[],"$longname":"ShipExtAll","$kind":"constructor","$docmaLink":"?api#ShipExtAll"},{"comment":"","meta":{"range":[4130,4168],"filename":"SaratogaShips.js","lineno":157,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001755","name":"ShipExtFilter","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"undocumented":true,"name":"ShipExtFilter","longname":"ShipExtFilter","kind":"class","scope":"global","params":[],"$longname":"ShipExtFilter","$kind":"constructor","$docmaLink":"?api#ShipExtFilter"},{"comment":"/**\n * Custom filter for equipment data\n * @param {requestCallback} callback the callback that handles the response\n */","meta":{"range":[1989,2101],"filename":"LegacyEquipments.js","lineno":62,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000370","name":"LegacyEquipments#filter","type":"MethodDefinition","paramnames":["callback"]},"vars":{"":null}},"description":"

    Custom filter for equipment data

    ","params":[{"type":{"names":["requestCallback"]},"description":"

    the callback that handles the response

    ","name":"callback"}],"name":"filter","longname":"LegacyEquipments#filter","kind":"function","memberof":"LegacyEquipments","scope":"instance","$longname":"LegacyEquipments#filter","$kind":"method","$docmaLink":"?api#LegacyEquipments#filter"},{"comment":"/**\n * Custom search for data in Fuse instance\n * @param {any} options Fuse search options\n */","meta":{"range":[2217,2324],"filename":"LegacyEquipments.js","lineno":70,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000390","name":"LegacyEquipments#search","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"

    Custom search for data in Fuse instance

    ","params":[{"type":{"names":["any"]},"description":"

    Fuse search options

    ","name":"options"}],"name":"search","longname":"LegacyEquipments#search","kind":"function","memberof":"LegacyEquipments","scope":"instance","$longname":"LegacyEquipments#search","$kind":"method","$docmaLink":"?api#LegacyEquipments#search"},{"comment":"/**\n * Custom filter for ship data\n * @param {requestCallback} callback the callback that handles the response\n */","meta":{"range":[3095,3207],"filename":"LegacyShips.js","lineno":97,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000652","name":"LegacyShips#filter","type":"MethodDefinition","paramnames":["callback"]},"vars":{"":null}},"description":"

    Custom filter for ship data

    ","params":[{"type":{"names":["requestCallback"]},"description":"

    the callback that handles the response

    ","name":"callback"}],"name":"filter","longname":"LegacyShips#filter","kind":"function","memberof":"LegacyShips","scope":"instance","$longname":"LegacyShips#filter","$kind":"method","$docmaLink":"?api#LegacyShips#filter"},{"comment":"/**\n * Custom search for data in Fuse instance\n * @param {any} options Fuse search options\n */","meta":{"range":[3323,3430],"filename":"LegacyShips.js","lineno":105,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000672","name":"LegacyShips#search","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"

    Custom search for data in Fuse instance

    ","params":[{"type":{"names":["any"]},"description":"

    Fuse search options

    ","name":"options"}],"name":"search","longname":"LegacyShips#search","kind":"function","memberof":"LegacyShips","scope":"instance","$longname":"LegacyShips#search","$kind":"method","$docmaLink":"?api#LegacyShips#search"},{"comment":"/**\n * Get an unfiltered barrage list\n */","meta":{"range":[2225,2309],"filename":"SaratogaBarrages.js","lineno":74,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000906","name":"SaratogaBarrages#all","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Get an unfiltered barrage list

    ","name":"all","longname":"SaratogaBarrages#all","kind":"function","memberof":"SaratogaBarrages","scope":"instance","params":[],"$longname":"SaratogaBarrages#all","$kind":"method","$docmaLink":"?api#SaratogaBarrages#all"},{"comment":"/**\n * Custom filter for barrage data\n * @param {requestCallback} callback the callback that handles the response\n */","meta":{"range":[2449,2561],"filename":"SaratogaBarrages.js","lineno":83,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000921","name":"SaratogaBarrages#filter","type":"MethodDefinition","paramnames":["callback"]},"vars":{"":null}},"description":"

    Custom filter for barrage data

    ","params":[{"type":{"names":["requestCallback"]},"description":"

    the callback that handles the response

    ","name":"callback"}],"name":"filter","longname":"SaratogaBarrages#filter","kind":"function","memberof":"SaratogaBarrages","scope":"instance","$longname":"SaratogaBarrages#filter","$kind":"method","$docmaLink":"?api#SaratogaBarrages#filter"},{"comment":"/**\n * Searches for a specific barrage based on hull\n * @param {string} hull name of the hull that you want to search a barrage for\n * @memberof SaratogaBarrages\n * @returns {Barrage | null}\n */","meta":{"range":[1974,2165],"filename":"SaratogaBarrages.js","lineno":64,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000869","name":"SaratogaBarrages#hull","type":"MethodDefinition","paramnames":["hull"]},"vars":{"":null}},"description":"

    Searches for a specific barrage based on hull

    ","params":[{"type":{"names":["string"]},"description":"

    name of the hull that you want to search a barrage for

    ","name":"hull"}],"memberof":"SaratogaBarrages","returns":[{"type":{"names":["Barrage","null"]}}],"name":"hull","longname":"SaratogaBarrages#hull","kind":"function","scope":"instance","$longname":"SaratogaBarrages#hull","$kind":"method","$docmaLink":"?api#SaratogaBarrages#hull"},{"comment":"/**\n * Fetches a specific barrage via its id\n * @param {string} id id of the barrage you want to fetch\n * @memberof SaratogaBarrages\n * @returns {Barrage | null}\n */","meta":{"range":[649,832],"filename":"SaratogaBarrages.js","lineno":24,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000756","name":"SaratogaBarrages#id","type":"MethodDefinition","paramnames":["id"]},"vars":{"":null}},"description":"

    Fetches a specific barrage via its id

    ","params":[{"type":{"names":["string"]},"description":"

    id of the barrage you want to fetch

    ","name":"id"}],"memberof":"SaratogaBarrages","returns":[{"type":{"names":["Barrage","null"]}}],"name":"id","longname":"SaratogaBarrages#id","kind":"function","scope":"instance","$longname":"SaratogaBarrages#id","$kind":"method","$docmaLink":"?api#SaratogaBarrages#id"},{"comment":"/**\n * Searches for a specific barrage\n * @param {string} name name of the barrage you want to search for\n * @param {number} [limit=10] limit of the search results\n * @memberof SaratogaBarrages\n * @returns {Barrage | null}\n */","meta":{"range":[1093,1314],"filename":"SaratogaBarrages.js","lineno":38,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000793","name":"SaratogaBarrages#name","type":"MethodDefinition","paramnames":["name","limit"]},"vars":{"":null}},"description":"

    Searches for a specific barrage

    ","params":[{"type":{"names":["string"]},"description":"

    name of the barrage you want to search for

    ","name":"name"},{"type":{"names":["number"]},"optional":true,"defaultvalue":10,"description":"

    limit of the search results

    ","name":"limit"}],"memberof":"SaratogaBarrages","returns":[{"type":{"names":["Barrage","null"]}}],"name":"name","longname":"SaratogaBarrages#name","kind":"function","scope":"instance","$longname":"SaratogaBarrages#name","$kind":"method","$docmaLink":"?api#SaratogaBarrages#name"},{"comment":"/**\n * Custom search for data in Fuse instance\n * @param {any} options Fuse search options\n */","meta":{"range":[2677,2784],"filename":"SaratogaBarrages.js","lineno":91,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000941","name":"SaratogaBarrages#search","type":"MethodDefinition","paramnames":["options"]},"vars":{"":null}},"description":"

    Custom search for data in Fuse instance

    ","params":[{"type":{"names":["any"]},"description":"

    Fuse search options

    ","name":"options"}],"name":"search","longname":"SaratogaBarrages#search","kind":"function","memberof":"SaratogaBarrages","scope":"instance","$longname":"SaratogaBarrages#search","$kind":"method","$docmaLink":"?api#SaratogaBarrages#search"},{"comment":"/**\n * Searches for a specific barrage based on usable ship\n * @param {string} ship name of the ship that you want to search a barrage for\n * @memberof SaratogaBarrages\n * @returns {Barrage | null}\n */","meta":{"range":[1546,1745],"filename":"SaratogaBarrages.js","lineno":51,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100000830","name":"SaratogaBarrages#ships","type":"MethodDefinition","paramnames":["ship"]},"vars":{"":null}},"description":"

    Searches for a specific barrage based on usable ship

    ","params":[{"type":{"names":["string"]},"description":"

    name of the ship that you want to search a barrage for

    ","name":"ship"}],"memberof":"SaratogaBarrages","returns":[{"type":{"names":["Barrage","null"]}}],"name":"ships","longname":"SaratogaBarrages#ships","kind":"function","scope":"instance","$longname":"SaratogaBarrages#ships","$kind":"method","$docmaLink":"?api#SaratogaBarrages#ships"},{"comment":"/**\n * Get an unfiltered ship list\n */","meta":{"range":[3242,3326],"filename":"SaratogaShips.js","lineno":116,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001636","name":"ShipExtAll#get","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Get an unfiltered ship list

    ","name":"get","longname":"ShipExtAll#get","kind":"function","memberof":"ShipExtAll","scope":"instance","params":[],"$longname":"ShipExtAll#get","$kind":"method","$docmaLink":"?api#ShipExtAll#get"},{"comment":"/**\n * Filter ships via id\n */","meta":{"range":[3992,4078],"filename":"SaratogaShips.js","lineno":150,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001734","name":"ShipExtAll#id","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"

    Filter ships via id

    ","name":"id","longname":"ShipExtAll#id","kind":"function","memberof":"ShipExtAll","scope":"instance","params":[],"$longname":"ShipExtAll#id","$kind":"method","$docmaLink":"?api#ShipExtAll#id"},{"comment":"/**\n * Filter ships via language\n * @param {string} language \n */","meta":{"range":[3414,3943],"filename":"SaratogaShips.js","lineno":125,"columnno":4,"path":"/Users/yiyi/Desktop/Code/Saratoga/src/store","code":{"id":"astnode100001651","name":"ShipExtAll#name","type":"MethodDefinition","paramnames":["language"]},"vars":{"":null}},"description":"

    Filter ships via language

    ","params":[{"type":{"names":["string"]},"name":"language"}],"name":"name","longname":"ShipExtAll#name","kind":"function","memberof":"ShipExtAll","scope":"instance","$longname":"ShipExtAll#name","$kind":"method","$docmaLink":"?api#ShipExtAll#name"},{"comment":"/**\n * Barrage Data\n * @external Barrage\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":34,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Barrage Data

    ","kind":"external","name":"Barrage","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Barrage","scope":"global","$longname":"external:Barrage","$kind":"external","$docmaLink":"?api#external:Barrage"},{"comment":"/**\n * Chapter Data\n * @external Chapter\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":24,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Chapter Data

    ","kind":"external","name":"Chapter","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Chapter","scope":"global","$longname":"external:Chapter","$kind":"external","$docmaLink":"?api#external:Chapter"},{"comment":"/**\n * Equipment Data\n * @external Equipment\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":19,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Equipment Data

    ","kind":"external","name":"Equipment","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Equipment","scope":"global","$longname":"external:Equipment","$kind":"external","$docmaLink":"?api#external:Equipment"},{"comment":"/**\n * Node.js Event Emitter\n * @external EventEmitter\n * @see {@link https://nodejs.org/api/events.html}\n */","meta":{"filename":"index.js","lineno":1,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Node.js Event Emitter

    ","kind":"external","name":"EventEmitter","see":["{@link https://nodejs.org/api/events.html}"],"longname":"external:EventEmitter","scope":"global","$longname":"external:EventEmitter","$kind":"external","$docmaLink":"?api#external:EventEmitter"},{"comment":"/**\n * Ship Data\n * @external Ship\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#ship-getters}\n */","meta":{"filename":"index.js","lineno":13,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Ship Data

    ","kind":"external","name":"Ship","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#ship-getters}"],"longname":"external:Ship","scope":"global","$longname":"external:Ship","$kind":"external","$docmaLink":"?api#external:Ship"},{"comment":"/**\n * Node.js Timeout\n * @external Timeout\n * @see {@link https://nodejs.org/dist/latest/docs/api/timers.html#timers_class_timeout}\n */","meta":{"filename":"index.js","lineno":7,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Node.js Timeout

    ","kind":"external","name":"Timeout","see":["{@link https://nodejs.org/dist/latest/docs/api/timers.html#timers_class_timeout}"],"longname":"external:Timeout","scope":"global","$longname":"external:Timeout","$kind":"external","$docmaLink":"?api#external:Timeout"},{"comment":"/**\n * Voiceline Data\n * @external Voiceline\n * @see {@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}\n */","meta":{"filename":"index.js","lineno":29,"columnno":0,"path":"/Users/yiyi/Desktop/Code/Saratoga","code":{}},"description":"

    Voiceline Data

    ","kind":"external","name":"Voiceline","see":["{@link https://github.com/AzurAPI/Saratoga/wiki/More-Get-Methods#equipment-getters}"],"longname":"external:Voiceline","scope":"global","$longname":"external:Voiceline","$kind":"external","$docmaLink":"?api#external:Voiceline"}],"symbols":["external:Barrage","external:Chapter","external:Equipment","external:EventEmitter","external:Ship","external:Timeout","external:Voiceline","LegacyEquipments","LegacyEquipments#filter","LegacyEquipments#search","LegacyShips","LegacyShips#filter","LegacyShips#search","Saratoga","Saratoga#barrages","Saratoga#chapters","Saratoga#equipments","Saratoga#event:debug","Saratoga#event:error","Saratoga#event:ready","Saratoga#event:updateAvailable","Saratoga#legacyEquipments","Saratoga#legacyShips","Saratoga#ready","Saratoga#ships","Saratoga#store","Saratoga#updater","Saratoga#voicelines","SaratogaBarrages","SaratogaBarrages#all","SaratogaBarrages#filter","SaratogaBarrages#hull","SaratogaBarrages#id","SaratogaBarrages#name","SaratogaBarrages#search","SaratogaBarrages#ships","SaratogaChapters","SaratogaEquipments","SaratogaEquipments","SaratogaEquipments#all","SaratogaEquipments#category","SaratogaEquipments#filter","SaratogaEquipments.LegacyEquipments#getAllByCategory","SaratogaEquipments.LegacyEquipments#getAllByNationality","SaratogaEquipments.LegacyEquipments#searchByEquipmentName","SaratogaEquipments#name","SaratogaEquipments#nationality","SaratogaEquipments#search","SaratogaShips","SaratogaShips","SaratogaShips#filter","SaratogaShips#get","SaratogaShips#id","SaratogaShips.LegacyShips#getAllByClass","SaratogaShips.LegacyShips#getAllByHullType","SaratogaShips.LegacyShips#getAllByNationality","SaratogaShips.LegacyShips#getAllByRarity","SaratogaShips.LegacyShips#getById","SaratogaShips.LegacyShips#searchShipByName","SaratogaShips#name","SaratogaShips#search","SaratogaShips.ShipExtFilter#class","SaratogaShips.ShipExtFilter#nationality","SaratogaShips.ShipExtFilter#rarity","SaratogaShips.ShipExtFilter#type","SaratogaStore","SaratogaStore#barrages","SaratogaStore#equipments","SaratogaStore#legacyEquipments","SaratogaStore#legacyShips","SaratogaStore#ready","SaratogaStore#saratoga","SaratogaStore#ships","SaratogaStore#updater","SaratogaUpdater","SaratogaUpdater#checkForUpdate","SaratogaUpdater#cronUpdate","SaratogaUpdater#dataDirReady","SaratogaUpdater#saratoga","SaratogaUpdater#store","SaratogaUpdater#updateCache","SaratogaUpdater#updateDataAndCache","SaratogaUpdater#updateLocalData","SaratogaValidator","SaratogaVoicelines","ShipExtAll","ShipExtAll#get","ShipExtAll#id","ShipExtAll#name","ShipExtFilter"]}},"app":{"title":"Saratoga | An open source Azur Lane local library","routing":{"method":"query","caseSensitive":true},"entrance":"content:readme","base":"/Saratoga/","meta":null,"server":"static","favicon":""},"template":{"name":"docma-template-zebra","description":"Zebra - Default template for Docma. https://github.com/onury/docma","version":"2.3.1","supportedDocmaVersion":">=2.0.0","author":"Onur Yıldırım","license":"MIT","mainHTML":"index.html","options":{"title":{"label":"Saratoga","href":"."},"sidebar":{"enabled":true,"outline":"tree","collapsed":false,"toolbar":true,"itemsFolded":false,"itemsOverflow":"crop","badges":true,"search":true,"animations":true},"symbols":{"autoLink":true,"params":"list","enums":"list","props":"list","meta":false},"navbar":{"enabled":true,"dark":false,"animations":true,"menu":[{"label":"Readme","href":"."},{"label":"Documentation","href":"?api"},{"label":"GitHub","href":"https://github.com/AzurAPI/Saratoga"}],"fixed":true},"logo":null,"contentView":{"bookmarks":false,"faVersion":"5.5.0","faLibs":"all"}}},"partials":{"api":"docma-api","content":"docma-content","notFound":"docma-404"},"elementID":"docma-main","contentElementID":"docma-content","defaultApiName":"_def_","logsEnabled":false})); !function(){"use strict";var c="path"===docma.app.routing.method;function o(a){return(a.params[1]||"").replace(/\/$/,"")}function a(a,e){a=o(a)||docma._.defaultApiName,a=docma.createRoute(a,DocmaWeb.Route.Type.API);if(!a||!a.exists())return e();a.apply()}docma.app.base&&page.base(docma.app.base),page.redirect("(/)?"+docma.template.main,""),c&&(page("(/)?api/(.+)",a),page("(/)?api(/)?",a),page("(/)?(.*)",function(a,e){a=o(a),a=docma.createRoute(a,DocmaWeb.Route.Type.CONTENT);if(!a||!a.exists())return e();a.apply()})),page("(/)?",function(t,n){!function(){if(c){var a=sessionStorage.getItem("redirectPath")||null;if(a)return sessionStorage.removeItem("redirectPath"),docma.info("Redirecting to:",a),page.redirect(a),1}}()&&setTimeout(function(){var a,e,e=(e=(e=t.querystring)||window.location.search,(e=/^[?&]/.test(e)?e.slice(1):e)||null);if(c){if(e)return n();a=docma._.appEntranceRI}else docma.log("Query-string:",e),a=e?docma.createRouteFromQuery(e):docma._.appEntranceRI;if(!a||!a.exists())return n();function o(){docma._trigger(DocmaWeb.Event.Navigate,[a])}a.isCurrent()?o():a.apply(function(a){200===a&&o()})},100)}),page("*",function(a){docma.warn("Unknown Route:",a.path),docma.log("context:",a),docma.createRoute(null).apply()}),docma.info("Docma SPA Configuration:"),docma.info("App Title: ",docma.app.title),docma.info("Routing Method: ",docma.app.routing.method),docma.info("App Server: ",docma.app.server),docma.info("Base Path: ",docma.app.base),docma.info("Entrance Route ID: ",docma.app.entrance),window.onload=function(){docma._.initialLoad=!0,docma._.appEntranceRI=docma.createRouteFromID(docma.app.entrance),page.start({click:!0,popstate:!0,dispatch:!0,hashbang:!1,decodeURLComponents:!0}),docma.info("Docma SPA loaded!")}}(); \ No newline at end of file diff --git a/src/Saratoga.js b/src/Saratoga.js index 02f47c7..344b88a 100644 --- a/src/Saratoga.js +++ b/src/Saratoga.js @@ -2,6 +2,7 @@ const EventEmitter = require('events'); const SaratogaStore = require('./store/SaratogaStore'); /** + * 本APIの出発点 * Saratoga, the starting point of this API * @class Saratoga * @extends {EventEmitter} @@ -13,6 +14,7 @@ class Saratoga extends EventEmitter { constructor(options = { notifyForNewUpdates: false }) { super(); /** + * キャッシュデータの管理 * Contains methods and props for managing cached data * @type {SaratogaStore} */ @@ -21,12 +23,14 @@ class Saratoga extends EventEmitter { } /** + * デバッグデータがあるときに発せられる * Emitted when there is a debug data * @event Saratoga#debug - * @param {string} message Debug message + * @param {string} message Debug message 資料 * @memberof Saratoga */ /** + * エラーが発生したときに発せられる * Emitted when there is a pesky error * @event Saratoga#error * @param {Error} error The error encountered. @@ -35,6 +39,7 @@ class Saratoga extends EventEmitter { * Saratoga.on('error', console.error); */ /** + * 更新があったときに発せられる * Emitted when there is an update available for local data. Only available when Saratoga is initialized with notifyForNewUpdates set to true * @event Saratoga#updateAvailable * @param {Object} data What data needs updating @@ -47,12 +52,14 @@ class Saratoga extends EventEmitter { * }) */ /** + * 準備ができたときに発せられる * Emitted when Saratoga is ready * @event Saratoga#ready * @memberof Saratoga */ /** + * アップデータ * Contains methods for updating Saratoga's local data & cache * @type {SaratogaUpdater} */ @@ -61,6 +68,7 @@ class Saratoga extends EventEmitter { } /** + * 状態 * If Saratoga is ready to operate * @type {Boolean} */ @@ -69,6 +77,7 @@ class Saratoga extends EventEmitter { } /** + * 船のデータを取得する * Azur Lane's Ship related getter methods * @type {SaratogaShips} */ @@ -78,6 +87,7 @@ class Saratoga extends EventEmitter { } /** + * 装置のデータを取得する * Azur Lane's Equipment related getter methods * @type {SaratogaEquipments} */ @@ -86,6 +96,7 @@ class Saratoga extends EventEmitter { return this.store.equipments; } /** + * チャプターのデータを取得する * Chapters related getters for this store * @type {SaratogaChapters} */ @@ -94,6 +105,7 @@ class Saratoga extends EventEmitter { return this.store.chapters; } /** + * ボイスラインのデータを取得する * Voiceline related getters for this store * @type {SaratogaVoicelines} */ @@ -102,6 +114,7 @@ class Saratoga extends EventEmitter { return this.store.voicelines; } /** + * 連打のデータを取得する * Barrage related getters for this store * @type {SaratogaBarrages} */ @@ -110,7 +123,8 @@ class Saratoga extends EventEmitter { return this.store.barrages; } /** - * Azur Lane's Ship related getter methods with LegacyAPI + * 旧船のデータを取得する + * Azur Lane's Ship related getter methods with legacy API * @type {SaratogaLegacyShips} */ get legacyShips() { @@ -118,7 +132,8 @@ class Saratoga extends EventEmitter { return this.store.legacyShips; } /** - * Azur Lane's Equipment related getter methods with LegacyAPI + * 旧装置のデータを取得する + * Azur Lane's Equipment related getter methods with legacy API * @type {SaratogaLegacyEquipments} */ get legacyEquipments() { diff --git a/src/store/SaratogaBarrages.js b/src/store/SaratogaBarrages.js index 0ffdd02..02260b6 100644 --- a/src/store/SaratogaBarrages.js +++ b/src/store/SaratogaBarrages.js @@ -1 +1,97 @@ -// TODO \ No newline at end of file +class SaratogaBarrages { + /** + * @param {SaratogaStore} store The updater instance that generated this instance + */ + constructor(store) { + Object.defineProperty(this, '_store', { value: store, writable: false }); + } + get cache() { + if (!this._store._equipCache) return null; + return this._store._equipCache; + } + + get rawCache() { + if (!this.cache) return null; + return this.cache.list; + } + + /** + * Fetches a specific barrage via its id + * @param {string} id id of the barrage you want to fetch + * @memberof SaratogaBarrages + * @returns {Barrage | null} + */ + id(id) { + if (!this.rawCache) return null; + const barrage = this.rawCache.find(d => d.id === id); + if (!barrage.length) return null; + return barrage; + } + + /** + * Searches for a specific barrage + * @param {string} name name of the barrage you want to search for + * @param {number} [limit=10] limit of the search results + * @memberof SaratogaBarrages + * @returns {Barrage | null} + */ + name(name, limit = 10) { + if (!this.cache) return null; + const possibleBarrages = this.cache.search(name, { limit }); + if (!possibleBarrages.length) return null; + return possibleBarrages; + } + + /** + * Searches for a specific barrage based on usable ship + * @param {string} ship name of the ship that you want to search a barrage for + * @memberof SaratogaBarrages + * @returns {Barrage | null} + */ + ships(ship) { + if (!this.rawCache) return null; + const barrage = this.rawCache.find(d => d.ships.includes(ship)); + if (!barrage.length) return null; + return barrage; + } + + /** + * Searches for a specific barrage based on hull + * @param {string} hull name of the hull that you want to search a barrage for + * @memberof SaratogaBarrages + * @returns {Barrage | null} + */ + hull(hull) { + if (!this.rawCache) return null; + const barrage = this.rawCache.find(d => d.hull === hull); + if (!barrage.length) return null; + return barrage; + } + + /** + * Get an unfiltered barrage list + */ + all() { + if (!this.rawCache) return null; + return this.rawCache; + } + + /** + * Custom filter for barrage data + * @param {requestCallback} callback the callback that handles the response + */ + filter(callback) { + if (!this.rawCache) return null; + return this.rawCache.filter(callback); + } + /** + * Custom search for data in Fuse instance + * @param {any} options Fuse search options + */ + search(options) { + if (!this.rawCache) return null; + return this.cache.search(options); + } +} + +module.exports = SaratogaBarrages; \ No newline at end of file diff --git a/src/store/SaratogaChapters.js b/src/store/SaratogaChapters.js index 0ffdd02..4037b96 100644 --- a/src/store/SaratogaChapters.js +++ b/src/store/SaratogaChapters.js @@ -1 +1,18 @@ -// TODO \ No newline at end of file +// TODO +class SaratogaChapters { + /** + * @param {SaratogaStore} store The updater instance that generated this instance + */ + constructor(store) { + Object.defineProperty(this, '_store', { value: store, writable: false }); + } + get cache() { + if (!this._store._equipCache) return null; + return this._store._equipCache; + } + + get rawCache() { + if (!this.cache) return null; + return this.cache.list; + } +} \ No newline at end of file diff --git a/src/store/SaratogaStore.js b/src/store/SaratogaStore.js index e3b14c2..490434f 100644 --- a/src/store/SaratogaStore.js +++ b/src/store/SaratogaStore.js @@ -4,25 +4,29 @@ const ShipExtFilter = require('./SaratogaShips'); const SaratogaShips = require('./SaratogaShips'); const ShipExtAll = require('./SaratogaShips'); const SaratogaEquipments = require('./SaratogaEquipments'); +const SaratogaBarrages = require('./SaratogaBarrages'); const SaratogaUtil = require('../util/SaratogaUtil'); const LegacyShips = require('./LegacyShips'); const LegacyEquipments = require('./LegacyEquipments'); /** + * 本APIの出発点 * Saratoga, the starting point of this API * @class SaratogaStore */ class SaratogaStore { /** - * @param {Saratoga} saratoga The saratoga class that generated this instance + * @param {Saratoga} saratoga The saratoga class that generated this instance このインスタンスを生成したSaratogaクラス */ constructor(saratoga) { /** + * このインスタンスを生成したsaratogaインスタンス * The saratoga instance that generated this instance * @type {Saratoga} */ this.saratoga = saratoga; /** + * 船に関するゲッター * Ship related getters for this store * @type {SaratogaShips} */ @@ -30,36 +34,53 @@ class SaratogaStore { this.ships.all = new ShipExtAll(this); this.ships.sort = new ShipExtFilter(this); /** + * 装置関連ゲッター * Equipment related getters for this store * @type {SaratogaEquipments} */ this.equipments = new SaratogaEquipments(this); /** + * チャプター関連のゲッター * Chapters related getters for this store * @type {SaratogaChapters} */ - // this.chapters = new SaratogaChapters TODO + // this.chapters = new SaratogaChapters(this) /** + * ボイスライン関連ゲッター * Voiceline related getters for this store * @type {SaratogaVoicelines} */ - // this.voicelines = new SaratogaVOicelines TODO + // this.voicelines = new SaratogaVoicelines(this) /** + * 連打関連ゲッター * Barrage related getters for this store * @type {SaratogaBarrages} */ - // this.barrages = new SaratogaBarrages TODO + this.barrages = new SaratogaBarrages(this) /** + * Barrage関連ゲッター * Legacy API instances */ + /** + * 旧船のAPI + * Legacy Ships API + * @type {LegacyShips} + */ this.legacyShips = new LegacyShips(this) + /** + * 旧装置のAPI + * Legacy Equipments API + * @type {LegacyEquipments} + */ this.legacyEquipments = new LegacyEquipments(this) /** + * アップデータクラス * Updater Class for the local data for this store * @type {SaratogaUpdater} */ this.updater = new SaratogaUpdater(this); /** + * 準備完了状態 * If this store is already ready to operate * @type {Boolean} */ @@ -128,7 +149,7 @@ class SaratogaStore { rawBarrages = Object.values(rawBarrages); if (!rawBarrages.length) return; this.clearBarrageCache(); - this._barrageCache = new Fuse(rawBarrages, { keys: [ 'id', 'name' ], threshold: 0.4 }); + this._barrageCache = new Fuse(rawBarrages, { keys: [ 'name' ], threshold: 0.4 }); } clearShipsCache() { diff --git a/src/store/SaratogaVoicelines.js b/src/store/SaratogaVoicelines.js index 0ffdd02..103390f 100644 --- a/src/store/SaratogaVoicelines.js +++ b/src/store/SaratogaVoicelines.js @@ -1 +1,18 @@ -// TODO \ No newline at end of file +// TODO +class SaratogaVoicelines { + /** + * @param {SaratogaStore} store The updater instance that generated this instance + */ + constructor(store) { + Object.defineProperty(this, '_store', { value: store, writable: false }); + } + get cache() { + if (!this._store._equipCache) return null; + return this._store._equipCache; + } + + get rawCache() { + if (!this.cache) return null; + return this.cache.list; + } +} \ No newline at end of file diff --git a/src/types/barrage.d.ts b/src/types/barrage.d.ts new file mode 100644 index 0000000..7dad0ac --- /dev/null +++ b/src/types/barrage.d.ts @@ -0,0 +1,21 @@ +export type Url = string; +export type Ships = '22'|'33'|'Abercrombie'|'Abukuma'|'Acasta'|'Achilles'|'Admiral Graf Spee'|'Admiral Hipper'|'Admiral Hipper μ'|'Agano'|'Ajax'|'Akagi'|'Akagi μ'|'Akagi-chan'|'Akashi'|'Akatsuki'|'Alabama'|'Albacore'|'Albacore μ'|'Algérie'|'Amagi'|'Amazon'|'An Shan'|'Anniversary Kizuna AI'|'Aoba'|'Arashio'|'Ardent'|'Arethusa'|'Ariake'|'Arizona'|'Ark Royal'|'Asashio'|'Ashigara'|'Astoria'|'Atago'|'Atlanta'|'Aulick'|'Aurora'|'Avrora'|'Ayanami'|'Aylwin'|'Azuma'|'Bache'|'Bailey'|'Baltimore'|'Baltimore μ'|'Bataan'|'Beagle'|'Belfast'|'Benson'|'Biloxi'|'Birmingham'|'Bismarck'|'Black Heart'|'Black Prince'|'Blanc'|'Bluegill'|'Bogue'|'Bremerton'|'Brooklyn'|'Bulldog'|'Bunker Hill'|'Bush'|'Béarn'|'California'|'Carabiniere'|'Casablanca'|'Cassin'|'Cavalla'|'Centaur'|'Champagne'|'Chang Chun'|'Chapayev'|'Charles Ausburne'|'Chaser'|'Cheshire'|'Chicago'|'Chitose'|'Chiyoda'|'Choukai'|'Clevelad'|'Cleveland'|'Cleveland μ'|'Colorado'|'Columbia'|'Comet'|'Concord'|'Conte di Cavour'|'Cooper'|'Craven'|'Crescent'|'Curacoa'|'Curlew'|'Cygnet'|'Dace'|'Denver'|'Deutschland'|'Dewey'|'Dido'|'Dido μ'|'Dorsetshire'|'Downes'|'Drake'|'Duke of York'|'Dunkerque'|'Eagle'|'Echo'|'Edinburgh'|'Eldridge'|'Elegant Kizuna AI'|'Enterprise'|'Erebus'|'Eskimo'|'Essex'|'Exeter'|'Fiji'|'Fletcher'|'Foote'|'Forbin'|'Formidable'|'Fortune'|'Foxhound'|'Friedrich der Große'|'Fu Shun'|'Fubuki'|'Fumiruiru'|'Fumizuki'|'Furutaka'|'Fusou'|'Galatea'|'Gangut'|'Gascogne'|'Gascogne μ'|'Georgia'|'Giulio Cesare'|'Glasgow'|'Glorious'|'Gloucester'|'Glowworm'|'Gneisenau'|'Graf Zeppelin'|'Green Heart'|'Grenville'|'Gridley'|'Grozny'|'Halsey Powell'|'Hamakaze'|'Hammann'|'Hanazuki'|'Hardy'|'Haruna'|'Harutsuki'|'Hatakaze'|'Hatsuharu'|'Hatsushimo'|'Hazelwood'|'Helena'|'Hermes'|'Hermione'|'Hibiki'|'Hiei'|'Hiei-chan'|'Hiryuu'|'Hiyou'|'Hobby'|'Honoka'|'Honolulu'|'Hood'|'Hornet'|'Houshou'|'Houston'|'Howe'|'Hunter'|'Hyuuga'|'I-13'|'I-168'|'I-19'|'I-25'|'I-26'|'I-56'|'I-58'|'Ibuki'|'Icarus'|'Ikazuchi'|'Illustrious'|'Illustrious μ'|'Inazuma'|'Independence'|'Indianapolis'|'Intrepid'|'Ise'|'Isokaze'|'Isuzu'|'Izumo'|'Jamaica'|'Javelin'|'Jean Bart'|'Jeanne d\'Arc'|'Jenkins'|'Jersey'|'Jintsuu'|'Juneau'|'Juno'|'Junyou'|'Jupiter'|'Kaga'|'Kaga(BB)'|'Kagerou'|'Kako'|'Kalk'|'Kamikaze'|'Karlsruhe'|'Kashino'|'Kasumi'|'Kasumi'|'Kawakaze'|'Kent'|'Kii'|'Kimberly'|'King George V'|'Kinu'|'Kinugasa'|'Kirishima'|'Kisaragi'|'Kitakaze'|'Kiyonami'|'Kizuna AI'|'Kongou'|'Kumano'|'Kuon'|'Kuroshio'|'Köln'|'Königsberg'|'L\'Opiniâtre'|'La Galissonnière'|'Laffey'|'Langley'|'Le Malin'|'Le Malin μ'|'Le Mars'|'Le Triomphant'|'Le Téméraire'|'Leander'|'Leipzig'|'Lena'|'Lexington'|'Li\'l Sandy'|'Little Bel'|'Little Illustrious'|'Little Renown'|'Littorio'|'London'|'Long Island'|'Mainz'|'Makinami'|'Marblehead'|'Marie Rose'|'Maryland'|'Massachusetts'|'Matchless'|'Matsukaze'|'Maury'|'Maya'|'McCall'|'Memphis'|'Michishio'|'Mikasa'|'Mikazuki'|'Mikuma'|'Minato Aqua'|'Minazuki'|'Minneapolis'|'Minsk'|'Misaki'|'Mogami'|'Monarch'|'Monica'|'Montpelier'|'Mullany'|'Murasaki Shion'|'Musketeer'|'Mutsu'|'Mutsuki'|'Myoukou'|'Nachi'|'Naganami'|'Nagara'|'Nagato'|'Nagatsuki'|'Nagisa'|'Naka'|'Nakiri Ayame'|'Natsuiro Matsuri'|'Nekone'|'Nelson'|'Neptune'|'Neptune'|'Nevada'|'Newcastle'|'Nicholas'|'Niizuki'|'Ning Hai'|'Noire'|'Norfolk'|'North Carolina'|'Northampton'|'Noshiro'|'Nowaki'|'Nyotengu'|'Nürnberg'|'Odin'|'Oklahoma'|'Omaha'|'Ooshio'|'Oyashio'|'Pamiat\' Merkuria'|'Pennsylvania'|'Pensacola'|'Perseus'|'Peter Strasser'|'Phoenix'|'Ping Hai'|'Portland'|'Prince of Wales'|'Princeton'|'Prinz Eugen'|'Prinz Heinrich'|'Prototype Bulin MKII'|'Purple Heart'|'Queen Elizabeth'|'Quincy'|'Radford'|'Raleigh'|'Ranger'|'Reno'|'Renown'|'Repulse'|'Richelieu'|'Richmond'|'Rodney'|'Roon'|'Roon μ'|'Rurutie'|'Ryuuhou'|'Ryuujou'|'Saint Louis'|'Salt Lake City'|'San Diego'|'San Juan'|'Saraana'|'Saratoga'|'Scharnhorst'|'Seattle'|'Sendai'|'Shangri-La'|'Sheffield'|'Sheffield μ'|'Shigure'|'Shinano'|'Shirakami Fubuki'|'Shiranui'|'Shiratsuyu'|'Shouhou'|'Shoukaku'|'Shropshire'|'Sims'|'Sirius'|'Smalley'|'Souryuu'|'South Dakota'|'Southampton'|'Sovetskaya Rossiya'|'Specialized Bulin Custom MKIII'|'Spence'|'St. Louis'|'Stanly'|'Suffolk'|'Super Gamer Kizuna AI'|'Surcouf'|'Suruga'|'Sussex'|'Suzutsuki'|'Suzuya'|'Swiftsure'|'Tai Yuan'|'Taihou'|'Taihou μ'|'Takao'|'Tanikaze'|'Tartu'|'Tashkent'|'Tashkent μ'|'Tennessee'|'Terror'|'Thatcher'|'Tirpitz'|'Tokino Sora'|'Tosa'|'Trento'|'U-101'|'U-110'|'U-37'|'U-47'|'U-522'|'U-556'|'U-557'|'U-73'|'U-81'|'U-96'|'Unicorn'|'Universal Bulin'|'Urakaze'|'Uranami'|'Uruuru'|'Uzuki'|'Valiant'|'Vampire'|'Vauquelin'|'Vert'|'Vestal'|'Victorious'|'Vincennes'|'Wakaba'|'Warspite'|'Washington'|'Wasp'|'Weser'|'West Virginia'|'White Heart'|'Wichita'|'Yamashiro'|'Yat Sen'|'Yoizuki'|'York'|'Yorktown'|'Yukikaze'|'Yuubari'|'Yuudachi'|'Yuugure'|'Z1'|'Z18'|'Z19'|'Z2'|'Z20'|'Z21'|'Z23'|'Z24'|'Z25'|'Z26'|'Z28'|'Z35'|'Z36'|'Z46'|'Zara'|'Zeppy'|'Zuikaku'|'Émile Bertin'|'Ōkami Mio'; +export type Hull = 'DD' | 'CL' | 'CA' | 'CB' | 'BB' | 'BC' | 'BM' | 'BBV' | 'CV' | 'CVL' | 'AR' | 'SS' | 'SSV'; +export type RoundType = 'Normal' | 'Normal+' | 'Normal*' | 'HE' | 'HE+' | 'AP' | 'AP+/SHS' | 'SSD* Shell' | 'SSD* Fragments'; +export type Rounds = { + type: RoundType, + dmgL: number, + dmgM: number, + note?: string | null, + +} + +export class voiceline { + id: string; + type: string; + icon: Url; + name: string; + ships: [Ships]; + hull: Hull; + rounds: [Rounds] +} \ No newline at end of file diff --git a/src/types/ship.d.ts b/src/types/ship.d.ts new file mode 100644 index 0000000..77e7b80 --- /dev/null +++ b/src/types/ship.d.ts @@ -0,0 +1,170 @@ +export type Url = string; +export type Stat = 'health' | 'armor' | 'reload' | 'luck' | 'firepower' | 'torpedo' | 'evasion' | 'speed' | 'antiair' + | 'aviation' | 'oilConsumption' | 'accuracy' | 'antisubmarineWarfare' | 'oxygen' | 'ammunition' | 'huntingRange'; +export const isStat = (str: string) => ['health', 'armor', 'reload', 'luck', 'firepower', 'torpedo', 'evasion', 'speed', 'antiair' + , 'aviation', 'oilConsumption', 'accuracy', 'antisubmarineWarfare', 'oxygen', 'ammunition', 'huntingRange'].includes(str); +export type ShipID = string; +export type Rarity = 'Normal' | 'Rare' | 'Epic' | 'Super Rare' | 'Ultra Rare' | 'Priority' | 'Decisive' | 'Unreleased'; +export type LimitBreak = string[]; + +export type ShipNames = { // Ship's name + code: string; + en: string; + cn: string; + jp: string; + kr: string; +}; + +export type ShipStats = { + baseStats: Stats; + level100: Stats; + level120: Stats; + level100Retrofit?: Stats; + level120Retrofit?: Stats; +}; + +export type FleetTech = { // fleet tech stuff + statsBonus: { + collection?: Bonus; + maxLevel?: Bonus; + }; + techPoints: { + collection: number; + maxLimitBreak: number; + maxLevel: number; + total: number; + }; +}; + +export class Ship { + wikiUrl: Url; // An valid, full url to its wiki page + id: ShipID; // ID of ship, provided by the wiki (not in game id) + names: ShipNames; + thumbnail: Url; + hexagon: [number, number, number, number, number, number]; + class: string; // Ship's class + nationality: string;// Ship's nationality + hullType: string; // Ship type (Destroyer etc) + rarity: Rarity; // Super Rare, hopefully + stars: { + stars: string; + value: number; + }; + stats: ShipStats; + slots: [Slot, Slot, Slot]; + enhanceValue: { firepower: number, torpedo: number, aviation: number, reload: number }; + scrapValue: { + coin: number; + oil: number; + medal: number; + }; + skills: Skill[]; + skins: Skin[]; + gallery: GalleryItem[]; + limitBreaks: LimitBreak[]; // first layer = breaks, second layer = bonus + devLevels: DevLevel[] + fleetTech: FleetTech; + unreleased?: boolean; + retrofit: boolean; // if the ship is retrofittable + retrofitId: string; // the id after retrofit + retrofitHullType: string; // if the ship changes type + retrofitProjects: { [id: string]: RetrofitProject }; + construction: { + constructionTime: string; + availableIn: { + light: boolean; + heavy: boolean; + aviation: boolean; + limited: boolean; + exchange: boolean; + }; + }; + obtainedFrom: { + obtainedFrom?: string; // source, etc "Available in Medal Exchange for \"Medal\" 80." + fromMaps: string[]; // map ids, etc "1-1" "10-2" + }; + misc: { + artist?: Artist; + web?: Artist; + pixiv?: Artist; + twitter?: Artist; + voice?: Artist; + }; +} + +export type Bonus = { // on collection + applicable: string[]; // applicable ship types (i.e. Destroyer) + stat: Stat; // name of stat to enhance + bonus: string; // human-readable version of how much to enhance +}; + + +export type Stats = { + [k in Stat]?: string; +}; + +export type Slot = { + type: string; + kaiEfficiency?: number; + minEfficiency: number; + maxEfficiency: number; +} + +export type Skill = { + icon: Url; + names: { + en: string; + cn: string; + jp: string; + }; + description: string; + color: string; +} + +export type SkinInfo = { + enClient?: string; + cnClient?: string; + jpClient?: string; + cost?: number; + obtainedFrom: string; + live2dModel: boolean; +}; + +export interface Skin { + name: string; + chibi: Url; + image: Url; + cn?: Url; // censored + bg?: Url; // with background + nobg?: Url; // without background (only used internally) + background: Url; // scenery background + info: SkinInfo; +} + +export type GalleryItem = { + description: string; // self-explanatory + url: Url; // the image url +} + +export type Artist = { + name: string; + url: Url; +} + +export type ProjectID = string; +export type RetrofitProject = { + id: ProjectID; + grade: string; + attributes: string[]; + materials: string[]; + coins: number; + level: number; + levelBreakLevel: number; + levelBreakStars: string; + recurrence: number; + require: ProjectID[]; +} +export type DevLevel = { + level: string; + buffs: string[]; +} \ No newline at end of file diff --git a/src/types/voiceline.d.ts b/src/types/voiceline.d.ts new file mode 100644 index 0000000..e7d74fb --- /dev/null +++ b/src/types/voiceline.d.ts @@ -0,0 +1,13 @@ +export class Ship { + Default: Array; + // [Skin Name]: Array; // note: the skin name is directly from the wiki page + // ... +} + +export class Line { + event: string; // the event (touch etc) name + en?: string; // the line in english + zh?: string; // the line in chinese + jp?: string; // the line in japanese + audio?: string; // the line's audio url, file type = "audio/ogg" +} \ No newline at end of file diff --git a/src/updater/SaratogaUpdater.js b/src/updater/SaratogaUpdater.js index b2f90d8..e0ebfe4 100644 --- a/src/updater/SaratogaUpdater.js +++ b/src/updater/SaratogaUpdater.js @@ -67,6 +67,7 @@ class SaratogaUpdater { } /** + * 全てを更新 * Updates the Local Files & Cached Data in one method, good for single process scenarios as it's easy. Not for multi sharded programs that has its own Saratoga instance per shard. * @memberof SaratogaUpdater * @returns {Promise} @@ -77,6 +78,7 @@ class SaratogaUpdater { } /** + * アップデートの確認 * Checks if there is new updates for ship or equipment data * @memberof SaratogaUpdater * @returns {Promise} @@ -97,6 +99,7 @@ class SaratogaUpdater { } /** + * ファイルの更新 * Updates the Local Files of Saratoga if there is an update * @memberof SaratogaUpdater * @returns {Promise} @@ -128,6 +131,7 @@ class SaratogaUpdater { } /** + * キャッシュの更新 * Updates the Cached Data, loaded from the local files of Saratoga * @memberof SaratogaUpdater * @returns {Promise} From af97c9e1d935878ed17040b35b2ba3b3c3a5ad07 Mon Sep 17 00:00:00 2001 From: 0t4u <61939142+0t4u@users.noreply.github.com> Date: Mon, 10 May 2021 18:57:52 +0800 Subject: [PATCH 13/14] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7ddc041..8e82185 100644 --- a/README.md +++ b/README.md @@ -44,3 +44,4 @@ saratoga.on('error', console.error); ## Maintainer - [@Saya#0113](https://github.com/Deivu) +- [@Rattley#1529](https://github.com/0t4u) From ed25b07051fb95d54fa587f2b87a5403e6bd37fc Mon Sep 17 00:00:00 2001 From: 0t4u <61939142+0t4u@users.noreply.github.com> Date: Tue, 11 May 2021 19:40:46 +0800 Subject: [PATCH 14/14] Fix naming mistake --- src/types/barrage.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/types/barrage.d.ts b/src/types/barrage.d.ts index 7dad0ac..75f2dec 100644 --- a/src/types/barrage.d.ts +++ b/src/types/barrage.d.ts @@ -10,7 +10,7 @@ export type Rounds = { } -export class voiceline { +export class barrage { id: string; type: string; icon: Url;