lapis-lazuli 0.1.0
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/dist/index.d.ts +473 -0
- package/dist/index.js +3 -0
- package/package.json +27 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,473 @@
|
|
|
1
|
+
export type Awaitable<T> = T | Promise<T>;
|
|
2
|
+
export interface HookHandle {
|
|
3
|
+
unsubscribe(): void;
|
|
4
|
+
}
|
|
5
|
+
export interface TaskHandle {
|
|
6
|
+
cancel(): void;
|
|
7
|
+
}
|
|
8
|
+
export interface Logger {
|
|
9
|
+
info(message: TextInput): void;
|
|
10
|
+
warn(message: TextInput): void;
|
|
11
|
+
error(message: TextInput): void;
|
|
12
|
+
debug(message: TextInput): void;
|
|
13
|
+
}
|
|
14
|
+
export interface TextPart {
|
|
15
|
+
text: string;
|
|
16
|
+
extra?: TextInput[];
|
|
17
|
+
}
|
|
18
|
+
export type TextInput = string | TextPart | TextInput[];
|
|
19
|
+
export interface TitleOptions {
|
|
20
|
+
subtitle?: TextInput;
|
|
21
|
+
fadeInTicks?: number;
|
|
22
|
+
stayTicks?: number;
|
|
23
|
+
fadeOutTicks?: number;
|
|
24
|
+
}
|
|
25
|
+
export interface Location {
|
|
26
|
+
world?: string | null;
|
|
27
|
+
x: number;
|
|
28
|
+
y: number;
|
|
29
|
+
z: number;
|
|
30
|
+
yaw?: number;
|
|
31
|
+
pitch?: number;
|
|
32
|
+
}
|
|
33
|
+
export interface KeyValueStore {
|
|
34
|
+
get<T = unknown>(path: string): T | null;
|
|
35
|
+
set(path: string, value: unknown): void;
|
|
36
|
+
delete(path: string): void;
|
|
37
|
+
save(): void;
|
|
38
|
+
reload(): void;
|
|
39
|
+
keys(): string[];
|
|
40
|
+
}
|
|
41
|
+
export interface FileStore {
|
|
42
|
+
path: string;
|
|
43
|
+
resolve(...segments: string[]): string;
|
|
44
|
+
readText(relativePath: string): string;
|
|
45
|
+
writeText(relativePath: string, contents: TextInput): void;
|
|
46
|
+
exists(relativePath: string): boolean;
|
|
47
|
+
mkdirs(relativePath?: string): void;
|
|
48
|
+
}
|
|
49
|
+
export interface UnsafeHandle {
|
|
50
|
+
handle?: unknown;
|
|
51
|
+
}
|
|
52
|
+
export interface BlockHandle {
|
|
53
|
+
type: string;
|
|
54
|
+
worldName: string;
|
|
55
|
+
location: Location;
|
|
56
|
+
setType(type: string): boolean;
|
|
57
|
+
unsafe?: UnsafeHandle;
|
|
58
|
+
}
|
|
59
|
+
export interface ItemHandle {
|
|
60
|
+
type: string;
|
|
61
|
+
amount(): number;
|
|
62
|
+
setAmount(amount: number): void;
|
|
63
|
+
name(): string | null;
|
|
64
|
+
setName(name?: TextInput | null): void;
|
|
65
|
+
lore(): string[];
|
|
66
|
+
setLore(lore: TextInput[]): void;
|
|
67
|
+
enchantments(): Record<string, number>;
|
|
68
|
+
enchant(key: string, level: number): void;
|
|
69
|
+
removeEnchantment(key: string): void;
|
|
70
|
+
clone(): ItemHandle;
|
|
71
|
+
tags?: KeyValueStore;
|
|
72
|
+
unsafe?: UnsafeHandle;
|
|
73
|
+
}
|
|
74
|
+
export interface InventoryHandle {
|
|
75
|
+
id?: string | null;
|
|
76
|
+
title: string;
|
|
77
|
+
size: number;
|
|
78
|
+
get(slot: number): ItemHandle | null;
|
|
79
|
+
set(slot: number, item: ItemHandle | null): void;
|
|
80
|
+
add(item: ItemHandle): void;
|
|
81
|
+
clear(slot?: number): void;
|
|
82
|
+
open(player: PlayerHandle): void;
|
|
83
|
+
unsafe?: UnsafeHandle;
|
|
84
|
+
}
|
|
85
|
+
export interface PlayerHandle {
|
|
86
|
+
id: string;
|
|
87
|
+
name: string;
|
|
88
|
+
worldName(): string;
|
|
89
|
+
location(): Location;
|
|
90
|
+
sendMessage(message: TextInput): void;
|
|
91
|
+
actionBar(message: TextInput): void;
|
|
92
|
+
showTitle(title: TextInput, options?: TitleOptions): void;
|
|
93
|
+
hasPermission(permission: string): boolean;
|
|
94
|
+
teleport(location: Location): boolean;
|
|
95
|
+
inventory(): InventoryHandle;
|
|
96
|
+
tags?: KeyValueStore;
|
|
97
|
+
unsafe?: UnsafeHandle;
|
|
98
|
+
}
|
|
99
|
+
export interface WorldHandle {
|
|
100
|
+
name: string;
|
|
101
|
+
environment: string;
|
|
102
|
+
players(): PlayerHandle[];
|
|
103
|
+
entities(): EntityHandle[];
|
|
104
|
+
spawnLocation(): Location;
|
|
105
|
+
time(): number;
|
|
106
|
+
setTime(time: number): void;
|
|
107
|
+
storming(): boolean;
|
|
108
|
+
setStorming(storming: boolean): void;
|
|
109
|
+
blockAt(location: Location): BlockHandle | null;
|
|
110
|
+
unsafe?: UnsafeHandle;
|
|
111
|
+
}
|
|
112
|
+
export interface EntityHandle {
|
|
113
|
+
id: string;
|
|
114
|
+
type: string;
|
|
115
|
+
name?: string | null;
|
|
116
|
+
worldName(): string;
|
|
117
|
+
location(): Location;
|
|
118
|
+
teleport(location: Location): boolean;
|
|
119
|
+
remove(): void;
|
|
120
|
+
tags?: KeyValueStore;
|
|
121
|
+
unsafe?: UnsafeHandle;
|
|
122
|
+
}
|
|
123
|
+
export interface ItemSpec {
|
|
124
|
+
type: string;
|
|
125
|
+
amount?: number;
|
|
126
|
+
name?: TextInput | null;
|
|
127
|
+
lore?: TextInput[];
|
|
128
|
+
enchantments?: Record<string, number>;
|
|
129
|
+
}
|
|
130
|
+
export interface SoundSpec {
|
|
131
|
+
sound: string;
|
|
132
|
+
location?: Location;
|
|
133
|
+
player?: PlayerHandle;
|
|
134
|
+
volume?: number;
|
|
135
|
+
pitch?: number;
|
|
136
|
+
}
|
|
137
|
+
export interface ParticleSpec {
|
|
138
|
+
particle: string;
|
|
139
|
+
location: Location;
|
|
140
|
+
count?: number;
|
|
141
|
+
offsetX?: number;
|
|
142
|
+
offsetY?: number;
|
|
143
|
+
offsetZ?: number;
|
|
144
|
+
extra?: number;
|
|
145
|
+
players?: PlayerHandle[];
|
|
146
|
+
}
|
|
147
|
+
export interface PotionEffectSpec {
|
|
148
|
+
player: PlayerHandle;
|
|
149
|
+
effect: string;
|
|
150
|
+
durationTicks: number;
|
|
151
|
+
amplifier?: number;
|
|
152
|
+
ambient?: boolean;
|
|
153
|
+
particles?: boolean;
|
|
154
|
+
icon?: boolean;
|
|
155
|
+
}
|
|
156
|
+
export type RecipeIngredient = string | ItemSpec;
|
|
157
|
+
export interface ShapedRecipeSpec {
|
|
158
|
+
kind: "shaped";
|
|
159
|
+
id: string;
|
|
160
|
+
result: ItemSpec;
|
|
161
|
+
shape: string[];
|
|
162
|
+
ingredients: Record<string, RecipeIngredient>;
|
|
163
|
+
}
|
|
164
|
+
export interface ShapelessRecipeSpec {
|
|
165
|
+
kind: "shapeless";
|
|
166
|
+
id: string;
|
|
167
|
+
result: ItemSpec;
|
|
168
|
+
ingredients: RecipeIngredient[];
|
|
169
|
+
}
|
|
170
|
+
export type RecipeSpec = ShapedRecipeSpec | ShapelessRecipeSpec;
|
|
171
|
+
export interface RecipeHandle {
|
|
172
|
+
id: string;
|
|
173
|
+
unregister(): void;
|
|
174
|
+
}
|
|
175
|
+
export interface BossBarHandle {
|
|
176
|
+
id?: string | null;
|
|
177
|
+
title(): string;
|
|
178
|
+
setTitle(title: TextInput): void;
|
|
179
|
+
progress(): number;
|
|
180
|
+
setProgress(progress: number): void;
|
|
181
|
+
color(): string;
|
|
182
|
+
setColor(color: string): void;
|
|
183
|
+
style(): string;
|
|
184
|
+
setStyle(style: string): void;
|
|
185
|
+
players(): PlayerHandle[];
|
|
186
|
+
addPlayer(player: PlayerHandle): void;
|
|
187
|
+
removePlayer(player: PlayerHandle): void;
|
|
188
|
+
clearPlayers(): void;
|
|
189
|
+
delete(): void;
|
|
190
|
+
unsafe?: UnsafeHandle;
|
|
191
|
+
}
|
|
192
|
+
export interface ScoreboardHandle {
|
|
193
|
+
id?: string | null;
|
|
194
|
+
title(): string;
|
|
195
|
+
setTitle(title: TextInput): void;
|
|
196
|
+
setLine(score: number, text: TextInput): void;
|
|
197
|
+
removeLine(score: number): void;
|
|
198
|
+
clear(): void;
|
|
199
|
+
viewers(): PlayerHandle[];
|
|
200
|
+
show(player: PlayerHandle): void;
|
|
201
|
+
hide(player: PlayerHandle): void;
|
|
202
|
+
delete(): void;
|
|
203
|
+
unsafe?: UnsafeHandle;
|
|
204
|
+
}
|
|
205
|
+
export interface CancellableEvent {
|
|
206
|
+
cancelled: boolean;
|
|
207
|
+
cancel(): void;
|
|
208
|
+
uncancel(): void;
|
|
209
|
+
}
|
|
210
|
+
export interface ServerReadyEvent {
|
|
211
|
+
type: "server.ready";
|
|
212
|
+
reload: boolean;
|
|
213
|
+
}
|
|
214
|
+
export interface PlayerJoinEvent {
|
|
215
|
+
type: "player.join";
|
|
216
|
+
player: PlayerHandle;
|
|
217
|
+
joinMessage?: string | null;
|
|
218
|
+
setJoinMessage(message?: TextInput | null): void;
|
|
219
|
+
}
|
|
220
|
+
export interface PlayerQuitEvent {
|
|
221
|
+
type: "player.quit";
|
|
222
|
+
player: PlayerHandle;
|
|
223
|
+
quitMessage?: string | null;
|
|
224
|
+
setQuitMessage(message?: TextInput | null): void;
|
|
225
|
+
}
|
|
226
|
+
export interface PlayerChatEvent extends CancellableEvent {
|
|
227
|
+
type: "player.chat";
|
|
228
|
+
player: PlayerHandle;
|
|
229
|
+
message: string;
|
|
230
|
+
setMessage(message: TextInput): void;
|
|
231
|
+
recipients(): PlayerHandle[];
|
|
232
|
+
}
|
|
233
|
+
export interface PlayerMoveEvent extends CancellableEvent {
|
|
234
|
+
type: "player.move";
|
|
235
|
+
player: PlayerHandle;
|
|
236
|
+
from: Location;
|
|
237
|
+
to: Location;
|
|
238
|
+
}
|
|
239
|
+
export interface PlayerInteractEvent extends CancellableEvent {
|
|
240
|
+
type: "player.interact";
|
|
241
|
+
player: PlayerHandle;
|
|
242
|
+
action: string;
|
|
243
|
+
hand?: string | null;
|
|
244
|
+
item?: ItemHandle | null;
|
|
245
|
+
block?: BlockHandle | null;
|
|
246
|
+
face?: string | null;
|
|
247
|
+
}
|
|
248
|
+
export interface PlayerTeleportEvent extends CancellableEvent {
|
|
249
|
+
type: "player.teleport";
|
|
250
|
+
player: PlayerHandle;
|
|
251
|
+
from: Location;
|
|
252
|
+
to: Location;
|
|
253
|
+
cause?: string | null;
|
|
254
|
+
}
|
|
255
|
+
export interface BlockBreakEvent extends CancellableEvent {
|
|
256
|
+
type: "block.break";
|
|
257
|
+
player?: PlayerHandle | null;
|
|
258
|
+
block: BlockHandle;
|
|
259
|
+
expToDrop: number;
|
|
260
|
+
setExpToDrop(exp: number): void;
|
|
261
|
+
dropItems: boolean;
|
|
262
|
+
setDropItems(dropItems: boolean): void;
|
|
263
|
+
}
|
|
264
|
+
export interface BlockPlaceEvent extends CancellableEvent {
|
|
265
|
+
type: "block.place";
|
|
266
|
+
player?: PlayerHandle | null;
|
|
267
|
+
block: BlockHandle;
|
|
268
|
+
against?: BlockHandle | null;
|
|
269
|
+
item?: ItemHandle | null;
|
|
270
|
+
canBuild: boolean;
|
|
271
|
+
}
|
|
272
|
+
export interface EntityDamageEvent extends CancellableEvent {
|
|
273
|
+
type: "entity.damage";
|
|
274
|
+
entity: EntityHandle;
|
|
275
|
+
damage: number;
|
|
276
|
+
finalDamage?: number;
|
|
277
|
+
cause?: string | null;
|
|
278
|
+
damager?: EntityHandle | null;
|
|
279
|
+
setDamage(damage: number): void;
|
|
280
|
+
}
|
|
281
|
+
export interface EntityDeathEvent {
|
|
282
|
+
type: "entity.death";
|
|
283
|
+
entity: EntityHandle;
|
|
284
|
+
drops(): ItemHandle[];
|
|
285
|
+
droppedExp: number;
|
|
286
|
+
setDroppedExp(exp: number): void;
|
|
287
|
+
}
|
|
288
|
+
export interface InventoryClickEvent extends CancellableEvent {
|
|
289
|
+
type: "inventory.click";
|
|
290
|
+
player?: PlayerHandle | null;
|
|
291
|
+
inventory: InventoryHandle;
|
|
292
|
+
slot: number;
|
|
293
|
+
clickType: string;
|
|
294
|
+
currentItem?: ItemHandle | null;
|
|
295
|
+
cursorItem?: ItemHandle | null;
|
|
296
|
+
}
|
|
297
|
+
export interface InventoryCloseEvent {
|
|
298
|
+
type: "inventory.close";
|
|
299
|
+
player?: PlayerHandle | null;
|
|
300
|
+
inventory: InventoryHandle;
|
|
301
|
+
}
|
|
302
|
+
export interface WorldLoadEvent {
|
|
303
|
+
type: "world.load";
|
|
304
|
+
world: WorldHandle;
|
|
305
|
+
}
|
|
306
|
+
export interface WorldUnloadEvent extends CancellableEvent {
|
|
307
|
+
type: "world.unload";
|
|
308
|
+
world: WorldHandle;
|
|
309
|
+
}
|
|
310
|
+
export interface EventMap {
|
|
311
|
+
"server.ready": ServerReadyEvent;
|
|
312
|
+
"player.join": PlayerJoinEvent;
|
|
313
|
+
"player.quit": PlayerQuitEvent;
|
|
314
|
+
"player.chat": PlayerChatEvent;
|
|
315
|
+
"player.move": PlayerMoveEvent;
|
|
316
|
+
"player.interact": PlayerInteractEvent;
|
|
317
|
+
"player.teleport": PlayerTeleportEvent;
|
|
318
|
+
"block.break": BlockBreakEvent;
|
|
319
|
+
"block.place": BlockPlaceEvent;
|
|
320
|
+
"entity.damage": EntityDamageEvent;
|
|
321
|
+
"entity.death": EntityDeathEvent;
|
|
322
|
+
"inventory.click": InventoryClickEvent;
|
|
323
|
+
"inventory.close": InventoryCloseEvent;
|
|
324
|
+
"world.load": WorldLoadEvent;
|
|
325
|
+
"world.unload": WorldUnloadEvent;
|
|
326
|
+
}
|
|
327
|
+
export interface EventRegistry {
|
|
328
|
+
on<K extends keyof EventMap>(event: K, handler: (payload: EventMap[K]) => Awaitable<void>): HookHandle;
|
|
329
|
+
}
|
|
330
|
+
export interface CommandSender {
|
|
331
|
+
name: string;
|
|
332
|
+
type: "player" | "console" | "other";
|
|
333
|
+
id?: string;
|
|
334
|
+
player?: PlayerHandle;
|
|
335
|
+
sendMessage(message: TextInput): void;
|
|
336
|
+
hasPermission(permission: string): boolean;
|
|
337
|
+
unsafe?: UnsafeHandle;
|
|
338
|
+
}
|
|
339
|
+
export interface CommandExecutionContext {
|
|
340
|
+
sender: CommandSender;
|
|
341
|
+
args: string[];
|
|
342
|
+
label: string;
|
|
343
|
+
command: string;
|
|
344
|
+
}
|
|
345
|
+
export type CommandResult = void | boolean | TextInput;
|
|
346
|
+
export interface CommandDefinition {
|
|
347
|
+
name: string;
|
|
348
|
+
description?: TextInput;
|
|
349
|
+
usage?: TextInput;
|
|
350
|
+
aliases?: string[];
|
|
351
|
+
permission?: string;
|
|
352
|
+
execute(context: CommandExecutionContext): Awaitable<CommandResult>;
|
|
353
|
+
}
|
|
354
|
+
export interface CommandRegistry {
|
|
355
|
+
register(command: CommandDefinition): HookHandle;
|
|
356
|
+
}
|
|
357
|
+
export interface TaskRegistry {
|
|
358
|
+
run(task: () => Awaitable<void>): TaskHandle;
|
|
359
|
+
delay(delayTicks: number, task: () => Awaitable<void>): TaskHandle;
|
|
360
|
+
repeat(intervalTicks: number, task: () => Awaitable<void>): TaskHandle;
|
|
361
|
+
timer(delayTicks: number, intervalTicks: number, task: () => Awaitable<void>): TaskHandle;
|
|
362
|
+
}
|
|
363
|
+
export interface PlayerDirectory {
|
|
364
|
+
online(): PlayerHandle[];
|
|
365
|
+
get(query: string): PlayerHandle | null;
|
|
366
|
+
require(query: string): PlayerHandle;
|
|
367
|
+
}
|
|
368
|
+
export interface WorldDirectory {
|
|
369
|
+
list(): WorldHandle[];
|
|
370
|
+
get(name: string): WorldHandle | null;
|
|
371
|
+
require(name: string): WorldHandle;
|
|
372
|
+
}
|
|
373
|
+
export interface EntityDirectory {
|
|
374
|
+
get(id: string): EntityHandle | null;
|
|
375
|
+
spawn(spec: {
|
|
376
|
+
type: string;
|
|
377
|
+
location: Location;
|
|
378
|
+
world?: string;
|
|
379
|
+
}): EntityHandle;
|
|
380
|
+
}
|
|
381
|
+
export interface ItemFactory {
|
|
382
|
+
create(spec: ItemSpec): ItemHandle;
|
|
383
|
+
}
|
|
384
|
+
export interface InventoryDirectory {
|
|
385
|
+
create(spec: {
|
|
386
|
+
id?: string;
|
|
387
|
+
title: TextInput;
|
|
388
|
+
size: number;
|
|
389
|
+
}): InventoryHandle;
|
|
390
|
+
open(player: PlayerHandle, inventory: InventoryHandle): void;
|
|
391
|
+
}
|
|
392
|
+
export interface ChatService {
|
|
393
|
+
broadcast(message: TextInput): number;
|
|
394
|
+
}
|
|
395
|
+
export interface EffectsService {
|
|
396
|
+
playSound(spec: SoundSpec): void;
|
|
397
|
+
spawnParticle(spec: ParticleSpec): void;
|
|
398
|
+
applyPotion(spec: PotionEffectSpec): boolean;
|
|
399
|
+
clearPotion(player: PlayerHandle, effect?: string): void;
|
|
400
|
+
}
|
|
401
|
+
export interface RecipesService {
|
|
402
|
+
register(spec: RecipeSpec): RecipeHandle;
|
|
403
|
+
}
|
|
404
|
+
export interface BossBarsService {
|
|
405
|
+
create(spec: {
|
|
406
|
+
id?: string;
|
|
407
|
+
title: TextInput;
|
|
408
|
+
color?: string;
|
|
409
|
+
style?: string;
|
|
410
|
+
progress?: number;
|
|
411
|
+
}): BossBarHandle;
|
|
412
|
+
}
|
|
413
|
+
export interface ScoreboardsService {
|
|
414
|
+
create(spec: {
|
|
415
|
+
id?: string;
|
|
416
|
+
title: TextInput;
|
|
417
|
+
}): ScoreboardHandle;
|
|
418
|
+
}
|
|
419
|
+
export interface StorageService {
|
|
420
|
+
plugin: KeyValueStore;
|
|
421
|
+
files: FileStore;
|
|
422
|
+
}
|
|
423
|
+
export interface UnsafeBridge {
|
|
424
|
+
events: {
|
|
425
|
+
onJava<T = unknown>(eventClassName: string, handler: (payload: T) => Awaitable<void>): HookHandle;
|
|
426
|
+
};
|
|
427
|
+
java: {
|
|
428
|
+
type<T = unknown>(className: string): T;
|
|
429
|
+
};
|
|
430
|
+
backend: {
|
|
431
|
+
server: unknown;
|
|
432
|
+
plugin: unknown;
|
|
433
|
+
console: unknown;
|
|
434
|
+
dispatchCommand(command: string): boolean;
|
|
435
|
+
};
|
|
436
|
+
}
|
|
437
|
+
export interface AppService {
|
|
438
|
+
id: string;
|
|
439
|
+
name: string;
|
|
440
|
+
version: string;
|
|
441
|
+
engine: string;
|
|
442
|
+
apiVersion: string;
|
|
443
|
+
backend: string;
|
|
444
|
+
runtime: string;
|
|
445
|
+
log: Logger;
|
|
446
|
+
onShutdown(handler: () => Awaitable<void>): HookHandle;
|
|
447
|
+
}
|
|
448
|
+
export interface PluginContext {
|
|
449
|
+
app: AppService;
|
|
450
|
+
commands: CommandRegistry;
|
|
451
|
+
events: EventRegistry;
|
|
452
|
+
tasks: TaskRegistry;
|
|
453
|
+
players: PlayerDirectory;
|
|
454
|
+
worlds: WorldDirectory;
|
|
455
|
+
entities: EntityDirectory;
|
|
456
|
+
items: ItemFactory;
|
|
457
|
+
inventory: InventoryDirectory;
|
|
458
|
+
chat: ChatService;
|
|
459
|
+
effects: EffectsService;
|
|
460
|
+
recipes: RecipesService;
|
|
461
|
+
bossBars: BossBarsService;
|
|
462
|
+
scoreboards: ScoreboardsService;
|
|
463
|
+
storage: StorageService;
|
|
464
|
+
config: KeyValueStore;
|
|
465
|
+
unsafe: UnsafeBridge;
|
|
466
|
+
}
|
|
467
|
+
export interface PluginDefinition {
|
|
468
|
+
name: string;
|
|
469
|
+
version?: string;
|
|
470
|
+
onEnable?(context: PluginContext): Awaitable<void>;
|
|
471
|
+
onDisable?(context: PluginContext): Awaitable<void>;
|
|
472
|
+
}
|
|
473
|
+
export declare function definePlugin<T extends PluginDefinition>(definition: T): T;
|
package/dist/index.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "lapis-lazuli",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"import": "./dist/index.js"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist"
|
|
15
|
+
],
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public"
|
|
18
|
+
},
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "tsc -p tsconfig.build.json",
|
|
21
|
+
"prepublishOnly": "bun run build",
|
|
22
|
+
"test": "bun test"
|
|
23
|
+
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"typescript": "^5.9.3"
|
|
26
|
+
}
|
|
27
|
+
}
|