@where-stars-drift/core 1.0.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/LICENSE +20 -0
- package/README.md +143 -0
- package/dist/src/base/bounded-body.d.ts +8 -0
- package/dist/src/base/bounded-body.js +10 -0
- package/dist/src/base/celestial-body.d.ts +12 -0
- package/dist/src/base/celestial-body.js +11 -0
- package/dist/src/base/hoverable.d.ts +10 -0
- package/dist/src/base/hoverable.js +4 -0
- package/dist/src/base/massive-body.d.ts +8 -0
- package/dist/src/base/massive-body.js +10 -0
- package/dist/src/config/effects.d.ts +14 -0
- package/dist/src/config/effects.js +14 -0
- package/dist/src/config/grid.d.ts +10 -0
- package/dist/src/config/grid.js +10 -0
- package/dist/src/config/panel.d.ts +26 -0
- package/dist/src/config/panel.js +26 -0
- package/dist/src/config/simulation.d.ts +21 -0
- package/dist/src/config/simulation.js +23 -0
- package/dist/src/controllers/clan-controller.d.ts +7 -0
- package/dist/src/controllers/clan-controller.js +12 -0
- package/dist/src/controllers/debug-controller.d.ts +45 -0
- package/dist/src/controllers/debug-controller.js +82 -0
- package/dist/src/controllers/effects-controller.d.ts +17 -0
- package/dist/src/controllers/effects-controller.js +71 -0
- package/dist/src/controllers/hover-controller.d.ts +11 -0
- package/dist/src/controllers/hover-controller.js +107 -0
- package/dist/src/controllers/layer-controller.d.ts +16 -0
- package/dist/src/controllers/layer-controller.js +64 -0
- package/dist/src/controllers/physics-controller.d.ts +14 -0
- package/dist/src/controllers/physics-controller.js +152 -0
- package/dist/src/controllers/star-controller.d.ts +12 -0
- package/dist/src/controllers/star-controller.js +38 -0
- package/dist/src/controllers/starship-controller.d.ts +17 -0
- package/dist/src/controllers/starship-controller.js +58 -0
- package/dist/src/draw-debug-line.d.ts +9 -0
- package/dist/src/draw-debug-line.js +29 -0
- package/dist/src/entities/black-hole-factory.d.ts +15 -0
- package/dist/src/entities/black-hole-factory.js +23 -0
- package/dist/src/entities/black-hole-shapes.d.ts +9 -0
- package/dist/src/entities/black-hole-shapes.js +224 -0
- package/dist/src/entities/black-hole.d.ts +69 -0
- package/dist/src/entities/black-hole.js +210 -0
- package/dist/src/entities/clan-manager.d.ts +12 -0
- package/dist/src/entities/clan-manager.js +22 -0
- package/dist/src/entities/clans.d.ts +15 -0
- package/dist/src/entities/clans.js +76 -0
- package/dist/src/entities/comet.d.ts +27 -0
- package/dist/src/entities/comet.js +81 -0
- package/dist/src/entities/docking-point.d.ts +20 -0
- package/dist/src/entities/docking-point.js +22 -0
- package/dist/src/entities/fleet.d.ts +45 -0
- package/dist/src/entities/fleet.js +374 -0
- package/dist/src/entities/formations.d.ts +51 -0
- package/dist/src/entities/formations.js +340 -0
- package/dist/src/entities/meteor.d.ts +26 -0
- package/dist/src/entities/meteor.js +48 -0
- package/dist/src/entities/nebula.d.ts +18 -0
- package/dist/src/entities/nebula.js +43 -0
- package/dist/src/entities/orbit.d.ts +23 -0
- package/dist/src/entities/orbit.js +43 -0
- package/dist/src/entities/pulsar.d.ts +18 -0
- package/dist/src/entities/pulsar.js +41 -0
- package/dist/src/entities/ring.d.ts +13 -0
- package/dist/src/entities/ring.js +26 -0
- package/dist/src/entities/ringed-planet.d.ts +21 -0
- package/dist/src/entities/ringed-planet.js +68 -0
- package/dist/src/entities/sector-grid.d.ts +16 -0
- package/dist/src/entities/sector-grid.js +70 -0
- package/dist/src/entities/star-factory.d.ts +29 -0
- package/dist/src/entities/star-factory.js +47 -0
- package/dist/src/entities/star.d.ts +48 -0
- package/dist/src/entities/star.js +167 -0
- package/dist/src/entities/starship-classes.d.ts +0 -0
- package/dist/src/entities/starship-classes.js +2 -0
- package/dist/src/entities/starship.d.ts +91 -0
- package/dist/src/entities/starship.js +760 -0
- package/dist/src/entities/supernova.d.ts +26 -0
- package/dist/src/entities/supernova.js +54 -0
- package/dist/src/index.d.ts +20 -0
- package/dist/src/index.js +19 -0
- package/dist/src/lib/energy-stream.d.ts +5 -0
- package/dist/src/lib/energy-stream.js +98 -0
- package/dist/src/lib/quadtree.d.ts +31 -0
- package/dist/src/lib/quadtree.js +124 -0
- package/dist/src/lib/simplified-stream.d.ts +6 -0
- package/dist/src/lib/simplified-stream.js +19 -0
- package/dist/src/types.d.ts +14 -0
- package/dist/src/types.js +1 -0
- package/dist/src/ui/black-holes-panel.d.ts +2 -0
- package/dist/src/ui/black-holes-panel.js +76 -0
- package/dist/src/ui/clans-panel.d.ts +2 -0
- package/dist/src/ui/clans-panel.js +20 -0
- package/dist/src/ui/debug-panel-controller.d.ts +41 -0
- package/dist/src/ui/debug-panel-controller.js +285 -0
- package/dist/src/ui/fleets-panel.d.ts +2 -0
- package/dist/src/ui/fleets-panel.js +127 -0
- package/dist/src/ui/formations-panel.d.ts +3 -0
- package/dist/src/ui/formations-panel.js +129 -0
- package/dist/src/ui/panel-config.d.ts +26 -0
- package/dist/src/ui/panel-config.js +26 -0
- package/dist/src/ui/ships-panel.d.ts +12 -0
- package/dist/src/ui/ships-panel.js +61 -0
- package/dist/src/ui/stars-panel.d.ts +2 -0
- package/dist/src/ui/stars-panel.js +120 -0
- package/dist/src/where-stars-drift.d.ts +71 -0
- package/dist/src/where-stars-drift.js +440 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +35 -0
- package/src/base/bounded-body.ts +14 -0
- package/src/base/celestial-body.ts +20 -0
- package/src/base/hoverable.ts +11 -0
- package/src/base/massive-body.ts +14 -0
- package/src/config/effects.ts +15 -0
- package/src/config/grid.ts +11 -0
- package/src/config/panel.ts +26 -0
- package/src/config/simulation.ts +25 -0
- package/src/controllers/clan-controller.ts +19 -0
- package/src/controllers/debug-controller.ts +112 -0
- package/src/controllers/effects-controller.ts +86 -0
- package/src/controllers/hover-controller.ts +128 -0
- package/src/controllers/layer-controller.ts +78 -0
- package/src/controllers/physics-controller.ts +173 -0
- package/src/controllers/star-controller.ts +51 -0
- package/src/controllers/starship-controller.ts +76 -0
- package/src/draw-debug-line.ts +37 -0
- package/src/entities/black-hole-factory.ts +28 -0
- package/src/entities/black-hole-shapes.ts +276 -0
- package/src/entities/black-hole.ts +246 -0
- package/src/entities/clan-manager.ts +33 -0
- package/src/entities/clans.ts +98 -0
- package/src/entities/comet.ts +102 -0
- package/src/entities/docking-point.ts +34 -0
- package/src/entities/fleet.ts +446 -0
- package/src/entities/formations.ts +423 -0
- package/src/entities/meteor.ts +59 -0
- package/src/entities/nebula.ts +50 -0
- package/src/entities/orbit.ts +53 -0
- package/src/entities/pulsar.ts +64 -0
- package/src/entities/ring.ts +42 -0
- package/src/entities/ringed-planet.ts +85 -0
- package/src/entities/sector-grid.ts +81 -0
- package/src/entities/star-factory.ts +59 -0
- package/src/entities/star.ts +222 -0
- package/src/entities/starship-classes.ts +1 -0
- package/src/entities/starship.ts +906 -0
- package/src/entities/supernova.ts +75 -0
- package/src/index.ts +24 -0
- package/src/lib/energy-stream.ts +127 -0
- package/src/lib/quadtree.ts +159 -0
- package/src/lib/simplified-stream.ts +28 -0
- package/src/types.ts +16 -0
- package/src/ui/black-holes-panel.ts +91 -0
- package/src/ui/clans-panel.ts +27 -0
- package/src/ui/debug-panel-controller.ts +339 -0
- package/src/ui/fleets-panel.ts +153 -0
- package/src/ui/formations-panel.ts +155 -0
- package/src/ui/panel-config.ts +26 -0
- package/src/ui/ships-panel.ts +85 -0
- package/src/ui/stars-panel.ts +146 -0
- package/src/where-stars-drift.ts +542 -0
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
import { SIMULATION_CONFIG, DEBUG_CONFIG } from './config/simulation';
|
|
2
|
+
import { Star } from './entities/star';
|
|
3
|
+
import { Comet, COMET_CONFIG } from './entities/comet';
|
|
4
|
+
import { Starship } from './entities/starship';
|
|
5
|
+
import { Fleet } from './entities/fleet';
|
|
6
|
+
import { HoverController } from './controllers/hover-controller';
|
|
7
|
+
import { BlackHle } from './entities/black-hole';
|
|
8
|
+
import { LayerController } from './controllers/layer-controller';
|
|
9
|
+
import { StarshipController } from './controllers/starship-controller';
|
|
10
|
+
import { StarController } from './controllers/star-controller';
|
|
11
|
+
import { PhysicsController } from './controllers/physics-controller';
|
|
12
|
+
import { EffectsController } from './controllers/effects-controller';
|
|
13
|
+
import { DebugController } from './controllers/debug-controller';
|
|
14
|
+
import { Nebula, NEBULA_CONFIG } from './entities/nebula';
|
|
15
|
+
import { Quadtree } from './lib/quadtree';
|
|
16
|
+
import { DebugPanelController } from './ui/debug-panel-controller';
|
|
17
|
+
import { formationRegistry } from './entities/formations';
|
|
18
|
+
import { SectorGrid } from './entities/sector-grid';
|
|
19
|
+
export class WhereStarsDrift {
|
|
20
|
+
constructor(canvas, config = {}) {
|
|
21
|
+
var _a, _b, _c, _d, _e, _f;
|
|
22
|
+
this.mouse = {
|
|
23
|
+
x: 0,
|
|
24
|
+
y: 0,
|
|
25
|
+
lastX: 0,
|
|
26
|
+
lastY: 0,
|
|
27
|
+
dx: 0,
|
|
28
|
+
dy: 0,
|
|
29
|
+
};
|
|
30
|
+
this.isMouseInside = false;
|
|
31
|
+
this.animationFrameId = 0;
|
|
32
|
+
this.lastTime = 0;
|
|
33
|
+
this.pulseTime = 0;
|
|
34
|
+
// GitHub link interaction
|
|
35
|
+
this.githubLinkBounds = null;
|
|
36
|
+
this.isMouseOverGithubLink = false;
|
|
37
|
+
// Stats
|
|
38
|
+
this.frameCount = 0;
|
|
39
|
+
this.fps = 0;
|
|
40
|
+
this.fpsFrameCount = 0;
|
|
41
|
+
this.lastFpsUpdateTime = 0;
|
|
42
|
+
this.fpsHistory = [];
|
|
43
|
+
this.avgFps = 0;
|
|
44
|
+
this.avgFpsWindow = 60;
|
|
45
|
+
this.canvas = canvas;
|
|
46
|
+
const context = canvas.getContext('2d');
|
|
47
|
+
if (!context) {
|
|
48
|
+
throw new Error('Could not get 2D rendering context from canvas.');
|
|
49
|
+
}
|
|
50
|
+
this.ctx = context;
|
|
51
|
+
this.config = {
|
|
52
|
+
starsCount: (_a = config.starsCount) !== null && _a !== void 0 ? _a : SIMULATION_CONFIG.STARS_COUNT,
|
|
53
|
+
interactive: (_b = config.interactive) !== null && _b !== void 0 ? _b : true,
|
|
54
|
+
debug: (_c = config.debug) !== null && _c !== void 0 ? _c : false,
|
|
55
|
+
showCatalog: (_d = config.showCatalog) !== null && _d !== void 0 ? _d : false,
|
|
56
|
+
showGrid: (_e = config.showGrid) !== null && _e !== void 0 ? _e : true,
|
|
57
|
+
showGithubLink: (_f = config.showGithubLink) !== null && _f !== void 0 ? _f : true,
|
|
58
|
+
};
|
|
59
|
+
// Override DEBUG_CONFIG based on instance config
|
|
60
|
+
DEBUG_CONFIG.SHOW_DEBUG_INFO = this.config.debug;
|
|
61
|
+
DEBUG_CONFIG.SHOW_CATALOG_PANEL = this.config.showCatalog;
|
|
62
|
+
this.width = canvas.width;
|
|
63
|
+
this.height = canvas.height;
|
|
64
|
+
this.mouse.x = this.width / 2;
|
|
65
|
+
this.mouse.y = this.height / 2;
|
|
66
|
+
this.mouse.lastX = this.width / 2;
|
|
67
|
+
this.mouse.lastY = this.height / 2;
|
|
68
|
+
this._initializeControllers();
|
|
69
|
+
// Bind methods to the instance to maintain `this` context
|
|
70
|
+
this.animate = this.animate.bind(this);
|
|
71
|
+
this._handleMouseMove = this._handleMouseMove.bind(this);
|
|
72
|
+
this._handleMouseEnter = this._handleMouseEnter.bind(this);
|
|
73
|
+
this._handleMouseLeave = this._handleMouseLeave.bind(this);
|
|
74
|
+
this._handleMouseDown = this._handleMouseDown.bind(this);
|
|
75
|
+
this._handleMouseUp = this._handleMouseUp.bind(this);
|
|
76
|
+
this._handleWheel = this._handleWheel.bind(this);
|
|
77
|
+
this._handleResize = this._handleResize.bind(this);
|
|
78
|
+
}
|
|
79
|
+
_initializeControllers() {
|
|
80
|
+
this.layerController = new LayerController();
|
|
81
|
+
this.debugController = new DebugController();
|
|
82
|
+
this.starController = new StarController(this.layerController, this.config.starsCount, this.width, this.height);
|
|
83
|
+
this.starshipController = new StarshipController(this.layerController, this.width, this.height, this.debugController);
|
|
84
|
+
this.physicsController = new PhysicsController(this.debugController);
|
|
85
|
+
this.effectsController = new EffectsController(this.width, this.height);
|
|
86
|
+
this.quadtree = new Quadtree({ x: 0, y: 0, width: this.width, height: this.height });
|
|
87
|
+
for (let i = 0; i < NEBULA_CONFIG.COUNT; i++) {
|
|
88
|
+
this.layerController.addBody('backgroundNebulas', new Nebula(Math.random() * this.width, Math.random() * this.height, this.width));
|
|
89
|
+
}
|
|
90
|
+
for (let i = 0; i < COMET_CONFIG.COUNT; i++) {
|
|
91
|
+
this.layerController.addBody('dynamicObjects', new Comet(this.width, this.height));
|
|
92
|
+
}
|
|
93
|
+
this.layerController.addBody('sectorGrid', new SectorGrid(this.width, this.height));
|
|
94
|
+
this.allLayers = Object.values(this.layerController.getLayers());
|
|
95
|
+
this.allBodies = this.allLayers.flatMap(l => l.bodies);
|
|
96
|
+
this.hoverController = new HoverController(this.allBodies);
|
|
97
|
+
this.debugPanelController = new DebugPanelController(this.ctx, formationRegistry.getAllFormations());
|
|
98
|
+
}
|
|
99
|
+
start() {
|
|
100
|
+
if (this.animationFrameId !== 0)
|
|
101
|
+
return; // Already running
|
|
102
|
+
this._setupEventListeners();
|
|
103
|
+
this.lastTime = performance.now();
|
|
104
|
+
this.animationFrameId = requestAnimationFrame(this.animate);
|
|
105
|
+
}
|
|
106
|
+
stop() {
|
|
107
|
+
if (this.animationFrameId) {
|
|
108
|
+
cancelAnimationFrame(this.animationFrameId);
|
|
109
|
+
this.animationFrameId = 0;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
destroy() {
|
|
113
|
+
this.stop();
|
|
114
|
+
this._removeEventListeners();
|
|
115
|
+
}
|
|
116
|
+
getStats() {
|
|
117
|
+
return {
|
|
118
|
+
fps: this.fps,
|
|
119
|
+
avgFps: this.avgFps,
|
|
120
|
+
starCount: this.starController.getAllStars().length,
|
|
121
|
+
starshipCount: this.starshipController.getAllStarships().length,
|
|
122
|
+
frameCount: this.frameCount,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
setInteractive(enabled) {
|
|
126
|
+
if (this.config.interactive === enabled)
|
|
127
|
+
return;
|
|
128
|
+
this.config.interactive = enabled;
|
|
129
|
+
if (this.animationFrameId !== 0) {
|
|
130
|
+
this._removeEventListeners();
|
|
131
|
+
this._setupEventListeners();
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
setDebug(enabled) {
|
|
135
|
+
this.config.debug = enabled;
|
|
136
|
+
DEBUG_CONFIG.SHOW_DEBUG_INFO = enabled;
|
|
137
|
+
}
|
|
138
|
+
setShowCatalog(visible) {
|
|
139
|
+
this.config.showCatalog = visible;
|
|
140
|
+
DEBUG_CONFIG.SHOW_CATALOG_PANEL = visible;
|
|
141
|
+
}
|
|
142
|
+
setShowGrid(visible) {
|
|
143
|
+
this.config.showGrid = visible;
|
|
144
|
+
}
|
|
145
|
+
setShowGithubLink(visible) {
|
|
146
|
+
this.config.showGithubLink = visible;
|
|
147
|
+
if (!visible) {
|
|
148
|
+
this.isMouseOverGithubLink = false;
|
|
149
|
+
this.canvas.style.cursor = 'default';
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
_setupEventListeners() {
|
|
153
|
+
this.canvas.addEventListener('mousemove', this._handleMouseMove);
|
|
154
|
+
this.canvas.addEventListener('mouseenter', this._handleMouseEnter);
|
|
155
|
+
this.canvas.addEventListener('mouseleave', this._handleMouseLeave);
|
|
156
|
+
this.canvas.addEventListener('mousedown', this._handleMouseDown);
|
|
157
|
+
window.addEventListener('mouseup', this._handleMouseUp);
|
|
158
|
+
this.canvas.addEventListener('wheel', this._handleWheel);
|
|
159
|
+
window.addEventListener('resize', this._handleResize);
|
|
160
|
+
}
|
|
161
|
+
_removeEventListeners() {
|
|
162
|
+
this.canvas.removeEventListener('mousemove', this._handleMouseMove);
|
|
163
|
+
this.canvas.removeEventListener('mouseenter', this._handleMouseEnter);
|
|
164
|
+
this.canvas.removeEventListener('mouseleave', this._handleMouseLeave);
|
|
165
|
+
this.canvas.removeEventListener('mousedown', this._handleMouseDown);
|
|
166
|
+
window.removeEventListener('mouseup', this._handleMouseUp);
|
|
167
|
+
this.canvas.removeEventListener('wheel', this._handleWheel);
|
|
168
|
+
window.removeEventListener('resize', this._handleResize);
|
|
169
|
+
}
|
|
170
|
+
_handleMouseMove(event) {
|
|
171
|
+
const rect = this.canvas.getBoundingClientRect();
|
|
172
|
+
const mouseX = event.clientX - rect.left;
|
|
173
|
+
const mouseY = event.clientY - rect.top;
|
|
174
|
+
if (this.debugPanelController && this.debugPanelController.isDragging()) {
|
|
175
|
+
this.debugPanelController.handleMouseMove(mouseX, mouseY);
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
let isOverLink = false;
|
|
179
|
+
if (this.config.showGithubLink && this.githubLinkBounds) {
|
|
180
|
+
const bounds = this.githubLinkBounds;
|
|
181
|
+
if (mouseX >= bounds.x && mouseX <= bounds.x + bounds.width &&
|
|
182
|
+
mouseY >= bounds.y && mouseY <= bounds.y + bounds.height) {
|
|
183
|
+
isOverLink = true;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
this.isMouseOverGithubLink = isOverLink;
|
|
187
|
+
if (this.isMouseOverGithubLink) {
|
|
188
|
+
this.canvas.style.cursor = 'pointer';
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
this.canvas.style.cursor = 'default';
|
|
192
|
+
}
|
|
193
|
+
if (this.isMouseInside) {
|
|
194
|
+
this.mouse.x = mouseX;
|
|
195
|
+
this.mouse.y = mouseY;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
_handleMouseEnter(event) {
|
|
199
|
+
this.isMouseInside = true;
|
|
200
|
+
this.mouse.x = event.clientX - this.canvas.getBoundingClientRect().left;
|
|
201
|
+
this.mouse.y = event.clientY - this.canvas.getBoundingClientRect().top;
|
|
202
|
+
this.mouse.lastX = this.mouse.x;
|
|
203
|
+
this.mouse.lastY = this.mouse.y;
|
|
204
|
+
}
|
|
205
|
+
_handleMouseLeave() {
|
|
206
|
+
this.isMouseInside = false;
|
|
207
|
+
this.mouse.lastX = -1;
|
|
208
|
+
this.mouse.lastY = -1;
|
|
209
|
+
this.mouse.dx = 0;
|
|
210
|
+
this.mouse.dy = 0;
|
|
211
|
+
this.isMouseOverGithubLink = false;
|
|
212
|
+
this.canvas.style.cursor = 'default';
|
|
213
|
+
}
|
|
214
|
+
_handleMouseDown(event) {
|
|
215
|
+
if (this.isMouseOverGithubLink) {
|
|
216
|
+
window.open('https://github.com/where-stars-drift', '_blank');
|
|
217
|
+
event.preventDefault();
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
if (this.config.showCatalog) {
|
|
221
|
+
const rect = this.canvas.getBoundingClientRect();
|
|
222
|
+
const x = event.clientX - rect.left;
|
|
223
|
+
const y = event.clientY - rect.top;
|
|
224
|
+
if (this.debugPanelController.isMouseOver(x, y)) {
|
|
225
|
+
this.debugPanelController.handleMouseDown(x, y);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
_handleMouseUp() {
|
|
230
|
+
if (this.config.showCatalog) {
|
|
231
|
+
this.debugPanelController.handleMouseUp();
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
_handleWheel(event) {
|
|
235
|
+
if (this.config.showCatalog) {
|
|
236
|
+
const rect = this.canvas.getBoundingClientRect();
|
|
237
|
+
const x = event.clientX - rect.left;
|
|
238
|
+
const y = event.clientY - rect.top;
|
|
239
|
+
if (this.debugPanelController.isMouseOver(x, y)) {
|
|
240
|
+
event.preventDefault();
|
|
241
|
+
this.debugPanelController.handleScroll(event.deltaY);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
_handleResize() {
|
|
246
|
+
if (!this.canvas)
|
|
247
|
+
return;
|
|
248
|
+
this.width = this.canvas.offsetWidth;
|
|
249
|
+
this.height = this.canvas.offsetHeight;
|
|
250
|
+
this.canvas.width = this.width;
|
|
251
|
+
this.canvas.height = this.height;
|
|
252
|
+
if (this.quadtree) {
|
|
253
|
+
this.quadtree = new Quadtree({ x: 0, y: 0, width: this.width, height: this.height });
|
|
254
|
+
}
|
|
255
|
+
const sectorGrid = this.layerController.getBodies('sectorGrid')[0];
|
|
256
|
+
if (sectorGrid) {
|
|
257
|
+
sectorGrid.resize(this.width, this.height);
|
|
258
|
+
}
|
|
259
|
+
if (this.debugPanelController) {
|
|
260
|
+
this.debugPanelController.handleResize();
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
_drawGithubIcon(x, y, size) {
|
|
264
|
+
this.ctx.save();
|
|
265
|
+
this.ctx.translate(x, y);
|
|
266
|
+
// Scale to fit size, default path is for 24x24 box
|
|
267
|
+
this.ctx.scale(size / 24, size / 24);
|
|
268
|
+
const path = new Path2D('M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22');
|
|
269
|
+
const isHovered = this.isMouseOverGithubLink;
|
|
270
|
+
this.ctx.strokeStyle = isHovered ? 'rgba(255, 255, 255, 1.0)' : 'rgba(255, 255, 255, 0.8)';
|
|
271
|
+
this.ctx.lineWidth = 2;
|
|
272
|
+
this.ctx.stroke(path);
|
|
273
|
+
this.ctx.restore();
|
|
274
|
+
}
|
|
275
|
+
_drawGithubLink() {
|
|
276
|
+
if (!this.config.showGithubLink) {
|
|
277
|
+
this.githubLinkBounds = null;
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
const x = 16; // Corresponds to top-4, left-4
|
|
281
|
+
const y = 16;
|
|
282
|
+
const iconSize = 12;
|
|
283
|
+
const gap = 4;
|
|
284
|
+
const text = 'Where Stars Drift v1.0.0';
|
|
285
|
+
const isHovered = this.isMouseOverGithubLink;
|
|
286
|
+
this.ctx.fillStyle = isHovered ? 'rgba(255, 255, 255, 1.0)' : 'rgba(255, 255, 255, 0.8)';
|
|
287
|
+
this.ctx.font = '12px "Roboto Mono", monospace';
|
|
288
|
+
this.ctx.textBaseline = 'middle';
|
|
289
|
+
this._drawGithubIcon(x, y, iconSize);
|
|
290
|
+
const textX = x + iconSize + gap;
|
|
291
|
+
const textY = y + iconSize / 2;
|
|
292
|
+
this.ctx.fillText(text, textX, textY);
|
|
293
|
+
const textMetrics = this.ctx.measureText(text);
|
|
294
|
+
this.githubLinkBounds = {
|
|
295
|
+
x: x,
|
|
296
|
+
y: y,
|
|
297
|
+
width: iconSize + gap + textMetrics.width,
|
|
298
|
+
height: iconSize
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
_checkMouseInteraction() {
|
|
302
|
+
if (!this.isMouseInside)
|
|
303
|
+
return;
|
|
304
|
+
const starships = this.layerController.getBodies('dynamicObjects').filter(b => b instanceof Starship);
|
|
305
|
+
starships.forEach(ship => {
|
|
306
|
+
if (ship.state === 'FLEEING' || ship.state === 'IN_FORMATION')
|
|
307
|
+
return;
|
|
308
|
+
const dx = ship.x - this.mouse.x;
|
|
309
|
+
const dy = ship.y - this.mouse.y;
|
|
310
|
+
const dist = Math.sqrt(dx * dx + dy * dy);
|
|
311
|
+
if (dist < 50) {
|
|
312
|
+
ship.state = 'FLEEING';
|
|
313
|
+
ship.stateTimer = 180;
|
|
314
|
+
}
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
animate(currentTime) {
|
|
318
|
+
const deltaTime = (currentTime - this.lastTime) / 16.67; // Normalize to 60 FPS
|
|
319
|
+
this.lastTime = currentTime;
|
|
320
|
+
this.frameCount++;
|
|
321
|
+
// FPS Calculation
|
|
322
|
+
this.fpsFrameCount++;
|
|
323
|
+
if (currentTime - this.lastFpsUpdateTime > 1000) {
|
|
324
|
+
this.fps = this.fpsFrameCount / ((currentTime - this.lastFpsUpdateTime) / 1000);
|
|
325
|
+
this.lastFpsUpdateTime = currentTime;
|
|
326
|
+
this.fpsFrameCount = 0;
|
|
327
|
+
this.fpsHistory.push(this.fps);
|
|
328
|
+
if (this.fpsHistory.length > this.avgFpsWindow) {
|
|
329
|
+
this.fpsHistory.shift();
|
|
330
|
+
}
|
|
331
|
+
this.avgFps = this.fpsHistory.reduce((a, b) => a + b, 0) / this.fpsHistory.length;
|
|
332
|
+
}
|
|
333
|
+
this.ctx.clearRect(0, 0, this.width, this.height);
|
|
334
|
+
this.debugController.clear();
|
|
335
|
+
this.pulseTime += 0.02;
|
|
336
|
+
if (this.config.interactive && this.isMouseInside) {
|
|
337
|
+
this.mouse.dx = this.mouse.x - this.mouse.lastX;
|
|
338
|
+
this.mouse.dy = this.mouse.y - this.mouse.lastY;
|
|
339
|
+
}
|
|
340
|
+
else {
|
|
341
|
+
this.mouse.dx = 0;
|
|
342
|
+
this.mouse.dy = 0;
|
|
343
|
+
}
|
|
344
|
+
this.mouse.lastX = this.mouse.x;
|
|
345
|
+
this.mouse.lastY = this.mouse.y;
|
|
346
|
+
const allStars = this.starController.getAllStars();
|
|
347
|
+
const allStarships = this.starshipController.getAllStarships();
|
|
348
|
+
const blackHoles = this.layerController.getBodies('blackHoles');
|
|
349
|
+
const allFleets = this.layerController.getBodies('dynamicObjects').filter(b => b instanceof Fleet);
|
|
350
|
+
const allClans = this.starshipController.getAllClans();
|
|
351
|
+
const allFormations = formationRegistry.getAllFormations();
|
|
352
|
+
this.quadtree.clear();
|
|
353
|
+
for (const body of this.allBodies) {
|
|
354
|
+
this.quadtree.insert(body);
|
|
355
|
+
}
|
|
356
|
+
if (this.config.debug && DEBUG_CONFIG.SHOW_QUADTREE) {
|
|
357
|
+
this.quadtree.draw(this.ctx);
|
|
358
|
+
}
|
|
359
|
+
if (this.config.interactive) {
|
|
360
|
+
const newSupernovas = this.physicsController.update(blackHoles, allStars, this.quadtree, this.width, this.height);
|
|
361
|
+
this.effectsController.addSupernovas(newSupernovas);
|
|
362
|
+
}
|
|
363
|
+
this.allLayers.forEach(layer => {
|
|
364
|
+
layer.bodies.forEach(body => {
|
|
365
|
+
if (body instanceof Star) {
|
|
366
|
+
body.update(this.ctx, this.width, this.height, this.mouse, layer.isInteractive, this.isMouseInside, this.pulseTime);
|
|
367
|
+
}
|
|
368
|
+
else if (body instanceof BlackHle) {
|
|
369
|
+
body.update(this.ctx, this.width, this.height, this.frameCount);
|
|
370
|
+
}
|
|
371
|
+
else if (body instanceof Starship) {
|
|
372
|
+
if (body.state !== 'IN_FORMATION') {
|
|
373
|
+
body.update(this.ctx, this.width, this.height, this.mouse, deltaTime);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
else if (body instanceof Fleet) {
|
|
377
|
+
body.update(this.ctx, this.width, this.height);
|
|
378
|
+
}
|
|
379
|
+
else if (body instanceof Comet) {
|
|
380
|
+
body.update(this.ctx, this.width, this.height);
|
|
381
|
+
}
|
|
382
|
+
else {
|
|
383
|
+
body.update(this.ctx, this.width, this.height);
|
|
384
|
+
}
|
|
385
|
+
});
|
|
386
|
+
});
|
|
387
|
+
if (this.config.interactive) {
|
|
388
|
+
this.hoverController.update(this.mouse, this.isMouseInside, this.config.debug);
|
|
389
|
+
}
|
|
390
|
+
this.layerController.getBodies('backgroundNebulas').forEach(body => body.draw(this.ctx));
|
|
391
|
+
if (this.config.showGrid) {
|
|
392
|
+
this.layerController.getBodies('sectorGrid').forEach(body => body.draw(this.ctx));
|
|
393
|
+
}
|
|
394
|
+
this.layerController.getBodies('staticStars').forEach(body => body.draw(this.ctx, this.pulseTime));
|
|
395
|
+
this.layerController.getBodies('interactiveStars').forEach(body => body.draw(this.ctx, this.pulseTime));
|
|
396
|
+
this.effectsController.updateAndDrawSupernovas(this.ctx);
|
|
397
|
+
this.effectsController.drawStarToHoleStreams(this.ctx, allStars, blackHoles);
|
|
398
|
+
this.layerController.getBodies('blackHoles').forEach(body => body.draw(this.ctx, this.pulseTime, this.frameCount));
|
|
399
|
+
this.layerController.getBodies('dynamicObjects').forEach(body => {
|
|
400
|
+
if (body instanceof Starship) {
|
|
401
|
+
const isInFleet = this.layerController.getBodies('dynamicObjects').filter(b => b instanceof Fleet).some(f => f.members.includes(body));
|
|
402
|
+
if (!isInFleet) {
|
|
403
|
+
body.draw(this.ctx);
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
else {
|
|
407
|
+
body.draw(this.ctx);
|
|
408
|
+
}
|
|
409
|
+
});
|
|
410
|
+
this.effectsController.updateAndDrawMeteors(this.ctx);
|
|
411
|
+
if (this.config.interactive) {
|
|
412
|
+
this.starshipController.manageStarshipTargets(allStars);
|
|
413
|
+
this.starshipController.manageFleets(this.width, this.height);
|
|
414
|
+
this._checkMouseInteraction();
|
|
415
|
+
}
|
|
416
|
+
// Isolate all UI drawing to prevent transform leaks
|
|
417
|
+
this.ctx.save();
|
|
418
|
+
this._drawGithubLink();
|
|
419
|
+
if (this.config.debug) {
|
|
420
|
+
this.debugController.draw(this.ctx);
|
|
421
|
+
if (DEBUG_CONFIG.SHOW_CATALOG_PANEL) {
|
|
422
|
+
this.debugPanelController.draw({
|
|
423
|
+
starships: allStarships,
|
|
424
|
+
formations: allFormations,
|
|
425
|
+
clans: allClans,
|
|
426
|
+
fleets: allFleets,
|
|
427
|
+
stars: allStars,
|
|
428
|
+
blackHoles: blackHoles,
|
|
429
|
+
}, this.pulseTime, this.frameCount);
|
|
430
|
+
}
|
|
431
|
+
this.ctx.fillStyle = 'rgba(255, 255, 255, 0.7)';
|
|
432
|
+
this.ctx.font = '12px "Roboto Mono", monospace';
|
|
433
|
+
this.ctx.textAlign = 'right';
|
|
434
|
+
const stats = this.getStats();
|
|
435
|
+
this.ctx.fillText(`FPS: ${stats.fps.toFixed(0)} (Avg: ${stats.avgFps.toFixed(0)})`, this.width - 10, this.height - 10);
|
|
436
|
+
}
|
|
437
|
+
this.ctx.restore();
|
|
438
|
+
this.animationFrameId = requestAnimationFrame(this.animate);
|
|
439
|
+
}
|
|
440
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/typescript/lib/lib.es2024.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/index.d.ts","../../../node_modules/@types/react/index.d.ts","../../../node_modules/@types/react/jsx-runtime.d.ts","../src/draw-debug-line.ts","../src/config/simulation.ts","../src/base/celestial-body.ts","../src/base/bounded-body.ts","../src/base/massive-body.ts","../src/entities/docking-point.ts","../src/entities/orbit.ts","../src/base/hoverable.ts","../src/entities/black-hole-shapes.ts","../src/lib/energy-stream.ts","../src/config/effects.ts","../src/entities/black-hole.ts","../src/entities/star.ts","../src/entities/comet.ts","../src/entities/clans.ts","../src/entities/formations.ts","../src/entities/fleet.ts","../src/controllers/debug-controller.ts","../src/entities/starship.ts","../src/controllers/hover-controller.ts","../src/controllers/layer-controller.ts","../src/entities/clan-manager.ts","../src/controllers/clan-controller.ts","../src/controllers/starship-controller.ts","../src/entities/pulsar.ts","../src/entities/ring.ts","../src/entities/ringed-planet.ts","../src/entities/star-factory.ts","../src/entities/black-hole-factory.ts","../src/controllers/star-controller.ts","../src/entities/supernova.ts","../src/lib/quadtree.ts","../src/controllers/physics-controller.ts","../src/entities/meteor.ts","../src/lib/simplified-stream.ts","../src/controllers/effects-controller.ts","../src/entities/nebula.ts","../src/ui/panel-config.ts","../src/ui/ships-panel.ts","../src/ui/formations-panel.ts","../src/ui/clans-panel.ts","../src/ui/fleets-panel.ts","../src/ui/stars-panel.ts","../src/ui/black-holes-panel.ts","../src/types.ts","../src/ui/debug-panel-controller.ts","../src/config/grid.ts","../src/entities/sector-grid.ts","../src/where-stars-drift.ts","../src/index.ts","../src/config/panel.ts","../src/entities/starship-classes.ts","../../../node_modules/@types/d3-array/index.d.ts","../../../node_modules/@types/d3-color/index.d.ts","../../../node_modules/@types/d3-ease/index.d.ts","../../../node_modules/@types/d3-interpolate/index.d.ts","../../../node_modules/@types/d3-path/index.d.ts","../../../node_modules/@types/d3-time/index.d.ts","../../../node_modules/@types/d3-scale/index.d.ts","../../../node_modules/@types/d3-shape/index.d.ts","../../../node_modules/@types/d3-timer/index.d.ts","../../../node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/dom-events.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/react-dom/index.d.ts"],"fileIdsList":[[148,190],[135,148,190],[139,148,190],[138,148,190],[148,187,190],[148,189,190],[190],[148,190,195,224],[148,190,191,196,202,203,210,221,232],[148,190,191,192,202,210],[143,144,145,148,190],[148,190,193,233],[148,190,194,195,203,211],[148,190,195,221,229],[148,190,196,198,202,210],[148,189,190,197],[148,190,198,199],[148,190,202],[148,190,200,202],[148,189,190,202],[148,190,202,203,204,221,232],[148,190,202,203,204,217,221,224],[148,185,190,237],[148,190,198,202,205,210,221,232],[148,190,202,203,205,206,210,221,229,232],[148,190,205,207,221,229,232],[146,147,148,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238],[148,190,202,208],[148,190,209,232,237],[148,190,198,202,210,221],[148,190,211],[148,190,212],[148,189,190,213],[148,187,188,189,190,191,192,193,194,195,196,197,198,199,200,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238],[148,190,215],[148,190,216],[148,190,202,217,218],[148,190,217,219,233,235],[148,190,202,221,222,223,224],[148,190,221,223],[148,190,221,222],[148,190,224],[148,190,225],[148,187,190,221],[148,190,202,227,228],[148,190,227,228],[148,190,195,210,221,229],[148,190,230],[148,190,210,231],[148,190,205,216,232],[148,190,195,233],[148,190,221,234],[148,190,209,235],[148,190,236],[148,190,195,202,204,213,221,232,235,237],[148,190,221,238],[80,148,190],[78,79,148,190],[148,157,161,190,232],[148,157,190,221,232],[148,152,190],[148,154,157,190,229,232],[148,190,210,229],[148,190,239],[148,152,190,239],[148,154,157,190,210,232],[148,149,150,153,156,190,202,221,232],[148,157,164,190],[148,149,155,190],[148,157,178,179,190],[148,153,157,190,224,232,239],[148,178,190,239],[148,151,152,190,239],[148,157,190],[148,151,152,153,154,155,156,157,158,159,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,179,180,181,182,183,184,190],[148,157,172,190],[148,157,164,165,190],[148,155,157,165,166,190],[148,156,190],[148,149,152,157,190],[148,157,161,165,166,190],[148,161,190],[148,155,157,160,190,232],[148,149,154,157,164,190],[148,190,221],[148,152,157,178,190,237,239],[81,84,148,190],[81,148,190],[81,85,148,190],[81,96,103,148,190],[81,92,93,94,112,115,116,148,190],[81,84,89,93,94,98,100,148,190],[81,83,85,93,94,99,112,113,148,190],[81,94,102,109,110,148,190],[81,94,96,98,99,100,102,104,148,190],[81,93,148,190],[81,83,86,89,90,91,92,94,148,190],[81,96,148,190],[81,98,100,148,190],[81,85,94,148,190],[81,84,94,148,190],[81,83,85,89,96,97,100,148,190],[81,100,148,190],[81,87,94,148,190],[81,94,148,190],[81,87,94,107,148,190],[81,84,128,148,190],[81,94,106,108,148,190],[81,83,86,87,88,89,93,148,190],[81,83,85,87,88,89,94,98,99,148,190],[81,83,93,94,95,96,97,98,100,102,105,106,108,111,112,114,117,118,128,129,130,148,190],[81,93,94,148,190],[81,93,94,96,97,98,100,148,190],[81,93,119,148,190],[81,96,119,148,190],[81,83,93,94,96,97,98,100,109,110,119,120,121,122,123,124,125,126,148,190],[81,98,119,148,190],[81,97,98,100,119,148,190],[81,100,119,148,190],[81,94,106,108,119,148,190],[81,83,93,94,95,97,98,99,100,101,102,105,111,113,114,117,118,127,129,148,190]],"fileInfos":[{"version":"e41c290ef7dd7dab3493e6cbe5909e0148edf4a8dad0271be08edec368a0f7b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"e12a46ce14b817d4c9e6b2b478956452330bf00c9801b79de46f7a1815b5bd40","impliedFormat":1},{"version":"4fd3f3422b2d2a3dfd5cdd0f387b3a8ec45f006c6ea896a4cb41264c2100bb2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"62bb211266ee48b2d0edf0d8d1b191f0c24fc379a82bd4c1692a082c540bc6b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f1e2a172204962276504466a6393426d2ca9c54894b1ad0a6c9dad867a65f876","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"bab26767638ab3557de12c900f0b91f710c7dc40ee9793d5a27d32c04f0bf646","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"61d6a2092f48af66dbfb220e31eea8b10bc02b6932d6e529005fd2d7b3281290","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"170d4db14678c68178ee8a3d5a990d5afb759ecb6ec44dbd885c50f6da6204f6","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"5e76305d58bcdc924ff2bf14f6a9dc2aa5441ed06464b7e7bd039e611d66a89b","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"b6ffaaf5539568969f443bedecd753d07f39c23f1d4ce8bda57396e998245ef7","signature":"f19b11e71ddee15d4a8d19d1987a5b1876799b45fabcdd81dbd386a939d13c5e"},{"version":"5dc52a61c9172ea5eeb42666b3b7ab80cd6074d096bc9c5a5ffe183eeda03b18","signature":"4f5988bd48d35c682d3cffbcb6b9b1c377ec4d0fcf9322488e88ff033f0cf0be"},{"version":"2282db023b22e34eb1a9ff825eace01438a349ba36c172874dec30f502c0dcf3","signature":"890d6bfa0cdc2a0417cd9619e768c658edfe6b00c8d897c070c44b8fa9464886"},{"version":"a3f40d359700f0472fb3a66af84b41fda8774e6d4ed3ee0715c2eaeee11057e3","signature":"cbf54d67021c6690a13b212576c73a4cd56e82f2507e66b547f5541045f48981"},{"version":"4ee3fee43dfd248303afc2df4ee8a01d33c7bc3bbdecf26c03f34f9d75d6e306","signature":"6305fd9ba53b210fbf87f278ab4fb1cbd54e094d4393e2a411cf6e560909bcbb"},{"version":"9285a5efd49e12df644f5058f14109fb65e5709e4e880e0076475111b03ffe03","signature":"b825733ffd8666f010cde4e8cc6bd7602cb70ca66dda4025102d7260984b6869"},{"version":"6aad138ffa88f3c5371f0ed1756b2ca61dc67e04a774bfd2d9d649f058098d75","signature":"d8bd2a35cf62bba1f83e897d4f39c3817dd69629d22fd5bad60b5ac1c4981b21"},{"version":"e569fe701b10ff843ef5305cb16303b7cd3904785fac752f094591d056f003f0","signature":"caa99caf365486492b9327f2a6a88a793b082028a9f50034964265ddb2d4fada"},{"version":"1038a38b4b11afabcf6e9e7e871f5ca6c8e93dc423f5dd7ac03d548f926adfa3","signature":"47b858706b8d46c2d76b0a23b37c0eab234b0c1df3872e55157670bcccf42741"},{"version":"943ee79bd9942b3912f919f9222c569ee63c1d1a10325f6a812cf0a818366334","signature":"f6d802948419e3c908ecdfbc4484a08e3b861f631e0171b14607d6ce8161e973"},{"version":"0b17aea86a41b13e8089cf7dfd9770bb147199be40d0e3ae91f97f2e1b6bee74","signature":"4b08adc5d404a1b1fb0c4bd70b321ff383494fa64aff3b693731facc9cf649e7"},{"version":"61af78f64a88115bac5815c2f5f4b0fa9ed5e0586bbf7365842ad385aa887e26","signature":"34375eaf10741b1d57cb4cbd97686fd6d6fd1af6eca52f84e01ad76e98cf25ab"},{"version":"1de1c1a7e919887d4d236d7480c2ed5c5455172e7ea82f6eff0ebfc6056bf7ff","signature":"678cd15a201d454ca8adadcea2ebac8302db03b68767a5682659a68e28d6f277"},{"version":"bd1f1142e95b62320cafb31d8556ff8ce0e0297b4cbb9a8ccf088454d9c2dea5","signature":"c49d452b2cf5b8de6ecf8547cd9908e4ca08eeb2fa79e6cabc92137a06562397"},{"version":"9b173a460928caf3ae9b1933be78bb460c6e001386fe859b252a351f0718f064","signature":"744c397ead269f68ec5822d8c5fb1548bad01eff454342a4cd2837f78a9efa5c"},{"version":"52774685eaf8103c54a04b216356a514f851cba49f3b168e00e6caf7d86c50ce","signature":"acb6f769af05cf8918d72eee4967ebad8b8d661a4d897d67a052ca20bc2d7555"},{"version":"86618184eb8ca14f8b9cbd87d0d94f505a11a0f7cc10c0330348043ee9865800","signature":"84cd47e2c80a00ff7de2e0bf29572b70c88a151d106dfb169ebc1e7b6ecf7caa"},{"version":"c862b50b6fee206427cce85a92d5d7401c5e906eb1e75317b7e329f59c61c743","signature":"c69099fc77b871ab78a31210c2f3249bdd802d1eb433ed5c49c25229c9d432db"},{"version":"c0a617954263f11a059251090d1c8a2ef769eb8de2bfa7fc348a0918eb6b4e77","signature":"d4dc70a4f2d0b99aadfe147f28711f17968417dbb213ef5b9193f171d9a3326e"},{"version":"d3c767175449893bd501c8dcbbd4458f025dd922db4c859bfb77ec20d9f4ceef","signature":"22a1ac03a654a5e01324211d423bdc7c9248ed950ece5291bdea8e8d895e303f"},{"version":"88986ee451349815dcd61cd78b04000771a8bb2b3b3896f6a2f4009bb12931dc","signature":"ee2f667955a7e0361d8d95c4e28ed5911fe515299157cbf9fea4c1d2487b611f"},{"version":"007dee7cc5ea21b565da0268bdf3fec8f1a0aa4c38395695b64b3946e486661c","signature":"0535284bec2129ac0c94a914762f6ab16bbd217b447c3ba3f40cce1ac8029ef4"},{"version":"de1dfa4da53ec8786de89741bed19d6409304291cdff463f4fbf865070bc568b","signature":"e866b90d9ed753d06b388b18313fb3f5e81a7f3adbd106a88fd050deef4b0371"},{"version":"645b8f3f444a5748f4f766e18d7520af4b81465dcb781b0763bc05bbb060aa64","signature":"52aec499d3fadff1ee4689194b826850da9f1d5d34f2b96c0f4bd710597315a8"},{"version":"f081de67c72308cf717d300f536c8b48cf0ed5e0f12d189d542e47cdc791befb","signature":"2eae0147250a3f35f0003131b850bb6d15697bc8436e5e59b20feb595a3ea3dd"},{"version":"551e7817646b95de2012298ac6bc00ebecc8ea29fe69819299ac520b530d2d8c","signature":"13fd53ba1064b8266f05aad9b6b2ec5655e5a6be0c086ab35262c7cc14de7328"},{"version":"6c0937ef93579d888ec601f537681897ad2303823b77d389454b187241cb62f7","signature":"832c919db077e45468d4fad8d35098bc1d2603681b12ba68d7812203215c2851"},{"version":"e6d1cad70486ca521882a34d6eefcea8d1d4e5472cfaba65e4ecb5178a7e033d","signature":"4221fc7334a6100f70726feb3ffe3e1dffdb4434dc71952e7c3d665fa09592de"},{"version":"a0548d70100cf4fc4934c7c84018497e81bc461fc60707fb0374c8337166f15c","signature":"3de3ad6f748e03d53c2e4b57e563bc90bb20e2501681e6ae73d58253c24be0f0"},{"version":"615b48871a7e4ac3ed7b54118042a8e94c3dec35b2e3c17fed6237e3fb9e0193","signature":"e9dde0dd2570e239720a7ddf5bbed7fb8f838fa15fc1234fc41fbac049efed52"},{"version":"84d2f72268be849af8aa7ad1a8c04473f706c6083d8d69ebabac45d76360470a","signature":"e75385b6c12a3644cd3546d4cd9a097764ccc220723800c6647fae87075396b0"},{"version":"eac685c0082d80756e6f7844a3c27327fa8388c99266d7906641b119405ce98a","signature":"db718c1b06c991d6527de02a9b430b60fcaf591dc791585a7b4a66ff89c0831d"},{"version":"fa8cfa015fad7efe469656e3e7e17235cf6157c3d3b320fe1dfb25dc2d1197ad","signature":"fb8f493f1f2bcc1fa2c25c191d6184f752d773c67a93251e0b4ba201e9bd3d6a"},{"version":"13e8f90f10738b486d71247123b4ebb44e47446d1457e03fdf12cde5bbd9bcf0","signature":"0d4e664ed4d6af011ffbde114867dea320a33e8ebf46aa34526e241f3a6f7333"},{"version":"edf22b24dff5219d08cb0778afc7e6f40fc320ef467c9451ba1dd0bf0d53af9f","signature":"7e75b69d5f7a0f6b519b943c788f36f730c32e4dd91b996935c96e3b706cee97"},{"version":"f6611c4ece89410f329288610e945e78ca5c52d873e798cad3088ea8657fe2db","signature":"e7af3aebf98af2121a5c441cc130bc28f45969a73ec1dfc2015e443788e97519"},{"version":"a2ff49016696a145cb2c601e5ba20dd485e9c42cc261ad92916c05367633ab71","signature":"c600976de14285b1dcdbc69ce02847e1d5aed9abe3614a25070ada9d12cc5853"},{"version":"74c6dbca649a5619ddfbf5f8f89b983ef69bdbbbca08104ee0011222398dcee2","signature":"dd5407a5acd6bacf440d07637aa4b0ee26ea58a53ac0c1c57064368ef0e1e2aa"},{"version":"5be144eca26babc809a776660dc17a66510ea6426be5936c11bebde89041e4e9","signature":"5bdb38b63aad835f17de2f4571d05485af86a6e5fb7eddef6c2b7f687f81e888"},{"version":"401296bac9ca8ed69099734b6f141b96251ad875a3f36a04a5f9c610283d8070","signature":"a870aab8d96c7cbfe81a97a65bf40cffd9167c4dbab993f6034bb8091352afbf"},{"version":"b0ed6bd991faa1d6a262f6d981d0d068c8e3632abc8902b0d56ae9c58f255ced","signature":"7457f5ee8366bcd411254c0c2788b291c83a72c376b4a7e04c5a238b6acd5bfc"},{"version":"0151c36e23a6f6dbfe49483810753b762ea35fc7f5ea7df7db3c6a23b19fe853","signature":"d948fc3fd69611e429282b49fa335a98740d89529dfe91680dbacfe1f4d9eaef"},{"version":"93b619990e5dc8a7595d3f002549551542f2a54510c637dd7f33392255b57ff4","signature":"16ccec4f181070e9a6a03f3db99a25143f86f1412affea3bbf99919008522f96"},{"version":"8932cdc76b1e693aaaacadce0838360fdecafa2610c5d3ea0d01eb9d2a012456","signature":"99b6357d2b1a58a5188c965ca9ccc9434ebd09dd9b8a99cfd6237747c3daaea8"},{"version":"b81d216770c43d0a859d4250517b052b1efb91caa95b16ebecf2d115718aefbf","signature":"9721a32e1b355f4a35adf3c1b356be0b0e6f9bf56e89e67c17993e257cc2dd86"},{"version":"d327818df93a98fc6563793a967d4b35c4cbc6dc1d1c31573260331ec33fd113","signature":"4700e5b9a9dc6546321f002e2e6978a2b61ec9f04d956d69b94ebc502e1739ec"},{"version":"863dac61bb91a68c20221c9ef139f8e7c3a2df4f2691699e591ac7327f557d26","signature":"7d97bda24b2ae828501808a37396458353ea9208dba80335f39d3336660350de"},{"version":"15506040d178ce6f16b44576c0a512c7cb5e954561206030c005b9a1ddf35918","signature":"96c51cbbe628f06d7ccd60134725a660d25dd45d59f5f1215b8e9b3393246e6c"},{"version":"6af1888a4cd58bb6c44e3c03f3f29db87fda7b3965b103139594a8d018ffa317","signature":"59034f70ab1fd70127db7cd24415637bd7aa908eeec16af8077e0aaa8db64a70"},{"version":"fb5df56d3bd029a03950ec213453f5cce0ea1bedf83f17dff7368f02519ffbed","signature":"f9e31761fc2d07fc0218f0db7f8728e1c799aaa9947363dadcfe6a2355f02391"},{"version":"74c6dbca649a5619ddfbf5f8f89b983ef69bdbbbca08104ee0011222398dcee2","signature":"dd5407a5acd6bacf440d07637aa4b0ee26ea58a53ac0c1c57064368ef0e1e2aa"},{"version":"176be3924d2aea89f5b310d51afaad4ae93a4f121a66f303c1f161163933da07","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},{"version":"e0c868a08451c879984ccf4d4e3c1240b3be15af8988d230214977a3a3dad4ce","impliedFormat":1},{"version":"6fc1a4f64372593767a9b7b774e9b3b92bf04e8785c3f9ea98973aa9f4bbe490","impliedFormat":1},{"version":"ff09b6fbdcf74d8af4e131b8866925c5e18d225540b9b19ce9485ca93e574d84","impliedFormat":1},{"version":"d5895252efa27a50f134a9b580aa61f7def5ab73d0a8071f9b5bf9a317c01c2d","impliedFormat":1},{"version":"2c378d9368abcd2eba8c29b294d40909845f68557bc0b38117e4f04fc56e5f9c","impliedFormat":1},{"version":"56208c500dcb5f42be7e18e8cb578f257a1a89b94b3280c506818fed06391805","impliedFormat":1},{"version":"0c94c2e497e1b9bcfda66aea239d5d36cd980d12a6d9d59e66f4be1fa3da5d5a","impliedFormat":1},{"version":"bb220eaac1677e2ad82ac4e7fd3e609a0c7b6f2d6d9c673a35068c97f9fcd5cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"1f366bde16e0513fa7b64f87f86689c4d36efd85afce7eb24753e9c99b91c319","impliedFormat":1},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fd06258805d26c72f5997e07a23155d322d5f05387adb3744a791fe6a0b042d","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"24bd580b5743dc56402c440dc7f9a4f5d592ad7a419f25414d37a7bfe11e342b","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"6bdc71028db658243775263e93a7db2fd2abfce3ca569c3cca5aee6ed5eb186d","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"4d2b0eb911816f66abe4970898f97a2cfc902bcd743cbfa5017fad79f7ef90d8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","impliedFormat":1},{"version":"24b8685c62562f5d98615c5a0c1d05f297cf5065f15246edfe99e81ec4c0e011","impliedFormat":1},{"version":"93507c745e8f29090efb99399c3f77bec07db17acd75634249dc92f961573387","impliedFormat":1},{"version":"339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"08faa97886e71757779428dd4c69a545c32c85fd629d1116d42710b32c6378bc","affectsGlobalScope":true,"impliedFormat":1},{"version":"a72ffc815104fb5c075106ebca459b2d55d07862a773768fce89efc621b3964b","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"3d77c73be94570813f8cadd1f05ebc3dc5e2e4fdefe4d340ca20cd018724ee36","impliedFormat":1},{"version":"d674383111e06b6741c4ad2db962131b5b0fa4d0294b998566c635e86195a453","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3e58c4c18a031cbb17abec7a4ad0bd5ae9fc70c1f4ba1e7fb921ad87c504aca","impliedFormat":1},{"version":"a3e8bafb2af8e850c644f4be7f5156cf7d23b7bfdc3b786bd4d10ed40329649c","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"f77d9188e41291acf14f476e931972460a303e1952538f9546e7b370cb8d0d20","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d04e3640dd9eb67f7f1e5bd3d0bf96c784666f7aefc8ac1537af6f2d38d4c29","impliedFormat":1},{"version":"3c884d9d9ec454bdf0d5a0b8465bf8297d2caa4d853851d92cc417ac6f30b969","impliedFormat":1},{"version":"5a369483ac4cfbdf0331c248deeb36140e6907db5e1daed241546b4a2055f82c","impliedFormat":1},{"version":"e8f5b5cc36615c17d330eaf8eebbc0d6bdd942c25991f96ef122f246f4ff722f","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ada07543808f3b967624645a8e1ccd446f8b01ade47842acf1328aec899fed0","affectsGlobalScope":true,"impliedFormat":1},{"version":"c4a806152acbef81593f96cae6f2b04784d776457d97adbe2694478b243fcf03","impliedFormat":1},{"version":"71adf5dbc59568663d252a46179e71e4d544c053978bfc526d11543a3f716f42","impliedFormat":1},{"version":"c60db41f7bee80fb80c0b12819f5e465c8c8b465578da43e36d04f4a4646f57d","impliedFormat":1},{"version":"93bd413918fa921c8729cef45302b24d8b6c7855d72d5bf82d3972595ae8dcbf","impliedFormat":1},{"version":"4ff41188773cbf465807dd2f7059c7494cbee5115608efc297383832a1150c43","impliedFormat":1},{"version":"dccdf1677e531e33f8ac961a68bc537418c9a414797c1ea7e91307501cdc3f5e","impliedFormat":1},{"version":"e184c4b8918ef56c8c9e68bd79f3f3780e2d0d75bf2b8a41da1509a40c2deb46","affectsGlobalScope":true,"impliedFormat":1},{"version":"d206b4baf4ddcc15d9d69a9a2f4999a72a2c6adeaa8af20fa7a9960816287555","impliedFormat":1},{"version":"93f437e1398a4f06a984f441f7fa7a9f0535c04399619b5c22e0b87bdee182cb","impliedFormat":1},{"version":"afbe24ab0d74694372baa632ecb28bb375be53f3be53f9b07ecd7fc994907de5","impliedFormat":1},{"version":"70731d10d5311bd4cf710ef7f6539b62660f4b0bfdbb3f9fbe1d25fe6366a7fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"6b19db3600a17af69d4f33d08cc7076a7d19fb65bb36e442cac58929ec7c9482","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"137c2894e8f3e9672d401cc0a305dc7b1db7c69511cf6d3970fb53302f9eae09","impliedFormat":1},{"version":"3bc2f1e2c95c04048212c569ed38e338873f6a8593930cf5a7ef24ffb38fc3b6","impliedFormat":1},{"version":"8145e07aad6da5f23f2fcd8c8e4c5c13fb26ee986a79d03b0829b8fce152d8b2","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"235bfb54b4869c26f7e98e3d1f68dbfc85acf4cf5c38a4444a006fbf74a8a43d","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"bb715efb4857eb94539eafb420352105a0cff40746837c5140bf6b035dd220ba","affectsGlobalScope":true,"impliedFormat":1},{"version":"1851a3b4db78664f83901bb9cac9e45e03a37bb5933cc5bf37e10bb7e91ab4eb","impliedFormat":1},{"version":"fdedf82878e4c744bc2a1c1e802ae407d63474da51f14a54babe039018e53d8f","affectsGlobalScope":true,"impliedFormat":1},{"version":"27d8987fd22d92efe6560cf0ce11767bf089903ffe26047727debfd1f3bf438b","affectsGlobalScope":true,"impliedFormat":1},{"version":"578d8bb6dcb2a1c03c4c3f8eb71abc9677e1a5c788b7f24848e3138ce17f3400","impliedFormat":1},{"version":"4f029899f9bae07e225c43aef893590541b2b43267383bf5e32e3a884d219ed5","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"5b566927cad2ed2139655d55d690ffa87df378b956e7fe1c96024c4d9f75c4cf","affectsGlobalScope":true,"impliedFormat":1},{"version":"bce947017cb7a2deebcc4f5ba04cead891ce6ad1602a4438ae45ed9aa1f39104","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3dffd70e6375b872f0b4e152de4ae682d762c61a24881ecc5eb9f04c5caf76f","impliedFormat":1},{"version":"e2c72c065a36bc9ab2a00ac6a6f51e71501619a72c0609defd304d46610487a4","impliedFormat":1},{"version":"d91a7d8b5655c42986f1bdfe2105c4408f472831c8f20cf11a8c3345b6b56c8c","impliedFormat":1},{"version":"616075a6ac578cf5a013ee12964188b4412823796ce0b202c6f1d2e4ca8480d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"e8a979b8af001c9fc2e774e7809d233c8ca955a28756f52ee5dee88ccb0611d2","impliedFormat":1},{"version":"cac793cc47c29e26e4ac3601dcb00b4435ebed26203485790e44f2ad8b6ad847","impliedFormat":1},{"version":"be1cc4d94ea60cbe567bc29ed479d42587bf1e6cba490f123d329976b0fe4ee5","impliedFormat":1}],"root":[[82,133]],"options":{"composite":true,"declaration":true,"esModuleInterop":true,"jsx":4,"module":99,"outDir":"./","skipLibCheck":true,"strict":true,"target":4},"referencedMap":[[134,1],[135,1],[136,1],[137,2],[138,1],[140,3],[141,4],[139,1],[142,1],[187,5],[188,5],[189,6],[148,7],[190,8],[191,9],[192,10],[143,1],[146,11],[144,1],[145,1],[193,12],[194,13],[195,14],[196,15],[197,16],[198,17],[199,17],[201,18],[200,19],[202,20],[203,21],[204,22],[186,23],[147,1],[205,24],[206,25],[207,26],[239,27],[208,28],[209,29],[210,30],[211,31],[212,32],[213,33],[214,34],[215,35],[216,36],[217,37],[218,37],[219,38],[220,1],[221,39],[223,40],[222,41],[224,42],[225,43],[226,44],[227,45],[228,46],[229,47],[230,48],[231,49],[232,50],[233,51],[234,52],[235,53],[236,54],[237,55],[238,56],[240,57],[78,1],[80,58],[81,57],[79,1],[76,1],[77,1],[13,1],[15,1],[14,1],[2,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[3,1],[24,1],[25,1],[4,1],[26,1],[30,1],[27,1],[28,1],[29,1],[31,1],[32,1],[33,1],[5,1],[34,1],[35,1],[36,1],[37,1],[6,1],[41,1],[38,1],[39,1],[40,1],[42,1],[7,1],[43,1],[48,1],[49,1],[44,1],[45,1],[46,1],[47,1],[8,1],[53,1],[50,1],[51,1],[52,1],[54,1],[9,1],[55,1],[56,1],[57,1],[59,1],[58,1],[60,1],[61,1],[10,1],[62,1],[63,1],[64,1],[11,1],[65,1],[66,1],[67,1],[68,1],[69,1],[1,1],[70,1],[71,1],[12,1],[74,1],[73,1],[72,1],[75,1],[164,59],[174,60],[163,59],[184,61],[155,62],[154,63],[183,64],[177,65],[182,66],[157,67],[171,68],[156,69],[180,70],[152,71],[151,64],[181,72],[153,73],[158,74],[159,1],[162,74],[149,1],[185,75],[175,76],[166,77],[167,78],[169,79],[165,80],[168,81],[178,64],[160,82],[161,83],[170,84],[150,85],[173,76],[172,74],[176,1],[179,86],[85,87],[84,88],[89,88],[86,89],[92,88],[128,88],[132,88],[83,88],[104,90],[99,88],[117,91],[101,92],[102,87],[114,93],[111,94],[105,95],[82,88],[110,96],[90,96],[93,97],[103,98],[96,99],[95,100],[87,101],[98,102],[97,103],[115,89],[118,89],[88,104],[106,105],[107,87],[108,106],[129,107],[109,108],[94,109],[133,1],[100,110],[112,96],[131,111],[91,112],[113,89],[116,112],[126,113],[125,114],[122,115],[127,116],[123,117],[121,118],[119,88],[120,119],[124,120],[130,121]],"latestChangedDtsFile":"./src/entities/starship-classes.d.ts","version":"5.7.3"}
|
package/package.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@where-stars-drift/core",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"private": false,
|
|
5
|
+
"description": "A TypeScript canvas library for creating interactive space simulations with realistic physics, celestial bodies, and dynamic fleet behaviors.",
|
|
6
|
+
"author": "Volodymyr Lavrynovych",
|
|
7
|
+
"license": "Proprietary",
|
|
8
|
+
"keywords": [
|
|
9
|
+
"typescript",
|
|
10
|
+
"canvas",
|
|
11
|
+
"simulation",
|
|
12
|
+
"space",
|
|
13
|
+
"stars",
|
|
14
|
+
"interactive",
|
|
15
|
+
"physics",
|
|
16
|
+
"starships",
|
|
17
|
+
"fleets"
|
|
18
|
+
],
|
|
19
|
+
"main": "./dist/index.js",
|
|
20
|
+
"module": "./dist/index.js",
|
|
21
|
+
"types": "./dist/index.d.ts",
|
|
22
|
+
"files": [
|
|
23
|
+
"dist",
|
|
24
|
+
"src",
|
|
25
|
+
"LICENSE",
|
|
26
|
+
"README.md"
|
|
27
|
+
],
|
|
28
|
+
"publishConfig": {
|
|
29
|
+
"access": "public"
|
|
30
|
+
},
|
|
31
|
+
"scripts": {
|
|
32
|
+
"build": "tsc -p tsconfig.json",
|
|
33
|
+
"prepublishOnly": "npm run build"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Defines the abstract base class for all celestial bodies with physical boundaries.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { CelestialBody } from './celestial-body';
|
|
6
|
+
|
|
7
|
+
export abstract class BoundedBody extends CelestialBody {
|
|
8
|
+
boundingRadius: number;
|
|
9
|
+
|
|
10
|
+
constructor(x: number, y: number, boundingRadius: number) {
|
|
11
|
+
super(x, y);
|
|
12
|
+
this.boundingRadius = boundingRadius;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Defines the abstract base class for all celestial bodies.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export abstract class CelestialBody {
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
vx: number;
|
|
9
|
+
vy: number;
|
|
10
|
+
|
|
11
|
+
constructor(x: number, y: number) {
|
|
12
|
+
this.x = x;
|
|
13
|
+
this.y = y;
|
|
14
|
+
this.vx = 0;
|
|
15
|
+
this.vy = 0;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
abstract update(context: CanvasRenderingContext2D, ...args: any[]): void;
|
|
19
|
+
abstract draw(context: CanvasRenderingContext2D, ...args: any[]): void;
|
|
20
|
+
}
|