@react-text-game/core 0.1.2 → 0.2.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/README.md +68 -22
- package/dist/game.d.ts +1 -1
- package/dist/game.d.ts.map +1 -1
- package/dist/game.js.map +1 -1
- package/dist/{baseGameObject.d.ts → gameObjects/baseGameObject.d.ts} +1 -1
- package/dist/gameObjects/baseGameObject.d.ts.map +1 -0
- package/dist/{baseGameObject.js → gameObjects/baseGameObject.js} +2 -2
- package/dist/gameObjects/baseGameObject.js.map +1 -0
- package/dist/gameObjects/fabric.d.ts +19 -0
- package/dist/gameObjects/fabric.d.ts.map +1 -0
- package/dist/gameObjects/fabric.js +18 -0
- package/dist/gameObjects/fabric.js.map +1 -0
- package/dist/gameObjects/index.d.ts +4 -0
- package/dist/gameObjects/index.d.ts.map +1 -0
- package/dist/gameObjects/index.js +4 -0
- package/dist/gameObjects/index.js.map +1 -0
- package/dist/gameObjects/simpleObject.d.ts +62 -0
- package/dist/gameObjects/simpleObject.d.ts.map +1 -0
- package/dist/gameObjects/simpleObject.js +98 -0
- package/dist/gameObjects/simpleObject.js.map +1 -0
- package/dist/hooks/useGameEntity.d.ts +1 -1
- package/dist/hooks/useGameEntity.d.ts.map +1 -1
- package/dist/hooks/useGameEntity.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/tests/game.test.js +4 -68
- package/dist/tests/game.test.js.map +1 -1
- package/dist/tests/helpers/index.d.ts +2 -0
- package/dist/tests/helpers/index.d.ts.map +1 -0
- package/dist/tests/helpers/index.js +2 -0
- package/dist/tests/helpers/index.js.map +1 -0
- package/dist/tests/helpers/setupMockStorage.d.ts +10 -0
- package/dist/tests/helpers/setupMockStorage.d.ts.map +1 -0
- package/dist/tests/helpers/setupMockStorage.js +31 -0
- package/dist/tests/helpers/setupMockStorage.js.map +1 -0
- package/dist/tests/mocks/MockStorage.d.ts +14 -0
- package/dist/tests/mocks/MockStorage.d.ts.map +1 -0
- package/dist/tests/mocks/MockStorage.js +43 -0
- package/dist/tests/mocks/MockStorage.js.map +1 -0
- package/dist/tests/mocks/index.d.ts +2 -0
- package/dist/tests/mocks/index.d.ts.map +1 -0
- package/dist/tests/mocks/index.js +2 -0
- package/dist/tests/mocks/index.js.map +1 -0
- package/dist/tests/simpleObject.test.d.ts +2 -0
- package/dist/tests/simpleObject.test.d.ts.map +1 -0
- package/dist/tests/simpleObject.test.js +377 -0
- package/dist/tests/simpleObject.test.js.map +1 -0
- package/dist/types.d.ts +1 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -2
- package/dist/baseGameObject.d.ts.map +0 -1
- package/dist/baseGameObject.js.map +0 -1
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
import { afterEach, beforeEach, describe, expect, test } from "bun:test";
|
|
2
|
+
import { Game } from "../game";
|
|
3
|
+
import { SimpleObject } from "../gameObjects/simpleObject";
|
|
4
|
+
import { setupMockStorage, teardownMockStorage } from "../tests/helpers";
|
|
5
|
+
import { MockStorage } from "../tests/mocks";
|
|
6
|
+
describe("SimpleObject", () => {
|
|
7
|
+
beforeEach(async () => {
|
|
8
|
+
setupMockStorage();
|
|
9
|
+
await Game.init({ gameName: "Test Game", isDevMode: true });
|
|
10
|
+
});
|
|
11
|
+
afterEach(() => {
|
|
12
|
+
Game._resetForTesting();
|
|
13
|
+
teardownMockStorage();
|
|
14
|
+
});
|
|
15
|
+
describe("Initialization", () => {
|
|
16
|
+
test("should initialize with simple variables", () => {
|
|
17
|
+
const player = new SimpleObject({
|
|
18
|
+
id: "player",
|
|
19
|
+
variables: { health: 100, mana: 50 },
|
|
20
|
+
});
|
|
21
|
+
expect(player.id).toBe("player");
|
|
22
|
+
expect(player.health).toBe(100);
|
|
23
|
+
expect(player.mana).toBe(50);
|
|
24
|
+
});
|
|
25
|
+
test("should initialize with nested object variables", () => {
|
|
26
|
+
const player = new SimpleObject({
|
|
27
|
+
id: "player",
|
|
28
|
+
variables: {
|
|
29
|
+
health: { mental: 20, physical: 30 },
|
|
30
|
+
stats: { strength: 10, agility: 15 },
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
expect(player.id).toBe("player");
|
|
34
|
+
expect(player.health.mental).toBe(20);
|
|
35
|
+
expect(player.health.physical).toBe(30);
|
|
36
|
+
expect(player.stats.strength).toBe(10);
|
|
37
|
+
});
|
|
38
|
+
test("should initialize with array variables", () => {
|
|
39
|
+
const inventory = new SimpleObject({
|
|
40
|
+
id: "inventory",
|
|
41
|
+
variables: { items: ["sword", "shield"] },
|
|
42
|
+
});
|
|
43
|
+
expect(inventory.items).toEqual(["sword", "shield"]);
|
|
44
|
+
});
|
|
45
|
+
test("should initialize without variables", () => {
|
|
46
|
+
const obj = new SimpleObject({ id: "test" });
|
|
47
|
+
expect(obj.id).toBe("test");
|
|
48
|
+
expect(obj.variables).toEqual({});
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
describe("Variable Access and Modification", () => {
|
|
52
|
+
test("should allow direct property access", () => {
|
|
53
|
+
const player = new SimpleObject({
|
|
54
|
+
id: "player",
|
|
55
|
+
variables: { health: 100 },
|
|
56
|
+
});
|
|
57
|
+
expect(player.health).toBe(100);
|
|
58
|
+
});
|
|
59
|
+
test("should allow direct property assignment", () => {
|
|
60
|
+
const player = new SimpleObject({
|
|
61
|
+
id: "player",
|
|
62
|
+
variables: { health: 100 },
|
|
63
|
+
});
|
|
64
|
+
player.health = 50;
|
|
65
|
+
expect(player.health).toBe(50);
|
|
66
|
+
});
|
|
67
|
+
test("should support += operator for primitives", () => {
|
|
68
|
+
const player = new SimpleObject({
|
|
69
|
+
id: "player",
|
|
70
|
+
variables: { health: 100 },
|
|
71
|
+
});
|
|
72
|
+
player.health += 25;
|
|
73
|
+
expect(player.health).toBe(125);
|
|
74
|
+
});
|
|
75
|
+
test("should support -= operator for primitives", () => {
|
|
76
|
+
const player = new SimpleObject({
|
|
77
|
+
id: "player",
|
|
78
|
+
variables: { health: 100 },
|
|
79
|
+
});
|
|
80
|
+
player.health -= 30;
|
|
81
|
+
expect(player.health).toBe(70);
|
|
82
|
+
});
|
|
83
|
+
test("should support *= operator for primitives", () => {
|
|
84
|
+
const player = new SimpleObject({
|
|
85
|
+
id: "player",
|
|
86
|
+
variables: { damage: 10 },
|
|
87
|
+
});
|
|
88
|
+
player.damage *= 2;
|
|
89
|
+
expect(player.damage).toBe(20);
|
|
90
|
+
});
|
|
91
|
+
test("should allow string concatenation", () => {
|
|
92
|
+
const player = new SimpleObject({
|
|
93
|
+
id: "player",
|
|
94
|
+
variables: { name: "Hero" },
|
|
95
|
+
});
|
|
96
|
+
player.name += " of Light";
|
|
97
|
+
expect(player.name).toBe("Hero of Light");
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
describe("Nested Object Access and Modification", () => {
|
|
101
|
+
test("should allow nested object property access", () => {
|
|
102
|
+
const player = new SimpleObject({
|
|
103
|
+
id: "player",
|
|
104
|
+
variables: {
|
|
105
|
+
health: { mental: 20, physical: 30 },
|
|
106
|
+
},
|
|
107
|
+
});
|
|
108
|
+
expect(player.health.mental).toBe(20);
|
|
109
|
+
expect(player.health.physical).toBe(30);
|
|
110
|
+
});
|
|
111
|
+
test("should allow nested object property modification", () => {
|
|
112
|
+
const player = new SimpleObject({
|
|
113
|
+
id: "player",
|
|
114
|
+
variables: {
|
|
115
|
+
health: { mental: 20, physical: 30 },
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
player.health.mental = 50;
|
|
119
|
+
expect(player.health.mental).toBe(50);
|
|
120
|
+
});
|
|
121
|
+
test("should support += operator for nested properties", () => {
|
|
122
|
+
const player = new SimpleObject({
|
|
123
|
+
id: "player",
|
|
124
|
+
variables: {
|
|
125
|
+
health: { mental: 20, physical: 30 },
|
|
126
|
+
},
|
|
127
|
+
});
|
|
128
|
+
player.health.mental += 10;
|
|
129
|
+
expect(player.health.mental).toBe(30);
|
|
130
|
+
});
|
|
131
|
+
test("should support deeply nested object modification", () => {
|
|
132
|
+
const player = new SimpleObject({
|
|
133
|
+
id: "player",
|
|
134
|
+
variables: {
|
|
135
|
+
stats: {
|
|
136
|
+
combat: {
|
|
137
|
+
melee: { damage: 10, accuracy: 80 },
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
player.stats.combat.melee.damage += 5;
|
|
143
|
+
expect(player.stats.combat.melee.damage).toBe(15);
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
describe("Array Modification", () => {
|
|
147
|
+
test("should allow array push", () => {
|
|
148
|
+
const inventory = new SimpleObject({
|
|
149
|
+
id: "inventory",
|
|
150
|
+
variables: { items: ["sword"] },
|
|
151
|
+
});
|
|
152
|
+
inventory.items.push("shield");
|
|
153
|
+
expect(inventory.items).toEqual(["sword", "shield"]);
|
|
154
|
+
});
|
|
155
|
+
test("should allow array pop", () => {
|
|
156
|
+
const inventory = new SimpleObject({
|
|
157
|
+
id: "inventory",
|
|
158
|
+
variables: { items: ["sword", "shield"] },
|
|
159
|
+
});
|
|
160
|
+
const popped = inventory.items.pop();
|
|
161
|
+
expect(popped).toBe("shield");
|
|
162
|
+
expect(inventory.items).toEqual(["sword"]);
|
|
163
|
+
});
|
|
164
|
+
test("should allow array index assignment", () => {
|
|
165
|
+
const inventory = new SimpleObject({
|
|
166
|
+
id: "inventory",
|
|
167
|
+
variables: { items: ["sword", "shield"] },
|
|
168
|
+
});
|
|
169
|
+
inventory.items[0] = "axe";
|
|
170
|
+
expect(inventory.items[0]).toBe("axe");
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
describe("Save and Load", () => {
|
|
174
|
+
test("should save simple variables to storage", () => {
|
|
175
|
+
const player = new SimpleObject({
|
|
176
|
+
id: "player",
|
|
177
|
+
variables: { health: 100, mana: 50 },
|
|
178
|
+
});
|
|
179
|
+
player.save();
|
|
180
|
+
const savedData = MockStorage.getValue("$.player");
|
|
181
|
+
expect(savedData[0]).toEqual({ health: 100, mana: 50 });
|
|
182
|
+
});
|
|
183
|
+
test("should save nested variables to storage", () => {
|
|
184
|
+
const player = new SimpleObject({
|
|
185
|
+
id: "player",
|
|
186
|
+
variables: {
|
|
187
|
+
health: { mental: 20, physical: 30 },
|
|
188
|
+
},
|
|
189
|
+
});
|
|
190
|
+
player.save();
|
|
191
|
+
const savedData = MockStorage.getValue("$.player");
|
|
192
|
+
expect(savedData[0]).toEqual({
|
|
193
|
+
health: { mental: 20, physical: 30 },
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
test("should require manual save() call to persist changes", () => {
|
|
197
|
+
const player = new SimpleObject({
|
|
198
|
+
id: "player",
|
|
199
|
+
variables: { health: 100 },
|
|
200
|
+
});
|
|
201
|
+
// Save initial state
|
|
202
|
+
player.save();
|
|
203
|
+
// Modify without saving
|
|
204
|
+
player.health = 50;
|
|
205
|
+
// Storage should still have old value
|
|
206
|
+
const savedData = MockStorage.getValue("$.player");
|
|
207
|
+
expect(savedData[0]).toEqual({ health: 100 });
|
|
208
|
+
// Now save
|
|
209
|
+
player.save();
|
|
210
|
+
// Storage should have new value
|
|
211
|
+
const savedDataAfter = MockStorage.getValue("$.player");
|
|
212
|
+
expect(savedDataAfter[0]).toEqual({ health: 50 });
|
|
213
|
+
});
|
|
214
|
+
test("should require manual save() for nested property changes", () => {
|
|
215
|
+
const player = new SimpleObject({
|
|
216
|
+
id: "player",
|
|
217
|
+
variables: {
|
|
218
|
+
health: { mental: 20, physical: 30 },
|
|
219
|
+
},
|
|
220
|
+
});
|
|
221
|
+
// Save initial state
|
|
222
|
+
player.save();
|
|
223
|
+
// Modify nested property without saving
|
|
224
|
+
player.health.mental = 50;
|
|
225
|
+
// Storage should still have old value
|
|
226
|
+
const savedData = MockStorage.getValue("$.player");
|
|
227
|
+
expect(savedData[0].health.mental).toBe(20);
|
|
228
|
+
// Now save
|
|
229
|
+
player.save();
|
|
230
|
+
// Storage should have new value
|
|
231
|
+
const savedDataAfter = MockStorage.getValue("$.player");
|
|
232
|
+
expect(savedDataAfter[0].health.mental).toBe(50);
|
|
233
|
+
});
|
|
234
|
+
test("should load variables from storage", () => {
|
|
235
|
+
const player = new SimpleObject({
|
|
236
|
+
id: "player",
|
|
237
|
+
variables: { health: 100, mana: 50 },
|
|
238
|
+
});
|
|
239
|
+
// Save initial state
|
|
240
|
+
player.save();
|
|
241
|
+
// Modify in-memory
|
|
242
|
+
player.health = 999;
|
|
243
|
+
expect(player.health).toBe(999);
|
|
244
|
+
// Load should restore from storage
|
|
245
|
+
player.load();
|
|
246
|
+
expect(player.health).toBe(100);
|
|
247
|
+
expect(player.mana).toBe(50);
|
|
248
|
+
});
|
|
249
|
+
test("should load nested variables from storage", () => {
|
|
250
|
+
const player = new SimpleObject({
|
|
251
|
+
id: "player",
|
|
252
|
+
variables: {
|
|
253
|
+
health: { mental: 20, physical: 30 },
|
|
254
|
+
},
|
|
255
|
+
});
|
|
256
|
+
player.save();
|
|
257
|
+
// Modify
|
|
258
|
+
player.health.mental = 999;
|
|
259
|
+
// Load
|
|
260
|
+
player.load();
|
|
261
|
+
expect(player.health.mental).toBe(20);
|
|
262
|
+
expect(player.health.physical).toBe(30);
|
|
263
|
+
});
|
|
264
|
+
test("should clear variables when loading empty storage", () => {
|
|
265
|
+
const player = new SimpleObject({
|
|
266
|
+
id: "player",
|
|
267
|
+
variables: { health: 100 },
|
|
268
|
+
});
|
|
269
|
+
// Don't save, just load
|
|
270
|
+
player.load();
|
|
271
|
+
// @ts-expect-error TS2769
|
|
272
|
+
expect(player.variables).toEqual({});
|
|
273
|
+
});
|
|
274
|
+
});
|
|
275
|
+
describe("Special Type Handling", () => {
|
|
276
|
+
test("should handle Date objects without proxying", () => {
|
|
277
|
+
const date = new Date("2024-01-01");
|
|
278
|
+
const player = new SimpleObject({
|
|
279
|
+
id: "player",
|
|
280
|
+
variables: { createdAt: date },
|
|
281
|
+
});
|
|
282
|
+
expect(player.createdAt).toBeInstanceOf(Date);
|
|
283
|
+
expect(player.createdAt.getTime()).toBe(date.getTime());
|
|
284
|
+
});
|
|
285
|
+
test("should handle RegExp without proxying", () => {
|
|
286
|
+
const pattern = /test/i;
|
|
287
|
+
const player = new SimpleObject({
|
|
288
|
+
id: "player",
|
|
289
|
+
variables: { pattern },
|
|
290
|
+
});
|
|
291
|
+
expect(player.pattern).toBeInstanceOf(RegExp);
|
|
292
|
+
expect(player.pattern.test("TEST")).toBe(true);
|
|
293
|
+
});
|
|
294
|
+
test("should handle null values", () => {
|
|
295
|
+
const player = new SimpleObject({
|
|
296
|
+
id: "player",
|
|
297
|
+
variables: { weapon: null },
|
|
298
|
+
});
|
|
299
|
+
expect(player.weapon).toBeNull();
|
|
300
|
+
});
|
|
301
|
+
test("should handle undefined values", () => {
|
|
302
|
+
const player = new SimpleObject({
|
|
303
|
+
id: "player",
|
|
304
|
+
variables: { optionalField: undefined },
|
|
305
|
+
});
|
|
306
|
+
expect(player.optionalField).toBeUndefined();
|
|
307
|
+
});
|
|
308
|
+
test("should handle boolean values", () => {
|
|
309
|
+
const player = new SimpleObject({
|
|
310
|
+
id: "player",
|
|
311
|
+
variables: { isAlive: true },
|
|
312
|
+
});
|
|
313
|
+
expect(player.isAlive).toBe(true);
|
|
314
|
+
player.isAlive = false;
|
|
315
|
+
expect(player.isAlive).toBe(false);
|
|
316
|
+
});
|
|
317
|
+
});
|
|
318
|
+
describe("Complex Scenarios", () => {
|
|
319
|
+
test("should handle mixed primitive and nested object updates", () => {
|
|
320
|
+
const player = new SimpleObject({
|
|
321
|
+
id: "player",
|
|
322
|
+
variables: {
|
|
323
|
+
name: "Hero",
|
|
324
|
+
level: 1,
|
|
325
|
+
stats: { strength: 10, agility: 10 },
|
|
326
|
+
},
|
|
327
|
+
});
|
|
328
|
+
player.name = "Champion";
|
|
329
|
+
player.level += 1;
|
|
330
|
+
player.stats.strength += 5;
|
|
331
|
+
expect(player.name).toBe("Champion");
|
|
332
|
+
expect(player.level).toBe(2);
|
|
333
|
+
expect(player.stats.strength).toBe(15);
|
|
334
|
+
});
|
|
335
|
+
test("should maintain proxy consistency across multiple accesses", () => {
|
|
336
|
+
const player = new SimpleObject({
|
|
337
|
+
id: "player",
|
|
338
|
+
variables: {
|
|
339
|
+
health: { current: 100, max: 100 },
|
|
340
|
+
},
|
|
341
|
+
});
|
|
342
|
+
// Access health multiple times
|
|
343
|
+
const health1 = player.health;
|
|
344
|
+
const health2 = player.health;
|
|
345
|
+
// Both should reference the same proxy
|
|
346
|
+
health1.current = 50;
|
|
347
|
+
expect(health2.current).toBe(50);
|
|
348
|
+
expect(player.health.current).toBe(50);
|
|
349
|
+
});
|
|
350
|
+
test("should handle complete state replacement", () => {
|
|
351
|
+
const player = new SimpleObject({
|
|
352
|
+
id: "player",
|
|
353
|
+
variables: {
|
|
354
|
+
health: { current: 100, max: 100 },
|
|
355
|
+
},
|
|
356
|
+
});
|
|
357
|
+
// Replace entire health object
|
|
358
|
+
player.health = { current: 50, max: 150 };
|
|
359
|
+
expect(player.health.current).toBe(50);
|
|
360
|
+
expect(player.health.max).toBe(150);
|
|
361
|
+
});
|
|
362
|
+
test("should work with Game state serialization", () => {
|
|
363
|
+
const player = new SimpleObject({
|
|
364
|
+
id: "player",
|
|
365
|
+
variables: { health: 100, mana: 50 },
|
|
366
|
+
});
|
|
367
|
+
player.health = 75;
|
|
368
|
+
const gameState = Game.getState();
|
|
369
|
+
expect(gameState.player).toEqual({ health: 75, mana: 50 });
|
|
370
|
+
// Modify and restore
|
|
371
|
+
player.health = 25;
|
|
372
|
+
Game.setState(gameState);
|
|
373
|
+
expect(player.health).toBe(75);
|
|
374
|
+
});
|
|
375
|
+
});
|
|
376
|
+
});
|
|
377
|
+
//# sourceMappingURL=simpleObject.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simpleObject.test.js","sourceRoot":"","sources":["../../src/tests/simpleObject.test.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type EmptyObject = Record<string, never>;
|
|
2
2
|
export type JsonPath = `$.${string}`;
|
|
3
3
|
export type InitVarsType = Record<string, unknown>;
|
|
4
|
-
type Identity<T> = {
|
|
4
|
+
export type Identity<T> = {
|
|
5
5
|
[P in keyof T]: T[P];
|
|
6
6
|
};
|
|
7
7
|
export type Replace<T, K extends keyof T, TReplace> = Identity<Pick<T, Exclude<keyof T, K>> & {
|
|
@@ -15,5 +15,4 @@ export type OptionalCallable<T> = Callable<T | undefined>;
|
|
|
15
15
|
export type MaybeOptionalCallable<T> = T | OptionalCallable<T>;
|
|
16
16
|
export type ButtonVariant = "solid" | "faded" | "bordered" | "light" | "flat" | "ghost" | "shadow";
|
|
17
17
|
export type ButtonColor = "default" | "primary" | "secondary" | "success" | "warning" | "danger";
|
|
18
|
-
export {};
|
|
19
18
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEhD,MAAM,MAAM,QAAQ,GAAG,KAAK,MAAM,EAAE,CAAC;AAErC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnD,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEhD,MAAM,MAAM,QAAQ,GAAG,KAAK,MAAM,EAAE,CAAC;AAErC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnD,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AACnD,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,QAAQ,IAAI,QAAQ,CAC1D,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;KAC1B,CAAC,IAAI,CAAC,GAAG,QAAQ;CACrB,CACJ,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,gBAAgB,GAAG,QAAQ,CAAC;AAEhE,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAClC,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC/C,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAC1D,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAE/D,MAAM,MAAM,aAAa,GACnB,OAAO,GACP,OAAO,GACP,UAAU,GACV,OAAO,GACP,MAAM,GACN,OAAO,GACP,QAAQ,CAAC;AAEf,MAAM,MAAM,WAAW,GACjB,SAAS,GACT,SAAS,GACT,WAAW,GACX,SAAS,GACT,SAAS,GACT,QAAQ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-text-game/core",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
8
8
|
"repository": "github:laruss/react-text-game",
|
|
9
|
+
"homepage": "https://laruss.github.io/react-text-game/",
|
|
9
10
|
"private": false,
|
|
10
11
|
"type": "module",
|
|
11
12
|
"scripts": {
|
|
12
13
|
"dev": "tsc --watch & tsc-alias --watch",
|
|
13
14
|
"build": "tsc && tsc-alias",
|
|
14
15
|
"prepack": "rm -rf dist && bun run build",
|
|
15
|
-
"test-pack": "npm pack --dry-run && bunx publint"
|
|
16
|
+
"test-pack": "npm pack --dry-run && bunx publint",
|
|
17
|
+
"publish": "npm whoami && npm publish"
|
|
16
18
|
},
|
|
17
19
|
"author": "laruss",
|
|
18
20
|
"publishConfig": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"baseGameObject.d.ts","sourceRoot":"","sources":["../src/baseGameObject.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAY,MAAM,QAAQ,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,cAAc,CAAC,aAAa,SAAS,YAAY,GAAG,YAAY;IACzE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAEzC;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC;IAEpC;;;;;;OAMG;gBACS,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,aAAa,CAAA;KAAE;IAM5D;;;;OAIG;IACH,IAAI,SAAS,IAAI,aAAa,CAE7B;IAED;;;;;OAKG;IACH,OAAO,KAAK,IAAI,GAEf;IAED;;;;;;;;;;OAUG;IACH,IAAI;IAWJ;;;;;;;;;;OAUG;IACH,IAAI;CAGP"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"baseGameObject.js","sourceRoot":"","sources":["../src/baseGameObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAO,cAAc;IACf,MAAM,CAAC,QAAQ,GAAa,IAAI,CAAC;IAEzC;;;OAGG;IACM,EAAE,CAAS;IAEpB;;;OAGG;IACO,UAAU,CAAgB;IAEpC;;;;;;OAMG;IACH,YAAY,KAAgD;QACxD,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,IAAK,EAAoB,CAAC;QAC3D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACH,IAAY,IAAI;QACZ,OAAO,GAAG,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAc,CAAC;IAC9D,CAAC;IAED;;;;;;;;;;OAUG;IACH,IAAI;QACA,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAkB,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACJ,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAChC,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACH,IAAI;QACA,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3D,CAAC"}
|