@lycoristech/azurapi 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +25 -0
- package/README.md +113 -0
- package/data/id-map.json +3530 -0
- package/data/ship-list.json +4478 -0
- package/data/ships.json +143282 -0
- package/data/version.json +5 -0
- package/dist/cjs/client/AzurData.js +69 -0
- package/dist/cjs/client/fetcher.js +121 -0
- package/dist/cjs/client/index.js +7 -0
- package/dist/cjs/client/ships.js +80 -0
- package/dist/cjs/config.js +14 -0
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/ingest/files.js +134 -0
- package/dist/cjs/ingest/index.js +18 -0
- package/dist/cjs/ingest/upstream.js +12 -0
- package/dist/cjs/normalize/construction.js +186 -0
- package/dist/cjs/normalize/identity.js +131 -0
- package/dist/cjs/normalize/index.js +25 -0
- package/dist/cjs/normalize/misc.js +31 -0
- package/dist/cjs/normalize/retrofit.js +21 -0
- package/dist/cjs/normalize/ship.js +406 -0
- package/dist/cjs/normalize/skills.js +194 -0
- package/dist/cjs/normalize/skins.js +141 -0
- package/dist/cjs/normalize/slots.js +35 -0
- package/dist/cjs/normalize/stats.js +182 -0
- package/dist/cjs/output/index.js +20 -0
- package/dist/cjs/output/writeIdMap.js +52 -0
- package/dist/cjs/output/writeShipList.js +31 -0
- package/dist/cjs/output/writeShips.js +33 -0
- package/dist/cjs/output/writeVersion.js +23 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/schema/output/index.js +17 -0
- package/dist/cjs/schema/output/ship.js +169 -0
- package/dist/cjs/schema/raw/attributeInfoByType.js +11 -0
- package/dist/cjs/schema/raw/equipDataByType.js +12 -0
- package/dist/cjs/schema/raw/fleetTechGroup.js +10 -0
- package/dist/cjs/schema/raw/fleetTechShipClass.js +15 -0
- package/dist/cjs/schema/raw/fleetTechShipTemplate.js +20 -0
- package/dist/cjs/schema/raw/index.js +38 -0
- package/dist/cjs/schema/raw/shipDataBlueprint.js +11 -0
- package/dist/cjs/schema/raw/shipDataBreakout.js +17 -0
- package/dist/cjs/schema/raw/shipDataByStar.js +10 -0
- package/dist/cjs/schema/raw/shipDataByType.js +13 -0
- package/dist/cjs/schema/raw/shipDataCreateExchange.js +10 -0
- package/dist/cjs/schema/raw/shipDataGroup.js +22 -0
- package/dist/cjs/schema/raw/shipDataStatistics.js +24 -0
- package/dist/cjs/schema/raw/shipDataStrengthen.js +12 -0
- package/dist/cjs/schema/raw/shipDataTemplate.js +26 -0
- package/dist/cjs/schema/raw/shipDataTrans.js +13 -0
- package/dist/cjs/schema/raw/shipSkinTemplate.js +23 -0
- package/dist/cjs/schema/raw/shipSkinWords.js +11 -0
- package/dist/cjs/schema/raw/shopTemplate.js +14 -0
- package/dist/cjs/schema/raw/skillDataDisplay.js +11 -0
- package/dist/cjs/schema/raw/skillDataTemplate.js +17 -0
- package/dist/cjs/schema/raw/transformDataTemplate.js +18 -0
- package/dist/cjs/schema/raw/voiceActorCn.js +11 -0
- package/dist/cjs/translate/enums.js +131 -0
- package/dist/cjs/translate/index.js +19 -0
- package/dist/cjs/translate/lookups.js +63 -0
- package/dist/cjs/translate/strings.js +98 -0
- package/dist/client/AzurData.d.ts +25 -0
- package/dist/client/AzurData.d.ts.map +1 -0
- package/dist/client/AzurData.js +63 -0
- package/dist/client/AzurData.js.map +1 -0
- package/dist/client/fetcher.d.ts +25 -0
- package/dist/client/fetcher.d.ts.map +1 -0
- package/dist/client/fetcher.js +116 -0
- package/dist/client/fetcher.js.map +1 -0
- package/dist/client/index.d.ts +4 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +3 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/ships.d.ts +20 -0
- package/dist/client/ships.d.ts.map +1 -0
- package/dist/client/ships.js +74 -0
- package/dist/client/ships.js.map +1 -0
- package/dist/config.d.ts +5 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +12 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/ingest/files.d.ts +25 -0
- package/dist/ingest/files.d.ts.map +1 -0
- package/dist/ingest/files.js +108 -0
- package/dist/ingest/files.js.map +1 -0
- package/dist/ingest/index.d.ts +3 -0
- package/dist/ingest/index.d.ts.map +1 -0
- package/dist/ingest/index.js +3 -0
- package/dist/ingest/index.js.map +1 -0
- package/dist/ingest/upstream.d.ts +4 -0
- package/dist/ingest/upstream.d.ts.map +1 -0
- package/dist/ingest/upstream.js +6 -0
- package/dist/ingest/upstream.js.map +1 -0
- package/dist/normalize/construction.d.ts +30 -0
- package/dist/normalize/construction.d.ts.map +1 -0
- package/dist/normalize/construction.js +184 -0
- package/dist/normalize/construction.js.map +1 -0
- package/dist/normalize/identity.d.ts +47 -0
- package/dist/normalize/identity.d.ts.map +1 -0
- package/dist/normalize/identity.js +129 -0
- package/dist/normalize/identity.js.map +1 -0
- package/dist/normalize/index.d.ts +10 -0
- package/dist/normalize/index.d.ts.map +1 -0
- package/dist/normalize/index.js +10 -0
- package/dist/normalize/index.js.map +1 -0
- package/dist/normalize/misc.d.ts +15 -0
- package/dist/normalize/misc.d.ts.map +1 -0
- package/dist/normalize/misc.js +29 -0
- package/dist/normalize/misc.js.map +1 -0
- package/dist/normalize/retrofit.d.ts +14 -0
- package/dist/normalize/retrofit.d.ts.map +1 -0
- package/dist/normalize/retrofit.js +19 -0
- package/dist/normalize/retrofit.js.map +1 -0
- package/dist/normalize/ship.d.ts +67 -0
- package/dist/normalize/ship.d.ts.map +1 -0
- package/dist/normalize/ship.js +369 -0
- package/dist/normalize/ship.js.map +1 -0
- package/dist/normalize/skills.d.ts +20 -0
- package/dist/normalize/skills.d.ts.map +1 -0
- package/dist/normalize/skills.js +192 -0
- package/dist/normalize/skills.js.map +1 -0
- package/dist/normalize/skins.d.ts +14 -0
- package/dist/normalize/skins.d.ts.map +1 -0
- package/dist/normalize/skins.js +139 -0
- package/dist/normalize/skins.js.map +1 -0
- package/dist/normalize/slots.d.ts +14 -0
- package/dist/normalize/slots.d.ts.map +1 -0
- package/dist/normalize/slots.js +33 -0
- package/dist/normalize/slots.js.map +1 -0
- package/dist/normalize/stats.d.ts +19 -0
- package/dist/normalize/stats.d.ts.map +1 -0
- package/dist/normalize/stats.js +180 -0
- package/dist/normalize/stats.js.map +1 -0
- package/dist/output/index.d.ts +5 -0
- package/dist/output/index.d.ts.map +1 -0
- package/dist/output/index.js +5 -0
- package/dist/output/index.js.map +1 -0
- package/dist/output/writeIdMap.d.ts +16 -0
- package/dist/output/writeIdMap.d.ts.map +1 -0
- package/dist/output/writeIdMap.js +47 -0
- package/dist/output/writeIdMap.js.map +1 -0
- package/dist/output/writeShipList.d.ts +9 -0
- package/dist/output/writeShipList.d.ts.map +1 -0
- package/dist/output/writeShipList.js +26 -0
- package/dist/output/writeShipList.js.map +1 -0
- package/dist/output/writeShips.d.ts +15 -0
- package/dist/output/writeShips.d.ts.map +1 -0
- package/dist/output/writeShips.js +28 -0
- package/dist/output/writeShips.js.map +1 -0
- package/dist/output/writeVersion.d.ts +11 -0
- package/dist/output/writeVersion.d.ts.map +1 -0
- package/dist/output/writeVersion.js +18 -0
- package/dist/output/writeVersion.js.map +1 -0
- package/dist/schema/output/index.d.ts +2 -0
- package/dist/schema/output/index.d.ts.map +1 -0
- package/dist/schema/output/index.js +2 -0
- package/dist/schema/output/index.js.map +1 -0
- package/dist/schema/output/ship.d.ts +977 -0
- package/dist/schema/output/ship.d.ts.map +1 -0
- package/dist/schema/output/ship.js +167 -0
- package/dist/schema/output/ship.js.map +1 -0
- package/dist/schema/raw/attributeInfoByType.d.ts +25 -0
- package/dist/schema/raw/attributeInfoByType.d.ts.map +1 -0
- package/dist/schema/raw/attributeInfoByType.js +9 -0
- package/dist/schema/raw/attributeInfoByType.js.map +1 -0
- package/dist/schema/raw/equipDataByType.d.ts +31 -0
- package/dist/schema/raw/equipDataByType.d.ts.map +1 -0
- package/dist/schema/raw/equipDataByType.js +10 -0
- package/dist/schema/raw/equipDataByType.js.map +1 -0
- package/dist/schema/raw/fleetTechGroup.d.ts +19 -0
- package/dist/schema/raw/fleetTechGroup.d.ts.map +1 -0
- package/dist/schema/raw/fleetTechGroup.js +8 -0
- package/dist/schema/raw/fleetTechGroup.js.map +1 -0
- package/dist/schema/raw/fleetTechShipClass.d.ts +49 -0
- package/dist/schema/raw/fleetTechShipClass.d.ts.map +1 -0
- package/dist/schema/raw/fleetTechShipClass.js +13 -0
- package/dist/schema/raw/fleetTechShipClass.js.map +1 -0
- package/dist/schema/raw/fleetTechShipTemplate.d.ts +79 -0
- package/dist/schema/raw/fleetTechShipTemplate.d.ts.map +1 -0
- package/dist/schema/raw/fleetTechShipTemplate.js +18 -0
- package/dist/schema/raw/fleetTechShipTemplate.js.map +1 -0
- package/dist/schema/raw/index.d.ts +23 -0
- package/dist/schema/raw/index.d.ts.map +1 -0
- package/dist/schema/raw/index.js +23 -0
- package/dist/schema/raw/index.js.map +1 -0
- package/dist/schema/raw/shipDataBlueprint.d.ts +25 -0
- package/dist/schema/raw/shipDataBlueprint.d.ts.map +1 -0
- package/dist/schema/raw/shipDataBlueprint.js +9 -0
- package/dist/schema/raw/shipDataBlueprint.js.map +1 -0
- package/dist/schema/raw/shipDataBreakout.d.ts +61 -0
- package/dist/schema/raw/shipDataBreakout.d.ts.map +1 -0
- package/dist/schema/raw/shipDataBreakout.js +15 -0
- package/dist/schema/raw/shipDataBreakout.js.map +1 -0
- package/dist/schema/raw/shipDataByStar.d.ts +19 -0
- package/dist/schema/raw/shipDataByStar.d.ts.map +1 -0
- package/dist/schema/raw/shipDataByStar.js +8 -0
- package/dist/schema/raw/shipDataByStar.js.map +1 -0
- package/dist/schema/raw/shipDataByType.d.ts +37 -0
- package/dist/schema/raw/shipDataByType.d.ts.map +1 -0
- package/dist/schema/raw/shipDataByType.js +11 -0
- package/dist/schema/raw/shipDataByType.js.map +1 -0
- package/dist/schema/raw/shipDataCreateExchange.d.ts +19 -0
- package/dist/schema/raw/shipDataCreateExchange.d.ts.map +1 -0
- package/dist/schema/raw/shipDataCreateExchange.js +8 -0
- package/dist/schema/raw/shipDataCreateExchange.js.map +1 -0
- package/dist/schema/raw/shipDataGroup.d.ts +79 -0
- package/dist/schema/raw/shipDataGroup.d.ts.map +1 -0
- package/dist/schema/raw/shipDataGroup.js +20 -0
- package/dist/schema/raw/shipDataGroup.js.map +1 -0
- package/dist/schema/raw/shipDataStatistics.d.ts +103 -0
- package/dist/schema/raw/shipDataStatistics.d.ts.map +1 -0
- package/dist/schema/raw/shipDataStatistics.js +22 -0
- package/dist/schema/raw/shipDataStatistics.js.map +1 -0
- package/dist/schema/raw/shipDataStrengthen.d.ts +31 -0
- package/dist/schema/raw/shipDataStrengthen.d.ts.map +1 -0
- package/dist/schema/raw/shipDataStrengthen.js +10 -0
- package/dist/schema/raw/shipDataStrengthen.js.map +1 -0
- package/dist/schema/raw/shipDataTemplate.d.ts +115 -0
- package/dist/schema/raw/shipDataTemplate.d.ts.map +1 -0
- package/dist/schema/raw/shipDataTemplate.js +24 -0
- package/dist/schema/raw/shipDataTemplate.js.map +1 -0
- package/dist/schema/raw/shipDataTrans.d.ts +37 -0
- package/dist/schema/raw/shipDataTrans.d.ts.map +1 -0
- package/dist/schema/raw/shipDataTrans.js +11 -0
- package/dist/schema/raw/shipDataTrans.js.map +1 -0
- package/dist/schema/raw/shipSkinTemplate.d.ts +97 -0
- package/dist/schema/raw/shipSkinTemplate.d.ts.map +1 -0
- package/dist/schema/raw/shipSkinTemplate.js +21 -0
- package/dist/schema/raw/shipSkinTemplate.js.map +1 -0
- package/dist/schema/raw/shipSkinWords.d.ts +25 -0
- package/dist/schema/raw/shipSkinWords.d.ts.map +1 -0
- package/dist/schema/raw/shipSkinWords.js +9 -0
- package/dist/schema/raw/shipSkinWords.js.map +1 -0
- package/dist/schema/raw/shopTemplate.d.ts +43 -0
- package/dist/schema/raw/shopTemplate.d.ts.map +1 -0
- package/dist/schema/raw/shopTemplate.js +12 -0
- package/dist/schema/raw/shopTemplate.js.map +1 -0
- package/dist/schema/raw/skillDataDisplay.d.ts +25 -0
- package/dist/schema/raw/skillDataDisplay.d.ts.map +1 -0
- package/dist/schema/raw/skillDataDisplay.js +9 -0
- package/dist/schema/raw/skillDataDisplay.js.map +1 -0
- package/dist/schema/raw/skillDataTemplate.d.ts +61 -0
- package/dist/schema/raw/skillDataTemplate.d.ts.map +1 -0
- package/dist/schema/raw/skillDataTemplate.js +15 -0
- package/dist/schema/raw/skillDataTemplate.js.map +1 -0
- package/dist/schema/raw/transformDataTemplate.d.ts +67 -0
- package/dist/schema/raw/transformDataTemplate.d.ts.map +1 -0
- package/dist/schema/raw/transformDataTemplate.js +16 -0
- package/dist/schema/raw/transformDataTemplate.js.map +1 -0
- package/dist/schema/raw/voiceActorCn.d.ts +25 -0
- package/dist/schema/raw/voiceActorCn.d.ts.map +1 -0
- package/dist/schema/raw/voiceActorCn.js +9 -0
- package/dist/schema/raw/voiceActorCn.js.map +1 -0
- package/dist/translate/enums.d.ts +34 -0
- package/dist/translate/enums.d.ts.map +1 -0
- package/dist/translate/enums.js +126 -0
- package/dist/translate/enums.js.map +1 -0
- package/dist/translate/index.d.ts +4 -0
- package/dist/translate/index.d.ts.map +1 -0
- package/dist/translate/index.js +4 -0
- package/dist/translate/index.js.map +1 -0
- package/dist/translate/lookups.d.ts +37 -0
- package/dist/translate/lookups.d.ts.map +1 -0
- package/dist/translate/lookups.js +61 -0
- package/dist/translate/lookups.js.map +1 -0
- package/dist/translate/strings.d.ts +40 -0
- package/dist/translate/strings.d.ts.map +1 -0
- package/dist/translate/strings.js +92 -0
- package/dist/translate/strings.js.map +1 -0
- package/package.json +40 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
|
23
|
+
NOTE: This license applies to the code only. Game data extracted from
|
|
24
|
+
Azur Lane is the property of Yostar/Manjuu/Yongshi. This project is not
|
|
25
|
+
affiliated with or endorsed by these companies.
|
package/README.md
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
<img src="https://github.com/iujab/azurlane-images/blob/main/banner.png" />
|
|
2
|
+
|
|
3
|
+
# AzurAPI - js
|
|
4
|
+
|
|
5
|
+
A self-maintained, current Azur Lane data library. Drop-in replacement for the `@azurapi/azurapi` package.
|
|
6
|
+
|
|
7
|
+
## Why?
|
|
8
|
+
|
|
9
|
+
The older and amazing `@azurapi/azurapi` ecosystem is now 3+ years stale. I have fond memories starting off my computer science hobby building a discord bot using that API. Recently, when revisiting that project, I noticed that the azurapi package was years out of date, likely due to the wiki scraper method no longer being viable. This AzurAPI builds on the [AzurLaneTools/AzurLaneData](https://github.com/AzurLaneTools/AzurLaneData) and [nobbyfix/AzurLane-AssetDownloader](https://github.com/nobbyfix/AzurLane-AssetDownloader) repos so our data stays fresh within hours of each game patch.
|
|
10
|
+
|
|
11
|
+
## Installation
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install @lycoristech/azurapi
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Usage
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
import { AzurData } from "@lycoristech/azurapi";
|
|
21
|
+
|
|
22
|
+
const azur = new AzurData();
|
|
23
|
+
|
|
24
|
+
// Get a ship by name, ID, or fuzzy search
|
|
25
|
+
const belfast = azur.ships.get("Belfast");
|
|
26
|
+
const byId = azur.ships.get("20212");
|
|
27
|
+
const byCode = azur.ships.get("115");
|
|
28
|
+
|
|
29
|
+
// Get all ships
|
|
30
|
+
const all = azur.ships.getAll();
|
|
31
|
+
console.log(`${azur.ships.count()} ships loaded`);
|
|
32
|
+
|
|
33
|
+
// Fuzzy search
|
|
34
|
+
const results = azur.ships.search("Enterp", 5); // top 5 matches
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Migrating from @azurapi/azurapi
|
|
38
|
+
|
|
39
|
+
```diff
|
|
40
|
+
- import { AzurAPI } from "@azurapi/azurapi";
|
|
41
|
+
+ import { AzurData as AzurAPI } from "@lycoristech/azurapi";
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
That's it. The `ships.get()` API is compatible. Ship objects match the same schema!
|
|
45
|
+
|
|
46
|
+
## Data Freshness
|
|
47
|
+
|
|
48
|
+
Data is auto-refreshed weekly (every Monday) via GitHub Actions from [AzurLaneTools/AzurLaneData](https://github.com/AzurLaneTools/AzurLaneData) (EN + CN + JP regions). The refresh pipeline:
|
|
49
|
+
1. Sparse-clones the upstream repo
|
|
50
|
+
2. Normalizes raw game tables into AzurAPI-compatible JSON
|
|
51
|
+
3. Runs sanity checks (schema validation, field coverage)
|
|
52
|
+
4. Commits updated `data/*.json` only if data changed
|
|
53
|
+
|
|
54
|
+
You can also trigger a refresh manually from the Actions tab, or run `npm run build:data` locally.
|
|
55
|
+
|
|
56
|
+
Current data version: see [`data/version.json`](data/version.json).
|
|
57
|
+
|
|
58
|
+
## Ship Schema
|
|
59
|
+
|
|
60
|
+
Ships have the full AzurAPI-compatible shape including:
|
|
61
|
+
- Identity: `id`, `names`, `rarity`, `class`, `hullType`, `nationality`
|
|
62
|
+
- Stats: level 100/120, with and without retrofit
|
|
63
|
+
- Equipment slots with min/max efficiency
|
|
64
|
+
- Skills with max-rank substituted descriptions
|
|
65
|
+
- Limit breaks, construction info, fleet tech
|
|
66
|
+
- Skins with metadata
|
|
67
|
+
- And more — see [`src/schema/output/ship.ts`](src/schema/output/ship.ts)
|
|
68
|
+
|
|
69
|
+
## Raw JSON Access
|
|
70
|
+
|
|
71
|
+
The committed `data/ships.json` is fetchable via GitHub raw URL:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
https://raw.githubusercontent.com/iujab/AzurAPI/main/data/ships.json
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Also available: `ship-list.json` (minimal index), `id-map.json` (name→id lookup), `version.json`.
|
|
78
|
+
|
|
79
|
+
## Development
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# Install deps
|
|
83
|
+
npm install
|
|
84
|
+
|
|
85
|
+
# Build data from upstream (requires upstream/ sparse checkout)
|
|
86
|
+
npm run build:data
|
|
87
|
+
|
|
88
|
+
# Verify data integrity
|
|
89
|
+
npm run verify
|
|
90
|
+
|
|
91
|
+
# Run tests
|
|
92
|
+
npm test
|
|
93
|
+
|
|
94
|
+
# Type check
|
|
95
|
+
npm run typecheck
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Asset Images
|
|
99
|
+
|
|
100
|
+
Ship paintings and thumbnails are hosted in a separate GitHub repo: [iujab/azurlane-images](https://github.com/iujab/azurlane-images). Image URLs in ship data point to raw GitHub URLs from that repo:
|
|
101
|
+
|
|
102
|
+
- **Paintings** — skin art in WebP format (`paintings/{asset_name}.webp`)
|
|
103
|
+
- **Thumbnails** — shipyard icons in PNG format (`thumbnails/{group_type}.png`)
|
|
104
|
+
|
|
105
|
+
## License
|
|
106
|
+
|
|
107
|
+
MIT for the code. Game data is extracted from publicly available game files and is the property of Yostar/Manjuu/Yongshi. This project is not affiliated with or endorsed by any of these companies.
|
|
108
|
+
|
|
109
|
+
## Acknowledgments
|
|
110
|
+
|
|
111
|
+
- [AzurLaneTools/AzurLaneData](https://github.com/AzurLaneTools/AzurLaneData) — upstream auto-updating game data
|
|
112
|
+
- [nobbyfix/AzurLane-AssetDownloader](https://github.com/nobbyfix/AzurLane-AssetDownloader) — game asset extraction
|
|
113
|
+
- [AzurAPI/azurapi-js](https://github.com/AzurAPI/azurapi-js) — the original library whose schema we replicate, and is the base inspiration for this project!❤️
|