data-of-loathing 3.0.0 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,3 +1,31 @@
1
1
  # data-of-loathing
2
2
 
3
3
  A client SDK for the data-of-loathing service.
4
+
5
+ ## Browser usage
6
+
7
+ The browser client uses [SQLocal](https://sqlocal.dev) (SQLite over WASM) under the hood. To use it in a browser app you will need to install the optional peer dependencies as dev dependencies:
8
+
9
+ ```sh
10
+ npm install -D sqlocal vite-plugin-node-polyfills
11
+ ```
12
+
13
+ ### Vite
14
+
15
+ A Vite plugin is provided that handles the required configuration:
16
+
17
+ ```ts
18
+ // vite.config.ts
19
+ import { defineConfig } from "vite";
20
+ import dol from "data-of-loathing/vite";
21
+
22
+ export default defineConfig({
23
+ plugins: [dol()],
24
+ });
25
+ ```
26
+
27
+ The plugin does three things:
28
+
29
+ - Configures Vite's dependency optimiser and worker format for SQLocal's WASM worker
30
+ - Polyfills `Buffer` (required by the underlying SQLite driver)
31
+ - Sets `Cross-Origin-Embedder-Policy: credentialless` and `Cross-Origin-Opener-Policy: same-origin` on the dev server so SharedArrayBuffer is available without blocking cross-origin images — for production you must set these headers at the hosting layer (e.g. Netlify `_headers`, Vercel `headers` config, nginx)
package/dist/browser.d.ts CHANGED
@@ -12,4 +12,4 @@ export declare class Client extends BaseClient<Strategy> {
12
12
  load(): Promise<void>;
13
13
  }
14
14
  export declare function createClient(strategy?: Strategy): Client;
15
- export * from "data-of-loathing-schema";
15
+ export * from "./schema.js";
package/dist/browser.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { SqlMikroORM, SqliteDriver } from "@mikro-orm/sql";
2
2
  import { SQLocalKysely } from "sqlocal/kysely";
3
- import { entities } from "data-of-loathing-schema";
3
+ import { entities } from "./schema.js";
4
4
  import { BaseClient, DEFAULT_URL, ETAG_KEY } from "./BaseClient.js";
5
5
  export class Client extends BaseClient {
6
6
  _db;
@@ -32,4 +32,4 @@ export class Client extends BaseClient {
32
32
  export function createClient(strategy = {}) {
33
33
  return new Client(strategy);
34
34
  }
35
- export * from "data-of-loathing-schema";
35
+ export * from "./schema.js";
package/dist/node.d.ts CHANGED
@@ -15,4 +15,4 @@ export declare class Client extends BaseClient<Strategy> {
15
15
  load(): Promise<void>;
16
16
  }
17
17
  export declare function createClient(strategy?: Strategy): Client;
18
- export * from "data-of-loathing-schema";
18
+ export * from "./schema.js";
package/dist/node.js CHANGED
@@ -3,7 +3,7 @@ import { mkdir, readFile, writeFile } from "node:fs/promises";
3
3
  import { homedir } from "node:os";
4
4
  import { join } from "node:path";
5
5
  import { SqlMikroORM, SqliteDriver, NodeSqliteDialect } from "@mikro-orm/sql";
6
- import { entities } from "data-of-loathing-schema";
6
+ import { entities } from "./schema.js";
7
7
  import { BaseClient, DEFAULT_URL } from "./BaseClient.js";
8
8
  export class Client extends BaseClient {
9
9
  constructor(strategy = {}) {
@@ -49,4 +49,4 @@ export class Client extends BaseClient {
49
49
  export function createClient(strategy = {}) {
50
50
  return new Client(strategy);
51
51
  }
52
- export * from "data-of-loathing-schema";
52
+ export * from "./schema.js";
@@ -0,0 +1,422 @@
1
+ import { Collection, EntitySchema, type Ref } from "@mikro-orm/core";
2
+ export declare enum ItemUse {
3
+ Food = "food",
4
+ Drink = "drink",
5
+ Spleen = "spleen",
6
+ Potion = "potion",
7
+ Avatar = "avatar",
8
+ Usable = "usable",
9
+ Multiple = "multiple",
10
+ Reusable = "reusable",
11
+ Message = "message",
12
+ Grow = "grow",
13
+ PokePill = "pokepill",
14
+ Hat = "hat",
15
+ Weapon = "weapon",
16
+ Sixgun = "sixgun",
17
+ Offhand = "offhand",
18
+ Container = "container",
19
+ Shirt = "shirt",
20
+ Pants = "pants",
21
+ Accessory = "accessory",
22
+ Familiar = "familiar",
23
+ Sticker = "sticker",
24
+ Card = "card",
25
+ Folder = "folder",
26
+ Bootspur = "bootspur",
27
+ Bootskin = "bootskin",
28
+ FoodHelper = "food helper",
29
+ DrinkHelper = "drink helper",
30
+ Zap = "zap",
31
+ Sphere = "sphere",
32
+ Guardian = "guardian",
33
+ Combat = "combat",
34
+ CombatReusable = "combat reusable",
35
+ Single = "single",
36
+ Solo = "solo",
37
+ Curse = "curse",
38
+ Bounty = "bounty",
39
+ Package = "package",
40
+ Candy = "candy",
41
+ Candy1 = "candy1",
42
+ Candy2 = "candy2",
43
+ Chocolate = "chocolate",
44
+ Fancy = "fancy",
45
+ Paste = "paste",
46
+ Smith = "smith",
47
+ Cook = "cook",
48
+ Mix = "mix",
49
+ Matchable = "matchable"
50
+ }
51
+ export declare enum EffectQuality {
52
+ Good = "good",
53
+ Neutral = "neutral",
54
+ Bad = "bad"
55
+ }
56
+ export declare enum SkillTag {
57
+ Passive = "passive",
58
+ Combat = "combat",
59
+ NonCombat = "nc",
60
+ Heal = "heal",
61
+ ItemSummon = "item",
62
+ Effect = "effect",
63
+ Self = "self",
64
+ Other = "other",
65
+ Song = "song",
66
+ Expression = "expression",
67
+ Walk = "walk"
68
+ }
69
+ export declare enum FamiliarCategory {
70
+ Stat0 = "stat0",
71
+ Stat1 = "stat1",
72
+ Item0 = "item0",
73
+ Item1 = "item1",
74
+ Item2 = "item2",
75
+ Item3 = "item3",
76
+ Meat0 = "meat0",
77
+ Combat0 = "combat0",
78
+ Combat1 = "combat1",
79
+ Drop = "drop",
80
+ Block = "block",
81
+ Delevel0 = "delevel0",
82
+ Delevel1 = "delevel1",
83
+ Hp0 = "hp0",
84
+ Mp0 = "mp0",
85
+ Meat1 = "meat1",
86
+ Stat2 = "stat2",
87
+ Other0 = "other0",
88
+ Hp1 = "hp1",
89
+ Mp1 = "mp1",
90
+ Stat3 = "stat3",
91
+ Other1 = "other1",
92
+ Passive = "passive",
93
+ Underwater = "underwater",
94
+ Pokefam = "pokefam",
95
+ Variable = "variable"
96
+ }
97
+ export declare enum MonsterElement {
98
+ BadSpelling = "bad spelling",
99
+ Cold = "cold",
100
+ Cute = "cute",
101
+ Hot = "hot",
102
+ Shadow = "shadow",
103
+ Spooky = "spooky",
104
+ Sleaze = "sleaze",
105
+ Slime = "slime",
106
+ Supercold = "supercold",
107
+ Stench = "stench"
108
+ }
109
+ export declare enum MonsterDropCategory {
110
+ PickpocketOnly = "p",
111
+ NoPickpocket = "n",
112
+ Conditional = "c",
113
+ Fixed = "f",
114
+ Accordion = "a",
115
+ Multi = "m"
116
+ }
117
+ export declare enum LocationDifficulty {
118
+ None = "none",
119
+ Unknown = "unknown",
120
+ Low = "low",
121
+ Medium = "medium",
122
+ High = "high"
123
+ }
124
+ export declare enum LocationEnvironment {
125
+ None = "none",
126
+ Indoor = "indoor",
127
+ Outdoor = "outdoor",
128
+ Underground = "underground",
129
+ Underwater = "underwater"
130
+ }
131
+ export declare enum ConsumableQuality {
132
+ None = "none",
133
+ Crappy = "crappy",
134
+ Decent = "decent",
135
+ Good = "good",
136
+ Awesome = "awesome",
137
+ EPIC = "EPIC",
138
+ SuperEPIC = "super_EPIC",
139
+ SuperUltraEPIC = "super_ultra_EPIC",
140
+ SuperUltraMegaEPIC = "super_ultra_mega_EPIC",
141
+ SuperUltraMegaTurboEPIC = "super_ultra_mega_turbo_EPIC",
142
+ Quest = "quest",
143
+ Changing = "changing",
144
+ Drippy = "drippy"
145
+ }
146
+ export declare class Item {
147
+ id: number;
148
+ name: string;
149
+ descid?: number;
150
+ image: string;
151
+ uses: ItemUse[];
152
+ quest: boolean;
153
+ gift: boolean;
154
+ tradeable: boolean;
155
+ discardable: boolean;
156
+ autosell: number;
157
+ plural?: string;
158
+ ambiguous: boolean;
159
+ equipment?: Equipment;
160
+ consumable?: Consumable;
161
+ modifiers?: ItemModifiers;
162
+ monsterDrops: Collection<MonsterDrop, object>;
163
+ outfitEquipment: Collection<Outfit, object>;
164
+ outfitTreats: Collection<OutfitTreat, object>;
165
+ ingredients: Collection<Ingredient, object>;
166
+ foldGroups: Collection<FoldGroup, object>;
167
+ zapGroups: Collection<ZapGroup, object>;
168
+ }
169
+ export declare class Effect {
170
+ id: number;
171
+ name: string;
172
+ descid?: string;
173
+ image: string;
174
+ quality: EffectQuality;
175
+ nohookah: boolean;
176
+ nopvp: boolean;
177
+ noremove: boolean;
178
+ song: boolean;
179
+ actions: string[];
180
+ ambiguous: boolean;
181
+ modifiers?: EffectModifiers;
182
+ }
183
+ export declare class Skill {
184
+ id: number;
185
+ name: string;
186
+ image: string;
187
+ tags: SkillTag[];
188
+ mpCost: number;
189
+ duration: number;
190
+ guildLevel?: number;
191
+ maxLevel?: number;
192
+ permable: boolean;
193
+ ambiguous: boolean;
194
+ modifiers?: SkillModifiers;
195
+ }
196
+ export declare class Familiar {
197
+ id: number;
198
+ name: string;
199
+ image: string;
200
+ categories: FamiliarCategory[];
201
+ larva?: Item;
202
+ equipment?: Item;
203
+ cageMatch: number;
204
+ scavengerHunt: number;
205
+ obstacleCourse: number;
206
+ hideAndSeek: number;
207
+ attributes: string[];
208
+ modifiers?: FamiliarModifiers;
209
+ }
210
+ export declare class Monster {
211
+ id: number;
212
+ name: string;
213
+ image: string[];
214
+ ambiguous: boolean;
215
+ article: string;
216
+ attack: string;
217
+ boss: boolean;
218
+ defence: string;
219
+ drippy: boolean;
220
+ element?: MonsterElement;
221
+ elementalAttack?: MonsterElement;
222
+ elementalDefence?: MonsterElement;
223
+ elementalResistance: string;
224
+ experience?: string;
225
+ free: boolean;
226
+ ghost: boolean;
227
+ groupSize: number;
228
+ hp: string;
229
+ initiative: string;
230
+ itemBlockChance: number;
231
+ lucky: boolean;
232
+ manuel?: string;
233
+ meat?: number;
234
+ meatExpression?: string;
235
+ monsterLevelMultiplier: string;
236
+ nobanish: boolean;
237
+ nocopy: boolean;
238
+ nomanuel: boolean;
239
+ nowander: boolean;
240
+ nowish: boolean;
241
+ phylum: string;
242
+ physicalResistance: string;
243
+ poison?: string;
244
+ scaling: string;
245
+ scalingCap: string;
246
+ scalingFloor: string;
247
+ skeleton: boolean;
248
+ skillBlockChance: number;
249
+ snake: boolean;
250
+ spellBlockChance: number;
251
+ sprinkles: [number | string, number | string];
252
+ superlikely: boolean;
253
+ ultrarare: boolean;
254
+ wanderer: boolean;
255
+ wiki?: string;
256
+ wish: boolean;
257
+ zombie: boolean;
258
+ drops: Collection<MonsterDrop, object>;
259
+ nativeLocations: Collection<NativeMonster, object>;
260
+ }
261
+ export declare class Location {
262
+ name: string;
263
+ id?: number;
264
+ zone: string;
265
+ url: string;
266
+ difficulty: LocationDifficulty;
267
+ environment: LocationEnvironment;
268
+ statRequirement: number;
269
+ waterLevel?: number;
270
+ overdrunk: boolean;
271
+ nowander: boolean;
272
+ combatRate: number;
273
+ nativeMonsters: Collection<NativeMonster, object>;
274
+ }
275
+ export declare class Path {
276
+ id: number;
277
+ name: string;
278
+ enumName: string;
279
+ image?: string;
280
+ isAvatar: boolean;
281
+ article?: string;
282
+ pointsPreference?: string;
283
+ maximumPoints: number;
284
+ bucket: boolean;
285
+ stomachCapacity: number;
286
+ liverCapacity: number;
287
+ spleenCapacity: number;
288
+ classes: Collection<AscensionClass, object>;
289
+ }
290
+ export declare class AscensionClass {
291
+ id: number;
292
+ name: string;
293
+ enumName: string;
294
+ image?: string;
295
+ primeStatIndex: number;
296
+ path?: Path;
297
+ stun?: string;
298
+ stomachCapacity?: number;
299
+ liverCapacity?: number;
300
+ spleenCapacity?: number;
301
+ }
302
+ export declare class Equipment {
303
+ item: Ref<Item>;
304
+ power: number;
305
+ musRequirement: number;
306
+ mysRequirement: number;
307
+ moxRequirement: number;
308
+ type?: string;
309
+ hands?: number;
310
+ }
311
+ export declare class Consumable {
312
+ item: Ref<Item>;
313
+ stomach: number;
314
+ liver: number;
315
+ spleen: number;
316
+ levelRequirement: number;
317
+ quality?: ConsumableQuality;
318
+ adventureRange: string;
319
+ adventures: number;
320
+ muscle: number;
321
+ muscleRange: string;
322
+ mysticality: number;
323
+ mysticalityRange: string;
324
+ moxie: number;
325
+ moxieRange: string;
326
+ notes?: string;
327
+ }
328
+ export declare class Concoction {
329
+ id: number;
330
+ item: Item;
331
+ methods: string[];
332
+ comment?: string;
333
+ ingredients: Collection<Ingredient, object>;
334
+ }
335
+ export declare class Outfit {
336
+ id: number;
337
+ name: string;
338
+ image: string;
339
+ equipment: Collection<Item, object>;
340
+ treats: Collection<OutfitTreat, object>;
341
+ }
342
+ export declare class FoldGroup {
343
+ id: number;
344
+ damage: number;
345
+ items: Collection<Item, object>;
346
+ }
347
+ export declare class ZapGroup {
348
+ id: number;
349
+ items: Collection<Item, object>;
350
+ }
351
+ export declare class MonsterDrop {
352
+ id: number;
353
+ monster: Monster;
354
+ item: Item;
355
+ rate: number;
356
+ category?: MonsterDropCategory;
357
+ }
358
+ export declare class NativeMonster {
359
+ id: number;
360
+ location: Location;
361
+ monster: Monster;
362
+ weight: number;
363
+ rejection: number;
364
+ parity?: number;
365
+ }
366
+ export declare class Ingredient {
367
+ id: number;
368
+ concoction: Concoction;
369
+ item: Item;
370
+ quantity: number;
371
+ }
372
+ export declare class OutfitTreat {
373
+ id: number;
374
+ outfit: Outfit;
375
+ item: Item;
376
+ chance: number;
377
+ }
378
+ export declare class ItemModifiers {
379
+ item: Ref<Item>;
380
+ modifiers: Record<string, string>;
381
+ }
382
+ export declare class EffectModifiers {
383
+ effect: Ref<Effect>;
384
+ modifiers: Record<string, string>;
385
+ }
386
+ export declare class SkillModifiers {
387
+ skill: Ref<Skill>;
388
+ modifiers: Record<string, string>;
389
+ }
390
+ export declare class FamiliarModifiers {
391
+ familiar: Ref<Familiar>;
392
+ modifiers: Record<string, string>;
393
+ }
394
+ export declare class Meta {
395
+ id: number;
396
+ lastUpdate: Date;
397
+ lastRevision: number;
398
+ }
399
+ export declare const ItemSchema: EntitySchema<Item, never, import("@mikro-orm/core").EntityCtor<Item>>;
400
+ export declare const EffectSchema: EntitySchema<Effect, never, import("@mikro-orm/core").EntityCtor<Effect>>;
401
+ export declare const SkillSchema: EntitySchema<Skill, never, import("@mikro-orm/core").EntityCtor<Skill>>;
402
+ export declare const FamiliarSchema: EntitySchema<Familiar, never, import("@mikro-orm/core").EntityCtor<Familiar>>;
403
+ export declare const MonsterSchema: EntitySchema<Monster, never, import("@mikro-orm/core").EntityCtor<Monster>>;
404
+ export declare const LocationSchema: EntitySchema<Location, never, import("@mikro-orm/core").EntityCtor<Location>>;
405
+ export declare const PathSchema: EntitySchema<Path, never, import("@mikro-orm/core").EntityCtor<Path>>;
406
+ export declare const AscensionClassSchema: EntitySchema<AscensionClass, never, import("@mikro-orm/core").EntityCtor<AscensionClass>>;
407
+ export declare const EquipmentSchema: EntitySchema<Equipment, never, import("@mikro-orm/core").EntityCtor<Equipment>>;
408
+ export declare const ConsumableSchema: EntitySchema<Consumable, never, import("@mikro-orm/core").EntityCtor<Consumable>>;
409
+ export declare const ConcoctionSchema: EntitySchema<Concoction, never, import("@mikro-orm/core").EntityCtor<Concoction>>;
410
+ export declare const OutfitSchema: EntitySchema<Outfit, never, import("@mikro-orm/core").EntityCtor<Outfit>>;
411
+ export declare const FoldGroupSchema: EntitySchema<FoldGroup, never, import("@mikro-orm/core").EntityCtor<FoldGroup>>;
412
+ export declare const ZapGroupSchema: EntitySchema<ZapGroup, never, import("@mikro-orm/core").EntityCtor<ZapGroup>>;
413
+ export declare const MonsterDropSchema: EntitySchema<MonsterDrop, never, import("@mikro-orm/core").EntityCtor<MonsterDrop>>;
414
+ export declare const NativeMonsterSchema: EntitySchema<NativeMonster, never, import("@mikro-orm/core").EntityCtor<NativeMonster>>;
415
+ export declare const IngredientSchema: EntitySchema<Ingredient, never, import("@mikro-orm/core").EntityCtor<Ingredient>>;
416
+ export declare const OutfitTreatSchema: EntitySchema<OutfitTreat, never, import("@mikro-orm/core").EntityCtor<OutfitTreat>>;
417
+ export declare const ItemModifiersSchema: EntitySchema<ItemModifiers, never, import("@mikro-orm/core").EntityCtor<ItemModifiers>>;
418
+ export declare const EffectModifiersSchema: EntitySchema<EffectModifiers, never, import("@mikro-orm/core").EntityCtor<EffectModifiers>>;
419
+ export declare const SkillModifiersSchema: EntitySchema<SkillModifiers, never, import("@mikro-orm/core").EntityCtor<SkillModifiers>>;
420
+ export declare const FamiliarModifiersSchema: EntitySchema<FamiliarModifiers, never, import("@mikro-orm/core").EntityCtor<FamiliarModifiers>>;
421
+ export declare const MetaSchema: EntitySchema<Meta, never, import("@mikro-orm/core").EntityCtor<Meta>>;
422
+ export declare const entities: (EntitySchema<Item, never, import("@mikro-orm/core").EntityCtor<Item>> | EntitySchema<Effect, never, import("@mikro-orm/core").EntityCtor<Effect>> | EntitySchema<Skill, never, import("@mikro-orm/core").EntityCtor<Skill>> | EntitySchema<Familiar, never, import("@mikro-orm/core").EntityCtor<Familiar>> | EntitySchema<Monster, never, import("@mikro-orm/core").EntityCtor<Monster>> | EntitySchema<Location, never, import("@mikro-orm/core").EntityCtor<Location>> | EntitySchema<Path, never, import("@mikro-orm/core").EntityCtor<Path>> | EntitySchema<AscensionClass, never, import("@mikro-orm/core").EntityCtor<AscensionClass>> | EntitySchema<Equipment, never, import("@mikro-orm/core").EntityCtor<Equipment>> | EntitySchema<Consumable, never, import("@mikro-orm/core").EntityCtor<Consumable>> | EntitySchema<Concoction, never, import("@mikro-orm/core").EntityCtor<Concoction>> | EntitySchema<Outfit, never, import("@mikro-orm/core").EntityCtor<Outfit>> | EntitySchema<FoldGroup, never, import("@mikro-orm/core").EntityCtor<FoldGroup>> | EntitySchema<ZapGroup, never, import("@mikro-orm/core").EntityCtor<ZapGroup>> | EntitySchema<MonsterDrop, never, import("@mikro-orm/core").EntityCtor<MonsterDrop>> | EntitySchema<NativeMonster, never, import("@mikro-orm/core").EntityCtor<NativeMonster>> | EntitySchema<Ingredient, never, import("@mikro-orm/core").EntityCtor<Ingredient>> | EntitySchema<OutfitTreat, never, import("@mikro-orm/core").EntityCtor<OutfitTreat>> | EntitySchema<ItemModifiers, never, import("@mikro-orm/core").EntityCtor<ItemModifiers>> | EntitySchema<EffectModifiers, never, import("@mikro-orm/core").EntityCtor<EffectModifiers>> | EntitySchema<SkillModifiers, never, import("@mikro-orm/core").EntityCtor<SkillModifiers>> | EntitySchema<FamiliarModifiers, never, import("@mikro-orm/core").EntityCtor<FamiliarModifiers>> | EntitySchema<Meta, never, import("@mikro-orm/core").EntityCtor<Meta>>)[];