@helix3/helix-cli 0.1.13-helix3.142 → 0.1.13-helix3.144

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.
Files changed (39) hide show
  1. package/dist/index.js +47 -0
  2. package/dist/index.js.map +1 -1
  3. package/dist/sceneImport/compiler.d.ts +1 -1
  4. package/dist/sceneImport/compiler.js +3 -0
  5. package/dist/sceneImport/compiler.js.map +1 -1
  6. package/dist/sceneImport/defaultMaterials.d.ts +43 -0
  7. package/dist/sceneImport/defaultMaterials.js +98 -0
  8. package/dist/sceneImport/defaultMaterials.js.map +1 -0
  9. package/dist/sceneImport/fbx.d.ts +60 -0
  10. package/dist/sceneImport/fbx.js +149 -19
  11. package/dist/sceneImport/fbx.js.map +1 -1
  12. package/dist/sceneImport/glbSplit.d.ts +24 -0
  13. package/dist/sceneImport/glbSplit.js +94 -0
  14. package/dist/sceneImport/glbSplit.js.map +1 -0
  15. package/dist/sceneImport/multiAsset.d.ts +77 -0
  16. package/dist/sceneImport/multiAsset.js +516 -0
  17. package/dist/sceneImport/multiAsset.js.map +1 -0
  18. package/dist/sceneImport/multiAssetSpawn.d.ts +40 -0
  19. package/dist/sceneImport/multiAssetSpawn.js +98 -0
  20. package/dist/sceneImport/multiAssetSpawn.js.map +1 -0
  21. package/dist/sceneImport/package.d.ts +61 -7
  22. package/dist/sceneImport/package.js +504 -38
  23. package/dist/sceneImport/package.js.map +1 -1
  24. package/dist/sceneImport/packageReader.js +19 -9
  25. package/dist/sceneImport/packageReader.js.map +1 -1
  26. package/dist/sceneImport/proxy.d.ts +18 -0
  27. package/dist/sceneImport/proxy.js +66 -0
  28. package/dist/sceneImport/proxy.js.map +1 -0
  29. package/dist/sceneImport/spawnProbe.d.ts +7 -0
  30. package/dist/sceneImport/spawnProbe.js +72 -7
  31. package/dist/sceneImport/spawnProbe.js.map +1 -1
  32. package/dist/sceneImport/streamLayout.d.ts +96 -0
  33. package/dist/sceneImport/streamLayout.js +203 -0
  34. package/dist/sceneImport/streamLayout.js.map +1 -0
  35. package/dist/sceneImport/types.d.ts +18 -1
  36. package/dist/sceneImport/types.js +29 -0
  37. package/dist/sceneImport/types.js.map +1 -1
  38. package/dist/tsconfig.build.tsbuildinfo +1 -1
  39. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -656,6 +656,12 @@ function parsePositiveInt(value, flag) {
656
656
  fail(`✖ ${flag} must be a whole number >= 1`);
657
657
  return parsed;
658
658
  }
659
+ function parsePositiveFloat(value) {
660
+ const parsed = Number(value);
661
+ if (!Number.isFinite(parsed) || parsed <= 0)
662
+ fail(`✖ --cell-size must be a positive number, got '${value}'`);
663
+ return parsed;
664
+ }
659
665
  function parseLimit(value, flag) {
660
666
  if (value.trim().toLowerCase() === 'unlimited')
661
667
  return null;
@@ -3170,6 +3176,47 @@ sceneSource
3170
3176
  fail(`✖ ${err instanceof Error ? err.message : String(err)}`);
3171
3177
  }
3172
3178
  });
3179
+ sceneSource
3180
+ .command('compile-pack')
3181
+ .description('Compile a directory of FBX/OBJ/GLB meshes into N individually placed, independently streamed Scene v2 nodes')
3182
+ .argument('<pack>', 'directory containing mesh files (searched recursively)')
3183
+ .requiredOption('-o, --output <dir>', 'empty/new output directory for generated artifacts')
3184
+ .option('--title <title>', 'Scene title', 'Multi-asset import')
3185
+ .requiredOption('--source-id <id>', 'stable identifier for the source pack, e.g. kit-city-01')
3186
+ .requiredOption('--license <name>', "the pack's actual license name, e.g. 'CC0 1.0' or 'CC BY 4.0'")
3187
+ .requiredOption('--license-url <url>', 'URL of the license text')
3188
+ .requiredOption('--creator <creator>', 'attribution for the source pack')
3189
+ .requiredOption('--source-url <url>', 'where the pack was obtained')
3190
+ .option('--default-materials', 'swap imported materials/textures for the shared HELIX default set', false)
3191
+ .option('--cell-size <meters>', 'streaming cell size override', parsePositiveFloat)
3192
+ .action(async (pack, opts) => {
3193
+ try {
3194
+ const packDir = (0, node_path_1.resolve)(pack);
3195
+ const { compileMultiAssetScene, packOriginalSha256, receiptForPack } = await Promise.resolve().then(() => __importStar(require('./sceneImport/multiAsset')));
3196
+ const receipt = receiptForPack({
3197
+ sourceId: opts.sourceId,
3198
+ originalSha256: await packOriginalSha256(packDir),
3199
+ title: opts.title,
3200
+ creator: opts.creator,
3201
+ license: opts.license,
3202
+ licenseUrl: opts.licenseUrl,
3203
+ sourceUrl: opts.sourceUrl,
3204
+ });
3205
+ const result = await compileMultiAssetScene({
3206
+ sourceDir: packDir,
3207
+ outputDir: (0, node_path_1.resolve)(opts.output),
3208
+ title: opts.title,
3209
+ sourceId: opts.sourceId,
3210
+ receipt,
3211
+ ...(opts.defaultMaterials ? { defaultMaterials: true } : {}),
3212
+ ...(opts.cellSize !== undefined ? { cellSizeM: opts.cellSize } : {}),
3213
+ });
3214
+ console.log(JSON.stringify(result, null, 2));
3215
+ }
3216
+ catch (err) {
3217
+ fail(`✖ ${err instanceof Error ? err.message : String(err)}`);
3218
+ }
3219
+ });
3173
3220
  sceneSource
3174
3221
  .command('publish')
3175
3222
  .description('Validate and dry-run the native Scene v2 World-build multipart request')