create-aura3d 1.3.3 → 1.4.0

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 (145) hide show
  1. package/dist/cli.js +10 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +2 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/showcase-spec-artifacts.d.ts +104 -0
  8. package/dist/showcase-spec-artifacts.d.ts.map +1 -0
  9. package/dist/showcase-spec-artifacts.js +142 -0
  10. package/dist/showcase-spec-artifacts.js.map +1 -0
  11. package/dist/showcase-spec-category-plan.d.ts +15 -0
  12. package/dist/showcase-spec-category-plan.d.ts.map +1 -0
  13. package/dist/showcase-spec-category-plan.js +45 -0
  14. package/dist/showcase-spec-category-plan.js.map +1 -0
  15. package/dist/showcase-spec-compiler.d.ts +5 -0
  16. package/dist/showcase-spec-compiler.d.ts.map +1 -0
  17. package/dist/showcase-spec-compiler.js +240 -0
  18. package/dist/showcase-spec-compiler.js.map +1 -0
  19. package/dist/showcase-spec-evidence.d.ts +7 -0
  20. package/dist/showcase-spec-evidence.d.ts.map +1 -0
  21. package/dist/showcase-spec-evidence.js +815 -0
  22. package/dist/showcase-spec-evidence.js.map +1 -0
  23. package/dist/showcase-spec-game-geometry-extractor.d.ts +21 -0
  24. package/dist/showcase-spec-game-geometry-extractor.d.ts.map +1 -0
  25. package/dist/showcase-spec-game-geometry-extractor.js +725 -0
  26. package/dist/showcase-spec-game-geometry-extractor.js.map +1 -0
  27. package/dist/showcase-spec-game-replacement-evidence.d.ts +14 -0
  28. package/dist/showcase-spec-game-replacement-evidence.d.ts.map +1 -0
  29. package/dist/showcase-spec-game-replacement-evidence.js +219 -0
  30. package/dist/showcase-spec-game-replacement-evidence.js.map +1 -0
  31. package/dist/showcase-spec-game-template-evidence.d.ts +72 -0
  32. package/dist/showcase-spec-game-template-evidence.d.ts.map +1 -0
  33. package/dist/showcase-spec-game-template-evidence.js +435 -0
  34. package/dist/showcase-spec-game-template-evidence.js.map +1 -0
  35. package/dist/showcase-spec-gameplay-evidence.d.ts +3 -0
  36. package/dist/showcase-spec-gameplay-evidence.d.ts.map +1 -0
  37. package/dist/showcase-spec-gameplay-evidence.js +108 -0
  38. package/dist/showcase-spec-gameplay-evidence.js.map +1 -0
  39. package/dist/showcase-spec-parser.d.ts +3 -0
  40. package/dist/showcase-spec-parser.d.ts.map +1 -0
  41. package/dist/showcase-spec-parser.js +662 -0
  42. package/dist/showcase-spec-parser.js.map +1 -0
  43. package/dist/showcase-spec-platformer-artifacts.d.ts +3 -0
  44. package/dist/showcase-spec-platformer-artifacts.d.ts.map +1 -0
  45. package/dist/showcase-spec-platformer-artifacts.js +276 -0
  46. package/dist/showcase-spec-platformer-artifacts.js.map +1 -0
  47. package/dist/showcase-spec-racing-artifacts.d.ts +3 -0
  48. package/dist/showcase-spec-racing-artifacts.d.ts.map +1 -0
  49. package/dist/showcase-spec-racing-artifacts.js +273 -0
  50. package/dist/showcase-spec-racing-artifacts.js.map +1 -0
  51. package/dist/showcase-spec-replacement-apply.d.ts +10 -0
  52. package/dist/showcase-spec-replacement-apply.d.ts.map +1 -0
  53. package/dist/showcase-spec-replacement-apply.js +166 -0
  54. package/dist/showcase-spec-replacement-apply.js.map +1 -0
  55. package/dist/showcase-spec-replacement-candidates.d.ts +16 -0
  56. package/dist/showcase-spec-replacement-candidates.d.ts.map +1 -0
  57. package/dist/showcase-spec-replacement-candidates.js +244 -0
  58. package/dist/showcase-spec-replacement-candidates.js.map +1 -0
  59. package/dist/showcase-spec-replacement-game-geometry.d.ts +4 -0
  60. package/dist/showcase-spec-replacement-game-geometry.d.ts.map +1 -0
  61. package/dist/showcase-spec-replacement-game-geometry.js +175 -0
  62. package/dist/showcase-spec-replacement-game-geometry.js.map +1 -0
  63. package/dist/showcase-spec-replacement-manifest.d.ts +41 -0
  64. package/dist/showcase-spec-replacement-manifest.d.ts.map +1 -0
  65. package/dist/showcase-spec-replacement-manifest.js +62 -0
  66. package/dist/showcase-spec-replacement-manifest.js.map +1 -0
  67. package/dist/showcase-spec-replacement-values.d.ts +9 -0
  68. package/dist/showcase-spec-replacement-values.d.ts.map +1 -0
  69. package/dist/showcase-spec-replacement-values.js +41 -0
  70. package/dist/showcase-spec-replacement-values.js.map +1 -0
  71. package/dist/showcase-spec-replacement.d.ts +13 -0
  72. package/dist/showcase-spec-replacement.d.ts.map +1 -0
  73. package/dist/showcase-spec-replacement.js +144 -0
  74. package/dist/showcase-spec-replacement.js.map +1 -0
  75. package/dist/showcase-spec-types.d.ts +304 -0
  76. package/dist/showcase-spec-types.d.ts.map +1 -0
  77. package/dist/showcase-spec-types.js +2 -0
  78. package/dist/showcase-spec-types.js.map +1 -0
  79. package/package.json +13 -2
  80. package/templates/animation-studio/scripts/animation-scene.ts +1 -1
  81. package/templates/animation-studio/scripts/author-office-scene.ts +1 -1
  82. package/templates/animation-studio/scripts/build-characters.ts +1 -1
  83. package/templates/animation-studio/src/director/director-heuristics.ts +2 -2
  84. package/templates/animation-studio/src/director/{prompt-to-scene.ts → prompt-scene.ts} +1 -1
  85. package/templates/cinematic-scene/tests/screenshot.spec.ts +2 -4
  86. package/templates/falling-blocks-starter/README.md +18 -0
  87. package/templates/falling-blocks-starter/index.html +23 -0
  88. package/templates/falling-blocks-starter/package.json +21 -0
  89. package/templates/falling-blocks-starter/playwright.config.ts +12 -0
  90. package/templates/falling-blocks-starter/public/aura-assets/showcaseBlockfallCabinet.679d52fe.glb +0 -0
  91. package/templates/falling-blocks-starter/public/aura-assets/showcaseBlockfallCabinet.thumb.svg +1 -0
  92. package/templates/falling-blocks-starter/src/aura-assets.ts +20 -0
  93. package/templates/falling-blocks-starter/src/main.ts +358 -0
  94. package/templates/falling-blocks-starter/tests/playable.spec.ts +85 -0
  95. package/templates/falling-blocks-starter/tests/route-health.spec.ts +34 -0
  96. package/templates/falling-blocks-starter/tsconfig.json +13 -0
  97. package/templates/mini-game/README.md +13 -0
  98. package/templates/mini-game/index.html +1 -1
  99. package/templates/mini-game/package.json +1 -1
  100. package/templates/mini-game/src/main.ts +251 -21
  101. package/templates/mini-game/tests/playable.spec.ts +49 -0
  102. package/templates/mini-game/tests/screenshot.spec.ts +37 -32
  103. package/templates/product-viewer/tests/screenshot.spec.ts +3 -5
  104. package/templates/racing-starter/README.md +27 -0
  105. package/templates/racing-starter/index.html +23 -0
  106. package/templates/racing-starter/package.json +21 -0
  107. package/templates/racing-starter/playwright.config.ts +12 -0
  108. package/templates/racing-starter/public/aura-assets/showcaseCleanSportsCar.1c69283f.glb +0 -0
  109. package/templates/racing-starter/public/aura-assets/showcaseCleanSportsCar.thumb.svg +1 -0
  110. package/templates/racing-starter/public/aura-assets/showcaseReadableKartCircuit.5cbb912e.glb +0 -0
  111. package/templates/racing-starter/public/aura-assets/showcaseReadableKartCircuit.thumb.svg +1 -0
  112. package/templates/racing-starter/src/aura-assets.ts +36 -0
  113. package/templates/racing-starter/src/main.ts +280 -0
  114. package/templates/racing-starter/tests/playable.spec.ts +93 -0
  115. package/templates/racing-starter/tests/route-health.spec.ts +40 -0
  116. package/templates/racing-starter/tsconfig.json +13 -0
  117. package/templates/animation-channel/public/aura-assets/moon-garden-feature-frame.png +0 -0
  118. package/templates/animation-channel/tests/reports/prompt-animation/cartoon-sample-episode.png +0 -0
  119. package/templates/animation-studio/dist/episodes/prompt-to-scene-proof/two-robots-fixing-a-car.document.json +0 -680
  120. package/templates/animation-studio/dist/episodes/scene/episode-3d.webm +0 -0
  121. package/templates/animation-studio/dist/episodes/scene/frames/action.png +0 -0
  122. package/templates/animation-studio/dist/episodes/scene/frames/dialogue.png +0 -0
  123. package/templates/animation-studio/dist/episodes/scene/frames/final.png +0 -0
  124. package/templates/animation-studio/dist/episodes/scene/frames/first.png +0 -0
  125. package/templates/animation-studio/dist/episodes/scene/frames/mouth-closed.png +0 -0
  126. package/templates/animation-studio/dist/episodes/scene/frames/mouth-open.png +0 -0
  127. package/templates/animation-studio/dist/episodes/scene/render-live-summary.json +0 -9763
  128. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/broken.png +0 -0
  129. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/chefs.png +0 -0
  130. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/customer.png +0 -0
  131. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/friend-1.png +0 -0
  132. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/friend-2.png +0 -0
  133. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/worker-1.png +0 -0
  134. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/worker-2.png +0 -0
  135. package/templates/animation-studio/dist/generated/second-scene.document.json +0 -1210
  136. package/templates/animation-studio/dist/generated/studio-edited.document.json +0 -1196
  137. package/templates/animation-studio/dist/scene/inshader-accept.document.json +0 -1
  138. package/templates/animation-studio/dist/scene/inshader-test.document.json +0 -1
  139. package/templates/animation-studio/dist/scene/integ.document.json +0 -1
  140. package/templates/animation-studio/dist/scene/working.document.json +0 -673
  141. package/templates/animation-studio/dist/scene/working.history.json +0 -1
  142. package/templates/animation-studio/studio/dist/assets/index-C7f8tHfi.css +0 -1
  143. package/templates/animation-studio/studio/dist/assets/index-CLo3GXyN.js +0 -43
  144. package/templates/animation-studio/studio/dist/index.html +0 -19
  145. package/templates/animation-studio/tests/reports/animation-studio/hifi-cast-validation.json +0 -938
