castle-web-cli 0.4.169 → 0.4.170
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent.js +23 -13
- package/dist/atomicFile.d.ts +29 -0
- package/dist/atomicFile.js +120 -0
- package/dist/castle-host/host.js +37 -0
- package/dist/get-deck.js +2 -11
- package/dist/headlessCover.d.ts +4 -0
- package/dist/headlessCover.js +7 -5
- package/dist/ide.js +14 -6
- package/dist/index.js +10 -6
- package/dist/init.d.ts +1 -1
- package/dist/init.js +11 -1
- package/dist/remix.js +2 -14
- package/dist/save-deck.d.ts +3 -0
- package/dist/save-deck.js +40 -73
- package/dist/saveCover.d.ts +18 -0
- package/dist/saveCover.js +61 -0
- package/dist/serve.js +18 -5
- package/dist/serveSecurity.d.ts +11 -1
- package/dist/serveSecurity.js +38 -4
- package/dist/shell/assets/index-BvQmVwlO.css +1 -0
- package/dist/shell/assets/index-CV5sBby1.js +445 -0
- package/dist/shell/index.html +2 -2
- package/dist/versionStore.js +13 -4
- package/kits/base/CLAUDE.md +9 -0
- package/kits/base/castle.json +16 -11
- package/kits/base/sdk/README.md +66 -1
- package/kits/base/sdk/commands.d.ts +23 -1
- package/kits/base/sdk/commands.js +9 -0
- package/kits/base/sdk/lifecycle.d.ts +20 -0
- package/kits/base/sdk/lifecycle.js +7 -1
- package/kits/base/sdk/resumeState.d.ts +2 -0
- package/kits/base/sdk/resumeState.js +84 -0
- package/kits/base/sdk/runtime.js +65 -0
- package/kits/base/sdk/transport.d.ts +3 -0
- package/kits/base/sdk/transport.js +39 -5
- package/kits/base/sdk/unloadHandshake.d.ts +6 -0
- package/kits/base/sdk/unloadHandshake.js +47 -0
- package/kits/multiplayer-2d/castle.json +3 -3
- package/kits/multiplayer-2d/package-lock.json +0 -27
- package/kits/multiplayer-2d/package.json +0 -1
- package/kits/multiplayer-3d/castle.json +4 -4
- package/kits/multiplayer-3d/package-lock.json +0 -27
- package/kits/multiplayer-3d/package.json +0 -1
- package/kits/physics-2d/CLAUDE.md +75 -43
- package/kits/physics-2d/behaviors/AnalogStick.jsx +75 -45
- package/kits/physics-2d/behaviors/Slingshot.jsx +1 -2
- package/kits/physics-2d/castle.json +6 -6
- package/kits/physics-2d/editors/PxArtEditor.jsx +83 -180
- package/kits/physics-2d/editors/SceneEditor.jsx +25 -4
- package/kits/physics-2d/editors/StyleEditor.jsx +6 -2
- package/kits/physics-2d/editors/overlayCanvas.js +77 -0
- package/kits/physics-2d/editors/pathOverlay.js +5 -13
- package/kits/physics-2d/editors/pixelEditorChrome.jsx +5 -1
- package/kits/physics-2d/editors/pixelInspector.jsx +4 -4
- package/kits/physics-2d/editors/pxArtTimeline.jsx +8 -36
- package/kits/physics-2d/editors/pxArtTimeline.module.css +4 -28
- package/kits/physics-2d/editors/styleEditor.module.css +23 -4
- package/kits/physics-2d/editors/useArtboardZoomPan.js +322 -0
- package/kits/physics-2d/engine/SceneUI.jsx +6 -12
- package/kits/physics-2d/engine/icons.js +56 -0
- package/kits/physics-2d/engine/panelSorting.jsx +7 -14
- package/kits/physics-2d/engine/physics/PhysicsSystem.js +66 -11
- package/kits/physics-2d/engine/physics/controls.js +76 -12
- package/kits/physics-2d/engine/scene.js +47 -9
- package/kits/physics-2d/engine/ui.jsx +13 -125
- package/kits/physics-2d/engine/ui.module.css +53 -28
- package/kits/physics-2d/package-lock.json +0 -29
- package/kits/physics-2d/package.json +3 -1
- package/kits/physics-2d/pnpm-lock.yaml +1 -17
- package/kits/physics-3d/castle.json +5 -5
- package/kits/physics-3d/package-lock.json +0 -29
- package/kits/physics-3d/package.json +0 -1
- package/kits/physics-3d/pnpm-lock.yaml +0 -17
- package/kits/turn-based/castle.json +3 -3
- package/kits/turn-based/package-lock.json +0 -27
- package/kits/turn-based/package.json +0 -1
- package/package.json +5 -4
- package/dist/shell/assets/index-CVHj503j.css +0 -1
- package/dist/shell/assets/index-x_QkP3Xq.js +0 -444
|
@@ -823,10 +823,10 @@
|
|
|
823
823
|
margin-top: 14px;
|
|
824
824
|
}
|
|
825
825
|
|
|
826
|
-
/*
|
|
827
|
-
pencil sits in the corner rather than replacing the art on
|
|
828
|
-
there is no hover, and the affordance has to be visible
|
|
829
|
-
touched. */
|
|
826
|
+
/* Thumbnail that opens the sprite editor (blueprint header + actor instance
|
|
827
|
+
header). The pencil sits in the corner rather than replacing the art on
|
|
828
|
+
hover: on touch there is no hover, and the affordance has to be visible
|
|
829
|
+
before it is touched. */
|
|
830
830
|
.editSpriteButton {
|
|
831
831
|
position: relative;
|
|
832
832
|
display: inline-flex;
|
|
@@ -1161,9 +1161,9 @@
|
|
|
1161
1161
|
height: 300%;
|
|
1162
1162
|
}
|
|
1163
1163
|
|
|
1164
|
-
/*
|
|
1165
|
-
Behavior `ui` output lands in `.sceneUiLayer`,
|
|
1166
|
-
and scaled onto the canvas box. */
|
|
1164
|
+
/* Deprecated React `ui` overlay -- prefer behavior `drawUi`. Sits over the
|
|
1165
|
+
canvas and clips to the card. Behavior `ui` output lands in `.sceneUiLayer`,
|
|
1166
|
+
sized in card units and scaled onto the canvas box. */
|
|
1167
1167
|
.sceneUiRoot {
|
|
1168
1168
|
position: absolute;
|
|
1169
1169
|
inset: 0;
|
|
@@ -1477,9 +1477,10 @@
|
|
|
1477
1477
|
row, expanded leaves a smaller gap before the body. */
|
|
1478
1478
|
padding: 10px 16px 6px;
|
|
1479
1479
|
border-bottom: 0;
|
|
1480
|
-
/*
|
|
1481
|
-
the
|
|
1482
|
-
|
|
1480
|
+
/* pan-y: a vertical flick on the title / summary scrolls the inspector.
|
|
1481
|
+
Reorder lives on the grip (touch-action: none), not the whole row — that
|
|
1482
|
+
split is what lets scroll and reorder both work on phones. */
|
|
1483
|
+
touch-action: pan-y;
|
|
1483
1484
|
color: var(--castle-inspector-text);
|
|
1484
1485
|
font-size: 14px;
|
|
1485
1486
|
font-weight: 650;
|
|
@@ -1539,9 +1540,6 @@
|
|
|
1539
1540
|
font-weight: 400;
|
|
1540
1541
|
}
|
|
1541
1542
|
|
|
1542
|
-
/* Grab handle, left of the disclosure. `touch-action: none` is what makes the
|
|
1543
|
-
hold-then-drag possible on touch: without it the browser claims the gesture
|
|
1544
|
-
for scrolling before the hold completes and the drag never starts. */
|
|
1545
1543
|
/* The behavior's source file. Sits at the right end of the header row, inset
|
|
1546
1544
|
far enough to clear the remove button the inspector positions absolutely over
|
|
1547
1545
|
the panel's top-right corner. */
|
|
@@ -1640,28 +1638,37 @@
|
|
|
1640
1638
|
flex: 0 0 auto;
|
|
1641
1639
|
}
|
|
1642
1640
|
|
|
1643
|
-
/*
|
|
1644
|
-
|
|
1641
|
+
/* Drag handle for panel reorder. Owns the gesture (`touch-action: none`) so
|
|
1642
|
+
the browser does not steal it for scroll; the rest of the header stays
|
|
1643
|
+
pan-y. Hit target is larger than the glyph for fingers. */
|
|
1645
1644
|
.panelGrip {
|
|
1646
1645
|
display: inline-flex;
|
|
1647
1646
|
align-items: center;
|
|
1648
1647
|
justify-content: center;
|
|
1649
1648
|
flex: 0 0 auto;
|
|
1650
|
-
|
|
1651
|
-
|
|
1649
|
+
box-sizing: content-box;
|
|
1650
|
+
margin: -6px 0 -6px -6px;
|
|
1651
|
+
padding: 10px 8px;
|
|
1652
|
+
border: 0;
|
|
1653
|
+
background: none;
|
|
1654
|
+
/* Icon sizes itself in `em` via an inline style. */
|
|
1655
|
+
font-size: 11px;
|
|
1652
1656
|
color: var(--castle-inspector-muted);
|
|
1653
|
-
opacity: 0.
|
|
1657
|
+
opacity: 0.55;
|
|
1658
|
+
cursor: grab;
|
|
1659
|
+
touch-action: none;
|
|
1660
|
+
-webkit-user-select: none;
|
|
1661
|
+
user-select: none;
|
|
1654
1662
|
}
|
|
1655
1663
|
|
|
1656
|
-
.panelGrip:hover
|
|
1664
|
+
.panelGrip:hover,
|
|
1665
|
+
.panelGrip:focus-visible {
|
|
1657
1666
|
opacity: 1;
|
|
1667
|
+
color: var(--castle-text);
|
|
1658
1668
|
}
|
|
1659
1669
|
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
width on the svg. */
|
|
1663
|
-
.panelGrip {
|
|
1664
|
-
font-size: 9px;
|
|
1670
|
+
.panelGrip:active {
|
|
1671
|
+
cursor: grabbing;
|
|
1665
1672
|
}
|
|
1666
1673
|
|
|
1667
1674
|
/* Every behavior row. Positioned so the lifted one can be raised above its
|
|
@@ -2786,12 +2793,17 @@
|
|
|
2786
2793
|
linear-gradient(45deg, transparent 75%, #1a1a1a 75%),
|
|
2787
2794
|
linear-gradient(-45deg, transparent 75%, #1a1a1a 75%);
|
|
2788
2795
|
background-color: #121212;
|
|
2789
|
-
|
|
2796
|
+
/* The check travels with the artboard: PxArtEditor overrides --checker-size
|
|
2797
|
+
with the fit size times the current zoom, so a pinch scales the
|
|
2798
|
+
transparency pattern along with the art instead of re-tiling a fixed 16px
|
|
2799
|
+
grid underneath it. */
|
|
2800
|
+
--checker-size: 16px;
|
|
2801
|
+
background-size: var(--checker-size) var(--checker-size);
|
|
2790
2802
|
background-position:
|
|
2791
2803
|
0 0,
|
|
2792
|
-
0
|
|
2793
|
-
|
|
2794
|
-
-
|
|
2804
|
+
0 calc(var(--checker-size) / 2),
|
|
2805
|
+
calc(var(--checker-size) / 2) calc(var(--checker-size) / -2),
|
|
2806
|
+
calc(var(--checker-size) / -2) 0;
|
|
2795
2807
|
border: 1px solid var(--castle-inspector-border);
|
|
2796
2808
|
}
|
|
2797
2809
|
|
|
@@ -2803,6 +2815,19 @@
|
|
|
2803
2815
|
pointer-events: none;
|
|
2804
2816
|
}
|
|
2805
2817
|
|
|
2818
|
+
/* Behind the smooth canvas, so the path-layer snap lattice paints directly on
|
|
2819
|
+
the frame's own background and under everything drawn. Negative z-index
|
|
2820
|
+
children paint in z order after the element's background and before in-flow
|
|
2821
|
+
content, so -2 lands between the frame background and .drawingSmooth. */
|
|
2822
|
+
.drawingLattice {
|
|
2823
|
+
position: absolute;
|
|
2824
|
+
inset: 0;
|
|
2825
|
+
width: 100%;
|
|
2826
|
+
height: 100%;
|
|
2827
|
+
pointer-events: none;
|
|
2828
|
+
z-index: -2;
|
|
2829
|
+
}
|
|
2830
|
+
|
|
2806
2831
|
/* Behind the main canvas (negative z-index paints before static content in
|
|
2807
2832
|
the same containing block) — holds the corner-rounded render for "smooth"
|
|
2808
2833
|
sprites while the main canvas above it stays transparent except for tool
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
"@dnd-kit/modifiers": "^9.0.0",
|
|
16
16
|
"@dnd-kit/sortable": "^10.0.0",
|
|
17
17
|
"@dnd-kit/utilities": "^3.2.2",
|
|
18
|
-
"@fortawesome/free-solid-svg-icons": "^5.15.4",
|
|
19
18
|
"@lezer/highlight": "^1.2.3",
|
|
20
19
|
"castle-web-fonts": "^1.0.0",
|
|
21
20
|
"codemirror": "^6.0.2",
|
|
@@ -216,7 +215,6 @@
|
|
|
216
215
|
"resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz",
|
|
217
216
|
"integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==",
|
|
218
217
|
"license": "MIT",
|
|
219
|
-
"peer": true,
|
|
220
218
|
"dependencies": {
|
|
221
219
|
"@dnd-kit/accessibility": "^3.1.1",
|
|
222
220
|
"@dnd-kit/utilities": "^3.2.2",
|
|
@@ -411,29 +409,6 @@
|
|
|
411
409
|
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
|
412
410
|
}
|
|
413
411
|
},
|
|
414
|
-
"node_modules/@fortawesome/fontawesome-common-types": {
|
|
415
|
-
"version": "0.2.36",
|
|
416
|
-
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz",
|
|
417
|
-
"integrity": "sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg==",
|
|
418
|
-
"hasInstallScript": true,
|
|
419
|
-
"license": "MIT",
|
|
420
|
-
"engines": {
|
|
421
|
-
"node": ">=6"
|
|
422
|
-
}
|
|
423
|
-
},
|
|
424
|
-
"node_modules/@fortawesome/free-solid-svg-icons": {
|
|
425
|
-
"version": "5.15.4",
|
|
426
|
-
"resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.4.tgz",
|
|
427
|
-
"integrity": "sha512-JLmQfz6tdtwxoihXLg6lT78BorrFyCf59SAwBM6qV/0zXyVeDygJVb3fk+j5Qat+Yvcxp1buLTY5iDh1ZSAQ8w==",
|
|
428
|
-
"hasInstallScript": true,
|
|
429
|
-
"license": "(CC-BY-4.0 AND MIT)",
|
|
430
|
-
"dependencies": {
|
|
431
|
-
"@fortawesome/fontawesome-common-types": "^0.2.36"
|
|
432
|
-
},
|
|
433
|
-
"engines": {
|
|
434
|
-
"node": ">=6"
|
|
435
|
-
}
|
|
436
|
-
},
|
|
437
412
|
"node_modules/@humanfs/core": {
|
|
438
413
|
"version": "0.19.2",
|
|
439
414
|
"resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz",
|
|
@@ -670,7 +645,6 @@
|
|
|
670
645
|
"integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
|
|
671
646
|
"dev": true,
|
|
672
647
|
"license": "MIT",
|
|
673
|
-
"peer": true,
|
|
674
648
|
"bin": {
|
|
675
649
|
"acorn": "bin/acorn"
|
|
676
650
|
},
|
|
@@ -1131,7 +1105,6 @@
|
|
|
1131
1105
|
"integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==",
|
|
1132
1106
|
"dev": true,
|
|
1133
1107
|
"license": "MIT",
|
|
1134
|
-
"peer": true,
|
|
1135
1108
|
"dependencies": {
|
|
1136
1109
|
"@eslint-community/eslint-utils": "^4.8.0",
|
|
1137
1110
|
"@eslint-community/regexpp": "^4.12.1",
|
|
@@ -2441,7 +2414,6 @@
|
|
|
2441
2414
|
"resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz",
|
|
2442
2415
|
"integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==",
|
|
2443
2416
|
"license": "MIT",
|
|
2444
|
-
"peer": true,
|
|
2445
2417
|
"engines": {
|
|
2446
2418
|
"node": ">=0.10.0"
|
|
2447
2419
|
}
|
|
@@ -2451,7 +2423,6 @@
|
|
|
2451
2423
|
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz",
|
|
2452
2424
|
"integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==",
|
|
2453
2425
|
"license": "MIT",
|
|
2454
|
-
"peer": true,
|
|
2455
2426
|
"dependencies": {
|
|
2456
2427
|
"scheduler": "^0.27.0"
|
|
2457
2428
|
},
|
|
@@ -16,6 +16,9 @@
|
|
|
16
16
|
"behaviors"
|
|
17
17
|
],
|
|
18
18
|
"threshold": 0,
|
|
19
|
+
"ignore": [
|
|
20
|
+
"engine/icons.js"
|
|
21
|
+
],
|
|
19
22
|
"reporters": [
|
|
20
23
|
"consoleFull"
|
|
21
24
|
]
|
|
@@ -30,7 +33,6 @@
|
|
|
30
33
|
"@dnd-kit/modifiers": "^9.0.0",
|
|
31
34
|
"@dnd-kit/sortable": "^10.0.0",
|
|
32
35
|
"@dnd-kit/utilities": "^3.2.2",
|
|
33
|
-
"@fortawesome/free-solid-svg-icons": "^5.15.4",
|
|
34
36
|
"@lezer/highlight": "^1.2.3",
|
|
35
37
|
"castle-web-fonts": "^1.0.0",
|
|
36
38
|
"codemirror": "^6.0.2",
|
|
@@ -35,9 +35,6 @@ importers:
|
|
|
35
35
|
'@dnd-kit/utilities':
|
|
36
36
|
specifier: ^3.2.2
|
|
37
37
|
version: 3.2.2(react@19.2.7)
|
|
38
|
-
'@fortawesome/free-solid-svg-icons':
|
|
39
|
-
specifier: ^5.15.4
|
|
40
|
-
version: 5.15.4
|
|
41
38
|
'@lezer/highlight':
|
|
42
39
|
specifier: ^1.2.3
|
|
43
40
|
version: 1.2.3
|
|
@@ -186,14 +183,6 @@ packages:
|
|
|
186
183
|
resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==}
|
|
187
184
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
|
188
185
|
|
|
189
|
-
'@fortawesome/fontawesome-common-types@0.2.36':
|
|
190
|
-
resolution: {integrity: sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg==}
|
|
191
|
-
engines: {node: '>=6'}
|
|
192
|
-
|
|
193
|
-
'@fortawesome/free-solid-svg-icons@5.15.4':
|
|
194
|
-
resolution: {integrity: sha512-JLmQfz6tdtwxoihXLg6lT78BorrFyCf59SAwBM6qV/0zXyVeDygJVb3fk+j5Qat+Yvcxp1buLTY5iDh1ZSAQ8w==}
|
|
195
|
-
engines: {node: '>=6'}
|
|
196
|
-
|
|
197
186
|
'@humanfs/core@0.19.2':
|
|
198
187
|
resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==}
|
|
199
188
|
engines: {node: '>=18.18.0'}
|
|
@@ -447,6 +436,7 @@ packages:
|
|
|
447
436
|
eslint@9.39.4:
|
|
448
437
|
resolution: {integrity: sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==}
|
|
449
438
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
|
439
|
+
deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
|
|
450
440
|
hasBin: true
|
|
451
441
|
peerDependencies:
|
|
452
442
|
jiti: '*'
|
|
@@ -1081,12 +1071,6 @@ snapshots:
|
|
|
1081
1071
|
'@eslint/core': 0.17.0
|
|
1082
1072
|
levn: 0.4.1
|
|
1083
1073
|
|
|
1084
|
-
'@fortawesome/fontawesome-common-types@0.2.36': {}
|
|
1085
|
-
|
|
1086
|
-
'@fortawesome/free-solid-svg-icons@5.15.4':
|
|
1087
|
-
dependencies:
|
|
1088
|
-
'@fortawesome/fontawesome-common-types': 0.2.36
|
|
1089
|
-
|
|
1090
1074
|
'@humanfs/core@0.19.2':
|
|
1091
1075
|
dependencies:
|
|
1092
1076
|
'@humanfs/types': 0.15.0
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"ext": ".pxmodel",
|
|
43
43
|
"label": "Model",
|
|
44
44
|
"new": "New model",
|
|
45
|
-
"icon": "
|
|
45
|
+
"icon": "cube-transparent",
|
|
46
46
|
"editor": "kit",
|
|
47
47
|
"data": true
|
|
48
48
|
},
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"ext": ".jsx",
|
|
51
51
|
"label": "Behavior",
|
|
52
52
|
"new": "New behavior",
|
|
53
|
-
"icon": "code"
|
|
53
|
+
"icon": "file-code"
|
|
54
54
|
}
|
|
55
55
|
],
|
|
56
56
|
"defaultPlayFile": "scenes/main.scene"
|
|
@@ -58,16 +58,16 @@
|
|
|
58
58
|
"imports": {
|
|
59
59
|
"castle.physics-2d": {
|
|
60
60
|
"deckId": "ckRZGFW4iPrx",
|
|
61
|
-
"version": "2026-
|
|
61
|
+
"version": "2026-09-10T00:57:31.408Z"
|
|
62
62
|
},
|
|
63
63
|
"castle.base": {
|
|
64
64
|
"deckId": "yRcmH4_aYllE",
|
|
65
|
-
"version": "2026-09-
|
|
65
|
+
"version": "2026-09-10T00:56:59.388Z"
|
|
66
66
|
}
|
|
67
67
|
},
|
|
68
68
|
"main": "main.jsx",
|
|
69
69
|
"autoUpdateWhenImported": true,
|
|
70
70
|
"deckId": "JH0SclbPVP0y",
|
|
71
71
|
"cardId": "eXfAaUdbSU5A",
|
|
72
|
-
"publishedVersion": "2026-09-
|
|
72
|
+
"publishedVersion": "2026-09-10T00:57:52.158Z"
|
|
73
73
|
}
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
"@dnd-kit/modifiers": "^9.0.0",
|
|
17
17
|
"@dnd-kit/sortable": "^10.0.0",
|
|
18
18
|
"@dnd-kit/utilities": "^3.2.2",
|
|
19
|
-
"@fortawesome/free-solid-svg-icons": "^5.15.4",
|
|
20
19
|
"@lezer/highlight": "^1.2.3",
|
|
21
20
|
"castle-web-fonts": "^1.0.0",
|
|
22
21
|
"codemirror": "^6.0.2",
|
|
@@ -224,7 +223,6 @@
|
|
|
224
223
|
"resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz",
|
|
225
224
|
"integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==",
|
|
226
225
|
"license": "MIT",
|
|
227
|
-
"peer": true,
|
|
228
226
|
"dependencies": {
|
|
229
227
|
"@dnd-kit/accessibility": "^3.1.1",
|
|
230
228
|
"@dnd-kit/utilities": "^3.2.2",
|
|
@@ -419,29 +417,6 @@
|
|
|
419
417
|
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
|
420
418
|
}
|
|
421
419
|
},
|
|
422
|
-
"node_modules/@fortawesome/fontawesome-common-types": {
|
|
423
|
-
"version": "0.2.36",
|
|
424
|
-
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz",
|
|
425
|
-
"integrity": "sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg==",
|
|
426
|
-
"hasInstallScript": true,
|
|
427
|
-
"license": "MIT",
|
|
428
|
-
"engines": {
|
|
429
|
-
"node": ">=6"
|
|
430
|
-
}
|
|
431
|
-
},
|
|
432
|
-
"node_modules/@fortawesome/free-solid-svg-icons": {
|
|
433
|
-
"version": "5.15.4",
|
|
434
|
-
"resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.4.tgz",
|
|
435
|
-
"integrity": "sha512-JLmQfz6tdtwxoihXLg6lT78BorrFyCf59SAwBM6qV/0zXyVeDygJVb3fk+j5Qat+Yvcxp1buLTY5iDh1ZSAQ8w==",
|
|
436
|
-
"hasInstallScript": true,
|
|
437
|
-
"license": "(CC-BY-4.0 AND MIT)",
|
|
438
|
-
"dependencies": {
|
|
439
|
-
"@fortawesome/fontawesome-common-types": "^0.2.36"
|
|
440
|
-
},
|
|
441
|
-
"engines": {
|
|
442
|
-
"node": ">=6"
|
|
443
|
-
}
|
|
444
|
-
},
|
|
445
420
|
"node_modules/@humanfs/core": {
|
|
446
421
|
"version": "0.19.2",
|
|
447
422
|
"resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz",
|
|
@@ -678,7 +653,6 @@
|
|
|
678
653
|
"integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==",
|
|
679
654
|
"dev": true,
|
|
680
655
|
"license": "MIT",
|
|
681
|
-
"peer": true,
|
|
682
656
|
"bin": {
|
|
683
657
|
"acorn": "bin/acorn"
|
|
684
658
|
},
|
|
@@ -1139,7 +1113,6 @@
|
|
|
1139
1113
|
"integrity": "sha512-DgZS62aPLXKlnxILS/AYCoRvHaZeXceIzlXPkkGGzJWSow1aEk0lbTlxUSlyjC8jcaKxAdOnTDz+o1JFSBsyjw==",
|
|
1140
1114
|
"dev": true,
|
|
1141
1115
|
"license": "MIT",
|
|
1142
|
-
"peer": true,
|
|
1143
1116
|
"dependencies": {
|
|
1144
1117
|
"@eslint-community/eslint-utils": "^4.8.0",
|
|
1145
1118
|
"@eslint-community/regexpp": "^4.12.1",
|
|
@@ -2449,7 +2422,6 @@
|
|
|
2449
2422
|
"resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz",
|
|
2450
2423
|
"integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==",
|
|
2451
2424
|
"license": "MIT",
|
|
2452
|
-
"peer": true,
|
|
2453
2425
|
"engines": {
|
|
2454
2426
|
"node": ">=0.10.0"
|
|
2455
2427
|
}
|
|
@@ -2459,7 +2431,6 @@
|
|
|
2459
2431
|
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz",
|
|
2460
2432
|
"integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==",
|
|
2461
2433
|
"license": "MIT",
|
|
2462
|
-
"peer": true,
|
|
2463
2434
|
"dependencies": {
|
|
2464
2435
|
"scheduler": "^0.27.0"
|
|
2465
2436
|
},
|
|
@@ -38,9 +38,6 @@ importers:
|
|
|
38
38
|
'@dnd-kit/utilities':
|
|
39
39
|
specifier: ^3.2.2
|
|
40
40
|
version: 3.2.2(react@19.2.8)
|
|
41
|
-
'@fortawesome/free-solid-svg-icons':
|
|
42
|
-
specifier: ^5.15.4
|
|
43
|
-
version: 5.15.4
|
|
44
41
|
'@lezer/highlight':
|
|
45
42
|
specifier: ^1.2.3
|
|
46
43
|
version: 1.2.3
|
|
@@ -195,14 +192,6 @@ packages:
|
|
|
195
192
|
resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==}
|
|
196
193
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
|
197
194
|
|
|
198
|
-
'@fortawesome/fontawesome-common-types@0.2.36':
|
|
199
|
-
resolution: {integrity: sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg==}
|
|
200
|
-
engines: {node: '>=6'}
|
|
201
|
-
|
|
202
|
-
'@fortawesome/free-solid-svg-icons@5.15.4':
|
|
203
|
-
resolution: {integrity: sha512-JLmQfz6tdtwxoihXLg6lT78BorrFyCf59SAwBM6qV/0zXyVeDygJVb3fk+j5Qat+Yvcxp1buLTY5iDh1ZSAQ8w==}
|
|
204
|
-
engines: {node: '>=6'}
|
|
205
|
-
|
|
206
195
|
'@humanfs/core@0.19.2':
|
|
207
196
|
resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==}
|
|
208
197
|
engines: {node: '>=18.18.0'}
|
|
@@ -1096,12 +1085,6 @@ snapshots:
|
|
|
1096
1085
|
'@eslint/core': 0.17.0
|
|
1097
1086
|
levn: 0.4.1
|
|
1098
1087
|
|
|
1099
|
-
'@fortawesome/fontawesome-common-types@0.2.36': {}
|
|
1100
|
-
|
|
1101
|
-
'@fortawesome/free-solid-svg-icons@5.15.4':
|
|
1102
|
-
dependencies:
|
|
1103
|
-
'@fortawesome/fontawesome-common-types': 0.2.36
|
|
1104
|
-
|
|
1105
1088
|
'@humanfs/core@0.19.2':
|
|
1106
1089
|
dependencies:
|
|
1107
1090
|
'@humanfs/types': 0.15.0
|
|
@@ -17,18 +17,18 @@
|
|
|
17
17
|
"imports": {
|
|
18
18
|
"castle.physics-2d": {
|
|
19
19
|
"deckId": "ckRZGFW4iPrx",
|
|
20
|
-
"version": "2026-
|
|
20
|
+
"version": "2026-09-10T00:57:31.408Z"
|
|
21
21
|
},
|
|
22
22
|
"castle.base": {
|
|
23
23
|
"deckId": "yRcmH4_aYllE",
|
|
24
|
-
"version": "2026-09-
|
|
24
|
+
"version": "2026-09-10T00:56:59.388Z"
|
|
25
25
|
}
|
|
26
26
|
},
|
|
27
27
|
"main": "main.jsx",
|
|
28
28
|
"autoUpdateWhenImported": true,
|
|
29
29
|
"deckId": "K6-Xs7dCoMVi",
|
|
30
30
|
"cardId": "Kh_08IYATpC3",
|
|
31
|
-
"publishedVersion": "2026-09-
|
|
31
|
+
"publishedVersion": "2026-09-10T00:58:22.840Z",
|
|
32
32
|
"server": {
|
|
33
33
|
"main": "code/server/index.js",
|
|
34
34
|
"maxPlayers": 8,
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
"@dnd-kit/modifiers": "^9.0.0",
|
|
16
16
|
"@dnd-kit/sortable": "^10.0.0",
|
|
17
17
|
"@dnd-kit/utilities": "^3.2.2",
|
|
18
|
-
"@fortawesome/free-solid-svg-icons": "^5.15.4",
|
|
19
18
|
"@lezer/highlight": "^1.2.3",
|
|
20
19
|
"castle-web-fonts": "^1.0.0",
|
|
21
20
|
"codemirror": "^6.0.2",
|
|
@@ -151,7 +150,6 @@
|
|
|
151
150
|
"resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz",
|
|
152
151
|
"integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==",
|
|
153
152
|
"license": "MIT",
|
|
154
|
-
"peer": true,
|
|
155
153
|
"dependencies": {
|
|
156
154
|
"@dnd-kit/accessibility": "^3.1.1",
|
|
157
155
|
"@dnd-kit/utilities": "^3.2.2",
|
|
@@ -202,29 +200,6 @@
|
|
|
202
200
|
"react": ">=16.8.0"
|
|
203
201
|
}
|
|
204
202
|
},
|
|
205
|
-
"node_modules/@fortawesome/fontawesome-common-types": {
|
|
206
|
-
"version": "0.2.36",
|
|
207
|
-
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz",
|
|
208
|
-
"integrity": "sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg==",
|
|
209
|
-
"hasInstallScript": true,
|
|
210
|
-
"license": "MIT",
|
|
211
|
-
"engines": {
|
|
212
|
-
"node": ">=6"
|
|
213
|
-
}
|
|
214
|
-
},
|
|
215
|
-
"node_modules/@fortawesome/free-solid-svg-icons": {
|
|
216
|
-
"version": "5.15.4",
|
|
217
|
-
"resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.4.tgz",
|
|
218
|
-
"integrity": "sha512-JLmQfz6tdtwxoihXLg6lT78BorrFyCf59SAwBM6qV/0zXyVeDygJVb3fk+j5Qat+Yvcxp1buLTY5iDh1ZSAQ8w==",
|
|
219
|
-
"hasInstallScript": true,
|
|
220
|
-
"license": "(CC-BY-4.0 AND MIT)",
|
|
221
|
-
"dependencies": {
|
|
222
|
-
"@fortawesome/fontawesome-common-types": "^0.2.36"
|
|
223
|
-
},
|
|
224
|
-
"engines": {
|
|
225
|
-
"node": ">=6"
|
|
226
|
-
}
|
|
227
|
-
},
|
|
228
203
|
"node_modules/@lezer/common": {
|
|
229
204
|
"version": "1.5.2",
|
|
230
205
|
"resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.5.2.tgz",
|
|
@@ -308,7 +283,6 @@
|
|
|
308
283
|
"resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz",
|
|
309
284
|
"integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==",
|
|
310
285
|
"license": "MIT",
|
|
311
|
-
"peer": true,
|
|
312
286
|
"engines": {
|
|
313
287
|
"node": ">=0.10.0"
|
|
314
288
|
}
|
|
@@ -318,7 +292,6 @@
|
|
|
318
292
|
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz",
|
|
319
293
|
"integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==",
|
|
320
294
|
"license": "MIT",
|
|
321
|
-
"peer": true,
|
|
322
295
|
"dependencies": {
|
|
323
296
|
"scheduler": "^0.27.0"
|
|
324
297
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "castle-web-cli",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.170",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"castle-web": "./dist/index.js"
|
|
@@ -8,14 +8,16 @@
|
|
|
8
8
|
"scripts": {
|
|
9
9
|
"build": "rm -rf dist && tsc && chmod +x dist/index.js && vite build && cp -R src/castle-host dist/castle-host && chmod -R u+w kits 2>/dev/null; rm -rf kits && cp -R ../kits kits && chmod -R u+w kits && rm -rf kits/*/imports",
|
|
10
10
|
"dev": "tsc --watch",
|
|
11
|
-
"check": "node ../scripts/sync-tokens.mjs --check && eslint . && jscpd && tsc --noEmit && tsc --noEmit -p src/shell/tsconfig.json"
|
|
11
|
+
"check": "node ../scripts/sync-tokens.mjs --check && node ../scripts/tests/icon-registry.mjs && eslint . && jscpd && tsc --noEmit && tsc --noEmit -p src/shell/tsconfig.json"
|
|
12
12
|
},
|
|
13
13
|
"jscpd": {
|
|
14
14
|
"path": [
|
|
15
15
|
"src"
|
|
16
16
|
],
|
|
17
17
|
"ignore": [
|
|
18
|
-
"src/castle-host/**"
|
|
18
|
+
"src/castle-host/**",
|
|
19
|
+
"src/shell/castle-patterns.css",
|
|
20
|
+
"src/shell/icons.ts"
|
|
19
21
|
],
|
|
20
22
|
"threshold": 0,
|
|
21
23
|
"reporters": [
|
|
@@ -31,7 +33,6 @@
|
|
|
31
33
|
"@codemirror/language": "^6.12.3",
|
|
32
34
|
"@codemirror/state": "^6.6.0",
|
|
33
35
|
"@codemirror/view": "^6.41.1",
|
|
34
|
-
"@fortawesome/free-solid-svg-icons": "^5.15.4",
|
|
35
36
|
"@lezer/common": "^1.5.2",
|
|
36
37
|
"@lezer/highlight": "^1.2.3",
|
|
37
38
|
"@lydell/node-pty": "^1.2.0-beta.12",
|