handler-playable-sdk 0.3.2 → 0.3.4
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/AssetEditorModal-DBAGQINC.js +1 -0
- package/dist/AssetTextures-AZY5VKWH.js +1 -0
- package/dist/ConfigOverride-DFTDUTRQ.js +1 -0
- package/dist/chunk-C2CEUBBT.js +1325 -0
- package/dist/chunk-DEUORFXE.js +1 -0
- package/dist/chunk-DHSGG7NF.js +1 -0
- package/dist/chunk-E6WJCS24.js +46 -0
- package/dist/chunk-PWGHKK3J.js +1 -0
- package/dist/chunk-Q7FPWOA3.js +1 -0
- package/dist/config-7DI6U2YD.js +1 -0
- package/dist/index.cjs +1360 -0
- package/dist/index.css +4537 -1
- package/dist/index.d.cts +892 -0
- package/dist/index.d.ts +494 -39
- package/dist/index.js +1 -1
- package/dist/{loader-object-centric-C1QteFfG.d.mts → loader-object-centric-Ce6MVkQw.d.cts} +1 -1
- package/dist/{loader-object-centric-C1QteFfG.d.ts → loader-object-centric-Ce6MVkQw.d.ts} +1 -1
- package/dist/pixi/index.cjs +256 -0
- package/dist/pixi/index.css +4537 -1
- package/dist/pixi/{index.d.mts → index.d.cts} +156 -144
- package/dist/pixi/index.d.ts +156 -144
- package/dist/pixi/index.js +1 -27
- package/dist/three/index.cjs +363 -0
- package/dist/three/index.css +4537 -1
- package/dist/three/index.js +1 -134
- package/package.json +29 -18
- package/dist/ConfigOverride-6YH2ILBJ.mjs +0 -1
- package/dist/chunk-BDZGKN5O.mjs +0 -1
- package/dist/chunk-GYW3GFXA.mjs +0 -830
- package/dist/chunk-HN7I4BLB.mjs +0 -1
- package/dist/config-QLS2MDB6.mjs +0 -1
- package/dist/index.d.mts +0 -437
- package/dist/index.mjs +0 -1
- package/dist/pixi/index.mjs +0 -1
- package/dist/three/index.mjs +0 -118
- /package/dist/three/{index.d.mts → index.d.cts} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { Graphics } from 'pixi.js';
|
|
2
|
+
import { O as ObjectCentricConfig } from './loader-object-centric-Ce6MVkQw.js';
|
|
3
|
+
export { g as applyDefaults, c as loadAllObjectConfigs, a as loadComponentSchemas, d as loadEngineConfig, e as loadGamePromptConfig, l as loadObjectCentricConfig, b as loadObjectConfig, f as loadSceneConfig, t as toLegacyFormat, v as validateObjectConfig } from './loader-object-centric-Ce6MVkQw.js';
|
|
4
|
+
|
|
5
|
+
type TelemetryConfig = {
|
|
6
|
+
endpoint: string;
|
|
7
|
+
transport?: 'beacon' | 'fetch';
|
|
8
|
+
batchSize?: number;
|
|
9
|
+
flushIntervalMs?: number;
|
|
10
|
+
maxQueue?: number;
|
|
11
|
+
debug?: boolean;
|
|
12
|
+
};
|
|
3
13
|
|
|
4
14
|
declare global {
|
|
5
15
|
interface Window {
|
|
@@ -155,42 +165,394 @@ declare class PreviewShell {
|
|
|
155
165
|
}
|
|
156
166
|
declare function createPreviewShell(options?: PreviewOptions): PreviewShell;
|
|
157
167
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
168
|
+
type SceneObjectsPanelOptions = {
|
|
169
|
+
onSelect: (objectId: string) => void;
|
|
170
|
+
};
|
|
171
|
+
declare class SceneObjectsPanel {
|
|
172
|
+
private root;
|
|
173
|
+
private listContainer;
|
|
174
|
+
private searchInput;
|
|
175
|
+
private selectedId;
|
|
176
|
+
private options;
|
|
177
|
+
private retryTimer;
|
|
178
|
+
private filterMode;
|
|
179
|
+
render(): string;
|
|
180
|
+
initialize(container: HTMLElement, options: SceneObjectsPanelOptions): void;
|
|
181
|
+
setSelected(objectId: string | null): void;
|
|
182
|
+
refreshObjects(): void;
|
|
183
|
+
/**
|
|
184
|
+
* Format display name: removes json. prefix, converts underscores to spaces, title case
|
|
185
|
+
*/
|
|
186
|
+
private formatDisplayName;
|
|
187
|
+
/**
|
|
188
|
+
* Get object type for icon display
|
|
189
|
+
*/
|
|
190
|
+
private getObjectType;
|
|
191
|
+
private renderGroup;
|
|
192
|
+
private getTypeIconByType;
|
|
193
|
+
private getTypeIcon;
|
|
194
|
+
private getAssetPreview;
|
|
195
|
+
private getColorIndicator;
|
|
196
|
+
private getMetadata;
|
|
197
|
+
private scheduleRetry;
|
|
198
|
+
private select;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
type SceneToolsPanelOptions = {
|
|
202
|
+
onHighlightObject: (enabled: boolean) => void;
|
|
203
|
+
onHighlightAnchor: (enabled: boolean) => void;
|
|
204
|
+
onNudge: (dx: number, dy: number) => void;
|
|
205
|
+
onShowSplash?: () => void;
|
|
206
|
+
onUpdateSplash?: (patch: Record<string, any>) => void;
|
|
207
|
+
};
|
|
208
|
+
declare class SceneToolsPanel {
|
|
209
|
+
private root;
|
|
210
|
+
private infoEls;
|
|
211
|
+
private options;
|
|
212
|
+
render(): string;
|
|
213
|
+
initialize(container: HTMLElement, options: SceneToolsPanelOptions): void;
|
|
214
|
+
getNudgeStep(): number;
|
|
215
|
+
updateInfo(info: {
|
|
216
|
+
instanceId: string;
|
|
217
|
+
worldX: number;
|
|
218
|
+
worldY: number;
|
|
219
|
+
anchorX: number | null;
|
|
220
|
+
anchorY: number | null;
|
|
221
|
+
} | null): void;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
type LibraryPanelOptions = {
|
|
225
|
+
onApply: (objectId: string, assetPath: string, category: string) => Promise<void>;
|
|
226
|
+
onReset: (objectId: string, defaultAsset: string, category: string) => Promise<void>;
|
|
227
|
+
};
|
|
228
|
+
declare class LibraryPanel {
|
|
229
|
+
private root;
|
|
230
|
+
private slotsContainer;
|
|
231
|
+
private options;
|
|
232
|
+
private registry;
|
|
233
|
+
private expandedSlot;
|
|
234
|
+
private mergeRegistries;
|
|
235
|
+
/**
|
|
236
|
+
* Render the library panel HTML template (called by DebugPanel)
|
|
237
|
+
*/
|
|
238
|
+
render(): string;
|
|
239
|
+
initialize(container: HTMLElement, options: LibraryPanelOptions): void;
|
|
240
|
+
/**
|
|
241
|
+
* Re-renders the slots using the current in-memory registry.
|
|
242
|
+
* Useful when registry is updated locally (e.g. after conversion)
|
|
243
|
+
*/
|
|
244
|
+
reRender(): void;
|
|
245
|
+
refresh(): Promise<void>;
|
|
246
|
+
private loadAssetRegistry;
|
|
247
|
+
private renderSlots;
|
|
248
|
+
private createSlotElement;
|
|
249
|
+
private createLibraryElement;
|
|
250
|
+
private fetchFolderAssets;
|
|
251
|
+
private handleApply;
|
|
252
|
+
private handleReset;
|
|
253
|
+
private formatCategoryName;
|
|
254
|
+
/**
|
|
255
|
+
* Handle AI Edit for existing asset
|
|
256
|
+
*/
|
|
257
|
+
private handleAIEdit;
|
|
258
|
+
/**
|
|
259
|
+
* Handle Create with AI (new asset from scratch)
|
|
260
|
+
*/
|
|
261
|
+
private handleCreateWithAI;
|
|
262
|
+
/**
|
|
263
|
+
* Highlights and scrolls to a specific slot
|
|
264
|
+
*/
|
|
265
|
+
highlightSlot(objectId: string, category?: string): void;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
type InspectorPanelOptions = {
|
|
269
|
+
onPropertyChange?: (objectId: string, path: string, value: any) => void;
|
|
270
|
+
};
|
|
271
|
+
declare class InspectorPanel {
|
|
272
|
+
private root;
|
|
273
|
+
private contentContainer;
|
|
161
274
|
private selectedObjectId;
|
|
162
|
-
private
|
|
275
|
+
private options;
|
|
276
|
+
private showAdvanced;
|
|
277
|
+
private rendererRegistry;
|
|
278
|
+
private updateManager;
|
|
279
|
+
private quickActions;
|
|
280
|
+
constructor();
|
|
281
|
+
render(): string;
|
|
282
|
+
initialize(container: HTMLElement, options: InspectorPanelOptions): void;
|
|
283
|
+
loadObject(objectId: string): void;
|
|
284
|
+
private renderProperties;
|
|
285
|
+
private renderConversionButtons;
|
|
286
|
+
private renderFooter;
|
|
287
|
+
private renderSection;
|
|
288
|
+
private attachEventListeners;
|
|
289
|
+
private addComponent;
|
|
290
|
+
private isSectionMeaningful;
|
|
291
|
+
private showError;
|
|
292
|
+
private formatLabel;
|
|
293
|
+
private getSectionIcon;
|
|
294
|
+
clear(): void;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* Brand Vision Mapper Panel
|
|
299
|
+
*
|
|
300
|
+
* Three-tab UI for importing brand assets and mapping them to game objects:
|
|
301
|
+
* - Tab 1: Upload manifest + assets + flat design
|
|
302
|
+
* - Tab 2: Review AI-generated mappings (APPLY / GENERATE / KEEP)
|
|
303
|
+
* - Tab 3: Generation progress + Apply all
|
|
304
|
+
*
|
|
305
|
+
* Pipeline logic is handled by brandVisionPipeline.ts
|
|
306
|
+
* Prompts are defined in brandVisionPrompts.ts
|
|
307
|
+
*/
|
|
308
|
+
|
|
309
|
+
declare class BrandVisionPanel {
|
|
310
|
+
private root;
|
|
311
|
+
private currentTab;
|
|
312
|
+
private onClose?;
|
|
313
|
+
private uploadMethod;
|
|
314
|
+
private uploadedJsons;
|
|
315
|
+
private normalizedManifest;
|
|
316
|
+
private flatDesignDataUrl;
|
|
317
|
+
private assetFiles;
|
|
318
|
+
private zipFile;
|
|
319
|
+
private mappingResult;
|
|
320
|
+
private analysisRawResponse;
|
|
321
|
+
private analysisParsedOk;
|
|
322
|
+
private analysisParseError;
|
|
323
|
+
private isAnalyzing;
|
|
324
|
+
private isGenerating;
|
|
325
|
+
private get manifest();
|
|
326
|
+
render(): string;
|
|
327
|
+
initialize(container: HTMLElement, onClose?: () => void): void;
|
|
328
|
+
private attachEventListeners;
|
|
329
|
+
private switchTab;
|
|
330
|
+
private switchUploadMethod;
|
|
331
|
+
private handleZipUpload;
|
|
332
|
+
private processZipFile;
|
|
333
|
+
private fileToDataUrl;
|
|
334
|
+
private blobToDataUrl;
|
|
335
|
+
private inferAssetCategory;
|
|
336
|
+
private addAssetsToRegistry;
|
|
337
|
+
private refreshLibrary;
|
|
338
|
+
private handleManifestUpload;
|
|
339
|
+
private handleAssetsUpload;
|
|
340
|
+
private handleFlatDesignUpload;
|
|
341
|
+
private runAnalysis;
|
|
342
|
+
private generateAllMissing;
|
|
343
|
+
private renderMappings;
|
|
344
|
+
private applyAll;
|
|
345
|
+
private getEngineAssets;
|
|
346
|
+
private getPreviewValueForMapping;
|
|
347
|
+
private stageOverridesFromMappings;
|
|
348
|
+
private applyOne;
|
|
349
|
+
private saveAndApplyOne;
|
|
350
|
+
private openEditorForOne;
|
|
351
|
+
private generateOne;
|
|
352
|
+
private stageEngineAssetOverride;
|
|
353
|
+
private saveToLibraryAndReturnPath;
|
|
354
|
+
private inferCategoryFromAssetKey;
|
|
355
|
+
private copyRawAnalysis;
|
|
356
|
+
private setStatus;
|
|
357
|
+
private getGameObjects;
|
|
358
|
+
private getGamePrompt;
|
|
359
|
+
private setupResizeHandle;
|
|
360
|
+
refresh(): void;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
type CustomizeSettingsPanelOptions = {
|
|
364
|
+
onApply: (payload: {
|
|
365
|
+
assets: Record<string, string>;
|
|
366
|
+
runtime: {
|
|
367
|
+
theme: Record<string, string>;
|
|
368
|
+
ui: Record<string, string>;
|
|
369
|
+
fonts: Record<string, string>;
|
|
370
|
+
audio: Record<string, string | number>;
|
|
371
|
+
};
|
|
372
|
+
}, options?: {
|
|
373
|
+
source?: 'manual' | 'auto';
|
|
374
|
+
}) => void;
|
|
375
|
+
};
|
|
376
|
+
declare class CustomizeSettingsPanel {
|
|
377
|
+
private root;
|
|
378
|
+
private assetsContainer;
|
|
379
|
+
private colorsContainer;
|
|
380
|
+
private fontsContainer;
|
|
381
|
+
private textsContainer;
|
|
382
|
+
private audioContainer;
|
|
383
|
+
private options;
|
|
384
|
+
private previewModal;
|
|
385
|
+
private autoApplyTimer;
|
|
386
|
+
private activePreviewKey;
|
|
387
|
+
private activePreviewValue;
|
|
388
|
+
private activePreviewFileInput;
|
|
389
|
+
private retryTimer;
|
|
390
|
+
private aiModal;
|
|
391
|
+
private aiTargetKey;
|
|
392
|
+
private aiKeyInput;
|
|
393
|
+
private aiPromptInput;
|
|
394
|
+
private aiStrengthInput;
|
|
395
|
+
private aiStrengthValue;
|
|
396
|
+
private aiModelSelect;
|
|
397
|
+
private aiModalSubtitle;
|
|
398
|
+
private aiGalleryToggle;
|
|
399
|
+
private aiGalleryEl;
|
|
400
|
+
private aiGalleryGrid;
|
|
401
|
+
private aiReferenceInput;
|
|
402
|
+
private aiReferenceName;
|
|
403
|
+
private aiReferenceFile;
|
|
404
|
+
private aiRemoveBgToggle;
|
|
405
|
+
private aiUseOutputToggle;
|
|
406
|
+
private aiGenerateBtn;
|
|
407
|
+
private aiApplyBtn;
|
|
408
|
+
private aiSaveLibraryBtn;
|
|
409
|
+
private aiCropBtn;
|
|
410
|
+
private aiDownloadBtn;
|
|
411
|
+
private aiPreviewImg;
|
|
412
|
+
private aiStatusEl;
|
|
413
|
+
private aiOutputDataUrl;
|
|
414
|
+
private aiBaseDataUrl;
|
|
415
|
+
private aiBaseValue;
|
|
416
|
+
private aiOutputKey;
|
|
417
|
+
private aiContext;
|
|
418
|
+
private aiBgToleranceInput;
|
|
419
|
+
private aiBgToleranceValue;
|
|
420
|
+
private aiRawOutputDataUrl;
|
|
421
|
+
private aiLoadingEl;
|
|
422
|
+
render(): string;
|
|
423
|
+
initialize(container: HTMLElement, options: CustomizeSettingsPanelOptions): void;
|
|
424
|
+
private setupRenderModeHandlers;
|
|
425
|
+
private applyEndgamePngMode;
|
|
426
|
+
private applySplashPngMode;
|
|
427
|
+
openAiEditor(assetKey: string, prompt?: string, initialValue?: string, context?: {
|
|
428
|
+
objectId?: string;
|
|
429
|
+
path?: string;
|
|
430
|
+
}): void;
|
|
431
|
+
refresh(): void;
|
|
432
|
+
private getEngineSnapshot;
|
|
433
|
+
private renderAssets;
|
|
434
|
+
private renderColors;
|
|
435
|
+
private renderFonts;
|
|
436
|
+
private renderTexts;
|
|
437
|
+
private renderAudio;
|
|
438
|
+
private readUiValue;
|
|
439
|
+
private getObjectTextValue;
|
|
440
|
+
private getObjectPropertyValue;
|
|
441
|
+
private handleApply;
|
|
442
|
+
private handleApplyWithSource;
|
|
443
|
+
private setupAiPanel;
|
|
444
|
+
private setAiStatus;
|
|
445
|
+
private getSelectedAssetKey;
|
|
446
|
+
private getSelectedAssetInput;
|
|
447
|
+
private getImageDataFromAsset;
|
|
448
|
+
private updateAiBasePreview;
|
|
449
|
+
private updateAiPreview;
|
|
450
|
+
private updateAiModalPreview;
|
|
451
|
+
private setAiLoading;
|
|
452
|
+
private toggleAiGallery;
|
|
453
|
+
private renderAiGallery;
|
|
454
|
+
private getAiGalleryEntries;
|
|
455
|
+
private isAiGalleryImage;
|
|
456
|
+
private selectAiGalleryAsset;
|
|
457
|
+
private openAiModal;
|
|
458
|
+
private closeAiModal;
|
|
459
|
+
private handleAiGenerate;
|
|
460
|
+
private refreshAiOutputFromRaw;
|
|
461
|
+
private setAiOutput;
|
|
462
|
+
private setAiOutputButtonsEnabled;
|
|
463
|
+
private handleAiApply;
|
|
464
|
+
private handleAiSaveToLibrary;
|
|
465
|
+
private inferCategoryFromAssetKey;
|
|
466
|
+
private inferObjectIdFromAssetKey;
|
|
467
|
+
private inferPathFromAssetKey;
|
|
468
|
+
private getFilenameFromPath;
|
|
469
|
+
private handleAiCrop;
|
|
470
|
+
private handleAiDownload;
|
|
471
|
+
private handleAssetValueChange;
|
|
472
|
+
private handleAssetUpload;
|
|
473
|
+
private scheduleAutoApply;
|
|
474
|
+
private previewAsset;
|
|
475
|
+
private resolveAssetUrls;
|
|
476
|
+
private guessMimeType;
|
|
477
|
+
private openPreviewModal;
|
|
478
|
+
private loadWithFallback;
|
|
479
|
+
private fetchWithFallback;
|
|
480
|
+
private applyObjectPropertyValue;
|
|
481
|
+
private applyTextColorToObject;
|
|
482
|
+
private closePreviewModal;
|
|
483
|
+
private updatePreviewIfOpen;
|
|
484
|
+
private scheduleRetry;
|
|
485
|
+
private clearRetry;
|
|
486
|
+
private setupResizeHandle;
|
|
487
|
+
private getImageDimensions;
|
|
488
|
+
private loadImage;
|
|
489
|
+
private showManualCropModal;
|
|
490
|
+
private loadImageForValue;
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
type WorkbenchTab = 'hierarchy' | 'inspector' | 'library' | 'ai' | 'changes';
|
|
494
|
+
/**
|
|
495
|
+
* DebugPanel context interface - used to pass 'this' context to modular functions
|
|
496
|
+
*/
|
|
497
|
+
interface DebugPanelContext {
|
|
498
|
+
container: HTMLElement | null;
|
|
499
|
+
debugOverlay: HTMLElement | null;
|
|
500
|
+
configViewer: HTMLElement | null;
|
|
501
|
+
isDebugOpen: boolean;
|
|
502
|
+
selectedObjectId: string | null;
|
|
503
|
+
activeTab: WorkbenchTab;
|
|
504
|
+
highlightObject: boolean;
|
|
505
|
+
highlightAnchor: boolean;
|
|
506
|
+
objectAutoApplyTimer: number | null;
|
|
507
|
+
objectDebugRaf: number | null;
|
|
508
|
+
objectBoundsGfx: Graphics | null;
|
|
509
|
+
objectAnchorGfx: Graphics | null;
|
|
510
|
+
sceneObjectsPanel: SceneObjectsPanel;
|
|
511
|
+
sceneToolsPanel: SceneToolsPanel;
|
|
512
|
+
inspectorPanel: InspectorPanel;
|
|
513
|
+
libraryPanel: LibraryPanel;
|
|
514
|
+
brandVisionPanel: BrandVisionPanel;
|
|
515
|
+
customizeSettingsPanel: CustomizeSettingsPanel;
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
declare class ConfigPersistencePanel {
|
|
163
519
|
private container;
|
|
164
|
-
private objectAutoApplyTimer;
|
|
165
|
-
private objectDebugRaf;
|
|
166
|
-
private objectBoundsGfx;
|
|
167
|
-
private objectAnchorGfx;
|
|
168
|
-
private highlightObject;
|
|
169
|
-
private highlightAnchor;
|
|
170
|
-
private sceneObjectsPanel;
|
|
171
|
-
private sceneEditPanel;
|
|
172
|
-
private sceneToolsPanel;
|
|
173
|
-
private customizeSettingsPanel;
|
|
174
|
-
private libraryPanel;
|
|
175
|
-
private batchAiPanel;
|
|
176
|
-
private brandDnaPanel;
|
|
177
|
-
private activeTab;
|
|
178
520
|
initialize(container: HTMLElement): void;
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
private
|
|
183
|
-
|
|
521
|
+
render(): string;
|
|
522
|
+
private formatValue;
|
|
523
|
+
setupEventListeners(): void;
|
|
524
|
+
private showSuccessNotification;
|
|
525
|
+
refreshPanel(): void;
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
/**
|
|
529
|
+
* DebugPanel - Refactored using modular functions
|
|
530
|
+
* Original methods are now in separate modules under ./debug/
|
|
531
|
+
*/
|
|
532
|
+
declare class DebugPanel implements DebugPanelContext {
|
|
533
|
+
debugOverlay: HTMLElement | null;
|
|
534
|
+
isDebugOpen: boolean;
|
|
535
|
+
selectedObjectId: string | null;
|
|
536
|
+
configViewer: HTMLElement | null;
|
|
537
|
+
container: HTMLElement | null;
|
|
538
|
+
objectAutoApplyTimer: number | null;
|
|
539
|
+
objectDebugRaf: number | null;
|
|
540
|
+
objectBoundsGfx: Graphics | null;
|
|
541
|
+
objectAnchorGfx: Graphics | null;
|
|
542
|
+
highlightObject: boolean;
|
|
543
|
+
highlightAnchor: boolean;
|
|
544
|
+
activeTab: WorkbenchTab;
|
|
545
|
+
sceneObjectsPanel: SceneObjectsPanel;
|
|
546
|
+
sceneToolsPanel: SceneToolsPanel;
|
|
547
|
+
inspectorPanel: InspectorPanel;
|
|
548
|
+
libraryPanel: LibraryPanel;
|
|
549
|
+
brandVisionPanel: BrandVisionPanel;
|
|
550
|
+
customizeSettingsPanel: CustomizeSettingsPanel;
|
|
551
|
+
configPersistencePanel: ConfigPersistencePanel;
|
|
184
552
|
private applyAssetChange;
|
|
185
553
|
private resetAsset;
|
|
186
|
-
|
|
187
|
-
private
|
|
188
|
-
private setupPanelLayout;
|
|
189
|
-
private saveWorkbenchState;
|
|
190
|
-
private loadWorkbenchState;
|
|
191
|
-
private setupCollapsiblePanels;
|
|
192
|
-
private handleObjectSelect;
|
|
193
|
-
private nudgeSelectedObject;
|
|
554
|
+
private applySlotAsset;
|
|
555
|
+
private resetSlotAsset;
|
|
194
556
|
private startObjectVisuals;
|
|
195
557
|
private stopObjectVisuals;
|
|
196
558
|
private shouldRunObjectVisuals;
|
|
@@ -208,10 +570,6 @@ declare class DebugPanel {
|
|
|
208
570
|
private clearAnchor;
|
|
209
571
|
private clearObjectVisuals;
|
|
210
572
|
private updateObjectInfo;
|
|
211
|
-
private scheduleObjectAutoApply;
|
|
212
|
-
private setupRangeInput;
|
|
213
|
-
private getNestedValue;
|
|
214
|
-
private setNestedValue;
|
|
215
573
|
private resetDebugConfig;
|
|
216
574
|
private applyDebugConfig;
|
|
217
575
|
private exportDebugConfig;
|
|
@@ -220,7 +578,24 @@ declare class DebugPanel {
|
|
|
220
578
|
private copyConfigValues;
|
|
221
579
|
private applyObjectConfig;
|
|
222
580
|
private applyCustomizeSettings;
|
|
223
|
-
private
|
|
581
|
+
private scheduleObjectAutoApply;
|
|
582
|
+
setupDebugEventListeners(): void;
|
|
583
|
+
private setupDebugInputListeners;
|
|
584
|
+
private setupPanelLayout;
|
|
585
|
+
private setupCollapsiblePanels;
|
|
586
|
+
private setupRangeInput;
|
|
587
|
+
private updateWorkbenchTabs;
|
|
588
|
+
private saveWorkbenchState;
|
|
589
|
+
private loadWorkbenchState;
|
|
590
|
+
initialize(container: HTMLElement): void;
|
|
591
|
+
selectObject(objectId: string): void;
|
|
592
|
+
private highlightChangesTab;
|
|
593
|
+
getDebugOverlayHTML(): string;
|
|
594
|
+
refresh(): void;
|
|
595
|
+
toggleDebug(force?: boolean): void;
|
|
596
|
+
updateDebugBadge(): void;
|
|
597
|
+
private handleObjectSelect;
|
|
598
|
+
private nudgeSelectedObject;
|
|
224
599
|
}
|
|
225
600
|
|
|
226
601
|
/**
|
|
@@ -334,6 +709,7 @@ declare function setupHotReload(deps: HotReloadDependencies): void;
|
|
|
334
709
|
*/
|
|
335
710
|
interface ConfigOverride {
|
|
336
711
|
objectId?: string;
|
|
712
|
+
sceneId?: string;
|
|
337
713
|
path: string;
|
|
338
714
|
value: any;
|
|
339
715
|
}
|
|
@@ -348,6 +724,8 @@ interface ConfigOverrideOptions {
|
|
|
348
724
|
silent?: boolean;
|
|
349
725
|
persist?: boolean;
|
|
350
726
|
}
|
|
727
|
+
declare function getOverrideMode(): boolean;
|
|
728
|
+
declare function setOverrideMode(enabled: boolean): void;
|
|
351
729
|
/**
|
|
352
730
|
* Apply a config override
|
|
353
731
|
*/
|
|
@@ -360,6 +738,8 @@ declare function applyConfigOverrides(overrides: ConfigOverride[], options?: Con
|
|
|
360
738
|
* Clear all config overrides
|
|
361
739
|
*/
|
|
362
740
|
declare function clearConfigOverrides(): void;
|
|
741
|
+
declare function clearConfigOverridesForObject(objectId: string): void;
|
|
742
|
+
declare function removeConfigOverride(objectId: string | undefined, path: string): void;
|
|
363
743
|
/**
|
|
364
744
|
* Get all active overrides
|
|
365
745
|
*/
|
|
@@ -373,6 +753,38 @@ declare const configOverrideManager: {
|
|
|
373
753
|
getChanges(): ConfigChange[];
|
|
374
754
|
clearChanges(): void;
|
|
375
755
|
};
|
|
756
|
+
/**
|
|
757
|
+
* Deep clone utility for baseline copying
|
|
758
|
+
*/
|
|
759
|
+
declare function deepClone(obj: any): any;
|
|
760
|
+
/**
|
|
761
|
+
* Export full config snapshots (Safeguard #1)
|
|
762
|
+
* CRITICAL: Must start from loader-resolved baseline, never from scratch
|
|
763
|
+
* Must output full object trees, never just changed keys
|
|
764
|
+
*/
|
|
765
|
+
declare function exportConfigsAsJSON(): Record<string, any>;
|
|
766
|
+
/**
|
|
767
|
+
* Get summary of config state (for UI display)
|
|
768
|
+
*/
|
|
769
|
+
declare function getConfigStateSummary(): {
|
|
770
|
+
modifiedObjects: string[];
|
|
771
|
+
overrideCount: number;
|
|
772
|
+
hasChanges: boolean;
|
|
773
|
+
overrides: ConfigOverride[];
|
|
774
|
+
};
|
|
775
|
+
/**
|
|
776
|
+
* Apply configs to disk (Safeguard #2)
|
|
777
|
+
* CRITICAL: Clear cache ONLY after successful API response
|
|
778
|
+
*/
|
|
779
|
+
declare function applyConfigsToDisk(): Promise<void>;
|
|
780
|
+
/**
|
|
781
|
+
* Reset to applied state (clear cache, reload)
|
|
782
|
+
*/
|
|
783
|
+
declare function resetToApplied(): void;
|
|
784
|
+
/**
|
|
785
|
+
* Reset to original configs (restore from backup)
|
|
786
|
+
*/
|
|
787
|
+
declare function resetToOriginal(): Promise<void>;
|
|
376
788
|
|
|
377
789
|
/**
|
|
378
790
|
* Base Layer - Lottie Instance
|
|
@@ -408,6 +820,23 @@ type InitOptions = {
|
|
|
408
820
|
profile?: 'web_embed' | 'mraid' | string;
|
|
409
821
|
consent?: Consent;
|
|
410
822
|
destinationUrl?: string;
|
|
823
|
+
telemetry?: TelemetryConfig;
|
|
824
|
+
};
|
|
825
|
+
type Envelope = {
|
|
826
|
+
event_name: string;
|
|
827
|
+
ts: number;
|
|
828
|
+
session_id: string;
|
|
829
|
+
deployment_id: string;
|
|
830
|
+
variant_id: string;
|
|
831
|
+
export_profile_id: string;
|
|
832
|
+
instance_id: string;
|
|
833
|
+
env: 'web' | 'mraid' | 'native';
|
|
834
|
+
attribution?: {
|
|
835
|
+
campaign_id?: string;
|
|
836
|
+
placement_id?: string;
|
|
837
|
+
experiment_id?: string;
|
|
838
|
+
};
|
|
839
|
+
payload?: any;
|
|
411
840
|
};
|
|
412
841
|
declare const Handler: {
|
|
413
842
|
init(options?: InitOptions, callback?: (w: number, h: number) => void): void;
|
|
@@ -428,10 +857,36 @@ declare const Handler: {
|
|
|
428
857
|
finish(): void;
|
|
429
858
|
install(url?: string): void;
|
|
430
859
|
emit(name: string, payload?: any): void;
|
|
860
|
+
gameStart(): void;
|
|
861
|
+
gameEnd(): void;
|
|
862
|
+
ctaClick(url?: string, options?: {
|
|
863
|
+
open?: boolean;
|
|
864
|
+
}): void;
|
|
865
|
+
ctaShow(meta?: any): void;
|
|
866
|
+
ctaDismiss(meta?: any): void;
|
|
867
|
+
getGameTimeMs(): number | null;
|
|
868
|
+
endSession(reason?: "complete" | "cta" | "manual"): void;
|
|
869
|
+
setAttribution(attribution?: Envelope["attribution"]): void;
|
|
870
|
+
abTest(experimentId: string, variants: string[]): string;
|
|
871
|
+
levelStart(levelId: string | number, meta?: any): void;
|
|
872
|
+
levelComplete(levelId: string | number, meta?: any): void;
|
|
873
|
+
levelFail(levelId: string | number, meta?: any): void;
|
|
874
|
+
checkpoint(checkpointId: string | number, meta?: any): void;
|
|
875
|
+
reward(rewardId: string, meta?: any): void;
|
|
876
|
+
tutorialStart(stepId?: string | number, meta?: any): void;
|
|
877
|
+
tutorialComplete(stepId?: string | number, meta?: any): void;
|
|
878
|
+
tutorialSkip(stepId?: string | number, meta?: any): void;
|
|
879
|
+
timerStart(key: string): void;
|
|
880
|
+
timerEnd(key: string, eventName?: "load_time" | "level_time" | "custom", meta?: any): void;
|
|
881
|
+
fps(value: number, meta?: any): void;
|
|
882
|
+
memory(bytes: number, meta?: any): void;
|
|
883
|
+
assetLoadStart(assetId: string, meta?: any): void;
|
|
884
|
+
assetLoadComplete(assetId: string, meta?: any): void;
|
|
885
|
+
reportError(code: string, message: string, meta?: any): void;
|
|
431
886
|
retry(): void;
|
|
432
887
|
pause(): void;
|
|
433
888
|
resume(): void;
|
|
434
889
|
resize(width?: number, height?: number): void;
|
|
435
890
|
};
|
|
436
891
|
|
|
437
|
-
export { type ConfigChange, type ConfigChangeEvent, type ConfigOverride, type ConfigOverrideOptions, ConfigWatcher, DebugPanel, DefaultReloadStrategy, type DeviceCategory, type DeviceGroup, type DevicePreset, Handler, type HotReloadDependencies, type HotReloadWatcher, type LiveEditBridge, ObjectCentricConfig, type PreviewOptions, PreviewShell, type ReloadStrategy, type SetupLiveEditBridgeOptions, applyConfigOverride, applyConfigOverrides, baseLottie, bootstrap, clearConfigOverrides, configOverrideManager, createPreviewShell, Handler as default, defaultPreset, deviceGroups, devicePresets, diffConfigs, getConfigOverrides, getPresetById, getPresetsByCategory, rehydrateObject, setBootstrapDependencies, setupHotReload, setupLiveEditBridge };
|
|
892
|
+
export { type ConfigChange, type ConfigChangeEvent, type ConfigOverride, type ConfigOverrideOptions, ConfigWatcher, DebugPanel, DefaultReloadStrategy, type DeviceCategory, type DeviceGroup, type DevicePreset, Handler, type HotReloadDependencies, type HotReloadWatcher, type LiveEditBridge, ObjectCentricConfig, type PreviewOptions, PreviewShell, type ReloadStrategy, type SetupLiveEditBridgeOptions, applyConfigOverride, applyConfigOverrides, applyConfigsToDisk, baseLottie, bootstrap, clearConfigOverrides, clearConfigOverridesForObject, configOverrideManager, createPreviewShell, deepClone, Handler as default, defaultPreset, deviceGroups, devicePresets, diffConfigs, exportConfigsAsJSON, getConfigOverrides, getConfigStateSummary, getOverrideMode, getPresetById, getPresetsByCategory, rehydrateObject, removeConfigOverride, resetToApplied, resetToOriginal, setBootstrapDependencies, setOverrideMode, setupHotReload, setupLiveEditBridge };
|