package/dist/cli.js CHANGED
@@ -1,11 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { CREATE_AURA3D_TEMPLATES, createA3DProject } from "./index.js";
3
+ import { compileShowcaseSpecFile } from "./showcase-spec-compiler.js";
3
4
  const args = process.argv.slice(2);
4
5
  if (args.includes("--help") || args.includes("-h")) {
5
6
  console.log(`create-aura3d
6
7
 
7
8
  Usage:
8
9
  create-aura3d demo --template product-viewer
10
+ create-aura3d apps/showcase-demo --spec showcase-spec.json
9
11
 
10
12
  Templates:
11
13
  ${CREATE_AURA3D_TEMPLATES.join("\n ")}
@@ -13,6 +15,14 @@ Templates:
13
15
  process.exit(0);
14
16
  }
15
17
  const targetDir = args.find((arg) => !arg.startsWith("-")) ?? "aura3d-app";
18
+ const specPath = readOption("--spec");
19
+ if (specPath) {
20
+ const result = compileShowcaseSpecFile({ outputDir: targetDir, specPath });
21
+ console.log(JSON.stringify(result, null, 2));
22
+ if (!result.ok)
23
+ process.exitCode = 1;
24
+ process.exit();
25
+ }
16
26
  const template = readOption("--template") ?? "product-viewer";
17
27
  if (!CREATE_AURA3D_TEMPLATES.includes(template)) {
18
28
  console.error(`Unknown template "${template}". Available templates: ${CREATE_AURA3D_TEMPLATES.join(", ")}`);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAA0B,MAAM,YAAY,CAAC;AAE/F,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC;;;;;;IAMV,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC;CACvC,CAAC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,YAAY,CAAC;AAC3E,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,gBAAgB,CAAC;AAC9D,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,QAA6B,CAAC,EAAE,CAAC;IACrE,OAAO,CAAC,KAAK,CAAC,qBAAqB,QAAQ,2BAA2B,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAA6B,EAAE,CAAC,CAAC;AACxF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAE7C,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAA0B,MAAM,YAAY,CAAC;AAC/F,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC;;;;;;;IAOV,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC;CACvC,CAAC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,YAAY,CAAC;AAC3E,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;AACtC,IAAI,QAAQ,EAAE,CAAC;IACb,MAAM,MAAM,GAAG,uBAAuB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC;AACD,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,gBAAgB,CAAC;AAC9D,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,QAA6B,CAAC,EAAE,CAAC;IACrE,OAAO,CAAC,KAAK,CAAC,qBAAqB,QAAQ,2BAA2B,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAA6B,EAAE,CAAC,CAAC;AACxF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAE7C,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const CREATE_AURA3D_TEMPLATES: readonly ["product-viewer", "cinematic-scene", "mini-game", "fighting-game", "animation-channel", "prompt-animation-channel", "animation-studio", "episode-builder", "character-controller", "three-compat-premium-product-viewer", "three-compat-architecture-interior", "three-compat-material-authoring", "three-compat-asset-inspector", "three-compat-character-viewer", "three-compat-postprocess-scene", "three-compat-custom-threejs-migration", "three-compat-large-scene"];
1
+ export declare const CREATE_AURA3D_TEMPLATES: readonly ["product-viewer", "cinematic-scene", "mini-game", "racing-starter", "falling-blocks-starter", "fighting-game", "animation-channel", "prompt-animation-channel", "animation-studio", "episode-builder", "character-controller", "three-compat-premium-product-viewer", "three-compat-architecture-interior", "three-compat-material-authoring", "three-compat-asset-inspector", "three-compat-character-viewer", "three-compat-postprocess-scene", "three-compat-custom-threejs-migration", "three-compat-large-scene"];
2
2
  export type CreateA3DTemplate = (typeof CREATE_AURA3D_TEMPLATES)[number];
3
3
  export interface CreateA3DProjectOptions {
4
4
  readonly targetDir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,uBAAuB,sdAkB1B,CAAC;AACX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB,CA6BzF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAGvF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,uBAAuB,kgBAoB1B,CAAC;AACX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB,CA6BzF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAGvF"}
package/dist/index.js CHANGED
@@ -5,6 +5,8 @@ export const CREATE_AURA3D_TEMPLATES = [
5
5
  "product-viewer",
6
6
  "cinematic-scene",
7
7
  "mini-game",
8
+ "racing-starter",
9
+ "falling-blocks-starter",
8
10
  "fighting-game",
9
11
  "animation-channel",
10
12
  "prompt-animation-channel",
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import type { ShowcaseCategoryPlan, ShowcaseSpec, ShowcaseSpecFinalStatus } from "./showcase-spec-types.js";
2
+ export declare function createRouteSource(spec: ShowcaseSpec): string;
3
+ export declare function createReadme(spec: ShowcaseSpec, finalStatus: ShowcaseSpecFinalStatus, blockers: readonly string[]): string;
4
+ export declare function createRouteHealth(spec: ShowcaseSpec, finalStatus: ShowcaseSpecFinalStatus, blockers: readonly string[]): {
5
+ categoryPlan?: ShowcaseCategoryPlan | undefined;
6
+ racing?: import("./showcase-spec-types.js").ShowcaseRacingSpec | undefined;
7
+ platformer?: import("./showcase-spec-types.js").ShowcasePlatformerSpec | undefined;
8
+ gameAssetPairEvidence?: {
9
+ category: import("./showcase-spec-types.js").ShowcaseGameAssetPairEvidenceCategory;
10
+ assets: readonly string[];
11
+ screenshotEvidence: string;
12
+ routePrimaryProbe: string | undefined;
13
+ screenshotSha256: string | undefined;
14
+ verdict: import("./showcase-spec-types.js").ShowcaseGameAssetPairEvidenceVerdict;
15
+ notes: string;
16
+ blockers: readonly string[];
17
+ } | undefined;
18
+ schema: string;
19
+ appId: string;
20
+ route: string;
21
+ classification: ShowcaseSpecFinalStatus;
22
+ publicShowcase: boolean;
23
+ promotionStatus: string;
24
+ renderer: {
25
+ path: string;
26
+ mode: string;
27
+ nativeWebGPU: boolean;
28
+ productionRuntime: boolean;
29
+ };
30
+ primaryAssets: {
31
+ typedRef: string;
32
+ role: string;
33
+ status: string;
34
+ quality: "candidate" | "prototype" | "release";
35
+ }[];
36
+ primitiveStatus: {
37
+ sourceOccurrences: number;
38
+ primitiveBudget: number;
39
+ role: string;
40
+ status: string;
41
+ };
42
+ claimStatus: {
43
+ status: ShowcaseSpecFinalStatus;
44
+ label: import("./showcase-spec-types.js").ShowcaseSpecClaimLabel;
45
+ allowed: string[];
46
+ notAllowed: string[];
47
+ };
48
+ blockers: readonly string[];
49
+ evidence: {
50
+ releaseAssetProbes?: Readonly<Record<string, string>> | undefined;
51
+ gameplayPassed?: boolean | undefined;
52
+ gameplayProof?: string | undefined;
53
+ global: string;
54
+ sourceReview: string;
55
+ routePrimaryProbe: string;
56
+ routePrimaryScreenshot: string;
57
+ desktopScreenshot: string;
58
+ mobileScreenshot: string;
59
+ deployCommand: string;
60
+ deployPassed: boolean;
61
+ routePrimaryPassed: boolean;
62
+ };
63
+ };
64
+ export declare function createRouteGatePatch(spec: ShowcaseSpec, finalStatus: ShowcaseSpecFinalStatus): {
65
+ schema: string;
66
+ route: {
67
+ id: string;
68
+ label: string;
69
+ path: string;
70
+ globalName: string;
71
+ published: boolean;
72
+ primaryAssets: string[];
73
+ primaryAssetRoles: {
74
+ [k: string]: string;
75
+ };
76
+ routePrimaryHeroAsset: string;
77
+ secondaryPrimaryAssets: string[];
78
+ primitiveBudget: number;
79
+ requiresTypedPrimaryAssets: boolean;
80
+ };
81
+ };
82
+ export declare function createEvidenceChecklist(spec: ShowcaseSpec, finalStatus: ShowcaseSpecFinalStatus, blockers: readonly string[]): {
83
+ blockers: readonly string[];
84
+ categoryPlan?: ShowcaseCategoryPlan | undefined;
85
+ racing?: import("./showcase-spec-types.js").ShowcaseRacingSpec | undefined;
86
+ platformer?: import("./showcase-spec-types.js").ShowcasePlatformerSpec | undefined;
87
+ schema: string;
88
+ routeId: string;
89
+ finalStatus: ShowcaseSpecFinalStatus;
90
+ requiredCommands: string[];
91
+ evidence: {
92
+ readonly routePrimaryProbe: string;
93
+ readonly routePrimaryScreenshot: string;
94
+ readonly deployCommand: string;
95
+ readonly deployEvidence?: string;
96
+ readonly deployPassed: boolean;
97
+ readonly routePrimaryPassed: boolean;
98
+ readonly gameplayProof?: string;
99
+ readonly gameplayPassed?: boolean;
100
+ readonly releaseAssetProbes?: Readonly<Record<string, string>>;
101
+ };
102
+ capabilities: readonly import("./showcase-spec-types.js").ShowcaseSpecCapability[];
103
+ };
104
+ //# sourceMappingURL=showcase-spec-artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcase-spec-artifacts.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-artifacts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,oBAAoB,EACpB,YAAY,EAEZ,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAM5D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAE1H;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+CtH;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,uBAAuB;;;;;;;;;;;;;;;;;EAiB5F;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;EAa5H"}
@@ -0,0 +1,142 @@
1
+ import { cameraForCategoryPlan } from "./showcase-spec-category-plan.js";
2
+ import { createPlatformerRouteSource } from "./showcase-spec-platformer-artifacts.js";
3
+ import { createRacingRouteSource } from "./showcase-spec-racing-artifacts.js";
4
+ export function createRouteSource(spec) {
5
+ if (spec.platformer)
6
+ return createPlatformerRouteSource(spec, spec.platformer);
7
+ if (spec.racing)
8
+ return createRacingRouteSource(spec, spec.racing);
9
+ if (spec.categoryPlan)
10
+ return createCategoryRouteSource(spec, spec.categoryPlan);
11
+ const heroAsset = requireAsset(spec, spec.layout.heroAsset);
12
+ return createBasicRouteSource(spec, heroAsset);
13
+ }
14
+ export function createReadme(spec, finalStatus, blockers) {
15
+ return `# ${spec.label}\n\nStatus: ${finalStatus}\n\nClaim label: ${spec.claimLabel}\n\nPrimary asset: ${spec.layout.heroAsset}\n\n${blockers.length === 0 ? "Release evidence is present for this bounded generated route." : `Blocked by:\n${blockers.map((blocker) => `- ${blocker}`).join("\n")}`}\n`;
16
+ }
17
+ export function createRouteHealth(spec, finalStatus, blockers) {
18
+ const gameAssetPairEvidence = createGameAssetPairRouteHealth(spec);
19
+ return {
20
+ schema: "aura3d-route-health/1.0",
21
+ appId: spec.routeId,
22
+ route: spec.path,
23
+ classification: finalStatus,
24
+ publicShowcase: finalStatus === "release-ready candidate",
25
+ promotionStatus: blockers.length === 0 ? "evidence-backed-by-showcase-spec-compiler" : "blocked-by-showcase-spec-compiler",
26
+ renderer: {
27
+ path: "createAuraApp root safe API",
28
+ mode: "safe-basic",
29
+ nativeWebGPU: false,
30
+ productionRuntime: false
31
+ },
32
+ primaryAssets: spec.primaryAssets.map((asset) => ({
33
+ typedRef: asset.typedRef,
34
+ role: asset.role,
35
+ status: "typed-primary-asset",
36
+ quality: asset.quality
37
+ })),
38
+ primitiveStatus: {
39
+ sourceOccurrences: 0,
40
+ primitiveBudget: 0,
41
+ role: "none",
42
+ status: "no-primitive-primary-subjects-generated"
43
+ },
44
+ claimStatus: {
45
+ status: finalStatus,
46
+ label: spec.claimLabel,
47
+ allowed: spec.capabilities
48
+ .filter((capability) => capability.status === "root-proven")
49
+ .map((capability) => capability.evidence ? `${capability.name}: ${capability.evidence}` : capability.name),
50
+ notAllowed: [
51
+ ...spec.capabilities
52
+ .filter((capability) => capability.status !== "root-proven")
53
+ .map((capability) => `${capability.name}: ${capability.status}`),
54
+ ...blockers
55
+ ]
56
+ },
57
+ blockers,
58
+ evidence: createRouteHealthEvidence(spec),
59
+ ...(gameAssetPairEvidence ? { gameAssetPairEvidence } : {}),
60
+ ...(spec.platformer ? { platformer: spec.platformer } : {}),
61
+ ...(spec.racing ? { racing: spec.racing } : {}),
62
+ ...(spec.categoryPlan ? { categoryPlan: spec.categoryPlan } : {})
63
+ };
64
+ }
65
+ export function createRouteGatePatch(spec, finalStatus) {
66
+ return {
67
+ schema: "aura3d-showcase-route-gate-patch/1.0",
68
+ route: {
69
+ id: spec.routeId,
70
+ label: spec.label,
71
+ path: spec.path,
72
+ globalName: spec.globalName,
73
+ published: finalStatus === "release-ready candidate",
74
+ primaryAssets: spec.primaryAssets.map((asset) => asset.id),
75
+ primaryAssetRoles: Object.fromEntries(spec.primaryAssets.map((asset) => [asset.id, asset.role])),
76
+ routePrimaryHeroAsset: spec.layout.heroAsset,
77
+ secondaryPrimaryAssets: spec.primaryAssets.map((asset) => asset.id).filter((id) => id !== spec.layout.heroAsset),
78
+ primitiveBudget: 0,
79
+ requiresTypedPrimaryAssets: true
80
+ }
81
+ };
82
+ }
83
+ export function createEvidenceChecklist(spec, finalStatus, blockers) {
84
+ return {
85
+ schema: "aura3d-showcase-evidence-checklist/1.0",
86
+ routeId: spec.routeId,
87
+ finalStatus,
88
+ requiredCommands: [spec.evidence.deployCommand, "pnpm exec playwright test tests/browser/showcase-route-primary-probes.spec.ts --reporter=line"],
89
+ evidence: spec.evidence,
90
+ capabilities: spec.capabilities,
91
+ ...(spec.platformer ? { platformer: spec.platformer } : {}),
92
+ ...(spec.racing ? { racing: spec.racing } : {}),
93
+ ...(spec.categoryPlan ? { categoryPlan: spec.categoryPlan } : {}),
94
+ blockers
95
+ };
96
+ }
97
+ function createRouteHealthEvidence(spec) {
98
+ return {
99
+ global: `window.${spec.globalName}`,
100
+ sourceReview: `apps/${spec.routeId}/src/main.ts`,
101
+ routePrimaryProbe: spec.evidence.routePrimaryProbe,
102
+ routePrimaryScreenshot: spec.evidence.routePrimaryScreenshot,
103
+ desktopScreenshot: spec.evidence.routePrimaryScreenshot,
104
+ mobileScreenshot: spec.evidence.routePrimaryScreenshot,
105
+ deployCommand: spec.evidence.deployCommand,
106
+ deployPassed: spec.evidence.deployPassed,
107
+ routePrimaryPassed: spec.evidence.routePrimaryPassed,
108
+ ...("gameplayProof" in spec.evidence ? { gameplayProof: spec.evidence.gameplayProof } : {}),
109
+ ...("gameplayPassed" in spec.evidence ? { gameplayPassed: spec.evidence.gameplayPassed } : {}),
110
+ ...("releaseAssetProbes" in spec.evidence ? { releaseAssetProbes: spec.evidence.releaseAssetProbes } : {})
111
+ };
112
+ }
113
+ function createGameAssetPairRouteHealth(spec) {
114
+ const assetPairEvidence = spec.racing?.raceDesign.assetPairEvidence ?? spec.platformer?.levelDesign.assetPairEvidence;
115
+ if (!assetPairEvidence)
116
+ return undefined;
117
+ return {
118
+ category: assetPairEvidence.category,
119
+ assets: assetPairEvidence.assets,
120
+ screenshotEvidence: assetPairEvidence.screenshotEvidence,
121
+ routePrimaryProbe: assetPairEvidence.routePrimaryProbe,
122
+ screenshotSha256: assetPairEvidence.screenshotSha256,
123
+ verdict: assetPairEvidence.verdict,
124
+ notes: assetPairEvidence.notes,
125
+ blockers: assetPairEvidence.blockers
126
+ };
127
+ }
128
+ function createBasicRouteSource(spec, heroAsset) {
129
+ return `import { camera, createAuraApp, lights, model, scene } from "@aura3d/engine";\nimport { assets } from "../../../src/aura-assets";\n\nconst app = createAuraApp("#app", {\n scene: scene()\n .add(model(${heroAsset.typedRef}))\n .add(lights.studio())\n .add(camera.perspective({ position: [0, 1.4, 4], target: [0, 1, 0] }))\n});\n\nconst mountedEvidence = {\n schema: "aura3d-showcase-compiled-route/1.0",\n appId: "${spec.routeId}",\n status: "ready",\n diagnostics: app.diagnostics()\n};\nObject.defineProperty(window, "${spec.globalName}", {\n value: mountedEvidence,\n configurable: true,\n writable: true\n});\n`;
130
+ }
131
+ function createCategoryRouteSource(spec, categoryPlan) {
132
+ const heroAsset = requireAsset(spec, categoryPlan.primaryAsset);
133
+ const cameraSpec = cameraForCategoryPlan(categoryPlan);
134
+ return `import { camera, createAuraApp, lights, model, scene } from "@aura3d/engine";\nimport { assets } from "../../../src/aura-assets";\n\nconst routeFrame = {\n cameraIntent: "${categoryPlan.cameraIntent}",\n evidenceMargin: ${cameraSpec.evidenceMargin},\n position: [0, ${cameraSpec.y}, ${cameraSpec.z}],\n targetMaxDimension: ${cameraSpec.targetMaxDimension},\n cameraPosition: ${cameraSpec.position},\n cameraTarget: ${cameraSpec.target},\n fov: ${cameraSpec.fov}\n};\n\nconst app = createAuraApp("#app", {\n diagnostics: { overlay: false, performancePanel: false },\n scene: scene()\n .add(model(${heroAsset.typedRef}, {\n name: "${categoryPlan.kind}-primary",\n role: "routePrimary",\n scaleMode: "fit",\n targetMaxDimension: routeFrame.targetMaxDimension\n }).position(routeFrame.position[0], routeFrame.position[1], routeFrame.position[2]))\n .add(lights.studio())\n .camera(camera.perspective({ position: routeFrame.cameraPosition, target: routeFrame.cameraTarget, fov: routeFrame.fov }))\n});\n\nconst mountedEvidence = {\n schema: "aura3d-showcase-compiled-non-game-route/1.0",\n appId: "${spec.routeId}",\n status: "ready",\n categoryPlan: ${JSON.stringify(categoryPlan, null, 2)},\n routeFrame,\n primaryAssets: [${spec.primaryAssets.map((asset) => `"${asset.id}"`).join(", ")}],\n diagnostics: app.diagnostics()\n};\nObject.defineProperty(window, "${spec.globalName}", {\n value: mountedEvidence,\n configurable: true,\n writable: true\n});\n`;
135
+ }
136
+ function requireAsset(spec, assetId) {
137
+ const asset = spec.primaryAssets.find((candidate) => candidate.id === assetId);
138
+ if (!asset)
139
+ throw new Error(`missing primary asset ${assetId}`);
140
+ return asset;
141
+ }
142
+ //# sourceMappingURL=showcase-spec-artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcase-spec-artifacts.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-artifacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { ShowcaseCategoryPlan, ShowcaseCategoryPlanKind, ShowcaseSpec } from "./showcase-spec-types.js";
2
+ interface CategoryCameraSpec {
3
+ readonly position: string;
4
+ readonly target: string;
5
+ readonly fov: number;
6
+ readonly targetMaxDimension: number;
7
+ readonly evidenceMargin: number;
8
+ readonly y: number;
9
+ readonly z: number;
10
+ }
11
+ export declare function compileCategoryPlanBlockers(spec: ShowcaseSpec): readonly string[];
12
+ export declare function isSupportedCategoryPlanKind(value: string): value is ShowcaseCategoryPlanKind;
13
+ export declare function cameraForCategoryPlan(plan: ShowcaseCategoryPlan): CategoryCameraSpec;
14
+ export {};
15
+ //# sourceMappingURL=showcase-spec-category-plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcase-spec-category-plan.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-category-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7G,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAYjF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,wBAAwB,CAK5F;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,GAAG,kBAAkB,CAapF"}
@@ -0,0 +1,45 @@
1
+ export function compileCategoryPlanBlockers(spec) {
2
+ const plan = spec.categoryPlan;
3
+ if (!plan)
4
+ return [];
5
+ const blockers = [];
6
+ if (!spec.primaryAssets.some((asset) => asset.id === plan.primaryAsset))
7
+ blockers.push(`category:${plan.kind}:primary-missing:${plan.primaryAsset}`);
8
+ if (plan.primaryAsset !== spec.layout.heroAsset)
9
+ blockers.push(`category:${plan.kind}:hero-mismatch`);
10
+ if (!plan.layoutConstraints.keepHeroReadable)
11
+ blockers.push(`category:${plan.kind}:hero-readability-not-required`);
12
+ if (!plan.layoutConstraints.uiAvoidsEvidenceArea)
13
+ blockers.push(`category:${plan.kind}:ui-can-occlude-evidence`);
14
+ if (plan.kind === "particle-diagnostic" && hasUnsupportedCapability(spec, "native-webgpu")) {
15
+ blockers.push("diagnostic:native-webgpu-unproven");
16
+ }
17
+ return blockers;
18
+ }
19
+ export function isSupportedCategoryPlanKind(value) {
20
+ return value === "architecture-environment" ||
21
+ value === "industrial-digital-twin" ||
22
+ value === "particle-diagnostic" ||
23
+ value === "data-diagnostic";
24
+ }
25
+ export function cameraForCategoryPlan(plan) {
26
+ switch (plan.cameraIntent) {
27
+ case "architecture-hero":
28
+ return { position: "[0, 1.55, 5.8]", target: "[0, 0.9, -0.6]", fov: 30, targetMaxDimension: 2.2, evidenceMargin: 0.18, y: 0.2, z: -0.6 };
29
+ case "industrial-overview":
30
+ return { position: "[2.25, 2.1, 4.9]", target: "[-0.25, 0.82, -0.45]", fov: 35, targetMaxDimension: 1.6, evidenceMargin: 0.16, y: 0.12, z: -0.45 };
31
+ case "diagnostic-core":
32
+ return { position: "[0, 1.12, 4.8]", target: "[0, 0.52, -0.72]", fov: 30, targetMaxDimension: 1.45, evidenceMargin: 0.2, y: 0.2, z: -0.72 };
33
+ case "data-observatory":
34
+ return { position: "[0.16, 1.22, 4.75]", target: "[0, 0.54, -0.2]", fov: 32, targetMaxDimension: 1.55, evidenceMargin: 0.22, y: 0.18, z: -0.2 };
35
+ default:
36
+ return assertNever(plan.cameraIntent);
37
+ }
38
+ }
39
+ function hasUnsupportedCapability(spec, name) {
40
+ return spec.capabilities.some((capability) => capability.name === name && capability.status === "unsupported");
41
+ }
42
+ function assertNever(value) {
43
+ throw new Error(`unsupported category camera intent ${value}`);
44
+ }
45
+ //# sourceMappingURL=showcase-spec-category-plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcase-spec-category-plan.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-category-plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { CompileShowcaseSpecFileOptions, CompileShowcaseSpecOptions, CompileShowcaseSpecReport } from "./showcase-spec-types.js";
2
+ export type { CompileShowcaseSpecFileOptions, CompileShowcaseSpecOptions, CompileShowcaseSpecReport, ShowcaseCategoryBackendClaim, ShowcaseCategoryCameraIntent, ShowcaseCategoryPlan, ShowcaseCategoryPlanKind, ShowcaseSpec, ShowcaseSpecAsset, ShowcaseSpecAssetPolicy, ShowcaseSpecCapability, ShowcaseSpecClaimLabel, ShowcaseSpecFinalStatus, ShowcaseSpecRejectedAsset, ShowcaseSpecReplacementCandidate, ShowcaseSpecReplacementRequiredRole, ShowcaseSpecSelectedReplacement, ShowcasePlatformerGameplayRequirement, ShowcasePlatformerSpec, ShowcaseRacingGameplayRequirement, ShowcaseRacingSpec } from "./showcase-spec-types.js";
3
+ export declare function compileShowcaseSpecFile(options: CompileShowcaseSpecFileOptions): CompileShowcaseSpecReport;
4
+ export declare function compileShowcaseSpec(input: unknown, options: CompileShowcaseSpecOptions): CompileShowcaseSpecReport;
5
+ //# sourceMappingURL=showcase-spec-compiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcase-spec-compiler.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-compiler.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,8BAA8B,EAC9B,0BAA0B,EAC1B,yBAAyB,EAK1B,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,8BAA8B,EAC9B,0BAA0B,EAC1B,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,EAC5B,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,gCAAgC,EAChC,mCAAmC,EACnC,+BAA+B,EAC/B,qCAAqC,EACrC,sBAAsB,EACtB,iCAAiC,EACjC,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,8BAA8B,GAAG,yBAAyB,CAG1G;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,0BAA0B,GAAG,yBAAyB,CAsClH"}