@bitmagic/cli 0.1.64-dev.12 → 0.1.64-dev.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -5
- package/dist/commands/generate.js +1 -1
- package/dist/commands/generate.js.map +1 -1
- package/dist/editor/design.d.ts +1 -0
- package/dist/editor/design.js +7 -3
- package/dist/editor/design.js.map +1 -1
- package/dist/editor/game-info-panel.d.ts +33 -0
- package/dist/editor/game-info-panel.js +149 -0
- package/dist/editor/game-info-panel.js.map +1 -0
- package/dist/editor/game-info.d.ts +55 -0
- package/dist/editor/game-info.js +126 -0
- package/dist/editor/game-info.js.map +1 -0
- package/dist/editor/server.js +51 -0
- package/dist/editor/server.js.map +1 -1
- package/dist/editor/shell-page.js +147 -9
- package/dist/editor/shell-page.js.map +1 -1
- package/package.json +4 -4
|
@@ -51,6 +51,7 @@
|
|
|
51
51
|
import { decodeForgeMapHeights, renderForgeMapRgba, } from '@bitmagic/world-forger/pipeline/forge-map-render.js';
|
|
52
52
|
import { FORGE_MAP_PALETTE } from '@bitmagic/world-forger/pipeline/layout-map.js';
|
|
53
53
|
import { ASSET_DETAIL_CSS, ASSET_DETAIL_HTML } from './asset-detail-panel.js';
|
|
54
|
+
import { GAME_INFO_PANEL_CSS, GAME_INFO_PANEL_HTML } from './game-info-panel.js';
|
|
54
55
|
import { PUBLISH_PANEL_CSS, PUBLISH_PANEL_HTML } from './publish-panel.js';
|
|
55
56
|
import { RECORDING_PANEL_CSS, RECORDING_PANEL_HTML, RECORDING_RESOLUTIONS } from './recording-panel.js';
|
|
56
57
|
import { RECORDINGS_DIR } from '../trailer/paths.js';
|
|
@@ -131,12 +132,9 @@ ${BITMAGIC_CONTROLS_CSS}
|
|
|
131
132
|
/* The wordmark speaks in the brand's headline voice: uppercase, bold, tracked. */
|
|
132
133
|
#bar .wordmark { font-size: 14px; font-weight: 700; text-transform: uppercase;
|
|
133
134
|
letter-spacing: 1.6px; }
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
max-width: 22vw; }
|
|
138
|
-
#bar .env { color: var(--bm-text-dim); font-family: var(--bm-font-mono); font-size: 12px;
|
|
139
|
-
white-space: nowrap; }
|
|
135
|
+
/* Who this is: the build's badge, then the game by name. The id and the environment used to sit
|
|
136
|
+
beside it as two more dimmed slots; they are inside #game-info-toggle's dialog now (see
|
|
137
|
+
game-info-panel.ts), which is what gave this bar room for the controls to its right. */
|
|
140
138
|
#bar .spacer { flex: 1; }
|
|
141
139
|
#tabs { display: flex; gap: 4px; background: var(--bm-surface-alt); border-radius: 9999px;
|
|
142
140
|
padding: 3px; }
|
|
@@ -251,6 +249,7 @@ ${BITMAGIC_CONTROLS_CSS}
|
|
|
251
249
|
#hq-note code { display: block; margin-top: 6px; color: var(--bm-aqua);
|
|
252
250
|
font-family: var(--bm-font-mono); word-break: break-all; }
|
|
253
251
|
${ASSET_DETAIL_CSS}
|
|
252
|
+
${GAME_INFO_PANEL_CSS}
|
|
254
253
|
${PUBLISH_PANEL_CSS}
|
|
255
254
|
${RECORDING_PANEL_CSS}
|
|
256
255
|
${MOTION_PANEL_CSS}
|
|
@@ -261,9 +260,7 @@ ${BOOT_LOADER_CSS}
|
|
|
261
260
|
<div id="bar">
|
|
262
261
|
<span class="wordmark">bitmagic dev</span>
|
|
263
262
|
<span id="cli-line" class="bm-badge${devLine ? ' bm-badge--warning' : ''}" title="${escapeAttr(lineTitle)}">${devLine ? 'DEV BUILD' : 'RELEASE'}</span>
|
|
264
|
-
<
|
|
265
|
-
<span class="id" title="Game id, from bitmagic.json">${escapeAttr(options.gameId)}</span>
|
|
266
|
-
<span id="env" class="env" title="The api-server this project talks to">env ${escapeAttr(options.environment)}</span>
|
|
263
|
+
<button id="game-info-toggle" type="button" title="This game: id, environment, genre, art style, reference and cover art"><span class="name">${escapeAttr(options.gameName)}</span><span class="chevron" aria-hidden="true">\u25BE</span></button>
|
|
267
264
|
<div id="tabs">
|
|
268
265
|
<button class="tab bm-pill active" type="button" data-tab="game">Game</button>
|
|
269
266
|
<button class="tab bm-pill" type="button" data-tab="editor">Editor</button>
|
|
@@ -332,6 +329,7 @@ ${BOOT_LOADER_HTML}
|
|
|
332
329
|
</div>
|
|
333
330
|
</div>
|
|
334
331
|
</div>
|
|
332
|
+
${GAME_INFO_PANEL_HTML}
|
|
335
333
|
${PUBLISH_PANEL_HTML}
|
|
336
334
|
${RECORDING_PANEL_HTML}
|
|
337
335
|
${MOTION_PANEL_HTML}
|
|
@@ -371,6 +369,16 @@ ${ASSET_DETAIL_HTML}
|
|
|
371
369
|
var publishManage = document.getElementById('publish-manage');
|
|
372
370
|
var publishQr = document.getElementById('publish-qr');
|
|
373
371
|
var publishClose = document.getElementById('publish-close');
|
|
372
|
+
var infoToggle = document.getElementById('game-info-toggle');
|
|
373
|
+
var infoOverlay = document.getElementById('info-overlay');
|
|
374
|
+
var infoClose = document.getElementById('info-close');
|
|
375
|
+
var infoError = document.getElementById('info-error');
|
|
376
|
+
var infoReferenceFrame = document.getElementById('info-reference-frame');
|
|
377
|
+
var infoReferenceImg = document.getElementById('info-reference-img');
|
|
378
|
+
var infoReferenceCaption = document.getElementById('info-reference-caption');
|
|
379
|
+
var infoCoverFrame = document.getElementById('info-cover-frame');
|
|
380
|
+
var infoCoverImg = document.getElementById('info-cover-img');
|
|
381
|
+
var infoCoverCaption = document.getElementById('info-cover-caption');
|
|
374
382
|
/** The last publish the poll saw, or null until this project has had one. */
|
|
375
383
|
var lastPublish = null;
|
|
376
384
|
var recordToggle = document.getElementById('record');
|
|
@@ -1207,6 +1215,130 @@ ${ASSET_DETAIL_HTML}
|
|
|
1207
1215
|
moreButton.focus();
|
|
1208
1216
|
}
|
|
1209
1217
|
|
|
1218
|
+
/**
|
|
1219
|
+
* The Game-info dialog \u2014 what this project is, and what it is meant to look like.
|
|
1220
|
+
*
|
|
1221
|
+
* The bar used to spell the game's name, id and environment out side by side, which was three
|
|
1222
|
+
* of its slots for one fact. They live here now, next to the things a creator could not see at
|
|
1223
|
+
* all from this window: the genre and physics the engine boots with, the art style every
|
|
1224
|
+
* generation inherits, and the two pictures. the reference show command draws it in a
|
|
1225
|
+
* terminal, which is not where the creator is looking.
|
|
1226
|
+
*
|
|
1227
|
+
* Fetched on every open rather than polled: nothing here changes while the creator watches, and
|
|
1228
|
+
* a project whose cover is generated in another terminal is right again the next time the
|
|
1229
|
+
* dialog opens \u2014 without a request a second for a card nobody has open.
|
|
1230
|
+
*/
|
|
1231
|
+
async function openInfo() {
|
|
1232
|
+
infoOverlay.classList.add('show');
|
|
1233
|
+
infoClose.focus();
|
|
1234
|
+
var info = null;
|
|
1235
|
+
var failure = '';
|
|
1236
|
+
try {
|
|
1237
|
+
var response = await fetch('/api/game-info');
|
|
1238
|
+
var payload = await response.json();
|
|
1239
|
+
if (payload && payload.info) info = payload.info;
|
|
1240
|
+
else failure = (payload && payload.error) || 'The dev server could not read this project.';
|
|
1241
|
+
} catch (error) {
|
|
1242
|
+
failure = 'The dev server is not answering \u2014 is bitmagic dev still running?';
|
|
1243
|
+
}
|
|
1244
|
+
infoError.textContent = failure;
|
|
1245
|
+
infoError.classList.toggle('show', failure !== '');
|
|
1246
|
+
fillInfo(info);
|
|
1247
|
+
}
|
|
1248
|
+
|
|
1249
|
+
/** Every field, or an em dash where the sidecar had nothing \u2014 never a stale value. */
|
|
1250
|
+
function fillInfo(info) {
|
|
1251
|
+
var facts = info || {};
|
|
1252
|
+
setFact('info-title', facts.gameName || 'This game');
|
|
1253
|
+
setFact('info-game-id', facts.gameId);
|
|
1254
|
+
setFact('info-environment', facts.environment);
|
|
1255
|
+
setFact('info-genre', facts.genre);
|
|
1256
|
+
// Absent on the genres that declare none, which is a fact rather than a gap.
|
|
1257
|
+
setFact('info-physics', facts.physicsMode || (info ? 'none declared' : ''));
|
|
1258
|
+
// Worth saying which of the two it is: an undeclared voxel project and one that chose voxel
|
|
1259
|
+
// behave identically until someone edits game.json expecting a value to already be there.
|
|
1260
|
+
setFact('info-art-style', facts.artStyle
|
|
1261
|
+
? facts.artStyle + (facts.artStyleDeclared ? '' : ' (game.json declares none)')
|
|
1262
|
+
: '');
|
|
1263
|
+
setFact('info-platform', facts.primaryPlatform || (info ? 'desktop (declares none)' : ''));
|
|
1264
|
+
setFact('info-engine', facts.engineVersion);
|
|
1265
|
+
fillArt(infoReferenceFrame, infoReferenceImg, infoReferenceCaption, 'reference', facts.reference);
|
|
1266
|
+
fillArt(infoCoverFrame, infoCoverImg, infoCoverCaption, 'cover', facts.cover);
|
|
1267
|
+
}
|
|
1268
|
+
|
|
1269
|
+
function setFact(id, value) {
|
|
1270
|
+
document.getElementById(id).textContent = value || '\u2014';
|
|
1271
|
+
}
|
|
1272
|
+
|
|
1273
|
+
/**
|
|
1274
|
+
* One picture: the local bytes when the sidecar has them, the public URL when it does not.
|
|
1275
|
+
*
|
|
1276
|
+
* Local first because that copy is the one that is always reachable \u2014 a reference whose
|
|
1277
|
+
* re-host failed carries an Asset Forger URL that expires, and a cover's URL lives on whichever
|
|
1278
|
+
* environment generated it. The href is only ever set from an http(s) URL: these records are
|
|
1279
|
+
* files a creator can hand-edit, and this page would otherwise run whatever a scheme in one of
|
|
1280
|
+
* them said to.
|
|
1281
|
+
*/
|
|
1282
|
+
function fillArt(frame, img, caption, kind, image) {
|
|
1283
|
+
caption.textContent = '';
|
|
1284
|
+
img.removeAttribute('src');
|
|
1285
|
+
frame.classList.remove('has-image');
|
|
1286
|
+
if (!image) return;
|
|
1287
|
+
// Prefix tests rather than a regex: a slash inside one would have to be double-escaped to
|
|
1288
|
+
// survive this literal, and that is the exact trap shell-page.test.ts exists to catch.
|
|
1289
|
+
var url = image.url || '';
|
|
1290
|
+
var remote = url.indexOf('https://') === 0 || url.indexOf('http://') === 0 ? url : '';
|
|
1291
|
+
// Cache-busted on the stamp: bitmagic cover rewrites .bitmagic/cover.webp in place, so the
|
|
1292
|
+
// path alone would show a creator the art they just replaced.
|
|
1293
|
+
var src = image.local
|
|
1294
|
+
? '/api/game-info/image?kind=' + kind + '&v=' + encodeURIComponent(image.at)
|
|
1295
|
+
: remote;
|
|
1296
|
+
if (src) {
|
|
1297
|
+
// The local copy can go missing between the read and the request (a .bitmagic wiped while
|
|
1298
|
+
// this ran), and the recorded URL can have expired. Falling back once, and then back to the
|
|
1299
|
+
// "not yet" copy, means the card never sits there as an empty square with no explanation.
|
|
1300
|
+
var triedRemote = src === remote;
|
|
1301
|
+
img.onerror = function () {
|
|
1302
|
+
if (!triedRemote && remote) {
|
|
1303
|
+
triedRemote = true;
|
|
1304
|
+
img.src = remote;
|
|
1305
|
+
return;
|
|
1306
|
+
}
|
|
1307
|
+
frame.classList.remove('has-image');
|
|
1308
|
+
};
|
|
1309
|
+
img.src = src;
|
|
1310
|
+
frame.classList.add('has-image');
|
|
1311
|
+
}
|
|
1312
|
+
var label = image.candidateId || (kind === 'cover' ? 'Cover image' : 'Reference image');
|
|
1313
|
+
if (remote) {
|
|
1314
|
+
var link = document.createElement('a');
|
|
1315
|
+
link.href = remote;
|
|
1316
|
+
link.target = '_blank';
|
|
1317
|
+
link.rel = 'noopener noreferrer';
|
|
1318
|
+
link.textContent = label;
|
|
1319
|
+
caption.appendChild(link);
|
|
1320
|
+
} else {
|
|
1321
|
+
caption.appendChild(document.createTextNode(label));
|
|
1322
|
+
}
|
|
1323
|
+
caption.appendChild(document.createTextNode(describeAge(image.at)));
|
|
1324
|
+
// The one thing on this card worth interrupting for: the URL every generator inherits is
|
|
1325
|
+
// about to stop resolving.
|
|
1326
|
+
if (image.hosted === false) {
|
|
1327
|
+
var stale = document.createElement('span');
|
|
1328
|
+
stale.className = 'stale';
|
|
1329
|
+
stale.textContent = ' \u2014 not re-hosted, so this URL may expire. Re-run bitmagic reference accept.';
|
|
1330
|
+
caption.appendChild(stale);
|
|
1331
|
+
}
|
|
1332
|
+
}
|
|
1333
|
+
|
|
1334
|
+
function closeInfo() {
|
|
1335
|
+
infoOverlay.classList.remove('show');
|
|
1336
|
+
// Drop the bytes rather than keep two pictures decoded behind a closed dialog for the session.
|
|
1337
|
+
infoReferenceImg.removeAttribute('src');
|
|
1338
|
+
infoCoverImg.removeAttribute('src');
|
|
1339
|
+
infoToggle.focus();
|
|
1340
|
+
}
|
|
1341
|
+
|
|
1210
1342
|
/**
|
|
1211
1343
|
* The Record panel — the Creator's Dev Tools recording settings, worn by this lane.
|
|
1212
1344
|
*
|
|
@@ -2253,6 +2385,7 @@ ${ASSET_DETAIL_HTML}
|
|
|
2253
2385
|
if (closeRecordingPanel()) return;
|
|
2254
2386
|
if (closeMotionPanel()) return;
|
|
2255
2387
|
if (publishOverlay.classList.contains('show')) { closePublish(); return; }
|
|
2388
|
+
if (infoOverlay.classList.contains('show')) { closeInfo(); return; }
|
|
2256
2389
|
hqOverlay.classList.remove('show');
|
|
2257
2390
|
});
|
|
2258
2391
|
|
|
@@ -2585,6 +2718,11 @@ ${ASSET_DETAIL_HTML}
|
|
|
2585
2718
|
if (!event.target.closest || !event.target.closest('.bm-menu-wrap')) closeMore();
|
|
2586
2719
|
});
|
|
2587
2720
|
|
|
2721
|
+
infoToggle.addEventListener('click', function () { void openInfo(); });
|
|
2722
|
+
infoClose.addEventListener('click', closeInfo);
|
|
2723
|
+
infoOverlay.addEventListener('click', function (event) {
|
|
2724
|
+
if (event.target === infoOverlay) closeInfo();
|
|
2725
|
+
});
|
|
2588
2726
|
publishToggle.addEventListener('click', openPublish);
|
|
2589
2727
|
publishClose.addEventListener('click', closePublish);
|
|
2590
2728
|
// Click the backdrop to dismiss, like every other dialog on this page.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-page.js","sourceRoot":"","sources":["../../src/editor/shell-page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,EACL,qBAAqB,EAAE,kBAAkB,GAC1C,MAAM,qDAAqD,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACxG,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE7F,oGAAoG;AACpG,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B;;;;;;GAMG;AACH,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B;;;;;;;;;;;;GAYG;AACH,SAAS,sBAAsB;IAC7B,OAAO;QACL,6BAA6B,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,GAAG;QACjE,iCAAiC,qBAAqB,CAAC,QAAQ,EAAE,GAAG;QACpE,8BAA8B,kBAAkB,CAAC,QAAQ,EAAE,GAAG;KAC/D,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAEnC,kGAAkG;AAClG,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK;SACT,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3B,CAAC;AAmBD,oGAAoG;AACpG,MAAM,oBAAoB,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAElE,MAAM,UAAU,iBAAiB,CAAC,OAA2B;IAC3D,MAAM,OAAO,GAAG,oBAAoB,OAAO,CAAC,QAAQ,2BAA2B,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;IACpH,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC;IAC1C,MAAM,SAAS,GAAG,OAAO;QACvB,CAAC,CAAC,YAAY,OAAO,CAAC,UAAU,uDAAuD;QACvF,CAAC,CAAC,YAAY,OAAO,CAAC,UAAU,qCAAqC,CAAC;IACxE,MAAM,KAAK,GAAG,GAAG,OAAO,CAAC,QAAQ,kBAAkB,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACnF,OAAO;;;;SAIA,UAAU,CAAC,KAAK,CAAC;EACxB,kBAAkB;;EAElB,mBAAmB;EACnB,qBAAqB
|
|
1
|
+
{"version":3,"file":"shell-page.js","sourceRoot":"","sources":["../../src/editor/shell-page.ts"],"names":[],"mappings":"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EAAE;;;;;;;;0BAQF,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAs/BvC,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAq1C1C,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmChB,CAAC;AACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitmagic/cli",
|
|
3
|
-
"version": "0.1.64-dev.
|
|
3
|
+
"version": "0.1.64-dev.14",
|
|
4
4
|
"description": "Build Bitmagic games from your own agent tool",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"author": "Bitmagic Oy",
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
"playwright-core": "^1.59.1",
|
|
26
26
|
"tar": "^7.4.3",
|
|
27
27
|
"ws": "^8.21.3",
|
|
28
|
-
"@bitmagic/animation-forger": "0.1.19-dev.
|
|
29
|
-
"@bitmagic/
|
|
30
|
-
"@bitmagic/
|
|
28
|
+
"@bitmagic/animation-forger": "0.1.19-dev.14",
|
|
29
|
+
"@bitmagic/asset-core": "0.2.19-dev.14",
|
|
30
|
+
"@bitmagic/world-forger": "0.1.24-dev.14"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@eslint/js": "^9.38.0",
|