@aura3d/cli 1.3.2 → 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.
- package/dist/asset-constants.d.ts +5 -0
- package/dist/asset-constants.d.ts.map +1 -0
- package/dist/asset-constants.js +5 -0
- package/dist/asset-constants.js.map +1 -0
- package/dist/asset-core-types.d.ts +206 -0
- package/dist/asset-core-types.d.ts.map +1 -0
- package/dist/asset-core-types.js +2 -0
- package/dist/asset-core-types.js.map +1 -0
- package/dist/asset-inspection-types.d.ts +131 -0
- package/dist/asset-inspection-types.d.ts.map +1 -0
- package/dist/asset-inspection-types.js +2 -0
- package/dist/asset-inspection-types.js.map +1 -0
- package/dist/asset-manifest.d.ts +8 -0
- package/dist/asset-manifest.d.ts.map +1 -0
- package/dist/asset-manifest.js +116 -0
- package/dist/asset-manifest.js.map +1 -0
- package/dist/asset-readiness-types.d.ts +164 -0
- package/dist/asset-readiness-types.d.ts.map +1 -0
- package/dist/asset-readiness-types.js +2 -0
- package/dist/asset-readiness-types.js.map +1 -0
- package/dist/asset-source-ast.d.ts +8 -0
- package/dist/asset-source-ast.d.ts.map +1 -0
- package/dist/asset-source-ast.js +241 -0
- package/dist/asset-source-ast.js.map +1 -0
- package/dist/asset-source-roles.d.ts +4 -0
- package/dist/asset-source-roles.d.ts.map +1 -0
- package/dist/asset-source-roles.js +79 -0
- package/dist/asset-source-roles.js.map +1 -0
- package/dist/asset-source-validation.d.ts +4 -0
- package/dist/asset-source-validation.d.ts.map +1 -0
- package/dist/asset-source-validation.js +200 -0
- package/dist/asset-source-validation.js.map +1 -0
- package/dist/character-assembly-types.d.ts +39 -0
- package/dist/character-assembly-types.d.ts.map +1 -0
- package/dist/character-assembly-types.js +2 -0
- package/dist/character-assembly-types.js.map +1 -0
- package/dist/cli-help.d.ts +4 -0
- package/dist/cli-help.d.ts.map +1 -0
- package/dist/cli-help.js +48 -0
- package/dist/cli-help.js.map +1 -0
- package/dist/cli-options.d.ts +66 -0
- package/dist/cli-options.d.ts.map +1 -0
- package/dist/cli-options.js +234 -0
- package/dist/cli-options.js.map +1 -0
- package/dist/cli.js +20 -177
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +12 -402
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +948 -90
- package/dist/index.js.map +1 -1
- package/dist/pull-bridge/adapters.d.ts +4 -0
- package/dist/pull-bridge/adapters.d.ts.map +1 -0
- package/dist/pull-bridge/adapters.js +38 -0
- package/dist/pull-bridge/adapters.js.map +1 -0
- package/dist/pull-bridge/download.d.ts +6 -0
- package/dist/pull-bridge/download.d.ts.map +1 -0
- package/dist/pull-bridge/download.js +208 -0
- package/dist/pull-bridge/download.js.map +1 -0
- package/dist/pull-bridge/profiles.d.ts +14 -0
- package/dist/pull-bridge/profiles.d.ts.map +1 -0
- package/dist/pull-bridge/profiles.js +63 -0
- package/dist/pull-bridge/profiles.js.map +1 -0
- package/dist/pull-bridge/provenance.d.ts +9 -0
- package/dist/pull-bridge/provenance.d.ts.map +1 -0
- package/dist/pull-bridge/provenance.js +99 -0
- package/dist/pull-bridge/provenance.js.map +1 -0
- package/dist/pull-bridge/pullable.d.ts +14 -0
- package/dist/pull-bridge/pullable.d.ts.map +1 -0
- package/dist/pull-bridge/pullable.js +58 -0
- package/dist/pull-bridge/pullable.js.map +1 -0
- package/dist/pull-bridge/scoring.d.ts +21 -0
- package/dist/pull-bridge/scoring.d.ts.map +1 -0
- package/dist/pull-bridge/scoring.js +177 -0
- package/dist/pull-bridge/scoring.js.map +1 -0
- package/dist/pull-bridge/search.d.ts +39 -0
- package/dist/pull-bridge/search.d.ts.map +1 -0
- package/dist/pull-bridge/search.js +114 -0
- package/dist/pull-bridge/search.js.map +1 -0
- package/dist/pull-bridge/types.d.ts +9 -0
- package/dist/pull-bridge/types.d.ts.map +1 -0
- package/dist/pull-bridge/types.js +2 -0
- package/dist/pull-bridge/types.js.map +1 -0
- package/dist/pull-bridge/vector3.d.ts +2 -0
- package/dist/pull-bridge/vector3.d.ts.map +1 -0
- package/dist/pull-bridge/vector3.js +4 -0
- package/dist/pull-bridge/vector3.js.map +1 -0
- package/dist/pull-bridge.d.ts +18 -100
- package/dist/pull-bridge.d.ts.map +1 -1
- package/dist/pull-bridge.js +59 -526
- package/dist/pull-bridge.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import type { AuraCliAssetEntry, AuraCliAssetType, AuraCliAssetProvenance } from "./asset-core-types.js";
|
|
2
|
+
export type AuraAssetReadinessProfile = "game" | "animation";
|
|
3
|
+
export type AuraGameAssetReadinessProfile = "fighting-character";
|
|
4
|
+
export type AuraAssetReadinessStatus = "passed" | "failed";
|
|
5
|
+
export interface AssetReadinessOptions {
|
|
6
|
+
readonly projectDir?: string;
|
|
7
|
+
readonly output?: string;
|
|
8
|
+
readonly gameProfile?: AuraGameAssetReadinessProfile;
|
|
9
|
+
readonly episode?: boolean;
|
|
10
|
+
readonly noPlaceholders?: boolean;
|
|
11
|
+
readonly requireLicense?: boolean;
|
|
12
|
+
readonly provenanceFile?: string;
|
|
13
|
+
readonly assetIds?: readonly string[];
|
|
14
|
+
}
|
|
15
|
+
export interface AssetReadinessReport {
|
|
16
|
+
readonly schema: "aura3d.asset-readiness/1.0";
|
|
17
|
+
readonly profile: AuraAssetReadinessProfile;
|
|
18
|
+
readonly gameProfile?: AuraGameAssetReadinessProfile;
|
|
19
|
+
readonly ok: boolean;
|
|
20
|
+
readonly status: AuraAssetReadinessStatus;
|
|
21
|
+
readonly validator: AssetReadinessValidatorEvidence;
|
|
22
|
+
readonly checkedAt: string;
|
|
23
|
+
readonly manifestPath: string;
|
|
24
|
+
readonly artifacts: AssetReadinessArtifacts;
|
|
25
|
+
readonly contracts: readonly AssetReadinessValidationContract[];
|
|
26
|
+
readonly animationEpisode?: AnimationEpisodeReadinessReport;
|
|
27
|
+
readonly summary: {
|
|
28
|
+
readonly totalAssets: number;
|
|
29
|
+
readonly modelAssets: number;
|
|
30
|
+
readonly animatedModels: number;
|
|
31
|
+
readonly textureAssets: number;
|
|
32
|
+
readonly audioAssets: number;
|
|
33
|
+
readonly environmentAssets: number;
|
|
34
|
+
readonly animationClips: number;
|
|
35
|
+
readonly humanoidModels: number;
|
|
36
|
+
readonly animationCharacters?: number;
|
|
37
|
+
readonly animationSets?: number;
|
|
38
|
+
readonly animationProps?: number;
|
|
39
|
+
readonly episodeReadyCharacters?: number;
|
|
40
|
+
readonly mouthReadyCharacters?: number;
|
|
41
|
+
readonly animationReadyCharacters?: number;
|
|
42
|
+
readonly profileTargetAssets?: number;
|
|
43
|
+
readonly profileReadyAssets?: number;
|
|
44
|
+
readonly profileSkippedAssets?: number;
|
|
45
|
+
};
|
|
46
|
+
readonly assets: readonly AssetReadinessAssetReport[];
|
|
47
|
+
readonly failures: readonly string[];
|
|
48
|
+
readonly warnings: readonly string[];
|
|
49
|
+
readonly messages: readonly string[];
|
|
50
|
+
}
|
|
51
|
+
export type AnimationEpisodeAssetRole = "character" | "set" | "prop" | "environment" | "audio" | "texture" | "unknown";
|
|
52
|
+
export type AnimationEpisodeMouthReadinessMode = "blendshape-lip-sync" | "primitive-mouth-card" | "amplitude-only" | "missing-mouth-motion";
|
|
53
|
+
export interface AnimationEpisodeAssetReadiness {
|
|
54
|
+
readonly id: string;
|
|
55
|
+
readonly role: AnimationEpisodeAssetRole;
|
|
56
|
+
readonly episodeReady: boolean;
|
|
57
|
+
readonly distinctHash?: string;
|
|
58
|
+
readonly licenseVerified: boolean;
|
|
59
|
+
readonly provenanceReady: boolean;
|
|
60
|
+
readonly placeholderFree: boolean;
|
|
61
|
+
readonly animationReady: boolean;
|
|
62
|
+
readonly mouthReady: boolean;
|
|
63
|
+
readonly mouthMode?: AnimationEpisodeMouthReadinessMode;
|
|
64
|
+
readonly setReady?: boolean;
|
|
65
|
+
readonly failures: readonly string[];
|
|
66
|
+
readonly warnings: readonly string[];
|
|
67
|
+
}
|
|
68
|
+
export interface AnimationEpisodeReadinessReport {
|
|
69
|
+
readonly enabled: boolean;
|
|
70
|
+
readonly ok: boolean;
|
|
71
|
+
readonly mode: "episode-ready";
|
|
72
|
+
readonly requirements: {
|
|
73
|
+
readonly minDistinctCharacters: number;
|
|
74
|
+
readonly minSets: number;
|
|
75
|
+
readonly requireLicense: boolean;
|
|
76
|
+
readonly noPlaceholders: boolean;
|
|
77
|
+
readonly requireAnimation: boolean;
|
|
78
|
+
readonly requireMouthMotion: boolean;
|
|
79
|
+
readonly requireSetScale: boolean;
|
|
80
|
+
};
|
|
81
|
+
readonly selectedCharacters: readonly string[];
|
|
82
|
+
readonly selectedSets: readonly string[];
|
|
83
|
+
readonly selectedProps: readonly string[];
|
|
84
|
+
readonly selectedAudio: readonly string[];
|
|
85
|
+
readonly readiness: readonly AnimationEpisodeAssetReadiness[];
|
|
86
|
+
readonly assetProvenanceArtifact: string;
|
|
87
|
+
readonly failures: readonly string[];
|
|
88
|
+
readonly warnings: readonly string[];
|
|
89
|
+
}
|
|
90
|
+
export interface AssetReadinessValidatorEvidence {
|
|
91
|
+
readonly id: "aura-clash-game-assets" | "aura-voice-animation-assets";
|
|
92
|
+
readonly command: "assets validate-game" | "assets validate-animation";
|
|
93
|
+
readonly label: string;
|
|
94
|
+
}
|
|
95
|
+
export interface AssetReadinessValidationContract {
|
|
96
|
+
readonly id: string;
|
|
97
|
+
readonly label: string;
|
|
98
|
+
readonly profile: AuraAssetReadinessProfile;
|
|
99
|
+
readonly sourceFamily?: "Quaternius" | "AuraVoice" | "custom";
|
|
100
|
+
readonly intendedUse?: "fighter" | "animation-character" | "set" | "prop";
|
|
101
|
+
readonly sourceOnly: boolean;
|
|
102
|
+
readonly requiredChecks: readonly string[];
|
|
103
|
+
readonly requiredAnimationClips?: readonly string[];
|
|
104
|
+
readonly evidenceBoundary: string;
|
|
105
|
+
}
|
|
106
|
+
export interface AssetReadinessArtifacts {
|
|
107
|
+
readonly manifestPath: string;
|
|
108
|
+
readonly typedAssetsPath: string;
|
|
109
|
+
readonly outputDir: string;
|
|
110
|
+
readonly assetBasePath: string;
|
|
111
|
+
readonly evidencePath?: string;
|
|
112
|
+
readonly assetFiles: readonly AssetReadinessAssetArtifacts[];
|
|
113
|
+
}
|
|
114
|
+
export interface AssetReadinessAssetArtifacts {
|
|
115
|
+
readonly id: string;
|
|
116
|
+
readonly sourcePath: string;
|
|
117
|
+
readonly outputPath: string;
|
|
118
|
+
readonly publicUrl: string;
|
|
119
|
+
readonly thumbnailPath?: string;
|
|
120
|
+
readonly thumbnailUrl?: string;
|
|
121
|
+
readonly dependencyPaths: readonly string[];
|
|
122
|
+
}
|
|
123
|
+
export interface AssetReadinessAnimationMetadata {
|
|
124
|
+
readonly clipCount: number;
|
|
125
|
+
readonly clips: readonly AssetReadinessAnimationClipMetadata[];
|
|
126
|
+
}
|
|
127
|
+
export interface AssetReadinessAnimationClipMetadata {
|
|
128
|
+
readonly index: number;
|
|
129
|
+
readonly name: string;
|
|
130
|
+
}
|
|
131
|
+
export interface AssetReadinessAssetReport {
|
|
132
|
+
readonly id: string;
|
|
133
|
+
readonly type: AuraCliAssetType;
|
|
134
|
+
readonly format: string;
|
|
135
|
+
readonly source: string;
|
|
136
|
+
readonly outputPath: string;
|
|
137
|
+
readonly url: string;
|
|
138
|
+
readonly hash: string;
|
|
139
|
+
readonly sizeBytes: number;
|
|
140
|
+
readonly bounds?: readonly [number, number, number];
|
|
141
|
+
readonly boundsMetadata?: AuraCliAssetEntry["boundsMetadata"];
|
|
142
|
+
readonly animations: readonly string[];
|
|
143
|
+
readonly animation: AssetReadinessAnimationMetadata;
|
|
144
|
+
readonly animationMetadata?: AuraCliAssetEntry["animationMetadata"];
|
|
145
|
+
readonly humanoid?: AuraCliAssetEntry["humanoid"];
|
|
146
|
+
readonly skeleton?: AuraCliAssetEntry["skeleton"];
|
|
147
|
+
readonly morphTargets?: AuraCliAssetEntry["morphTargets"];
|
|
148
|
+
readonly provenance?: AuraCliAssetProvenance;
|
|
149
|
+
readonly placeholderFree: boolean;
|
|
150
|
+
readonly licenseVerified: boolean;
|
|
151
|
+
readonly materials: readonly string[];
|
|
152
|
+
readonly materialMetadata?: AuraCliAssetEntry["materialMetadata"];
|
|
153
|
+
readonly textures: readonly string[];
|
|
154
|
+
readonly orientation?: AuraCliAssetEntry["orientation"];
|
|
155
|
+
readonly nodeNames?: readonly string[];
|
|
156
|
+
readonly artifactPaths: AssetReadinessAssetArtifacts;
|
|
157
|
+
readonly gameReady: boolean;
|
|
158
|
+
readonly animationReady: boolean;
|
|
159
|
+
readonly profileTarget?: boolean;
|
|
160
|
+
readonly profileReady?: boolean;
|
|
161
|
+
readonly profileSkippedReason?: string;
|
|
162
|
+
readonly warnings: readonly string[];
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=asset-readiness-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-readiness-types.d.ts","sourceRoot":"","sources":["../../../../packages/aura3d-cli/src/asset-readiness-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-readiness-types.js","sourceRoot":"","sources":["../../../../packages/aura3d-cli/src/asset-readiness-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AssetSourceTypedAssetUsage } from "./index.js";
|
|
2
|
+
export interface SourceAstScanReport {
|
|
3
|
+
readonly typedAssetUsages: readonly Omit<AssetSourceTypedAssetUsage, "file" | "occurrences">[];
|
|
4
|
+
readonly failures: readonly string[];
|
|
5
|
+
readonly warnings: readonly string[];
|
|
6
|
+
}
|
|
7
|
+
export declare function scanAssetSourceAst(relativeFile: string, source: string): SourceAstScanReport;
|
|
8
|
+
//# sourceMappingURL=asset-source-ast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-source-ast.d.ts","sourceRoot":"","sources":["../../../../packages/aura3d-cli/src/asset-source-ast.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,IAAI,CAAC,0BAA0B,EAAE,MAAM,GAAG,aAAa,CAAC,EAAE,CAAC;IAC/F,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAOD,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB,CA0G5F"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { extname } from "node:path";
|
|
2
|
+
import * as ts from "typescript";
|
|
3
|
+
import { isPrimaryRoleIdentifier, isPrimitiveConstructorName, isSupportingPrimitiveIdentifier, } from "./asset-source-roles.js";
|
|
4
|
+
export function scanAssetSourceAst(relativeFile, source) {
|
|
5
|
+
const sourceFile = ts.createSourceFile(relativeFile, source, ts.ScriptTarget.Latest, true, scriptKindForSource(relativeFile));
|
|
6
|
+
const typedAssetUsages = [];
|
|
7
|
+
const failures = new Set();
|
|
8
|
+
const warnings = new Set();
|
|
9
|
+
const typedAssetAliases = new Map();
|
|
10
|
+
const addTypedAssetUsage = (reference) => {
|
|
11
|
+
if (!reference)
|
|
12
|
+
return;
|
|
13
|
+
typedAssetUsages.push(reference);
|
|
14
|
+
};
|
|
15
|
+
const collectAliases = (node) => {
|
|
16
|
+
if (ts.isVariableDeclaration(node) && node.initializer) {
|
|
17
|
+
if (ts.isIdentifier(node.name)) {
|
|
18
|
+
const reference = getDirectTypedAssetReference(node.initializer);
|
|
19
|
+
if (reference)
|
|
20
|
+
typedAssetAliases.set(node.name.text, reference);
|
|
21
|
+
}
|
|
22
|
+
else if (ts.isObjectBindingPattern(node.name) && isIdentifierNamed(unwrapExpression(node.initializer), "assets")) {
|
|
23
|
+
for (const element of node.name.elements) {
|
|
24
|
+
if (!ts.isIdentifier(element.name))
|
|
25
|
+
continue;
|
|
26
|
+
const propertyName = element.propertyName ?? element.name;
|
|
27
|
+
const assetId = getBindingPropertyName(propertyName);
|
|
28
|
+
if (!assetId)
|
|
29
|
+
continue;
|
|
30
|
+
const reference = { assetId, typedAsset: `assets.${assetId}` };
|
|
31
|
+
typedAssetAliases.set(element.name.text, reference);
|
|
32
|
+
addTypedAssetUsage(reference);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
ts.forEachChild(node, collectAliases);
|
|
37
|
+
};
|
|
38
|
+
const scan = (node) => {
|
|
39
|
+
if (isStringLiteralNode(node)) {
|
|
40
|
+
const value = node.text;
|
|
41
|
+
if (isRawModelUrlOrPath(value)) {
|
|
42
|
+
failures.add(`raw GLB/glTF URL or path "${value}" found in source. Add it with assets add/resolve and use model(assets.x).`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (ts.isImportDeclaration(node) && isStringLiteralNode(node.moduleSpecifier)) {
|
|
46
|
+
const specifier = node.moduleSpecifier.text;
|
|
47
|
+
if (isForbiddenThreeImport(specifier)) {
|
|
48
|
+
failures.add("direct three imports are not allowed in public examples. Use @aura3d/engine public APIs.");
|
|
49
|
+
}
|
|
50
|
+
if (isForbiddenRendererInternalImport(specifier)) {
|
|
51
|
+
failures.add("renderer internals are not allowed in public examples. Use @aura3d/engine public APIs.");
|
|
52
|
+
}
|
|
53
|
+
if (node.importClause && importsName(node.importClause, "GLTFLoader")) {
|
|
54
|
+
failures.add("GLTFLoader is not allowed in public examples. Use model(assets.x) from @aura3d/engine.");
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (ts.isCallExpression(node)) {
|
|
58
|
+
if (isRequireOfForbiddenThreeImport(node)) {
|
|
59
|
+
failures.add("direct three imports are not allowed in public examples. Use @aura3d/engine public APIs.");
|
|
60
|
+
}
|
|
61
|
+
if (isRequireOfForbiddenRendererInternalImport(node)) {
|
|
62
|
+
failures.add("renderer internals are not allowed in public examples. Use @aura3d/engine public APIs.");
|
|
63
|
+
}
|
|
64
|
+
if (isCallNamed(node, "model")) {
|
|
65
|
+
const [firstArgument] = node.arguments;
|
|
66
|
+
if (firstArgument && isStringLiteralNode(firstArgument)) {
|
|
67
|
+
failures.add(`raw model string id "${firstArgument.text}" passed to model(). Use generated typed assets, for example model(assets.${sanitizeAssetId(firstArgument.text || "asset")}).`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (isCallNamed(node, "unsafeModelUrl")) {
|
|
71
|
+
failures.add("unsafeModelUrl is not allowed in public examples. Preserve typed asset safety with generated assets from ./src/aura-assets.");
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (ts.isIdentifier(node)) {
|
|
75
|
+
if (node.text === "unsafeModelUrl") {
|
|
76
|
+
failures.add("unsafeModelUrl is not allowed in public examples. Preserve typed asset safety with generated assets from ./src/aura-assets.");
|
|
77
|
+
}
|
|
78
|
+
if (node.text === "GLTFLoader") {
|
|
79
|
+
failures.add("GLTFLoader is not allowed in public examples. Use model(assets.x) from @aura3d/engine.");
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (ts.isPropertyAccessExpression(node) || ts.isElementAccessExpression(node)) {
|
|
83
|
+
addTypedAssetUsage(getDirectTypedAssetReference(node));
|
|
84
|
+
}
|
|
85
|
+
if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name) && node.initializer) {
|
|
86
|
+
const candidateName = node.name.text;
|
|
87
|
+
if (isPrimaryRoleIdentifier(candidateName) &&
|
|
88
|
+
!isSupportingPrimitiveIdentifier(candidateName) &&
|
|
89
|
+
isPrimitivePrimaryInitializer(node.initializer, typedAssetAliases)) {
|
|
90
|
+
warnings.add(`primitive "${candidateName}" appears assigned to a primary-role object. Primary characters, vehicles, worlds, tracks, products, and weapons must use typed model(assets.x) assets or be marked abstract/prototype.`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
ts.forEachChild(node, scan);
|
|
94
|
+
};
|
|
95
|
+
collectAliases(sourceFile);
|
|
96
|
+
scan(sourceFile);
|
|
97
|
+
return {
|
|
98
|
+
typedAssetUsages,
|
|
99
|
+
failures: [...failures].sort(),
|
|
100
|
+
warnings: [...warnings].sort(),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
function scriptKindForSource(path) {
|
|
104
|
+
const extension = extname(path).toLowerCase();
|
|
105
|
+
if (extension === ".tsx")
|
|
106
|
+
return ts.ScriptKind.TSX;
|
|
107
|
+
if (extension === ".jsx")
|
|
108
|
+
return ts.ScriptKind.JSX;
|
|
109
|
+
if (extension === ".js" || extension === ".mjs" || extension === ".cjs")
|
|
110
|
+
return ts.ScriptKind.JS;
|
|
111
|
+
return ts.ScriptKind.TS;
|
|
112
|
+
}
|
|
113
|
+
function isStringLiteralNode(node) {
|
|
114
|
+
return ts.isStringLiteral(node) || ts.isNoSubstitutionTemplateLiteral(node);
|
|
115
|
+
}
|
|
116
|
+
function getBindingPropertyName(name) {
|
|
117
|
+
if (ts.isIdentifier(name) || ts.isStringLiteral(name) || ts.isNumericLiteral(name))
|
|
118
|
+
return name.text;
|
|
119
|
+
return undefined;
|
|
120
|
+
}
|
|
121
|
+
function unwrapExpression(expression) {
|
|
122
|
+
let current = expression;
|
|
123
|
+
while (ts.isParenthesizedExpression(current) || ts.isAsExpression(current) || ts.isTypeAssertionExpression(current) || ts.isNonNullExpression(current)) {
|
|
124
|
+
current = current.expression;
|
|
125
|
+
}
|
|
126
|
+
return current;
|
|
127
|
+
}
|
|
128
|
+
function getDirectTypedAssetReference(expression) {
|
|
129
|
+
const unwrapped = unwrapExpression(expression);
|
|
130
|
+
if (ts.isPropertyAccessExpression(unwrapped) && isIdentifierNamed(unwrapExpression(unwrapped.expression), "assets")) {
|
|
131
|
+
const assetId = unwrapped.name.text;
|
|
132
|
+
return { assetId, typedAsset: `assets.${assetId}` };
|
|
133
|
+
}
|
|
134
|
+
if (ts.isElementAccessExpression(unwrapped) && isIdentifierNamed(unwrapExpression(unwrapped.expression), "assets")) {
|
|
135
|
+
const argument = unwrapped.argumentExpression;
|
|
136
|
+
if (argument && isStringLiteralNode(argument)) {
|
|
137
|
+
const assetId = argument.text;
|
|
138
|
+
return { assetId, typedAsset: `assets[${JSON.stringify(assetId)}]` };
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return undefined;
|
|
142
|
+
}
|
|
143
|
+
function isIdentifierNamed(expression, name) {
|
|
144
|
+
return ts.isIdentifier(expression) && expression.text === name;
|
|
145
|
+
}
|
|
146
|
+
function isRawModelUrlOrPath(value) {
|
|
147
|
+
return /\.gl(?:b|tf)(?:$|[?#/\\])/i.test(value) || /\.gl(?:b|tf)\b/i.test(value);
|
|
148
|
+
}
|
|
149
|
+
function isForbiddenThreeImport(specifier) {
|
|
150
|
+
return specifier === "three" || specifier.startsWith("three/");
|
|
151
|
+
}
|
|
152
|
+
function isForbiddenRendererInternalImport(specifier) {
|
|
153
|
+
return [
|
|
154
|
+
"@aura3d/rendering",
|
|
155
|
+
"@aura3d/engine/rendering",
|
|
156
|
+
"@aura3d/engine/production-runtime",
|
|
157
|
+
"@aura3d/engine/advanced-runtime",
|
|
158
|
+
].some((forbidden) => specifier === forbidden || specifier.startsWith(`${forbidden}/`));
|
|
159
|
+
}
|
|
160
|
+
function importsName(importClause, name) {
|
|
161
|
+
if (importClause.name?.text === name)
|
|
162
|
+
return true;
|
|
163
|
+
const bindings = importClause.namedBindings;
|
|
164
|
+
if (!bindings)
|
|
165
|
+
return false;
|
|
166
|
+
if (ts.isNamespaceImport(bindings))
|
|
167
|
+
return bindings.name.text === name;
|
|
168
|
+
return bindings.elements.some((element) => (element.propertyName ?? element.name).text === name || element.name.text === name);
|
|
169
|
+
}
|
|
170
|
+
function isRequireOfForbiddenThreeImport(node) {
|
|
171
|
+
const [specifier] = node.arguments;
|
|
172
|
+
return isIdentifierNamed(unwrapExpression(node.expression), "require") &&
|
|
173
|
+
specifier !== undefined &&
|
|
174
|
+
isStringLiteralNode(specifier) &&
|
|
175
|
+
isForbiddenThreeImport(specifier.text);
|
|
176
|
+
}
|
|
177
|
+
function isRequireOfForbiddenRendererInternalImport(node) {
|
|
178
|
+
const [specifier] = node.arguments;
|
|
179
|
+
return isIdentifierNamed(unwrapExpression(node.expression), "require") &&
|
|
180
|
+
specifier !== undefined &&
|
|
181
|
+
isStringLiteralNode(specifier) &&
|
|
182
|
+
isForbiddenRendererInternalImport(specifier.text);
|
|
183
|
+
}
|
|
184
|
+
function isCallNamed(node, name) {
|
|
185
|
+
const callee = unwrapExpression(node.expression);
|
|
186
|
+
if (ts.isIdentifier(callee))
|
|
187
|
+
return callee.text === name;
|
|
188
|
+
return ts.isPropertyAccessExpression(callee) && callee.name.text === name;
|
|
189
|
+
}
|
|
190
|
+
function isPrimitivePrimaryInitializer(expression, typedAssetAliases) {
|
|
191
|
+
return isPrimitiveBuilderExpression(expression) && !containsTypedModelCall(expression, typedAssetAliases);
|
|
192
|
+
}
|
|
193
|
+
function isPrimitiveBuilderExpression(expression) {
|
|
194
|
+
const unwrapped = unwrapExpression(expression);
|
|
195
|
+
if (!ts.isCallExpression(unwrapped))
|
|
196
|
+
return false;
|
|
197
|
+
const callee = unwrapExpression(unwrapped.expression);
|
|
198
|
+
if (isPrimitiveConstructorCallee(callee))
|
|
199
|
+
return true;
|
|
200
|
+
if (ts.isPropertyAccessExpression(callee) && callee.name.text === "add") {
|
|
201
|
+
const receiver = unwrapExpression(callee.expression);
|
|
202
|
+
const receiverIsPrimitive = isPrimitiveBuilderExpression(receiver);
|
|
203
|
+
const primitiveArgument = unwrapped.arguments.some((argument) => ts.isExpression(argument) && isPrimitiveBuilderExpression(argument));
|
|
204
|
+
return receiverIsPrimitive || primitiveArgument;
|
|
205
|
+
}
|
|
206
|
+
return false;
|
|
207
|
+
}
|
|
208
|
+
function isPrimitiveConstructorCallee(callee) {
|
|
209
|
+
if (ts.isIdentifier(callee))
|
|
210
|
+
return isPrimitiveConstructorName(callee.text);
|
|
211
|
+
return ts.isPropertyAccessExpression(callee) &&
|
|
212
|
+
isIdentifierNamed(unwrapExpression(callee.expression), "primitives") &&
|
|
213
|
+
isPrimitiveConstructorName(callee.name.text);
|
|
214
|
+
}
|
|
215
|
+
function containsTypedModelCall(expression, typedAssetAliases) {
|
|
216
|
+
let found = false;
|
|
217
|
+
const visit = (node) => {
|
|
218
|
+
if (found)
|
|
219
|
+
return;
|
|
220
|
+
if (ts.isCallExpression(node) && isCallNamed(node, "model")) {
|
|
221
|
+
const [firstArgument] = node.arguments;
|
|
222
|
+
if (firstArgument && isTypedAssetModelArgument(firstArgument, typedAssetAliases)) {
|
|
223
|
+
found = true;
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
ts.forEachChild(node, visit);
|
|
228
|
+
};
|
|
229
|
+
visit(expression);
|
|
230
|
+
return found;
|
|
231
|
+
}
|
|
232
|
+
function isTypedAssetModelArgument(expression, typedAssetAliases) {
|
|
233
|
+
const unwrapped = unwrapExpression(expression);
|
|
234
|
+
if (getDirectTypedAssetReference(unwrapped))
|
|
235
|
+
return true;
|
|
236
|
+
return ts.isIdentifier(unwrapped) && typedAssetAliases.has(unwrapped.text);
|
|
237
|
+
}
|
|
238
|
+
function sanitizeAssetId(value) {
|
|
239
|
+
return value.replace(/[^a-zA-Z0-9_]/g, "_").replace(/^(\d)/, "_$1");
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=asset-source-ast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-source-ast.js","sourceRoot":"","sources":["../../../../packages/aura3d-cli/src/asset-source-ast.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function isPrimitiveConstructorName(name: string): boolean;
|
|
2
|
+
export declare function isPrimaryRoleIdentifier(name: string): boolean;
|
|
3
|
+
export declare function isSupportingPrimitiveIdentifier(name: string): boolean;
|
|
4
|
+
//# sourceMappingURL=asset-source-roles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-source-roles.d.ts","sourceRoot":"","sources":["../../../../packages/aura3d-cli/src/asset-source-roles.ts"],"names":[],"mappings":"AA6DA,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG7D;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGrE"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
const SOURCE_PRIMITIVE_CONSTRUCTORS = new Set([
|
|
2
|
+
"box",
|
|
3
|
+
"capsule",
|
|
4
|
+
"cone",
|
|
5
|
+
"cube",
|
|
6
|
+
"cylinder",
|
|
7
|
+
"group",
|
|
8
|
+
"plane",
|
|
9
|
+
"primitive",
|
|
10
|
+
"sphere",
|
|
11
|
+
"torus",
|
|
12
|
+
]);
|
|
13
|
+
const SOURCE_PRIMARY_ROLE_KEYWORDS = [
|
|
14
|
+
"hero",
|
|
15
|
+
"player",
|
|
16
|
+
"character",
|
|
17
|
+
"avatar",
|
|
18
|
+
"enemy",
|
|
19
|
+
"boss",
|
|
20
|
+
"vehicle",
|
|
21
|
+
"car",
|
|
22
|
+
"truck",
|
|
23
|
+
"ship",
|
|
24
|
+
"plane",
|
|
25
|
+
"drone",
|
|
26
|
+
"weapon",
|
|
27
|
+
"gun",
|
|
28
|
+
"sword",
|
|
29
|
+
"product",
|
|
30
|
+
"sneaker",
|
|
31
|
+
"phone",
|
|
32
|
+
"world",
|
|
33
|
+
"track",
|
|
34
|
+
"city",
|
|
35
|
+
"environment",
|
|
36
|
+
"arena",
|
|
37
|
+
"level",
|
|
38
|
+
"map",
|
|
39
|
+
"fighter",
|
|
40
|
+
"kart",
|
|
41
|
+
"creature",
|
|
42
|
+
"terrain",
|
|
43
|
+
];
|
|
44
|
+
const SOURCE_SUPPORTING_PRIMITIVE_KEYWORDS = [
|
|
45
|
+
"marker",
|
|
46
|
+
"checkpoint",
|
|
47
|
+
"guide",
|
|
48
|
+
"collider",
|
|
49
|
+
"collision",
|
|
50
|
+
"trigger",
|
|
51
|
+
"hitbox",
|
|
52
|
+
"debug",
|
|
53
|
+
"label",
|
|
54
|
+
"hud",
|
|
55
|
+
"anchor",
|
|
56
|
+
"gizmo",
|
|
57
|
+
"helper",
|
|
58
|
+
];
|
|
59
|
+
export function isPrimitiveConstructorName(name) {
|
|
60
|
+
return SOURCE_PRIMITIVE_CONSTRUCTORS.has(name);
|
|
61
|
+
}
|
|
62
|
+
export function isPrimaryRoleIdentifier(name) {
|
|
63
|
+
const readable = readableIdentifier(name);
|
|
64
|
+
return SOURCE_PRIMARY_ROLE_KEYWORDS.some((keyword) => new RegExp(`\\b${escapeRegExp(keyword)}\\b`, "i").test(readable));
|
|
65
|
+
}
|
|
66
|
+
export function isSupportingPrimitiveIdentifier(name) {
|
|
67
|
+
const readable = readableIdentifier(name);
|
|
68
|
+
return SOURCE_SUPPORTING_PRIMITIVE_KEYWORDS.some((keyword) => new RegExp(`\\b${escapeRegExp(keyword)}\\b`, "i").test(readable));
|
|
69
|
+
}
|
|
70
|
+
function readableIdentifier(name) {
|
|
71
|
+
return name
|
|
72
|
+
.replace(/([a-z0-9])([A-Z])/g, "$1 $2")
|
|
73
|
+
.replace(/[_-]+/g, " ")
|
|
74
|
+
.toLowerCase();
|
|
75
|
+
}
|
|
76
|
+
function escapeRegExp(value) {
|
|
77
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=asset-source-roles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-source-roles.js","sourceRoot":"","sources":["../../../../packages/aura3d-cli/src/asset-source-roles.ts"],"names":[],"mappings":"AAAA,MAAM,6BAA6B,GAAG,IAAI,GAAG,CAAC;IAC5C,KAAK;IACL,SAAS;IACT,MAAM;IACN,MAAM;IACN,UAAU;IACV,OAAO;IACP,OAAO;IACP,WAAW;IACX,QAAQ;IACR,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,4BAA4B,GAAG;IACnC,MAAM;IACN,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,OAAO;IACP,MAAM;IACN,SAAS;IACT,KAAK;IACL,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,KAAK;IACL,OAAO;IACP,SAAS;IACT,SAAS;IACT,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,aAAa;IACb,OAAO;IACP,OAAO;IACP,KAAK;IACL,SAAS;IACT,MAAM;IACN,UAAU;IACV,SAAS;CACV,CAAC;AAEF,MAAM,oCAAoC,GAAG;IAC3C,QAAQ;IACR,YAAY;IACZ,OAAO;IACP,UAAU;IACV,WAAW;IACX,SAAS;IACT,QAAQ;IACR,OAAO;IACP,OAAO;IACP,KAAK;IACL,QAAQ;IACR,OAAO;IACP,QAAQ;CACT,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,OAAO,6BAA6B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,4BAA4B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1H,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,IAAY;IAC1D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,oCAAoC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClI,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO,IAAI;SACR,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,WAAW,EAAE,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { AssetSourceValidationReport, AssetValidationOptions, AuraCliAssetManifest } from "./index.js";
|
|
2
|
+
export declare function shouldScanSource(options: AssetValidationOptions): boolean;
|
|
3
|
+
export declare function validateAssetSource(projectDir: string, sourceOption: AssetValidationOptions["source"], manifest: AuraCliAssetManifest): AssetSourceValidationReport;
|
|
4
|
+
//# sourceMappingURL=asset-source-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-source-validation.d.ts","sourceRoot":"","sources":["../../../../packages/aura3d-cli/src/asset-source-validation.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAEV,2BAA2B,EAC3B,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAEzE;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,sBAAsB,CAAC,QAAQ,CAAC,EAC9C,QAAQ,EAAE,oBAAoB,GAC7B,2BAA2B,CAkF7B"}
|