@bitmagic/cli 0.1.56-dev.0 → 0.1.56
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/cli.js +15 -27
- package/dist/cli.js.map +1 -1
- package/dist/commands/generate.d.ts +8 -9
- package/dist/commands/generate.js +50 -28
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/ios.js +25 -28
- package/dist/commands/ios.js.map +1 -1
- package/dist/commands/judge.d.ts +0 -2
- package/dist/commands/judge.js +6 -6
- package/dist/commands/judge.js.map +1 -1
- package/dist/commands/publish.js +6 -0
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/verify.js +11 -23
- package/dist/commands/verify.js.map +1 -1
- package/dist/generate/model.d.ts +2 -2
- package/dist/generate/model.js +19 -62
- package/dist/generate/model.js.map +1 -1
- package/dist/generate/prop.d.ts +37 -11
- package/dist/generate/prop.js +97 -105
- package/dist/generate/prop.js.map +1 -1
- package/dist/generate/stream.d.ts +13 -0
- package/dist/generate/stream.js +17 -1
- package/dist/generate/stream.js.map +1 -1
- package/dist/ios/app-config.js +4 -3
- package/dist/ios/app-config.js.map +1 -1
- package/dist/ios/collect-urls.js +25 -35
- package/dist/ios/collect-urls.js.map +1 -1
- package/dist/ios/icon.js +2 -5
- package/dist/ios/icon.js.map +1 -1
- package/dist/ios/local-server.d.ts +1 -1
- package/dist/ios/local-server.js +3 -3
- package/dist/ios/local-server.js.map +1 -1
- package/dist/ios/transform.js +1 -5
- package/dist/ios/transform.js.map +1 -1
- package/dist/ios/xcode-template.js +1 -1
- package/dist/ios/xcode-template.js.map +1 -1
- package/dist/publish/categories.d.ts +20 -0
- package/dist/publish/categories.js +50 -0
- package/dist/publish/categories.js.map +1 -0
- package/dist/publish/client.d.ts +7 -0
- package/dist/publish/client.js.map +1 -1
- package/dist/scaffold/project-files.js +8 -2
- package/dist/scaffold/project-files.js.map +1 -1
- package/dist/verify/browser.js +147 -168
- package/dist/verify/browser.js.map +1 -1
- package/dist/verify/check-options.d.ts +32 -0
- package/dist/verify/check-options.js +23 -0
- package/dist/verify/check-options.js.map +1 -0
- package/dist/verify/classify.js +2 -2
- package/dist/verify/classify.js.map +1 -1
- package/dist/verify/iterate.d.ts +2 -21
- package/dist/verify/iterate.js +3 -14
- package/dist/verify/iterate.js.map +1 -1
- package/package.json +4 -4
package/dist/generate/prop.js
CHANGED
|
@@ -51,6 +51,7 @@ import { applyModificationsToWorld } from '../forge/apply-modifications.js';
|
|
|
51
51
|
import { projectWorldJsonPath } from '../forge/run-pipeline.js';
|
|
52
52
|
import { VOXELIZE_TIMEOUT_MS, withVoxelizeSession } from '../forge/voxelize-session.js';
|
|
53
53
|
import { requestGeneration } from './stream.js';
|
|
54
|
+
import { isJsonObject, readWorldJson } from '../project/world-json.js';
|
|
54
55
|
/**
|
|
55
56
|
* Bake resolution. Taken from the HQ job rather than re-derived: these two values are what the
|
|
56
57
|
* web lane has always produced HQ assets at, and a project should not get a different-looking
|
|
@@ -93,21 +94,6 @@ export function engineSupportsVxlMaster(projectRoot) {
|
|
|
93
94
|
export function messageOf(error) {
|
|
94
95
|
return error instanceof Error ? error.message : String(error);
|
|
95
96
|
}
|
|
96
|
-
function isRecord(value) {
|
|
97
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
98
|
-
}
|
|
99
|
-
function readWorld(worldPath) {
|
|
100
|
-
let parsed;
|
|
101
|
-
try {
|
|
102
|
-
parsed = JSON.parse(fs.readFileSync(worldPath, 'utf-8'));
|
|
103
|
-
}
|
|
104
|
-
catch {
|
|
105
|
-
throw new CliError(`Cannot read ${worldPath}. Is this a Bitmagic project?`);
|
|
106
|
-
}
|
|
107
|
-
if (!isRecord(parsed))
|
|
108
|
-
throw new CliError(`${worldPath} does not contain a world object.`);
|
|
109
|
-
return parsed;
|
|
110
|
-
}
|
|
111
97
|
/**
|
|
112
98
|
* The asset this command upgrades, with the `fitBox` the bake has to be constrained to.
|
|
113
99
|
*
|
|
@@ -118,13 +104,13 @@ function readWorld(worldPath) {
|
|
|
118
104
|
*/
|
|
119
105
|
export function findPropAsset(world, assetId) {
|
|
120
106
|
const assets = Array.isArray(world.assets) ? world.assets : [];
|
|
121
|
-
const asset = assets.find((item) =>
|
|
122
|
-
if (!
|
|
107
|
+
const asset = assets.find((item) => isJsonObject(item) && item.id === assetId);
|
|
108
|
+
if (!isJsonObject(asset)) {
|
|
123
109
|
throw new CliError(`No asset with id "${assetId}" in this project's world.json. `
|
|
124
110
|
+ 'Check the id — the editor puts it in the command it journals.');
|
|
125
111
|
}
|
|
126
112
|
const fitBox = asset.fitBox;
|
|
127
|
-
if (!
|
|
113
|
+
if (!isJsonObject(fitBox)
|
|
128
114
|
|| typeof fitBox.x !== 'number' || typeof fitBox.z !== 'number' || typeof fitBox.height !== 'number') {
|
|
129
115
|
throw new CliError(`Asset "${assetId}" has no fitBox, so there is no size to voxelize it to. `
|
|
130
116
|
+ 'Only forge-baked assets can be regenerated this way.');
|
|
@@ -134,7 +120,7 @@ export function findPropAsset(world, assetId) {
|
|
|
134
120
|
/** Placed instances pointing at this asset — reported so the caller sees the blast radius. */
|
|
135
121
|
function countInstances(world, assetId) {
|
|
136
122
|
const objects = Array.isArray(world.environmentObjects) ? world.environmentObjects : [];
|
|
137
|
-
return objects.filter((item) =>
|
|
123
|
+
return objects.filter((item) => isJsonObject(item) && item.assetId === assetId).length;
|
|
138
124
|
}
|
|
139
125
|
/**
|
|
140
126
|
* Building-scale boxes voxelize hollow (a closed shell); prop-scale fills solid. Same thresholds
|
|
@@ -144,100 +130,53 @@ function countInstances(world, assetId) {
|
|
|
144
130
|
export function shouldFillInterior(fitBox) {
|
|
145
131
|
return !(fitBox.height > 6 || fitBox.x * fitBox.z > 40);
|
|
146
132
|
}
|
|
133
|
+
function generationBody(request) {
|
|
134
|
+
return {
|
|
135
|
+
gameId: request.gameId,
|
|
136
|
+
prompt: request.prompt,
|
|
137
|
+
...(request.creatorPrompt !== undefined ? { creatorPrompt: request.creatorPrompt } : {}),
|
|
138
|
+
};
|
|
139
|
+
}
|
|
147
140
|
/**
|
|
148
|
-
*
|
|
149
|
-
* editor's "Generate high-quality version" button. Shared rather than duplicated — the editor
|
|
150
|
-
* running a materially different flow from the command it also prints would be a trap.
|
|
141
|
+
* Whether to ask for voxels at all.
|
|
151
142
|
*
|
|
152
|
-
*
|
|
153
|
-
*
|
|
143
|
+
* Says out loud when a vendored engine too old to bake a master is what put this run on the mesh
|
|
144
|
+
* path: that is the one way onto it without asking for it. Every other route announces itself, and
|
|
145
|
+
* a creator reading docs about a voxel asset has nothing else to connect them to what they got.
|
|
154
146
|
*/
|
|
155
|
-
export
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
log(`Reusing the mesh at ${options.glbUrl} — skipping generation.`);
|
|
164
|
-
const reused = await voxelizeAndInstall({
|
|
165
|
-
context, environment, token, assetId, prompt,
|
|
166
|
-
source: { kind: 'glb', glbUrl: options.glbUrl },
|
|
167
|
-
log, ...(options.session ? { session: options.session } : {}),
|
|
168
|
-
});
|
|
169
|
-
return { ...reused, glbUrl: options.glbUrl };
|
|
170
|
-
}
|
|
171
|
-
// The same, for the voxel path. Both retries exist so that a bake failure after a PAID
|
|
172
|
-
// generation costs the browser step again and not the generation.
|
|
173
|
-
if (options.masterUrl !== undefined) {
|
|
174
|
-
log(`Reusing the voxel master at ${options.masterUrl} — skipping generation.`);
|
|
175
|
-
const reused = await voxelizeAndInstall({
|
|
176
|
-
context, environment, token, assetId, prompt,
|
|
177
|
-
source: { kind: 'master', masterUrl: options.masterUrl },
|
|
178
|
-
log, ...(options.session ? { session: options.session } : {}),
|
|
179
|
-
});
|
|
180
|
-
return { ...reused, masterUrl: options.masterUrl };
|
|
181
|
-
}
|
|
182
|
-
if (options.mesh !== true) {
|
|
183
|
-
// Said out loud, because it is the one way to end up on the mesh path without asking for it.
|
|
184
|
-
// Every other route here announces itself, and a creator whose docs describe a voxel asset
|
|
185
|
-
// has nothing else to connect that to what they got.
|
|
186
|
-
if (!engineSupportsVxlMaster(context.root)) {
|
|
187
|
-
log('This project\'s vendored engine cannot bake a voxel master — using the mesh path. '
|
|
188
|
-
+ 'Run `bitmagic upgrade` to get the newer engine.');
|
|
189
|
-
}
|
|
190
|
-
else {
|
|
191
|
-
const viaVoxels = await tryVoxelMasterPath({ ...options, fetchImpl });
|
|
192
|
-
if (viaVoxels)
|
|
193
|
-
return viaVoxels;
|
|
194
|
-
// Only a GENERATION failure falls through — a bake failure throws out of tryVoxelMasterPath,
|
|
195
|
-
// because re-generating would pay twice for a source we already have.
|
|
196
|
-
log('Falling back to the mesh path.');
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
const outcome = await requestGeneration(environment, token, MESH_GENERATOR_TYPE, { gameId: context.metadata.gameId, prompt, ...(options.creatorPrompt !== undefined ? { creatorPrompt: options.creatorPrompt } : {}) }, { fetch: fetchImpl, onProgress: log });
|
|
200
|
-
if (!outcome.success)
|
|
201
|
-
throw new CliError(`${outcome.message} world.json is unchanged.`);
|
|
202
|
-
if (!outcome.glbUrl) {
|
|
203
|
-
throw new CliError('The generator reported success but returned no mesh. world.json is unchanged.');
|
|
204
|
-
}
|
|
205
|
-
const glbUrl = outcome.glbUrl;
|
|
206
|
-
log(`Mesh generated: ${glbUrl}`);
|
|
207
|
-
const result = await voxelizeAndInstall({
|
|
208
|
-
context, environment, token, assetId, prompt,
|
|
209
|
-
source: { kind: 'glb', glbUrl },
|
|
210
|
-
log, ...(options.session ? { session: options.session } : {}),
|
|
211
|
-
});
|
|
212
|
-
return { ...result, glbUrl };
|
|
147
|
+
export function shouldTryVoxelPath(projectRoot, mesh, log) {
|
|
148
|
+
if (mesh)
|
|
149
|
+
return false;
|
|
150
|
+
if (engineSupportsVxlMaster(projectRoot))
|
|
151
|
+
return true;
|
|
152
|
+
log('This project\'s vendored engine cannot bake a voxel master — using the mesh path. '
|
|
153
|
+
+ 'Run `bitmagic upgrade` to get the newer engine.');
|
|
154
|
+
return false;
|
|
213
155
|
}
|
|
214
156
|
/**
|
|
215
|
-
*
|
|
157
|
+
* Ask for a voxel master, or null when the GENERATION failed and the mesh path is worth trying.
|
|
216
158
|
*
|
|
217
|
-
*
|
|
218
|
-
*
|
|
219
|
-
* kept", not another generation.
|
|
220
|
-
* `--glb-url`.
|
|
159
|
+
* Only a generation failure comes back as null. What the caller does with the master — the bake —
|
|
160
|
+
* throws on its own, because the master exists and was paid for, so the useful answer there is
|
|
161
|
+
* "here is what is kept", not another generation.
|
|
221
162
|
*/
|
|
222
|
-
async function
|
|
223
|
-
const {
|
|
163
|
+
export async function requestVoxelMaster(request, voxelGrid) {
|
|
164
|
+
const { environment, token, fetchImpl, log } = request;
|
|
224
165
|
let outcome;
|
|
225
166
|
try {
|
|
226
167
|
outcome = await requestGeneration(environment, token, VOXEL_GENERATOR_TYPE, {
|
|
227
|
-
|
|
228
|
-
prompt,
|
|
168
|
+
...generationBody(request),
|
|
229
169
|
// Only on this request. `prop`'s schema is `.strict()` like every asset-core schema, so a
|
|
230
|
-
// `grid` on the
|
|
231
|
-
grid:
|
|
232
|
-
...(options.creatorPrompt !== undefined ? { creatorPrompt: options.creatorPrompt } : {}),
|
|
170
|
+
// `grid` left on the shared body would turn the mesh fallback itself into a 400.
|
|
171
|
+
grid: voxelGrid ?? DEFAULT_MASTER_GRID,
|
|
233
172
|
}, { fetch: fetchImpl, onProgress: log });
|
|
234
173
|
}
|
|
235
174
|
catch (error) {
|
|
236
175
|
// A non-2xx THROWS rather than returning an unsuccessful outcome, so catching is not belt and
|
|
237
176
|
// braces — it is the whole fallback for the most likely failure of all. An api-server that
|
|
238
|
-
// does not know `prop-voxel` answers 400, which is exactly what a
|
|
239
|
-
//
|
|
240
|
-
//
|
|
177
|
+
// does not know `prop-voxel` answers 400, which is exactly what a deployment looks like before
|
|
178
|
+
// this feature reaches it. Without this the command would die there instead of doing what it
|
|
179
|
+
// has always done.
|
|
241
180
|
log(`Direct voxel generation is unavailable (${messageOf(error)}).`);
|
|
242
181
|
return null;
|
|
243
182
|
}
|
|
@@ -251,12 +190,65 @@ async function tryVoxelMasterPath(options) {
|
|
|
251
190
|
return null;
|
|
252
191
|
}
|
|
253
192
|
log(`Voxels generated: ${masterUrl}`);
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
193
|
+
return masterUrl;
|
|
194
|
+
}
|
|
195
|
+
/** Ask for a mesh. There is no further source to fall back to, so every failure throws. */
|
|
196
|
+
export async function requestMesh(request) {
|
|
197
|
+
const outcome = await requestGeneration(request.environment, request.token, MESH_GENERATOR_TYPE, generationBody(request), { fetch: request.fetchImpl, onProgress: request.log });
|
|
198
|
+
if (!outcome.success)
|
|
199
|
+
throw new CliError(`${outcome.message} world.json is unchanged.`);
|
|
200
|
+
if (!outcome.glbUrl) {
|
|
201
|
+
throw new CliError('The generator reported success but returned no mesh. world.json is unchanged.');
|
|
202
|
+
}
|
|
203
|
+
request.log(`Mesh generated: ${outcome.glbUrl}`);
|
|
204
|
+
return outcome.glbUrl;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* All three steps, for the two callers that want the whole job: `bitmagic generate prop` and the
|
|
208
|
+
* editor's "Generate high-quality version" button. Shared rather than duplicated — the editor
|
|
209
|
+
* running a materially different flow from the command it also prints would be a trap.
|
|
210
|
+
*
|
|
211
|
+
* Everything the caller must resolve first (project, environment, token) is a parameter, so this
|
|
212
|
+
* stays free of CLI output plumbing and of how the token was obtained.
|
|
213
|
+
*/
|
|
214
|
+
export async function generateAndInstallProp(options) {
|
|
215
|
+
const { context, environment, token, assetId, prompt, log } = options;
|
|
216
|
+
// Before anything is spent: a mistyped id or an asset with no fitBox costs nothing.
|
|
217
|
+
findPropAsset(readWorldJson(projectWorldJsonPath(context.root)), assetId);
|
|
218
|
+
const bake = (source) => voxelizeAndInstall({
|
|
219
|
+
context, environment, token, assetId, prompt, source, log,
|
|
220
|
+
...(options.session ? { session: options.session } : {}),
|
|
258
221
|
});
|
|
259
|
-
|
|
222
|
+
// Both retry flags skip generation entirely and bake what the caller already has in hand, so
|
|
223
|
+
// that a bake failure after a PAID generation costs the browser step again and not the
|
|
224
|
+
// generation. `--glb-url` is therefore always the mesh path, and `--master-url` the voxel one.
|
|
225
|
+
if (options.glbUrl !== undefined) {
|
|
226
|
+
log(`Reusing the mesh at ${options.glbUrl} — skipping generation.`);
|
|
227
|
+
return { ...(await bake({ kind: 'glb', glbUrl: options.glbUrl })), glbUrl: options.glbUrl };
|
|
228
|
+
}
|
|
229
|
+
if (options.masterUrl !== undefined) {
|
|
230
|
+
log(`Reusing the voxel master at ${options.masterUrl} — skipping generation.`);
|
|
231
|
+
return { ...(await bake({ kind: 'master', masterUrl: options.masterUrl })), masterUrl: options.masterUrl };
|
|
232
|
+
}
|
|
233
|
+
const request = {
|
|
234
|
+
environment,
|
|
235
|
+
token,
|
|
236
|
+
gameId: context.metadata.gameId,
|
|
237
|
+
prompt,
|
|
238
|
+
fetchImpl: options.fetchImpl ?? globalThis.fetch,
|
|
239
|
+
log,
|
|
240
|
+
...(options.creatorPrompt !== undefined ? { creatorPrompt: options.creatorPrompt } : {}),
|
|
241
|
+
};
|
|
242
|
+
if (shouldTryVoxelPath(context.root, options.mesh === true, log)) {
|
|
243
|
+
const masterUrl = await requestVoxelMaster(request, options.voxelGrid);
|
|
244
|
+
if (masterUrl)
|
|
245
|
+
return { ...(await bake({ kind: 'master', masterUrl })), masterUrl };
|
|
246
|
+
// Only a GENERATION failure falls through — a bake failure throws out of `bake` above, because
|
|
247
|
+
// re-generating would pay twice for a source we already have.
|
|
248
|
+
log('Falling back to the mesh path.');
|
|
249
|
+
}
|
|
250
|
+
const glbUrl = await requestMesh(request);
|
|
251
|
+
return { ...(await bake({ kind: 'glb', glbUrl })), glbUrl };
|
|
260
252
|
}
|
|
261
253
|
/**
|
|
262
254
|
* Steps 2 and 3. Split from the command so the browser work is callable directly on a retry that
|
|
@@ -266,7 +258,7 @@ export async function voxelizeAndInstall(options) {
|
|
|
266
258
|
const { context, environment, token, assetId, prompt, source, log } = options;
|
|
267
259
|
const runSession = options.session ?? withVoxelizeSession;
|
|
268
260
|
const worldPath = projectWorldJsonPath(context.root);
|
|
269
|
-
const world =
|
|
261
|
+
const world = readWorldJson(worldPath);
|
|
270
262
|
const { asset, fitBox } = findPropAsset(world, assetId);
|
|
271
263
|
const assetName = typeof asset.name === 'string' ? asset.name : assetId;
|
|
272
264
|
// What was generated, what it cost, and how to reuse it — the three things every failure below
|
|
@@ -323,7 +315,7 @@ export async function voxelizeAndInstall(options) {
|
|
|
323
315
|
if (!result) {
|
|
324
316
|
throw new CliError(`Baking "${assetName}" timed out. ${kept.what}${kept.retry}`);
|
|
325
317
|
}
|
|
326
|
-
if (result.success === false || !
|
|
318
|
+
if (result.success === false || !isJsonObject(result.asset)) {
|
|
327
319
|
const reason = typeof result.error === 'string' ? result.error : 'unknown error';
|
|
328
320
|
throw new CliError(`Baking "${assetName}" failed: ${reason}. ${kept.what}.`);
|
|
329
321
|
}
|
|
@@ -343,7 +335,7 @@ export async function voxelizeAndInstall(options) {
|
|
|
343
335
|
const modification = {
|
|
344
336
|
type: 'upsertRoot',
|
|
345
337
|
path: ['assets'],
|
|
346
|
-
predicate: (item) =>
|
|
338
|
+
predicate: (item) => isJsonObject(item) && item.id === assetId,
|
|
347
339
|
value: upgraded,
|
|
348
340
|
};
|
|
349
341
|
applyModificationsToWorld(worldPath, [modification]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prop.js","sourceRoot":"","sources":["../../src/generate/prop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"prop.js","sourceRoot":"","sources":["../../src/generate/prop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
import type { WorldPatch } from '@bitmagic/asset-core';
|
|
2
2
|
import type { Environment } from '../config/environments.js';
|
|
3
3
|
export { parseSseChunks, type SseEvent } from '../http/sse.js';
|
|
4
|
+
/** Which ready-made body a `character` call used instead of making one. */
|
|
5
|
+
export interface LibraryOutcome {
|
|
6
|
+
/** Corpus id, e.g. `b0009` — what makes the pick auditable and repeatable. */
|
|
7
|
+
sid: string;
|
|
8
|
+
/** Cosine similarity to the prompt, 0-1. */
|
|
9
|
+
similarity: number;
|
|
10
|
+
}
|
|
4
11
|
export interface GenerationOutcome {
|
|
5
12
|
success: boolean;
|
|
6
13
|
message: string;
|
|
7
14
|
patches: WorldPatch[];
|
|
15
|
+
/**
|
|
16
|
+
* Only the `character` type sets this, and only when the character came from
|
|
17
|
+
* the ready-made library rather than being forged. Its absence means "made for
|
|
18
|
+
* this game", so nothing else needs a flag to say so.
|
|
19
|
+
*/
|
|
20
|
+
library?: LibraryOutcome;
|
|
8
21
|
/**
|
|
9
22
|
* Only the `prop` and `vehicle` types set this. Those generators produce a mesh rather than a
|
|
10
23
|
* finished asset — the caller voxelizes it in a browser before there is anything to write — so
|
package/dist/generate/stream.js
CHANGED
|
@@ -36,14 +36,29 @@ function asVehicleOutcome(value) {
|
|
|
36
36
|
notes: Array.isArray(notes) ? notes.filter((n) => typeof n === 'string') : [],
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* The library pick, if the server reported one. Same degrade-to-absent rule as
|
|
41
|
+
* `asVehicleOutcome`: a shape we do not recognise reads as "this was forged",
|
|
42
|
+
* which is the safe way to be wrong — it under-claims rather than telling a
|
|
43
|
+
* creator their bespoke character came from a shelf.
|
|
44
|
+
*/
|
|
45
|
+
function asLibraryOutcome(value) {
|
|
46
|
+
if (!isRecord(value))
|
|
47
|
+
return null;
|
|
48
|
+
const { sid, similarity } = value;
|
|
49
|
+
if (typeof sid !== 'string' || typeof similarity !== 'number')
|
|
50
|
+
return null;
|
|
51
|
+
return { sid, similarity };
|
|
52
|
+
}
|
|
39
53
|
function asGenerationOutcome(data) {
|
|
40
54
|
if (!isRecord(data))
|
|
41
55
|
return null;
|
|
42
|
-
const { success, message, patches, glbUrl, masterUrl, imageUrl, vehicle } = data;
|
|
56
|
+
const { success, message, patches, glbUrl, masterUrl, imageUrl, vehicle, library } = data;
|
|
43
57
|
if (typeof success !== 'boolean' || typeof message !== 'string' || !Array.isArray(patches)) {
|
|
44
58
|
return null;
|
|
45
59
|
}
|
|
46
60
|
const vehicleOutcome = asVehicleOutcome(vehicle);
|
|
61
|
+
const libraryOutcome = asLibraryOutcome(library);
|
|
47
62
|
return {
|
|
48
63
|
success,
|
|
49
64
|
message,
|
|
@@ -52,6 +67,7 @@ function asGenerationOutcome(data) {
|
|
|
52
67
|
...(typeof masterUrl === 'string' ? { masterUrl } : {}),
|
|
53
68
|
...(typeof imageUrl === 'string' ? { imageUrl } : {}),
|
|
54
69
|
...(vehicleOutcome ? { vehicle: vehicleOutcome } : {}),
|
|
70
|
+
...(libraryOutcome ? { library: libraryOutcome } : {}),
|
|
55
71
|
};
|
|
56
72
|
}
|
|
57
73
|
async function readJsonBody(response) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/generate/stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACxG,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAQnE,gGAAgG;AAChG,gGAAgG;AAChG,qCAAqC;AACrC,OAAO,EAAE,cAAc,EAAiB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/generate/stream.ts"],"names":[],"mappings":"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"}
|
package/dist/ios/app-config.js
CHANGED
|
@@ -56,9 +56,10 @@ function readConfigFile(configPath) {
|
|
|
56
56
|
if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed))
|
|
57
57
|
return {};
|
|
58
58
|
const record = parsed;
|
|
59
|
-
const str = (key) =>
|
|
60
|
-
|
|
61
|
-
: undefined;
|
|
59
|
+
const str = (key) => {
|
|
60
|
+
const value = record[key];
|
|
61
|
+
return typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
62
|
+
};
|
|
62
63
|
return {
|
|
63
64
|
bundleId: str('bundleId'),
|
|
64
65
|
displayName: str('displayName'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-config.js","sourceRoot":"","sources":["../../src/ios/app-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAA0B,MAAM,oCAAoC,CAAC;AACrG,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AA2BxD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAChE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,QAAQ,CAAC,yCAAyC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,oBAAoB,OAAO,EAAE,CAAC;AACvC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,MAAc;IAC9D,MAAM,OAAO,GAAG,IAAI;SACjB,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;SAC9B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE;SACN,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SACZ,IAAI,EAAE,CAAC;IACV,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,MAAM,EAAE,CAAC;AAClE,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,cAAc,CAAC,MAAY,IAAI,IAAI,EAAE;IACnD,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,OAAO,CACL,GAAG,GAAG,CAAC,cAAc,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,EAAE;UAC5E,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,EAAE,CACzD,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB;IACxC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IACtF,MAAM,MAAM,GAAG,MAAiC,CAAC;IACjD,MAAM,GAAG,GAAG,CAAC,GAAW,EAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"app-config.js","sourceRoot":"","sources":["../../src/ios/app-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAA0B,MAAM,oCAAoC,CAAC;AACrG,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AA2BxD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAChE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,QAAQ,CAAC,yCAAyC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,oBAAoB,OAAO,EAAE,CAAC;AACvC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,MAAc;IAC9D,MAAM,OAAO,GAAG,IAAI;SACjB,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;SAC9B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE;SACN,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SACZ,IAAI,EAAE,CAAC;IACV,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,MAAM,EAAE,CAAC;AAClE,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,cAAc,CAAC,MAAY,IAAI,IAAI,EAAE;IACnD,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,OAAO,CACL,GAAG,GAAG,CAAC,cAAc,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,EAAE;UAC5E,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,EAAE,CACzD,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB;IACxC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IACtF,MAAM,MAAM,GAAG,MAAiC,CAAC;IACjD,MAAM,GAAG,GAAG,CAAC,GAAW,EAAsB,EAAE;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,CAAC,CAAC;IACF,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC;QACzB,WAAW,EAAE,GAAG,CAAC,aAAa,CAAC;QAC/B,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC;QACvB,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC;KACtB,CAAC;AACJ,CAAC;AAED,2FAA2F;AAC3F,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAChC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAC/E,CAAC;QACF,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/D,MAAM,IAAI,GAAI,MAAkC,CAAC,QAAQ,CAAC;QAC1D,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAaD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgC;IAC/D,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAEhD,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QAC/E,MAAM,OAAO,GAAkB,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;QACzE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IACrC,CAAC;IAED,MAAM,WAAW,GACf,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,iBAAiB,OAAO,CAAC,MAAM,EAAE,CAAC;IAE9G,MAAM,WAAW,GAAG,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC;QACzD,WAAW;QACX,WAAW,EAAE,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC;QAC7D,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO;QAChC,WAAW,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC;QACxC,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,WAAW,CAAC,iBAAiB,KAAK,SAAS;YAC7C,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,iBAAiB,EAAE;YAChD,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC"}
|
package/dist/ios/collect-urls.js
CHANGED
|
@@ -133,51 +133,41 @@ export function collectAnimationUrls(assets, worldData, compiledCode) {
|
|
|
133
133
|
urls.add(assets.characterUrls.default);
|
|
134
134
|
urls.add(assets.characterUrls.defaultFallback);
|
|
135
135
|
}
|
|
136
|
-
const referenced = (
|
|
137
|
-
|| (
|
|
138
|
-
|
|
136
|
+
const referenced = (clip) => compiledCode.includes(clip.motionId)
|
|
137
|
+
|| (clip.file !== undefined && compiledCode.includes(clip.file));
|
|
138
|
+
// Each library flattened to clips carrying their own resolved URL, so the active/inactive rule
|
|
139
|
+
// below can be stated once instead of once per library.
|
|
140
|
+
const cdnLibrary = [
|
|
141
|
+
...assets.coreAnimations.map((entry) => ({
|
|
142
|
+
...entry,
|
|
143
|
+
url: `${assets.animationBaseUrl}/${entry.file}`,
|
|
144
|
+
})),
|
|
145
|
+
...assets.meleeWeaponAnimations,
|
|
146
|
+
];
|
|
147
|
+
const generatedLibrary = [
|
|
139
148
|
assets.generatedAnimations,
|
|
140
149
|
assets.generatedMeleeWeaponAnimations,
|
|
141
150
|
assets.generatedRangedWeaponAnimations,
|
|
142
151
|
assets.generatedDirectionalAnimations,
|
|
143
152
|
assets.generatedPostureAnimations,
|
|
144
|
-
];
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
for (const entry of assets.coreAnimations) {
|
|
153
|
-
if (referenced(entry))
|
|
154
|
-
urls.add(`${assets.animationBaseUrl}/${entry.file}`);
|
|
155
|
-
}
|
|
156
|
-
for (const entry of assets.meleeWeaponAnimations) {
|
|
157
|
-
if (referenced(entry))
|
|
158
|
-
urls.add(entry.url);
|
|
159
|
-
}
|
|
153
|
+
].flatMap((pack) => pack.map((entry) => ({ ...entry, url: `${assets.generatedAnimationBaseUrl}/${entry.file}` })));
|
|
154
|
+
const generatedActive = assets.activeLibrary === 'generated';
|
|
155
|
+
const active = generatedActive ? generatedLibrary : cdnLibrary;
|
|
156
|
+
const inactive = generatedActive ? cdnLibrary : generatedLibrary;
|
|
157
|
+
// The active library ships whole — but only to a game that animates a humanoid at all.
|
|
158
|
+
if (needsHumanoid) {
|
|
159
|
+
for (const clip of active)
|
|
160
|
+
urls.add(clip.url);
|
|
160
161
|
}
|
|
161
|
-
|
|
162
|
-
if (
|
|
163
|
-
|
|
164
|
-
urls.add(`${assets.animationBaseUrl}/${entry.file}`);
|
|
165
|
-
for (const entry of assets.meleeWeaponAnimations)
|
|
166
|
-
urls.add(entry.url);
|
|
167
|
-
}
|
|
168
|
-
for (const pack of generatedPacks) {
|
|
169
|
-
for (const entry of pack) {
|
|
170
|
-
if (referenced(entry))
|
|
171
|
-
urls.add(`${assets.generatedAnimationBaseUrl}/${entry.file}`);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
162
|
+
for (const clip of inactive) {
|
|
163
|
+
if (referenced(clip))
|
|
164
|
+
urls.add(clip.url);
|
|
174
165
|
}
|
|
175
166
|
// Skeleton rigs for skeleton-based animals in world data. Voxel animal/fish BODIES resolve
|
|
176
167
|
// through a registry inside the engine (species → file); those load at spawn during the
|
|
177
168
|
// record pass, which vendors them — the bases above are rewritten either way.
|
|
178
|
-
const
|
|
179
|
-
|
|
180
|
-
: [];
|
|
169
|
+
const declared = worldData.worldProfileData?.animals;
|
|
170
|
+
const animals = Array.isArray(declared) ? declared : [];
|
|
181
171
|
for (const animal of animals) {
|
|
182
172
|
if (typeof animal !== 'object' || animal === null)
|
|
183
173
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collect-urls.js","sourceRoot":"","sources":["../../src/ios/collect-urls.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,yFAAyF;AACzF,MAAM,WAAW,GAAwB,IAAI,GAAG,CAAC;IAC/C,eAAe;IACf,cAAc;IACd,sBAAsB;IACtB,oBAAoB;IACpB,cAAc;IACd,gBAAgB;IAChB,oBAAoB;IACpB,WAAW;CACZ,CAAC,CAAC;AAeH,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,GAAgB;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,WAAW,CAAC,KAAK,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YACnC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,oBAAoB,CAAC,YAAoB;IACvD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,iCAAiC,CAAC,IAAI,EAAE,EAAE,CAAC;QAChF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,MAAM,IAAI,GAAG,CAAC,GAAW,EAAQ,EAAE;QACjC,IAAI,OAAoB,CAAC;QACzB,IAAI,CAAC;YACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,KAAK,CAAC,WAAW,EAAE;gBAAE,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC/B,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,QAAQ,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClF,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,OAAO,CAAC,CAAC;IACd,OAAO,QAAQ,CAAC;AAClB,CAAC;
|
|
1
|
+
{"version":3,"file":"collect-urls.js","sourceRoot":"","sources":["../../src/ios/collect-urls.ts"],"names":[],"mappings":"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"}
|
package/dist/ios/icon.js
CHANGED
|
@@ -11,12 +11,9 @@ import * as path from 'path';
|
|
|
11
11
|
import * as zlib from 'zlib';
|
|
12
12
|
/** Write `size`x`size` flat-colour RGB PNG — the no-cover placeholder. */
|
|
13
13
|
export function writeFlatPng(target, size, rgb) {
|
|
14
|
+
// Byte 0 is the scanline's PNG filter type (0 = none); the rest is the colour repeated.
|
|
14
15
|
const row = Buffer.alloc(1 + size * 3);
|
|
15
|
-
|
|
16
|
-
row[1 + x * 3] = rgb[0];
|
|
17
|
-
row[2 + x * 3] = rgb[1];
|
|
18
|
-
row[3 + x * 3] = rgb[2];
|
|
19
|
-
}
|
|
16
|
+
row.fill(Buffer.from(rgb), 1);
|
|
20
17
|
const raw = Buffer.concat(Array.from({ length: size }, () => row));
|
|
21
18
|
const chunk = (type, data) => {
|
|
22
19
|
const header = Buffer.alloc(8);
|