@helix3/helix-cli 0.1.13-helix3.134 → 0.1.13-helix3.136
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/currency.d.ts +37 -0
- package/dist/currency.js +162 -0
- package/dist/currency.js.map +1 -1
- package/dist/index.js +91 -1
- package/dist/index.js.map +1 -1
- package/dist/install.d.ts +1 -0
- package/dist/install.js +10 -1
- package/dist/install.js.map +1 -1
- package/dist/interactable.d.ts +27 -0
- package/dist/interactable.js +217 -23
- package/dist/interactable.js.map +1 -1
- package/dist/item.d.ts +1 -1
- package/dist/item.js +11 -0
- package/dist/item.js.map +1 -1
- package/dist/lib.d.ts +2 -2
- package/dist/lib.js +11 -5
- package/dist/lib.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/currency.d.ts
CHANGED
|
@@ -39,4 +39,41 @@ export type VaultResolveApi = {
|
|
|
39
39
|
request<T>(method: string, path: string): Promise<T>;
|
|
40
40
|
};
|
|
41
41
|
export declare function assessWeaponPins(dir: string, client?: VaultResolveApi): Promise<WeaponPinsCurrency | null>;
|
|
42
|
+
export type VaultAssetFinding = 'current' | 'newer-version' | 'unresolved';
|
|
43
|
+
export type VaultAssetRow = {
|
|
44
|
+
assetId: string;
|
|
45
|
+
kind: string;
|
|
46
|
+
installedVersion: number;
|
|
47
|
+
currentVersion: number | null;
|
|
48
|
+
title: string | null;
|
|
49
|
+
finding: VaultAssetFinding;
|
|
50
|
+
note: string;
|
|
51
|
+
};
|
|
52
|
+
export declare function assessVaultAssets(dir: string, client?: VaultResolveApi): Promise<VaultAssetRow[] | null>;
|
|
53
|
+
export type InteractableFinding = 'current' | 'reference-moved' | 'checksum-drift' | 'unresolved';
|
|
54
|
+
export type InteractableRow = {
|
|
55
|
+
itemId: string;
|
|
56
|
+
/** The registry package slug (`helix_interactables/<id>@<version>`). */
|
|
57
|
+
id: string;
|
|
58
|
+
installedVersion: string;
|
|
59
|
+
currentVersion: string | null;
|
|
60
|
+
title: string | null;
|
|
61
|
+
/** How many placed instances of this exact install the world carries. */
|
|
62
|
+
instances: number;
|
|
63
|
+
finding: InteractableFinding;
|
|
64
|
+
note: string;
|
|
65
|
+
};
|
|
66
|
+
export declare function assessInteractables(dir: string, client?: VaultResolveApi): Promise<InteractableRow[] | null>;
|
|
67
|
+
export type PlatformDeliveryStatus = {
|
|
68
|
+
/** What the real publish validator says about the source-tree declarations ([] = passes). */
|
|
69
|
+
errors: string[];
|
|
70
|
+
/** The descriptor's declared delivery, null when the file is missing or unreadable. */
|
|
71
|
+
delivery: string | null;
|
|
72
|
+
descriptorPresent: boolean;
|
|
73
|
+
/** vite.config.ts externalizes `@helix/` — false means the next install marks the world legacy-bundled. */
|
|
74
|
+
viteExternalizes: boolean;
|
|
75
|
+
/** index.html carries the helix:three markers install rewrites the import map between. */
|
|
76
|
+
markersPresent: boolean;
|
|
77
|
+
};
|
|
78
|
+
export declare function assessPlatformDelivery(dir: string, origin?: string): PlatformDeliveryStatus | null;
|
|
42
79
|
export declare function assessWorldCurrency(dir: string, client?: CatalogClient): Promise<WorldCurrency | null>;
|
package/dist/currency.js
CHANGED
|
@@ -2,9 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ADVISORY_SYSTEMS = void 0;
|
|
4
4
|
exports.assessWeaponPins = assessWeaponPins;
|
|
5
|
+
exports.assessVaultAssets = assessVaultAssets;
|
|
6
|
+
exports.assessInteractables = assessInteractables;
|
|
7
|
+
exports.assessPlatformDelivery = assessPlatformDelivery;
|
|
5
8
|
exports.assessWorldCurrency = assessWorldCurrency;
|
|
6
9
|
const node_fs_1 = require("node:fs");
|
|
7
10
|
const node_path_1 = require("node:path");
|
|
11
|
+
const helix_manifest_1 = require("@hypersoniclabs/helix-manifest");
|
|
8
12
|
const api_1 = require("./api");
|
|
9
13
|
const config_1 = require("./config");
|
|
10
14
|
const install_1 = require("./install");
|
|
@@ -128,6 +132,164 @@ async function assessWeaponPins(dir, client) {
|
|
|
128
132
|
const rows = await Promise.all(unique.map((pin) => classifyWeaponPin(api, pin)));
|
|
129
133
|
return { rows, copiesDiverge };
|
|
130
134
|
}
|
|
135
|
+
function readAssetReceipt(path) {
|
|
136
|
+
if (!(0, node_fs_1.existsSync)(path))
|
|
137
|
+
return null;
|
|
138
|
+
try {
|
|
139
|
+
const parsed = JSON.parse((0, node_fs_1.readFileSync)(path, 'utf8'));
|
|
140
|
+
if (!Array.isArray(parsed.vaultAssets))
|
|
141
|
+
return null;
|
|
142
|
+
const entries = [];
|
|
143
|
+
for (const raw of parsed.vaultAssets) {
|
|
144
|
+
if (!raw || typeof raw !== 'object')
|
|
145
|
+
continue;
|
|
146
|
+
const { assetId, version, kind } = raw;
|
|
147
|
+
if (typeof assetId !== 'string' || typeof version !== 'number')
|
|
148
|
+
continue;
|
|
149
|
+
entries.push({ assetId, version, kind: typeof kind === 'string' ? kind : 'asset' });
|
|
150
|
+
}
|
|
151
|
+
return entries.length ? entries : null;
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
async function classifyVaultAsset(api, entry) {
|
|
158
|
+
const base = { assetId: entry.assetId, kind: entry.kind, installedVersion: entry.version };
|
|
159
|
+
try {
|
|
160
|
+
const detail = await api.request('GET', `${publish_1.VAULT_ASSETS_PATH}/${encodeURIComponent(entry.assetId)}`);
|
|
161
|
+
const currentVersion = detail.artifact?.version ?? null;
|
|
162
|
+
const title = detail.title ?? null;
|
|
163
|
+
if (currentVersion === null) {
|
|
164
|
+
return { ...base, currentVersion: null, title, finding: 'unresolved', note: 'the vault resolve answered no artifact version (held or not public here)' };
|
|
165
|
+
}
|
|
166
|
+
return currentVersion > entry.version
|
|
167
|
+
? { ...base, currentVersion, title, finding: 'newer-version', note: '' }
|
|
168
|
+
: { ...base, currentVersion, title, finding: 'current', note: '' };
|
|
169
|
+
}
|
|
170
|
+
catch (err) {
|
|
171
|
+
// Same shape as weapon pins: a 404 here usually means the receipt was written against another
|
|
172
|
+
// backend (dev-stack ids in a live world). The bundled files keep working either way.
|
|
173
|
+
return { ...base, currentVersion: null, title: null, finding: 'unresolved', note: errorMessage(err) };
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
// null when the world has no provenance receipt (or it lists nothing) — callers omit the section.
|
|
177
|
+
async function assessVaultAssets(dir, client) {
|
|
178
|
+
const entries = readAssetReceipt((0, node_path_1.join)(dir, 'public', 'helix.assets.json'));
|
|
179
|
+
if (!entries)
|
|
180
|
+
return null;
|
|
181
|
+
const creds = (0, config_1.loadCredentials)();
|
|
182
|
+
const api = client ?? (creds ? api_1.HelixApi.forCredentials(creds) : new api_1.HelixApi(config_1.DEFAULT_API_URL));
|
|
183
|
+
return Promise.all(entries.map((entry) => classifyVaultAsset(api, entry)));
|
|
184
|
+
}
|
|
185
|
+
function readInstalledInteractables(path) {
|
|
186
|
+
if (!(0, node_fs_1.existsSync)(path))
|
|
187
|
+
return null;
|
|
188
|
+
try {
|
|
189
|
+
const parsed = JSON.parse((0, node_fs_1.readFileSync)(path, 'utf8'));
|
|
190
|
+
if (!Array.isArray(parsed.instances))
|
|
191
|
+
return null;
|
|
192
|
+
const grouped = new Map();
|
|
193
|
+
for (const raw of parsed.instances) {
|
|
194
|
+
if (!raw || typeof raw !== 'object')
|
|
195
|
+
continue;
|
|
196
|
+
const { itemId, id, version, checksumSha256 } = raw;
|
|
197
|
+
if (typeof itemId !== 'string' || typeof id !== 'string' || typeof version !== 'string')
|
|
198
|
+
continue;
|
|
199
|
+
const checksum = typeof checksumSha256 === 'string' ? checksumSha256.toLowerCase() : null;
|
|
200
|
+
const key = `${itemId}|${id}|${version}|${checksum ?? ''}`;
|
|
201
|
+
const existing = grouped.get(key);
|
|
202
|
+
if (existing)
|
|
203
|
+
existing.instances += 1;
|
|
204
|
+
else
|
|
205
|
+
grouped.set(key, { entry: { itemId, id, version, checksumSha256: checksum }, instances: 1 });
|
|
206
|
+
}
|
|
207
|
+
return grouped.size ? [...grouped.values()] : null;
|
|
208
|
+
}
|
|
209
|
+
catch {
|
|
210
|
+
return null;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
async function classifyInteractable(api, entry, instances) {
|
|
214
|
+
const base = { itemId: entry.itemId, id: entry.id, installedVersion: entry.version, instances };
|
|
215
|
+
try {
|
|
216
|
+
const detail = await api.request('GET', `/api/v1/universal-items/${encodeURIComponent(entry.itemId)}`);
|
|
217
|
+
const title = detail.item?.title ?? null;
|
|
218
|
+
const references = detail.item?.metadata?.derived?.interactive?.references;
|
|
219
|
+
const first = Array.isArray(references) && references[0] && typeof references[0] === 'object' ? references[0] : null;
|
|
220
|
+
if (!first || first.kind !== 'interactable-bundle' || typeof first.version !== 'string' || typeof first.checksumSha256 !== 'string') {
|
|
221
|
+
return { ...base, currentVersion: null, title, finding: 'unresolved', note: 'the Marketplace item no longer carries a valid interactable-bundle reference' };
|
|
222
|
+
}
|
|
223
|
+
if (first.version !== entry.version) {
|
|
224
|
+
return { ...base, currentVersion: first.version, title, finding: 'reference-moved', note: '' };
|
|
225
|
+
}
|
|
226
|
+
if (entry.checksumSha256 && first.checksumSha256.toLowerCase() !== entry.checksumSha256) {
|
|
227
|
+
return { ...base, currentVersion: first.version, title, finding: 'checksum-drift', note: 'the registry re-published this version with different bytes — treat as suspect' };
|
|
228
|
+
}
|
|
229
|
+
return { ...base, currentVersion: first.version, title, finding: 'current', note: '' };
|
|
230
|
+
}
|
|
231
|
+
catch (err) {
|
|
232
|
+
return { ...base, currentVersion: null, title: null, finding: 'unresolved', note: errorMessage(err) };
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
// null when the world has no interactable install index (or it lists nothing) — callers omit the section.
|
|
236
|
+
async function assessInteractables(dir, client) {
|
|
237
|
+
const grouped = readInstalledInteractables((0, node_path_1.join)(dir, 'helix_interactables', 'installed.json'));
|
|
238
|
+
if (!grouped)
|
|
239
|
+
return null;
|
|
240
|
+
const creds = (0, config_1.loadCredentials)();
|
|
241
|
+
const api = client ?? (creds ? api_1.HelixApi.forCredentials(creds) : new api_1.HelixApi(config_1.DEFAULT_API_URL));
|
|
242
|
+
return Promise.all(grouped.map(({ entry, instances }) => classifyInteractable(api, entry, instances)));
|
|
243
|
+
}
|
|
244
|
+
// null when `dir` isn't a world or declares no systems — the gate only fires on systems-declaring
|
|
245
|
+
// worlds. `origin` defaults to the logged-in backend (what publish binds resolver URLs against).
|
|
246
|
+
function assessPlatformDelivery(dir, origin) {
|
|
247
|
+
const manifestPath = install_1.WORLD_MANIFEST_LOCATIONS.map((rel) => (0, node_path_1.join)(dir, rel)).find((p) => (0, node_fs_1.existsSync)(p));
|
|
248
|
+
if (!manifestPath)
|
|
249
|
+
return null;
|
|
250
|
+
let systems;
|
|
251
|
+
try {
|
|
252
|
+
const manifest = JSON.parse((0, node_fs_1.readFileSync)(manifestPath, 'utf8'));
|
|
253
|
+
systems = manifest.systems ?? {};
|
|
254
|
+
}
|
|
255
|
+
catch {
|
|
256
|
+
return null;
|
|
257
|
+
}
|
|
258
|
+
if (Object.keys(systems).length === 0)
|
|
259
|
+
return null;
|
|
260
|
+
const readText = (rel) => {
|
|
261
|
+
const p = (0, node_path_1.join)(dir, rel);
|
|
262
|
+
return (0, node_fs_1.existsSync)(p) ? (0, node_fs_1.readFileSync)(p, 'utf8') : null;
|
|
263
|
+
};
|
|
264
|
+
const viteSource = readText('vite.config.ts');
|
|
265
|
+
const viteExternalizes = viteSource !== null && (0, install_1.viteConfigExternalizesPlatformSystems)(viteSource);
|
|
266
|
+
const html = readText('index.html') ?? '';
|
|
267
|
+
const markersPresent = html.includes('helix:three:start') && html.includes('helix:three:end');
|
|
268
|
+
const descriptorText = readText((0, node_path_1.join)('public', 'helix.runtime.json'));
|
|
269
|
+
if (descriptorText === null) {
|
|
270
|
+
return {
|
|
271
|
+
errors: ['platform systems are declared but public/helix.runtime.json is missing — run helix install, then rebuild'],
|
|
272
|
+
delivery: null,
|
|
273
|
+
descriptorPresent: false,
|
|
274
|
+
viteExternalizes,
|
|
275
|
+
markersPresent,
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
let descriptor;
|
|
279
|
+
try {
|
|
280
|
+
descriptor = JSON.parse(descriptorText);
|
|
281
|
+
}
|
|
282
|
+
catch {
|
|
283
|
+
return { errors: ['public/helix.runtime.json is not valid JSON'], delivery: null, descriptorPresent: true, viteExternalizes, markersPresent };
|
|
284
|
+
}
|
|
285
|
+
const verdict = (0, helix_manifest_1.validatePlatformRuntimeDelivery)({
|
|
286
|
+
descriptor,
|
|
287
|
+
manifestSystems: systems,
|
|
288
|
+
entryHtml: html,
|
|
289
|
+
compatibleResolverOrigin: origin ?? (0, config_1.loadCredentials)()?.apiUrl ?? config_1.DEFAULT_API_URL,
|
|
290
|
+
});
|
|
291
|
+
return { errors: verdict.errors, delivery: verdict.delivery, descriptorPresent: true, viteExternalizes, markersPresent };
|
|
292
|
+
}
|
|
131
293
|
// null when `dir` isn't a world (no helix.json in either manifest location) — callers omit the
|
|
132
294
|
// section silently. `manifest.systems` absent is treated as `{}`; advisory checks still run.
|
|
133
295
|
async function assessWorldCurrency(dir, client) {
|
package/dist/currency.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currency.js","sourceRoot":"","sources":["../src/currency.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"currency.js","sourceRoot":"","sources":["../src/currency.ts"],"names":[],"mappings":";;;AA8KA,4CAgBC;AA4DD,8CAMC;AA2ED,kDAMC;AAyBD,wDA6CC;AAID,kDAsBC;AAjbD,qCAAmD;AACnD,yCAAiC;AACjC,mEAAiF;AACjF,+BAAiC;AACjC,qCAA4D;AAC5D,uCAAsH;AACtH,+CAAkD;AAClD,+CAAsD;AACtD,uCAA6E;AAgC7E,4FAA4F;AAC5F,yDAAyD;AAC5C,QAAA,gBAAgB,GAAuC;IAClE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,2CAA2C,EAAE;CAC7E,CAAC;AAEF,SAAS,KAAK,CAAC,QAAkB,EAAE,OAAiC;IAClE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,iGAAiG;AACjG,6EAA6E;AAC7E,SAAS,eAAe,CAAC,QAAkB,EAAE,OAAiC;IAC5E,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,YAAY,CAAC,GAAY;IAChC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAAqB,EAAE,IAAY,EAAE,GAAW,EAAE,MAAqB;IACnG,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAA,2BAAiB,EAAC,GAAG,CAAC,CAAC;QACpC,2FAA2F;QAC3F,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAE5E,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,gBAAgB,CAAC,CAAC;QACrF,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7E,MAAM,aAAa,GAAG,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAEhE,IAAI,OAA2B,CAAC;QAChC,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,iBAAiB,CAAC;aACpC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE,OAAO,GAAG,YAAY,CAAC;aAC3C,IAAI,aAAa,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,gBAAgB,CAAC;aAC3F,IAAI,aAAa,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YAAE,OAAO,GAAG,cAAc,CAAC;;YACpH,OAAO,GAAG,SAAS,CAAC;QAEzB,MAAM,IAAI,GACR,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YAC9E,CAAC,CAAC,kBAAkB,aAAa,mDAAmD;YACpF,CAAC,CAAC,EAAE,CAAC;QACT,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC5E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,yBAAyB,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAClJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,MAAqB,EAAE,IAAY,EAAE,MAAc;IACjF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,gBAAgB,CAAC,CAAC;QACrF,MAAM,aAAa,GAAG,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAChE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC7H,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,yBAAyB,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAC9J,CAAC;AACH,CAAC;AAgCD,SAAS,eAAe,CAAC,IAAY;IACnC,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAGnD,CAAC;QACF,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC;QACtG,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,GAAoB,EAAE,GAAW;IAChE,IAAI,OAAe,CAAC;IACpB,IAAI,aAA4B,CAAC;IACjC,IAAI,CAAC;QACH,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,IAAA,uBAAa,EAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;IACpI,CAAC;IACD,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,2DAA2D,EAAE,CAAC;IACzK,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAmB,KAAK,EAAE,GAAG,2BAAiB,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjH,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC;QACxD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC;QACnC,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,0EAA0E,EAAE,CAAC;QAC/K,CAAC;QACD,OAAO,cAAc,GAAG,aAAa;YACnC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE;YAC5F,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC3F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,qFAAqF;QACrF,2FAA2F;QAC3F,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;IAC5H,CAAC;AACH,CAAC;AAED,kGAAkG;AAC3F,KAAK,UAAU,gBAAgB,CAAC,GAAW,EAAE,MAAwB;IAC1E,MAAM,YAAY,GAAG,kCAAwB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,oBAAU,EAAC,CAAC,CAAC,CAAC,CAAC;IACtG,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC1E,IAAI,YAAY,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAE5D,MAAM,aAAa,GACjB,YAAY,KAAK,IAAI;QACrB,QAAQ,KAAK,IAAI;QACjB,CAAC,YAAY,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/F,MAAM,KAAK,GAAG,IAAA,wBAAe,GAAE,CAAC;IAChC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,cAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,cAAQ,CAAC,wBAAe,CAAC,CAAC,CAAC;IAC/F,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACjF,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AACjC,CAAC;AAsBD,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAA8B,CAAC;QACnF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;YAAE,OAAO,IAAI,CAAC;QACpD,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACrC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,SAAS;YAC9C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,GAA+D,CAAC;YACnG,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ;gBAAE,SAAS;YACzE,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,GAAoB,EAAE,KAAwB;IAC9E,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IAC3F,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAmB,KAAK,EAAE,GAAG,2BAAiB,IAAI,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACvH,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC;QACxD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC;QACnC,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,OAAO,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,0EAA0E,EAAE,CAAC;QAC3J,CAAC;QACD,OAAO,cAAc,GAAG,KAAK,CAAC,OAAO;YACnC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE;YACxE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACvE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,8FAA8F;QAC9F,sFAAsF;QACtF,OAAO,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;IACxG,CAAC;AACH,CAAC;AAED,kGAAkG;AAC3F,KAAK,UAAU,iBAAiB,CAAC,GAAW,EAAE,MAAwB;IAC3E,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAC3E,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAA,wBAAe,GAAE,CAAC;IAChC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,cAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,cAAQ,CAAC,wBAAe,CAAC,CAAC,CAAC;IAC/F,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;AA8BD,SAAS,0BAA0B,CAAC,IAAY;IAC9C,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAA4B,CAAC;QACjF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoE,CAAC;QAC5F,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,SAAS;YAC9C,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,GAAsF,CAAC;YACvI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ;gBAAE,SAAS;YAClG,MAAM,QAAQ,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1F,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,EAAE,IAAI,OAAO,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,QAAQ;gBAAE,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC;;gBACjC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QACpG,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,GAAoB,EAAE,KAAiC,EAAE,SAAiB;IAC5G,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,gBAAgB,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;IAChG,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAA0B,KAAK,EAAE,2BAA2B,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChI,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC;QACzC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC;QAC3E,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,UAAU,CAAC,CAAC,CAA6B,CAAC,CAAC,CAAC,IAAI,CAAC;QAClJ,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;YACpI,OAAO,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,8EAA8E,EAAE,CAAC;QAC/J,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;YACpC,OAAO,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACjG,CAAC;QACD,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,cAAc,EAAE,CAAC;YACxF,OAAO,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,gFAAgF,EAAE,CAAC;QAC9K,CAAC;QACD,OAAO,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACzF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;IACxG,CAAC;AACH,CAAC;AAED,0GAA0G;AACnG,KAAK,UAAU,mBAAmB,CAAC,GAAW,EAAE,MAAwB;IAC7E,MAAM,OAAO,GAAG,0BAA0B,CAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,qBAAqB,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC/F,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAA,wBAAe,GAAE,CAAC;IAChC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,cAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,cAAQ,CAAC,wBAAe,CAAC,CAAC,CAAC;IAC/F,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,oBAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AACzG,CAAC;AAuBD,kGAAkG;AAClG,iGAAiG;AACjG,SAAgB,sBAAsB,CAAC,GAAW,EAAE,MAAe;IACjE,MAAM,YAAY,GAAG,kCAAwB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,oBAAU,EAAC,CAAC,CAAC,CAAC,CAAC;IACtG,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,IAAI,OAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,YAAY,EAAE,MAAM,CAAC,CAAyC,CAAC;QACxG,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnD,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAiB,EAAE;QAC9C,MAAM,CAAC,GAAG,IAAA,gBAAI,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACzB,OAAO,IAAA,oBAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,sBAAY,EAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC9C,MAAM,gBAAgB,GAAG,UAAU,KAAK,IAAI,IAAI,IAAA,+CAAqC,EAAC,UAAU,CAAC,CAAC;IAClG,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC1C,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAE9F,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAA,gBAAI,EAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACtE,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO;YACL,MAAM,EAAE,CAAC,0GAA0G,CAAC;YACpH,QAAQ,EAAE,IAAI;YACd,iBAAiB,EAAE,KAAK;YACxB,gBAAgB;YAChB,cAAc;SACf,CAAC;IACJ,CAAC;IACD,IAAI,UAAmB,CAAC;IACxB,IAAI,CAAC;QACH,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,CAAC,6CAA6C,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;IAChJ,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,gDAA+B,EAAC;QAC9C,UAAU;QACV,eAAe,EAAE,OAAO;QACxB,SAAS,EAAE,IAAI;QACf,wBAAwB,EAAE,MAAM,IAAI,IAAA,wBAAe,GAAE,EAAE,MAAM,IAAI,wBAAe;KACjF,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;AAC3H,CAAC;AAED,+FAA+F;AAC/F,6FAA6F;AACtF,KAAK,UAAU,mBAAmB,CAAC,GAAW,EAAE,MAAsB;IAC3E,MAAM,YAAY,GAAG,kCAAwB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,oBAAU,EAAC,CAAC,CAAC,CAAC,CAAC;IACtG,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAE/B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,YAAY,EAAE,MAAM,CAAC,CAAyC,CAAC;IACxG,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;IAEpC,MAAM,QAAQ,GAAG,IAAA,gBAAI,EAAC,GAAG,EAAE,kBAAQ,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,IAAA,oBAAU,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAe,CAAC,CAAC,CAAC,IAAI,CAAC;IACrG,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAErF,4FAA4F;IAC5F,8FAA8F;IAC9F,8BAA8B;IAC9B,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,IAAA,qBAAW,EAAC,IAAA,wBAAe,GAAE,EAAE,MAAM,IAAI,wBAAe,CAAC,CAAC,CAAC;IAEtF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7B,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QAC3G,GAAG,wBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;KACvG,CAAC,CAAC;IAEH,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACjC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -566,6 +566,38 @@ program
|
|
|
566
566
|
: `✖ ${err instanceof Error ? err.message : String(err)}`);
|
|
567
567
|
}
|
|
568
568
|
});
|
|
569
|
+
program
|
|
570
|
+
.command('update-interactable')
|
|
571
|
+
.description('Re-resolve an installed Marketplace interactable and move its instances to the current bundle in place (same namespace, same placement)')
|
|
572
|
+
.argument('<slug-or-item-id>', 'Marketplace item slug or UUID')
|
|
573
|
+
.option('-C, --world <dir>', 'world project directory', '.')
|
|
574
|
+
.action(async (ref, opts) => {
|
|
575
|
+
try {
|
|
576
|
+
const credentials = (0, config_1.loadCredentials)() ?? undefined;
|
|
577
|
+
const result = await (0, lib_1.updateInteractable)((0, node_path_1.resolve)(opts.world), ref, {
|
|
578
|
+
credentials,
|
|
579
|
+
onProgress: (message) => console.log(message),
|
|
580
|
+
});
|
|
581
|
+
if (result.noOp) {
|
|
582
|
+
console.log(`✔ Already current: ${result.id}@${result.version}`);
|
|
583
|
+
return;
|
|
584
|
+
}
|
|
585
|
+
console.log(`✔ Updated ${result.id} ${result.fromVersions.join(', ')} → ${result.version} (${result.instances} instance${result.instances === 1 ? '' : 's'}, namespaces preserved)`);
|
|
586
|
+
console.log(` bundle: ${result.destination}`);
|
|
587
|
+
console.log(` server: ${result.manifestPath}`);
|
|
588
|
+
console.log(' composition caps:');
|
|
589
|
+
for (const name of ['rules', 'roomVars', 'playerVars', 'timers', 'phases', 'zones', 'events', 'actions']) {
|
|
590
|
+
console.log(` ${name}: ${result.caps[name]}/${result.caps.limits[name]} (${result.caps.percentages[name]}%)`);
|
|
591
|
+
}
|
|
592
|
+
for (const warning of result.warnings)
|
|
593
|
+
console.warn(` ! ${warning}`);
|
|
594
|
+
}
|
|
595
|
+
catch (err) {
|
|
596
|
+
fail(err instanceof lib_1.ApiError
|
|
597
|
+
? err.render()
|
|
598
|
+
: `✖ ${err instanceof Error ? err.message : String(err)}`);
|
|
599
|
+
}
|
|
600
|
+
});
|
|
569
601
|
// --- helix item ------------------------------------------------------------
|
|
570
602
|
// Universal items (wearables, avatars, home items) uploaded straight from a DCC
|
|
571
603
|
// export — the surface Helix Studio drives. Publishing an item is not
|
|
@@ -3375,6 +3407,31 @@ function formatWeaponPinRow(row) {
|
|
|
3375
3407
|
return ` ? ${row.pin}: ${row.note}`;
|
|
3376
3408
|
}
|
|
3377
3409
|
}
|
|
3410
|
+
function formatVaultAssetRow(row) {
|
|
3411
|
+
const label = row.title ? `${row.title} (${row.assetId.slice(0, 8)}…)` : row.assetId;
|
|
3412
|
+
switch (row.finding) {
|
|
3413
|
+
case 'current':
|
|
3414
|
+
return ` ✔ ${label}: installed @${row.installedVersion} (current)`;
|
|
3415
|
+
case 'newer-version':
|
|
3416
|
+
return ` ⬆ ${label}: installed @${row.installedVersion} → @${row.currentVersion} in the Vault — optional; adopt with: helix assets install ${row.assetId} (the bundled copy keeps working meanwhile)`;
|
|
3417
|
+
case 'unresolved':
|
|
3418
|
+
return ` ⚠ ${row.assetId}: does not resolve against this backend (${row.note}) — the bundled copy keeps working; reinstalls need the backend it came from`;
|
|
3419
|
+
}
|
|
3420
|
+
}
|
|
3421
|
+
function formatInteractableRow(row) {
|
|
3422
|
+
const name = row.title ? `${row.title} (${row.id})` : row.id;
|
|
3423
|
+
const label = row.instances > 1 ? `${name} ×${row.instances}` : name;
|
|
3424
|
+
switch (row.finding) {
|
|
3425
|
+
case 'current':
|
|
3426
|
+
return ` ✔ ${label}: installed ${row.installedVersion} (current)`;
|
|
3427
|
+
case 'reference-moved':
|
|
3428
|
+
return ` ⬆ ${label}: installed ${row.installedVersion} but the Marketplace item now references ${row.currentVersion} — optional; adopt in place with: helix update-interactable ${row.itemId} (same namespace, same placement)`;
|
|
3429
|
+
case 'checksum-drift':
|
|
3430
|
+
return ` ⚠ ${label}: the Marketplace still references ${row.installedVersion} but its bundle checksum changed — ${row.note}`;
|
|
3431
|
+
case 'unresolved':
|
|
3432
|
+
return ` ⚠ ${label}: ${row.note} — the installed copy keeps working`;
|
|
3433
|
+
}
|
|
3434
|
+
}
|
|
3378
3435
|
function formatWorldSystemRow(row) {
|
|
3379
3436
|
const withNote = (line) => (row.note ? `${line} — ${row.note}` : line);
|
|
3380
3437
|
switch (row.finding) {
|
|
@@ -3571,9 +3628,28 @@ program
|
|
|
3571
3628
|
console.log(formatWorldSystemRow(row));
|
|
3572
3629
|
}
|
|
3573
3630
|
}
|
|
3631
|
+
const platform = (0, lib_1.assessPlatformDelivery)((0, node_path_1.resolve)(opts.project));
|
|
3632
|
+
if (platform) {
|
|
3633
|
+
console.log('\nPlatform runtime delivery (the publish gate, run against the source tree):');
|
|
3634
|
+
if (platform.errors.length === 0) {
|
|
3635
|
+
console.log(` ✔ delivery: ${platform.delivery} — helix.json, helix.runtime.json and the index.html import map agree`);
|
|
3636
|
+
}
|
|
3637
|
+
else {
|
|
3638
|
+
for (const err of platform.errors)
|
|
3639
|
+
console.log(` ✖ ${err}`);
|
|
3640
|
+
}
|
|
3641
|
+
if (!platform.viteExternalizes) {
|
|
3642
|
+
console.log(' ⚠ vite.config.ts does not route @helix/ specifiers external — the build bundles the platform runtime and publish will refuse it; see the MCP upgrades guide');
|
|
3643
|
+
}
|
|
3644
|
+
if (!platform.markersPresent) {
|
|
3645
|
+
console.log(' ⚠ index.html lacks the <!-- helix:three:start/end --> markers — helix install cannot write the import map');
|
|
3646
|
+
}
|
|
3647
|
+
}
|
|
3648
|
+
// Item findings are a separate consent lane from system pins: updating systems does not imply
|
|
3649
|
+
// updating items, so these sections are always framed as optional.
|
|
3574
3650
|
const weaponPins = await (0, lib_1.assessWeaponPins)((0, node_path_1.resolve)(opts.project));
|
|
3575
3651
|
if (weaponPins) {
|
|
3576
|
-
console.log('\nWeapon definition pins (multiplayer.weaponItems):');
|
|
3652
|
+
console.log('\nWeapon definition pins (multiplayer.weaponItems — updates are optional):');
|
|
3577
3653
|
if (weaponPins.copiesDiverge) {
|
|
3578
3654
|
console.log(' ⚠ helix.json and public/multiplayer.json declare DIFFERENT weaponItems — the room fetches public/multiplayer.json, publish validates helix.json; sync them first');
|
|
3579
3655
|
}
|
|
@@ -3581,6 +3657,20 @@ program
|
|
|
3581
3657
|
console.log(formatWeaponPinRow(row));
|
|
3582
3658
|
}
|
|
3583
3659
|
}
|
|
3660
|
+
const vaultAssets = await (0, lib_1.assessVaultAssets)((0, node_path_1.resolve)(opts.project));
|
|
3661
|
+
if (vaultAssets) {
|
|
3662
|
+
console.log('\nInstalled Vault assets (public/helix.assets.json — updates are optional):');
|
|
3663
|
+
for (const row of vaultAssets) {
|
|
3664
|
+
console.log(formatVaultAssetRow(row));
|
|
3665
|
+
}
|
|
3666
|
+
}
|
|
3667
|
+
const interactables = await (0, lib_1.assessInteractables)((0, node_path_1.resolve)(opts.project));
|
|
3668
|
+
if (interactables) {
|
|
3669
|
+
console.log('\nInstalled interactables (helix_interactables/installed.json — updates are optional):');
|
|
3670
|
+
for (const row of interactables) {
|
|
3671
|
+
console.log(formatInteractableRow(row));
|
|
3672
|
+
}
|
|
3673
|
+
}
|
|
3584
3674
|
});
|
|
3585
3675
|
// ---- Unknown subcommands must ERROR, not print the full command list -------
|
|
3586
3676
|
//
|